From 7ab9d79d104dfcd92df651daf947d8dbee453075 Mon Sep 17 00:00:00 2001 From: Mark Haussmann Date: Tue, 8 Feb 2022 10:22:16 +1300 Subject: [PATCH 001/262] Fix support for piping STDIN Since the change to Open3 `STDIN` is not sent to prettier, so formatting produces an empty output. --- lib/prettier.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/prettier.rb b/lib/prettier.rb index 47b36b2d..e6a8b5be 100644 --- a/lib/prettier.rb +++ b/lib/prettier.rb @@ -12,7 +12,11 @@ def self.run(args) quoted = args.map { |arg| arg.start_with?('-') ? arg : "\"#{arg}\"" } command = "node #{BINARY} --plugin \"#{PLUGIN}\" #{quoted.join(' ')}" - stdout, stderr, status = Open3.capture3({ 'RBPRETTIER' => '1' }, command) + stdout, stderr, status = Open3.capture3( + { 'RBPRETTIER' => '1' }, + command, + stdin_data: STDIN + ) STDOUT.puts(stdout) # If we completed successfully, then just exit out. From d8d0ac70e10b828be9ea2bd1dae90d4ceeb0fe17 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Mar 2022 12:01:29 +0000 Subject: [PATCH 002/262] Bump ts-node from 10.6.0 to 10.7.0 Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.6.0 to 10.7.0. - [Release notes](https://github.com/TypeStrong/ts-node/releases) - [Commits](https://github.com/TypeStrong/ts-node/compare/v10.6.0...v10.7.0) --- updated-dependencies: - dependency-name: ts-node dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 930f0740..395000af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3242,9 +3242,9 @@ ts-jest@^27.0.5: yargs-parser "20.x" ts-node@^10.2.1: - version "10.6.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.6.0.tgz#c3f4195d5173ce3affdc8f2fd2e9a7ac8de5376a" - integrity sha512-CJen6+dfOXolxudBQXnVjRVvYTmTWbyz7cn+xq2XTsvnaXbHqr4gXSCNbS2Jj8yTZMuGwUoBESLaOkLascVVvg== + version "10.7.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.7.0.tgz#35d503d0fab3e2baa672a0e94f4b40653c2463f5" + integrity sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A== dependencies: "@cspotcode/source-map-support" "0.7.0" "@tsconfig/node10" "^1.0.7" From 2aa394409923ea18482ed8bd8388b072806890f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 12:01:34 +0000 Subject: [PATCH 003/262] Bump @typescript-eslint/eslint-plugin from 5.13.0 to 5.14.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.13.0 to 5.14.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.14.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 70 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 52 insertions(+), 18 deletions(-) diff --git a/yarn.lock b/yarn.lock index 395000af..c95a057a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -882,13 +882,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.4.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.13.0.tgz#2809052b85911ced9c54a60dac10e515e9114497" - integrity sha512-vLktb2Uec81fxm/cfz2Hd6QaWOs8qdmVAZXLdOBX6JFJDhf6oDZpMzZ4/LZ6SFM/5DgDcxIMIvy3F+O9yZBuiQ== + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.14.0.tgz#5119b67152356231a0e24b998035288a9cd21335" + integrity sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w== dependencies: - "@typescript-eslint/scope-manager" "5.13.0" - "@typescript-eslint/type-utils" "5.13.0" - "@typescript-eslint/utils" "5.13.0" + "@typescript-eslint/scope-manager" "5.14.0" + "@typescript-eslint/type-utils" "5.14.0" + "@typescript-eslint/utils" "5.14.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -914,12 +914,20 @@ "@typescript-eslint/types" "5.13.0" "@typescript-eslint/visitor-keys" "5.13.0" -"@typescript-eslint/type-utils@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.13.0.tgz#b0efd45c85b7bab1125c97b752cab3a86c7b615d" - integrity sha512-/nz7qFizaBM1SuqAKb7GLkcNn2buRdDgZraXlkhz+vUGiN1NZ9LzkA595tHHeduAiS2MsHqMNhE2zNzGdw43Yg== +"@typescript-eslint/scope-manager@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz#ea518962b42db8ed0a55152ea959c218cb53ca7b" + integrity sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw== + dependencies: + "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/visitor-keys" "5.14.0" + +"@typescript-eslint/type-utils@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz#711f08105860b12988454e91df433567205a8f0b" + integrity sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw== dependencies: - "@typescript-eslint/utils" "5.13.0" + "@typescript-eslint/utils" "5.14.0" debug "^4.3.2" tsutils "^3.21.0" @@ -928,6 +936,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.13.0.tgz#da1de4ae905b1b9ff682cab0bed6b2e3be9c04e5" integrity sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg== +"@typescript-eslint/types@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11" + integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw== + "@typescript-eslint/typescript-estree@5.13.0": version "5.13.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz#b37c07b748ff030a3e93d87c842714e020b78141" @@ -941,15 +954,28 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.13.0.tgz#2328feca700eb02837298339a2e49c46b41bd0af" - integrity sha512-+9oHlPWYNl6AwwoEt5TQryEHwiKRVjz7Vk6kaBeD3/kwHE5YqTGHtm/JZY8Bo9ITOeKutFaXnBlMgSATMJALUQ== +"@typescript-eslint/typescript-estree@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" + integrity sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA== + dependencies: + "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/visitor-keys" "5.14.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.14.0.tgz#6c8bc4f384298cbbb32b3629ba7415f9f80dc8c4" + integrity sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.13.0" - "@typescript-eslint/types" "5.13.0" - "@typescript-eslint/typescript-estree" "5.13.0" + "@typescript-eslint/scope-manager" "5.14.0" + "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/typescript-estree" "5.14.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -961,6 +987,14 @@ "@typescript-eslint/types" "5.13.0" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.14.0": + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" + integrity sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw== + dependencies: + "@typescript-eslint/types" "5.14.0" + eslint-visitor-keys "^3.0.0" + abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" From 144aabdd6ef9ead1a18dcd97543802ece82bc305 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 12:14:24 +0000 Subject: [PATCH 004/262] Bump @typescript-eslint/parser from 5.13.0 to 5.14.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.13.0 to 5.14.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.14.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 46 ++++++---------------------------------------- 1 file changed, 6 insertions(+), 40 deletions(-) diff --git a/yarn.lock b/yarn.lock index c95a057a..0bb1a2cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -897,23 +897,15 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.4.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.13.0.tgz#0394ed8f2f849273c0bf4b811994d177112ced5c" - integrity sha512-GdrU4GvBE29tm2RqWOM0P5QfCtgCyN4hXICj/X9ibKED16136l9ZpoJvCL5pSKtmJzA+NRDzQ312wWMejCVVfg== + version "5.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.14.0.tgz#7c79f898aa3cff0ceee6f1d34eeed0f034fb9ef3" + integrity sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw== dependencies: - "@typescript-eslint/scope-manager" "5.13.0" - "@typescript-eslint/types" "5.13.0" - "@typescript-eslint/typescript-estree" "5.13.0" + "@typescript-eslint/scope-manager" "5.14.0" + "@typescript-eslint/types" "5.14.0" + "@typescript-eslint/typescript-estree" "5.14.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.13.0.tgz#cf6aff61ca497cb19f0397eea8444a58f46156b6" - integrity sha512-T4N8UvKYDSfVYdmJq7g2IPJYCRzwtp74KyDZytkR4OL3NRupvswvmJQJ4CX5tDSurW2cvCc1Ia1qM7d0jpa7IA== - dependencies: - "@typescript-eslint/types" "5.13.0" - "@typescript-eslint/visitor-keys" "5.13.0" - "@typescript-eslint/scope-manager@5.14.0": version "5.14.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz#ea518962b42db8ed0a55152ea959c218cb53ca7b" @@ -931,29 +923,11 @@ debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.13.0.tgz#da1de4ae905b1b9ff682cab0bed6b2e3be9c04e5" - integrity sha512-LmE/KO6DUy0nFY/OoQU0XelnmDt+V8lPQhh8MOVa7Y5k2gGRd6U9Kp3wAjhB4OHg57tUO0nOnwYQhRRyEAyOyg== - "@typescript-eslint/types@5.14.0": version "5.14.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11" integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw== -"@typescript-eslint/typescript-estree@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.13.0.tgz#b37c07b748ff030a3e93d87c842714e020b78141" - integrity sha512-Q9cQow0DeLjnp5DuEDjLZ6JIkwGx3oYZe+BfcNuw/POhtpcxMTy18Icl6BJqTSd+3ftsrfuVb7mNHRZf7xiaNA== - dependencies: - "@typescript-eslint/types" "5.13.0" - "@typescript-eslint/visitor-keys" "5.13.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.14.0": version "5.14.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" @@ -979,14 +953,6 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.13.0.tgz#f45ff55bcce16403b221ac9240fbeeae4764f0fd" - integrity sha512-HLKEAS/qA1V7d9EzcpLFykTePmOQqOFim8oCvhY3pZgQ8Hi38hYpHd9e5GN6nQBFQNecNhws5wkS9Y5XIO0s/g== - dependencies: - "@typescript-eslint/types" "5.13.0" - eslint-visitor-keys "^3.0.0" - "@typescript-eslint/visitor-keys@5.14.0": version "5.14.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" From 88f9dec69982fde55e5caf694502c36cdb33ecee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Mar 2022 12:01:32 +0000 Subject: [PATCH 005/262] Bump eslint from 8.10.0 to 8.11.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.10.0 to 8.11.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.10.0...v8.11.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0bb1a2cd..a696ef60 100644 --- a/yarn.lock +++ b/yarn.lock @@ -492,16 +492,16 @@ dependencies: "@cspotcode/source-map-consumer" "0.8.0" -"@eslint/eslintrc@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.0.tgz#7ce1547a5c46dfe56e1e45c3c9ed18038c721c6a" - integrity sha512-igm9SjJHNEJRiUnecP/1R5T3wKLEJ7pL6e2P+GUSfCd0dGjPYYZve08uzw8L2J8foVHFz+NGu12JxRcU2gGo6w== +"@eslint/eslintrc@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" + integrity sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.3.1" globals "^13.9.0" - ignore "^4.0.6" + ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.0.4" @@ -1538,11 +1538,11 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.1.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.10.0.tgz#931be395eb60f900c01658b278e05b6dae47199d" - integrity sha512-tcI1D9lfVec+R4LE1mNDnzoJ/f71Kl/9Cv4nG47jOueCMBrCCKYXr4AUVS7go6mWYGFD4+EoN6+eXSrEbRzXVw== + version "8.11.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.11.0.tgz#88b91cfba1356fc10bb9eb592958457dfe09fb37" + integrity sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA== dependencies: - "@eslint/eslintrc" "^1.2.0" + "@eslint/eslintrc" "^1.2.1" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -1925,11 +1925,6 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" From a753097825221fb814dacd58fe49874c18c5b796 Mon Sep 17 00:00:00 2001 From: Daniel Leavitt Date: Mon, 14 Mar 2022 12:27:10 -0700 Subject: [PATCH 006/262] don't force-indent operator assignment --- src/ruby/nodes/assign.ts | 39 ++++++++++++++++++------------- test/js/ruby/nodes/assign.test.ts | 34 +++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 16 deletions(-) diff --git a/src/ruby/nodes/assign.ts b/src/ruby/nodes/assign.ts index 4988da39..90cda112 100644 --- a/src/ruby/nodes/assign.ts +++ b/src/ruby/nodes/assign.ts @@ -1,10 +1,29 @@ import type { Plugin, Ruby } from "../../types"; import prettier from "../../prettier"; import { skipAssignIndent } from "../../utils"; +import { Doc, Path } from "../../types/plugin"; const { group, indent, join, line } = prettier; -export const printAssign: Plugin.Printer = (path, opts, print) => { +export const printAssign: Plugin.Printer = (...args) => { + return printOpAssignOrAssign("=", ...args); +}; + +export const printOpAssign: Plugin.Printer = ( + path, + opts, + print +) => { + const opDoc = path.call(print, "op"); + return printOpAssignOrAssign(opDoc, path, opts, print); +}; + +function printOpAssignOrAssign( + opDoc: Doc, + path: Path, + opts: Plugin.Options, + print: Plugin.Print +): Doc { const valueNode = path.getValue().value; const targetDoc = path.call(print, "target"); @@ -21,23 +40,11 @@ export const printAssign: Plugin.Printer = (path, opts, print) => { } if (skipAssignIndent(valueNode)) { - return group([targetDoc, " = ", rightSideDoc]); + return group([targetDoc, " ", opDoc, " ", rightSideDoc]); } - return group([targetDoc, " =", indent([line, rightSideDoc])]); -}; - -export const printOpAssign: Plugin.Printer = ( - path, - opts, - print -) => - group([ - path.call(print, "target"), - " ", - path.call(print, "op"), - indent([line, path.call(print, "value")]) - ]); + return group([targetDoc, " ", opDoc, indent([line, rightSideDoc])]); +} export const printVarField: Plugin.Printer = ( path, diff --git a/test/js/ruby/nodes/assign.test.ts b/test/js/ruby/nodes/assign.test.ts index 9dddd72a..a15d0971 100644 --- a/test/js/ruby/nodes/assign.test.ts +++ b/test/js/ruby/nodes/assign.test.ts @@ -84,6 +84,40 @@ describe("assign", () => { `) ); }); + + describe("assignment operators", () => { + // some but not all + const operators = ["||", "&&", "+", "*", "%", "**", "<<"]; + + test.each(operators)("array %s= [...] is not force-indented", (op) => { + expect(`a ${op}= [${long}, ${long}, ${long}]`).toChangeFormat( + ruby(` + a ${op}= [ + ${long}, + ${long}, + ${long} + ] + `) + ); + }); + + test.each(operators)("hash %s= { ... } is not force-indented", (op) => { + expect( + `a ${op}= { a: ${long}, b: ${long}, c: ${long} }` + ).toChangeFormat( + ruby(` + a ${op}= { + a: + ${long}, + b: + ${long}, + c: + ${long} + } + `) + ); + }); + }); }); describe("constants", () => { From 10563bb0d08df5b2a90a3c4df4a4e0c38fe1d379 Mon Sep 17 00:00:00 2001 From: Daniel Leavitt Date: Sun, 13 Mar 2022 22:24:43 -0700 Subject: [PATCH 007/262] Indent word literals same as collection literals Percent literals for collections (%w, %W, %i, %I) get the same "skipAssignIndent" behavior that array/hash literals do. --- src/utils/skipAssignIndent.ts | 6 +++++- test/js/ruby/nodes/assign.test.ts | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/utils/skipAssignIndent.ts b/src/utils/skipAssignIndent.ts index e7cd2fa9..c0420d58 100644 --- a/src/utils/skipAssignIndent.ts +++ b/src/utils/skipAssignIndent.ts @@ -6,7 +6,11 @@ const skippable = [ "hash", "heredoc", "lambda", - "regexp_literal" + "qsymbols", + "qwords", + "regexp_literal", + "symbols", + "words" ]; function skipAssignIndent(node: Ruby.AnyNode): boolean { diff --git a/test/js/ruby/nodes/assign.test.ts b/test/js/ruby/nodes/assign.test.ts index a15d0971..195b7f95 100644 --- a/test/js/ruby/nodes/assign.test.ts +++ b/test/js/ruby/nodes/assign.test.ts @@ -64,6 +64,21 @@ describe("assign", () => { ); }); + describe("assignments from quotewords and similar", () => { + const cases = ["w", "W", "i", "I"]; + + test.each(cases)("x = %s[...] is not force-indented", (literal) => { + expect(`a = %${literal}[${long} ${long}]`).toChangeFormat( + ruby(` + a = %${literal}[ + ${long} + ${long} + ] + `) + ); + }); + }); + test("chained methods on array literals don't get oddly indented", () => { expect(`a = [${long}].freeze`).toChangeFormat( ruby(` From 7d631da8a252cd50e7806c769a4f12cca4b9a830 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Mar 2022 12:01:29 +0000 Subject: [PATCH 008/262] Bump @typescript-eslint/parser from 5.14.0 to 5.15.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.14.0 to 5.15.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.15.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 46 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index a696ef60..4ef696a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -897,13 +897,13 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.4.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.14.0.tgz#7c79f898aa3cff0ceee6f1d34eeed0f034fb9ef3" - integrity sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw== + version "5.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.15.0.tgz#95f603f8fe6eca7952a99bfeef9b85992972e728" + integrity sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ== dependencies: - "@typescript-eslint/scope-manager" "5.14.0" - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/typescript-estree" "5.14.0" + "@typescript-eslint/scope-manager" "5.15.0" + "@typescript-eslint/types" "5.15.0" + "@typescript-eslint/typescript-estree" "5.15.0" debug "^4.3.2" "@typescript-eslint/scope-manager@5.14.0": @@ -914,6 +914,14 @@ "@typescript-eslint/types" "5.14.0" "@typescript-eslint/visitor-keys" "5.14.0" +"@typescript-eslint/scope-manager@5.15.0": + version "5.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz#d97afab5e0abf4018d1289bd711be21676cdd0ee" + integrity sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg== + dependencies: + "@typescript-eslint/types" "5.15.0" + "@typescript-eslint/visitor-keys" "5.15.0" + "@typescript-eslint/type-utils@5.14.0": version "5.14.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz#711f08105860b12988454e91df433567205a8f0b" @@ -928,6 +936,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11" integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw== +"@typescript-eslint/types@5.15.0": + version "5.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.15.0.tgz#c7bdd103843b1abae97b5518219d3e2a0d79a501" + integrity sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA== + "@typescript-eslint/typescript-estree@5.14.0": version "5.14.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" @@ -941,6 +954,19 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@5.15.0": + version "5.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz#81513a742a9c657587ad1ddbca88e76c6efb0aac" + integrity sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA== + dependencies: + "@typescript-eslint/types" "5.15.0" + "@typescript-eslint/visitor-keys" "5.15.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/utils@5.14.0": version "5.14.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.14.0.tgz#6c8bc4f384298cbbb32b3629ba7415f9f80dc8c4" @@ -961,6 +987,14 @@ "@typescript-eslint/types" "5.14.0" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.15.0": + version "5.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz#5669739fbf516df060f978be6a6dce75855a8027" + integrity sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ== + dependencies: + "@typescript-eslint/types" "5.15.0" + eslint-visitor-keys "^3.0.0" + abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" From ae1f84ec32edf7509cb956cd1b94ea33cbd5e1b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Mar 2022 12:10:13 +0000 Subject: [PATCH 009/262] Bump @typescript-eslint/eslint-plugin from 5.14.0 to 5.15.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.14.0 to 5.15.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.15.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 70 ++++++++++++++----------------------------------------- 1 file changed, 18 insertions(+), 52 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4ef696a8..a3166971 100644 --- a/yarn.lock +++ b/yarn.lock @@ -882,13 +882,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.4.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.14.0.tgz#5119b67152356231a0e24b998035288a9cd21335" - integrity sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w== + version "5.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz#c28ef7f2e688066db0b6a9d95fb74185c114fb9a" + integrity sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA== dependencies: - "@typescript-eslint/scope-manager" "5.14.0" - "@typescript-eslint/type-utils" "5.14.0" - "@typescript-eslint/utils" "5.14.0" + "@typescript-eslint/scope-manager" "5.15.0" + "@typescript-eslint/type-utils" "5.15.0" + "@typescript-eslint/utils" "5.15.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -906,14 +906,6 @@ "@typescript-eslint/typescript-estree" "5.15.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.14.0.tgz#ea518962b42db8ed0a55152ea959c218cb53ca7b" - integrity sha512-LazdcMlGnv+xUc5R4qIlqH0OWARyl2kaP8pVCS39qSL3Pd1F7mI10DbdXeARcE62sVQE4fHNvEqMWsypWO+yEw== - dependencies: - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/visitor-keys" "5.14.0" - "@typescript-eslint/scope-manager@5.15.0": version "5.15.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz#d97afab5e0abf4018d1289bd711be21676cdd0ee" @@ -922,38 +914,20 @@ "@typescript-eslint/types" "5.15.0" "@typescript-eslint/visitor-keys" "5.15.0" -"@typescript-eslint/type-utils@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.14.0.tgz#711f08105860b12988454e91df433567205a8f0b" - integrity sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw== +"@typescript-eslint/type-utils@5.15.0": + version "5.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz#d2c02eb2bdf54d0a645ba3a173ceda78346cf248" + integrity sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA== dependencies: - "@typescript-eslint/utils" "5.14.0" + "@typescript-eslint/utils" "5.15.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11" - integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw== - "@typescript-eslint/types@5.15.0": version "5.15.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.15.0.tgz#c7bdd103843b1abae97b5518219d3e2a0d79a501" integrity sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA== -"@typescript-eslint/typescript-estree@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" - integrity sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA== - dependencies: - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/visitor-keys" "5.14.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.15.0": version "5.15.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz#81513a742a9c657587ad1ddbca88e76c6efb0aac" @@ -967,26 +941,18 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.14.0.tgz#6c8bc4f384298cbbb32b3629ba7415f9f80dc8c4" - integrity sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w== +"@typescript-eslint/utils@5.15.0": + version "5.15.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.15.0.tgz#468510a0974d3ced8342f37e6c662778c277f136" + integrity sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.14.0" - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/typescript-estree" "5.14.0" + "@typescript-eslint/scope-manager" "5.15.0" + "@typescript-eslint/types" "5.15.0" + "@typescript-eslint/typescript-estree" "5.15.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" - integrity sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw== - dependencies: - "@typescript-eslint/types" "5.14.0" - eslint-visitor-keys "^3.0.0" - "@typescript-eslint/visitor-keys@5.15.0": version "5.15.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz#5669739fbf516df060f978be6a6dce75855a8027" From 819d7558d0d994a25c921bfe849b60000bd4401c Mon Sep 17 00:00:00 2001 From: Daniel Leavitt Date: Tue, 15 Mar 2022 20:39:23 -0700 Subject: [PATCH 010/262] support for rbs version 2 --- .github/workflows/main.yml | 1 + src/rbs/parser.rb | 41 ++++++++++++++++++++++ src/rbs/printer.ts | 36 +++++++++---------- src/types/rbs.ts | 6 ++-- test/rb/rbs_test.rb | 71 ++++++++++++++++++++++++++++++++++++++ test/rb/test_helper.rb | 1 + 6 files changed, 134 insertions(+), 22 deletions(-) create mode 100644 test/rb/rbs_test.rb diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f9fb05b4..c7d76b3a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,6 +16,7 @@ jobs: - "2.6" - "2.7" - "3.0" + - "3.1" runs-on: ${{ matrix.platform }} env: PLUGIN_RUBY_CI: true diff --git a/src/rbs/parser.rb b/src/rbs/parser.rb index 39e15075..34d3b59b 100644 --- a/src/rbs/parser.rb +++ b/src/rbs/parser.rb @@ -98,6 +98,47 @@ def to_json(*a) end end +if defined?(RBS::AST::Declarations::ModuleTypeParams) + # This class was removed in rbs 2.0. Monkeypatch < 2.0 to give the same json + # output + class RBS::AST::Declarations::ModuleTypeParams + def to_json(*a) + params.to_json(*a) + end + end + + # make this look like the new AST::TypeParam json + class RBS::AST::Declarations::ModuleTypeParams::TypeParam + def to_json(*a) + { name: name, variance: variance, unchecked: skip_validation }.to_json(*a) + end + end + + # https://github.com/ruby/rbs/commit/3ccdcb1f3ac5dcb866280f745866a852658195e6 + class RBS::MethodType + # promote the array of symbols into TypeParam looking-things + def to_json(*a) + type_param_objects = + type_params.map do |name| + { + name: name, + variance: 'invariant', + unchecked: 'false', + upper_bound: nil + # location - harder to get this but not needed + } + end + + { + type_params: type_param_objects, + type: type, + block: block, + location: location + }.to_json(*a) + end + end +end + # The main parser interface. module Prettier class RBSParser diff --git a/src/rbs/printer.ts b/src/rbs/printer.ts index 09448263..842fd8ae 100644 --- a/src/rbs/printer.ts +++ b/src/rbs/printer.ts @@ -447,30 +447,26 @@ const printer: Plugin.PrinterConfig = { path: Plugin.Path, node: RBS.NameAndTypeParams ) { - if (node.type_params.params.length === 0) { + if (node.type_params.length === 0) { return node.name; } - const docs = path.map( - (paramPath) => { - const node = paramPath.getValue(); - const parts = []; + const docs = path.map((paramPath) => { + const node = paramPath.getValue(); + const parts = []; - if (node.skip_validation) { - parts.push("unchecked"); - } + if (node.unchecked) { + parts.push("unchecked"); + } - if (node.variance === "covariant") { - parts.push("out"); - } else if (node.variance === "contravariant") { - parts.push("in"); - } + if (node.variance === "covariant") { + parts.push("out"); + } else if (node.variance === "contravariant") { + parts.push("in"); + } - return join(" ", [...parts, node.name]); - }, - "type_params", - "params" - ); + return join(" ", [...parts, node.name]); + }, "type_params"); return [node.name, "[", join(", ", docs), "]"]; } @@ -568,7 +564,9 @@ const printer: Plugin.PrinterConfig = { // We won't have a type_params key if we're printing a block if (node.type_params && node.type_params.length > 0) { - parts.push("[", join(", ", node.type_params), "] "); + const typeParamNames = node.type_params.map((tp) => tp.name); + + parts.push("[", join(", ", typeParamNames), "] "); } const params = path.call(printMethodParams, "type"); diff --git a/src/types/rbs.ts b/src/types/rbs.ts index 58aa5e0a..d1a417cf 100644 --- a/src/types/rbs.ts +++ b/src/types/rbs.ts @@ -18,7 +18,7 @@ export type MethodParams = { }; export type MethodSignature = { - type_params: string[], + type_params: Param[], type: MethodParams & { return_type: Type }, block: { required: boolean } & MethodSignature }; @@ -74,13 +74,13 @@ export type MethodDefinition = Member & { member: "method_definition" }; export type Param = { name: string, - skip_validation: boolean, + unchecked: boolean, variance: "invariant" | "covariant" | "contravariant" }; export type NameAndTypeParams = { name: string, - type_params: { params: Param[] } + type_params: Param[] }; export type Class = { declaration: "class", super_class?: NameAndArgs, members: Member[] } & NameAndTypeParams; diff --git a/test/rb/rbs_test.rb b/test/rb/rbs_test.rb new file mode 100644 index 00000000..1e424748 --- /dev/null +++ b/test/rb/rbs_test.rb @@ -0,0 +1,71 @@ +# frozen_string_literal: true + +require 'test_helper' + +class RBSTest < Minitest::Test + # https://github.com/ruby/rbs/commit/c5da467adacc75fe9294ec1630f1b7931d9d6871 + def test_module_type_params_empty + actual = declaration_json("interface _Foo\nend")['type_params'] + assert_instance_of Array, actual + assert_empty actual + end + + def test_module_type_params_fancy + source = <<~SOURCE + class Foo[unchecked in A, B] + end + SOURCE + + actual = declaration_json(source)['type_params'] + assert_instance_of Array, actual + assert_equal 2, actual.length + + type_a, type_b = actual + + assert_equal 'A', type_a['name'] + assert_equal 'contravariant', type_a['variance'] + assert_equal true, type_a['unchecked'] + + assert_equal 'B', type_b['name'] + assert_equal 'invariant', type_b['variance'] + assert_equal false, type_b['unchecked'] + end + + # https://github.com/ruby/rbs/commit/3ccdcb1f3ac5dcb866280f745866a852658195e6 + def test_generic_method + source = <<~SOURCE + class T + def t: [A, B] (A) -> B + end + SOURCE + + actual = member_json(source)['types'].first['type_params'] + assert_equal 2, actual.length + + type_a, type_b = actual + assert_equal 'A', type_a['name'] + assert_equal 'B', type_b['name'] + end + + private + + def declaration_json(source) + JSON.parse(first_declaration(source).to_json) + end + + def member_json(source) + JSON.parse(first_member(source).to_json) + end + + def parse(source) + Prettier::RBSParser.parse(source) + end + + def first_declaration(source) + parse(source)[:declarations].first + end + + def first_member(source) + first_declaration(source).members.first + end +end diff --git a/test/rb/test_helper.rb b/test/rb/test_helper.rb index 4d77642c..b2047e0b 100644 --- a/test/rb/test_helper.rb +++ b/test/rb/test_helper.rb @@ -4,5 +4,6 @@ require 'prettier' require_relative '../../src/ruby/parser' +require_relative '../../src/rbs/parser' require 'minitest/autorun' From 32532e88d78e0752d4781337cd2f32c330e05ee0 Mon Sep 17 00:00:00 2001 From: Daniel Leavitt Date: Tue, 15 Mar 2022 22:20:43 -0700 Subject: [PATCH 011/262] support rbs bounded type arguments --- src/rbs/printer.ts | 10 +++++++++- src/types/rbs.ts | 1 + test/js/rbs/rbs.test.ts | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/src/rbs/printer.ts b/src/rbs/printer.ts index 842fd8ae..50a86664 100644 --- a/src/rbs/printer.ts +++ b/src/rbs/printer.ts @@ -465,7 +465,15 @@ const printer: Plugin.PrinterConfig = { parts.push("in"); } - return join(" ", [...parts, node.name]); + if (node.upper_bound) { + const path = paramPath as Plugin.Path< + RequiredKeys + >; + const upperBound = path.call(printType, "upper_bound"); + return join(" ", [...parts, node.name, "<", upperBound]); + } else { + return join(" ", [...parts, node.name]); + } }, "type_params"); return [node.name, "[", join(", ", docs), "]"]; diff --git a/src/types/rbs.ts b/src/types/rbs.ts index d1a417cf..02056482 100644 --- a/src/types/rbs.ts +++ b/src/types/rbs.ts @@ -76,6 +76,7 @@ export type Param = { name: string, unchecked: boolean, variance: "invariant" | "covariant" | "contravariant" + upper_bound?: Type, }; export type NameAndTypeParams = { diff --git a/test/js/rbs/rbs.test.ts b/test/js/rbs/rbs.test.ts index 7e7f4fc4..58724145 100644 --- a/test/js/rbs/rbs.test.ts +++ b/test/js/rbs/rbs.test.ts @@ -47,6 +47,26 @@ describe("rbs", () => { expect(content).toMatchFormat(); }); + if (atLeastVersion("3.1")) { + test("interface with bounded type param", () => { + const content = rbs(` + interface _Foo[A < B] + end + `); + + expect(content).toMatchFormat(); + }); + + test("interface with fancy bounded type params", () => { + const content = rbs(` + interface _Foo[U < singleton(::Hash), V < W[X, Y]] + end + `); + + expect(content).toMatchFormat(); + }); + } + test("class", () => { const content = rbs(` class Foo @@ -74,6 +94,26 @@ describe("rbs", () => { expect(content).toMatchFormat(); }); + if (atLeastVersion("3.1")) { + test("class with bounded type param", () => { + const content = rbs(` + class Foo[A < B] + end + `); + + expect(content).toMatchFormat(); + }); + + test("class with fancy bounded type params", () => { + const content = rbs(` + class Foo[U < singleton(::Hash), V < W[X, Y]] + end + `); + + expect(content).toMatchFormat(); + }); + } + test("class with annotations", () => { const content = rbs(` %a{This is an annotation.} From edd094a3ff94f3b3a6ee4a84c599b3c17d8497c5 Mon Sep 17 00:00:00 2001 From: Daniel Leavitt Date: Fri, 18 Mar 2022 11:17:22 -0700 Subject: [PATCH 012/262] icky cast of rbs upper bound fixes a type error; guessing there's a better way to accomplish this --- src/rbs/printer.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/rbs/printer.ts b/src/rbs/printer.ts index 50a86664..59abacbc 100644 --- a/src/rbs/printer.ts +++ b/src/rbs/printer.ts @@ -466,9 +466,7 @@ const printer: Plugin.PrinterConfig = { } if (node.upper_bound) { - const path = paramPath as Plugin.Path< - RequiredKeys - >; + const path = paramPath as Plugin.Path<{ upper_bound: RBS.Type }>; const upperBound = path.call(printType, "upper_bound"); return join(" ", [...parts, node.name, "<", upperBound]); } else { From da7b93e65812bcb0ac6c18eeb05210a2c9eb3996 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Mar 2022 12:01:48 +0000 Subject: [PATCH 013/262] Bump @types/node from 17.0.21 to 17.0.22 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.21 to 17.0.22. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a3166971..2e515cf9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -855,9 +855,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*", "@types/node@^17.0.0": - version "17.0.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" - integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== + version "17.0.22" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.22.tgz#38b6c4b9b2f3ed9f2e376cce42a298fb2375251e" + integrity sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw== "@types/prettier@^2.1.5", "@types/prettier@^2.4.2": version "2.4.4" From c52492394f479c608707d62d212dc44146094344 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Mar 2022 12:02:05 +0000 Subject: [PATCH 014/262] Bump @typescript-eslint/eslint-plugin from 5.15.0 to 5.16.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.15.0 to 5.16.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.16.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 70 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 52 insertions(+), 18 deletions(-) diff --git a/yarn.lock b/yarn.lock index a3166971..89b2ea70 100644 --- a/yarn.lock +++ b/yarn.lock @@ -882,13 +882,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.4.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.15.0.tgz#c28ef7f2e688066db0b6a9d95fb74185c114fb9a" - integrity sha512-u6Db5JfF0Esn3tiAKELvoU5TpXVSkOpZ78cEGn/wXtT2RVqs2vkt4ge6N8cRCyw7YVKhmmLDbwI2pg92mlv7cA== + version "5.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz#78f246dd8d1b528fc5bfca99a8a64d4023a3d86d" + integrity sha512-SJoba1edXvQRMmNI505Uo4XmGbxCK9ARQpkvOd00anxzri9RNQk0DDCxD+LIl+jYhkzOJiOMMKYEHnHEODjdCw== dependencies: - "@typescript-eslint/scope-manager" "5.15.0" - "@typescript-eslint/type-utils" "5.15.0" - "@typescript-eslint/utils" "5.15.0" + "@typescript-eslint/scope-manager" "5.16.0" + "@typescript-eslint/type-utils" "5.16.0" + "@typescript-eslint/utils" "5.16.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -914,12 +914,20 @@ "@typescript-eslint/types" "5.15.0" "@typescript-eslint/visitor-keys" "5.15.0" -"@typescript-eslint/type-utils@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.15.0.tgz#d2c02eb2bdf54d0a645ba3a173ceda78346cf248" - integrity sha512-KGeDoEQ7gHieLydujGEFLyLofipe9PIzfvA/41urz4hv+xVxPEbmMQonKSynZ0Ks2xDhJQ4VYjB3DnRiywvKDA== +"@typescript-eslint/scope-manager@5.16.0": + version "5.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz#7e7909d64bd0c4d8aef629cdc764b9d3e1d3a69a" + integrity sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ== + dependencies: + "@typescript-eslint/types" "5.16.0" + "@typescript-eslint/visitor-keys" "5.16.0" + +"@typescript-eslint/type-utils@5.16.0": + version "5.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.16.0.tgz#b482bdde1d7d7c0c7080f7f2f67ea9580b9e0692" + integrity sha512-SKygICv54CCRl1Vq5ewwQUJV/8padIWvPgCxlWPGO/OgQLCijY9G7lDu6H+mqfQtbzDNlVjzVWQmeqbLMBLEwQ== dependencies: - "@typescript-eslint/utils" "5.15.0" + "@typescript-eslint/utils" "5.16.0" debug "^4.3.2" tsutils "^3.21.0" @@ -928,6 +936,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.15.0.tgz#c7bdd103843b1abae97b5518219d3e2a0d79a501" integrity sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA== +"@typescript-eslint/types@5.16.0": + version "5.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" + integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== + "@typescript-eslint/typescript-estree@5.15.0": version "5.15.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz#81513a742a9c657587ad1ddbca88e76c6efb0aac" @@ -941,15 +954,28 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.15.0.tgz#468510a0974d3ced8342f37e6c662778c277f136" - integrity sha512-081rWu2IPKOgTOhHUk/QfxuFog8m4wxW43sXNOMSCdh578tGJ1PAaWPsj42LOa7pguh173tNlMigsbrHvh/mtA== +"@typescript-eslint/typescript-estree@5.16.0": + version "5.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz#32259459ec62f5feddca66adc695342f30101f61" + integrity sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ== + dependencies: + "@typescript-eslint/types" "5.16.0" + "@typescript-eslint/visitor-keys" "5.16.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.16.0": + version "5.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.16.0.tgz#42218b459d6d66418a4eb199a382bdc261650679" + integrity sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.15.0" - "@typescript-eslint/types" "5.15.0" - "@typescript-eslint/typescript-estree" "5.15.0" + "@typescript-eslint/scope-manager" "5.16.0" + "@typescript-eslint/types" "5.16.0" + "@typescript-eslint/typescript-estree" "5.16.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -961,6 +987,14 @@ "@typescript-eslint/types" "5.15.0" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.16.0": + version "5.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz#f27dc3b943e6317264c7492e390c6844cd4efbbb" + integrity sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g== + dependencies: + "@typescript-eslint/types" "5.16.0" + eslint-visitor-keys "^3.0.0" + abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" From 8563496f4d5629649ecf4737c9b68ed88efedea5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Mar 2022 12:21:18 +0000 Subject: [PATCH 015/262] Bump @typescript-eslint/parser from 5.15.0 to 5.16.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.15.0 to 5.16.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.16.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 46 ++++++---------------------------------------- 1 file changed, 6 insertions(+), 40 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0bc3917d..771130e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -897,23 +897,15 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.4.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.15.0.tgz#95f603f8fe6eca7952a99bfeef9b85992972e728" - integrity sha512-NGAYP/+RDM2sVfmKiKOCgJYPstAO40vPAgACoWPO/+yoYKSgAXIFaBKsV8P0Cc7fwKgvj27SjRNX4L7f4/jCKQ== + version "5.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.16.0.tgz#e4de1bde4b4dad5b6124d3da227347616ed55508" + integrity sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA== dependencies: - "@typescript-eslint/scope-manager" "5.15.0" - "@typescript-eslint/types" "5.15.0" - "@typescript-eslint/typescript-estree" "5.15.0" + "@typescript-eslint/scope-manager" "5.16.0" + "@typescript-eslint/types" "5.16.0" + "@typescript-eslint/typescript-estree" "5.16.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.15.0.tgz#d97afab5e0abf4018d1289bd711be21676cdd0ee" - integrity sha512-EFiZcSKrHh4kWk0pZaa+YNJosvKE50EnmN4IfgjkA3bTHElPtYcd2U37QQkNTqwMCS7LXeDeZzEqnsOH8chjSg== - dependencies: - "@typescript-eslint/types" "5.15.0" - "@typescript-eslint/visitor-keys" "5.15.0" - "@typescript-eslint/scope-manager@5.16.0": version "5.16.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz#7e7909d64bd0c4d8aef629cdc764b9d3e1d3a69a" @@ -931,29 +923,11 @@ debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.15.0.tgz#c7bdd103843b1abae97b5518219d3e2a0d79a501" - integrity sha512-yEiTN4MDy23vvsIksrShjNwQl2vl6kJeG9YkVJXjXZnkJElzVK8nfPsWKYxcsGWG8GhurYXP4/KGj3aZAxbeOA== - "@typescript-eslint/types@5.16.0": version "5.16.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== -"@typescript-eslint/typescript-estree@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.15.0.tgz#81513a742a9c657587ad1ddbca88e76c6efb0aac" - integrity sha512-Hb0e3dGc35b75xLzixM3cSbG1sSbrTBQDfIScqdyvrfJZVEi4XWAT+UL/HMxEdrJNB8Yk28SKxPLtAhfCbBInA== - dependencies: - "@typescript-eslint/types" "5.15.0" - "@typescript-eslint/visitor-keys" "5.15.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.16.0": version "5.16.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz#32259459ec62f5feddca66adc695342f30101f61" @@ -979,14 +953,6 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.15.0": - version "5.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.15.0.tgz#5669739fbf516df060f978be6a6dce75855a8027" - integrity sha512-+vX5FKtgvyHbmIJdxMJ2jKm9z2BIlXJiuewI8dsDYMp5LzPUcuTT78Ya5iwvQg3VqSVdmxyM8Anj1Jeq7733ZQ== - dependencies: - "@typescript-eslint/types" "5.15.0" - eslint-visitor-keys "^3.0.0" - "@typescript-eslint/visitor-keys@5.16.0": version "5.16.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz#f27dc3b943e6317264c7492e390c6844cd4efbbb" From b64b3f8ce91df202a012b704709b4077ee6e8b4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Mar 2022 12:01:52 +0000 Subject: [PATCH 016/262] Bump @types/node from 17.0.22 to 17.0.23 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.22 to 17.0.23. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 771130e3..d78a39e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -855,9 +855,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*", "@types/node@^17.0.0": - version "17.0.22" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.22.tgz#38b6c4b9b2f3ed9f2e376cce42a298fb2375251e" - integrity sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw== + version "17.0.23" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.23.tgz#3b41a6e643589ac6442bdbd7a4a3ded62f33f7da" + integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== "@types/prettier@^2.1.5", "@types/prettier@^2.4.2": version "2.4.4" From 2ff054ef02a2f36125e7c606866f80bbfcc80b22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Mar 2022 12:26:54 +0000 Subject: [PATCH 017/262] Bump minimist from 1.2.5 to 1.2.6 Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d78a39e2..b7f563fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2684,9 +2684,9 @@ minimatch@^3.0.4: brace-expansion "^1.1.7" minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== mri@^1.1.5: version "1.2.0" From fc5ed5855791e32a019aaf2b2829fbc6fa6026bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 12:01:43 +0000 Subject: [PATCH 018/262] Bump typescript from 4.6.2 to 4.6.3 Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.6.2 to 4.6.3. - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Commits](https://github.com/Microsoft/TypeScript/compare/v4.6.2...v4.6.3) --- updated-dependencies: - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b7f563fe..424e39eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3304,9 +3304,9 @@ typedarray-to-buffer@^3.1.5: is-typedarray "^1.0.0" typescript@^4.5.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" - integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== + version "4.6.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" + integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== universalify@^0.1.2: version "0.1.2" From 39e77d82195931059a7d373ac95d4e4dd526f533 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 12:01:55 +0000 Subject: [PATCH 019/262] Bump prettier from 2.5.1 to 2.6.1 Bumps [prettier](https://github.com/prettier/prettier) from 2.5.1 to 2.6.1. - [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/2.5.1...2.6.1) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b7f563fe..a2a12ed5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2878,9 +2878,9 @@ prelude-ls@~1.1.2: integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prettier@>=2.3.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" - integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== + version "2.6.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.1.tgz#d472797e0d7461605c1609808e27b80c0f9cfe17" + integrity sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A== pretty-format@^27.0.0, pretty-format@^27.5.1: version "27.5.1" From 96f2e2fa6619417eded26956f25656bdedce2068 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 12:02:04 +0000 Subject: [PATCH 020/262] Bump ts-jest from 27.1.3 to 27.1.4 Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 27.1.3 to 27.1.4. - [Release notes](https://github.com/kulshekhar/ts-jest/releases) - [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/kulshekhar/ts-jest/compare/v27.1.3...v27.1.4) --- updated-dependencies: - dependency-name: ts-jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/yarn.lock b/yarn.lock index b7f563fe..cff3fa61 100644 --- a/yarn.lock +++ b/yarn.lock @@ -695,17 +695,6 @@ source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^27.4.2": - version "27.4.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.4.2.tgz#96536ebd34da6392c2b7c7737d693885b5dd44a5" - integrity sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - "@jest/types@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" @@ -1847,11 +1836,6 @@ globby@^11.0.4: merge2 "^1.3.0" slash "^3.0.0" -graceful-fs@^4.2.4: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== - graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" @@ -2415,19 +2399,7 @@ jest-snapshot@^27.5.1: pretty-format "^27.5.1" semver "^7.3.2" -jest-util@^27.0.0: - version "27.4.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.4.2.tgz#ed95b05b1adfd761e2cda47e0144c6a58e05a621" - integrity sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA== - dependencies: - "@jest/types" "^27.4.2" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.4" - picomatch "^2.2.3" - -jest-util@^27.5.1: +jest-util@^27.0.0, jest-util@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== @@ -3223,9 +3195,9 @@ tr46@^2.1.0: punycode "^2.1.1" ts-jest@^27.0.5: - version "27.1.3" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.3.tgz#1f723e7e74027c4da92c0ffbd73287e8af2b2957" - integrity sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA== + version "27.1.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.4.tgz#84d42cf0f4e7157a52e7c64b1492c46330943e00" + integrity sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" From 650af6d65f2d2135e94da18a483af3037c928028 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 25 Mar 2022 09:51:07 -0400 Subject: [PATCH 021/262] Fix gem build --- prettier.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prettier.gemspec b/prettier.gemspec index c2dbbbf5..2d7da08e 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |spec| %w[LICENSE bin/console package.json rubocop.yml] + Dir['{{exe,lib,dist}/**/*,*.md}'] + Dir[ - 'node_modules/prettier/{package.json,index.js,doc.js,bin-prettier.js,third-party.js,parser-*.js}' + 'node_modules/prettier/{package.json,index.js,cli.js,doc.js,bin-prettier.js,third-party.js,parser-*.js}' ] end From a614110c174906c36bd6f1835d025581f87e3988 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 25 Mar 2022 09:52:27 -0400 Subject: [PATCH 022/262] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b92a3eb..579d20d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a - [#1035](https://github.com/prettier/plugin-ruby/issues/1035) - qcn, kddnewton - Ensure we don't try to print `return` incorrectly when multiple statements are contained within parentheses. - [#1048](https://github.com/prettier/plugin-ruby/pull/1048) - kddnewton - Completely refactor the Ruby parser to use classes instead of hashes. Also remove a lot of the `body` keys are replace them with actual names. - [#1042](https://github.com/prettier/plugin-ruby/issues/1042) - JoshuaKGoldberg, kddnewton - Ensure blocks are printed correctly when there are trailing comments on the `do` keyword. +- [#1134](https://github.com/prettier/plugin-ruby/pull/1134) - mhssmnn - Fix piping for STDIN to the gem process. ### Removed From 3c0e1a0fd9a4e06e67d426a831a0c362023cae42 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 25 Mar 2022 09:53:56 -0400 Subject: [PATCH 023/262] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 579d20d6..e8f98cef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a - [#1048](https://github.com/prettier/plugin-ruby/pull/1048) - kddnewton - Completely refactor the Ruby parser to use classes instead of hashes. Also remove a lot of the `body` keys are replace them with actual names. - [#1042](https://github.com/prettier/plugin-ruby/issues/1042) - JoshuaKGoldberg, kddnewton - Ensure blocks are printed correctly when there are trailing comments on the `do` keyword. - [#1134](https://github.com/prettier/plugin-ruby/pull/1134) - mhssmnn - Fix piping for STDIN to the gem process. +- [#1167](https://github.com/prettier/plugin-ruby/pull/1167) - dleavitt - More consistent assignment indentation. ### Removed From afd9bac6ae51da2205c2aae6af6e6d90392200d1 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 25 Mar 2022 10:16:27 -0400 Subject: [PATCH 024/262] Fix up formatting on main --- lib/prettier.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/prettier.rb b/lib/prettier.rb index e6a8b5be..973112e7 100644 --- a/lib/prettier.rb +++ b/lib/prettier.rb @@ -12,11 +12,8 @@ def self.run(args) quoted = args.map { |arg| arg.start_with?('-') ? arg : "\"#{arg}\"" } command = "node #{BINARY} --plugin \"#{PLUGIN}\" #{quoted.join(' ')}" - stdout, stderr, status = Open3.capture3( - { 'RBPRETTIER' => '1' }, - command, - stdin_data: STDIN - ) + stdout, stderr, status = + Open3.capture3({ 'RBPRETTIER' => '1' }, command, stdin_data: STDIN) STDOUT.puts(stdout) # If we completed successfully, then just exit out. From 8a678584ef7ee7baa91e3a9eed209c426ce4417e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 12:01:43 +0000 Subject: [PATCH 025/262] Bump eslint from 8.11.0 to 8.12.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.11.0 to 8.12.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.11.0...v8.12.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 85a16fd1..6e806293 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1527,9 +1527,9 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.1.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.11.0.tgz#88b91cfba1356fc10bb9eb592958457dfe09fb37" - integrity sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA== + version "8.12.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.12.0.tgz#c7a5bd1cfa09079aae64c9076c07eada66a46e8e" + integrity sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q== dependencies: "@eslint/eslintrc" "^1.2.1" "@humanwhocodes/config-array" "^0.9.2" From fb287405b64b37b91a9ac4687a2abb04ca53631d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 12:01:34 +0000 Subject: [PATCH 026/262] Bump @typescript-eslint/eslint-plugin from 5.16.0 to 5.17.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.16.0 to 5.17.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.17.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 70 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 52 insertions(+), 18 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6e806293..eb7872b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -871,13 +871,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.4.0": - version "5.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz#78f246dd8d1b528fc5bfca99a8a64d4023a3d86d" - integrity sha512-SJoba1edXvQRMmNI505Uo4XmGbxCK9ARQpkvOd00anxzri9RNQk0DDCxD+LIl+jYhkzOJiOMMKYEHnHEODjdCw== + version "5.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz#704eb4e75039000531255672bf1c85ee85cf1d67" + integrity sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ== dependencies: - "@typescript-eslint/scope-manager" "5.16.0" - "@typescript-eslint/type-utils" "5.16.0" - "@typescript-eslint/utils" "5.16.0" + "@typescript-eslint/scope-manager" "5.17.0" + "@typescript-eslint/type-utils" "5.17.0" + "@typescript-eslint/utils" "5.17.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -903,12 +903,20 @@ "@typescript-eslint/types" "5.16.0" "@typescript-eslint/visitor-keys" "5.16.0" -"@typescript-eslint/type-utils@5.16.0": - version "5.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.16.0.tgz#b482bdde1d7d7c0c7080f7f2f67ea9580b9e0692" - integrity sha512-SKygICv54CCRl1Vq5ewwQUJV/8padIWvPgCxlWPGO/OgQLCijY9G7lDu6H+mqfQtbzDNlVjzVWQmeqbLMBLEwQ== +"@typescript-eslint/scope-manager@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" + integrity sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w== + dependencies: + "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/visitor-keys" "5.17.0" + +"@typescript-eslint/type-utils@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz#1c4549d68c89877662224aabb29fbbebf5fc9672" + integrity sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg== dependencies: - "@typescript-eslint/utils" "5.16.0" + "@typescript-eslint/utils" "5.17.0" debug "^4.3.2" tsutils "^3.21.0" @@ -917,6 +925,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== +"@typescript-eslint/types@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" + integrity sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw== + "@typescript-eslint/typescript-estree@5.16.0": version "5.16.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz#32259459ec62f5feddca66adc695342f30101f61" @@ -930,15 +943,28 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.16.0": - version "5.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.16.0.tgz#42218b459d6d66418a4eb199a382bdc261650679" - integrity sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ== +"@typescript-eslint/typescript-estree@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" + integrity sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg== + dependencies: + "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/visitor-keys" "5.17.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.17.0.tgz#549a9e1d491c6ccd3624bc3c1b098f5cfb45f306" + integrity sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.16.0" - "@typescript-eslint/types" "5.16.0" - "@typescript-eslint/typescript-estree" "5.16.0" + "@typescript-eslint/scope-manager" "5.17.0" + "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/typescript-estree" "5.17.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" @@ -950,6 +976,14 @@ "@typescript-eslint/types" "5.16.0" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.17.0": + version "5.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" + integrity sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA== + dependencies: + "@typescript-eslint/types" "5.17.0" + eslint-visitor-keys "^3.0.0" + abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" From 3336b954a0e96879e3bdda85cada8cb5661a0a5a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 12:10:06 +0000 Subject: [PATCH 027/262] Bump @typescript-eslint/parser from 5.16.0 to 5.17.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.16.0 to 5.17.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.17.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 46 ++++++---------------------------------------- 1 file changed, 6 insertions(+), 40 deletions(-) diff --git a/yarn.lock b/yarn.lock index eb7872b5..e908a964 100644 --- a/yarn.lock +++ b/yarn.lock @@ -886,23 +886,15 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.4.0": - version "5.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.16.0.tgz#e4de1bde4b4dad5b6124d3da227347616ed55508" - integrity sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA== + version "5.17.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.17.0.tgz#7def77d5bcd8458d12d52909118cf3f0a45f89d5" + integrity sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig== dependencies: - "@typescript-eslint/scope-manager" "5.16.0" - "@typescript-eslint/types" "5.16.0" - "@typescript-eslint/typescript-estree" "5.16.0" + "@typescript-eslint/scope-manager" "5.17.0" + "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/typescript-estree" "5.17.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.16.0": - version "5.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.16.0.tgz#7e7909d64bd0c4d8aef629cdc764b9d3e1d3a69a" - integrity sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ== - dependencies: - "@typescript-eslint/types" "5.16.0" - "@typescript-eslint/visitor-keys" "5.16.0" - "@typescript-eslint/scope-manager@5.17.0": version "5.17.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" @@ -920,29 +912,11 @@ debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.16.0": - version "5.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.16.0.tgz#5827b011982950ed350f075eaecb7f47d3c643ee" - integrity sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g== - "@typescript-eslint/types@5.17.0": version "5.17.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" integrity sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw== -"@typescript-eslint/typescript-estree@5.16.0": - version "5.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.16.0.tgz#32259459ec62f5feddca66adc695342f30101f61" - integrity sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ== - dependencies: - "@typescript-eslint/types" "5.16.0" - "@typescript-eslint/visitor-keys" "5.16.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.17.0": version "5.17.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" @@ -968,14 +942,6 @@ eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.16.0": - version "5.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.16.0.tgz#f27dc3b943e6317264c7492e390c6844cd4efbbb" - integrity sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g== - dependencies: - "@typescript-eslint/types" "5.16.0" - eslint-visitor-keys "^3.0.0" - "@typescript-eslint/visitor-keys@5.17.0": version "5.17.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" From 41ff7ad1341a9b26367f4eb8e0f0af9dcc185f64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Apr 2022 12:01:26 +0000 Subject: [PATCH 028/262] Bump prettier from 2.6.1 to 2.6.2 Bumps [prettier](https://github.com/prettier/prettier) from 2.6.1 to 2.6.2. - [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/2.6.1...2.6.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index e908a964..b3f5cd56 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2850,9 +2850,9 @@ prelude-ls@~1.1.2: integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prettier@>=2.3.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.1.tgz#d472797e0d7461605c1609808e27b80c0f9cfe17" - integrity sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A== + version "2.6.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" + integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== pretty-format@^27.0.0, pretty-format@^27.5.1: version "27.5.1" From d3e7566ceb563c7d931709b6d77c1d5249eb8369 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 4 Apr 2022 19:58:38 -0400 Subject: [PATCH 029/262] PRETTIER_RUBY_TIMEOUT_MS --- CHANGELOG.md | 4 + package.json | 4 +- src/parser/getInfo.js | 11 +- yarn.lock | 708 ++++++++++++++++-------------------------- 4 files changed, 284 insertions(+), 443 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8f98cef..d8bf5302 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +### Added + +- kddnewton - The ability to set the `PRETTIER_RUBY_TIMEOUT_MS` environment variable to control how long to wait for the parser server to spin up. + ### Changed - [#1028](https://github.com/prettier/plugin-ruby/issues/1028) - levymetal, kddnewton - Fix up some nested formatting with very complicated RSpec assertions. diff --git a/package.json b/package.json index 6d87ad18..2a4317c2 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "@types/jest": "^27.0.1", "@types/node": "^17.0.0", "@types/prettier": "^2.4.2", - "@typescript-eslint/eslint-plugin": "^5.4.0", - "@typescript-eslint/parser": "^5.4.0", + "@typescript-eslint/eslint-plugin": "^5.18.0", + "@typescript-eslint/parser": "^5.18.0", "eslint": "^8.1.0", "eslint-config-prettier": "^8.0.0", "husky": "^7.0.0", diff --git a/src/parser/getInfo.js b/src/parser/getInfo.js index 1243c224..a35cc368 100644 --- a/src/parser/getInfo.js +++ b/src/parser/getInfo.js @@ -1,12 +1,19 @@ // eslint-disable-next-line @typescript-eslint/no-var-requires const { existsSync, readFileSync } = require("fs"); +// This is how long to wait for the parser to spin up. For the most part, 5 +// seconds is plenty of time. But in some environments, it may be necessary to +// increase this value. +const timeoutMs = parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "5000", 10); + const filepath = process.argv[process.argv.length - 1]; const timeout = setTimeout(() => { clearInterval(interval); - throw new Error("Failed to get information from parse server in time."); -}, 5000); + throw new Error(`Failed to get information from parse server in time. If this + happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment + variable beyond 5000.`); +}, timeoutMs); const interval = setInterval(() => { if (existsSync(filepath)) { diff --git a/yarn.lock b/yarn.lock index b3f5cd56..04a60927 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,101 +2,61 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== dependencies: "@babel/highlight" "^7.16.7" -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" - integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== - dependencies: - "@babel/highlight" "^7.16.0" - -"@babel/compat-data@^7.16.0", "@babel/compat-data@^7.16.4": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" - integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== - -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" - integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-compilation-targets" "^7.16.0" - "@babel/helper-module-transforms" "^7.16.0" - "@babel/helpers" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" +"@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== -"@babel/core@^7.8.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.7.tgz#db990f931f6d40cb9b87a0dc7d2adc749f1dcbcf" - integrity sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA== +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" + integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== dependencies: + "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.7" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.16.7" - "@babel/parser" "^7.16.7" + "@babel/generator" "^7.17.7" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.8" + "@babel/parser" "^7.17.8" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.1.2" semver "^6.3.0" - source-map "^0.5.0" -"@babel/generator@^7.16.0", "@babel/generator@^7.7.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" - integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== +"@babel/generator@^7.17.3", "@babel/generator@^7.17.7", "@babel/generator@^7.7.2": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" + integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.17.0" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.7.tgz#b42bf46a3079fa65e1544135f32e7958f048adbb" - integrity sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg== +"@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== dependencies: - "@babel/types" "^7.16.7" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-compilation-targets@^7.16.0": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" - integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== - dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" - integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== - dependencies: - "@babel/compat-data" "^7.16.4" + "@babel/compat-data" "^7.17.7" "@babel/helper-validator-option" "^7.16.7" browserslist "^4.17.5" semver "^6.3.0" @@ -108,15 +68,6 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" - integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== - dependencies: - "@babel/helper-get-function-arity" "^7.16.0" - "@babel/template" "^7.16.0" - "@babel/types" "^7.16.0" - "@babel/helper-function-name@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" @@ -126,13 +77,6 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-get-function-arity@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" - integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-get-function-arity@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" @@ -140,13 +84,6 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-hoist-variables@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" - integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-hoist-variables@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" @@ -154,20 +91,6 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-member-expression-to-functions@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz#29287040efd197c77636ef75188e81da8bccd5a4" - integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-module-imports@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" - integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== - dependencies: - "@babel/types" "^7.16.0" - "@babel/helper-module-imports@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" @@ -175,76 +98,31 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-module-transforms@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz#1c82a8dd4cb34577502ebd2909699b194c3e9bb5" - integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA== - dependencies: - "@babel/helper-module-imports" "^7.16.0" - "@babel/helper-replace-supers" "^7.16.0" - "@babel/helper-simple-access" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/helper-validator-identifier" "^7.15.7" - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - -"@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" - integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== +"@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== dependencies: "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^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.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-optimise-call-expression@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" - integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== - dependencies: - "@babel/types" "^7.16.0" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" -"@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.8.0": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== - -"@babel/helper-replace-supers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" - integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.16.0" - "@babel/helper-optimise-call-expression" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helper-simple-access@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" - integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== - dependencies: - "@babel/types" "^7.16.0" - -"@babel/helper-simple-access@^7.16.7": +"@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.8.0": version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" - integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== - dependencies: - "@babel/types" "^7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== -"@babel/helper-split-export-declaration@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" - integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== +"@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== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.17.0" "@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" @@ -253,71 +131,38 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-validator-identifier@^7.15.7": - version "7.15.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" - integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== - "@babel/helper-validator-identifier@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== - "@babel/helper-validator-option@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== -"@babel/helpers@^7.16.0": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.3.tgz#27fc64f40b996e7074dc73128c3e5c3e7f55c43c" - integrity sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w== - dependencies: - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.3" - "@babel/types" "^7.16.0" - -"@babel/helpers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc" - integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw== +"@babel/helpers@^7.17.8": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.8.tgz#288450be8c6ac7e4e44df37bcc53d345e07bc106" + integrity sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw== dependencies: "@babel/template" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/highlight@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" - integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" "@babel/highlight@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.7.tgz#81a01d7d675046f0d96f82450d9d9578bdfd6b0b" - integrity sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw== + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.0", "@babel/parser@^7.16.3": - version "7.16.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" - integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== - -"@babel/parser@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.7.tgz#d372dda9c89fcec340a82630a9f533f2fe15877e" - integrity sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" + integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -404,22 +249,13 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz#2feeb13d9334cc582ea9111d3506f773174179bb" - integrity sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/template@^7.16.0", "@babel/template@^7.3.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" - integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" + integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" + "@babel/helper-plugin-utils" "^7.16.7" -"@babel/template@^7.16.7": +"@babel/template@^7.16.7", "@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== @@ -428,49 +264,26 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3", "@babel/traverse@^7.7.2": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" - integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.3" - "@babel/types" "^7.16.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.7.tgz#dac01236a72c2560073658dd1a285fe4e0865d76" - integrity sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ== +"@babel/traverse@^7.17.3", "@babel/traverse@^7.7.2": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.16.7" + "@babel/generator" "^7.17.3" "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-function-name" "^7.16.7" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/parser" "^7.17.3" + "@babel/types" "^7.17.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" - integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== - dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.7.tgz#4ed19d51f840ed4bd5645be6ce40775fecf03159" - integrity sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg== +"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -508,9 +321,9 @@ strip-json-comments "^3.1.1" "@humanwhocodes/config-array@^0.9.2": - version "0.9.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914" - integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA== + version "0.9.5" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" + integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -706,6 +519,24 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@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" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@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" @@ -767,9 +598,9 @@ integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.1.16" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.16.tgz#bc12c74b7d65e82d29876b5d0baf5c625ac58702" - integrity sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ== + version "7.1.19" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" + integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -778,9 +609,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" - integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== dependencies: "@babel/types" "^7.0.0" @@ -807,9 +638,9 @@ "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" - integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + 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-report@*": version "3.0.0" @@ -834,9 +665,9 @@ pretty-format "^27.0.0" "@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/minimatch@^3.0.3": version "3.0.5" @@ -859,9 +690,9 @@ integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/yargs-parser@*": - version "20.2.1" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" - integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^16.0.0": version "16.0.4" @@ -870,14 +701,14 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.4.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz#704eb4e75039000531255672bf1c85ee85cf1d67" - integrity sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ== +"@typescript-eslint/eslint-plugin@^5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.18.0.tgz#950df411cec65f90d75d6320a03b2c98f6c3af7d" + integrity sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A== dependencies: - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/type-utils" "5.17.0" - "@typescript-eslint/utils" "5.17.0" + "@typescript-eslint/scope-manager" "5.18.0" + "@typescript-eslint/type-utils" "5.18.0" + "@typescript-eslint/utils" "5.18.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -885,69 +716,69 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.4.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.17.0.tgz#7def77d5bcd8458d12d52909118cf3f0a45f89d5" - integrity sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig== +"@typescript-eslint/parser@^5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.18.0.tgz#2bcd4ff21df33621df33e942ccb21cb897f004c6" + integrity sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ== dependencies: - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/typescript-estree" "5.17.0" + "@typescript-eslint/scope-manager" "5.18.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/typescript-estree" "5.18.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz#4cea7d0e0bc0e79eb60cad431c89120987c3f952" - integrity sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w== +"@typescript-eslint/scope-manager@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz#a7d7b49b973ba8cebf2a3710eefd457ef2fb5505" + integrity sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ== dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/visitor-keys" "5.18.0" -"@typescript-eslint/type-utils@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz#1c4549d68c89877662224aabb29fbbebf5fc9672" - integrity sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg== +"@typescript-eslint/type-utils@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz#62dbfc8478abf36ba94a90ddf10be3cc8e471c74" + integrity sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA== dependencies: - "@typescript-eslint/utils" "5.17.0" + "@typescript-eslint/utils" "5.18.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.17.0.tgz#861ec9e669ffa2aa9b873dd4d28d9b1ce26d216f" - integrity sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw== +"@typescript-eslint/types@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.18.0.tgz#4f0425d85fdb863071680983853c59a62ce9566e" + integrity sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw== -"@typescript-eslint/typescript-estree@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz#a7cba7dfc8f9cc2ac78c18584e684507df4f2488" - integrity sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg== +"@typescript-eslint/typescript-estree@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz#6498e5ee69a32e82b6e18689e2f72e4060986474" + integrity sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ== dependencies: - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/visitor-keys" "5.17.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/visitor-keys" "5.18.0" debug "^4.3.2" globby "^11.0.4" is-glob "^4.0.3" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.17.0.tgz#549a9e1d491c6ccd3624bc3c1b098f5cfb45f306" - integrity sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA== +"@typescript-eslint/utils@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.18.0.tgz#27fc84cf95c1a96def0aae31684cb43a37e76855" + integrity sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.17.0" - "@typescript-eslint/types" "5.17.0" - "@typescript-eslint/typescript-estree" "5.17.0" + "@typescript-eslint/scope-manager" "5.18.0" + "@typescript-eslint/types" "5.18.0" + "@typescript-eslint/typescript-estree" "5.18.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.17.0": - version "5.17.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz#52daae45c61b0211b4c81b53a71841911e479128" - integrity sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA== +"@typescript-eslint/visitor-keys@5.18.0": + version "5.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz#c7c07709823804171d569017f3b031ced7253e60" + integrity sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg== dependencies: - "@typescript-eslint/types" "5.17.0" + "@typescript-eslint/types" "5.18.0" eslint-visitor-keys "^3.0.0" abab@^2.0.3, abab@^2.0.5: @@ -1155,7 +986,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.1: +braces@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -1168,14 +999,14 @@ browser-process-hrtime@^1.0.0: integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== browserslist@^4.17.5: - version "4.18.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" - integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== + version "4.20.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" + integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== dependencies: - caniuse-lite "^1.0.30001280" - electron-to-chromium "^1.3.896" + caniuse-lite "^1.0.30001317" + electron-to-chromium "^1.4.84" escalade "^3.1.1" - node-releases "^2.0.1" + node-releases "^2.0.2" picocolors "^1.0.0" bs-logger@0.x: @@ -1208,14 +1039,14 @@ camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.2.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" - integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001280: - version "1.0.30001282" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz#38c781ee0a90ccfe1fe7fefd00e43f5ffdcb96fd" - integrity sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg== +caniuse-lite@^1.0.30001317: + version "1.0.30001325" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001325.tgz#2b4ad19b77aa36f61f2eaf72e636d7481d55e606" + integrity sha512-sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ== chalk@^2.0.0: version "2.4.2" @@ -1248,9 +1079,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== ci-info@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== + version "3.3.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" + integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== cjs-module-lexer@^1.0.0: version "1.2.2" @@ -1360,9 +1191,9 @@ data-urls@^2.0.0: whatwg-url "^8.0.0" debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" @@ -1427,10 +1258,10 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -electron-to-chromium@^1.3.896: - version "1.3.901" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.901.tgz#ce2c3157d61bce9f42f1e83225c17358ae9f4918" - integrity sha512-ToJdV2vzwT2jeAsw8zIggTFllJ4Kxvwghk39AhJEHHlIxor10wsFI3wo69p8nFc0s/ATWBqugPv/k3nW4Y9Mww== +electron-to-chromium@^1.4.84: + version "1.4.103" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz#abfe376a4d70fa1e1b4b353b95df5d6dfd05da3a" + integrity sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg== emittery@^0.8.1: version "0.8.1" @@ -1660,10 +1491,10 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" - integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== +fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -1726,9 +1557,9 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" - integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== form-data@^3.0.0: version "3.0.1" @@ -1818,28 +1649,28 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e" - integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg== + version "13.13.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.13.0.tgz#ac32261060d8070e2719dd6998406e27d2b5727b" + integrity sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A== dependencies: type-fest "^0.20.2" globby@^11.0.4: - version "11.0.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" - integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" - fast-glob "^3.1.1" - ignore "^5.1.4" - merge2 "^1.3.0" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" slash "^3.0.0" 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== + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== has-flag@^3.0.0: version "3.0.0" @@ -1923,9 +1754,9 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: resolve-from "^4.0.0" import-local@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0" - integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -1953,10 +1784,10 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-core-module@^2.2.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" - integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== +is-core-module@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== dependencies: has "^1.0.3" @@ -2042,9 +1873,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.3.tgz#4bcae3103b94518117930d51283690960b50d3c2" - integrity sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg== + 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" @@ -2528,11 +2359,9 @@ json-stable-stringify-without-jsonify@^1.0.1: integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json5@2.x, json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" + 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" @@ -2618,30 +2447,30 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== +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.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + 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== dependencies: - mime-db "1.51.0" + mime-db "1.52.0" mimic-fn@^2.1.0: version "2.1.0" @@ -2649,17 +2478,12 @@ mimic-fn@^2.1.0: integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - mri@^1.1.5: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" @@ -2691,10 +2515,10 @@ 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.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" - integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== +node-releases@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" + integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== normalize-path@^3.0.0: version "3.0.0" @@ -2807,7 +2631,7 @@ 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-parse@^1.0.6: +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== @@ -2822,15 +2646,15 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +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== pirates@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.4.tgz#07df81e61028e402735cdd49db701e4885b4e6e6" - integrity sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw== + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== pkg-dir@^4.2.0: version "4.2.0" @@ -2944,12 +2768,13 @@ resolve.exports@^1.1.0: integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== resolve@^1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" reusify@^1.0.4: version "1.0.4" @@ -3012,9 +2837,9 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.5" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" - integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== + 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== sisteransi@^1.0.5: version "1.0.5" @@ -3027,9 +2852,9 @@ slash@^3.0.0: integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== source-map-support@^0.5.6: - version "0.5.20" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" - integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -3129,6 +2954,11 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -3303,9 +3133,9 @@ v8-compile-cache@^2.0.3: integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== v8-to-istanbul@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz#0aeb763894f1a0a1676adf8a8b7612a38902446c" - integrity sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA== + version "8.1.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" + integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -3400,9 +3230,9 @@ write-file-atomic@^3.0.0: typedarray-to-buffer "^3.1.5" ws@^7.4.6: - version "7.5.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" - integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== + version "7.5.7" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== xml-name-validator@^3.0.0: version "3.0.0" From 143833f73062ffd38534b759017024edb5c7f31b Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 4 Apr 2022 20:18:25 -0400 Subject: [PATCH 030/262] Fix up `return` when nodes return arrays of docs. --- CHANGELOG.md | 1 + src/ruby/nodes/return.ts | 14 +++++++++----- test/js/ruby/nodes/return.test.ts | 8 ++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d8bf5302..d31e151f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a - [#1042](https://github.com/prettier/plugin-ruby/issues/1042) - JoshuaKGoldberg, kddnewton - Ensure blocks are printed correctly when there are trailing comments on the `do` keyword. - [#1134](https://github.com/prettier/plugin-ruby/pull/1134) - mhssmnn - Fix piping for STDIN to the gem process. - [#1167](https://github.com/prettier/plugin-ruby/pull/1167) - dleavitt - More consistent assignment indentation. +- [#1074](https://github.com/prettier/plugin-ruby/issues/1074) - wagenet, kddnewton - Fix up `return` when nodes return arrays of docs. ### Removed diff --git a/src/ruby/nodes/return.ts b/src/ruby/nodes/return.ts index 1521f612..53203211 100644 --- a/src/ruby/nodes/return.ts +++ b/src/ruby/nodes/return.ts @@ -42,6 +42,7 @@ function canSkipParens(paren: Ruby.Paren) { export const printReturn: Plugin.Printer = (path, opts, print) => { const node = path.getValue(); let parts: Plugin.Doc | Plugin.Doc[] = ""; + let joining = false; if (node.args.type === "args_add_block") { const args = node.args.args; @@ -83,20 +84,23 @@ export const printReturn: Plugin.Printer = (path, opts, print) => { // possible that you're printing an array nested under some parentheses, in // which case we still want to descend down that far. For example, // return([1, 2, 3]) should print as return 1, 2, 3. - parts = (path as any).call(print, ...steps); + parts = (path as any).call((targetPath: Plugin.Path) => { + const target = targetPath.getValue(); + joining = target.type === "args" || target.type === "args_add_block"; + + return print(targetPath); + }, ...steps); } // If we didn't hit any of our special cases, then just print out the // arguments normally here. if (parts === "") { parts = path.call(print, "args"); + joining = true; } const useBrackets = Array.isArray(parts) && parts.length > 1; - - // If we got the value straight out of the parens, then `parts` would only - // be a singular doc as opposed to an array. - const value = Array.isArray(parts) ? join([",", line], parts) : parts; + const value = joining ? join([",", line], parts) : parts; return group([ "return", diff --git a/test/js/ruby/nodes/return.test.ts b/test/js/ruby/nodes/return.test.ts index 1a20f7b2..dc2f6e03 100644 --- a/test/js/ruby/nodes/return.test.ts +++ b/test/js/ruby/nodes/return.test.ts @@ -92,4 +92,12 @@ describe("return", () => { expect(content).toMatchFormat(); }); + + test("returning a value with a modifier if", () => { + const content = ruby(` + return :inactive if given_date.before?(first_event_date) + `); + + expect(content).toMatchFormat(); + }); }); From e0065af129e11b18cca9076834d4836df7f48d14 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 4 Apr 2022 20:27:34 -0400 Subject: [PATCH 031/262] Update CHANGELOG --- .github/workflows/main.yml | 1 - CHANGELOG.md | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c7d76b3a..f9fb05b4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,6 @@ jobs: - "2.6" - "2.7" - "3.0" - - "3.1" runs-on: ${{ matrix.platform }} env: PLUGIN_RUBY_CI: true diff --git a/CHANGELOG.md b/CHANGELOG.md index d31e151f..9f69534d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ### Added -- kddnewton - The ability to set the `PRETTIER_RUBY_TIMEOUT_MS` environment variable to control how long to wait for the parser server to spin up. +- [#1065](https://github.com/prettier/plugin-ruby/issues/1065) - langalex, kddnewton - The ability to set the `PRETTIER_RUBY_TIMEOUT_MS` environment variable to control how long to wait for the parser server to spin up. +- [#1173](https://github.com/prettier/plugin-ruby/pull/1173) - dleavitt - Support for RBS 2.x on Ruby 3.1. ### Changed From cffe655473c518072bb99324d12d02664a783d52 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 4 Apr 2022 20:33:54 -0400 Subject: [PATCH 032/262] Bump to v2.1.0 --- CHANGELOG.md | 5 ++++- package.json | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f69534d..17796c03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [2.1.0] - 2022-04-04 + ### Added - [#1065](https://github.com/prettier/plugin-ruby/issues/1065) - langalex, kddnewton - The ability to set the `PRETTIER_RUBY_TIMEOUT_MS` environment variable to control how long to wait for the parser server to spin up. @@ -1206,7 +1208,8 @@ would previously result in `array[]`, but now prints properly. - Initial release 🎉 -[unreleased]: https://github.com/prettier/plugin-ruby/compare/v2.0.0...HEAD +[unreleased]: https://github.com/prettier/plugin-ruby/compare/v2.1.0...HEAD +[2.1.0]: https://github.com/prettier/plugin-ruby/compare/v2.0.0...v2.1.0 [2.0.0]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc4...v2.0.0 [2.0.0-rc4]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc3...v2.0.0-rc4 [2.0.0-rc3]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc2...v2.0.0-rc3 diff --git a/package.json b/package.json index 2a4317c2..fd51b2bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "2.0.0", + "version": "2.1.0", "description": "prettier plugin for the Ruby programming language", "main": "dist/plugin.js", "scripts": { From 22fb1cd784f3c43cd230e3fa158f2f33abc2824b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 12:01:49 +0000 Subject: [PATCH 033/262] Bump eslint from 8.12.0 to 8.13.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.12.0 to 8.13.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.12.0...v8.13.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 04a60927..a7ba538e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1358,9 +1358,9 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.1.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.12.0.tgz#c7a5bd1cfa09079aae64c9076c07eada66a46e8e" - integrity sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q== + version "8.13.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.13.0.tgz#6fcea43b6811e655410f5626cfcf328016badcd7" + integrity sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ== dependencies: "@eslint/eslintrc" "^1.2.1" "@humanwhocodes/config-array" "^0.9.2" From 99378e5734621591f48c39f59c1ead846760b5e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 12:01:56 +0000 Subject: [PATCH 034/262] Bump @types/prettier from 2.4.4 to 2.6.0 Bumps [@types/prettier](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/prettier) from 2.4.4 to 2.6.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/prettier) --- updated-dependencies: - dependency-name: "@types/prettier" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 04a60927..5ed44c34 100644 --- a/yarn.lock +++ b/yarn.lock @@ -680,9 +680,9 @@ integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== "@types/prettier@^2.1.5", "@types/prettier@^2.4.2": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17" - integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA== + version "2.6.0" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759" + integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== "@types/stack-utils@^2.0.0": version "2.0.1" From 2d3611ad99c9b424ec57e3b2a077ee6a193a3656 Mon Sep 17 00:00:00 2001 From: Nicolas Goutay Date: Mon, 11 Apr 2022 14:47:25 +0000 Subject: [PATCH 035/262] Fix additional issues with AlpineJS syntax in haml In PR https://github.com/prettier/plugin-ruby/pull/1097, I added support for haml attributes starting with '@', which are extensively used in AlpineJS. However, the PR was incomplete, and did not work in all cases. This PR adds two jest test cases that fail with the current code, and a fix that passes all specs. The fix also collocates @-attributes support with other haml edge cases (in the printer) instead of hooking into a separate part of the codebase. --- src/haml/parser.rb | 6 ------ src/haml/printer.ts | 2 +- test/js/haml/tag.test.ts | 2 ++ 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/haml/parser.rb b/src/haml/parser.rb index 84d84e3c..cd8d9796 100644 --- a/src/haml/parser.rb +++ b/src/haml/parser.rb @@ -44,12 +44,6 @@ def parse_value(string, level = 0) if hash # Explicitly not using Enumerable#to_h here to support Ruby 2.5 hash.each_with_object({}) do |(key, value), response| - # For attributes that starts with @, wrap the attribute in quotes - # For other attributes, remove the quotes - # AlpineJS uses @-attributes - # {'type': 'submit'} => {type: 'submit'} - # {'@click': 'open'} => {'@click': 'open'} - key = "\'#{key}\'" if key.start_with?('@') response[key] = parse_value(value, level + 1) end else diff --git a/src/haml/printer.ts b/src/haml/printer.ts index 3a964a09..9cf1afef 100644 --- a/src/haml/printer.ts +++ b/src/haml/printer.ts @@ -31,7 +31,7 @@ function printHashKey(key: string, opts: Plugin.Options) { let quoted = key; const joiner = opts.rubyHashLabel ? ":" : " =>"; - if (key.includes(":") || key.includes("-")) { + if (key.includes(":") || key.includes("-") || key.includes('@')) { const quote = opts.rubySingleQuote ? "'" : '"'; quoted = `${quote}${key}${quote}`; } diff --git a/test/js/haml/tag.test.ts b/test/js/haml/tag.test.ts index 5ec61d8f..62a7efb7 100644 --- a/test/js/haml/tag.test.ts +++ b/test/js/haml/tag.test.ts @@ -106,6 +106,8 @@ describe("tag", () => { test("attributes prefixed with @", () => { expect(haml("%span{'@click': 'open = true'}")).toMatchFormat(); + expect(haml("%span{'@click.outside': 'open = true'}")).toMatchFormat(); + expect(haml("%span{'@keydown.arrow-up.prevent': 'open = true'}")).toMatchFormat(); }); }); From fadd47d85bf8636cc3470ef9525baa33a06e68e8 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 11 Apr 2022 12:47:06 -0400 Subject: [PATCH 036/262] Fix up lint --- src/haml/printer.ts | 2 +- test/js/haml/tag.test.ts | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/haml/printer.ts b/src/haml/printer.ts index 9cf1afef..78aa4c4e 100644 --- a/src/haml/printer.ts +++ b/src/haml/printer.ts @@ -31,7 +31,7 @@ function printHashKey(key: string, opts: Plugin.Options) { let quoted = key; const joiner = opts.rubyHashLabel ? ":" : " =>"; - if (key.includes(":") || key.includes("-") || key.includes('@')) { + if (key.includes(":") || key.includes("-") || key.includes("@")) { const quote = opts.rubySingleQuote ? "'" : '"'; quoted = `${quote}${key}${quote}`; } diff --git a/test/js/haml/tag.test.ts b/test/js/haml/tag.test.ts index 62a7efb7..6ca2911f 100644 --- a/test/js/haml/tag.test.ts +++ b/test/js/haml/tag.test.ts @@ -107,7 +107,9 @@ describe("tag", () => { test("attributes prefixed with @", () => { expect(haml("%span{'@click': 'open = true'}")).toMatchFormat(); expect(haml("%span{'@click.outside': 'open = true'}")).toMatchFormat(); - expect(haml("%span{'@keydown.arrow-up.prevent': 'open = true'}")).toMatchFormat(); + expect( + haml("%span{'@keydown.arrow-up.prevent': 'open = true'}") + ).toMatchFormat(); }); }); From 0a07b6f611a79036db620e25600b7286b19ebc86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Apr 2022 14:10:18 +0000 Subject: [PATCH 037/262] Bump @typescript-eslint/parser from 5.18.0 to 5.19.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.18.0 to 5.19.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.19.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 46 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index e3d07feb..85f6c4ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -717,13 +717,13 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.18.0.tgz#2bcd4ff21df33621df33e942ccb21cb897f004c6" - integrity sha512-+08nYfurBzSSPndngnHvFw/fniWYJ5ymOrn/63oMIbgomVQOvIDhBoJmYZ9lwQOCnQV9xHGvf88ze3jFGUYooQ== + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.19.0.tgz#05e587c1492868929b931afa0cb5579b0f728e75" + integrity sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ== dependencies: - "@typescript-eslint/scope-manager" "5.18.0" - "@typescript-eslint/types" "5.18.0" - "@typescript-eslint/typescript-estree" "5.18.0" + "@typescript-eslint/scope-manager" "5.19.0" + "@typescript-eslint/types" "5.19.0" + "@typescript-eslint/typescript-estree" "5.19.0" debug "^4.3.2" "@typescript-eslint/scope-manager@5.18.0": @@ -734,6 +734,14 @@ "@typescript-eslint/types" "5.18.0" "@typescript-eslint/visitor-keys" "5.18.0" +"@typescript-eslint/scope-manager@5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz#97e59b0bcbcb54dbcdfba96fc103b9020bbe9cb4" + integrity sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g== + dependencies: + "@typescript-eslint/types" "5.19.0" + "@typescript-eslint/visitor-keys" "5.19.0" + "@typescript-eslint/type-utils@5.18.0": version "5.18.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz#62dbfc8478abf36ba94a90ddf10be3cc8e471c74" @@ -748,6 +756,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.18.0.tgz#4f0425d85fdb863071680983853c59a62ce9566e" integrity sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw== +"@typescript-eslint/types@5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.19.0.tgz#12d3d600d754259da771806ee8b2c842d3be8d12" + integrity sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w== + "@typescript-eslint/typescript-estree@5.18.0": version "5.18.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz#6498e5ee69a32e82b6e18689e2f72e4060986474" @@ -761,6 +774,19 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz#fc987b8f62883f9ea6a5b488bdbcd20d33c0025f" + integrity sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw== + dependencies: + "@typescript-eslint/types" "5.19.0" + "@typescript-eslint/visitor-keys" "5.19.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/utils@5.18.0": version "5.18.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.18.0.tgz#27fc84cf95c1a96def0aae31684cb43a37e76855" @@ -781,6 +807,14 @@ "@typescript-eslint/types" "5.18.0" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz#c84ebc7f6c744707a361ca5ec7f7f64cd85b8af6" + integrity sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ== + dependencies: + "@typescript-eslint/types" "5.19.0" + eslint-visitor-keys "^3.0.0" + abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" From f995f10be072c7e76dcd4a15c28a3e4197202997 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Apr 2022 14:19:42 +0000 Subject: [PATCH 038/262] Bump @typescript-eslint/eslint-plugin from 5.18.0 to 5.19.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.18.0 to 5.19.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.19.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 70 ++++++++++++++----------------------------------------- 1 file changed, 18 insertions(+), 52 deletions(-) diff --git a/yarn.lock b/yarn.lock index 85f6c4ad..40a09510 100644 --- a/yarn.lock +++ b/yarn.lock @@ -702,13 +702,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.18.0.tgz#950df411cec65f90d75d6320a03b2c98f6c3af7d" - integrity sha512-tzrmdGMJI/uii9/V6lurMo4/o+dMTKDH82LkNjhJ3adCW22YQydoRs5MwTiqxGF9CSYxPxQ7EYb4jLNlIs+E+A== + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz#9608a4b6d0427104bccf132f058cba629a6553c0" + integrity sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg== dependencies: - "@typescript-eslint/scope-manager" "5.18.0" - "@typescript-eslint/type-utils" "5.18.0" - "@typescript-eslint/utils" "5.18.0" + "@typescript-eslint/scope-manager" "5.19.0" + "@typescript-eslint/type-utils" "5.19.0" + "@typescript-eslint/utils" "5.19.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -726,14 +726,6 @@ "@typescript-eslint/typescript-estree" "5.19.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.18.0.tgz#a7d7b49b973ba8cebf2a3710eefd457ef2fb5505" - integrity sha512-C0CZML6NyRDj+ZbMqh9FnPscg2PrzSaVQg3IpTmpe0NURMVBXlghGZgMYqBw07YW73i0MCqSDqv2SbywnCS8jQ== - dependencies: - "@typescript-eslint/types" "5.18.0" - "@typescript-eslint/visitor-keys" "5.18.0" - "@typescript-eslint/scope-manager@5.19.0": version "5.19.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz#97e59b0bcbcb54dbcdfba96fc103b9020bbe9cb4" @@ -742,38 +734,20 @@ "@typescript-eslint/types" "5.19.0" "@typescript-eslint/visitor-keys" "5.19.0" -"@typescript-eslint/type-utils@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.18.0.tgz#62dbfc8478abf36ba94a90ddf10be3cc8e471c74" - integrity sha512-vcn9/6J5D6jtHxpEJrgK8FhaM8r6J1/ZiNu70ZUJN554Y3D9t3iovi6u7JF8l/e7FcBIxeuTEidZDR70UuCIfA== +"@typescript-eslint/type-utils@5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz#80f2125b0dfe82494bbae1ea99f1c0186d420282" + integrity sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q== dependencies: - "@typescript-eslint/utils" "5.18.0" + "@typescript-eslint/utils" "5.19.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.18.0.tgz#4f0425d85fdb863071680983853c59a62ce9566e" - integrity sha512-bhV1+XjM+9bHMTmXi46p1Led5NP6iqQcsOxgx7fvk6gGiV48c6IynY0apQb7693twJDsXiVzNXTflhplmaiJaw== - "@typescript-eslint/types@5.19.0": version "5.19.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.19.0.tgz#12d3d600d754259da771806ee8b2c842d3be8d12" integrity sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w== -"@typescript-eslint/typescript-estree@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.18.0.tgz#6498e5ee69a32e82b6e18689e2f72e4060986474" - integrity sha512-wa+2VAhOPpZs1bVij9e5gyVu60ReMi/KuOx4LKjGx2Y3XTNUDJgQ+5f77D49pHtqef/klglf+mibuHs9TrPxdQ== - dependencies: - "@typescript-eslint/types" "5.18.0" - "@typescript-eslint/visitor-keys" "5.18.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.19.0": version "5.19.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz#fc987b8f62883f9ea6a5b488bdbcd20d33c0025f" @@ -787,26 +761,18 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.18.0.tgz#27fc84cf95c1a96def0aae31684cb43a37e76855" - integrity sha512-+hFGWUMMri7OFY26TsOlGa+zgjEy1ssEipxpLjtl4wSll8zy85x0GrUSju/FHdKfVorZPYJLkF3I4XPtnCTewA== +"@typescript-eslint/utils@5.19.0": + version "5.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.19.0.tgz#fe87f1e3003d9973ec361ed10d36b4342f1ded1e" + integrity sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.18.0" - "@typescript-eslint/types" "5.18.0" - "@typescript-eslint/typescript-estree" "5.18.0" + "@typescript-eslint/scope-manager" "5.19.0" + "@typescript-eslint/types" "5.19.0" + "@typescript-eslint/typescript-estree" "5.19.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.18.0": - version "5.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.18.0.tgz#c7c07709823804171d569017f3b031ced7253e60" - integrity sha512-Hf+t+dJsjAKpKSkg3EHvbtEpFFb/1CiOHnvI8bjHgOD4/wAw3gKrA0i94LrbekypiZVanJu3McWJg7rWDMzRTg== - dependencies: - "@typescript-eslint/types" "5.18.0" - eslint-visitor-keys "^3.0.0" - "@typescript-eslint/visitor-keys@5.19.0": version "5.19.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz#c84ebc7f6c744707a361ca5ec7f7f64cd85b8af6" From 9981128f879fcfbfe192c7a6797bdb009c538017 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 13 Apr 2022 09:47:49 -0400 Subject: [PATCH 039/262] Fix for #1198 --- CHANGELOG.md | 4 ++++ src/parser/server.rb | 5 ++++- src/ruby/nodes/blocks.ts | 13 +++++++++++-- src/utils/getChildNodes.ts | 3 ++- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17796c03..138d08c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +### Changed + +- [#1198](https://github.com/prettier/plugin-ruby/issues/1198) - pas-f, kddnewton - Fix crashes on JRuby with do blocks. + ## [2.1.0] - 2022-04-04 ### Added diff --git a/src/parser/server.rb b/src/parser/server.rb index 39c06f7c..f46cf8ef 100644 --- a/src/parser/server.rb +++ b/src/parser/server.rb @@ -19,7 +19,10 @@ module Prettier quit = false trap(:INT) { quit = true } trap(:TERM) { quit = true } -trap(:QUIT) { quit = true } if Signal.list.key?('QUIT') + +if Signal.list.key?('QUIT') && RUBY_ENGINE != 'jruby' + trap(:QUIT) { quit = true } +end # The information variable stores the actual connection information, which will # either be an IP address and port or a path to a unix socket file. diff --git a/src/ruby/nodes/blocks.ts b/src/ruby/nodes/blocks.ts index 3324709c..27f1ec2e 100644 --- a/src/ruby/nodes/blocks.ts +++ b/src/ruby/nodes/blocks.ts @@ -49,8 +49,17 @@ type Block = Ruby.BraceBlock | Ruby.DoBlock; function printBlock(braces: boolean): Plugin.Printer { return function printBlockWithBraces(path, opts, print) { const node = path.getValue(); - const stmts: Ruby.AnyNode[] = - node.type === "brace_block" ? node.stmts.body : node.bodystmt.stmts.body; + let stmts: Ruby.AnyNode[]; + + if (node.type === "brace_block") { + stmts = node.stmts.body; + } else if ((node as any).bodystmt.type === "statements") { + // This is here to fix an issue in JRuby where it doesn't correctly + // support rescue/else/ensure inside blocks. + stmts = (node as any).bodystmt.body; + } else { + stmts = node.bodystmt.stmts.body; + } let doBlockBody: Plugin.Doc = ""; if ( diff --git a/src/utils/getChildNodes.ts b/src/utils/getChildNodes.ts index 486762d0..e6c771bd 100644 --- a/src/utils/getChildNodes.ts +++ b/src/utils/getChildNodes.ts @@ -8,12 +8,13 @@ function throwBadNode(node: AnyNode) { throw new Error(`Unknown node ${node.type}`); } -function getChildNodes(node: AnyNode): ChildNode[] { +function getChildNodes(node: AnyNode | Ruby.Comment): ChildNode[] { switch (node.type) { case "CHAR": case "__end__": case "backref": case "backtick": + case "comment": case "const": case "cvar": case "float": From 9266a4d9e2f167c7c7a647e138450fee7559a618 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Apr 2022 12:01:31 +0000 Subject: [PATCH 040/262] Bump @types/node from 17.0.23 to 17.0.24 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.23 to 17.0.24. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 40a09510..86106a6a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -675,9 +675,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*", "@types/node@^17.0.0": - version "17.0.23" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.23.tgz#3b41a6e643589ac6442bdbd7a4a3ded62f33f7da" - integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.24.tgz#20ba1bf69c1b4ab405c7a01e950c4f446b05029f" + integrity sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g== "@types/prettier@^2.1.5", "@types/prettier@^2.4.2": version "2.6.0" From 2f405032933065970ffab328d55cbcff24f5c306 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Apr 2022 12:01:47 +0000 Subject: [PATCH 041/262] Bump @typescript-eslint/parser from 5.19.0 to 5.20.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.19.0 to 5.20.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.20.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 46 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 86106a6a..043d8397 100644 --- a/yarn.lock +++ b/yarn.lock @@ -717,13 +717,13 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.18.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.19.0.tgz#05e587c1492868929b931afa0cb5579b0f728e75" - integrity sha512-yhktJjMCJX8BSBczh1F/uY8wGRYrBeyn84kH6oyqdIJwTGKmzX5Qiq49LRQ0Jh0LXnWijEziSo6BRqny8nqLVQ== + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.20.0.tgz#4991c4ee0344315c2afc2a62f156565f689c8d0b" + integrity sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w== dependencies: - "@typescript-eslint/scope-manager" "5.19.0" - "@typescript-eslint/types" "5.19.0" - "@typescript-eslint/typescript-estree" "5.19.0" + "@typescript-eslint/scope-manager" "5.20.0" + "@typescript-eslint/types" "5.20.0" + "@typescript-eslint/typescript-estree" "5.20.0" debug "^4.3.2" "@typescript-eslint/scope-manager@5.19.0": @@ -734,6 +734,14 @@ "@typescript-eslint/types" "5.19.0" "@typescript-eslint/visitor-keys" "5.19.0" +"@typescript-eslint/scope-manager@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz#79c7fb8598d2942e45b3c881ced95319818c7980" + integrity sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg== + dependencies: + "@typescript-eslint/types" "5.20.0" + "@typescript-eslint/visitor-keys" "5.20.0" + "@typescript-eslint/type-utils@5.19.0": version "5.19.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz#80f2125b0dfe82494bbae1ea99f1c0186d420282" @@ -748,6 +756,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.19.0.tgz#12d3d600d754259da771806ee8b2c842d3be8d12" integrity sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w== +"@typescript-eslint/types@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.20.0.tgz#fa39c3c2aa786568302318f1cb51fcf64258c20c" + integrity sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg== + "@typescript-eslint/typescript-estree@5.19.0": version "5.19.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz#fc987b8f62883f9ea6a5b488bdbcd20d33c0025f" @@ -761,6 +774,19 @@ semver "^7.3.5" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz#ab73686ab18c8781bbf249c9459a55dc9417d6b0" + integrity sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w== + dependencies: + "@typescript-eslint/types" "5.20.0" + "@typescript-eslint/visitor-keys" "5.20.0" + debug "^4.3.2" + globby "^11.0.4" + is-glob "^4.0.3" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/utils@5.19.0": version "5.19.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.19.0.tgz#fe87f1e3003d9973ec361ed10d36b4342f1ded1e" @@ -781,6 +807,14 @@ "@typescript-eslint/types" "5.19.0" eslint-visitor-keys "^3.0.0" +"@typescript-eslint/visitor-keys@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz#70236b5c6b67fbaf8b2f58bf3414b76c1e826c2a" + integrity sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg== + dependencies: + "@typescript-eslint/types" "5.20.0" + eslint-visitor-keys "^3.0.0" + abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" From 8ac4ea596c071b326fd39dc6460f38718eed8291 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Apr 2022 12:01:55 +0000 Subject: [PATCH 042/262] Bump @types/node from 17.0.24 to 17.0.25 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.24 to 17.0.25. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 86106a6a..4ea8654f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -675,9 +675,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*", "@types/node@^17.0.0": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.24.tgz#20ba1bf69c1b4ab405c7a01e950c4f446b05029f" - integrity sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g== + version "17.0.25" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.25.tgz#527051f3c2f77aa52e5dc74e45a3da5fb2301448" + integrity sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w== "@types/prettier@^2.1.5", "@types/prettier@^2.4.2": version "2.6.0" From a8c342d6caaed8a3a244660cba26be9615221ef4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Apr 2022 12:14:21 +0000 Subject: [PATCH 043/262] Bump @typescript-eslint/eslint-plugin from 5.19.0 to 5.20.0 Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.19.0 to 5.20.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.20.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 70 ++++++++++++++----------------------------------------- 1 file changed, 18 insertions(+), 52 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7505951c..583a4071 100644 --- a/yarn.lock +++ b/yarn.lock @@ -702,13 +702,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.18.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.19.0.tgz#9608a4b6d0427104bccf132f058cba629a6553c0" - integrity sha512-w59GpFqDYGnWFim9p6TGJz7a3qWeENJuAKCqjGSx+Hq/bwq3RZwXYqy98KIfN85yDqz9mq6QXiY5h0FjGQLyEg== + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz#022531a639640ff3faafaf251d1ce00a2ef000a1" + integrity sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q== dependencies: - "@typescript-eslint/scope-manager" "5.19.0" - "@typescript-eslint/type-utils" "5.19.0" - "@typescript-eslint/utils" "5.19.0" + "@typescript-eslint/scope-manager" "5.20.0" + "@typescript-eslint/type-utils" "5.20.0" + "@typescript-eslint/utils" "5.20.0" debug "^4.3.2" functional-red-black-tree "^1.0.1" ignore "^5.1.8" @@ -726,14 +726,6 @@ "@typescript-eslint/typescript-estree" "5.20.0" debug "^4.3.2" -"@typescript-eslint/scope-manager@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.19.0.tgz#97e59b0bcbcb54dbcdfba96fc103b9020bbe9cb4" - integrity sha512-Fz+VrjLmwq5fbQn5W7cIJZ066HxLMKvDEmf4eu1tZ8O956aoX45jAuBB76miAECMTODyUxH61AQM7q4/GOMQ5g== - dependencies: - "@typescript-eslint/types" "5.19.0" - "@typescript-eslint/visitor-keys" "5.19.0" - "@typescript-eslint/scope-manager@5.20.0": version "5.20.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz#79c7fb8598d2942e45b3c881ced95319818c7980" @@ -742,38 +734,20 @@ "@typescript-eslint/types" "5.20.0" "@typescript-eslint/visitor-keys" "5.20.0" -"@typescript-eslint/type-utils@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.19.0.tgz#80f2125b0dfe82494bbae1ea99f1c0186d420282" - integrity sha512-O6XQ4RI4rQcBGshTQAYBUIGsKqrKeuIOz9v8bckXZnSeXjn/1+BDZndHLe10UplQeJLXDNbaZYrAytKNQO2T4Q== +"@typescript-eslint/type-utils@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz#151c21cbe9a378a34685735036e5ddfc00223be3" + integrity sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw== dependencies: - "@typescript-eslint/utils" "5.19.0" + "@typescript-eslint/utils" "5.20.0" debug "^4.3.2" tsutils "^3.21.0" -"@typescript-eslint/types@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.19.0.tgz#12d3d600d754259da771806ee8b2c842d3be8d12" - integrity sha512-zR1ithF4Iyq1wLwkDcT+qFnhs8L5VUtjgac212ftiOP/ZZUOCuuF2DeGiZZGQXGoHA50OreZqLH5NjDcDqn34w== - "@typescript-eslint/types@5.20.0": version "5.20.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.20.0.tgz#fa39c3c2aa786568302318f1cb51fcf64258c20c" integrity sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg== -"@typescript-eslint/typescript-estree@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.19.0.tgz#fc987b8f62883f9ea6a5b488bdbcd20d33c0025f" - integrity sha512-dRPuD4ocXdaE1BM/dNR21elSEUPKaWgowCA0bqJ6YbYkvtrPVEvZ+zqcX5a8ECYn3q5iBSSUcBBD42ubaOp0Hw== - dependencies: - "@typescript-eslint/types" "5.19.0" - "@typescript-eslint/visitor-keys" "5.19.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@5.20.0": version "5.20.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz#ab73686ab18c8781bbf249c9459a55dc9417d6b0" @@ -787,26 +761,18 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.19.0.tgz#fe87f1e3003d9973ec361ed10d36b4342f1ded1e" - integrity sha512-ZuEckdupXpXamKvFz/Ql8YnePh2ZWcwz7APICzJL985Rp5C2AYcHO62oJzIqNhAMtMK6XvrlBTZeNG8n7gS3lQ== +"@typescript-eslint/utils@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.20.0.tgz#b8e959ed11eca1b2d5414e12417fd94cae3517a5" + integrity sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.19.0" - "@typescript-eslint/types" "5.19.0" - "@typescript-eslint/typescript-estree" "5.19.0" + "@typescript-eslint/scope-manager" "5.20.0" + "@typescript-eslint/types" "5.20.0" + "@typescript-eslint/typescript-estree" "5.20.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.19.0.tgz#c84ebc7f6c744707a361ca5ec7f7f64cd85b8af6" - integrity sha512-Ym7zZoMDZcAKWsULi2s7UMLREdVQdScPQ/fKWMYefarCztWlHPFVJo8racf8R0Gc8FAEJ2eD4of8As1oFtnQlQ== - dependencies: - "@typescript-eslint/types" "5.19.0" - eslint-visitor-keys "^3.0.0" - "@typescript-eslint/visitor-keys@5.20.0": version "5.20.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz#70236b5c6b67fbaf8b2f58bf3414b76c1e826c2a" From c16f7fcc3295976477d291002894ce4d85aafc76 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 6 Apr 2022 21:43:29 -0400 Subject: [PATCH 044/262] Swap HAML --- src/haml/embed.ts | 75 ---------------------------------- src/haml/parser.ts | 29 ------------- src/parser/server.rb | 10 +++-- src/plugin.ts | 29 ++++++++++++- src/ruby/parser.rb | 2 +- src/types.ts | 1 - src/types/haml.ts | 81 ------------------------------------- test/js/haml/filter.test.ts | 74 +-------------------------------- test/js/haml/parser.test.ts | 32 --------------- test/js/haml/script.test.ts | 2 +- test/js/haml/tag.test.ts | 27 +++---------- 11 files changed, 41 insertions(+), 321 deletions(-) delete mode 100644 src/haml/embed.ts delete mode 100644 src/haml/parser.ts delete mode 100644 src/types/haml.ts delete mode 100644 test/js/haml/parser.test.ts diff --git a/src/haml/embed.ts b/src/haml/embed.ts deleted file mode 100644 index a5b89a9c..00000000 --- a/src/haml/embed.ts +++ /dev/null @@ -1,75 +0,0 @@ -import type { Plugin, HAML } from "../types"; -import prettier from "../prettier"; - -const { - hardline, - indent, - literalline, - markAsRoot, - mapDoc, - stripTrailingHardline -} = prettier; - -// This function is in here because it handles embedded parser values. I don't -// have a test that exercises it because I'm not sure for which parser it is -// necessary, but since it's in prettier core I'm keeping it here. -/* istanbul ignore next */ -function replaceNewlines(doc: Plugin.Doc) { - return mapDoc(doc, (currentDoc) => - typeof currentDoc === "string" && currentDoc.includes("\n") - ? currentDoc.split(/(\n)/g).map((v, i) => (i % 2 === 0 ? v : literalline)) - : currentDoc - ); -} - -const embed: Plugin.Embed = (path, _print, textToDoc, opts) => { - const node = path.getValue(); - - // We're only going to embed other languages on filter nodes. - if (node.type !== "filter") { - return null; - } - - let parser = node.value.name; - - // We don't want to deal with some weird recursive parser situation, so we - // need to explicitly call out the HAML parser here and just return null. - if (parser === "haml") { - return null; - } - - // In HAML the name of the JS filter is :javascript, whereas in prettier the - // name of the JS parser is babel. Here we explicitly handle that conversion. - if (parser === "javascript") { - parser = "babel"; - } - - // If there aren't any plugins that look like the name of the filter, then we - // will just exit early. - if ( - !opts.plugins.some( - (plugin) => - typeof plugin !== "string" && - plugin.parsers && - Object.prototype.hasOwnProperty.call(plugin.parsers, parser) - ) - ) { - return null; - } - - // If there is a plugin that has a parser that matches the name of this - // filter, then we're going to assume that's correct for embedding and go - // ahead and switch to that parser. - return markAsRoot([ - ":", - node.value.name, - indent([ - hardline, - replaceNewlines( - stripTrailingHardline(textToDoc(node.value.text, { parser })) - ) - ]) - ]); -}; - -export default embed; diff --git a/src/haml/parser.ts b/src/haml/parser.ts deleted file mode 100644 index 44a8a736..00000000 --- a/src/haml/parser.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { Plugin, HAML } from "../types"; -import parseSync from "../parser/parseSync"; - -const parser: Plugin.Parser = { - // This function is responsible for taking an input string of text and - // returning to prettier a JavaScript object that is the equivalent AST that - // represents the code stored in that string. We accomplish this by spawning a - // new process and reading JSON off STDOUT. - parse(text) { - return parseSync("haml", text); - }, - astFormat: "haml", - // This function handles checking whether or not the source string has the - // pragma for prettier. This is an optional workflow for incremental adoption. - hasPragma(text) { - return /^\s*-#\s*@(prettier|format)/.test(text); - }, - // These functions are just placeholders until we can actually perform this - // properly. The functions are necessary otherwise the format with cursor - // functions break. - locStart() { - return 0; - }, - locEnd() { - return 0; - } -}; - -export default parser; diff --git a/src/parser/server.rb b/src/parser/server.rb index f46cf8ef..e2e2319d 100644 --- a/src/parser/server.rb +++ b/src/parser/server.rb @@ -12,7 +12,9 @@ module Prettier require_relative '../ruby/parser' require_relative '../rbs/parser' -require_relative '../haml/parser' +# require_relative '../haml/parser' + +require 'syntax_tree/haml' # Make sure we trap these signals to be sure we get the quit command coming from # the parent node process @@ -79,11 +81,11 @@ module Prettier when 'ping' 'pong' when 'ruby' - SyntaxTree.parse(source) + PrettierSyntaxTree.parse(source) when 'rbs' Prettier::RBSParser.parse(source) when 'haml' - Prettier::HAMLParser.parse(source) + SyntaxTree::Haml.format(source) end if response @@ -91,7 +93,7 @@ module Prettier else socket.write('{ "error": true }') end - rescue SyntaxTree::ParseError => error + rescue PrettierSyntaxTree::ParseError => error loc = { start: { line: error.lineno, column: error.column } } socket.write(JSON.fast_generate(error: error.message, loc: loc)) rescue StandardError => error diff --git a/src/plugin.ts b/src/plugin.ts index 77f47ee5..50e5dd4c 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -4,8 +4,33 @@ import rubyParser from "./ruby/parser"; import rbsPrinter from "./rbs/printer"; import rbsParser from "./rbs/parser"; -import hamlPrinter from "./haml/printer"; -import hamlParser from "./haml/parser"; +import parseSync from "./parser/parseSync"; +import type { Plugin } from "./types"; + +const hamlParser: Plugin.Parser = { + parse(text) { + return parseSync("haml", text); + }, + astFormat: "haml", + hasPragma(text) { + return /^\s*-#\s*@(prettier|format)/.test(text); + }, + locStart() { + return 0; + }, + locEnd() { + return 0; + } +}; + +const hamlPrinter: Plugin.PrinterConfig = { + print(path) { + return path.getValue(); + }, + insertPragma(text) { + return `-# @format${text.startsWith("-#") ? "\n" : "\n\n"}${text}`; + } +}; /* * metadata mostly pulled from linguist and rubocop: diff --git a/src/ruby/parser.rb b/src/ruby/parser.rb index fd951e6e..bf1ea385 100644 --- a/src/ruby/parser.rb +++ b/src/ruby/parser.rb @@ -3,7 +3,7 @@ require 'ripper' # require_relative 'syntax_tree/version' -class SyntaxTree < Ripper +class PrettierSyntaxTree < Ripper # Represents a line in the source. If this class is being used, it means that # every character in the string is 1 byte in length, so we can just return the # start of the line + the index. diff --git a/src/types.ts b/src/types.ts index a42a842b..e83e34fc 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,4 +1,3 @@ -export * as HAML from "./types/haml"; export * as Plugin from "./types/plugin"; export * as RBS from "./types/rbs"; export * as Ruby from "./types/ruby"; diff --git a/src/types/haml.ts b/src/types/haml.ts deleted file mode 100644 index 6184c870..00000000 --- a/src/types/haml.ts +++ /dev/null @@ -1,81 +0,0 @@ -// This file contains all of the types that represent objects being returned -// from the HAML parser. - -export type AnyNode = ( - | Comment - | DocType - | Filter - | HAMLComment - | Plain - | Root - | Script - | SilentScript - | Tag -); - -export type Comment = { - type: "comment", - value: { revealed: boolean, conditional?: string, text?: string }, - children: AnyNode[] -}; - -export type DocType = { - type: "doctype", - value: { type: string, version?: string, encoding?: string } -}; - -export type Filter = { - type: "filter", - value: { name: string, text: string } -}; - -export type HAMLComment = { - type: "haml_comment", - value: { text?: string }, - line: number -}; - -export type Plain = { - type: "plain", - value: { text: string } -}; - -export type Root = { - type: "root", - children: AnyNode[], - supports_multiline: boolean -}; - -export type Script = { - type: "script", - value: { - escape_html: boolean, - preserve: boolean, - interpolate: boolean, - text: string - }, - children: AnyNode[] -}; - -export type SilentScript = { - type: "silent_script", - value: { text: string, keyword: string }, - children: AnyNode[] -}; - -export type TagAttrs = string | { [property: string]: TagAttrs } -export type Tag = { - type: "tag", - value: { - name: string, - attributes: { class?: string, id?: string } & Record, - dynamic_attributes: { new?: string, old?: TagAttrs }, - object_ref?: string, - nuke_outer_whitespace: boolean, - nuke_inner_whitespace: boolean, - self_closing: boolean, - value?: string, - parse: boolean - }, - children: AnyNode[] -}; diff --git a/test/js/haml/filter.test.ts b/test/js/haml/filter.test.ts index f00aad6c..711ba4c2 100644 --- a/test/js/haml/filter.test.ts +++ b/test/js/haml/filter.test.ts @@ -26,78 +26,6 @@ describe("filter", () => { .foo { height: 100px; width: 100px; } `); - expect(content).toChangeFormat( - haml(` - :css - .foo { - height: 100px; - width: 100px; - } - `) - ); - }); - - test("javascript", () => { - const content = haml(` - :javascript - 1+1 - `); - - expect(content).toChangeFormat( - haml(` - :javascript - 1 + 1; - `) - ); - }); - - test("less", () => { - const content = haml(` - :less - .foo { .bar { height: 100px; } } - `); - - expect(content).toChangeFormat( - haml(` - :less - .foo { - .bar { - height: 100px; - } - } - `) - ); - }); - - test("markdown", () => { - const content = haml(` - :markdown - *Hello, world!* - `); - - expect(content).toChangeFormat( - haml(` - :markdown - _Hello, world!_ - `) - ); - }); - - test("scss", () => { - const content = haml(` - :scss - .foo { .bar { height: 100px; } } - `); - - expect(content).toChangeFormat( - haml(` - :scss - .foo { - .bar { - height: 100px; - } - } - `) - ); + expect(content).toMatchFormat(); }); }); diff --git a/test/js/haml/parser.test.ts b/test/js/haml/parser.test.ts deleted file mode 100644 index 8a6b1068..00000000 --- a/test/js/haml/parser.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import type { HAML, Plugin } from "../../../src/types"; -import parser from "../../../src/haml/parser"; - -describe("parser", () => { - test("parse", () => { - expect(parser.parse("= foo", {}, {} as Plugin.Options).type).toEqual( - "root" - ); - }); - - test("parse failure", () => { - expect(() => - parser.parse(`%div("invalid ": 1)`, {}, {} as Plugin.Options) - ).toThrowError(); - }); - - test("hasPragma", () => { - const withPragma = "-# @prettier"; - const withoutPragma = "-# foo"; - - expect(parser.hasPragma(withPragma)).toBe(true); - expect(parser.hasPragma(withoutPragma)).toBe(false); - }); - - test("locStart", () => { - expect(parser.locStart({} as HAML.AnyNode)).toEqual(0); - }); - - test("locEnd", () => { - expect(parser.locEnd({} as HAML.AnyNode)).toEqual(0); - }); -}); diff --git a/test/js/haml/script.test.ts b/test/js/haml/script.test.ts index 35569303..833bf31c 100644 --- a/test/js/haml/script.test.ts +++ b/test/js/haml/script.test.ts @@ -15,7 +15,7 @@ describe("script", () => { expect(content).toMatchFormat(); }); - test("escape", () => { + test.skip("escape", () => { expect(haml(`& I like #{"cheese & crackers"}`)).toMatchFormat(); }); diff --git a/test/js/haml/tag.test.ts b/test/js/haml/tag.test.ts index 6ca2911f..e69b5514 100644 --- a/test/js/haml/tag.test.ts +++ b/test/js/haml/tag.test.ts @@ -44,7 +44,7 @@ describe("tag", () => { }); test("dynamic attributes (ruby hash)", () => { - const content = haml("%div{data: { controller: 'lesson-evaluation' }}"); + const content = haml(`%div{data: { controller: "lesson-evaluation" }}`); expect(content).toMatchFormat(); }); @@ -62,7 +62,7 @@ describe("tag", () => { test("hash label, single quote", () => { const content = haml(`%section(xml:lang="en" title="title")`); - const expected = "%section{'xml:lang': 'en', title: 'title'}"; + const expected = `%section{"xml:lang": "en", title: "title"}`; expect(content).toChangeFormat(expected); }); @@ -80,23 +80,6 @@ describe("tag", () => { expect(content).toMatchFormat(); }); - test("hash rocket, single quote", () => { - const content = haml(`%section(xml:lang="en" title="title")`); - const expected = `%section{:'xml:lang' => 'en', :title => 'title'}`; - - expect(content).toChangeFormat(expected, { rubyHashLabel: false }); - }); - - test("hash rocket, double quote", () => { - const content = haml(`%section(xml:lang="en" title="title")`); - const expected = '%section{:"xml:lang" => "en", :title => "title"}'; - - expect(content).toChangeFormat(expected, { - rubyHashLabel: false, - rubySingleQuote: false - }); - }); - test("non-strings", () => { const content = haml(`%section(foo=1 bar=2)`); const expected = `%section(foo=1 bar=2)`; @@ -105,10 +88,10 @@ describe("tag", () => { }); test("attributes prefixed with @", () => { - expect(haml("%span{'@click': 'open = true'}")).toMatchFormat(); - expect(haml("%span{'@click.outside': 'open = true'}")).toMatchFormat(); + expect(haml(`%span{"@click": "open = true"}`)).toMatchFormat(); + expect(haml(`%span{"@click.outside": "open = true"}`)).toMatchFormat(); expect( - haml("%span{'@keydown.arrow-up.prevent': 'open = true'}") + haml(`%span{"@keydown.arrow-up.prevent": "open = true"}`) ).toMatchFormat(); }); }); From 276768174ab9c368af05590fa35bbcab29bd97d9 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 6 Apr 2022 21:55:39 -0400 Subject: [PATCH 045/262] Swap RBS --- src/parser/server.rb | 6 +- src/plugin.ts | 28 +- src/rbs/parser.rb | 155 --------- src/rbs/parser.ts | 32 -- src/rbs/printer.ts | 671 ------------------------------------- src/types.ts | 1 - src/types/rbs.ts | 108 ------ test/js/rbs/method.txt | 12 +- test/js/rbs/parser.test.ts | 45 --- test/js/rbs/rbs.test.ts | 6 +- test/js/rbs/record.txt | 2 +- 11 files changed, 37 insertions(+), 1029 deletions(-) delete mode 100644 src/rbs/parser.rb delete mode 100644 src/rbs/parser.ts delete mode 100644 src/rbs/printer.ts delete mode 100644 src/types/rbs.ts delete mode 100644 test/js/rbs/parser.test.ts diff --git a/src/parser/server.rb b/src/parser/server.rb index e2e2319d..f1248537 100644 --- a/src/parser/server.rb +++ b/src/parser/server.rb @@ -11,10 +11,8 @@ module Prettier end require_relative '../ruby/parser' -require_relative '../rbs/parser' -# require_relative '../haml/parser' - require 'syntax_tree/haml' +require 'syntax_tree/rbs' # Make sure we trap these signals to be sure we get the quit command coming from # the parent node process @@ -83,7 +81,7 @@ module Prettier when 'ruby' PrettierSyntaxTree.parse(source) when 'rbs' - Prettier::RBSParser.parse(source) + SyntaxTree::RBS.format(source) when 'haml' SyntaxTree::Haml.format(source) end diff --git a/src/plugin.ts b/src/plugin.ts index 50e5dd4c..2f645e14 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -1,12 +1,34 @@ import rubyPrinter from "./ruby/printer"; import rubyParser from "./ruby/parser"; -import rbsPrinter from "./rbs/printer"; -import rbsParser from "./rbs/parser"; - import parseSync from "./parser/parseSync"; import type { Plugin } from "./types"; +const rbsParser: Plugin.Parser = { + parse(text) { + return parseSync("rbs", text); + }, + astFormat: "rbs", + hasPragma(text) { + return /^\s*#[^\S\n]*@(format|prettier)\s*(\n|$)/.test(text); + }, + locStart() { + return 0; + }, + locEnd() { + return 0; + } +}; + +const rbsPrinter: Plugin.PrinterConfig = { + print(path) { + return path.getValue(); + }, + insertPragma(text) { + return `# @format${text[0] === "#" ? "\n" : "\n\n"}${text}`; + } +}; + const hamlParser: Plugin.Parser = { parse(text) { return parseSync("haml", text); diff --git a/src/rbs/parser.rb b/src/rbs/parser.rb deleted file mode 100644 index 34d3b59b..00000000 --- a/src/rbs/parser.rb +++ /dev/null @@ -1,155 +0,0 @@ -#!/usr/bin/env ruby - -begin - require 'rbs' -rescue LoadError - # If we can't load the rbs gem, then we're going to provide a shim parser that - # will warn and bail out. - class Prettier::RBSParser - def self.parse(text) - warn( - 'The `rbs` gem could not be loaded. Please ensure you have it ' \ - 'installed and that it is available in the gem path.' - ) - - false - end - end - - return -end - -# This was removed at some point, so we need to support both versions. -RBS::KEYWORD_RAW = - if RBS::Parser.const_defined?(:KEYWORDS_RE) - RBS::Parser::KEYWORDS_RE - else - RBS::Parser::KEYWORDS.keys.join('|') - end - -# This enforces that the full matched string is a keyword. -RBS::KEYWORD_FULL = /\A#{RBS::KEYWORD_RAW}\z/ - -# Monkey-patch this so that we can get the character positions. -class RBS::Location - def to_json(*args) - { - start: { - line: start_line, - column: start_column - }, - end: { - line: end_line, - column: end_column - }, - start_pos: start_pos, - end_pos: end_pos - }.to_json(*args) - end -end - -# Monkey-patch this so that we get whether or not it needs to be escaped. -class RBS::Types::Function::Param - def to_json(*a) - escaped = name && RBS::KEYWORD_FULL.match?(name) - - # More modern versions of RBS just include the ` in the name so there's no - # need to escape it further. - escaped = false if name.to_s.start_with?('`') - - { type: type, name: name, escaped: escaped }.to_json(*a) - end -end - -# Monkey-patch this so that we get the name field in the serialized JSON, as -# well as information about whether or not we need to escape it. -class RBS::AST::Members::MethodDefinition - def to_json(*a) - { - member: :method_definition, - name: name, - kind: kind, - types: types, - annotations: annotations, - location: location, - comment: comment, - overload: overload - }.to_json(*a) - end -end - -# Monkey-patch this so that we get the information we need about how to join the -# key-value pairs of the record. -class RBS::Types::Record - def to_json(*a) - fields_extra = {} - - # Explicitly not using Enumerable#to_h here to support Ruby 2.5 - fields.each do |key, type| - if key.is_a?(Symbol) && key.match?(/\A[A-Za-z_][A-Za-z_]*\z/) && - !key.match?(RBS::KEYWORD_RAW) - fields_extra[key] = { type: type, joiner: :label } - else - fields_extra[key.inspect] = { type: type, joiner: :rocket } - end - end - - { class: :record, fields: fields_extra, location: location }.to_json(*a) - end -end - -if defined?(RBS::AST::Declarations::ModuleTypeParams) - # This class was removed in rbs 2.0. Monkeypatch < 2.0 to give the same json - # output - class RBS::AST::Declarations::ModuleTypeParams - def to_json(*a) - params.to_json(*a) - end - end - - # make this look like the new AST::TypeParam json - class RBS::AST::Declarations::ModuleTypeParams::TypeParam - def to_json(*a) - { name: name, variance: variance, unchecked: skip_validation }.to_json(*a) - end - end - - # https://github.com/ruby/rbs/commit/3ccdcb1f3ac5dcb866280f745866a852658195e6 - class RBS::MethodType - # promote the array of symbols into TypeParam looking-things - def to_json(*a) - type_param_objects = - type_params.map do |name| - { - name: name, - variance: 'invariant', - unchecked: 'false', - upper_bound: nil - # location - harder to get this but not needed - } - end - - { - type_params: type_param_objects, - type: type, - block: block, - location: location - }.to_json(*a) - end - end -end - -# The main parser interface. -module Prettier - class RBSParser - def self.parse(text) - { - declarations: RBS::Parser.parse_signature(text), - location: { - start_pos: 0, - end_pos: text.length - } - } - end - end -end diff --git a/src/rbs/parser.ts b/src/rbs/parser.ts deleted file mode 100644 index 646b1515..00000000 --- a/src/rbs/parser.ts +++ /dev/null @@ -1,32 +0,0 @@ -import type { Plugin, RBS } from "../types"; -import parseSync from "../parser/parseSync"; - -const parser: Plugin.Parser = { - // This function is responsible for taking an input string of text and - // returning to prettier a JavaScript object that is the equivalent AST that - // represents the code stored in that string. We accomplish this by spawning a - // new Ruby process of parser.rb and reading JSON off STDOUT. - parse(text) { - return parseSync("rbs", text); - }, - astFormat: "rbs", - // This function handles checking whether or not the source string has the - // pragma for prettier. This is an optional workflow for incremental adoption. - hasPragma(text) { - return /^\s*#[^\S\n]*@(format|prettier)\s*(\n|$)/.test(text); - }, - // This function is critical for comments and cursor support, and is - // responsible for returning the index of the character within the source - // string that is the beginning of the given node. - locStart(node) { - return node.location.start_pos; - }, - // This function is critical for comments and cursor support, and is - // responsible for returning the index of the character within the source - // string that is the ending of the given node. - locEnd(node) { - return node.location.end_pos; - } -}; - -export default parser; diff --git a/src/rbs/printer.ts b/src/rbs/printer.ts deleted file mode 100644 index 59abacbc..00000000 --- a/src/rbs/printer.ts +++ /dev/null @@ -1,671 +0,0 @@ -import type { util } from "prettier"; -import type { RequiredKeys, Plugin, RBS } from "../types"; -import prettier from "../prettier"; - -const { group, hardline, indent, makeString, join, line, softline } = prettier; - -// For some lists of entities in the AST, the parser returns them as an unsorted -// object (presumably because Ruby hashes have implicit ordering). We do not -// have that in JavaScript, so here we sort each object by its position in the -// source string. -function getSortedKeys>( - object: T -): (keyof T)[] { - return Object.keys(object).sort( - (left, right) => - object[left].type.location.start_pos - - object[right].type.location.start_pos - ); -} - -// In some cases, we want to just defer to whatever was in the source. -function getSource(node: { location: RBS.Location }, opts: Plugin.Options) { - const { location } = node; - return opts.originalText.slice(location.start_pos, location.end_pos); -} - -const printer: Plugin.PrinterConfig = { - // This is the generic node print function, used to convert any node in the - // AST into its equivalent Doc representation. - print(path, opts, print) { - const node = path.getValue(); - let doc = null; - - if (node.declarations) { - // Prints out the root of the tree, which includes zero or more - // declarations. - return [ - join([hardline, hardline], path.map(print, "declarations")), - hardline - ]; - } - - /* istanbul ignore else */ - if (node.declaration) { - switch (node.declaration) { - // Prints out a type alias, which is a declaration that looks like: - // type foo = String - case "alias": { - doc = group([ - "type ", - node.name, - " =", - indent(group([line, path.call(printType, "type")])) - ]); - break; - } - // Prints out a class declarations, which looks like: - // class Foo end - case "class": { - const nodePath = path as Plugin.Path; - const parts: Plugin.Doc[] = [ - "class ", - printNameAndTypeParams(nodePath, node) - ]; - - if (node.super_class) { - const superPath = nodePath as Plugin.Path< - RequiredKeys - >; - parts.push(" < ", superPath.call(printNameAndArgs, "super_class")); - } - - parts.push(indent(printMembers(nodePath)), hardline, "end"); - doc = group(parts); - break; - } - // Prints out a constant or a global declaration, which looks like: - // Foo: String - // $foo: String - case "constant": - case "global": { - doc = group([node.name, ": ", path.call(printType, "type")]); - break; - } - // Prints out an interface declaration, which looks like: - // interface _Foo end - case "interface": { - const nodePath = path as Plugin.Path; - - doc = group([ - "interface ", - printNameAndTypeParams(nodePath, node), - indent(printMembers(nodePath)), - hardline, - "end" - ]); - break; - } - // Prints out a module declaration, which looks like: - // module Foo end - case "module": { - const nodePath = path as Plugin.Path; - const parts: Plugin.Doc[] = [ - "module ", - printNameAndTypeParams(nodePath, node) - ]; - - if (node.self_types.length > 0) { - parts.push( - " : ", - join(", ", nodePath.map(printNameAndArgs, "self_types")) - ); - } - - parts.push(indent(printMembers(nodePath)), hardline, "end"); - doc = group(parts); - break; - } - /* istanbul ignore next */ - default: - throw new Error(`unknown declaration: ${(node as any).declaration}`); - } - } else if (node.member) { - switch (node.member) { - // Prints out an alias within a declaration, which looks like: - // alias foo bar - // alias self.foo self.bar - case "alias": { - if (node.kind === "singleton") { - doc = ["alias self.", node.new_name, " self.", node.old_name]; - } else { - doc = ["alias ", node.new_name, " ", node.old_name]; - } - break; - } - // Prints out an attr_* meta method, which looks like: - // attr_accessor foo - // attr_reader self.foo() - // attr_writer self.foo(@bar): String - case "attr_accessor": - case "attr_reader": - case "attr_writer": { - const parts: Plugin.Doc[] = [node.member, " "]; - - if (node.kind === "singleton") { - parts.push("self."); - } - - parts.push(node.name); - - if (node.ivar_name === false) { - parts.push("()"); - } else if (node.ivar_name) { - parts.push("(", node.ivar_name, ")"); - } - - parts.push(": ", path.call(printType, "type")); - doc = group(parts); - break; - } - // Prints out a class or instance variable member, which looks like: - // @foo: String - // @@foo: String - case "class_variable": - case "instance_variable": { - doc = group([node.name, ": ", path.call(printType, "type")]); - break; - } - // Prints out a class instance variable member, which looks like: - // self.@foo: String - case "class_instance_variable": { - doc = ["self.", node.name, ": ", path.call(printType, "type")]; - break; - } - // Prints out a mixin, which looks like: - // include Foo - // prepend Foo - // extend Foo - case "include": - case "extend": - case "prepend": { - const nodePath = path as Plugin.Path; - - doc = group([node.member, " ", printNameAndArgs(nodePath)]); - break; - } - case "public": - case "private": { - doc = node.member; - break; - } - case "method_definition": { - const nodePath = path as Plugin.Path; - - doc = printMethodDefinition(nodePath, node); - break; - } - /* istanbul ignore next */ - default: - throw new Error(`unknown member: ${(node as any).member}`); - } - } else { - const ast = JSON.stringify(node, null, 2); - throw new Error(`Unsupported node encountered:\n${ast}`); - } - - // An annotation can be attached to most kinds of nodes, and should be - // printed using %a{}. Certain nodes can't have annotations at all. - if (node.annotations && node.annotations.length > 0) { - const annotationsPath = path as Plugin.Path<{ - annotations: RBS.Annotation[]; - }>; - - doc = [ - join( - hardline, - annotationsPath.map((annotationPath) => { - const annotationNode = annotationPath.getValue(); - - // If there are already braces inside the annotation, then we're - // just going to print out the original string to avoid having to - // escape anything. - if (/[{}]/.test(annotationNode.string)) { - return getSource(annotationNode, opts); - } - - return ["%a{", annotationNode.string, "}"]; - }, "annotations") - ), - hardline, - doc - ]; - } - - // Comments come in as one whole string, so here we split it up into - // multiple lines and then prefix it with the pound sign. - if (node.comment) { - doc = [ - join( - hardline, - node.comment.string - .slice(0, -1) - .split("\n") - .map((segment) => `# ${segment}`) - ), - hardline, - doc - ]; - } - - return doc; - - // Prints out a string in the source, which looks like: - // 'foo' - function printString(node: RBS.Literal) { - // We're going to go straight to the source here, as if we don't then - // we're going to end up with the result of String#inspect, which does - // weird things to escape sequences. - const value = getSource(node, opts); - - // Get the quote that was used in the source and the quote that we want to - // be using. - const originalQuote = value[0]; - const preferredQuote = opts.rubySingleQuote ? "'" : '"'; - - // Determine if we're allowed to change the quote based on whether or not - // there is an escape sequence in the source string. - const quote = value.match(new RegExp(`\\\\[^${originalQuote}]`)) - ? originalQuote - : preferredQuote; - - return makeString(value.slice(1, -1), quote as util.Quote, false); - } - - // Certain nodes are names with optional arguments attached, as in Array[A]. - // We handle all of that printing centralized here. - function printNameAndArgs(path: Plugin.Path) { - const node = path.getValue(); - - if (node.args.length === 0) { - return node.name; - } - - return group([ - node.name, - "[", - join(", ", path.map(printType, "args")), - "]" - ]); - } - - // This is the big function that prints out any individual type, which can - // look like all kinds of things, listed in the case statement below. - function printType( - path: Plugin.Path, - options?: number | { forceParens: boolean } - ): Plugin.Doc { - const node = path.getValue(); - const forceParens = typeof options === "object" && options.forceParens; - - switch (node.class) { - case "literal": - if (node.literal[0] === '"') { - return printString(node); - } - return node.literal; - case "optional": { - const nodePath = path as Plugin.Path; - - return [ - nodePath.call( - (typePath) => printType(typePath, { forceParens: true }), - "type" - ), - "?" - ]; - } - case "tuple": { - // If we don't have any sub types, we explicitly need the space in - // between the brackets to not confuse the parser. - if (node.types.length === 0) { - return "[ ]"; - } - - const nodePath = path as Plugin.Path; - return group([ - "[", - join(", ", nodePath.map(printType, "types")), - "]" - ]); - } - case "union": { - const nodePath = path as Plugin.Path; - const doc = group( - join([line, "| "], nodePath.map(printType, "types")) - ); - - if (forceParens) { - return ["(", doc, ")"]; - } - - return doc; - } - case "intersection": { - const nodePath = path as Plugin.Path; - const doc = group( - join( - [line, "& "], - nodePath.map( - (typePath) => printType(typePath, { forceParens: true }), - "types" - ) - ) - ); - - if (forceParens) { - return ["(", doc, ")"]; - } - - return doc; - } - case "class_singleton": - return ["singleton(", node.name, ")"]; - case "proc": - return [ - "^", - printMethodSignature(path as Plugin.Path) - ]; - case "record": { - const nodePath = path as Plugin.Path; - const parts: Plugin.Doc[] = []; - - getSortedKeys(node.fields).forEach((field) => { - const fieldParts = []; - - if (node.fields[field].joiner === "rocket") { - fieldParts.push(`${field} => `); - } else { - fieldParts.push(`${field}: `); - } - - fieldParts.push(nodePath.call(printType, "fields", field, "type")); - parts.push(fieldParts); - }); - - return group([ - "{", - indent([line, join([",", line], parts)]), - line, - "}" - ]); - } - case "class_instance": - case "interface": { - const nodePath = path as Plugin.Path; - return printNameAndArgs(nodePath); - } - case "alias": - case "variable": - return node.name; - case "bool": - case "bot": - case "class": - case "instance": - case "nil": - case "self": - case "top": - case "untyped": - case "void": - return node.class; - /* istanbul ignore next */ - default: - throw new Error(`unknown type: ${(node as any).class}`); - } - } - - // Prints out the members of a class, module, or interface. - function printMembers( - path: Plugin.Path - ) { - let lastLine: number | null = null; - const docs: Plugin.Doc[] = []; - - path.each((memberPath) => { - const memberNode = memberPath.getValue(); - - if ( - lastLine !== null && - memberNode.location.start.line - lastLine >= 2 - ) { - docs.push([hardline, hardline]); - } else { - docs.push(hardline); - } - - docs.push(print(memberPath)); - lastLine = memberNode.location.end.line; - }, "members"); - - return docs; - } - - // Prints out the name of a class, interface, or module declaration. - // Additionally loops through each type parameter if there are any and print - // them out joined by commas. Checks for validation and variance. - function printNameAndTypeParams( - path: Plugin.Path, - node: RBS.NameAndTypeParams - ) { - if (node.type_params.length === 0) { - return node.name; - } - - const docs = path.map((paramPath) => { - const node = paramPath.getValue(); - const parts = []; - - if (node.unchecked) { - parts.push("unchecked"); - } - - if (node.variance === "covariant") { - parts.push("out"); - } else if (node.variance === "contravariant") { - parts.push("in"); - } - - if (node.upper_bound) { - const path = paramPath as Plugin.Path<{ upper_bound: RBS.Type }>; - const upperBound = path.call(printType, "upper_bound"); - return join(" ", [...parts, node.name, "<", upperBound]); - } else { - return join(" ", [...parts, node.name]); - } - }, "type_params"); - - return [node.name, "[", join(", ", docs), "]"]; - } - - // Returns an array of printed parameters so that the calling function can - // join them together in whatever way. - function printMethodParams(path: Plugin.Path) { - const node = path.getValue(); - let parts: Plugin.Doc[] = []; - - // required positionals, as in (A) - parts = parts.concat(path.map(printMethodParam, "required_positionals")); - - // optional positionals, as in (?A) - parts = parts.concat( - path.map( - (paramPath) => ["?", printMethodParam(paramPath)], - "optional_positionals" - ) - ); - - // rest positional, as in (*A) - if (node.rest_positionals) { - const restPositionalsPath = path as Plugin.Path< - RequiredKeys - >; - parts.push([ - "*", - restPositionalsPath.call(printMethodParam, "rest_positionals") - ]); - } - - // trailing positionals are required positionals after a rest - parts = parts.concat(path.map(printMethodParam, "trailing_positionals")); - - // required keywords, as in (a: A) - getSortedKeys(node.required_keywords).forEach((name) => { - parts.push([ - name, - ": ", - path.call(printMethodParam, "required_keywords", name) - ]); - }); - - // optional keywords, as in (?a: A) - getSortedKeys(node.optional_keywords).forEach((name) => { - parts.push([ - "?", - name, - ": ", - path.call(printMethodParam, "optional_keywords", name) - ]); - }); - - // rest keyword, as in (**A) - if (node.rest_keywords) { - const restKeywordsPath = path as Plugin.Path< - RequiredKeys - >; - parts.push([ - "**", - restKeywordsPath.call(printMethodParam, "rest_keywords") - ]); - } - - return parts; - - // Prints out a method parameter at a given path. Handles printing out the - // name if there is one (and whether or not it's escaped). - function printMethodParam(path: Plugin.Path) { - const node = path.getValue(); - const parts = [path.call(printType, "type")]; - - if (node.name) { - parts.push(" "); - - if (node.escaped) { - parts.push("`", node.name, "`"); - } else { - parts.push(node.name); - } - } - - return parts; - } - } - - // Prints out a specific method signature, which looks like: - // (T t) -> void - function printMethodSignature( - path: Plugin.Path - ): Plugin.Doc { - const node = path.getValue(); - const parts = []; - - // We won't have a type_params key if we're printing a block - if (node.type_params && node.type_params.length > 0) { - const typeParamNames = node.type_params.map((tp) => tp.name); - - parts.push("[", join(", ", typeParamNames), "] "); - } - - const params = path.call(printMethodParams, "type"); - - if (params.length > 0) { - parts.push( - "(", - indent([softline, join([",", line], params)]), - softline, - ") " - ); - } - - if (node.block) { - if (!node.block.required) { - parts.push("?"); - } - - parts.push( - "{", - indent([line, path.call(printMethodSignature, "block")]), - line, - "} " - ); - } - - parts.push( - "-> ", - path.call( - (typePath) => printType(typePath, { forceParens: true }), - "type", - "return_type" - ) - ); - - return group(parts); - } - - // Prints out a method definition, which looks like: - // def t: (T t) -> void - function printMethodDefinition( - path: Plugin.Path, - node: RBS.MethodDefinition - ) { - let typeDocs: Plugin.Doc = path.map(printMethodSignature, "types"); - - if (node.overload) { - typeDocs.push("..."); - } - - if (typeDocs.length === 1) { - typeDocs = [" ", typeDocs[0]]; - } else { - typeDocs = indent(group([line, join([line, "| "], typeDocs)])); - } - - const parts: Plugin.Doc[] = ["def "]; - - if (node.kind === "singleton") { - parts.push("self."); - } else if (node.kind === "singleton_instance") { - parts.push("self?."); - } - - const escaped = isMethodNameEscaped(); - parts.push(escaped ? `\`${node.name}\`` : node.name, ":", typeDocs); - - return group(parts); - - // Determine if a method name is escaped in the original source. - function isMethodNameEscaped() { - const pos = node.location.start_pos + 4; - const name = opts.originalText.slice(pos, pos + 2).trimStart(); - - return name[0] === "`" && name[1] !== ":"; - } - } - }, - // This is an escape-hatch to ignore nodes in the tree. If you have a comment - // that includes this pattern, then the entire node will be ignored and just - // the original source will be printed out. - hasPrettierIgnore(path) { - const node = path.getValue(); - - return ( - (node.comment && node.comment.string.includes("prettier-ignore")) || false - ); - }, - // This function handles adding the format pragma to a source string. This is - // an optional workflow for incremental adoption. - insertPragma(text) { - return `# @format${text[0] === "#" ? "\n" : "\n\n"}${text}`; - } -}; - -export default printer; diff --git a/src/types.ts b/src/types.ts index e83e34fc..ccfab44f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,4 +1,3 @@ export * as Plugin from "./types/plugin"; -export * as RBS from "./types/rbs"; export * as Ruby from "./types/ruby"; export * from "./types/utils"; diff --git a/src/types/rbs.ts b/src/types/rbs.ts deleted file mode 100644 index 02056482..00000000 --- a/src/types/rbs.ts +++ /dev/null @@ -1,108 +0,0 @@ -// This file contains all of the types that represent objects being returned -// from the RBS parser. - -export type MethodParam = { - name?: string - escaped: boolean, - type: Type -}; - -export type MethodParams = { - required_positionals: MethodParam[], - optional_positionals: MethodParam[], - rest_positionals?: MethodParam, - trailing_positionals: MethodParam[] - required_keywords: Record, - optional_keywords: Record, - rest_keywords?: MethodParam -}; - -export type MethodSignature = { - type_params: Param[], - type: MethodParams & { return_type: Type }, - block: { required: boolean } & MethodSignature -}; - -export type Type = { location: Location } & ( - | { class: "literal", literal: string } - | { class: "optional", type: Type } - | { class: "tuple", types: Type[] } - | { class: "union", types: Type[] } - | { class: "intersection", types: Type[] } - | { class: "class_singleton", name: string } - | { class: "proc" } & MethodSignature - | { class: "record", fields: Record } - | { class: "class_instance" } & NameAndArgs - | { class: "interface" } & NameAndArgs - | { class: "alias", name: string } - | { class: "variable", name: string } - | { class: "bool" } - | { class: "bot" } - | { class: "class" } - | { class: "instance" } - | { class: "nil" } - | { class: "self" } - | { class: "top" } - | { class: "untyped" } - | { class: "void" } -); - -export type Literal = Type & { class: "literal" }; - -export type NameAndArgs = { name: string, args: Type[] }; - -export type Location = { - start: { line: number, column: number }, - end: { line: number, column: number }, - start_pos: number, - end_pos: number -}; - -export type Member = { location: Location } & ( - | { member: "alias", new_name: string, old_name: string, kind: "instance" | "singleton" } - | { member: "attr_accessor" | "attr_reader" | "attr_writer", name: string, ivar_name?: string | false, kind: "instance" | "singleton", type: Type } - | { member: "class_variable" | "class_instance_variable" | "instance_variable", name: string, type: Type } - | { member: "include" } & NameAndArgs - | { member: "extend" } & NameAndArgs - | { member: "prepend" } & NameAndArgs - | { member: "public" } - | { member: "private" } - | { member: "method_definition", overload: boolean, name: string, types: MethodSignature[], kind: "instance" | "singleton" | "singleton_instance" } -); - -export type MethodDefinition = Member & { member: "method_definition" }; - -export type Param = { - name: string, - unchecked: boolean, - variance: "invariant" | "covariant" | "contravariant" - upper_bound?: Type, -}; - -export type NameAndTypeParams = { - name: string, - type_params: Param[] -}; - -export type Class = { declaration: "class", super_class?: NameAndArgs, members: Member[] } & NameAndTypeParams; -export type Interface = { declaration: "interface", members: Member[] } & NameAndTypeParams; -export type Module = { declaration: "module", self_types: NameAndArgs[], members: Member[] } & NameAndTypeParams; - -type Declaration = { location: Location } & ( - | { declaration: "alias", name: string, type: Type } - | Class - | { declaration: "constant", name: string, type: Type } - | { declaration: "global", name: string, type: Type } - | Interface - | Module -); - -type Root = { declarations: Declaration[], location: Location }; - -export type Annotation = { string: string, location: Location }; - -export type AnyNode = { comment?: { string: string }, annotations?: Annotation[] } & ( - | ({ declaration: undefined, member: undefined } & Root) - | ({ declarations: undefined, member: undefined } & Declaration) - | ({ declaration: undefined, declarations: undefined } & Member) -); diff --git a/test/js/rbs/method.txt b/test/js/rbs/method.txt index abc4047e..dfd4dd65 100644 --- a/test/js/rbs/method.txt +++ b/test/js/rbs/method.txt @@ -1,11 +1,11 @@ def t: -> void def t: -> void | ... -def t: -> ('a' | 'b' | 'c') -def t: -> ('a' | 'b' | 'c')? -def t: -> ('a' & 'b' & 'c') -def t: -> ('a' & 'b' & 'c')? -def t: -> ('a' & ('b' | 'c')) -def t: -> ('a' & ('b' | 'c'))? +def t: -> ("a" | "b" | "c") +def t: -> ("a" | "b" | "c")? +def t: -> ("a" & "b" & "c") +def t: -> ("a" & "b" & "c")? +def t: -> ("a" & ("b" | "c")) +def t: -> ("a" & ("b" | "c"))? def self.t: -> void def self.t: -> void | ... def self?.t: -> void diff --git a/test/js/rbs/parser.test.ts b/test/js/rbs/parser.test.ts deleted file mode 100644 index efa7ea76..00000000 --- a/test/js/rbs/parser.test.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { Plugin, RBS } from "../../../src/types"; -import { ruby } from "../utils"; -import parser from "../../../src/rbs/parser"; - -function parse(source: string) { - return parser.parse(source, {}, {} as Plugin.Options); -} - -describe("parser", () => { - test("parse", () => { - expect(parse("class Foo end").declarations).toHaveLength(1); - }); - - test("parse failure", () => { - expect(() => parse("<>")).toThrowError(); - }); - - test("hasPragma", () => { - const withPragma = ruby(` - # @prettier - module Foo - end - `); - - const withoutPragma = ruby(` - module Foo - end - `); - - expect(parser.hasPragma(withPragma)).toBe(true); - expect(parser.hasPragma(withoutPragma)).toBe(false); - }); - - test("locStart", () => { - const node = { location: { start_pos: 5 } } as RBS.AnyNode; - - expect(parser.locStart(node)).toEqual(5); - }); - - test("locEnd", () => { - const node = { location: { end_pos: 5 } } as RBS.AnyNode; - - expect(parser.locEnd(node)).toEqual(5); - }); -}); diff --git a/test/js/rbs/rbs.test.ts b/test/js/rbs/rbs.test.ts index 58724145..9b174aa3 100644 --- a/test/js/rbs/rbs.test.ts +++ b/test/js/rbs/rbs.test.ts @@ -223,7 +223,7 @@ describe("rbs", () => { }); test("uses default quotes", () => { - expect(rbs("T: 'foo'")).toMatchFormat(); + expect(rbs(`T: "foo"`)).toMatchFormat(); }); test("changes quotes to match", () => { @@ -237,11 +237,11 @@ describe("rbs", () => { }); test("unescapes double quotes when using single quotes", () => { - expect(rbs(`T: "super \\" duper"`)).toChangeFormat(`T: 'super " duper'`); + expect(rbs(`T: "super \\" duper"`)).toChangeFormat(`T: "super \\" duper"`); }); test("unescapes single quotes when using double quotes", () => { - expect(rbs(`T: 'super \\' duper'`)).toChangeFormat(`T: "super ' duper"`, { + expect(rbs(`T: 'super \\' duper'`)).toChangeFormat(`T: 'super \\' duper'`, { rubySingleQuote: false }); }); diff --git a/test/js/rbs/record.txt b/test/js/rbs/record.txt index debba3ed..d5e3a6e0 100644 --- a/test/js/rbs/record.txt +++ b/test/js/rbs/record.txt @@ -1,3 +1,3 @@ { foo: Integer } -{ foo: untyped, 3 => 'hoge' } +{ foo: untyped, 3 => "hoge" } { :+ => 1 } From c0ee8ff2b374335f655f3c2a31f41e5ff37c5c79 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 6 Apr 2022 22:10:04 -0400 Subject: [PATCH 046/262] Clean up types for the plugin --- src/plugin.ts | 111 +++++++++++++++++++++++++------------------------- 1 file changed, 56 insertions(+), 55 deletions(-) diff --git a/src/plugin.ts b/src/plugin.ts index 2f645e14..4dfe8220 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -1,65 +1,24 @@ +import type { Parser, Plugin, SupportLanguage } from "prettier"; + import rubyPrinter from "./ruby/printer"; import rubyParser from "./ruby/parser"; import parseSync from "./parser/parseSync"; -import type { Plugin } from "./types"; -const rbsParser: Plugin.Parser = { - parse(text) { - return parseSync("rbs", text); - }, - astFormat: "rbs", - hasPragma(text) { - return /^\s*#[^\S\n]*@(format|prettier)\s*(\n|$)/.test(text); - }, - locStart() { - return 0; - }, - locEnd() { - return 0; - } -}; +interface ExtendedSupportLanguage extends SupportLanguage { + interpreters?: string[] +} -const rbsPrinter: Plugin.PrinterConfig = { - print(path) { - return path.getValue(); - }, - insertPragma(text) { - return `# @format${text[0] === "#" ? "\n" : "\n\n"}${text}`; - } -}; - -const hamlParser: Plugin.Parser = { - parse(text) { - return parseSync("haml", text); - }, - astFormat: "haml", - hasPragma(text) { - return /^\s*-#\s*@(prettier|format)/.test(text); - }, - locStart() { - return 0; - }, - locEnd() { - return 0; - } -}; - -const hamlPrinter: Plugin.PrinterConfig = { - print(path) { - return path.getValue(); - }, - insertPragma(text) { - return `-# @format${text.startsWith("-#") ? "\n" : "\n\n"}${text}`; - } -}; +interface ExtendedPlugin extends Omit { + languages: ExtendedSupportLanguage[] +} /* * metadata mostly pulled from linguist and rubocop: * https://github.com/github/linguist/blob/master/lib/linguist/languages.yml * https://github.com/rubocop/rubocop/blob/master/spec/rubocop/target_finder_spec.rb */ -const plugin = { +const plugin: ExtendedPlugin = { languages: [ { name: "Ruby", @@ -134,14 +93,56 @@ const plugin = { } ], parsers: { - ruby: rubyParser, - rbs: rbsParser, - haml: hamlParser + ruby: rubyParser as Parser, + rbs: { + parse(text) { + return parseSync("rbs", text); + }, + astFormat: "rbs", + hasPragma(text) { + return /^\s*#[^\S\n]*@(prettier|format)\s*(\n|$)/.test(text); + }, + locStart() { + return 0; + }, + locEnd() { + return 0; + } + }, + haml: { + parse(text) { + return parseSync("haml", text); + }, + astFormat: "haml", + hasPragma(text) { + return /^\s*-#\s*@(prettier|format)/.test(text); + }, + locStart() { + return 0; + }, + locEnd() { + return 0; + } + } }, printers: { ruby: rubyPrinter, - rbs: rbsPrinter, - haml: hamlPrinter + rbs: { + print(path) { + return path.getValue(); + }, + insertPragma(text) { + return `# @format${text.startsWith("#") ? "\n" : "\n\n"}${text}`; + } + }, + haml: { + print(path) { + return path.getValue(); + }, + insertPragma(text) { + return `-# @format${text.startsWith("-#") ? "\n" : "\n\n"}${text}`; + } + } }, options: { rubyArrayLiteral: { From 3f75192779518a162ea56f462bcc65b8305e404f Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 6 Apr 2022 22:33:00 -0400 Subject: [PATCH 047/262] Swap ruby --- src/parser/server.rb | 10 +- src/plugin.ts | 31 +- src/ruby/embed.ts | 145 - src/ruby/location.ts | 17 - src/ruby/nodes.ts | 296 - src/ruby/nodes/alias.ts | 69 - src/ruby/nodes/aref.ts | 52 - src/ruby/nodes/args.ts | 172 - src/ruby/nodes/arrays.ts | 145 - src/ruby/nodes/assign.ts | 56 - src/ruby/nodes/calls.ts | 330 - src/ruby/nodes/case.ts | 59 - src/ruby/nodes/class.ts | 57 - src/ruby/nodes/commands.ts | 163 - src/ruby/nodes/conditionals.ts | 323 - src/ruby/nodes/constants.ts | 45 - src/ruby/nodes/flow.ts | 70 - src/ruby/nodes/hashes.ts | 159 - src/ruby/nodes/heredocs.ts | 34 - src/ruby/nodes/hooks.ts | 33 - src/ruby/nodes/ints.ts | 27 - src/ruby/nodes/lambdas.ts | 80 - src/ruby/nodes/loops.ts | 91 - src/ruby/nodes/massign.ts | 80 - src/ruby/nodes/methods.ts | 71 - src/ruby/nodes/operators.ts | 73 - src/ruby/nodes/params.ts | 124 - src/ruby/nodes/patterns.ts | 161 - src/ruby/nodes/regexp.ts | 57 - src/ruby/nodes/rescue.ts | 103 - src/ruby/nodes/return.ts | 115 - src/ruby/nodes/statements.ts | 162 - src/ruby/nodes/strings.ts | 293 - src/ruby/nodes/super.ts | 26 - src/ruby/nodes/undef.ts | 31 - src/ruby/parser.rb | 9134 -------------------- src/ruby/parser.ts | 33 - src/ruby/printer.ts | 78 - src/ruby/toProc.ts | 114 - src/types.ts | 124 +- src/types/plugin.ts | 97 - src/types/ruby.ts | 228 - src/types/utils.ts | 24 - src/utils.ts | 13 - src/utils/containsAssignment.ts | 18 - src/utils/getTrailingComma.ts | 7 - src/utils/hasAncestor.ts | 19 - src/utils/inlineEnsureParens.ts | 55 - src/utils/isEmptyBodyStmt.ts | 8 - src/utils/isEmptyParams.ts | 15 - src/utils/isEmptyStmts.ts | 13 - src/utils/literallineWithoutBreakParent.ts | 9 - src/utils/makeCall.ts | 19 - src/utils/noIndent.ts | 10 - src/utils/printEmptyCollection.ts | 58 - src/utils/skipAssignIndent.ts | 23 - test/js/ruby/toProc.test.ts | 210 - test/js/setupTests.ts | 11 +- 58 files changed, 157 insertions(+), 13923 deletions(-) delete mode 100644 src/ruby/embed.ts delete mode 100644 src/ruby/location.ts delete mode 100644 src/ruby/nodes.ts delete mode 100644 src/ruby/nodes/alias.ts delete mode 100644 src/ruby/nodes/aref.ts delete mode 100644 src/ruby/nodes/args.ts delete mode 100644 src/ruby/nodes/arrays.ts delete mode 100644 src/ruby/nodes/assign.ts delete mode 100644 src/ruby/nodes/calls.ts delete mode 100644 src/ruby/nodes/case.ts delete mode 100644 src/ruby/nodes/class.ts delete mode 100644 src/ruby/nodes/commands.ts delete mode 100644 src/ruby/nodes/conditionals.ts delete mode 100644 src/ruby/nodes/constants.ts delete mode 100644 src/ruby/nodes/flow.ts delete mode 100644 src/ruby/nodes/hashes.ts delete mode 100644 src/ruby/nodes/heredocs.ts delete mode 100644 src/ruby/nodes/hooks.ts delete mode 100644 src/ruby/nodes/ints.ts delete mode 100644 src/ruby/nodes/lambdas.ts delete mode 100644 src/ruby/nodes/loops.ts delete mode 100644 src/ruby/nodes/massign.ts delete mode 100644 src/ruby/nodes/methods.ts delete mode 100644 src/ruby/nodes/operators.ts delete mode 100644 src/ruby/nodes/params.ts delete mode 100644 src/ruby/nodes/patterns.ts delete mode 100644 src/ruby/nodes/regexp.ts delete mode 100644 src/ruby/nodes/rescue.ts delete mode 100644 src/ruby/nodes/return.ts delete mode 100644 src/ruby/nodes/statements.ts delete mode 100644 src/ruby/nodes/strings.ts delete mode 100644 src/ruby/nodes/super.ts delete mode 100644 src/ruby/nodes/undef.ts delete mode 100644 src/ruby/parser.rb delete mode 100644 src/ruby/parser.ts delete mode 100644 src/ruby/printer.ts delete mode 100644 src/ruby/toProc.ts delete mode 100644 src/types/plugin.ts delete mode 100644 src/types/ruby.ts delete mode 100644 src/types/utils.ts delete mode 100644 src/utils.ts delete mode 100644 src/utils/containsAssignment.ts delete mode 100644 src/utils/getTrailingComma.ts delete mode 100644 src/utils/hasAncestor.ts delete mode 100644 src/utils/inlineEnsureParens.ts delete mode 100644 src/utils/isEmptyBodyStmt.ts delete mode 100644 src/utils/isEmptyParams.ts delete mode 100644 src/utils/isEmptyStmts.ts delete mode 100644 src/utils/literallineWithoutBreakParent.ts delete mode 100644 src/utils/makeCall.ts delete mode 100644 src/utils/noIndent.ts delete mode 100644 src/utils/printEmptyCollection.ts delete mode 100644 src/utils/skipAssignIndent.ts delete mode 100644 test/js/ruby/toProc.test.ts diff --git a/src/parser/server.rb b/src/parser/server.rb index f1248537..72e05ac9 100644 --- a/src/parser/server.rb +++ b/src/parser/server.rb @@ -6,11 +6,7 @@ require 'fileutils' require 'open3' -# Ensure the parent module is defined before requiring the parsers. -module Prettier -end - -require_relative '../ruby/parser' +require 'syntax_tree' require 'syntax_tree/haml' require 'syntax_tree/rbs' @@ -79,7 +75,7 @@ module Prettier when 'ping' 'pong' when 'ruby' - PrettierSyntaxTree.parse(source) + SyntaxTree.format(source) when 'rbs' SyntaxTree::RBS.format(source) when 'haml' @@ -91,7 +87,7 @@ module Prettier else socket.write('{ "error": true }') end - rescue PrettierSyntaxTree::ParseError => error + rescue SyntaxTree::Parser::ParseError => error loc = { start: { line: error.lineno, column: error.column } } socket.write(JSON.fast_generate(error: error.message, loc: loc)) rescue StandardError => error diff --git a/src/plugin.ts b/src/plugin.ts index 4dfe8220..182589ac 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -1,8 +1,4 @@ -import type { Parser, Plugin, SupportLanguage } from "prettier"; - -import rubyPrinter from "./ruby/printer"; -import rubyParser from "./ruby/parser"; - +import type { Plugin, SupportLanguage } from "prettier"; import parseSync from "./parser/parseSync"; interface ExtendedSupportLanguage extends SupportLanguage { @@ -93,7 +89,21 @@ const plugin: ExtendedPlugin = { } ], parsers: { - ruby: rubyParser as Parser, + ruby: { + parse(text) { + return parseSync("ruby", text); + }, + astFormat: "ruby", + hasPragma(text) { + return /^\s*#[^\S\n]*@(?:prettier|format)\s*?(?:\n|$)/m.test(text); + }, + locStart() { + return 0; + }, + locEnd() { + return 0; + } + }, rbs: { parse(text) { return parseSync("rbs", text); @@ -126,7 +136,14 @@ const plugin: ExtendedPlugin = { } }, printers: { - ruby: rubyPrinter, + ruby: { + print(path) { + return path.getValue(); + }, + insertPragma(text) { + return `# @format${text.startsWith("#") ? "\n" : "\n\n"}${text}`; + }, + }, rbs: { print(path) { return path.getValue(); diff --git a/src/ruby/embed.ts b/src/ruby/embed.ts deleted file mode 100644 index b7fb494b..00000000 --- a/src/ruby/embed.ts +++ /dev/null @@ -1,145 +0,0 @@ -import type { Plugin, Ruby } from "../types"; -import prettier from "../prettier"; -import { literallineWithoutBreakParent } from "../utils"; - -const { - group, - indent, - dedent, - lineSuffix, - mapDoc, - markAsRoot, - stripTrailingHardline -} = prettier; - -const parsers: Record = { - css: "css", - javascript: "babel", - js: "babel", - less: "less", - markdown: "markdown", - ruby: "ruby", - scss: "scss" -}; - -// This function is in here because it handles embedded parser values. I don't -// have a test that exercises it because I'm not sure for which parser it is -// necessary, but since it's in prettier core I'm keeping it here. -/* istanbul ignore next */ -function replaceNewlines(doc: Plugin.Doc) { - return mapDoc(doc, (currentDoc: Plugin.Doc) => - typeof currentDoc === "string" && currentDoc.includes("\n") - ? currentDoc - .split(/(\n)/g) - .map((v, i) => (i % 2 === 0 ? v : literallineWithoutBreakParent)) - : currentDoc - ); -} - -// Returns a number that represents the minimum amount of leading whitespace -// that is present on every line in the given string. So for example if you have -// the following heredoc: -// -// <<~HERE -// my -// content -// here -// HERE -// -// then the return value of this function would be 2. If you indented every line -// of the inner content 2 more spaces then this function would return 4. -function getCommonLeadingWhitespace(content: string) { - const pattern = /^\s+/; - - return content - .split("\n") - .slice(0, -1) - .filter((line) => line.trim().length > 0) - .reduce((minimum, line) => { - const matched = pattern.exec(line); - const length = matched ? matched[0].length : 0; - - return minimum === null ? length : Math.min(minimum, length); - }, content.length); -} - -// Returns a new string with the common whitespace stripped out. Effectively it -// emulates what a squiggly heredoc does in Ruby. -function stripCommonLeadingWhitespace(content: string) { - const lines = content.split("\n"); - const minimum = getCommonLeadingWhitespace(content); - - return lines.map((line) => line.slice(minimum)).join("\n"); -} - -// A type assertion so that TypeScript knows we're working with an array of -// exclusively plain string content. -function isTStringContentArray( - body: Ruby.StringContent[] -): body is Ruby.TStringContent[] { - return body.every((part) => part.type === "tstring_content"); -} - -const embed: Plugin.Embed = (path, print, textToDoc) => { - const node = path.getValue(); - - // Currently we only support embedded formatting on heredoc nodes - if (node.type !== "heredoc") { - return null; - } - - // First, ensure that we don't have any interpolation - const { beging, parts, ending } = node; - const isSquiggly = beging.value[2] === "~"; - - if (!isTStringContentArray(parts)) { - return null; - } - - // Next, find the parser associated with this heredoc (if there is one). For - // example, if you use <<~CSS, we'd hook it up to the css parser. - const parser = parsers[beging.value.slice(3).toLowerCase()]; - if (!parser) { - return null; - } - - // Get the content as if it were a source string. - let content = parts.map((part) => part.value).join(""); - - // If we're using a squiggly heredoc, then we're going to manually strip off - // the leading whitespace of each line up to the minimum leading whitespace so - // that the embedded parser can handle that for us. - if (isSquiggly) { - content = stripCommonLeadingWhitespace(content); - } - - // Pass that content into the embedded parser. Get back the doc node. - const formatted = [ - literallineWithoutBreakParent, - replaceNewlines(stripTrailingHardline(textToDoc(content, { parser }))) - ]; - - // If we're using a squiggly heredoc, then we can properly handle indentation - // ourselves. - if (isSquiggly) { - return [ - path.call(print, "beging"), - lineSuffix( - dedent([ - indent(markAsRoot(formatted)), - { type: "line", hard: true }, - ending.trim() - ]) - ) - ]; - } - - // Otherwise, we need to just assume it's formatted correctly and return the - // content as it is. - return markAsRoot([ - path.call(print, "beging"), - lineSuffix(group([formatted, literallineWithoutBreakParent, ending.trim()])) - ]); -}; - -export default embed; diff --git a/src/ruby/location.ts b/src/ruby/location.ts deleted file mode 100644 index a5ae7b69..00000000 --- a/src/ruby/location.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { Location } from "../types/ruby"; - -export function getStartLine(location: Location) { - return location[0]; -} - -export function getStartChar(location: Location) { - return location[1]; -} - -export function getEndLine(location: Location) { - return location[2]; -} - -export function getEndChar(location: Location) { - return location[3]; -} diff --git a/src/ruby/nodes.ts b/src/ruby/nodes.ts deleted file mode 100644 index 805ae81a..00000000 --- a/src/ruby/nodes.ts +++ /dev/null @@ -1,296 +0,0 @@ -import type { Plugin, Ruby } from "../types"; - -import { printAlias } from "./nodes/alias"; -import { printAref, printArefField } from "./nodes/aref"; -import { - printArgParen, - printArgs, - printArgsAddBlock, - printArgStar, - printBlockArg -} from "./nodes/args"; -import { - printArray, - printQsymbols, - printQwords, - printSymbols, - printWord, - printWords -} from "./nodes/arrays"; -import { - printAssign, - printOpAssign, - printVarField, - printVarRef -} from "./nodes/assign"; -import { printBlockVar, printBraceBlock, printDoBlock } from "./nodes/blocks"; -import { - printCall, - printCallContainer, - printMethodAddArg, - printMethodAddBlock -} from "./nodes/calls"; -import { printCase, printWhen } from "./nodes/case"; -import { printClass, printModule, printSClass } from "./nodes/class"; -import { printCommand, printCommandCall } from "./nodes/commands"; -import { - printElse, - printElsif, - printIf, - printIfModifier, - printTernary, - printUnless, - printUnlessModifier -} from "./nodes/conditionals"; -import { - printConstPath, - printConstRef, - printDefined, - printField, - printTopConst -} from "./nodes/constants"; -import { printBreak, printNext, printYield, printYield0 } from "./nodes/flow"; -import { - printAssoc, - printAssocSplat, - printHash, - printHashContents -} from "./nodes/hashes"; -import { printHeredoc } from "./nodes/heredocs"; -import { printBEGIN, printEND } from "./nodes/hooks"; -import { printInt } from "./nodes/ints"; -import { printLambda } from "./nodes/lambdas"; -import { printFor, printUntil, printWhile } from "./nodes/loops"; -import { - printMAssign, - printMLHS, - printMLHSParen, - printMRHS, - printMRHSAddStar, - printMRHSNewFromArgs -} from "./nodes/massign"; -import { printAccessControl, printDef, printDefEndless } from "./nodes/methods"; -import { - printBinary, - printDot2, - printDot3, - printNot, - printUnary -} from "./nodes/operators"; -import { - printArgsForward, - printExcessedComma, - printKeywordRestParam, - printParams, - printRestParam -} from "./nodes/params"; -import { - printAryPtn, - printFndPtn, - printHshPtn, - printIn, - printRAssign -} from "./nodes/patterns"; -import { printRegexpLiteral } from "./nodes/regexp"; -import { - printBegin, - printEnsure, - printRedo, - printRescue, - printRescueEx, - printRescueMod, - printRetry -} from "./nodes/rescue"; -import { printReturn, printReturn0 } from "./nodes/return"; -import { - printBodyStmt, - printComment, - printEndContent, - printParen, - printProgram, - printStatements -} from "./nodes/statements"; -import { - printChar, - printDynaSymbol, - printStringConcat, - printStringDVar, - printStringEmbExpr, - printStringLiteral, - printSymbolLiteral, - printXStringLiteral -} from "./nodes/strings"; -import { printSuper, printZSuper } from "./nodes/super"; -import { printUndef } from "./nodes/undef"; - -type Token = - | Ruby.EndContent - | Ruby.Backref - | Ruby.Backtick - | Ruby.Const - | Ruby.CVar - | Ruby.Float - | Ruby.GVar - | Ruby.HeredocBegin - | Ruby.Identifier - | Ruby.Imaginary - | Ruby.Int - | Ruby.IVar - | Ruby.Keyword - | Ruby.Label - | Ruby.Lbrace - | Ruby.Lparen - | Ruby.Op - | Ruby.Period - | Ruby.Rational - | Ruby.TStringContent; - -const printToken: Plugin.Printer = (path) => path.getValue().value; -const printVoidStmt: Plugin.Printer = () => ""; - -const nodes: Record< - Ruby.AnyNode["type"] | "comment" | "embdoc", - Plugin.Printer -> = { - BEGIN: printBEGIN, - CHAR: printChar, - END: printEND, - __end__: printEndContent, - access_ctrl: printAccessControl, - alias: printAlias, - aref: printAref, - aref_field: printArefField, - arg_paren: printArgParen, - args: printArgs, - args_add_block: printArgsAddBlock, - args_forward: printArgsForward, - arg_star: printArgStar, - array: printArray, - aryptn: printAryPtn, - assign: printAssign, - assoc: printAssoc, - assoc_splat: printAssocSplat, - assoclist_from_args: printHashContents, - backref: printToken, - backtick: printToken, - bare_assoc_hash: printHashContents, - begin: printBegin, - binary: printBinary, - block_var: printBlockVar, - blockarg: printBlockArg, - bodystmt: printBodyStmt, - brace_block: printBraceBlock, - break: printBreak, - call: printCall, - case: printCase, - class: printClass, - command: printCommand, - command_call: printCommandCall, - comment: printComment, - const: printToken, - const_path_field: printConstPath, - const_path_ref: printConstPath, - const_ref: printConstRef, - cvar: printToken, - def: printDef, - def_endless: printDefEndless, - defined: printDefined, - defs: printDef, - do_block: printDoBlock, - dot2: printDot2, - dot3: printDot3, - dyna_symbol: printDynaSymbol, - else: printElse, - elsif: printElsif, - embdoc: printComment, - ensure: printEnsure, - excessed_comma: printExcessedComma, - fcall: printCallContainer, - field: printField, - float: printToken, - fndptn: printFndPtn, - for: printFor, - gvar: printToken, - hash: printHash, - heredoc: printHeredoc, - heredoc_beg: printToken, - hshptn: printHshPtn, - ident: printToken, - if: printIf, - if_mod: printIfModifier, - ifop: printTernary, - imaginary: printToken, - in: printIn, - int: printInt, - ivar: printToken, - kw: printToken, - kwrest_param: printKeywordRestParam, - label: printToken, - lambda: printLambda, - lbrace: printToken, - lparen: printToken, - massign: printMAssign, - method_add_arg: printMethodAddArg, - method_add_block: printMethodAddBlock, - mlhs: printMLHS, - mlhs_paren: printMLHSParen, - module: printModule, - mrhs: printMRHS, - mrhs_add_star: printMRHSAddStar, - mrhs_new_from_args: printMRHSNewFromArgs, - next: printNext, - not: printNot, - op: printToken, - opassign: printOpAssign, - params: printParams, - paren: printParen, - period: printToken, - program: printProgram, - qsymbols: printQsymbols, - qwords: printQwords, - rassign: printRAssign, - rational: printToken, - redo: printRedo, - regexp_literal: printRegexpLiteral, - rescue: printRescue, - rescue_ex: printRescueEx, - rescue_mod: printRescueMod, - rest_param: printRestParam, - retry: printRetry, - return0: printReturn0, - return: printReturn, - sclass: printSClass, - statements: printStatements, - string_concat: printStringConcat, - string_dvar: printStringDVar, - string_embexpr: printStringEmbExpr, - string_literal: printStringLiteral, - super: printSuper, - symbol_literal: printSymbolLiteral, - symbols: printSymbols, - top_const_field: printTopConst, - top_const_ref: printTopConst, - tstring_content: printToken, - unary: printUnary, - undef: printUndef, - unless: printUnless, - unless_mod: printUnlessModifier, - until: printUntil, - until_mod: printUntil, - var_alias: printAlias, - var_field: printVarField, - var_ref: printVarRef, - vcall: printCallContainer, - void_stmt: printVoidStmt, - when: printWhen, - while: printWhile, - while_mod: printWhile, - word: printWord, - words: printWords, - xstring_literal: printXStringLiteral, - yield0: printYield0, - yield: printYield, - zsuper: printZSuper -}; - -export default nodes; diff --git a/src/ruby/nodes/alias.ts b/src/ruby/nodes/alias.ts deleted file mode 100644 index 3ea96cfc..00000000 --- a/src/ruby/nodes/alias.ts +++ /dev/null @@ -1,69 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { addTrailingComment, align, group, hardline, line } = prettier; - -type AliasArg = Ruby.Backref | Ruby.DynaSymbol | Ruby.GVar | Ruby.SymbolLiteral; - -// The `alias` keyword is used to make a method respond to another name as well -// as the current one. For example, to get the method `foo` to also respond to -// `bar`, you would: -// -// alias bar foo -// -// Now, in the current context you can call `bar` and it will execute the `foo` -// method. -// -// When you're aliasing two methods, you can either provide bare words (like the -// example above) or you can provide symbols (note that this includes dynamic -// symbols like :"foo-#{bar}-baz"). In general, to be consistent with the ruby -// style guide, we prefer bare words: -// -// https://github.com/rubocop-hq/ruby-style-guide#alias-method-lexically -// -// The `alias` node contains two children. The left and right align with the -// arguments passed to the keyword. So, for the above example the left would be -// the symbol literal `bar` and the right could be the symbol literal `foo`. -export const printAlias: Plugin.Printer = ( - path, - opts, - print -) => { - const keyword = "alias "; - const node = path.getValue(); - - // In general, return the printed doc of the argument at the provided index. - // Special handling is given for symbol literals that are not bare words, as - // we convert those into bare words by just pulling out the ident node. - const printAliasArg = (argPath: Plugin.Path) => { - const argNode = argPath.getValue(); - - if (argNode.type === "symbol_literal") { - // If we're going to descend into the symbol literal to grab out the ident - // node, then we need to make sure we copy over any comments as well, - // otherwise we could accidentally skip printing them. - if (argNode.comments) { - argNode.comments.forEach((comment) => { - addTrailingComment(argNode.value, comment); - }); - } - - return argPath.call(print, "value"); - } - - return print(argPath); - }; - - return group([ - keyword, - path.call(printAliasArg, "left"), - group( - align(keyword.length, [ - // If the left child has any comments, then we need to explicitly break - // this into two lines - node.left.comments ? hardline : line, - path.call(printAliasArg, "right") - ]) - ) - ]); -}; diff --git a/src/ruby/nodes/aref.ts b/src/ruby/nodes/aref.ts deleted file mode 100644 index e5429ffa..00000000 --- a/src/ruby/nodes/aref.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { group, indent, join, line, softline } = prettier; - -// `aref` nodes are when you're pulling a value out of a collection at a -// specific index. Put another way, it's any time you're calling the method -// `#[]`. -// -// The nodes usually contains two children, details below in the -// `printArefField` function. In some cases, you don't necessarily have the -// second child node, because you can call procs with a pretty esoteric syntax. -// In the following example, you wouldn't have a second child, and `"foo"` would -// be the first child. -// -// foo[] -// -export const printAref: Plugin.Printer = (path, opts, print) => { - if (!path.getValue().index) { - return [path.call(print, "collection"), "[]"]; - } - - return printArefField(path, opts, print); -}; - -// `aref_field` nodes are for assigning values into collections at specific -// indices. Put another way, it's any time you're calling the method `#[]=`. -// The `aref_field` node itself is just the left side of the assignment, and -// they're always wrapped in `assign` nodes. -// -// The nodes always contain two children, the name of the array (usually a -// `vcall` node and the index (usually an `args_add_block` node). The -// `args_add_block` is one of a couple nodes that has special handling where its -// printed form is actually an array to make joining easier. -// -// So in the following example, `"foo"` is the array and `["bar"]` is the index. -// -// foo[bar] = baz -// -export const printArefField: Plugin.Printer = ( - path, - opts, - print -) => { - return group([ - path.call(print, "collection"), - "[", - indent([softline, join([",", line], path.call(print, "index"))]), - softline, - "]" - ]); -}; diff --git a/src/ruby/nodes/args.ts b/src/ruby/nodes/args.ts deleted file mode 100644 index 6e1d142f..00000000 --- a/src/ruby/nodes/args.ts +++ /dev/null @@ -1,172 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -import { getTrailingComma } from "../../utils"; -import toProc from "../toProc"; - -const { group, ifBreak, indent, join, line, softline } = prettier; - -const noTrailingComma = ["command", "command_call"]; - -function getArgs(node: Ruby.Args | Ruby.ArgsAddBlock): Ruby.AnyNode[] { - switch (node.type) { - case "args": - return node.parts; - case "args_add_block": { - const args = getArgs(node.args); - return node.block ? [...args, node.block] : args; - } - } -} - -function getArgParenTrailingComma(node: Ruby.Args | Ruby.ArgsAddBlock) { - // If we have a block, then we don't want to add a trailing comma. - if (node.type === "args_add_block" && node.block) { - return ""; - } - - // If we only have one argument and that first argument necessitates that we - // skip putting a comma (because it would interfere with parsing the argument) - // then we don't want to add a trailing comma. - const args = getArgs(node); - if (args.length === 1 && noTrailingComma.includes(args[0].type)) { - return ""; - } - - return ifBreak(",", ""); -} - -export const printArgParen: Plugin.Printer = ( - path, - opts, - print -) => { - const argsNode = path.getValue().args; - - if (argsNode === null) { - return ""; - } - - // Here we can skip the entire rest of the method by just checking if it's - // an args_forward node, as we're guaranteed that there are no other arg - // nodes. - if (argsNode.type === "args_forward") { - return group([ - "(", - indent([softline, path.call(print, "args")]), - softline, - ")" - ]); - } - - // Now here we return a doc that represents the whole grouped expression, - // including the surrouding parentheses. - return group([ - "(", - indent([ - softline, - join([",", line], path.call(print, "args")), - getTrailingComma(opts) ? getArgParenTrailingComma(argsNode) : "" - ]), - softline, - ")" - ]); -}; - -export const printArgs: Plugin.Printer = ( - path, - { rubyToProc }, - print -) => { - const args = path.map(print, "parts"); - - // Don't bother trying to do any kind of fancy toProc transform if the - // option is disabled. - if (rubyToProc) { - let blockNode = null; - - // Look up the chain to see if these arguments are contained within a - // method_add_block node, and if they are that that node has a block - // associated with it. If it does, we're going to attempt to transform it - // into the to_proc shorthand and add it to the list of arguments. - [1, 2, 3].find((parent) => { - const parentNode = path.getParentNode(parent) as Ruby.AnyNode; - blockNode = - parentNode && - parentNode.type === "method_add_block" && - parentNode.block; - - return blockNode; - }); - - const proc = blockNode && toProc(path, blockNode); - - // If we have a successful to_proc transformation, but we're part of an - // aref node, that means it's something to the effect of - // - // foo[:bar].each(&:to_s) - // - // In this case we need to just return regular arguments, otherwise we - // would end up putting &:to_s inside the brackets accidentally. - if (proc && path.getParentNode(1).type !== "aref") { - args.push(proc); - } - } - - return args; -}; - -export const printArgsAddBlock: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - const parts = path.call(print, "args") as Plugin.Doc[]; - - if (node.block) { - let blockDoc = path.call(print, "block") as any; - - if (!(node.block.comments || []).some(({ leading }) => leading)) { - // If we don't have any leading comments, we can just prepend the - // operator. - blockDoc = ["&", blockDoc]; - } else { - // If we have a method call like: - // - // foo( - // # comment - // &block - // ) - // - // then we need to make sure we don't accidentally prepend the operator - // before the comment. - // - // In prettier >= 2.3.0, the comments are printed as an array before the - // content. I don't love this kind of reflection, but it's the simplest - // way at the moment to get this right. - blockDoc = blockDoc[0].concat(["&", blockDoc[1]], blockDoc.slice(2)); - } - - parts.push(blockDoc); - } - - return parts; -}; - -export const printBlockArg: Plugin.Printer = ( - path, - opts, - print -) => { - return ["&", path.call(print, "name")]; -}; - -export const printArgStar: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - return node.value ? ["*", path.call(print, "value")] : "*"; -}; diff --git a/src/ruby/nodes/arrays.ts b/src/ruby/nodes/arrays.ts deleted file mode 100644 index 06ef07cf..00000000 --- a/src/ruby/nodes/arrays.ts +++ /dev/null @@ -1,145 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { getTrailingComma, printEmptyCollection } from "../../utils"; - -const { group, ifBreak, indent, join, line, softline } = prettier; - -// Checks that every argument within this args node is a string_literal node -// that has no spaces or interpolations. This means we're dealing with an array -// that looks something like: -// -// ['a', 'b', 'c'] -// -function isStringArray(args: Ruby.Args) { - return ( - args.parts.length > 1 && - args.parts.every((arg) => { - // We want to verify that every node inside of this array is a string - // literal. We also want to make sure none of them have comments attached. - if (arg.type !== "string_literal" || arg.comments) { - return false; - } - - // If the string has multiple parts (meaning plain string content but also - // interpolated content) then we know it's not a simple string. - if (arg.parts.length !== 1) { - return false; - } - - const part = arg.parts[0]; - - // If the only part of this string is not @tstring_content then it's - // interpolated, so again we can return false. - if (part.type !== "tstring_content") { - return false; - } - - // Finally, verify that the string doesn't contain a space, an escape - // character, or brackets so that we know it can be put into a string - // literal array. - return !/[\s\\[\]]/.test(part.value); - }) - ); -} - -// Checks that every argument within this args node is a symbol_literal node (as -// opposed to a dyna_symbol) so it has no interpolation. This means we're -// dealing with an array that looks something like: -// -// [:a, :b, :c] -// -function isSymbolArray(args: Ruby.Args) { - return ( - args.parts.length > 1 && - args.parts.every((arg) => arg.type === "symbol_literal" && !arg.comments) - ); -} - -// Prints out a word that is a part of a special array literal that accepts -// interpolation. The body is an array of either plain strings or interpolated -// expressions. -export const printWord: Plugin.Printer = (path, opts, print) => { - return path.map(print, "parts"); -}; - -// Prints out a special array literal. Accepts the parts of the array literal as -// an argument, where the first element of the parts array is a string that -// contains the special start. -function printArrayLiteralParts(start: string, parts: Plugin.Doc[]) { - return group([ - start, - "[", - indent([softline, join(line, parts)]), - softline, - "]" - ]); -} - -function printArrayLiteral(start: string): Plugin.Printer { - return function printArrayLiteralWithStart(path, opts, print) { - return printArrayLiteralParts(start, (path as any).map(print, "elems")); - }; -} - -export const printQsymbols = printArrayLiteral("%i"); -export const printQwords = printArrayLiteral("%w"); -export const printSymbols = printArrayLiteral("%I"); -export const printWords = printArrayLiteral("%W"); - -// An array node is any literal array in Ruby. This includes all of the special -// array literals as well as regular arrays. If it is a special array literal -// then it will have one child that represents the special array, otherwise it -// will have one child that contains all of the elements of the array. -export const printArray: Plugin.Printer = (path, opts, print) => { - const array = path.getValue(); - const contents = array.cnts; - - // If there is no inner arguments node, then we're dealing with an empty - // array, so we can go ahead and return. - if (contents === null) { - return printEmptyCollection(path, opts, "[", "]"); - } - - if (opts.rubyArrayLiteral) { - // If we have an array that contains only simple string literals with no - // spaces or interpolation, then we're going to print a %w array. - if (isStringArray(contents)) { - const printString = (stringPath: Plugin.Path) => - stringPath.call(print, "parts", 0); - - const nodePath = path as Plugin.Path<{ - cnts: { parts: Ruby.StringLiteral[] }; - }>; - const parts = nodePath.map(printString, "cnts", "parts"); - - return printArrayLiteralParts("%w", parts); - } - - // If we have an array that contains only simple symbol literals with no - // interpolation, then we're going to print a %i array. - if (isSymbolArray(contents)) { - const printSymbol = (symbolPath: Plugin.Path) => - symbolPath.call(print, "value"); - - const nodePath = path as Plugin.Path<{ - cnts: { parts: Ruby.SymbolLiteral[] }; - }>; - const parts = nodePath.map(printSymbol, "cnts", "parts"); - - return printArrayLiteralParts("%i", parts); - } - } - - // Here we have a normal array of any type of object with no special literal - // types or anything. - return group([ - "[", - indent([ - softline, - join([",", line], path.call(print, "cnts")), - getTrailingComma(opts) ? ifBreak(",", "") : "" - ]), - softline, - "]" - ]); -}; diff --git a/src/ruby/nodes/assign.ts b/src/ruby/nodes/assign.ts deleted file mode 100644 index 90cda112..00000000 --- a/src/ruby/nodes/assign.ts +++ /dev/null @@ -1,56 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { skipAssignIndent } from "../../utils"; -import { Doc, Path } from "../../types/plugin"; - -const { group, indent, join, line } = prettier; - -export const printAssign: Plugin.Printer = (...args) => { - return printOpAssignOrAssign("=", ...args); -}; - -export const printOpAssign: Plugin.Printer = ( - path, - opts, - print -) => { - const opDoc = path.call(print, "op"); - return printOpAssignOrAssign(opDoc, path, opts, print); -}; - -function printOpAssignOrAssign( - opDoc: Doc, - path: Path, - opts: Plugin.Options, - print: Plugin.Print -): Doc { - const valueNode = path.getValue().value; - - const targetDoc = path.call(print, "target"); - const valueDoc = path.call(print, "value"); - - let rightSideDoc = valueDoc; - - // If the right side of this assignment is a multiple assignment, then we need - // to join it together with commas. - if ( - ["mrhs", "mrhs_add_star", "mrhs_new_from_args"].includes(valueNode.type) - ) { - rightSideDoc = group(join([",", line], valueDoc)); - } - - if (skipAssignIndent(valueNode)) { - return group([targetDoc, " ", opDoc, " ", rightSideDoc]); - } - - return group([targetDoc, " ", opDoc, indent([line, rightSideDoc])]); -} - -export const printVarField: Plugin.Printer = ( - path, - opts, - print -) => (path.getValue().value ? path.call(print, "value") : ""); - -export const printVarRef: Plugin.Printer = (path, opts, print) => - path.call(print, "value"); diff --git a/src/ruby/nodes/calls.ts b/src/ruby/nodes/calls.ts deleted file mode 100644 index cd6af2be..00000000 --- a/src/ruby/nodes/calls.ts +++ /dev/null @@ -1,330 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { makeCall, noIndent } from "../../utils"; -import toProc from "../toProc"; - -const { group, hardline, ifBreak, indent, join, softline } = prettier; -const chained = ["call", "method_add_arg", "method_add_block"]; - -function hasLeadingComments(node: Ruby.AnyNode) { - return node.comments?.some(({ leading }) => leading); -} - -// We decorate these nodes with a bunch of extra stuff so that we can display -// nice method chains. -type Chain = { - chain?: number; - callChain?: number; - breakDoc?: Plugin.Doc[]; - firstReceiverType?: string; -}; - -type ChainedCall = Ruby.Call & Chain; -type ChainedMethodAddArg = Ruby.MethodAddArg & Chain; -type ChainedMethodAddBlock = Ruby.MethodAddBlock & Chain; - -export const printCall: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - - const receiverDoc = path.call(print, "receiver"); - const operatorDoc = makeCall(path, opts, print); - - // You can call lambdas with a special syntax that looks like func.(*args). - // In this case, "call" is returned for the 3rd child node. We don't alter - // call syntax so if `call` is implicit, we don't print it out. - const messageDoc = node.message === "call" ? "" : path.call(print, "message"); - - // Create some arrays that are going to represent each side of our call. - let leftSideDoc = [receiverDoc]; - let rightSideDoc = [operatorDoc, messageDoc]; - - // If there are leading comments on the right side of the call, then it means - // we have a structure where there's a receiver and an operator together, then - // a comment, then the message, as in: - // - // foo. - // # comment - // baz - // - // In the case we need to group the receiver and the operator together or - // we'll end up with a syntax error. - const operatorIsTrailing = - node.message !== "call" && hasLeadingComments(node.message); - - if (operatorIsTrailing) { - leftSideDoc = [receiverDoc, operatorDoc]; - rightSideDoc = [messageDoc]; - } - - // For certain left sides of the call nodes, we want to attach directly to - // the } or end. - if (noIndent.includes(node.receiver.type)) { - return [leftSideDoc, rightSideDoc]; - } - - if ( - node.receiver.type === "call" && - node.receiver.message !== "call" && - node.receiver.message.value === "where" && - messageDoc === "not" - ) { - // This is very specialized behavior wherein we group .where.not calls - // together because it looks better. For more information, see - // https://github.com/prettier/plugin-ruby/issues/862. - } else { - // Otherwise, we're going to put a line node into the right side doc. - rightSideDoc.unshift(node.receiver.comments ? hardline : softline); - } - - // Get a reference to the parent node so we can check if we're inside a chain - const parentNode = path.getParentNode(); - - // If our parent node is a chained node then we're not going to group the - // right side of the expression, as we want to have a nice multi-line layout. - if (chained.includes(parentNode.type) && !node.comments) { - parentNode.chain = (node.chain || 0) + 1; - parentNode.callChain = (node.callChain || 0) + 1; - parentNode.firstReceiverType = node.firstReceiverType || node.receiver.type; - - // Here we're going to determine what doc nodes to send up to the parent - // node to represent when we're in the multi-line form. - let breakDocLHS: Plugin.Doc[]; - - if (node.breakDoc && operatorIsTrailing) { - // Here we already have a child node that has passed up its - // representation. In this case node.breakDoc represents the receiver - // without any lines inserted. With regard to this node, it means it's - // everything up until the operator. So we're just going to append the - // operator. - breakDocLHS = node.breakDoc.concat(operatorDoc); - } else if (node.breakDoc) { - // Here we don't need a trailing operator, so we're just going to use the - // existing node.breakDoc. The operator will be a part of the rightSideDoc - // variable. - breakDocLHS = node.breakDoc; - } else { - // Here we're at the bottom of the chain, so there's no representation yet - // for the receiver. So we're just going to pass up the left side. - breakDocLHS = leftSideDoc; - } - - parentNode.breakDoc = breakDocLHS.concat(rightSideDoc); - } - - // If we're at the top of a chain, then we're going to print out a nice - // multi-line layout if this doesn't break into multiple lines. - if ( - !chained.includes(parentNode.type) && - (node.chain || 0) >= 3 && - node.breakDoc - ) { - return ifBreak(group(indent(node.breakDoc.concat(rightSideDoc))), [ - leftSideDoc, - group(rightSideDoc) - ]); - } - - return group([leftSideDoc, group(indent(rightSideDoc))]); -}; - -export const printMethodAddArg: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - - const methodDoc = path.call(print, "call"); - const argsDoc = path.call(print, "args") as Plugin.Doc[]; - - // You can end up here if you have a method with a ? ending, presumably - // because the parser knows that it cannot be a local variable. You can also - // end up here if you are explicitly using an empty set of parentheses. - if (argsDoc.length === 0) { - // If you're using an explicit set of parentheses on something that looks - // like a constant, then we need to match that in order to maintain valid - // Ruby. For example, you could do something like Foo(), on which we would - // need to keep the parentheses to make it look like a method call. - if (node.call.type === "fcall" && node.call.value.type === "const") { - return [methodDoc, "()"]; - } - - // If you're using an explicit set parentheses with the special call syntax, - // then we need to explicitly print out an extra set of parentheses. For - // example, if you call something like Foo.new.() (implicitly calling the - // #call method on a new instance of the Foo class), then we have to print - // out those parentheses, otherwise we'll end up with Foo.new. - if (node.call.type === "call" && node.call.message === "call") { - return [methodDoc, "()"]; - } - - return methodDoc; - } - - // This case will ONLY be hit if we can successfully turn the block into a - // to_proc call. In that case, we just explicitly add the parens around it. - if (node.args.type === "args" && argsDoc.length > 0) { - return [methodDoc, "(", ...argsDoc, ")"]; - } - - // Get a reference to the parent node so we can check if we're inside a chain - const parentNode = path.getParentNode(); - - // If our parent node is a chained node then we're not going to group the - // right side of the expression, as we want to have a nice multi-line layout. - if (chained.includes(parentNode.type) && !node.comments) { - parentNode.chain = (node.chain || 0) + 1; - parentNode.breakDoc = (node.breakDoc || [methodDoc]).concat(argsDoc); - parentNode.firstReceiverType = node.firstReceiverType; - } - - // This is the threshold at which we will start to try to make a nicely - // indented call chain. For the most part, it's always 3. - let threshold = 3; - - // Here, we have very specialized behavior where if we're within a sig block, - // then we're going to assume we're creating a Sorbet type signature. In that - // case, we really want the threshold to be lowered to 2 so that we create - // method chains off of any two method calls within the block. For more - // details, see - // https://github.com/prettier/plugin-ruby/issues/863. - let sigBlock = path.getParentNode(2); - if (sigBlock) { - // If we're at a do_block, then we want to go one more level up. This is - // because do_blocks have bodystmt nodes instead of just stmt nodes. - if (sigBlock.type === "do_block") { - sigBlock = path.getParentNode(3); - } - - if (sigBlock.type === "method_add_block") { - // Pulling this out into a separate variable so we can get back some of - // our type safety. - const sigBlockNode = sigBlock as Ruby.MethodAddBlock; - - if ( - sigBlockNode.block && - sigBlockNode.call.type === "method_add_arg" && - sigBlockNode.call.call.type === "fcall" && - sigBlockNode.call.call.value.value === "sig" - ) { - threshold = 2; - } - } - } - - // If we're at the top of a chain, then we're going to print out a nice - // multi-line layout if this doesn't break into multiple lines. - if ( - !chained.includes(parentNode.type) && - (node.chain || 0) >= threshold && - node.breakDoc - ) { - // This is pretty specialized behavior. Basically if we're at the top of a - // chain but we've only had method calls without arguments and now we have - // arguments, then we're effectively trying to call a method with arguments - // that is nested under a bunch of stuff. So we group together to first part - // to make it so just the arguments break. This looks like, for example: - // - // config.action_dispatch.rescue_responses.merge!( - // 'ActiveRecord::ConnectionTimeoutError' => :service_unavailable, - // 'ActiveRecord::QueryCanceled' => :service_unavailable - // ) - // - if (node.callChain === node.chain) { - return [group(indent(node.breakDoc)), group(argsDoc)]; - } - - return ifBreak(group(indent(node.breakDoc.concat(argsDoc))), [ - methodDoc, - argsDoc - ]); - } - - // If there are already parentheses, then we can just use the doc that's - // already printed. - if (node.args.type == "arg_paren") { - return group([methodDoc, argsDoc]); - } - - return [methodDoc, " ", join(", ", argsDoc), " "]; -}; - -export const printMethodAddBlock: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - - const callDoc = path.call(print, "call"); - const blockDoc = path.call(print, "block"); - - // Don't bother trying to do any kind of fancy toProc transform if the option - // is disabled. - if (opts.rubyToProc) { - const proc = toProc(path, node.block); - - if (proc && node.call.type === "call") { - return group([ - path.call(print, "call"), - "(", - indent([softline, proc]), - [softline, ")"] - ]); - } - - if (proc) { - return path.call(print, "call"); - } - } - - // Get a reference to the parent node so we can check if we're inside a chain - const parentNode = path.getParentNode(); - - // If our parent node is a chained node then we're not going to group the - // right side of the expression, as we want to have a nice multi-line layout. - if (chained.includes(parentNode.type)) { - parentNode.chain = (node.chain || 0) + 1; - parentNode.breakDoc = (node.breakDoc || [callDoc]).concat(blockDoc); - parentNode.firstReceiverType = node.firstReceiverType; - } - - // If we're at the top of a chain, then we're going to print out a nice - // multi-line layout if this doesn't break into multiple lines. - if ( - !chained.includes(parentNode.type) && - (node.chain || 0) >= 3 && - node.breakDoc - ) { - // This is pretty specialized behavior. Basically if we're at the top of a - // chain but we've only had method calls without arguments and now we have - // a method call with a block, then we're effectively trying to call a - // method with arguments that is nested under a bunch of stuff. So we group - // together to first part to make it so just the block breaks. This looks - // like, for example: - // - // Rails.application.routes.draw do - // root 'articles#index' - // resources :articles - // end - // - if (node.callChain === node.chain) { - return [group(indent(node.breakDoc)), group(blockDoc)]; - } - - return ifBreak(group(indent(node.breakDoc.concat(blockDoc))), [ - callDoc, - blockDoc - ]); - } - - return [callDoc, blockDoc]; -}; - -export const printCallContainer: Plugin.Printer = ( - path, - opts, - print -) => { - return path.call(print, "value"); -}; diff --git a/src/ruby/nodes/case.ts b/src/ruby/nodes/case.ts deleted file mode 100644 index 38195675..00000000 --- a/src/ruby/nodes/case.ts +++ /dev/null @@ -1,59 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { align, fill, group, hardline, indent, line } = prettier; - -export const printCase: Plugin.Printer = (path, opts, print) => { - const parts: Plugin.Doc[] = ["case"]; - - // You don't need to explicitly have something to test against in a case - // statement (without it it effectively becomes an if/elsif chain). - if (path.getValue().value) { - parts.push(" ", path.call(print, "value")); - } - - return [...parts, hardline, path.call(print, "cons"), hardline, "end"]; -}; - -export const printWhen: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - - // The `fill` builder command expects an array of docs alternating with - // line breaks. This is so it can loop through and determine where to break. - const preds = fill( - (path.call(print, "args") as Plugin.Doc[]).reduce( - (accum: Plugin.Doc[], pred, index) => { - if (index === 0) { - return [pred]; - } - - // Pull off the last element and make it concat with a comma so that - // we can maintain alternating lines and docs. - return [ - ...accum.slice(0, -1), - [accum[accum.length - 1], ","], - line, - pred - ]; - }, - [] as Plugin.Doc[] - ) - ); - - const stmts = path.call(print, "stmts") as Plugin.Doc[]; - const parts: Plugin.Doc[] = [["when ", align("when ".length, preds)]]; - - // It's possible in a when to just have empty void statements, in which case - // we would skip adding the body. - if (!stmts.every((part) => !part)) { - parts.push(indent([hardline, stmts])); - } - - // This is the next clause on the case statement, either another `when` or - // an `else` clause. - if (node.cons) { - parts.push(hardline, path.call(print, "cons")); - } - - return group(parts); -}; diff --git a/src/ruby/nodes/class.ts b/src/ruby/nodes/class.ts deleted file mode 100644 index a03b7502..00000000 --- a/src/ruby/nodes/class.ts +++ /dev/null @@ -1,57 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { isEmptyBodyStmt } from "../../utils"; - -const { group, hardline, indent } = prettier; - -export const printClass: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - - const parts = ["class ", path.call(print, "constant")]; - if (node.superclass) { - parts.push(" < ", path.call(print, "superclass")); - } - - const declaration = group(parts); - if (isEmptyBodyStmt(node.bodystmt)) { - return group([declaration, hardline, "end"]); - } - - return group([ - declaration, - indent([hardline, path.call(print, "bodystmt")]), - [hardline, "end"] - ]); -}; - -export const printModule: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - const declaration = group(["module ", path.call(print, "constant")]); - - if (isEmptyBodyStmt(node.bodystmt)) { - return group([declaration, hardline, "end"]); - } - - return group([ - declaration, - indent([hardline, path.call(print, "bodystmt")]), - hardline, - "end" - ]); -}; - -export const printSClass: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - const declaration = ["class << ", path.call(print, "target")]; - - if (isEmptyBodyStmt(node.bodystmt)) { - return group([declaration, hardline, "end"]); - } - - return group([ - declaration, - indent([hardline, path.call(print, "bodystmt")]), - hardline, - "end" - ]); -}; diff --git a/src/ruby/nodes/commands.ts b/src/ruby/nodes/commands.ts deleted file mode 100644 index 74424247..00000000 --- a/src/ruby/nodes/commands.ts +++ /dev/null @@ -1,163 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { makeCall } from "../../utils"; - -const { align, group, ifBreak, indent, join, line, softline } = prettier; - -function throwBadDoc(doc: never): never; -function throwBadDoc(doc: Plugin.Doc) { - throw new Error(`Unknown doc ${doc}`); -} - -function reduceDocLength(sum: number, doc: Plugin.Doc) { - // If we've hit a line, then we're going to start the counting back at 0 since - // it will be starting from the beginning of a line. - if (typeof doc === "object" && !Array.isArray(doc) && doc.type === "line") { - return 0; - } - - return sum + docBreakLength(doc); -} - -// Loop through the already created doc nodes and determine the overall length -// so that we can properly align the command arguments. -function docBreakLength(doc: Plugin.Doc): number { - if (Array.isArray(doc)) { - return doc.reduce(reduceDocLength, 0); - } - - if (typeof doc === "string") { - return doc.length; - } - - switch (doc.type) { - case "concat": - case "fill": - return doc.parts.reduce(reduceDocLength, 0); - case "align": - case "group": - case "indent": - case "line-suffix": - return docBreakLength(doc.contents); - case "if-break": - return docBreakLength(doc.breakContents); - case "line": - return 0; - case "break-parent": - case "cursor": - case "indent-if-break": - case "label": - case "line-suffix-boundary": - case "trim": - return 0; - default: - throwBadDoc(doc); - } -} - -function hasDef(node: Ruby.Command) { - return ( - node.args.type === "args_add_block" && - node.args.args.type === "args" && - node.args.args.parts[0] && - ["def", "defs"].includes(node.args.args.parts[0].type) - ); -} - -// Very special handling case for rspec matchers. In general with rspec matchers -// you expect to see something like: -// -// expect(foo).to receive(:bar).with( -// 'one', -// 'two', -// 'three', -// 'four', -// 'five' -// ) -// -// In this case the arguments are aligned to the left side as opposed to being -// aligned with the `receive` call. -function skipArgsAlign(node: Ruby.CommandCall) { - return ["to", "not_to", "to_not"].includes(node.message.value); -} - -// If there is a ternary argument to a command and it's going to get broken -// into multiple lines, then we're going to have to use parentheses around the -// command in order to make sure operator precedence doesn't get messed up. -function hasTernaryArg(node: Ruby.Args | Ruby.ArgsAddBlock): boolean { - switch (node.type) { - case "args": - return node.parts.some((child) => child.type === "ifop"); - case "args_add_block": - return hasTernaryArg(node.args) || node.block?.type === "ifop"; - } -} - -export const printCommand: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - - const command = path.call(print, "message"); - const joinedArgs = join([",", line], path.call(print, "args")); - - const hasTernary = hasTernaryArg(node.args); - let breakArgs; - - if (hasTernary) { - breakArgs = indent([softline, joinedArgs]); - } else if (hasDef(node)) { - breakArgs = joinedArgs; - } else { - breakArgs = align(docBreakLength(command) + 1, joinedArgs); - } - - return group( - ifBreak( - [ - command, - hasTernary ? "(" : " ", - breakArgs, - hasTernary ? [softline, ")"] : "" - ], - [command, " ", joinedArgs] - ) - ); -}; - -export const printCommandCall: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - const parts = [ - path.call(print, "receiver"), - makeCall(path, opts, print), - path.call(print, "message") - ]; - - if (!node.args) { - return parts; - } - - const argDocs = join([",", line], path.call(print, "args")); - let breakDoc; - - if (hasTernaryArg(node.args)) { - breakDoc = parts.concat("(", indent([softline, argDocs]), softline, ")"); - parts.push(" "); - } else if (skipArgsAlign(node)) { - parts.push(" "); - breakDoc = parts.concat(argDocs); - } else { - parts.push(" "); - breakDoc = parts.concat(align(docBreakLength(parts), argDocs)); - } - - const joinedDoc = parts.concat(argDocs); - - return group(ifBreak(breakDoc, joinedDoc)); -}; diff --git a/src/ruby/nodes/conditionals.ts b/src/ruby/nodes/conditionals.ts deleted file mode 100644 index ea18e9da..00000000 --- a/src/ruby/nodes/conditionals.ts +++ /dev/null @@ -1,323 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { - containsAssignment, - inlineEnsureParens, - isEmptyStmts -} from "../../utils"; - -const { align, breakParent, hardline, group, ifBreak, indent, softline } = - prettier; - -type Conditional = Ruby.If | Ruby.Unless; - -// If the statements are just a single if/unless, in block or modifier form, or -// a ternary -function containsSingleConditional(stmts: Ruby.Statements) { - return ( - stmts.body.length === 1 && - ["if", "if_mod", "ifop", "unless", "unless_mod"].includes( - stmts.body[0].type - ) - ); -} - -function printWithAddition( - keyword: string, - path: Plugin.Path, - print: Plugin.Print, - breaking: boolean -) { - return [ - `${keyword} `, - align(keyword.length + 1, path.call(print, "pred")), - indent([softline, path.call(print, "stmts")]), - [softline, path.call(print, "cons")], - [softline, "end"], - breaking ? breakParent : "" - ]; -} - -// For the unary `not` operator, we need to explicitly add parentheses to it in -// order for it to be valid from within a ternary. Otherwise if the clause of -// the ternary isn't a unary `not`, we can just pass it along. -function printTernaryClause(clause: Plugin.Doc) { - if (Array.isArray(clause)) { - const [part] = clause; - - if (Array.isArray(part) && part[0] === "not") { - // We are inside of a statements list and the statement is a unary `not`. - return ["not(", part[2], ")"]; - } - - if (clause[0] === "not") { - // We are inside a ternary condition and the clause is a unary `not`. - return ["not(", clause[2], ")"]; - } - } - - return clause; -} - -// The conditions for a ternary look like `foo : bar` where `foo` represents -// the truthy clause and `bar` represents the falsy clause. In the case that the -// parent node is an `unless`, these have to flip in order. -function printTernaryClauses( - keyword: string, - truthyClause: Plugin.Doc, - falsyClause: Plugin.Doc -) { - const parts = [ - printTernaryClause(truthyClause), - " : ", - printTernaryClause(falsyClause) - ]; - - return keyword === "if" ? parts : parts.reverse(); -} - -// Handles ternary nodes. If it does not fit on one line, then we break out into -// an if/else statement. Otherwise we remain as a ternary. -export const printTernary: Plugin.Printer = ( - path, - _opts, - print -) => { - const predicateDoc = path.call(print, "pred"); - const truthyDoc = path.call(print, "tthy"); - const falsyDoc = path.call(print, "flsy"); - - return group( - ifBreak( - [ - "if ", - align(3, predicateDoc), - indent([softline, truthyDoc]), - [softline, "else"], - indent([softline, falsyDoc]), - [softline, "end"] - ], - [predicateDoc, " ? ", ...printTernaryClauses("if", truthyDoc, falsyDoc)] - ) - ); -}; - -function isModifier( - node: Conditional | Ruby.IfModifier | Ruby.UnlessModifier -): node is Ruby.IfModifier | Ruby.UnlessModifier { - return node.type === "if_mod" || node.type === "unless_mod"; -} - -// Prints an `if_mod` or `unless_mod` node. Because it was previously in the -// modifier form, we're guaranteed to not have an additional node, so we can -// just work with the predicate and the body. -function printSingle( - keyword: string -): Plugin.Printer { - return function printSingleWithKeyword(path, { rubyModifier }, print) { - const node = path.getValue(); - - const predicateDoc = path.call(print, "pred"); - const statementsDoc = path.call(print, isModifier(node) ? "stmt" : "stmts"); - - const multilineParts = [ - `${keyword} `, - align(keyword.length + 1, predicateDoc), - indent([softline, statementsDoc]), - softline, - "end" - ]; - - // If we do not allow modifier form conditionals or there are comments - // inside of the body of the conditional, then we must print in the - // multiline form. - if (!rubyModifier || (!isModifier(node) && node.stmts.body[0].comments)) { - return [multilineParts, breakParent]; - } - - const inline = inlineEnsureParens(path, [ - statementsDoc, - ` ${keyword} `, - predicateDoc - ]); - - // With an expression with a conditional modifier (expression if true), the - // conditional body is parsed before the predicate expression, meaning that - // if the parser encountered a variable declaration, it would initialize - // that variable first before evaluating the predicate expression. That - // parse order means the difference between a NameError or not. #591 - // https://docs.ruby-lang.org/en/2.0.0/syntax/control_expressions_rdoc.html#label-Modifier+if+and+unless - if (isModifier(node) && containsAssignment(node.stmt)) { - return inline; - } - - return group(ifBreak(multilineParts, inline)); - }; -} - -const noTernary = [ - "alias", - "assign", - "break", - "command", - "command_call", - "heredoc", - "if", - "if_mod", - "ifop", - "lambda", - "massign", - "next", - "opassign", - "rescue_mod", - "return", - "return0", - "super", - "undef", - "unless", - "unless_mod", - "until_mod", - "var_alias", - "void_stmt", - "while_mod", - "yield", - "yield0", - "zsuper" -]; - -// Certain expressions cannot be reduced to a ternary without adding parens -// around them. In this case we say they cannot be ternaried and default instead -// to breaking them into multiple lines. -function canTernaryStmts(stmts: Ruby.Statements) { - if (stmts.body.length !== 1) { - return false; - } - - const stmt = stmts.body[0]; - - // If the user is using one of the lower precedence "and" or "or" operators, - // then we can't use a ternary expression as it would break the flow control. - if (stmt.type === "binary" && ["and", "or"].includes(stmt.op)) { - return false; - } - - // Check against the blocklist of statement types that are not allowed to be - // a part of a ternary expression. - return !noTernary.includes(stmt.type); -} - -// In order for an `if` or `unless` expression to be shortened to a ternary, -// there has to be one and only one "addition" (another clause attached) which -// is of the "else" type. Both the body of the main node and the body of the -// additional node must have only one statement, and that statement list must -// pass the `canTernaryStmts` check. -function canTernary(path: Plugin.Path) { - const node = path.getValue(); - - return ( - !["assign", "opassign", "command_call", "command"].includes( - node.pred.type - ) && - node.cons && - node.cons.type === "else" && - canTernaryStmts(node.stmts) && - canTernaryStmts(node.cons.stmts) - ); -} - -// A normalized print function for both `if` and `unless` nodes. -function printConditional(keyword: string): Plugin.Printer { - return function printConditionalWithKeyword(path, opts, print) { - if (canTernary(path)) { - let ternaryParts = [ - path.call(print, "pred"), - " ? ", - ...printTernaryClauses( - keyword, - path.call(print, "stmts"), - path.call(print, "cons", "stmts") - ) - ]; - - if (["binary", "call"].includes(path.getParentNode().type)) { - ternaryParts = ["(", ...ternaryParts, ")"]; - } - - return group( - ifBreak(printWithAddition(keyword, path, print, false), ternaryParts) - ); - } - - const node = path.getValue(); - - // If there's an additional clause that wasn't matched earlier, we know we - // can't go for the inline option. - if (node.cons) { - return group(printWithAddition(keyword, path, print, true)); - } - - // If the body of the conditional is empty, then we explicitly have to use - // the block form. - if (isEmptyStmts(node.stmts)) { - return [ - `${keyword} `, - align(keyword.length + 1, path.call(print, "pred")), - hardline, - "end" - ]; - } - - // Two situations in which we need to use the block form: - // - // 1. If the predicate of the conditional contains an assignment, then we - // can't know for sure that it doesn't impact the body of the conditional. - // - // 2. If the conditional contains just another conditional, then collapsing - // it would result in double modifiers on the same line. - if ( - containsAssignment(node.pred) || - containsSingleConditional(node.stmts) - ) { - return [ - `${keyword} `, - align(keyword.length + 1, path.call(print, "pred")), - indent([hardline, path.call(print, "stmts")]), - hardline, - "end" - ]; - } - - return printSingle(keyword)(path, opts, print); - }; -} - -export const printElse: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - - return [ - node.stmts.body.length === 1 && node.stmts.body[0].type === "command" - ? breakParent - : "", - "else", - indent([softline, path.call(print, "stmts")]) - ]; -}; - -export const printElsif: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - const parts = [ - group(["elsif ", align("elsif".length - 1, path.call(print, "pred"))]), - indent([hardline, path.call(print, "stmts")]) - ]; - - if (node.cons) { - parts.push(group([hardline, path.call(print, "cons")])); - } - - return group(parts); -}; - -export const printIf = printConditional("if"); -export const printIfModifier = printSingle("if"); -export const printUnless = printConditional("unless"); -export const printUnlessModifier = printSingle("unless"); diff --git a/src/ruby/nodes/constants.ts b/src/ruby/nodes/constants.ts deleted file mode 100644 index bc1f46c4..00000000 --- a/src/ruby/nodes/constants.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { makeCall } from "../../utils"; - -const { group, indent, softline } = prettier; - -type ConstPath = Ruby.ConstPathField | Ruby.ConstPathRef; -export const printConstPath: Plugin.Printer = ( - path, - opts, - print -) => [path.call(print, "parent"), "::", path.call(print, "constant")]; - -export const printConstRef: Plugin.Printer = ( - path, - opts, - print -) => path.call(print, "constant"); - -export const printDefined: Plugin.Printer = ( - path, - opts, - print -) => { - return group([ - "defined?(", - indent([softline, path.call(print, "value")]), - softline, - ")" - ]); -}; - -export const printField: Plugin.Printer = (path, opts, print) => { - return group([ - path.call(print, "parent"), - makeCall(path, opts, print), - path.call(print, "name") - ]); -}; - -type TopConst = Ruby.TopConstField | Ruby.TopConstRef; -export const printTopConst: Plugin.Printer = (path, opts, print) => [ - "::", - path.call(print, "constant") -]; diff --git a/src/ruby/nodes/flow.ts b/src/ruby/nodes/flow.ts deleted file mode 100644 index aba8043f..00000000 --- a/src/ruby/nodes/flow.ts +++ /dev/null @@ -1,70 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { join } = prettier; - -// If there are parentheses around these nodes, then we can't skip printing them -// without changing the semantic meaning of the statement. -const unskippableParens = [ - "if_mod", - "rescue_mod", - "unless_mod", - "until_mod", - "while_mod" -]; - -type FlowControl = Ruby.Break | Ruby.Next; - -function printFlowControl(keyword: string): Plugin.Printer { - return function printFlowControlWithKeyword(path, opts, print) { - const node = path.getValue(); - - // If we don't have any arguments to the keyword, then it's always going to - // come in as an args node, in which case we can just print the keyword. - if (node.args.type === "args") { - return keyword; - } - - // Special handling if we've got parentheses on this call to the keyword. If - // we do and we can skip them, then we will. If we don't, then we'll print - // them right after the keyword with no space. - const paren = node.args.args.type === "args" && node.args.args.parts[0]; - - if (paren && paren.type === "paren") { - const stmts = (paren.cnts as Ruby.Statements).body; - - // Here we're checking if we can skip past the parentheses entirely. - if (stmts.length === 1 && !unskippableParens.includes(stmts[0].type)) { - return [ - `${keyword} `, - (path as any).call(print, "args", "args", "parts", 0, "cnts") - ]; - } - - // Here we know we can't, so just printing out the parentheses as normal. - return [keyword, (path as any).call(print, "args", "args", "parts", 0)]; - } - - // If we didn't hit the super special handling, then we're just going to - // print out the arguments to the keyword like normal. - return [`${keyword} `, join(", ", path.call(print, "args"))]; - }; -} - -export const printBreak = printFlowControl("break"); - -export const printNext = printFlowControl("next"); - -export const printYield: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - const argsDoc = path.call(print, "args"); - - if (node.args.type === "paren") { - return ["yield", argsDoc]; - } - - return ["yield ", join(", ", argsDoc)]; -}; - -export const printYield0: Plugin.Printer = (path) => - path.getValue().value; diff --git a/src/ruby/nodes/hashes.ts b/src/ruby/nodes/hashes.ts deleted file mode 100644 index 9762269c..00000000 --- a/src/ruby/nodes/hashes.ts +++ /dev/null @@ -1,159 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { - getTrailingComma, - printEmptyCollection, - skipAssignIndent -} from "../../utils"; - -const { group, ifBreak, indent, join, line } = prettier; - -type KeyPrinter = ( - path: Plugin.Path, - print: Plugin.Print -) => Plugin.Doc; - -type HashContents = (Ruby.AssoclistFromArgs | Ruby.BareAssocHash) & { - keyPrinter: KeyPrinter; -}; - -// When attempting to convert a hash rocket into a hash label, you need to take -// care because only certain patterns are allowed. Ruby source says that they -// have to match keyword arguments to methods, but don't specify what that is. -// After some experimentation, it looks like it's: -// -// * Starts with a letter (either case) or an underscore -// * Does not end in equal -// -// This function represents that check, as it determines if it can convert the -// symbol node into a hash label. -function isValidHashLabel(symbolLiteral: Ruby.SymbolLiteral) { - const label = symbolLiteral.value.value; - return label.match(/^[_A-Za-z]/) && !label.endsWith("="); -} - -function canUseHashLabels(contentsNode: HashContents) { - return contentsNode.assocs.every((assocNode) => { - if (assocNode.type === "assoc_splat") { - return true; - } - - switch (assocNode.key.type) { - case "label": - return true; - case "symbol_literal": - return isValidHashLabel(assocNode.key); - case "dyna_symbol": - return true; - default: - return false; - } - }); -} - -const printHashKeyLabel: KeyPrinter = (path, print) => { - const node = path.getValue(); - - switch (node.type) { - case "label": - return print(path); - case "symbol_literal": - return [(path as Plugin.Path).call(print, "value"), ":"]; - case "dyna_symbol": - return [print(path), ":"]; - default: - // This should never happen, but keeping it here so that the two key - // printers can maintain the same signature. - return ""; - } -}; - -const printHashKeyRocket: KeyPrinter = (path, print) => { - const node = path.getValue(); - let doc = print(path); - - if (node.type === "label") { - const sDoc = doc as string; // since we know this is a label - doc = [":", sDoc.slice(0, sDoc.length - 1)]; - } else if (node.type === "dyna_symbol") { - doc = [":", doc]; - } - - return [doc, " =>"]; -}; - -export const printAssoc: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - const { keyPrinter } = path.getParentNode() as HashContents; - - const parts = [path.call((keyPath) => keyPrinter(keyPath, print), "key")]; - const valueDoc = path.call(print, "value"); - - // If we're printing a child hash then we want it to break along with its - // parent hash, so we don't group the parts. - if (node.value.type === "hash") { - parts.push(" ", valueDoc); - return parts; - } - - if (!skipAssignIndent(node.value) || node.key.comments) { - parts.push(indent([line, valueDoc])); - } else { - parts.push(" ", valueDoc); - } - - return group(parts); -}; - -export const printAssocSplat: Plugin.Printer = ( - path, - opts, - print -) => ["**", path.call(print, "value")]; - -export const printHashContents: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - - // First determine which key printer we're going to use, so that the child - // nodes can reference it when they go to get printed. - node.keyPrinter = - opts.rubyHashLabel && canUseHashLabels(path.getValue()) - ? printHashKeyLabel - : printHashKeyRocket; - - return join([",", line], path.map(print, "assocs")); -}; - -export const printHash: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - - // Hashes normally have a single assoclist_from_args child node. If it's - // missing, then it means we're dealing with an empty hash, so we can just - // exit here and print. - if (node.cnts === null) { - return printEmptyCollection(path, opts, "{", "}"); - } - - const doc = [ - "{", - indent([ - line, - path.call(print, "cnts"), - getTrailingComma(opts) ? ifBreak(",", "") : "" - ]), - line, - "}" - ]; - - // If we're inside another hash, then we don't want to group our contents - // because we want this hash to break along with its parent hash. - if (path.getParentNode().type === "assoc") { - return doc; - } - - return group(doc); -}; diff --git a/src/ruby/nodes/heredocs.ts b/src/ruby/nodes/heredocs.ts deleted file mode 100644 index ba62f1a5..00000000 --- a/src/ruby/nodes/heredocs.ts +++ /dev/null @@ -1,34 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { literallineWithoutBreakParent } from "../../utils"; - -const { group, lineSuffix, join } = prettier; - -export const printHeredoc: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - - // Print out each part of the heredoc to its own doc node. - const parts = path.map((partPath) => { - const part = partPath.getValue(); - - if (part.type !== "tstring_content") { - return print(partPath); - } - - return join(literallineWithoutBreakParent, part.value.split(/\r?\n/)); - }, "parts"); - - // We use a literalline break because matching indentation is required - // for the heredoc contents and ending. If the line suffix contains a - // break-parent, all ancestral groups are broken, and heredocs automatically - // break lines in groups they appear in. We prefer them to appear in-line if - // possible, so we use a literalline without the break-parent. - return group([ - path.call(print, "beging"), - lineSuffix(group([literallineWithoutBreakParent, ...parts, node.ending])) - ]); -}; diff --git a/src/ruby/nodes/hooks.ts b/src/ruby/nodes/hooks.ts deleted file mode 100644 index 899a9a0d..00000000 --- a/src/ruby/nodes/hooks.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { group, indent, line } = prettier; - -// The `BEGIN` and `END` keywords are used to hook into the Ruby process. Any -// `BEGIN` blocks are executed right when the process starts up, and the `END` -// blocks are executed right before exiting. -// -// BEGIN { -// # content goes here -// } -// -// END { -// # content goes here -// } -// -// Interesting side note, you don't use `do...end` blocks with these hooks. Both -// nodes contain one child which is a `stmts` node. -function printHook(name: string): Plugin.Printer { - return function printHookWithName(path, opts, print) { - return group([ - name, - " ", - path.call(print, "lbrace"), - indent([line, path.call(print, "stmts")]), - [line, "}"] - ]); - }; -} - -export const printBEGIN = printHook("BEGIN"); -export const printEND = printHook("END"); diff --git a/src/ruby/nodes/ints.ts b/src/ruby/nodes/ints.ts deleted file mode 100644 index 55b3c73a..00000000 --- a/src/ruby/nodes/ints.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; - -// An @int node is any literal integer in Ruby. They can come in a number of -// bases, and look like the following: -// -// Binary (2) - 0b0110 -// Octal (8) - 0o34 or 034 -// Decimal (10) - 159 or 0d159 -// Hexidecimal (16) - 0xac5 -// -// If it's a decimal number, it can be optional separated by any number of -// arbitrarily places underscores. This can be useful for dollars and cents -// (34_99), dates (2020_11_30), and normal 3 digit separation (1_222_333). -export const printInt: Plugin.Printer = (path) => { - const { value } = path.getValue(); - - // If the number is a base 10 number, is sufficiently large, and is not - // already formatted with underscores, then add them in in between the - // numbers every three characters starting from the right. - if (!value.startsWith("0") && value.length >= 5 && !value.includes("_")) { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const segments = ` ${value}`.slice((value.length + 2) % 3).match(/.{3}/g)!; - return segments.join("_").trim(); - } - - return value; -}; diff --git a/src/ruby/nodes/lambdas.ts b/src/ruby/nodes/lambdas.ts deleted file mode 100644 index 5b65b5bd..00000000 --- a/src/ruby/nodes/lambdas.ts +++ /dev/null @@ -1,80 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { hasAncestor, isEmptyParams } from "../../utils"; - -const { group, ifBreak, indent, line } = prettier; - -// We can have our params coming in as the first child of the main lambda node, -// or if we have them wrapped in parens then they'll be one level deeper. Even -// though it's possible to omit the parens if you only have one argument, we're -// going to keep them in no matter what for consistency. -function printLambdaParams( - path: Plugin.Path, - print: Plugin.Print -) { - let node = path.getValue().params; - - // In this case we had something like -> (foo) { bar } which would mean that - // we're looking at a paren node, so we'll descend one level deeper to get at - // the actual params node. - if (node.type !== "params") { - node = node.cnts; - } - - // If we don't have any params at all, then we're just going to bail out and - // print nothing. This is to avoid printing an empty set of parentheses. - if (isEmptyParams(node)) { - return ""; - } - - return path.call(print, "params"); -} - -// Lambda nodes represent stabby lambda literals, which can come in a couple of -// flavors. They can use either braces or do...end for their block, and their -// arguments can be not present, have no parentheses for a single argument, or -// have parentheses for multiple arguments. Below are a couple of examples: -// -// -> { 1 } -// -> a { a + 1 } -// ->(a) { a + 1 } -// ->(a, b) { a + b } -// ->(a, b = 1) { a + b } -// -// -> do -// 1 -// end -// -// -> a do -// a + 1 -// end -// -// ->(a, b) do -// a + b -// end -// -// Generally, we're going to favor do...end for the multi-line form and braces -// for the single-line form. However, if we have an ancestor that is a command -// or command_call node, then we'll need to use braces either way because of -// operator precendence. -export const printLambda: Plugin.Printer = (path, opts, print) => { - const params = printLambdaParams(path, print); - const inCommand = hasAncestor(path, ["command", "command_call"]); - - const stmtsDoc = path.call(print, "stmts"); - - return group( - ifBreak( - [ - "->", - params, - " ", - inCommand ? "{" : "do", - indent([line, stmtsDoc]), - line, - inCommand ? "}" : "end" - ], - ["->", params, " { ", stmtsDoc, " }"] - ) - ); -}; diff --git a/src/ruby/nodes/loops.ts b/src/ruby/nodes/loops.ts deleted file mode 100644 index 9f6336c9..00000000 --- a/src/ruby/nodes/loops.ts +++ /dev/null @@ -1,91 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { - containsAssignment, - inlineEnsureParens, - isEmptyStmts -} from "../../utils"; - -const { align, breakParent, group, hardline, ifBreak, indent, join, softline } = - prettier; - -type Loop = Ruby.While | Ruby.WhileModifier | Ruby.Until | Ruby.UntilModifier; - -function isModifier( - node: Loop -): node is Ruby.WhileModifier | Ruby.UntilModifier { - return node.type === "while_mod" || node.type === "until_mod"; -} - -function printLoop(keyword: string): Plugin.Printer { - return function printLoopWithOptions(path, { rubyModifier }, print) { - const node = path.getValue(); - const predicateDoc = path.call(print, "pred"); - - // If the only statement inside this while loop is a void statement, then we - // can shorten to just displaying the predicate and then a semicolon. - if (!isModifier(node) && isEmptyStmts(node.stmts)) { - return group([group([keyword, " ", predicateDoc]), hardline, "end"]); - } - - const statementDoc = path.call(print, isModifier(node) ? "stmt" : "stmts"); - const inlineLoop = inlineEnsureParens(path, [ - statementDoc, - ` ${keyword} `, - predicateDoc - ]); - - // If we're in the modifier form and we're modifying a `begin`, then this is - // a special case where we need to explicitly use the modifier form because - // otherwise the semantic meaning changes. This looks like: - // - // begin - // foo - // end while bar - // - // The above is effectively a `do...while` loop (which we don't have in - // ruby). - if (isModifier(node) && node.stmt.type === "begin") { - return inlineLoop; - } - - const blockLoop = [ - [`${keyword} `, align(keyword.length + 1, predicateDoc)], - indent([softline, statementDoc]), - softline, - "end" - ]; - - // If we're disallowing inline loops or if the predicate of the loop - // contains an assignment (in which case we can't know for certain that that - // assignment doesn't impact the statements inside the loop) then we can't - // use the modifier form and we must use the block form. - if (!rubyModifier || containsAssignment(node.pred)) { - return [breakParent, blockLoop]; - } - - return group(ifBreak(blockLoop, inlineLoop)); - }; -} - -export const printFor: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - - let indexDoc = path.call(print, "index"); - if (node.index.type === "mlhs") { - indexDoc = join(", ", indexDoc); - } - - return group([ - "for ", - indexDoc, - " in ", - path.call(print, "collection"), - indent([hardline, path.call(print, "stmts")]), - hardline, - "end" - ]); -}; - -export const printWhile = printLoop("while"); -export const printUntil = printLoop("until"); diff --git a/src/ruby/nodes/massign.ts b/src/ruby/nodes/massign.ts deleted file mode 100644 index 6b7b2298..00000000 --- a/src/ruby/nodes/massign.ts +++ /dev/null @@ -1,80 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { group, indent, join, line, softline } = prettier; - -export const printMAssign: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - let valueDoc = path.call(print, "value"); - - if ( - ["mrhs", "mrhs_add_star", "mrhs_new_from_args"].includes(node.value.type) - ) { - valueDoc = group(join([",", line], valueDoc)); - } - - const targetDoc: Plugin.Doc[] = [ - join([",", line], path.call(print, "target")) - ]; - if (node.target.type === "mlhs" && node.target.comma) { - targetDoc.push(","); - } - - return group([group(targetDoc), " =", indent([line, valueDoc])]); -}; - -export const printMLHS: Plugin.Printer = (path, opts, print) => { - return path.map(print, "parts"); -}; - -export const printMLHSParen: Plugin.Printer = ( - path, - opts, - print -) => { - if (["massign", "mlhs_paren"].includes(path.getParentNode().type)) { - // If we're nested in brackets as part of the left hand side of an - // assignment, i.e., (a, b, c) = 1, 2, 3 - // ignore the current node and just go straight to the content - return path.call(print, "cnts"); - } - - const node = path.getValue(); - const parts: Plugin.Doc[] = [ - softline, - join([",", line], path.call(print, "cnts")) - ]; - - if ((node.cnts as any).comma) { - parts.push(","); - } - - return group(["(", indent(parts), [softline, ")"]]); -}; - -export const printMRHS: Plugin.Printer = (path, opts, print) => { - return path.map(print, "parts"); -}; - -export const printMRHSAddStar: Plugin.Printer = ( - path, - opts, - print -) => { - return [ - ...(path.call(print, "mrhs") as Plugin.Doc[]), - ["*", path.call(print, "star")] - ]; -}; - -export const printMRHSNewFromArgs: Plugin.Printer = ( - path, - opts, - print -) => { - return path.call(print, "args"); -}; diff --git a/src/ruby/nodes/methods.ts b/src/ruby/nodes/methods.ts deleted file mode 100644 index 68195c97..00000000 --- a/src/ruby/nodes/methods.ts +++ /dev/null @@ -1,71 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { isEmptyBodyStmt, isEmptyParams } from "../../utils"; - -const { group, hardline, indent, line } = prettier; - -export const printDef: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - const declaration: Plugin.Doc[] = ["def "]; - - // In this case, we're printing a method that's defined as a singleton, so - // we need to include the target and the operator before the name. - if (node.type === "defs") { - declaration.push(path.call(print, "target"), path.call(print, "op")); - } - - // In case there are no parens but there are parameters - const useParens = - node.params.type === "params" && !isEmptyParams(node.params); - - declaration.push( - path.call(print, "name"), - useParens ? "(" : "", - path.call(print, "params"), - useParens ? ")" : "" - ); - - if (isEmptyBodyStmt(node.bodystmt)) { - return group([...declaration, "; end"]); - } - - return group([ - group(declaration), - indent([hardline, path.call(print, "bodystmt")]), - hardline, - "end" - ]); -}; - -export const printDefEndless: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - let paramsDoc: Plugin.Doc = ""; - - // If we have any kind of parameters, we're going to print the whole - // parentheses. If we don't, then we're just going to skip them entirely. - if (node.paren && !isEmptyParams(node.paren.cnts)) { - paramsDoc = path.call(print, "paren"); - } - - return group([ - "def ", - path.call(print, "name"), - paramsDoc, - " =", - indent(group([line, path.call(print, "stmt")])) - ]); -}; - -export const printAccessControl: Plugin.Printer = ( - path, - opts, - print -) => path.call(print, "value"); diff --git a/src/ruby/nodes/operators.ts b/src/ruby/nodes/operators.ts deleted file mode 100644 index f60a3fb6..00000000 --- a/src/ruby/nodes/operators.ts +++ /dev/null @@ -1,73 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { noIndent } from "../../utils"; - -const { group, indent, line, softline } = prettier; - -export const printBinary: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - const space = node.op === "**" ? "" : " "; - - if (noIndent.includes(node.right.type)) { - return group([ - group(path.call(print, "left")), - space, - node.op, - space, - group(path.call(print, "right")) - ]); - } - - return group([ - group(path.call(print, "left")), - space, - group( - indent([ - node.op, - space === "" ? softline : line, - path.call(print, "right") - ]) - ) - ]); -}; - -// dot2 nodes are used with ranges (or flip-flops). They can optionally drop -// their left side for beginless ranges or their right side for endless ranges. -export const printDot2: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - - return [ - node.left ? path.call(print, "left") : "", - "..", - node.right ? path.call(print, "right") : "" - ]; -}; - -// dot3 nodes are used with ranges (or flip-flops). They can optionally drop -// their left side for beginless ranges or their right side for endless ranges. -export const printDot3: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - - return [ - node.left ? path.call(print, "left") : "", - "...", - node.right ? path.call(print, "right") : "" - ]; -}; - -export const printUnary: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - - return [node.op, path.call(print, "value")]; -}; - -export const printNot: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - const valueDoc = path.call(print, "value"); - - if (node.paren) { - return ["not", "(", valueDoc, ")"]; - } - - return ["not", " ", valueDoc]; -}; diff --git a/src/ruby/nodes/params.ts b/src/ruby/nodes/params.ts deleted file mode 100644 index 8871ff08..00000000 --- a/src/ruby/nodes/params.ts +++ /dev/null @@ -1,124 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { group, hardline, join, indent, line, lineSuffix, softline } = prettier; - -type RestParam = Ruby.KeywordRestParam | Ruby.RestParam; - -function printRestParamSymbol(symbol: string): Plugin.Printer { - return function printRestParamWithSymbol(path, opts, print) { - const node = path.getValue(); - - return node.name ? [symbol, path.call(print, "name")] : symbol; - }; -} - -export const printParams: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - let parts: Plugin.Doc[] = []; - - if (node.reqs) { - path.each((reqPath) => { - // For some very strange reason, if you have a comment attached to a - // rest_param, it shows up here in the list of required params. - if ((reqPath.getValue().type as any) !== "rest_param") { - parts.push(print(reqPath)); - } - }, "reqs"); - } - - if (node.opts) { - parts = parts.concat( - path.map((optlPath) => join(" = ", optlPath.map(print)), "opts") - ); - } - - if (node.rest && node.rest.type !== "excessed_comma") { - parts.push(path.call(print, "rest")); - } - - if (node.posts) { - parts = parts.concat(path.map(print, "posts")); - } - - if (node.keywords) { - parts = parts.concat( - path.map((kwargPath) => { - const kwarg = kwargPath.getValue(); - const keyDoc = kwargPath.call(print, 0); - - if (kwarg[1]) { - return group([keyDoc, " ", kwargPath.call(print, 1)]); - } - - return keyDoc; - }, "keywords") - ); - } - - if (node.kwrest) { - parts.push(node.kwrest === "nil" ? "**nil" : path.call(print, "kwrest")); - } - - if (node.block) { - parts.push(path.call(print, "block")); - } - - const contents: Plugin.Doc[] = [join([",", line], parts)]; - - // You can put an extra comma at the end of block args between pipes to - // change what it does. Below is the difference: - // - // [[1, 2], [3, 4]].each { |x| p x } # prints [1, 2] then [3, 4] - // [[1, 2], [3, 4]].each { |x,| p x } # prints 1 then 3 - // - // In ruby 2.5, the excessed comma is indicated by having a 0 in the rest - // param position. In ruby 2.6+ it's indicated by having an "excessed_comma" - // node in the rest position. Seems odd, but it's true. - if ( - (node.rest as any) === 0 || - (node.rest && node.rest.type === "excessed_comma") - ) { - contents.push(","); - } - - // If the parent node is a paren then we skipped printing the parentheses so - // that we could handle them here and get nicer formatting. - const parentNode = path.getParentNode(); - - if (["lambda", "paren"].includes(parentNode.type)) { - const parts: Plugin.Doc[] = ["("]; - - // If the parent node is a paren and the paren has comments that are - // attached to the left paren, then we need to print those out explicitly - // here. - if (parentNode.type === "paren" && parentNode.lparen.comments) { - const comments: Plugin.Doc[] = []; - - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - (parentNode as Ruby.Paren).lparen.comments!.forEach((comment, index) => { - comment.printed = true; - comments.push(lineSuffix(`${index === 0 ? " " : ""}#${comment.value}`)); - }); - - parts.push(join(hardline, comments)); - } - - return group([...parts, indent([softline, ...contents]), softline, ")"]); - } - - return group(contents); -}; - -export const printArgsForward: Plugin.Printer = (path) => - path.getValue().value; -export const printKeywordRestParam = printRestParamSymbol("**"); -export const printRestParam = printRestParamSymbol("*"); - -export const printExcessedComma: Plugin.Printer = ( - path, - opts, - print -) => { - return path.call(print, "value"); -}; diff --git a/src/ruby/nodes/patterns.ts b/src/ruby/nodes/patterns.ts deleted file mode 100644 index 3280113f..00000000 --- a/src/ruby/nodes/patterns.ts +++ /dev/null @@ -1,161 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { align, group, hardline, indent, join, line } = prettier; - -const patterns = ["aryptn", "binary", "fndptn", "hshptn", "rassign"]; - -const printPatternArg: Plugin.Printer = (path, opts, print) => { - // Pinning is a really special syntax in pattern matching that's not really - // all that well supported in ripper. Here we're just going to the original - // source to see if the variable is pinned. - if ( - opts.originalText && - opts.originalText[opts.locStart(path.getValue()) - 1] === "^" - ) { - return ["^", path.call(print)]; - } - - return path.call(print); -}; - -export const printAryPtn: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - let argDocs: Plugin.Doc[] = []; - - if (node.reqs.length > 0) { - argDocs = argDocs.concat( - path.map((argPath) => printPatternArg(argPath, opts, print), "reqs") - ); - } - - if (node.rest) { - argDocs.push(["*", path.call(print, "rest")]); - } - - if (node.posts.length > 0) { - argDocs = argDocs.concat(path.map(print, "posts")); - } - - let argDoc: Plugin.Doc = group(join([",", line], argDocs)); - - // There are a couple of cases where we _must_ use brackets. They include: - // - // * When the number of arguments inside the array pattern is one 1, then we - // have to include them, otherwise it matches the whole array. Consider the - // difference between `in [elem]` and `in elem`. - // * If we have a wrapping constant, then we definitely need the brackets. - // Consider the difference between `in Const[elem]` and `in Const elem` - // * If we're nested inside a parent pattern, then we have to have brackets. - // Consider the difference between `in key: first, second` and - // `in key: [first, second]`. - if ( - argDocs.length === 1 || - node.constant || - patterns.includes(path.getParentNode().type) - ) { - argDoc = ["[", argDoc, "]"]; - } - - if (node.constant) { - return [path.call(print, "constant"), argDoc]; - } - - return argDoc; -}; - -export const printFndPtn: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - const docs = [ - "[", - group( - join( - [",", line], - [ - ["*", path.call(print, "left")], - ...path.map(print, "values"), - ["*", path.call(print, "right")] - ] - ) - ), - "]" - ]; - - if (node.constant) { - return [path.call(print, "constant"), docs]; - } - - return docs; -}; - -export const printHshPtn: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - let args: Plugin.Doc | Plugin.Doc[] = []; - - if (node.keywords.length > 0) { - const printPair = (pairPath: Plugin.Path<[Ruby.Label, Ruby.AnyNode]>) => { - const parts = [pairPath.call(print, 0)]; - - if (pairPath.getValue()[1]) { - parts.push( - " ", - pairPath.call( - (pairValuePath) => printPatternArg(pairValuePath, opts, print), - 1 - ) - ); - } - - return parts; - }; - - args = args.concat(path.map(printPair, "keywords")); - } - - if (node.kwrest) { - args.push(["**", path.call(print, "kwrest")]); - } - - args = group(join([",", line], args)); - - if (node.constant) { - args = ["[", args, "]"]; - } else if (patterns.includes(path.getParentNode().type)) { - args = ["{ ", args, " }"]; - } - - if (node.constant) { - return [path.call(print, "constant"), args]; - } - - return args; -}; - -export const printIn: Plugin.Printer = (path, opts, print) => { - const keyword = "in "; - const parts: Plugin.Doc[] = [ - keyword, - align( - keyword.length, - path.call( - (valuePath) => printPatternArg(valuePath, opts, print), - "pattern" - ) - ), - indent([hardline, path.call(print, "stmts")]) - ]; - - if (path.getValue().cons) { - parts.push(hardline, path.call(print, "cons")); - } - - return group(parts); -}; - -export const printRAssign: Plugin.Printer = (path, opts, print) => - group([ - path.call(print, "value"), - " ", - path.call(print, "op"), - group(indent([line, path.call(print, "pattern")])) - ]); diff --git a/src/ruby/nodes/regexp.ts b/src/ruby/nodes/regexp.ts deleted file mode 100644 index 7f9d3602..00000000 --- a/src/ruby/nodes/regexp.ts +++ /dev/null @@ -1,57 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import { hasAncestor } from "../../utils"; - -function hasContent(node: Ruby.RegexpLiteral, pattern: RegExp) { - return node.parts.some( - (part) => part.type === "tstring_content" && pattern.test(part.value) - ); -} - -// If the first part of this regex is plain string content, we have a space -// or an =, and we're contained within a command or command_call node, then we -// want to use braces because otherwise we could end up with an ambiguous -// operator, e.g. foo / bar/ or foo /=bar/ -function forwardSlashIsAmbiguous(path: Plugin.Path) { - const node = path.getValue(); - const firstPart = node.parts[0]; - - return ( - firstPart && - firstPart.type === "tstring_content" && - [" ", "="].includes(firstPart.value[0]) && - hasAncestor(path, ["command", "command_call"]) - ); -} - -// This function is responsible for printing out regexp_literal nodes. They can -// either use the special %r literal syntax or they can use forward slashes. At -// the end of either of those they can have modifiers like m or x that have -// special meaning for the regex engine. -// -// We favor the use of forward slashes unless the regex contains a forward slash -// itself. In that case we switch over to using %r with braces. -export const printRegexpLiteral: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - const docs = path.map(print, "parts"); - - // We should use braces if using a forward slash would be ambiguous in the - // current context or if there's a forward slash in the content of the regexp. - const useBraces = forwardSlashIsAmbiguous(path) || hasContent(node, /\//); - - // If we should be using braces but we have braces in the body of the regexp, - // then we're just going to resort to using whatever the original content was. - if (useBraces && hasContent(node, /[{}]/)) { - return [node.beging, ...docs, node.ending]; - } - - return [ - useBraces ? "%r{" : "/", - ...docs, - useBraces ? "}" : "/", - node.ending.slice(1) - ]; -}; diff --git a/src/ruby/nodes/rescue.ts b/src/ruby/nodes/rescue.ts deleted file mode 100644 index 87dd785b..00000000 --- a/src/ruby/nodes/rescue.ts +++ /dev/null @@ -1,103 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { align, group, hardline, indent, join, line } = prettier; - -export const printBegin: Plugin.Printer = (path, opts, print) => { - return [ - "begin", - indent([hardline, path.call(print, "bodystmt")]), - hardline, - "end" - ]; -}; - -export const printEnsure: Plugin.Printer = (path, opts, print) => { - return [ - path.call(print, "keyword"), - indent([hardline, path.call(print, "stmts")]) - ]; -}; - -export const printRescue: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - const parts: Plugin.Doc[] = ["rescue"]; - - if (node.extn) { - parts.push(align("rescue ".length, path.call(print, "extn"))); - } else { - // If you don't specify an error to rescue in a `begin/rescue` block, then - // implicitly you're rescuing from `StandardError`. In this case, we're - // just going to explicitly add it. - parts.push(" StandardError"); - } - - const stmtsDoc = path.call(print, "stmts") as Plugin.Doc[]; - - if (stmtsDoc.length > 0) { - parts.push(indent([hardline, stmtsDoc])); - } - - // This is the next clause on the `begin` statement, either another - // `rescue`, and `ensure`, or an `else` clause. - if (node.cons) { - parts.push([hardline, path.call(print, "cons")]); - } - - return group(parts); -}; - -// This is a container node that we're adding into the AST that isn't present in -// Ripper solely so that we have a nice place to attach inline comments. -export const printRescueEx: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - const parts: Plugin.Doc[] = []; - - if (node.extns) { - // If there's just one exception being rescued, then it's just going to be a - // single doc node. - let exceptionDoc = path.call(print, "extns"); - - // If there are multiple exceptions being rescued, then we're going to have - // multiple doc nodes returned as an array that we need to join together. - if ( - ["mrhs", "mrhs_add_star", "mrhs_new_from_args"].includes(node.extns.type) - ) { - exceptionDoc = group(join([",", line], exceptionDoc)); - } - - parts.push(" ", exceptionDoc); - } - - if (node.var) { - parts.push(" => ", path.call(print, "var")); - } - - return group(parts); -}; - -export const printRescueMod: Plugin.Printer = ( - path, - opts, - print -) => { - return [ - "begin", - indent([hardline, path.call(print, "stmt")]), - hardline, - "rescue StandardError", - indent([hardline, path.call(print, "value")]), - hardline, - "end" - ]; -}; - -export const printRedo: Plugin.Printer = (path) => - path.getValue().value; - -export const printRetry: Plugin.Printer = (path) => - path.getValue().value; diff --git a/src/ruby/nodes/return.ts b/src/ruby/nodes/return.ts deleted file mode 100644 index 53203211..00000000 --- a/src/ruby/nodes/return.ts +++ /dev/null @@ -1,115 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { group, ifBreak, indent, line, join, softline } = prettier; - -// You can't skip the parentheses if you have comments or certain operators with -// lower precedence than the return keyword. -function canSkipParens(paren: Ruby.Paren) { - const stmts = paren.cnts as Ruby.Statements; - - // return( - // foo - // bar - // ) - if (stmts.body.length !== 1) { - return false; - } - - // return( - // # a - // b - // ) - if (stmts.comments) { - return false; - } - - const stmt = stmts.body[0]; - - // return (a or b) - if (stmt.type === "binary" && ["and", "or"].includes(stmt.op)) { - return false; - } - - // return (not a) - if (stmt.type === "not") { - return false; - } - - return true; -} - -export const printReturn: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - let parts: Plugin.Doc | Plugin.Doc[] = ""; - let joining = false; - - if (node.args.type === "args_add_block") { - const args = node.args.args; - const steps: PropertyKey[] = ["args", "args"]; - - if (args.type === "args" && args.parts.length === 1 && args.parts[0]) { - // This is the first and only argument being passed to the return keyword. - let arg = args.parts[0]; - steps.push("parts", 0); - - // If the body of the return contains parens, then just skip directly to - // the content of the parens so that we can skip printing parens if we - // don't want them. - if (arg.type === "paren") { - // If we can't skip over the parentheses, then we know we can just bail - // out here and print the only argument as normal since it's a paren. - if (!canSkipParens(arg)) { - return ["return", path.call(print, "args")]; - } - - arg = (arg.cnts as Ruby.Statements).body[0]; - steps.push("cnts", "body", 0); - } - - // If we're returning an array literal that isn't a special array that has - // at least 2 elements, then we want to grab the arguments so that we can - // print them out as if they were normal return arguments. - if (arg.type === "array" && arg.cnts) { - const contents = arg.cnts; - - if (contents.type === "args" && contents.parts.length > 1) { - // If we have just regular arguments and we have more than 1. - steps.push("cnts"); - } - } - } - - // We're doing this weird dance with the steps variable because it's - // possible that you're printing an array nested under some parentheses, in - // which case we still want to descend down that far. For example, - // return([1, 2, 3]) should print as return 1, 2, 3. - parts = (path as any).call((targetPath: Plugin.Path) => { - const target = targetPath.getValue(); - joining = target.type === "args" || target.type === "args_add_block"; - - return print(targetPath); - }, ...steps); - } - - // If we didn't hit any of our special cases, then just print out the - // arguments normally here. - if (parts === "") { - parts = path.call(print, "args"); - joining = true; - } - - const useBrackets = Array.isArray(parts) && parts.length > 1; - const value = joining ? join([",", line], parts) : parts; - - return group([ - "return", - ifBreak(useBrackets ? " [" : "(", " "), - indent([softline, value]), - softline, - ifBreak(useBrackets ? "]" : ")", "") - ]); -}; - -export const printReturn0: Plugin.Printer = (path) => - path.getValue().value; diff --git a/src/ruby/nodes/statements.ts b/src/ruby/nodes/statements.ts deleted file mode 100644 index f67dda7b..00000000 --- a/src/ruby/nodes/statements.ts +++ /dev/null @@ -1,162 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { isEmptyStmts } from "../../utils"; -import { getEndLine, getStartLine } from "../location"; - -const { - breakParent, - dedent, - group, - hardline, - indent, - join, - line, - literalline, - softline, - trim -} = prettier; - -export const printBodyStmt: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - const parts = []; - - if (!isEmptyStmts(node.stmts)) { - parts.push(path.call(print, "stmts")); - } - - if (node.rsc) { - parts.push(dedent([hardline, path.call(print, "rsc")])); - } - - if (node.els) { - // Before Ruby 2.6, this piece of bodystmt was an explicit "else" node - /* istanbul ignore next */ - const stmts = - (node.els as any).type === "else" - ? (path as any).call(print, "els", "body", 0) - : path.call(print, "els"); - - parts.push([dedent([hardline, "else"]), hardline, stmts]); - } - - if (node.ens) { - parts.push(dedent([hardline, path.call(print, "ens")])); - } - - return group(parts); -}; - -const argNodeTypes = ["args", "args_add_block"]; - -export const printParen: Plugin.Printer = (path, opts, print) => { - const contentNode = path.getValue().cnts; - - if (!contentNode) { - return [path.call(print, "lparen"), ")"]; - } - - let contentDoc = path.call(print, "cnts"); - - // If the content is params, we're going to let it handle its own parentheses - // so that it breaks nicely. - if (contentNode.type === "params") { - return contentDoc; - } - - // If we have an arg type node as the contents, then it's going to return an - // array, so we need to explicitly join that content here. - if (argNodeTypes.includes(contentNode.type)) { - contentDoc = join([",", line], contentDoc); - } - - return group([ - path.call(print, "lparen"), - indent([softline, contentDoc]), - softline, - ")" - ]); -}; - -export const printEndContent: Plugin.Printer = (path) => { - const node = path.getValue(); - return [trim, "__END__", literalline, node.value]; -}; - -export const printComment: Plugin.Printer = (path, opts) => { - return opts.printer.printComment(path, opts); -}; - -export const printProgram: Plugin.Printer = ( - path, - opts, - print -) => [path.call(print, "stmts"), hardline]; - -type StmtsVoidWithComments = Ruby.Statements & { - body: [{ type: "void_stmt"; comments: Ruby.Comment[] }]; -}; - -export const printStatements: Plugin.Printer = ( - path, - opts, - print -) => { - const stmts = path.getValue().body; - - // This is a special case where we have only comments inside a statement - // list. In this case we want to avoid doing any kind of line number - // tracking and just print out the comments. - if ( - stmts.length === 1 && - stmts[0].type === "void_stmt" && - stmts[0].comments - ) { - const nodePath = path as Plugin.Path; - const comments = nodePath.map( - (commentPath) => { - commentPath.getValue().printed = true; - return opts.printer.printComment(commentPath, opts); - }, - "body", - 0, - "comments" - ); - - return [breakParent, join(hardline, comments)]; - } - - const parts: Plugin.Doc[] = []; - let lineNo: null | number = null; - - stmts.forEach((stmt, index) => { - if (stmt.type === "void_stmt") { - return; - } - - const printed = path.call(print, "body", index); - - if (lineNo === null) { - parts.push(printed); - } else if ( - getStartLine(stmt.loc) - lineNo > 1 || - [stmt.type, stmts[index - 1].type].includes("access_ctrl") - ) { - parts.push(hardline, hardline, printed); - } else if ( - getStartLine(stmt.loc) !== lineNo || - path.getParentNode().type !== "string_embexpr" - ) { - parts.push(hardline, printed); - } else { - parts.push("; ", printed); - } - - lineNo = getEndLine(stmt.loc); - }); - - return parts; -}; diff --git a/src/ruby/nodes/strings.ts b/src/ruby/nodes/strings.ts deleted file mode 100644 index 95f6c23f..00000000 --- a/src/ruby/nodes/strings.ts +++ /dev/null @@ -1,293 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { getEndLine, getStartLine } from "../location"; - -const { group, hardline, indent, literalline, removeLines, softline, join } = - prettier; - -// If there is some part of this string that matches an escape sequence or that -// contains the interpolation pattern ("#{"), then we are locked into whichever -// quote the user chose. (If they chose single quotes, then double quoting -// would activate the escape sequence, and if they chose double quotes, then -// single quotes would deactivate it.) -function isQuoteLocked(node: Ruby.DynaSymbol | Ruby.StringLiteral) { - return node.parts.some( - (part) => - part.type === "tstring_content" && - (part.value.includes("#{") || part.value.includes("\\")) - ); -} - -// A string is considered to be able to use single quotes if it contains only -// plain string content and that content does not contain a single quote. -function isSingleQuotable(node: Ruby.DynaSymbol | Ruby.StringLiteral) { - return node.parts.every( - (part) => part.type === "tstring_content" && !part.value.includes("'") - ); -} - -const quotePattern = new RegExp("\\\\([\\s\\S])|(['\"])", "g"); - -function normalizeQuotes(content: string, enclosingQuote: string) { - // Escape and unescape single and double quotes as needed to be able to - // enclose `content` with `enclosingQuote`. - return content.replace(quotePattern, (match, escaped, quote) => { - if (quote === enclosingQuote) { - return `\\${quote}`; - } - - if (quote) { - return quote; - } - - return `\\${escaped}`; - }); -} - -const quotePairs = { - "(": ")", - "[": "]", - "{": "}", - "<": ">" -}; - -type Quote = keyof typeof quotePairs; - -function getClosingQuote(quote: string) { - if (!quote.startsWith("%")) { - return quote; - } - - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - const boundary = /%[Qq]?(.)/.exec(quote)![1]; - if (boundary in quotePairs) { - return quotePairs[boundary as Quote]; - } - - return boundary; -} - -// Prints a @CHAR node. @CHAR nodes are special character strings that usually -// are strings of length 1. If they're any longer than we'll try to apply the -// correct quotes. -export const printChar: Plugin.Printer = (path, opts) => { - const { value } = path.getValue(); - - if (value.length !== 2) { - return value; - } - - const quote = opts.rubySingleQuote ? "'" : '"'; - return [quote, value.slice(1), quote]; -}; - -const printPercentSDynaSymbol: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - const parts = []; - - // Push on the quote, which includes the opening character. - parts.push(node.quote); - - path.each((childPath) => { - const childNode = childPath.getValue(); - - if (childNode.type !== "tstring_content") { - // Here we are printing an embedded variable or expression. - parts.push(print(childPath)); - } else { - // Here we are printing plain string content. - parts.push(join(literalline, childNode.value.split("\n"))); - } - }, "parts"); - - // Push on the closing character, which is the opposite of the third - // character from the opening. - parts.push(quotePairs[node.quote[2] as Quote]); - - return parts; -}; - -// We don't actually want to print %s symbols, as they're much more rarely seen -// in the wild. But we're going to be forced into it if it's a multi-line symbol -// or if the quoting would get super complicated. -function shouldPrintPercentSDynaSymbol(node: Ruby.DynaSymbol) { - // We shouldn't print a %s dyna symbol if it was not already that way in the - // original source. - if (node.quote[0] !== "%") { - return false; - } - - // Here we're going to check if there is a closing character, a new line, or a - // quote in the content of the dyna symbol. If there is, then quoting could - // get weird, so just bail out and stick to the original bounds in the source. - const closing = quotePairs[node.quote[2] as Quote]; - - return node.parts.some( - (child) => - child.type === "tstring_content" && - (child.value.includes("\n") || - child.value.includes(closing) || - child.value.includes("'") || - child.value.includes('"')) - ); -} - -// Prints a dynamic symbol. Assumes there's a quote property attached to the -// node that will tell us which quote to use when printing. We're just going to -// use whatever quote was provided. -// -// In the case of a plain dyna symbol, node.quote will be either :" or :' -// For %s dyna symbols, node.quote will be %s[, %s(, %s{, or %s< -export const printDynaSymbol: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - - if (shouldPrintPercentSDynaSymbol(node)) { - return printPercentSDynaSymbol(path, opts, print); - } - - const parts = []; - let quote: string; - - if (isQuoteLocked(node)) { - if (node.quote.startsWith("%")) { - quote = opts.rubySingleQuote ? "'" : '"'; - } else if (node.quote.startsWith(":")) { - quote = node.quote.slice(1); - } else { - quote = node.quote; - } - } else { - quote = opts.rubySingleQuote && isSingleQuotable(node) ? "'" : '"'; - } - - parts.push(quote); - - path.each((childPath) => { - const child = childPath.getValue() as Ruby.StringContent; - - if (child.type !== "tstring_content") { - parts.push(print(childPath)); - } else { - parts.push( - join(literalline, normalizeQuotes(child.value, quote).split("\n")) - ); - } - }, "parts"); - - parts.push(quote); - - // If we're inside of an assoc_new node as the key, then it will handle - // printing the : on its own since it could change sides. - const parentNode = path.getParentNode(); - if (parentNode.type !== "assoc" || parentNode.key !== node) { - parts.unshift(":"); - } - - return parts; -}; - -export const printStringConcat: Plugin.Printer = ( - path, - opts, - print -) => { - return group([ - path.call(print, "left"), - " \\", - indent([hardline, path.call(print, "right")]) - ]); -}; - -// Prints out an interpolated variable in the string by converting it into an -// embedded expression. -export const printStringDVar: Plugin.Printer = ( - path, - opts, - print -) => ["#{", path.call(print, "var"), "}"]; - -export const printStringEmbExpr: Plugin.Printer = ( - path, - opts, - print -) => { - const node = path.getValue(); - const doc = path.call(print, "stmts"); - - // If the contents of this embedded expression were originally on the same - // line in the source, then we're going to leave them in place and assume - // that's the way the developer wanted this expression represented. - if (getStartLine(node.loc) === getEndLine(node.loc)) { - return ["#{", removeLines(doc), "}"]; - } - - return group(["#{", indent([softline, doc]), [softline, "}"]]); -}; - -// Prints out a literal string. This function does its best to respect the -// wishes of the user with regards to single versus double quotes, but if the -// string contains any escape expressions then it will just keep the original -// quotes. -export const printStringLiteral: Plugin.Printer = ( - path, - { rubySingleQuote }, - print -) => { - const node = path.getValue(); - - // If the string is empty, it will not have any parts, so just print out the - // quotes corresponding to the config - if (node.parts.length === 0) { - return rubySingleQuote ? "''" : '""'; - } - - // Determine the quote that should enclose the new string - let quote: string; - if (isQuoteLocked(node)) { - quote = node.quote; - } else { - quote = rubySingleQuote && isSingleQuotable(node) ? "'" : '"'; - } - - const parts = path.map((partPath) => { - const part = partPath.getValue(); - - // In this case, the part of the string is an embedded expression - if (part.type !== "tstring_content") { - return print(partPath); - } - - // In this case, the part of the string is just regular string content - return join(literalline, normalizeQuotes(part.value, quote).split("\n")); - }, "parts"); - - return [quote, ...parts, getClosingQuote(quote)]; -}; - -// Prints out a symbol literal. Its child will always be the ident that -// represents the string content of the symbol. -export const printSymbolLiteral: Plugin.Printer = ( - path, - opts, - print -) => { - return [":", path.call(print, "value")]; -}; - -// Prints out an xstring literal. Its child is an array of string parts, -// including plain string content and interpolated content. -export const printXStringLiteral: Plugin.Printer = ( - path, - opts, - print -) => { - return ["`", ...path.map(print, "parts"), "`"]; -}; diff --git a/src/ruby/nodes/super.ts b/src/ruby/nodes/super.ts deleted file mode 100644 index 159145bb..00000000 --- a/src/ruby/nodes/super.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { align, group, join, line } = prettier; - -export const printSuper: Plugin.Printer = (path, opts, print) => { - const { args } = path.getValue(); - - if (args.type === "arg_paren") { - // In case there are explicitly no arguments but they are using parens, - // we assume they are attempting to override a parent method and pass no - // arguments up. - return args.args === null ? "super()" : ["super", path.call(print, "args")]; - } - - const keyword = "super "; - - return group([ - keyword, - align(keyword.length, group(join([",", line], path.call(print, "args")))) - ]); -}; - -// Version of super without any parens or args. -export const printZSuper: Plugin.Printer = (path) => - path.getValue().value; diff --git a/src/ruby/nodes/undef.ts b/src/ruby/nodes/undef.ts deleted file mode 100644 index 79fdc9e5..00000000 --- a/src/ruby/nodes/undef.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; - -const { addTrailingComment, align, group, join, line } = prettier; - -export const printUndef: Plugin.Printer = (path, opts, print) => { - const symsDocs = path.map((symbolPath) => { - const symbolNode = symbolPath.getValue(); - - // If we're not printing a symbol literal then it's a dyna symbol, so - // we're just going to print that node on its own. - if (symbolNode.type !== "symbol_literal") { - return print(symbolPath); - } - - // We need to make sure we copy over any comments before we do the - // printing so they get printed as well. - if (symbolNode.comments) { - symbolNode.comments.forEach((comment) => { - addTrailingComment(symbolNode.value, comment); - }); - } - - // If we're printing a symbol literal, then we want to descend into it and - // just print the underlying contents so that it prints as a bare word. - return symbolPath.call(print, "value"); - }, "syms"); - - const keyword = "undef "; - return group([keyword, align(keyword.length, join([",", line], symsDocs))]); -}; diff --git a/src/ruby/parser.rb b/src/ruby/parser.rb deleted file mode 100644 index bf1ea385..00000000 --- a/src/ruby/parser.rb +++ /dev/null @@ -1,9134 +0,0 @@ -# frozen_string_literal: true - -require 'ripper' -# require_relative 'syntax_tree/version' - -class PrettierSyntaxTree < Ripper - # Represents a line in the source. If this class is being used, it means that - # every character in the string is 1 byte in length, so we can just return the - # start of the line + the index. - class SingleByteString - def initialize(start) - @start = start - end - - def [](byteindex) - @start + byteindex - end - end - - # Represents a line in the source. If this class is being used, it means that - # there are characters in the string that are multi-byte, so we will build up - # an array of indices, such that array[byteindex] will be equal to the index - # of the character within the string. - class MultiByteString - def initialize(start, line) - @indices = [] - - line - .each_char - .with_index(start) do |char, index| - char.bytesize.times { @indices << index } - end - end - - def [](byteindex) - @indices[byteindex] - end - end - - # Represents the location of a node in the tree from the source code. - class Location - attr_reader :start_line, :start_char, :end_line, :end_char - - def initialize(start_line:, start_char:, end_line:, end_char:) - @start_line = start_line - @start_char = start_char - @end_line = end_line - @end_char = end_char - end - - def ==(other) - other.is_a?(Location) && start_line == other.start_line && - start_char == other.start_char && end_line == other.end_line && - end_char == other.end_char - end - - def to(other) - Location.new( - start_line: start_line, - start_char: start_char, - end_line: other.end_line, - end_char: other.end_char - ) - end - - def to_json(*opts) - [start_line, start_char, end_line, end_char].to_json(*opts) - end - - def self.token(line:, char:, size:) - new( - start_line: line, - start_char: char, - end_line: line, - end_char: char + size - ) - end - - def self.fixed(line:, char:) - new(start_line: line, start_char: char, end_line: line, end_char: char) - end - end - - # A special parser error so that we can get nice syntax displays on the error - # message when prettier prints out the results. - class ParseError < StandardError - attr_reader :lineno, :column - - def initialize(error, lineno, column) - super(error) - @lineno = lineno - @column = column - end - end - - attr_reader :source, :lines, :tokens - - # This is an attr_accessor so Stmts objects can grab comments out of this - # array and attach them to themselves. - attr_accessor :comments - - def initialize(source, *) - super - - # We keep the source around so that we can refer back to it when we're - # generating the AST. Sometimes it's easier to just reference the source - # string when you want to check if it contains a certain character, for - # example. - @source = source - - # Similarly, we keep the lines of the source string around to be able to - # check if certain lines contain certain characters. For example, we'll use - # this to generate the content that goes after the __END__ keyword. Or we'll - # use this to check if a comment has other content on its line. - @lines = source.split("\n") - - # This is the full set of comments that have been found by the parser. It's - # a running list. At the end of every block of statements, they will go in - # and attempt to grab any comments that are on their own line and turn them - # into regular statements. So at the end of parsing the only comments left - # in here will be comments on lines that also contain code. - @comments = [] - - # This is the current embdoc (comments that start with =begin and end with - # =end). Since they can't be nested, there's no need for a stack here, as - # there can only be one active. These end up getting dumped into the - # comments list before getting picked up by the statements that surround - # them. - @embdoc = nil - - # This is an optional node that can be present if the __END__ keyword is - # used in the file. In that case, this will represent the content after that - # keyword. - @__end__ = nil - - # Heredocs can actually be nested together if you're using interpolation, so - # this is a stack of heredoc nodes that are currently being created. When we - # get to the token that finishes off a heredoc node, we pop the top - # one off. If there are others surrounding it, then the body events will now - # be added to the correct nodes. - @heredocs = [] - - # This is a running list of tokens that have fired. It's useful - # mostly for maintaining location information. For example, if you're inside - # the handle of a def event, then in order to determine where the AST node - # started, you need to look backward in the tokens to find a def - # keyword. Most of the time, when a parser event consumes one of these - # events, it will be deleted from the list. So ideally, this list stays - # pretty short over the course of parsing a source string. - @tokens = [] - - # Here we're going to build up a list of SingleByteString or MultiByteString - # objects. They're each going to represent a string in the source. They are - # used by the `char_pos` method to determine where we are in the source - # string. - @line_counts = [] - last_index = 0 - - @source.lines.each do |line| - if line.size == line.bytesize - @line_counts << SingleByteString.new(last_index) - else - @line_counts << MultiByteString.new(last_index, line) - end - - last_index += line.size - end - end - - def self.parse(source) - parser = new(source) - response = parser.parse - response unless parser.error? - end - - private - - # ---------------------------------------------------------------------------- - # :section: Helper methods - # The following methods are used by the ripper event handlers to either - # determine their bounds or query other nodes. - # ---------------------------------------------------------------------------- - - # This represents the current place in the source string that we've gotten to - # so far. We have a memoized line_counts object that we can use to get the - # number of characters that we've had to go through to get to the beginning of - # this line, then we add the number of columns into this line that we've gone - # through. - def char_pos - @line_counts[lineno - 1][column] - end - - # As we build up a list of tokens, we'll periodically need to go backwards and - # find the ones that we've already hit in order to determine the location - # information for nodes that use them. For example, if you have a module node - # then you'll look backward for a kw token to determine your start location. - # - # This works with nesting since we're deleting tokens from the list once - # they've been used up. For example if you had nested module declarations then - # the innermost declaration would grab the last kw node that matches "module" - # (which would happen to be the innermost keyword). Then the outer one would - # only be able to grab the first one. In this way all of the tokens act as - # their own stack. - def find_token(type, value = :any, consume: true) - index = - tokens.rindex do |token| - token.is_a?(type) && (value == :any || (token.value == value)) - end - - if consume - # If we're expecting to be able to find a token and consume it, - # but can't actually find it, then we need to raise an error. This is - # _usually_ caused by a syntax error in the source that we're printing. It - # could also be caused by accidentally attempting to consume a token twice - # by two different parser event handlers. - unless index - message = "Cannot find expected #{value == :any ? type : value}" - raise ParseError.new(message, lineno, column) - end - - tokens.delete_at(index) - elsif index - tokens[index] - end - end - - # A helper function to find a :: operator. We do special handling instead of - # using find_token here because we don't pop off all of the :: - # operators so you could end up getting the wrong information if you have for - # instance ::X::Y::Z. - def find_colon2_before(const) - index = - tokens.rindex do |token| - token.is_a?(Op) && token.value == '::' && - token.location.start_char < const.location.start_char - end - - tokens[index] - end - - # Finds the next position in the source string that begins a statement. This - # is used to bind statements lists and make sure they don't include a - # preceding comment. For example, we want the following comment to be attached - # to the class node and not the statement node: - # - # class Foo # :nodoc: - # ... - # end - # - # By finding the next non-space character, we can make sure that the bounds of - # the statement list are correct. - def find_next_statement_start(position) - remaining = source[position..-1] - - if remaining.sub(/\A +/, '')[0] == '#' - return position + remaining.index("\n") - end - - position - end - - # ---------------------------------------------------------------------------- - # :section: Ripper event handlers - # The following methods all handle a dispatched ripper event. - # ---------------------------------------------------------------------------- - - # BEGINBlock represents the use of the +BEGIN+ keyword, which hooks into the - # lifecycle of the interpreter. Whatever is inside the block will get executed - # when the program starts. - # - # BEGIN { - # } - # - # Interestingly, the BEGIN keyword doesn't allow the do and end keywords for - # the block. Only braces are permitted. - class BEGINBlock - # [LBrace] the left brace that is seen after the keyword - attr_reader :lbrace - - # [Statements] the expressions to be executed - attr_reader :statements - - # [Location] the location of this node - attr_reader :location - - def initialize(lbrace:, statements:, location:) - @lbrace = lbrace - @statements = statements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('BEGIN') - q.breakable - q.pp(statements) - end - end - - def to_json(*opts) - { - type: :BEGIN, - lbrace: lbrace, - stmts: statements, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_BEGIN: (Statements statements) -> BEGINBlock - def on_BEGIN(statements) - lbrace = find_token(LBrace) - rbrace = find_token(RBrace) - - statements.bind( - find_next_statement_start(lbrace.location.end_char), - rbrace.location.start_char - ) - - keyword = find_token(Kw, 'BEGIN') - - BEGINBlock.new( - lbrace: lbrace, - statements: statements, - location: keyword.location.to(rbrace.location) - ) - end - - # CHAR irepresents a single codepoint in the script encoding. - # - # ?a - # - # In the example above, the CHAR node represents the string literal "a". You - # can use control characters with this as well, as in ?\C-a. - class CHAR - # [String] the value of the character literal - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('CHAR') - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :CHAR, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_CHAR: (String value) -> CHAR - def on_CHAR(value) - node = - CHAR.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # ENDBlock represents the use of the +END+ keyword, which hooks into the - # lifecycle of the interpreter. Whatever is inside the block will get executed - # when the program ends. - # - # END { - # } - # - # Interestingly, the END keyword doesn't allow the do and end keywords for the - # block. Only braces are permitted. - class ENDBlock - # [LBrace] the left brace that is seen after the keyword - attr_reader :lbrace - - # [Statements] the expressions to be executed - attr_reader :statements - - # [Location] the location of this node - attr_reader :location - - def initialize(lbrace:, statements:, location:) - @lbrace = lbrace - @statements = statements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('END') - q.breakable - q.pp(statements) - end - end - - def to_json(*opts) - { type: :END, lbrace: lbrace, stmts: statements, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_END: (Statements statements) -> ENDBlock - def on_END(statements) - lbrace = find_token(LBrace) - rbrace = find_token(RBrace) - - statements.bind( - find_next_statement_start(lbrace.location.end_char), - rbrace.location.start_char - ) - - keyword = find_token(Kw, 'END') - - ENDBlock.new( - lbrace: lbrace, - statements: statements, - location: keyword.location.to(rbrace.location) - ) - end - - # EndContent represents the use of __END__ syntax, which allows individual - # scripts to keep content after the main ruby code that can be read through - # the DATA constant. - # - # puts DATA.read - # - # __END__ - # some other content that is not executed by the program - # - class EndContent - # [String] the content after the script - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('__end__') - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :__end__, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on___end__: (String value) -> EndContent - def on___end__(value) - @__end__ = - EndContent.new( - value: lines[lineno..-1].join("\n"), - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - end - - # Alias represents the use of the +alias+ keyword with regular arguments (not - # global variables). The +alias+ keyword is used to make a method respond to - # another name as well as the current one. - # - # alias aliased_name name - # - # For the example above, in the current context you can now call aliased_name - # and it will execute the name method. When you're aliasing two methods, you - # can either provide bare words (like the example above) or you can provide - # symbols (note that this includes dynamic symbols like - # :"left-#{middle}-right"). - class Alias - # [DynaSymbol | SymbolLiteral] the new name of the method - attr_reader :left - - # [DynaSymbol | SymbolLiteral] the old name of the method - attr_reader :right - - # [Location] the location of this node - attr_reader :location - - def initialize(left:, right:, location:) - @left = left - @right = right - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('alias') - q.breakable - q.pp(left) - q.breakable - q.pp(right) - end - end - - def to_json(*opts) - { type: :alias, left: left, right: right, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_alias: ( - # (DynaSymbol | SymbolLiteral) left, - # (DynaSymbol | SymbolLiteral) right - # ) -> Alias - def on_alias(left, right) - keyword = find_token(Kw, 'alias') - - Alias.new( - left: left, - right: right, - location: keyword.location.to(right.location) - ) - end - - # ARef represents when you're pulling a value out of a collection at a - # specific index. Put another way, it's any time you're calling the method - # #[]. - # - # collection[index] - # - # The nodes usually contains two children, the collection and the index. In - # some cases, you don't necessarily have the second child node, because you - # can call procs with a pretty esoteric syntax. In the following example, you - # wouldn't have a second child node: - # - # collection[] - # - class ARef - # [untyped] the value being indexed - attr_reader :collection - - # [nil | Args | ArgsAddBlock] the value being passed within the brackets - attr_reader :index - - # [Location] the location of this node - attr_reader :location - - def initialize(collection:, index:, location:) - @collection = collection - @index = index - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('aref') - q.breakable - q.pp(collection) - q.breakable - q.pp(index) - end - end - - def to_json(*opts) - { - type: :aref, - collection: collection, - index: index, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_aref: (untyped collection, (nil | Args | ArgsAddBlock) index) -> ARef - def on_aref(collection, index) - find_token(LBracket) - rbracket = find_token(RBracket) - - ARef.new( - collection: collection, - index: index, - location: collection.location.to(rbracket.location) - ) - end - - # ARefField represents assigning values into collections at specific indices. - # Put another way, it's any time you're calling the method #[]=. The - # ARefField node itself is just the left side of the assignment, and they're - # always wrapped in assign nodes. - # - # collection[index] = value - # - class ARefField - # [untyped] the value being indexed - attr_reader :collection - - # [nil | ArgsAddBlock] the value being passed within the brackets - attr_reader :index - - # [Location] the location of this node - attr_reader :location - - def initialize(collection:, index:, location:) - @collection = collection - @index = index - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('aref_field') - q.breakable - q.pp(collection) - q.breakable - q.pp(index) - end - end - - def to_json(*opts) - { - type: :aref_field, - collection: collection, - index: index, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_aref_field: ( - # untyped collection, - # (nil | ArgsAddBlock) index - # ) -> ARefField - def on_aref_field(collection, index) - find_token(LBracket) - rbracket = find_token(RBracket) - - ARefField.new( - collection: collection, - index: index, - location: collection.location.to(rbracket.location) - ) - end - - # def on_arg_ambiguous(value) - # value - # end - - # ArgParen represents wrapping arguments to a method inside a set of - # parentheses. - # - # method(argument) - # - # In the example above, there would be an ArgParen node around the - # ArgsAddBlock node that represents the set of arguments being sent to the - # method method. The argument child node can be +nil+ if no arguments were - # passed, as in: - # - # method() - # - class ArgParen - # [nil | Args | ArgsAddBlock | ArgsForward] the arguments inside the - # parentheses - attr_reader :arguments - - # [Location] the location of this node - attr_reader :location - - def initialize(arguments:, location:) - @arguments = arguments - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('arg_paren') - q.breakable - q.pp(arguments) - end - end - - def to_json(*opts) - { type: :arg_paren, args: arguments, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_arg_paren: ( - # (nil | Args | ArgsAddBlock | ArgsForward) arguments - # ) -> ArgParen - def on_arg_paren(arguments) - lparen = find_token(LParen) - rparen = find_token(RParen) - - # If the arguments exceed the ending of the parentheses, then we know we - # have a heredoc in the arguments, and we need to use the bounds of the - # arguments to determine how large the arg_paren is. - ending = - if arguments && arguments.location.end_line > rparen.location.end_line - arguments - else - rparen - end - - ArgParen.new( - arguments: arguments, - location: lparen.location.to(ending.location) - ) - end - - # Args represents a list of arguments being passed to a method call or array - # literal. - # - # method(first, second, third) - # - class Args - # [Array[ untyped ]] the arguments that this node wraps - attr_reader :parts - - # [Location] the location of this node - attr_reader :location - - def initialize(parts:, location:) - @parts = parts - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('args') - q.breakable - q.group(2, '(', ')') { q.seplist(parts) { |part| q.pp(part) } } - end - end - - def to_json(*opts) - { type: :args, parts: parts, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_args_add: (Args arguments, untyped argument) -> Args - def on_args_add(arguments, argument) - if arguments.parts.empty? - # If this is the first argument being passed into the list of arguments, - # then we're going to use the bounds of the argument to override the - # parent node's location since this will be more accurate. - Args.new(parts: [argument], location: argument.location) - else - # Otherwise we're going to update the existing list with the argument - # being added as well as the new end bounds. - Args.new( - parts: arguments.parts << argument, - location: arguments.location.to(argument.location) - ) - end - end - - # ArgsAddBlock represents a list of arguments and potentially a block - # argument. ArgsAddBlock is commonly seen being passed to any method where you - # use parentheses (wrapped in an ArgParen node). It’s also used to pass - # arguments to the various control-flow keywords like +return+. - # - # method(argument, &block) - # - class ArgsAddBlock - # [Args] the arguments before the optional block - attr_reader :arguments - - # [nil | untyped] the optional block argument - attr_reader :block - - # [Location] the location of this node - attr_reader :location - - def initialize(arguments:, block:, location:) - @arguments = arguments - @block = block - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('args_add_block') - q.breakable - q.pp(arguments) - q.breakable - q.pp(block) - end - end - - def to_json(*opts) - { - type: :args_add_block, - args: arguments, - block: block, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_args_add_block: ( - # Args arguments, - # (false | untyped) block - # ) -> ArgsAddBlock - def on_args_add_block(arguments, block) - ending = block || arguments - - ArgsAddBlock.new( - arguments: arguments, - block: block || nil, - location: arguments.location.to(ending.location) - ) - end - - # Star represents using a splat operator on an expression. - # - # method(*arguments) - # - class ArgStar - # [nil | untyped] the expression being splatted - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('arg_star') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :arg_star, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_args_add_star: (Args arguments, untyped star) -> Args - def on_args_add_star(arguments, argument) - beginning = find_token(Op, '*') - ending = argument || beginning - - location = - if arguments.parts.empty? - ending.location - else - arguments.location.to(ending.location) - end - - arg_star = - ArgStar.new( - value: argument, - location: beginning.location.to(ending.location) - ) - - Args.new(parts: arguments.parts << arg_star, location: location) - end - - # ArgsForward represents forwarding all kinds of arguments onto another method - # call. - # - # def request(method, path, **headers, &block); end - # - # def get(...) - # request(:GET, ...) - # end - # - # def post(...) - # request(:POST, ...) - # end - # - # In the example above, both the get and post methods are forwarding all of - # their arguments (positional, keyword, and block) on to the request method. - # The ArgsForward node appears in both the caller (the request method calls) - # and the callee (the get and post definitions). - class ArgsForward - # [String] the value of the operator - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('args_forward') - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :args_forward, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_args_forward: () -> ArgsForward - def on_args_forward - op = find_token(Op, '...') - - ArgsForward.new(value: op.value, location: op.location) - end - - # :call-seq: - # on_args_new: () -> Args - def on_args_new - Args.new(parts: [], location: Location.fixed(line: lineno, char: char_pos)) - end - - # ArrayLiteral represents any form of an array literal, and contains myriad - # child nodes because of the special array literal syntax like %w and %i. - # - # [] - # [one, two, three] - # [*one_two_three] - # %i[one two three] - # %w[one two three] - # %I[one two three] - # %W[one two three] - # - # Every line in the example above produces an ArrayLiteral node. In order, the - # child contents node of this ArrayLiteral node would be nil, Args, QSymbols, - # QWords, Symbols, and Words. - class ArrayLiteral - # [nil | Args | QSymbols | QWords | Symbols | Words] the - # contents of the array - attr_reader :contents - - # [Location] the location of this node - attr_reader :location - - def initialize(contents:, location:) - @contents = contents - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('array') - q.breakable - q.pp(contents) - end - end - - def to_json(*opts) - { type: :array, cnts: contents, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_array: ((nil | Args) contents) -> - # ArrayLiteral | QSymbols | QWords | Symbols | Words - def on_array(contents) - if !contents || contents.is_a?(Args) - lbracket = find_token(LBracket) - rbracket = find_token(RBracket) - - ArrayLiteral.new( - contents: contents, - location: lbracket.location.to(rbracket.location) - ) - else - tstring_end = find_token(TStringEnd) - - contents.class.new( - elements: contents.elements, - location: contents.location.to(tstring_end.location) - ) - end - end - - # AryPtn represents matching against an array pattern using the Ruby 2.7+ - # pattern matching syntax. It’s one of the more complicated nodes, because - # the four parameters that it accepts can almost all be nil. - # - # case [1, 2, 3] - # in [Integer, Integer] - # "matched" - # in Container[Integer, Integer] - # "matched" - # in [Integer, *, Integer] - # "matched" - # end - # - # An AryPtn node is created with four parameters: an optional constant - # wrapper, an array of positional matches, an optional splat with identifier, - # and an optional array of positional matches that occur after the splat. - # All of the in clauses above would create an AryPtn node. - class AryPtn - # [nil | VarRef] the optional constant wrapper - attr_reader :constant - - # [Array[ untyped ]] the regular positional arguments that this array - # pattern is matching against - attr_reader :requireds - - # [nil | VarField] the optional starred identifier that grabs up a list of - # positional arguments - attr_reader :rest - - # [Array[ untyped ]] the list of positional arguments occurring after the - # optional star if there is one - attr_reader :posts - - # [Location] the location of this node - attr_reader :location - - def initialize(constant:, requireds:, rest:, posts:, location:) - @constant = constant - @requireds = requireds - @rest = rest - @posts = posts - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('aryptn') - - if constant - q.breakable - q.pp(constant) - end - - if requireds.any? - q.breakable - q.group(2, '(', ')') do - q.seplist(requireds) { |required| q.pp(required) } - end - end - - if rest - q.breakable - q.pp(rest) - end - - if posts.any? - q.breakable - q.group(2, '(', ')') { q.seplist(posts) { |post| q.pp(post) } } - end - end - end - - def to_json(*opts) - { - type: :aryptn, - constant: constant, - reqs: requireds, - rest: rest, - posts: posts, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_aryptn: ( - # (nil | VarRef) constant, - # (nil | Array[untyped]) requireds, - # (nil | VarField) rest, - # (nil | Array[untyped]) posts - # ) -> AryPtn - def on_aryptn(constant, requireds, rest, posts) - parts = [constant, *requireds, rest, *posts].compact - - AryPtn.new( - constant: constant, - requireds: requireds || [], - rest: rest, - posts: posts || [], - location: parts[0].location.to(parts[-1].location) - ) - end - - # Assign represents assigning something to a variable or constant. Generally, - # the left side of the assignment is going to be any node that ends with the - # name "Field". - # - # variable = value - # - class Assign - # [ARefField | ConstPathField | Field | TopConstField | VarField] the target - # to assign the result of the expression to - attr_reader :target - - # [untyped] the expression to be assigned - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(target:, value:, location:) - @target = target - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('assign') - q.breakable - q.pp(target) - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :assign, target: target, value: value, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_assign: ( - # (ARefField | ConstPathField | Field | TopConstField | VarField) target, - # untyped value - # ) -> Assign - def on_assign(target, value) - Assign.new( - target: target, - value: value, - location: target.location.to(value.location) - ) - end - - # Assoc represents a key-value pair within a hash. It is a child node of - # either an AssocListFromArgs or a BareAssocHash. - # - # { key1: value1, key2: value2 } - # - # In the above example, the would be two AssocNew nodes. - class Assoc - # [untyped] the key of this pair - attr_reader :key - - # [untyped] the value of this pair - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(key:, value:, location:) - @key = key - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('assoc') - q.breakable - q.pp(key) - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :assoc, key: key, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_assoc_new: (untyped key, untyped value) -> Assoc - def on_assoc_new(key, value) - Assoc.new(key: key, value: value, location: key.location.to(value.location)) - end - - # AssocSplat represents double-splatting a value into a hash (either a hash - # literal or a bare hash in a method call). - # - # { **pairs } - # - class AssocSplat - # [untyped] the expression that is being splatted - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('assoc_splat') - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :assoc_splat, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_assoc_splat: (untyped value) -> AssocSplat - def on_assoc_splat(value) - operator = find_token(Op, '**') - - AssocSplat.new(value: value, location: operator.location.to(value.location)) - end - - # AssocListFromArgs represents the key-value pairs of a hash literal. Its - # parent node is always a hash. - # - # { key1: value1, key2: value2 } - # - class AssocListFromArgs - # [Array[ AssocNew | AssocSplat ]] - attr_reader :assocs - - # [Location] the location of this node - attr_reader :location - - def initialize(assocs:, location:) - @assocs = assocs - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('assoclist_from_args') - q.breakable - q.group(2, '(', ')') { q.seplist(assocs) { |assoc| q.pp(assoc) } } - end - end - - def to_json(*opts) - { type: :assoclist_from_args, assocs: assocs, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_assoclist_from_args: ( - # Array[AssocNew | AssocSplat] assocs - # ) -> AssocListFromArgs - def on_assoclist_from_args(assocs) - AssocListFromArgs.new( - assocs: assocs, - location: assocs[0].location.to(assocs[-1].location) - ) - end - - # Backref represents a global variable referencing a matched value. It comes - # in the form of a $ followed by a positive integer. - # - # $1 - # - class Backref - # [String] the name of the global backreference variable - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('backref') - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :backref, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_backref: (String value) -> Backref - def on_backref(value) - node = - Backref.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # Backtick represents the use of the ` operator. It's usually found being used - # for an XStringLiteral, but could also be found as the name of a method being - # defined. - class Backtick - # [String] the backtick in the string - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('backtick') - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :backtick, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_backtick: (String value) -> Backtick - def on_backtick(value) - node = - Backtick.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # BareAssocHash represents a hash of contents being passed as a method - # argument (and therefore has omitted braces). It's very similar to an - # AssocListFromArgs node. - # - # method(key1: value1, key2: value2) - # - class BareAssocHash - # [Array[ AssocNew | AssocSplat ]] - attr_reader :assocs - - # [Location] the location of this node - attr_reader :location - - def initialize(assocs:, location:) - @assocs = assocs - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('bare_assoc_hash') - q.breakable - q.group(2, '(', ')') { q.seplist(assocs) { |assoc| q.pp(assoc) } } - end - end - - def to_json(*opts) - { type: :bare_assoc_hash, assocs: assocs, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_bare_assoc_hash: (Array[AssocNew | AssocSplat] assocs) -> BareAssocHash - def on_bare_assoc_hash(assocs) - BareAssocHash.new( - assocs: assocs, - location: assocs[0].location.to(assocs[-1].location) - ) - end - - # Begin represents a begin..end chain. - # - # begin - # value - # end - # - class Begin - # [BodyStmt] the bodystmt that contains the contents of this begin block - attr_reader :bodystmt - - # [Location] the location of this node - attr_reader :location - - def initialize(bodystmt:, location:) - @bodystmt = bodystmt - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('begin') - q.breakable - q.pp(bodystmt) - end - end - - def to_json(*opts) - { type: :begin, bodystmt: bodystmt, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_begin: (BodyStmt bodystmt) -> Begin - def on_begin(bodystmt) - keyword = find_token(Kw, 'begin') - end_char = - if bodystmt.rescue_clause || bodystmt.ensure_clause || - bodystmt.else_clause - bodystmt.location.end_char - else - find_token(Kw, 'end').location.end_char - end - - bodystmt.bind(keyword.location.end_char, end_char) - - Begin.new( - bodystmt: bodystmt, - location: keyword.location.to(bodystmt.location) - ) - end - - # Binary represents any expression that involves two sub-expressions with an - # operator in between. This can be something that looks like a mathematical - # operation: - # - # 1 + 1 - # - # but can also be something like pushing a value onto an array: - # - # array << value - # - class Binary - # [untyped] the left-hand side of the expression - attr_reader :left - - # [String] the operator used between the two expressions - attr_reader :operator - - # [untyped] the right-hand side of the expression - attr_reader :right - - # [Location] the location of this node - attr_reader :location - - def initialize(left:, operator:, right:, location:) - @left = left - @operator = operator - @right = right - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('binary') - q.breakable - q.pp(left) - q.breakable - q.text(operator) - q.breakable - q.pp(right) - end - end - - def to_json(*opts) - { - type: :binary, - left: left, - op: operator, - right: right, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_binary: (untyped left, (Op | Symbol) operator, untyped right) -> Binary - def on_binary(left, operator, right) - # On most Ruby implementations, operator is a Symbol that represents that - # operation being performed. For instance in the example `1 < 2`, the - # `operator` object would be `:<`. However, on JRuby, it's an `@op` node, - # so here we're going to explicitly convert it into the same normalized - # form. - operator = tokens.delete(operator).value unless operator.is_a?(Symbol) - - Binary.new( - left: left, - operator: operator, - right: right, - location: left.location.to(right.location) - ) - end - - # BlockVar represents the parameters being declared for a block. Effectively - # this node is everything contained within the pipes. This includes all of the - # various parameter types, as well as block-local variable declarations. - # - # method do |positional, optional = value, keyword:, █ local| - # end - # - class BlockVar - # [Params] the parameters being declared with the block - attr_reader :params - - # [Array[ Ident ]] the list of block-local variable declarations - attr_reader :locals - - # [Location] the location of this node - attr_reader :location - - def initialize(params:, locals:, location:) - @params = params - @locals = locals - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('block_var') - q.breakable - q.pp(params) - - if locals.any? - q.breakable - q.group(2, '(', ')') { q.seplist(locals) { |local| q.pp(local) } } - end - end - end - - def to_json(*opts) - { - type: :block_var, - params: params, - locals: locals, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_block_var: (Params params, (nil | Array[Ident]) locals) -> BlockVar - def on_block_var(params, locals) - index = - tokens.rindex do |node| - node.is_a?(Op) && %w[| ||].include?(node.value) && - node.location.start_char < params.location.start_char - end - - beginning = tokens[index] - ending = tokens[-1] - - BlockVar.new( - params: params, - locals: locals || [], - location: beginning.location.to(ending.location) - ) - end - - # BlockArg represents declaring a block parameter on a method definition. - # - # def method(&block); end - # - class BlockArg - # [Ident] the name of the block argument - attr_reader :name - - # [Location] the location of this node - attr_reader :location - - def initialize(name:, location:) - @name = name - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('blockarg') - q.breakable - q.pp(name) - end - end - - def to_json(*opts) - { type: :blockarg, name: name, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_blockarg: (Ident name) -> BlockArg - def on_blockarg(name) - operator = find_token(Op, '&') - - BlockArg.new(name: name, location: operator.location.to(name.location)) - end - - # bodystmt can't actually determine its bounds appropriately because it - # doesn't necessarily know where it started. So the parent node needs to - # report back down into this one where it goes. - class BodyStmt - # [Statements] the list of statements inside the begin clause - attr_reader :statements - - # [nil | Rescue] the optional rescue chain attached to the begin clause - attr_reader :rescue_clause - - # [nil | Statements] the optional set of statements inside the else clause - attr_reader :else_clause - - # [nil | Ensure] the optional ensure clause - attr_reader :ensure_clause - - # [Location] the location of this node - attr_reader :location - - def initialize( - statements:, - rescue_clause:, - else_clause:, - ensure_clause:, - location: - ) - @statements = statements - @rescue_clause = rescue_clause - @else_clause = else_clause - @ensure_clause = ensure_clause - @location = location - end - - def bind(start_char, end_char) - @location = - Location.new( - start_line: location.start_line, - start_char: start_char, - end_line: location.end_line, - end_char: end_char - ) - - parts = [rescue_clause, else_clause, ensure_clause] - - # Here we're going to determine the bounds for the statements - consequent = parts.compact.first - statements.bind( - start_char, - consequent ? consequent.location.start_char : end_char - ) - - # Next we're going to determine the rescue clause if there is one - if rescue_clause - consequent = parts.drop(1).compact.first - rescue_clause.bind_end( - consequent ? consequent.location.start_char : end_char - ) - end - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('bodystmt') - q.breakable - q.pp(statements) - - if rescue_clause - q.breakable - q.pp(rescue_clause) - end - - if else_clause - q.breakable - q.pp(else_clause) - end - - if ensure_clause - q.breakable - q.pp(ensure_clause) - end - end - end - - def to_json(*opts) - { - type: :bodystmt, - stmts: statements, - rsc: rescue_clause, - els: else_clause, - ens: ensure_clause, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_bodystmt: ( - # Statements statements, - # (nil | Rescue) rescue_clause, - # (nil | Statements) else_clause, - # (nil | Ensure) ensure_clause - # ) -> BodyStmt - def on_bodystmt(statements, rescue_clause, else_clause, ensure_clause) - BodyStmt.new( - statements: statements, - rescue_clause: rescue_clause, - else_clause: else_clause, - ensure_clause: ensure_clause, - location: Location.fixed(line: lineno, char: char_pos) - ) - end - - # BraceBlock represents passing a block to a method call using the { } - # operators. - # - # method { |variable| variable + 1 } - # - class BraceBlock - # [LBrace] the left brace that opens this block - attr_reader :lbrace - - # [nil | BlockVar] the optional set of parameters to the block - attr_reader :block_var - - # [Statements] the list of expressions to evaluate within the block - attr_reader :statements - - # [Location] the location of this node - attr_reader :location - - def initialize(lbrace:, block_var:, statements:, location:) - @lbrace = lbrace - @block_var = block_var - @statements = statements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('brace_block') - - if block_var - q.breakable - q.pp(block_var) - end - - q.breakable - q.pp(statements) - end - end - - def to_json(*opts) - { - type: :brace_block, - lbrace: lbrace, - block_var: block_var, - stmts: statements, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_brace_block: ( - # (nil | BlockVar) block_var, - # Statements statements - # ) -> BraceBlock - def on_brace_block(block_var, statements) - lbrace = find_token(LBrace) - rbrace = find_token(RBrace) - - statements.bind( - find_next_statement_start((block_var || lbrace).location.end_char), - rbrace.location.start_char - ) - - location = - Location.new( - start_line: lbrace.location.start_line, - start_char: lbrace.location.start_char, - end_line: [rbrace.location.end_line, statements.location.end_line].max, - end_char: rbrace.location.end_char - ) - - BraceBlock.new( - lbrace: lbrace, - block_var: block_var, - statements: statements, - location: location - ) - end - - # Break represents using the +break+ keyword. - # - # break - # - # It can also optionally accept arguments, as in: - # - # break 1 - # - class Break - # [Args | ArgsAddBlock] the arguments being sent to the keyword - attr_reader :arguments - - # [Location] the location of this node - attr_reader :location - - def initialize(arguments:, location:) - @arguments = arguments - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('break') - q.breakable - q.pp(arguments) - end - end - - def to_json(*opts) - { type: :break, args: arguments, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_break: ((Args | ArgsAddBlock) arguments) -> Break - def on_break(arguments) - keyword = find_token(Kw, 'break') - - location = keyword.location - location = location.to(arguments.location) unless arguments.is_a?(Args) - - Break.new(arguments: arguments, location: location) - end - - # Call represents a method call. This node doesn't contain the arguments being - # passed (if arguments are passed, this node will get nested under a - # MethodAddArg node). - # - # receiver.message - # - class Call - # [untyped] the receiver of the method call - attr_reader :receiver - - # [:"::" | Op | Period] the operator being used to send the message - attr_reader :operator - - # [:call | Backtick | Const | Ident | Op] the message being sent - attr_reader :message - - # [Location] the location of this node - attr_reader :location - - def initialize(receiver:, operator:, message:, location:) - @receiver = receiver - @operator = operator - @message = message - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('call') - q.breakable - q.pp(receiver) - q.breakable - q.pp(operator) - q.breakable - q.pp(message) - end - end - - def to_json(*opts) - { - type: :call, - receiver: receiver, - op: operator, - message: message, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_call: ( - # untyped receiver, - # (:"::" | Op | Period) operator, - # (:call | Backtick | Const | Ident | Op) message - # ) -> Call - def on_call(receiver, operator, message) - ending = message - ending = operator if message == :call - - Call.new( - receiver: receiver, - operator: operator, - message: message, - location: - Location.new( - start_line: receiver.location.start_line, - start_char: receiver.location.start_char, - end_line: [ending.location.end_line, receiver.location.end_line].max, - end_char: ending.location.end_char - ) - ) - end - - # Case represents the beginning of a case chain. - # - # case value - # when 1 - # "one" - # when 2 - # "two" - # else - # "number" - # end - # - class Case - # [nil | untyped] optional value being switched on - attr_reader :value - - # [In | When] the next clause in the chain - attr_reader :consequent - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, consequent:, location:) - @value = value - @consequent = consequent - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('case') - - if value - q.breakable - q.pp(value) - end - - q.breakable - q.pp(consequent) - end - end - - def to_json(*opts) - { type: :case, value: value, cons: consequent, loc: location }.to_json( - *opts - ) - end - end - - # RAssign represents a single-line pattern match. - # - # value in pattern - # value => pattern - # - class RAssign - # [untyped] the left-hand expression - attr_reader :value - - # [Kw | Op] the operator being used to match against the pattern, which is - # either => or in - attr_reader :operator - - # [untyped] the pattern on the right-hand side of the expression - attr_reader :pattern - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, operator:, pattern:, location:) - @value = value - @operator = operator - @pattern = pattern - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('rassign') - - q.breakable - q.pp(value) - - q.breakable - q.pp(operator) - - q.breakable - q.pp(pattern) - end - end - - def to_json(*opts) - { - type: :rassign, - value: value, - op: operator, - pattern: pattern, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_case: (untyped value, untyped consequent) -> Case | RAssign - def on_case(value, consequent) - if keyword = find_token(Kw, 'case', consume: false) - tokens.delete(keyword) - - Case.new( - value: value, - consequent: consequent, - location: keyword.location.to(consequent.location) - ) - else - operator = find_token(Kw, 'in', consume: false) || find_token(Op, '=>') - - RAssign.new( - value: value, - operator: operator, - pattern: consequent, - location: value.location.to(consequent.location) - ) - end - end - - # Class represents defining a class using the +class+ keyword. - # - # class Container - # end - # - # Classes can have path names as their class name in case it's being nested - # under a namespace, as in: - # - # class Namespace::Container - # end - # - # Classes can also be defined as a top-level path, in the case that it's - # already in a namespace but you want to define it at the top-level instead, - # as in: - # - # module OtherNamespace - # class ::Namespace::Container - # end - # end - # - # All of these declarations can also have an optional superclass reference, as - # in: - # - # class Child < Parent - # end - # - # That superclass can actually be any Ruby expression, it doesn't necessarily - # need to be a constant, as in: - # - # class Child < method - # end - # - class ClassDeclaration - # [ConstPathRef | ConstRef | TopConstRef] the name of the class being - # defined - attr_reader :constant - - # [nil | untyped] the optional superclass declaration - attr_reader :superclass - - # [BodyStmt] the expressions to execute within the context of the class - attr_reader :bodystmt - - # [Location] the location of this node - attr_reader :location - - def initialize(constant:, superclass:, bodystmt:, location:) - @constant = constant - @superclass = superclass - @bodystmt = bodystmt - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('class') - - q.breakable - q.pp(constant) - - if superclass - q.breakable - q.pp(superclass) - end - - q.breakable - q.pp(bodystmt) - end - end - - def to_json(*opts) - { - type: :class, - constant: constant, - superclass: superclass, - bodystmt: bodystmt, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_class: ( - # (ConstPathRef | ConstRef | TopConstRef) constant, - # untyped superclass, - # BodyStmt bodystmt - # ) -> ClassDeclaration - def on_class(constant, superclass, bodystmt) - beginning = find_token(Kw, 'class') - ending = find_token(Kw, 'end') - - bodystmt.bind( - find_next_statement_start((superclass || constant).location.end_char), - ending.location.start_char - ) - - ClassDeclaration.new( - constant: constant, - superclass: superclass, - bodystmt: bodystmt, - location: beginning.location.to(ending.location) - ) - end - - # Comma represents the use of the , operator. - class Comma - # [String] the comma in the string - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_comma: (String value) -> Comma - def on_comma(value) - node = - Comma.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # Command represents a method call with arguments and no parentheses. Note - # that Command nodes only happen when there is no explicit receiver for this - # method. - # - # method argument - # - class Command - # [Const | Ident] the message being sent to the implicit receiver - attr_reader :message - - # [Args | ArgsAddBlock] the arguments being sent with the message - attr_reader :arguments - - # [Location] the location of this node - attr_reader :location - - def initialize(message:, arguments:, location:) - @message = message - @arguments = arguments - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('command') - - q.breakable - q.pp(message) - - q.breakable - q.pp(arguments) - end - end - - def to_json(*opts) - { - type: :command, - message: message, - args: arguments, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_command: ( - # (Const | Ident) message, - # (Args | ArgsAddBlock) arguments - # ) -> Command - def on_command(message, arguments) - Command.new( - message: message, - arguments: arguments, - location: message.location.to(arguments.location) - ) - end - - # CommandCall represents a method call on an object with arguments and no - # parentheses. - # - # object.method argument - # - class CommandCall - # [untyped] the receiver of the message - attr_reader :receiver - - # [:"::" | Op | Period] the operator used to send the message - attr_reader :operator - - # [Const | Ident | Op] the message being send - attr_reader :message - - # [Args | ArgsAddBlock] the arguments going along with the message - attr_reader :arguments - - # [Location] the location of this node - attr_reader :location - - def initialize(receiver:, operator:, message:, arguments:, location:) - @receiver = receiver - @operator = operator - @message = message - @arguments = arguments - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('command_call') - - q.breakable - q.pp(receiver) - - q.breakable - q.pp(operator) - - q.breakable - q.pp(message) - - q.breakable - q.pp(arguments) - end - end - - def to_json(*opts) - { - type: :command_call, - receiver: receiver, - op: operator, - message: message, - args: arguments, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_command_call: ( - # untyped receiver, - # (:"::" | Op | Period) operator, - # (Const | Ident | Op) message, - # (Args | ArgsAddBlock) arguments - # ) -> CommandCall - def on_command_call(receiver, operator, message, arguments) - ending = arguments || message - - CommandCall.new( - receiver: receiver, - operator: operator, - message: message, - arguments: arguments, - location: receiver.location.to(ending.location) - ) - end - - # Comment represents a comment in the source. - # - # # comment - # - class Comment - # [String] the contents of the comment - attr_reader :value - - # [boolean] whether or not there is code on the same line as this comment. - # If there is, then inline will be true. - attr_reader :inline - alias inline? inline - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, inline:, location:) - @value = value - @inline = inline - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('comment') - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { - type: :comment, - value: value.force_encoding('UTF-8'), - inline: inline, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_comment: (String value) -> Comment - def on_comment(value) - line = lineno - comment = - Comment.new( - value: value[1..-1].chomp, - inline: value.strip != lines[line - 1], - location: - Location.token(line: line, char: char_pos, size: value.size - 1) - ) - - @comments << comment - comment - end - - # Const represents a literal value that _looks_ like a constant. This could - # actually be a reference to a constant: - # - # Constant - # - # It could also be something that looks like a constant in another context, as - # in a method call to a capitalized method: - # - # object.Constant - # - # or a symbol that starts with a capital letter: - # - # :Constant - # - class Const - # [String] the name of the constant - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('const') - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :const, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_const: (String value) -> Const - def on_const(value) - node = - Const.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # ConstPathField represents the child node of some kind of assignment. It - # represents when you're assigning to a constant that is being referenced as - # a child of another variable. - # - # object::Const = value - # - class ConstPathField - # [untyped] the source of the constant - attr_reader :parent - - # [Const] the constant itself - attr_reader :constant - - # [Location] the location of this node - attr_reader :location - - def initialize(parent:, constant:, location:) - @parent = parent - @constant = constant - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('const_path_field') - - q.breakable - q.pp(parent) - - q.breakable - q.pp(constant) - end - end - - def to_json(*opts) - { - type: :const_path_field, - parent: parent, - constant: constant, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_const_path_field: (untyped parent, Const constant) -> ConstPathField - def on_const_path_field(parent, constant) - ConstPathField.new( - parent: parent, - constant: constant, - location: parent.location.to(constant.location) - ) - end - - # ConstPathRef represents referencing a constant by a path. - # - # object::Const - # - class ConstPathRef - # [untyped] the source of the constant - attr_reader :parent - - # [Const] the constant itself - attr_reader :constant - - # [Location] the location of this node - attr_reader :location - - def initialize(parent:, constant:, location:) - @parent = parent - @constant = constant - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('const_path_ref') - - q.breakable - q.pp(parent) - - q.breakable - q.pp(constant) - end - end - - def to_json(*opts) - { - type: :const_path_ref, - parent: parent, - constant: constant, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_const_path_ref: (untyped parent, Const constant) -> ConstPathRef - def on_const_path_ref(parent, constant) - ConstPathRef.new( - parent: parent, - constant: constant, - location: parent.location.to(constant.location) - ) - end - - # ConstRef represents the name of the constant being used in a class or module - # declaration. - # - # class Container - # end - # - class ConstRef - # [Const] the constant itself - attr_reader :constant - - # [Location] the location of this node - attr_reader :location - - def initialize(constant:, location:) - @constant = constant - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('const_ref') - - q.breakable - q.pp(constant) - end - end - - def to_json(*opts) - { type: :const_ref, constant: constant, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_const_ref: (Const constant) -> ConstRef - def on_const_ref(constant) - ConstRef.new(constant: constant, location: constant.location) - end - - # CVar represents the use of a class variable. - # - # @@variable - # - class CVar - # [String] the name of the class variable - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('cvar') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :cvar, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_cvar: (String value) -> CVar - def on_cvar(value) - node = - CVar.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # Def represents defining a regular method on the current self object. - # - # def method(param) result end - # - class Def - # [Backtick | Const | Ident | Kw | Op] the name of the method - attr_reader :name - - # [Params | Paren] the parameter declaration for the method - attr_reader :params - - # [BodyStmt] the expressions to be executed by the method - attr_reader :bodystmt - - # [Location] the location of this node - attr_reader :location - - def initialize(name:, params:, bodystmt:, location:) - @name = name - @params = params - @bodystmt = bodystmt - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('def') - - q.breakable - q.pp(name) - - q.breakable - q.pp(params) - - q.breakable - q.pp(bodystmt) - end - end - - def to_json(*opts) - { - type: :def, - name: name, - params: params, - bodystmt: bodystmt, - loc: location - }.to_json(*opts) - end - end - - # DefEndless represents defining a single-line method since Ruby 3.0+. - # - # def method = result - # - class DefEndless - # [Backtick | Const | Ident | Kw | Op] the name of the method - attr_reader :name - - # [Paren] the parameter declaration for the method - attr_reader :paren - - # [untyped] the expression to be executed by the method - attr_reader :statement - - # [Location] the location of this node - attr_reader :location - - def initialize(name:, paren:, statement:, location:) - @name = name - @paren = paren - @statement = statement - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('def_endless') - - q.breakable - q.pp(name) - - q.breakable - q.pp(paren) - - q.breakable - q.pp(statement) - end - end - - def to_json(*opts) - { - type: :def_endless, - name: name, - paren: paren, - stmt: statement, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_def: ( - # (Backtick | Const | Ident | Kw | Op) name, - # (Params | Paren) params, - # untyped bodystmt - # ) -> Def | DefEndless - def on_def(name, params, bodystmt) - # Make sure to delete this token in case you're defining something like def - # class which would lead to this being a kw and causing all kinds of trouble - tokens.delete(name) - - # Find the beginning of the method definition, which works for single-line - # and normal method definitions. - beginning = find_token(Kw, 'def') - - # If we don't have a bodystmt node, then we have a single-line method - unless bodystmt.is_a?(BodyStmt) - node = - DefEndless.new( - name: name, - paren: params, - statement: bodystmt, - location: beginning.location.to(bodystmt.location) - ) - - return node - end - - # If there aren't any params then we need to correct the params node - # location information - if params.is_a?(Params) && params.empty? - end_char = name.location.end_char - location = - Location.new( - start_line: params.location.start_line, - start_char: end_char, - end_line: params.location.end_line, - end_char: end_char - ) - - params = Params.new(location: location) - end - - ending = find_token(Kw, 'end') - bodystmt.bind( - find_next_statement_start(params.location.end_char), - ending.location.start_char - ) - - Def.new( - name: name, - params: params, - bodystmt: bodystmt, - location: beginning.location.to(ending.location) - ) - end - - # Defined represents the use of the +defined?+ operator. It can be used with - # and without parentheses. - # - # defined?(variable) - # - class Defined - # [untyped] the value being sent to the keyword - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('defined') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :defined, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_defined: (untyped value) -> Defined - def on_defined(value) - beginning = find_token(Kw, 'defined?') - ending = value - - range = beginning.location.end_char...value.location.start_char - if source[range].include?('(') - find_token(LParen) - ending = find_token(RParen) - end - - Defined.new(value: value, location: beginning.location.to(ending.location)) - end - - # Defs represents defining a singleton method on an object. - # - # def object.method(param) result end - # - class Defs - # [untyped] the target where the method is being defined - attr_reader :target - - # [Op | Period] the operator being used to declare the method - attr_reader :operator - - # [Backtick | Const | Ident | Kw | Op] the name of the method - attr_reader :name - - # [Params | Paren] the parameter declaration for the method - attr_reader :params - - # [BodyStmt] the expressions to be executed by the method - attr_reader :bodystmt - - # [Location] the location of this node - attr_reader :location - - def initialize(target:, operator:, name:, params:, bodystmt:, location:) - @target = target - @operator = operator - @name = name - @params = params - @bodystmt = bodystmt - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('defs') - - q.breakable - q.pp(target) - - q.breakable - q.pp(operator) - - q.breakable - q.pp(name) - - q.breakable - q.pp(params) - - q.breakable - q.pp(bodystmt) - end - end - - def to_json(*opts) - { - type: :defs, - target: target, - op: operator, - name: name, - params: params, - bodystmt: bodystmt, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_defs: ( - # untyped target, - # (Op | Period) operator, - # (Backtick | Const | Ident | Kw | Op) name, - # (Params | Paren) params, - # BodyStmt bodystmt - # ) -> Defs - def on_defs(target, operator, name, params, bodystmt) - # Make sure to delete this token in case you're defining something - # like def class which would lead to this being a kw and causing all kinds - # of trouble - tokens.delete(name) - - # If there aren't any params then we need to correct the params node - # location information - if params.is_a?(Params) && params.empty? - end_char = name.location.end_char - location = - Location.new( - start_line: params.location.start_line, - start_char: end_char, - end_line: params.location.end_line, - end_char: end_char - ) - - params = Params.new(location: location) - end - - beginning = find_token(Kw, 'def') - ending = find_token(Kw, 'end') - - bodystmt.bind( - find_next_statement_start(params.location.end_char), - ending.location.start_char - ) - - Defs.new( - target: target, - operator: operator, - name: name, - params: params, - bodystmt: bodystmt, - location: beginning.location.to(ending.location) - ) - end - - # DoBlock represents passing a block to a method call using the +do+ and +end+ - # keywords. - # - # method do |value| - # end - # - class DoBlock - # [Kw] the do keyword that opens this block - attr_reader :keyword - - # [nil | BlockVar] the optional variable declaration within this block - attr_reader :block_var - - # [BodyStmt] the expressions to be executed within this block - attr_reader :bodystmt - - # [Location] the location of this node - attr_reader :location - - def initialize(keyword:, block_var:, bodystmt:, location:) - @keyword = keyword - @block_var = block_var - @bodystmt = bodystmt - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('do_block') - - if block_var - q.breakable - q.pp(block_var) - end - - q.breakable - q.pp(bodystmt) - end - end - - def to_json(*opts) - { - type: :do_block, - keyword: keyword, - block_var: block_var, - bodystmt: bodystmt, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_do_block: (BlockVar block_var, BodyStmt bodystmt) -> DoBlock - def on_do_block(block_var, bodystmt) - beginning = find_token(Kw, 'do') - ending = find_token(Kw, 'end') - - bodystmt.bind( - find_next_statement_start((block_var || beginning).location.end_char), - ending.location.start_char - ) - - DoBlock.new( - keyword: beginning, - block_var: block_var, - bodystmt: bodystmt, - location: beginning.location.to(ending.location) - ) - end - - # Dot2 represents using the .. operator between two expressions. Usually this - # is to create a range object. - # - # 1..2 - # - # Sometimes this operator is used to create a flip-flop. - # - # if value == 5 .. value == 10 - # end - # - # One of the sides of the expression may be nil, but not both. - class Dot2 - # [nil | untyped] the left side of the expression - attr_reader :left - - # [nil | untyped] the right side of the expression - attr_reader :right - - # [Location] the location of this node - attr_reader :location - - def initialize(left:, right:, location:) - @left = left - @right = right - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('dot2') - - if left - q.breakable - q.pp(left) - end - - if right - q.breakable - q.pp(right) - end - end - end - - def to_json(*opts) - { type: :dot2, left: left, right: right, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_dot2: ((nil | untyped) left, (nil | untyped) right) -> Dot2 - def on_dot2(left, right) - operator = find_token(Op, '..') - - beginning = left || operator - ending = right || operator - - Dot2.new( - left: left, - right: right, - location: beginning.location.to(ending.location) - ) - end - - # Dot3 represents using the ... operator between two expressions. Usually this - # is to create a range object. It's effectively the same event as the Dot2 - # node but with this operator you're asking Ruby to omit the final value. - # - # 1...2 - # - # Like Dot2 it can also be used to create a flip-flop. - # - # if value == 5 ... value == 10 - # end - # - # One of the sides of the expression may be nil, but not both. - class Dot3 - # [nil | untyped] the left side of the expression - attr_reader :left - - # [nil | untyped] the right side of the expression - attr_reader :right - - # [Location] the location of this node - attr_reader :location - - def initialize(left:, right:, location:) - @left = left - @right = right - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('dot3') - - if left - q.breakable - q.pp(left) - end - - if right - q.breakable - q.pp(right) - end - end - end - - def to_json(*opts) - { type: :dot3, left: left, right: right, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_dot3: ((nil | untyped) left, (nil | untyped) right) -> Dot3 - def on_dot3(left, right) - operator = find_token(Op, '...') - - beginning = left || operator - ending = right || operator - - Dot3.new( - left: left, - right: right, - location: beginning.location.to(ending.location) - ) - end - - # DynaSymbol represents a symbol literal that uses quotes to dynamically - # define its value. - # - # :"#{variable}" - # - # They can also be used as a special kind of dynamic hash key, as in: - # - # { "#{key}": value } - # - class DynaSymbol - # [Array[ StringDVar | StringEmbExpr | TStringContent ]] the parts of the - # dynamic symbol - attr_reader :parts - - # [String] the quote used to delimit the dynamic symbol - attr_reader :quote - - # [Location] the location of this node - attr_reader :location - - def initialize(parts:, quote:, location:) - @parts = parts - @quote = quote - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('dyna_symbol') - - q.breakable - q.group(2, '(', ')') { q.seplist(parts) { |part| q.pp(part) } } - end - end - - def to_json(*opts) - { type: :dyna_symbol, parts: parts, quote: quote, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_dyna_symbol: (StringContent string_content) -> DynaSymbol - def on_dyna_symbol(string_content) - if find_token(SymBeg, consume: false) - # A normal dynamic symbol - symbeg = find_token(SymBeg) - tstring_end = find_token(TStringEnd) - - DynaSymbol.new( - quote: symbeg.value, - parts: string_content.parts, - location: symbeg.location.to(tstring_end.location) - ) - else - # A dynamic symbol as a hash key - tstring_beg = find_token(TStringBeg) - label_end = find_token(LabelEnd) - - DynaSymbol.new( - parts: string_content.parts, - quote: label_end.value[0], - location: tstring_beg.location.to(label_end.location) - ) - end - end - - # Else represents the end of an +if+, +unless+, or +case+ chain. - # - # if variable - # else - # end - # - class Else - # [Statements] the expressions to be executed - attr_reader :statements - - # [Location] the location of this node - attr_reader :location - - def initialize(statements:, location:) - @statements = statements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('else') - - q.breakable - q.pp(statements) - end - end - - def to_json(*opts) - { type: :else, stmts: statements, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_else: (Statements statements) -> Else - def on_else(statements) - beginning = find_token(Kw, 'else') - - # else can either end with an end keyword (in which case we'll want to - # consume that event) or it can end with an ensure keyword (in which case - # we'll leave that to the ensure to handle). - index = - tokens.rindex do |token| - token.is_a?(Kw) && %w[end ensure].include?(token.value) - end - - node = tokens[index] - ending = node.value == 'end' ? tokens.delete_at(index) : node - - statements.bind(beginning.location.end_char, ending.location.start_char) - - Else.new( - statements: statements, - location: beginning.location.to(ending.location) - ) - end - - # Elsif represents another clause in an +if+ or +unless+ chain. - # - # if variable - # elsif other_variable - # end - # - class Elsif - # [untyped] the expression to be checked - attr_reader :predicate - - # [Statements] the expressions to be executed - attr_reader :statements - - # [nil | Elsif | Else] the next clause in the chain - attr_reader :consequent - - # [Location] the location of this node - attr_reader :location - - def initialize(predicate:, statements:, consequent:, location:) - @predicate = predicate - @statements = statements - @consequent = consequent - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('elsif') - - q.breakable - q.pp(predicate) - - q.breakable - q.pp(statements) - - if consequent - q.breakable - q.pp(consequent) - end - end - end - - def to_json(*opts) - { - type: :elsif, - pred: predicate, - stmts: statements, - cons: consequent, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_elsif: ( - # untyped predicate, - # Statements statements, - # (nil | Elsif | Else) consequent - # ) -> Elsif - def on_elsif(predicate, statements, consequent) - beginning = find_token(Kw, 'elsif') - ending = consequent || find_token(Kw, 'end') - - statements.bind(predicate.location.end_char, ending.location.start_char) - - Elsif.new( - predicate: predicate, - statements: statements, - consequent: consequent, - location: beginning.location.to(ending.location) - ) - end - - # EmbDoc represents a multi-line comment. - # - # =begin - # first line - # second line - # =end - # - class EmbDoc - # [String] the contents of the comment - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def inline? - false - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('embdoc') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :embdoc, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_embdoc: (String value) -> EmbDoc - def on_embdoc(value) - @embdoc.value << value - @embdoc - end - - # :call-seq: - # on_embdoc_beg: (String value) -> EmbDoc - def on_embdoc_beg(value) - @embdoc = - EmbDoc.new( - value: value, - location: Location.fixed(line: lineno, char: char_pos) - ) - end - - # :call-seq: - # on_embdoc_end: (String value) -> EmbDoc - def on_embdoc_end(value) - location = @embdoc.location - embdoc = - EmbDoc.new( - value: @embdoc.value << value.chomp, - location: - Location.new( - start_line: location.start_line, - start_char: location.start_char, - end_line: lineno, - end_char: char_pos + value.length - 1 - ) - ) - - @comments << embdoc - @embdoc = nil - - embdoc - end - - # EmbExprBeg represents the beginning token for using interpolation inside of - # a parent node that accepts string content (like a string or regular - # expression). - # - # "Hello, #{person}!" - # - class EmbExprBeg - # [String] the #{ used in the string - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_embexpr_beg: (String value) -> EmbExprBeg - def on_embexpr_beg(value) - node = - EmbExprBeg.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # EmbExprEnd represents the ending token for using interpolation inside of a - # parent node that accepts string content (like a string or regular - # expression). - # - # "Hello, #{person}!" - # - class EmbExprEnd - # [String] the } used in the string - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_embexpr_end: (String value) -> EmbExprEnd - def on_embexpr_end(value) - node = - EmbExprEnd.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # EmbVar represents the use of shorthand interpolation for an instance, class, - # or global variable into a parent node that accepts string content (like a - # string or regular expression). - # - # "#@variable" - # - # In the example above, an EmbVar node represents the # because it forces - # @variable to be interpolated. - class EmbVar - # [String] the # used in the string - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_embvar: (String value) -> EmbVar - def on_embvar(value) - node = - EmbVar.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # Ensure represents the use of the +ensure+ keyword and its subsequent - # statements. - # - # begin - # ensure - # end - # - class Ensure - # [Kw] the ensure keyword that began this node - attr_reader :keyword - - # [Statements] the expressions to be executed - attr_reader :statements - - # [Location] the location of this node - attr_reader :location - - def initialize(keyword:, statements:, location:) - @keyword = keyword - @statements = statements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('ensure') - - q.breakable - q.pp(statements) - end - end - - def to_json(*opts) - { - type: :ensure, - keyword: keyword, - stmts: statements, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_ensure: (Statements statements) -> Ensure - def on_ensure(statements) - keyword = find_token(Kw, 'ensure') - - # We don't want to consume the :@kw event, because that would break - # def..ensure..end chains. - ending = find_token(Kw, 'end', consume: false) - statements.bind( - find_next_statement_start(keyword.location.end_char), - ending.location.start_char - ) - - Ensure.new( - keyword: keyword, - statements: statements, - location: keyword.location.to(ending.location) - ) - end - - # ExcessedComma represents a trailing comma in a list of block parameters. It - # changes the block parameters such that they will destructure. - # - # [[1, 2, 3], [2, 3, 4]].each do |first, second,| - # end - # - # In the above example, an ExcessedComma node would appear in the third - # position of the Params node that is used to declare that block. The third - # position typically represents a rest-type parameter, but in this case is - # used to indicate that a trailing comma was used. - class ExcessedComma - # [String] the comma - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('excessed_comma') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :excessed_comma, value: value, loc: location }.to_json(*opts) - end - end - - # The handler for this event accepts no parameters (though in previous - # versions of Ruby it accepted a string literal with a value of ","). - # - # :call-seq: - # on_excessed_comma: () -> ExcessedComma - def on_excessed_comma(*) - comma = find_token(Comma) - - ExcessedComma.new(value: comma.value, location: comma.location) - end - - # FCall represents the piece of a method call that comes before any arguments - # (i.e., just the name of the method). It is used in places where the parser - # is sure that it is a method call and not potentially a local variable. - # - # method(argument) - # - # In the above example, it's referring to the +method+ segment. - class FCall - # [Const | Ident] the name of the method - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('fcall') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :fcall, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_fcall: ((Const | Ident) value) -> FCall - def on_fcall(value) - FCall.new(value: value, location: value.location) - end - - # Field is always the child of an assignment. It represents assigning to a - # “field” on an object. - # - # object.variable = value - # - class Field - # [untyped] the parent object that owns the field being assigned - attr_reader :parent - - # [:"::" | Op | Period] the operator being used for the assignment - attr_reader :operator - - # [Const | Ident] the name of the field being assigned - attr_reader :name - - # [Location] the location of this node - attr_reader :location - - def initialize(parent:, operator:, name:, location:) - @parent = parent - @operator = operator - @name = name - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('field') - - q.breakable - q.pp(parent) - - q.breakable - q.pp(operator) - - q.breakable - q.pp(name) - end - end - - def to_json(*opts) - { - type: :field, - parent: parent, - op: operator, - name: name, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_field: ( - # untyped parent, - # (:"::" | Op | Period) operator - # (Const | Ident) name - # ) -> Field - def on_field(parent, operator, name) - Field.new( - parent: parent, - operator: operator, - name: name, - location: parent.location.to(name.location) - ) - end - - # FloatLiteral represents a floating point number literal. - # - # 1.0 - # - class FloatLiteral - # [String] the value of the floating point number literal - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('float') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :float, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_float: (String value) -> FloatLiteral - def on_float(value) - node = - FloatLiteral.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # FndPtn represents matching against a pattern where you find a pattern in an - # array using the Ruby 3.0+ pattern matching syntax. - # - # case value - # in [*, 7, *] - # end - # - class FndPtn - # [nil | untyped] the optional constant wrapper - attr_reader :constant - - # [VarField] the splat on the left-hand side - attr_reader :left - - # [Array[ untyped ]] the list of positional expressions in the pattern that - # are being matched - attr_reader :values - - # [VarField] the splat on the right-hand side - attr_reader :right - - # [Location] the location of this node - attr_reader :location - - def initialize(constant:, left:, values:, right:, location:) - @constant = constant - @left = left - @values = values - @right = right - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('fndptn') - - if constant - q.breakable - q.pp(constant) - end - - q.breakable - q.pp(left) - - q.breakable - q.group(2, '(', ')') { q.seplist(values) { |value| q.pp(value) } } - - q.breakable - q.pp(right) - end - end - - def to_json(*opts) - { - type: :fndptn, - constant: constant, - left: left, - values: values, - right: right, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_fndptn: ( - # (nil | untyped) constant, - # VarField left, - # Array[untyped] values, - # VarField right - # ) -> FndPtn - def on_fndptn(constant, left, values, right) - beginning = constant || find_token(LBracket) - ending = find_token(RBracket) - - FndPtn.new( - constant: constant, - left: left, - values: values, - right: right, - location: beginning.location.to(ending.location) - ) - end - - # For represents using a +for+ loop. - # - # for value in list do - # end - # - class For - # [MLHS | VarField] the variable declaration being used to - # pull values out of the object being enumerated - attr_reader :index - - # [untyped] the object being enumerated in the loop - attr_reader :collection - - # [Statements] the statements to be executed - attr_reader :statements - - # [Location] the location of this node - attr_reader :location - - def initialize(index:, collection:, statements:, location:) - @index = index - @collection = collection - @statements = statements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('for') - - q.breakable - q.pp(index) - - q.breakable - q.pp(collection) - - q.breakable - q.pp(statements) - end - end - - def to_json(*opts) - { - type: :for, - index: index, - collection: collection, - stmts: statements, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_for: ( - # (MLHS | VarField) value, - # untyped collection, - # Statements statements - # ) -> For - def on_for(index, collection, statements) - beginning = find_token(Kw, 'for') - ending = find_token(Kw, 'end') - - # Consume the do keyword if it exists so that it doesn't get confused for - # some other block - keyword = find_token(Kw, 'do', consume: false) - if keyword && keyword.location.start_char > collection.location.end_char && - keyword.location.end_char < ending.location.start_char - tokens.delete(keyword) - end - - statements.bind( - (keyword || collection).location.end_char, - ending.location.start_char - ) - - For.new( - index: index, - collection: collection, - statements: statements, - location: beginning.location.to(ending.location) - ) - end - - # GVar represents a global variable literal. - # - # $variable - # - class GVar - # [String] the name of the global variable - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('gvar') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :gvar, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_gvar: (String value) -> GVar - def on_gvar(value) - node = - GVar.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # HashLiteral represents a hash literal. - # - # { key => value } - # - class HashLiteral - # [nil | AssocListFromArgs] the contents of the hash - attr_reader :contents - - # [Location] the location of this node - attr_reader :location - - def initialize(contents:, location:) - @contents = contents - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('hash') - - q.breakable - q.pp(contents) - end - end - - def to_json(*opts) - { type: :hash, cnts: contents, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_hash: ((nil | AssocListFromArgs) contents) -> HashLiteral - def on_hash(contents) - lbrace = find_token(LBrace) - rbrace = find_token(RBrace) - - if contents - # Here we're going to expand out the location information for the contents - # node so that it can grab up any remaining comments inside the hash. - location = - Location.new( - start_line: contents.location.start_line, - start_char: lbrace.location.end_char, - end_line: contents.location.end_line, - end_char: rbrace.location.start_char - ) - - contents = contents.class.new(assocs: contents.assocs, location: location) - end - - HashLiteral.new( - contents: contents, - location: lbrace.location.to(rbrace.location) - ) - end - - # Heredoc represents a heredoc string literal. - # - # <<~DOC - # contents - # DOC - # - class Heredoc - # [HeredocBeg] the opening of the heredoc - attr_reader :beginning - - # [String] the ending of the heredoc - attr_reader :ending - - # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the - # heredoc string literal - attr_reader :parts - - # [Location] the location of this node - attr_reader :location - - def initialize(beginning:, ending: nil, parts: [], location:) - @beginning = beginning - @ending = ending - @parts = parts - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('heredoc') - - q.breakable - q.group(2, '(', ')') { q.seplist(parts) { |part| q.pp(part) } } - end - end - - def to_json(*opts) - { - type: :heredoc, - beging: beginning, - ending: ending, - parts: parts, - loc: location - }.to_json(*opts) - end - end - - # HeredocBeg represents the beginning declaration of a heredoc. - # - # <<~DOC - # contents - # DOC - # - # In the example above the HeredocBeg node represents <<~DOC. - class HeredocBeg - # [String] the opening declaration of the heredoc - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('heredoc_beg') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :heredoc_beg, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_heredoc_beg: (String value) -> HeredocBeg - def on_heredoc_beg(value) - location = - Location.token(line: lineno, char: char_pos, size: value.size + 1) - - # Here we're going to artificially create an extra node type so that if - # there are comments after the declaration of a heredoc, they get printed. - beginning = HeredocBeg.new(value: value, location: location) - @heredocs << Heredoc.new(beginning: beginning, location: location) - - beginning - end - - # :call-seq: - # on_heredoc_dedent: (StringContent string, Integer width) -> Heredoc - def on_heredoc_dedent(string, width) - heredoc = @heredocs[-1] - - @heredocs[-1] = - Heredoc.new( - beginning: heredoc.beginning, - ending: heredoc.ending, - parts: string.parts, - location: heredoc.location - ) - end - - # :call-seq: - # on_heredoc_end: (String value) -> Heredoc - def on_heredoc_end(value) - heredoc = @heredocs[-1] - - @heredocs[-1] = - Heredoc.new( - beginning: heredoc.beginning, - ending: value.chomp, - parts: heredoc.parts, - location: - Location.new( - start_line: heredoc.location.start_line, - start_char: heredoc.location.start_char, - end_line: lineno, - end_char: char_pos - ) - ) - end - - # HshPtn represents matching against a hash pattern using the Ruby 2.7+ - # pattern matching syntax. - # - # case value - # in { key: } - # end - # - class HshPtn - # [nil | untyped] the optional constant wrapper - attr_reader :constant - - # [Array[ [Label, untyped] ]] the set of tuples representing the keywords - # that should be matched against in the pattern - attr_reader :keywords - - # [nil | VarField] an optional parameter to gather up all remaining keywords - attr_reader :keyword_rest - - # [Location] the location of this node - attr_reader :location - - def initialize(constant:, keywords:, keyword_rest:, location:) - @constant = constant - @keywords = keywords - @keyword_rest = keyword_rest - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('hshptn') - - if constant - q.breakable - q.pp(constant) - end - - if keywords.any? - q.breakable - q.group(2, '(', ')') do - q.seplist(keywords) { |keyword| q.pp(keyword) } - end - end - - if keyword_rest - q.breakable - q.pp(keyword_rest) - end - end - end - - def to_json(*opts) - { - type: :hshptn, - constant: constant, - keywords: keywords, - kwrest: keyword_rest, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_hshptn: ( - # (nil | untyped) constant, - # Array[[Label, untyped]] keywords, - # (nil | VarField) keyword_rest - # ) -> HshPtn - def on_hshptn(constant, keywords, keyword_rest) - parts = [constant, keywords, keyword_rest].flatten(2).compact - - HshPtn.new( - constant: constant, - keywords: keywords, - keyword_rest: keyword_rest, - location: parts[0].location.to(parts[-1].location) - ) - end - - # Ident represents an identifier anywhere in code. It can represent a very - # large number of things, depending on where it is in the syntax tree. - # - # value - # - class Ident - # [String] the value of the identifier - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('ident') - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { - type: :ident, - value: value.force_encoding('UTF-8'), - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_ident: (String value) -> Ident - def on_ident(value) - node = - Ident.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # If represents the first clause in an +if+ chain. - # - # if predicate - # end - # - class If - # [untyped] the expression to be checked - attr_reader :predicate - - # [Statements] the expressions to be executed - attr_reader :statements - - # [nil, Elsif, Else] the next clause in the chain - attr_reader :consequent - - # [Location] the location of this node - attr_reader :location - - def initialize(predicate:, statements:, consequent:, location:) - @predicate = predicate - @statements = statements - @consequent = consequent - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('if') - - q.breakable - q.pp(predicate) - - q.breakable - q.pp(statements) - - if consequent - q.breakable - q.pp(consequent) - end - end - end - - def to_json(*opts) - { - type: :if, - pred: predicate, - stmts: statements, - cons: consequent, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_if: ( - # untyped predicate, - # Statements statements, - # (nil | Elsif | Else) consequent - # ) -> If - def on_if(predicate, statements, consequent) - beginning = find_token(Kw, 'if') - ending = consequent || find_token(Kw, 'end') - - statements.bind(predicate.location.end_char, ending.location.start_char) - - If.new( - predicate: predicate, - statements: statements, - consequent: consequent, - location: beginning.location.to(ending.location) - ) - end - - # IfOp represents a ternary clause. - # - # predicate ? truthy : falsy - # - class IfOp - # [untyped] the expression to be checked - attr_reader :predicate - - # [untyped] the expression to be executed if the predicate is truthy - attr_reader :truthy - - # [untyped] the expression to be executed if the predicate is falsy - attr_reader :falsy - - # [Location] the location of this node - attr_reader :location - - def initialize(predicate:, truthy:, falsy:, location:) - @predicate = predicate - @truthy = truthy - @falsy = falsy - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('ifop') - - q.breakable - q.pp(predicate) - - q.breakable - q.pp(truthy) - - q.breakable - q.pp(falsy) - end - end - - def to_json(*opts) - { - type: :ifop, - pred: predicate, - tthy: truthy, - flsy: falsy, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_ifop: (untyped predicate, untyped truthy, untyped falsy) -> IfOp - def on_ifop(predicate, truthy, falsy) - IfOp.new( - predicate: predicate, - truthy: truthy, - falsy: falsy, - location: predicate.location.to(falsy.location) - ) - end - - # IfMod represents the modifier form of an +if+ statement. - # - # expression if predicate - # - class IfMod - # [untyped] the expression to be executed - attr_reader :statement - - # [untyped] the expression to be checked - attr_reader :predicate - - # [Location] the location of this node - attr_reader :location - - def initialize(statement:, predicate:, location:) - @statement = statement - @predicate = predicate - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('if_mod') - - q.breakable - q.pp(statement) - - q.breakable - q.pp(predicate) - end - end - - def to_json(*opts) - { - type: :if_mod, - stmt: statement, - pred: predicate, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_if_mod: (untyped predicate, untyped statement) -> IfMod - def on_if_mod(predicate, statement) - find_token(Kw, 'if') - - IfMod.new( - statement: statement, - predicate: predicate, - location: statement.location.to(predicate.location) - ) - end - - # def on_ignored_nl(value) - # value - # end - - # def on_ignored_sp(value) - # value - # end - - # Imaginary represents an imaginary number literal. - # - # 1i - # - class Imaginary - # [String] the value of the imaginary number literal - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('imaginary') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :imaginary, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_imaginary: (String value) -> Imaginary - def on_imaginary(value) - node = - Imaginary.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # In represents using the +in+ keyword within the Ruby 2.7+ pattern matching - # syntax. - # - # case value - # in pattern - # end - # - class In - # [untyped] the pattern to check against - attr_reader :pattern - - # [Statements] the expressions to execute if the pattern matched - attr_reader :statements - - # [nil | In | Else] the next clause in the chain - attr_reader :consequent - - # [Location] the location of this node - attr_reader :location - - def initialize(pattern:, statements:, consequent:, location:) - @pattern = pattern - @statements = statements - @consequent = consequent - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('in') - - q.breakable - q.pp(pattern) - - q.breakable - q.pp(statements) - - if consequent - q.breakable - q.pp(consequent) - end - end - end - - def to_json(*opts) - { - type: :in, - pattern: pattern, - stmts: statements, - cons: consequent, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_in: (RAssign pattern, nil statements, nil consequent) -> RAssign - # | ( - # untyped pattern, - # Statements statements, - # (nil | In | Else) consequent - # ) -> In - def on_in(pattern, statements, consequent) - # Here we have a rightward assignment - return pattern unless statements - - beginning = find_token(Kw, 'in') - ending = consequent || find_token(Kw, 'end') - - statements.bind(beginning.location.end_char, ending.location.start_char) - - In.new( - pattern: pattern, - statements: statements, - consequent: consequent, - location: beginning.location.to(ending.location) - ) - end - - # Int represents an integer number literal. - # - # 1 - # - class Int - # [String] the value of the integer - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('int') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :int, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_int: (String value) -> Int - def on_int(value) - node = - Int.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # IVar represents an instance variable literal. - # - # @variable - # - class IVar - # [String] the name of the instance variable - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('ivar') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :ivar, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_ivar: (String value) -> IVar - def on_ivar(value) - node = - IVar.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # Kw represents the use of a keyword. It can be almost anywhere in the syntax - # tree, so you end up seeing it quite a lot. - # - # if value - # end - # - # In the above example, there would be two Kw nodes: one for the if and one - # for the end. Note that anything that matches the list of keywords in Ruby - # will use a Kw, so if you use a keyword in a symbol literal for instance: - # - # :if - # - # then the contents of the symbol node will contain a Kw node. - class Kw - # [String] the value of the keyword - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('kw') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :kw, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_kw: (String value) -> Kw - def on_kw(value) - node = - Kw.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # KwRestParam represents defining a parameter in a method definition that - # accepts all remaining keyword parameters. - # - # def method(**kwargs) end - # - class KwRestParam - # [nil | Ident] the name of the parameter - attr_reader :name - - # [Location] the location of this node - attr_reader :location - - def initialize(name:, location:) - @name = name - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('kwrest_param') - - q.breakable - q.pp(name) - end - end - - def to_json(*opts) - { type: :kwrest_param, name: name, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_kwrest_param: ((nil | Ident) name) -> KwRestParam - def on_kwrest_param(name) - location = find_token(Op, '**').location - location = location.to(name.location) if name - - KwRestParam.new(name: name, location: location) - end - - # Label represents the use of an identifier to associate with an object. You - # can find it in a hash key, as in: - # - # { key: value } - # - # In this case "key:" would be the body of the label. You can also find it in - # pattern matching, as in: - # - # case value - # in key: - # end - # - # In this case "key:" would be the body of the label. - class Label - # [String] the value of the label - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('label') - - q.breakable - q.text(':') - q.text(value[0...-1]) - end - end - - def to_json(*opts) - { type: :label, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_label: (String value) -> Label - def on_label(value) - node = - Label.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # LabelEnd represents the end of a dynamic symbol. - # - # { "key": value } - # - # In the example above, LabelEnd represents the "\":" token at the end of the - # hash key. This node is important for determining the type of quote being - # used by the label. - class LabelEnd - # [String] the end of the label - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_label_end: (String value) -> LabelEnd - def on_label_end(value) - node = - LabelEnd.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # Lambda represents using a lambda literal (not the lambda method call). - # - # ->(value) { value * 2 } - # - class Lambda - # [Params | Paren] the parameter declaration for this lambda - attr_reader :params - - # [BodyStmt | Statements] the expressions to be executed in this lambda - attr_reader :statements - - # [Location] the location of this node - attr_reader :location - - def initialize(params:, statements:, location:) - @params = params - @statements = statements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('lambda') - - q.breakable - q.pp(params) - - q.breakable - q.pp(statements) - end - end - - def to_json(*opts) - { - type: :lambda, - params: params, - stmts: statements, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_lambda: ( - # (Params | Paren) params, - # (BodyStmt | Statements) statements - # ) -> Lambda - def on_lambda(params, statements) - beginning = find_token(TLambda) - - if token = find_token(TLamBeg, consume: false) - opening = tokens.delete(token) - closing = find_token(RBrace) - else - opening = find_token(Kw, 'do') - closing = find_token(Kw, 'end') - end - - statements.bind(opening.location.end_char, closing.location.start_char) - - Lambda.new( - params: params, - statements: statements, - location: beginning.location.to(closing.location) - ) - end - - # LBrace represents the use of a left brace, i.e., {. - class LBrace - # [String] the left brace - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('lbrace') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :lbrace, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_lbrace: (String value) -> LBrace - def on_lbrace(value) - node = - LBrace.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # LBracket represents the use of a left bracket, i.e., [. - class LBracket - # [String] the left bracket - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_lbracket: (String value) -> LBracket - def on_lbracket(value) - node = - LBracket.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # LParen represents the use of a left parenthesis, i.e., (. - class LParen - # [String] the left parenthesis - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('lparen') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :lparen, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_lparen: (String value) -> LParen - def on_lparen(value) - node = - LParen.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # def on_magic_comment(key, value) - # [key, value] - # end - - # MAssign is a parent node of any kind of multiple assignment. This includes - # splitting out variables on the left like: - # - # first, second, third = value - # - # as well as splitting out variables on the right, as in: - # - # value = first, second, third - # - # Both sides support splats, as well as variables following them. There's also - # destructuring behavior that you can achieve with the following: - # - # first, = value - # - class MAssign - # [Mlhs | MlhsParen] the target of the multiple assignment - attr_reader :target - - # [untyped] the value being assigned - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(target:, value:, location:) - @target = target - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('massign') - - q.breakable - q.pp(target) - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :massign, target: target, value: value, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_massign: ((Mlhs | MlhsParen) target, untyped value) -> MAssign - def on_massign(target, value) - comma_range = target.location.end_char...value.location.start_char - target.comma = true if source[comma_range].strip.start_with?(',') - - MAssign.new( - target: target, - value: value, - location: target.location.to(value.location) - ) - end - - # MethodAddArg represents a method call with arguments and parentheses. - # - # method(argument) - # - # MethodAddArg can also represent with a method on an object, as in: - # - # object.method(argument) - # - # Finally, MethodAddArg can represent calling a method with no receiver that - # ends in a ?. In this case, the parser knows it's a method call and not a - # local variable, so it uses a MethodAddArg node as opposed to a VCall node, - # as in: - # - # method? - # - class MethodAddArg - # [Call | FCall] the method call - attr_reader :call - - # [ArgParen | Args | ArgsAddBlock] the arguments to the method call - attr_reader :arguments - - # [Location] the location of this node - attr_reader :location - - def initialize(call:, arguments:, location:) - @call = call - @arguments = arguments - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('method_add_arg') - - q.breakable - q.pp(call) - - q.breakable - q.pp(arguments) - end - end - - def to_json(*opts) - { - type: :method_add_arg, - call: call, - args: arguments, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_method_add_arg: ( - # (Call | FCall) call, - # (ArgParen | Args | ArgsAddBlock) arguments - # ) -> MethodAddArg - def on_method_add_arg(call, arguments) - location = call.location - - location = location.to(arguments.location) unless arguments.is_a?(Args) - - MethodAddArg.new(call: call, arguments: arguments, location: location) - end - - # MethodAddBlock represents a method call with a block argument. - # - # method {} - # - class MethodAddBlock - # [Call | Command | CommandCall | FCall | MethodAddArg] the method call - attr_reader :call - - # [BraceBlock | DoBlock] the block being sent with the method call - attr_reader :block - - # [Location] the location of this node - attr_reader :location - - def initialize(call:, block:, location:) - @call = call - @block = block - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('method_add_block') - - q.breakable - q.pp(call) - - q.breakable - q.pp(block) - end - end - - def to_json(*opts) - { - type: :method_add_block, - call: call, - block: block, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_method_add_block: ( - # (Call | Command | CommandCall | FCall | MethodAddArg) call, - # (BraceBlock | DoBlock) block - # ) -> MethodAddBlock - def on_method_add_block(call, block) - MethodAddBlock.new( - call: call, - block: block, - location: call.location.to(block.location) - ) - end - - # MLHS represents a list of values being destructured on the left-hand side - # of a multiple assignment. - # - # first, second, third = value - # - class MLHS - # Array[ARefField | ArgStar | Field | Ident | MlhsParen | VarField] the - # parts of the left-hand side of a multiple assignment - attr_reader :parts - - # [boolean] whether or not there is a trailing comma at the end of this - # list, which impacts destructuring. It's an attr_accessor so that while - # the syntax tree is being built it can be set by its parent node - attr_accessor :comma - - # [Location] the location of this node - attr_reader :location - - def initialize(parts:, comma: false, location:) - @parts = parts - @comma = comma - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('mlhs') - - q.breakable - q.group(2, '(', ')') { q.seplist(parts) { |part| q.pp(part) } } - end - end - - def to_json(*opts) - { type: :mlhs, parts: parts, comma: comma, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_mlhs_add: ( - # MLHS mlhs, - # (ARefField | Field | Ident | MlhsParen | VarField) part - # ) -> MLHS - def on_mlhs_add(mlhs, part) - location = - mlhs.parts.empty? ? part.location : mlhs.location.to(part.location) - - MLHS.new(parts: mlhs.parts << part, location: location) - end - - # :call-seq: - # on_mlhs_add_post: (MLHS left, MLHS right) -> MLHS - def on_mlhs_add_post(left, right) - MLHS.new( - parts: left.parts + right.parts, - location: left.location.to(right.location) - ) - end - - # :call-seq: - # on_mlhs_add_star: ( - # MLHS mlhs, - # (nil | ARefField | Field | Ident | VarField) part - # ) -> MLHS - def on_mlhs_add_star(mlhs, part) - beginning = find_token(Op, '*') - ending = part || beginning - - location = beginning.location.to(ending.location) - arg_star = ArgStar.new(value: part, location: location) - - location = mlhs.location.to(location) unless mlhs.parts.empty? - MLHS.new(parts: mlhs.parts << arg_star, location: location) - end - - # :call-seq: - # on_mlhs_new: () -> MLHS - def on_mlhs_new - MLHS.new(parts: [], location: Location.fixed(line: lineno, char: char_pos)) - end - - # MLHSParen represents parentheses being used to destruct values in a multiple - # assignment on the left hand side. - # - # (left, right) = value - # - class MLHSParen - # [Mlhs | MlhsParen] the contents inside of the parentheses - attr_reader :contents - - # [Location] the location of this node - attr_reader :location - - def initialize(contents:, location:) - @contents = contents - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('mlhs_paren') - - q.breakable - q.pp(contents) - end - end - - def to_json(*opts) - { type: :mlhs_paren, cnts: contents, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_mlhs_paren: ((Mlhs | MlhsParen) contents) -> MLHSParen - def on_mlhs_paren(contents) - lparen = find_token(LParen) - rparen = find_token(RParen) - - comma_range = lparen.location.end_char...rparen.location.start_char - contents.comma = true if source[comma_range].strip.end_with?(',') - - MLHSParen.new( - contents: contents, - location: lparen.location.to(rparen.location) - ) - end - - # ModuleDeclaration represents defining a module using the +module+ keyword. - # - # module Namespace - # end - # - class ModuleDeclaration - # [ConstPathRef | ConstRef | TopConstRef] the name of the module - attr_reader :constant - - # [BodyStmt] the expressions to be executed in the context of the module - attr_reader :bodystmt - - # [Location] the location of this node - attr_reader :location - - def initialize(constant:, bodystmt:, location:) - @constant = constant - @bodystmt = bodystmt - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('module') - - q.breakable - q.pp(constant) - - q.breakable - q.pp(bodystmt) - end - end - - def to_json(*opts) - { - type: :module, - constant: constant, - bodystmt: bodystmt, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_module: ( - # (ConstPathRef | ConstRef | TopConstRef) constant, - # BodyStmt bodystmt - # ) -> ModuleDeclaration - def on_module(constant, bodystmt) - beginning = find_token(Kw, 'module') - ending = find_token(Kw, 'end') - - bodystmt.bind( - find_next_statement_start(constant.location.end_char), - ending.location.start_char - ) - - ModuleDeclaration.new( - constant: constant, - bodystmt: bodystmt, - location: beginning.location.to(ending.location) - ) - end - - # MRHS represents the values that are being assigned on the right-hand side of - # a multiple assignment. - # - # values = first, second, third - # - class MRHS - # Array[untyped] the parts that are being assigned - attr_reader :parts - - # [Location] the location of this node - attr_reader :location - - def initialize(parts:, location:) - @parts = parts - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('mrhs') - - q.breakable - q.group(2, '(', ')') { q.seplist(parts) { |part| q.pp(part) } } - end - end - - def to_json(*opts) - { type: :mrhs, parts: parts, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_mrhs_new: () -> MRHS - def on_mrhs_new - MRHS.new(parts: [], location: Location.fixed(line: lineno, char: char_pos)) - end - - # :call-seq: - # on_mrhs_add: (MRHS mrhs, untyped part) -> MRHS - def on_mrhs_add(mrhs, part) - if mrhs.is_a?(MRHSNewFromArgs) - MRHS.new( - parts: [*mrhs.arguments.parts, part], - location: mrhs.location.to(part.location) - ) - elsif mrhs.parts.empty? - MRHS.new(parts: [part], location: mrhs.location) - else - MRHS.new(parts: mrhs.parts << part, loc: mrhs.location.to(part.location)) - end - end - - # MRHSAddStar represents using the splat operator to expand out a value on the - # right hand side of a multiple assignment. - # - # values = first, *rest - # - class MRHSAddStar - # [MRHS | MRHSNewFromArgs] the values before the splatted expression - attr_reader :mrhs - - # [untyped] the splatted expression - attr_reader :star - - # [Location] the location of this node - attr_reader :location - - def initialize(mrhs:, star:, location:) - @mrhs = mrhs - @star = star - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('mrhs_add_star') - - q.breakable - q.pp(mrhs) - - q.breakable - q.pp(star) - end - end - - def to_json(*opts) - { type: :mrhs_add_star, mrhs: mrhs, star: star, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_mrhs_add_star: ( - # (MRHS | MRHSNewFromArgs) mrhs, - # untyped star - # ) -> MRHSAddStar - def on_mrhs_add_star(mrhs, star) - beginning = find_token(Op, '*') - ending = star || beginning - - MRHSAddStar.new( - mrhs: mrhs, - star: star, - location: beginning.location.to(ending.location) - ) - end - - # MRHSNewFromArgs represents the shorthand of a multiple assignment that - # allows you to assign values using just commas as opposed to assigning from - # an array. - # - # values = first, second, third - # - class MRHSNewFromArgs - # [Args] the arguments being used in the assignment - attr_reader :arguments - - # [Location] the location of this node - attr_reader :location - - def initialize(arguments:, location:) - @arguments = arguments - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('mrhs_new_from_args') - - q.breakable - q.pp(arguments) - end - end - - def to_json(*opts) - { type: :mrhs_new_from_args, args: arguments, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_mrhs_new_from_args: (Args arguments) -> MRHSNewFromArgs - def on_mrhs_new_from_args(arguments) - MRHSNewFromArgs.new(arguments: arguments, location: arguments.location) - end - - # Next represents using the +next+ keyword. - # - # next - # - # The +next+ keyword can also optionally be called with an argument: - # - # next value - # - # +next+ can even be called with multiple arguments, but only if parentheses - # are omitted, as in: - # - # next first, second, third - # - # If a single value is being given, parentheses can be used, as in: - # - # next(value) - # - class Next - # [Args | ArgsAddBlock] the arguments passed to the next keyword - attr_reader :arguments - - # [Location] the location of this node - attr_reader :location - - def initialize(arguments:, location:) - @arguments = arguments - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('next') - - q.breakable - q.pp(arguments) - end - end - - def to_json(*opts) - { type: :next, args: arguments, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_next: ((Args | ArgsAddBlock) arguments) -> Next - def on_next(arguments) - keyword = find_token(Kw, 'next') - - location = keyword.location - location = location.to(arguments.location) unless arguments.is_a?(Args) - - Next.new(arguments: arguments, location: location) - end - - # def on_nl(value) - # value - # end - - # def on_nokw_param(value) - # value - # end - - # Op represents an operator literal in the source. - # - # 1 + 2 - # - # In the example above, the Op node represents the + operator. - class Op - # [String] the operator - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('op') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :op, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_op: (String value) -> Op - def on_op(value) - node = - Op.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # OpAssign represents assigning a value to a variable or constant using an - # operator like += or ||=. - # - # variable += value - # - class OpAssign - # [ARefField | ConstPathField | Field | TopConstField | VarField] the target - # to assign the result of the expression to - attr_reader :target - - # [Op] the operator being used for the assignment - attr_reader :operator - - # [untyped] the expression to be assigned - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(target:, operator:, value:, location:) - @target = target - @operator = operator - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('opassign') - - q.breakable - q.pp(target) - - q.breakable - q.pp(operator) - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { - type: :opassign, - target: target, - op: operator, - value: value, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_opassign: ( - # (ARefField | ConstPathField | Field | TopConstField | VarField) target, - # Op operator, - # untyped value - # ) -> OpAssign - def on_opassign(target, operator, value) - OpAssign.new( - target: target, - operator: operator, - value: value, - location: target.location.to(value.location) - ) - end - - # def on_operator_ambiguous(value) - # value - # end - - # Params represents defining parameters on a method or lambda. - # - # def method(param) end - # - class Params - # [Array[ Ident ]] any required parameters - attr_reader :requireds - - # [Array[ [ Ident, untyped ] ]] any optional parameters and their default - # values - attr_reader :optionals - - # [nil | ArgsForward | ExcessedComma | RestParam] the optional rest - # parameter - attr_reader :rest - - # [Array[ Ident ]] any positional parameters that exist after a rest - # parameter - attr_reader :posts - - # [Array[ [ Ident, nil | untyped ] ]] any keyword parameters and their - # optional default values - attr_reader :keywords - - # [nil | :nil | KwRestParam] the optional keyword rest parameter - attr_reader :keyword_rest - - # [nil | BlockArg] the optional block parameter - attr_reader :block - - # [Location] the location of this node - attr_reader :location - - def initialize( - requireds: [], - optionals: [], - rest: nil, - posts: [], - keywords: [], - keyword_rest: nil, - block: nil, - location: - ) - @requireds = requireds - @optionals = optionals - @rest = rest - @posts = posts - @keywords = keywords - @keyword_rest = keyword_rest - @block = block - @location = location - end - - # Params nodes are the most complicated in the tree. Occasionally you want - # to know if they are "empty", which means not having any parameters - # declared. This logic accesses every kind of parameter and determines if - # it's missing. - def empty? - requireds.empty? && optionals.empty? && !rest && posts.empty? && - keywords.empty? && !keyword_rest && !block - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('params') - - if requireds.any? - q.breakable - q.group(2, '(', ')') { q.seplist(requireds) { |name| q.pp(name) } } - end - - if optionals.any? - q.breakable - q.group(2, '(', ')') do - q.seplist(optionals) do |(name, default)| - q.pp(name) - q.text('=') - q.group(2) do - q.breakable('') - q.pp(default) - end - end - end - end - - if rest - q.breakable - q.pp(rest) - end - - if posts.any? - q.breakable - q.group(2, '(', ')') { q.seplist(posts) { |value| q.pp(value) } } - end - - if keywords.any? - q.breakable - q.group(2, '(', ')') do - q.seplist(keywords) do |(name, default)| - q.pp(name) - - if default - q.text('=') - q.group(2) do - q.breakable('') - q.pp(default) - end - end - end - end - end - - if keyword_rest - q.breakable - q.pp(keyword_rest) - end - - if block - q.breakable - q.pp(block) - end - end - end - - def to_json(*opts) - { - type: :params, - reqs: requireds, - opts: optionals, - rest: rest, - posts: posts, - keywords: keywords, - kwrest: keyword_rest, - block: block, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_params: ( - # (nil | Array[Ident]) requireds, - # (nil | Array[[Ident, untyped]]) optionals, - # (nil | ArgsForward | ExcessedComma | RestParam) rest, - # (nil | Array[Ident]) posts, - # (nil | Array[[Ident, nil | untyped]]) keywords, - # (nil | :nil | KwRestParam) keyword_rest, - # (nil | BlockArg) block - # ) -> Params - def on_params( - requireds, - optionals, - rest, - posts, - keywords, - keyword_rest, - block - ) - parts = [ - *requireds, - *optionals&.flatten(1), - rest, - *posts, - *keywords&.flat_map { |(key, value)| [key, value || nil] }, - (keyword_rest if keyword_rest != :nil), - block - ].compact - - location = - if parts.any? - parts[0].location.to(parts[-1].location) - else - Location.fixed(line: lineno, char: char_pos) - end - - Params.new( - requireds: requireds || [], - optionals: optionals || [], - rest: rest, - posts: posts || [], - keywords: keywords || [], - keyword_rest: keyword_rest, - block: block, - location: location - ) - end - - # Paren represents using balanced parentheses in a couple places in a Ruby - # program. In general parentheses can be used anywhere a Ruby expression can - # be used. - # - # (1 + 2) - # - class Paren - # [LParen] the left parenthesis that opened this statement - attr_reader :lparen - - # [untyped] the expression inside the parentheses - attr_reader :contents - - # [Location] the location of this node - attr_reader :location - - def initialize(lparen:, contents:, location:) - @lparen = lparen - @contents = contents - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('paren') - - q.breakable - q.pp(contents) - end - end - - def to_json(*opts) - { type: :paren, lparen: lparen, cnts: contents, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_paren: (untyped contents) -> Paren - def on_paren(contents) - lparen = find_token(LParen) - rparen = find_token(RParen) - - if contents && contents.is_a?(Params) - location = contents.location - location = - Location.new( - start_line: location.start_line, - start_char: find_next_statement_start(lparen.location.end_char), - end_line: location.end_line, - end_char: rparen.location.start_char - ) - - contents = - Params.new( - requireds: contents.requireds, - optionals: contents.optionals, - rest: contents.rest, - posts: contents.posts, - keywords: contents.keywords, - keyword_rest: contents.keyword_rest, - block: contents.block, - location: location - ) - end - - Paren.new( - lparen: lparen, - contents: contents, - location: lparen.location.to(rparen.location) - ) - end - - # If we encounter a parse error, just immediately bail out so that our runner - # can catch it. - def on_parse_error(error, *) - raise ParseError.new(error, lineno, column) - end - alias on_alias_error on_parse_error - alias on_assign_error on_parse_error - alias on_class_name_error on_parse_error - alias on_param_error on_parse_error - - # Period represents the use of the +.+ operator. It is usually found in method - # calls. - class Period - # [String] the period - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('period') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :period, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_period: (String value) -> Period - def on_period(value) - Period.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - end - - # Program represents the overall syntax tree. - class Program - # [Statements] the top-level expressions of the program - attr_reader :statements - - # [Array[ Comment | EmbDoc ]] the comments inside the program - attr_reader :comments - - # [Location] the location of this node - attr_reader :location - - def initialize(statements:, comments:, location:) - @statements = statements - @comments = comments - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('program') - - q.breakable - q.pp(statements) - end - end - - def to_json(*opts) - { - type: :program, - stmts: statements, - comments: comments, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_program: (Statements statements) -> Program - def on_program(statements) - location = - Location.new( - start_line: 1, - start_char: 0, - end_line: lines.length, - end_char: source.length - ) - - statements.body << @__end__ if @__end__ - statements.bind(0, source.length) - - Program.new(statements: statements, comments: @comments, location: location) - end - - # QSymbols represents a symbol literal array without interpolation. - # - # %i[one two three] - # - class QSymbols - # [Array[ TStringContent ]] the elements of the array - attr_reader :elements - - # [Location] the location of this node - attr_reader :location - - def initialize(elements:, location:) - @elements = elements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('qsymbols') - - q.breakable - q.group(2, '(', ')') { q.seplist(elements) { |element| q.pp(element) } } - end - end - - def to_json(*opts) - { type: :qsymbols, elems: elements, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_qsymbols_add: (QSymbols qsymbols, TStringContent element) -> QSymbols - def on_qsymbols_add(qsymbols, element) - QSymbols.new( - elements: qsymbols.elements << element, - location: qsymbols.location.to(element.location) - ) - end - - # QSymbolsBeg represents the beginning of a symbol literal array. - # - # %i[one two three] - # - # In the snippet above, QSymbolsBeg represents the "%i[" token. Note that - # these kinds of arrays can start with a lot of different delimiter types - # (e.g., %i| or %i<). - class QSymbolsBeg - # [String] the beginning of the array literal - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_qsymbols_beg: (String value) -> QSymbolsBeg - def on_qsymbols_beg(value) - node = - QSymbolsBeg.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # :call-seq: - # on_qsymbols_new: () -> QSymbols - def on_qsymbols_new - qsymbols_beg = find_token(QSymbolsBeg) - - QSymbols.new(elements: [], location: qsymbols_beg.location) - end - - # QWords represents a string literal array without interpolation. - # - # %w[one two three] - # - class QWords - # [Array[ TStringContent ]] the elements of the array - attr_reader :elements - - # [Location] the location of this node - attr_reader :location - - def initialize(elements:, location:) - @elements = elements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('qwords') - - q.breakable - q.group(2, '(', ')') { q.seplist(elements) { |element| q.pp(element) } } - end - end - - def to_json(*opts) - { type: :qwords, elems: elements, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_qwords_add: (QWords qwords, TStringContent element) -> QWords - def on_qwords_add(qwords, element) - QWords.new( - elements: qwords.elements << element, - location: qwords.location.to(element.location) - ) - end - - # QWordsBeg represents the beginning of a string literal array. - # - # %w[one two three] - # - # In the snippet above, QWordsBeg represents the "%w[" token. Note that these - # kinds of arrays can start with a lot of different delimiter types (e.g., - # %w| or %w<). - class QWordsBeg - # [String] the beginning of the array literal - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_qwords_beg: (String value) -> QWordsBeg - def on_qwords_beg(value) - node = - QWordsBeg.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # :call-seq: - # on_qwords_new: () -> QWords - def on_qwords_new - qwords_beg = find_token(QWordsBeg) - - QWords.new(elements: [], location: qwords_beg.location) - end - - # RationalLiteral represents the use of a rational number literal. - # - # 1r - # - class RationalLiteral - # [String] the rational number literal - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('rational') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :rational, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_rational: (String value) -> RationalLiteral - def on_rational(value) - node = - RationalLiteral.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # RBrace represents the use of a right brace, i.e., +++. - class RBrace - # [String] the right brace - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_rbrace: (String value) -> RBrace - def on_rbrace(value) - node = - RBrace.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # RBracket represents the use of a right bracket, i.e., +]+. - class RBracket - # [String] the right bracket - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_rbracket: (String value) -> RBracket - def on_rbracket(value) - node = - RBracket.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # Redo represents the use of the +redo+ keyword. - # - # redo - # - class Redo - # [String] the value of the keyword - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('redo') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :redo, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_redo: () -> Redo - def on_redo - keyword = find_token(Kw, 'redo') - - Redo.new(value: keyword.value, location: keyword.location) - end - - # RegexpContent represents the body of a regular expression. - # - # /.+ #{pattern} .+/ - # - # In the example above, a RegexpContent node represents everything contained - # within the forward slashes. - class RegexpContent - # [String] the opening of the regular expression - attr_reader :beginning - - # [Array[ StringDVar | StringEmbExpr | TStringContent ]] the parts of the - # regular expression - attr_reader :parts - - # [Location] the location of this node - attr_reader :location - - def initialize(beginning:, parts:, location:) - @beginning = beginning - @parts = parts - @location = location - end - end - - # :call-seq: - # on_regexp_add: ( - # RegexpContent regexp_content, - # (StringDVar | StringEmbExpr | TStringContent) part - # ) -> RegexpContent - def on_regexp_add(regexp_content, part) - RegexpContent.new( - beginning: regexp_content.beginning, - parts: regexp_content.parts << part, - location: regexp_content.location.to(part.location) - ) - end - - # RegexpBeg represents the start of a regular expression literal. - # - # /.+/ - # - # In the example above, RegexpBeg represents the first / token. Regular - # expression literals can also be declared using the %r syntax, as in: - # - # %r{.+} - # - class RegexpBeg - # [String] the beginning of the regular expression - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_regexp_beg: (String value) -> RegexpBeg - def on_regexp_beg(value) - node = - RegexpBeg.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # RegexpEnd represents the end of a regular expression literal. - # - # /.+/m - # - # In the example above, the RegexpEnd event represents the /m at the end of - # the regular expression literal. You can also declare regular expression - # literals using %r, as in: - # - # %r{.+}m - # - class RegexpEnd - # [String] the end of the regular expression - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_regexp_end: (String value) -> RegexpEnd - def on_regexp_end(value) - RegexpEnd.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - end - - # RegexpLiteral represents a regular expression literal. - # - # /.+/ - # - class RegexpLiteral - # [String] the beginning of the regular expression literal - attr_reader :beginning - - # [String] the ending of the regular expression literal - attr_reader :ending - - # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the - # regular expression literal - attr_reader :parts - - # [Locatione] the location of this node - attr_reader :location - - def initialize(beginning:, ending:, parts:, location:) - @beginning = beginning - @ending = ending - @parts = parts - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('regexp_literal') - - q.breakable - q.group(2, '(', ')') { q.seplist(parts) { |part| q.pp(part) } } - end - end - - def to_json(*opts) - { - type: :regexp_literal, - beging: beginning, - ending: ending, - parts: parts, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_regexp_literal: ( - # RegexpContent regexp_content, - # RegexpEnd ending - # ) -> RegexpLiteral - def on_regexp_literal(regexp_content, ending) - RegexpLiteral.new( - beginning: regexp_content.beginning, - ending: ending.value, - parts: regexp_content.parts, - location: regexp_content.location.to(ending.location) - ) - end - - # :call-seq: - # on_regexp_new: () -> RegexpContent - def on_regexp_new - regexp_beg = find_token(RegexpBeg) - - RegexpContent.new( - beginning: regexp_beg.value, - parts: [], - location: regexp_beg.location - ) - end - - # RescueEx represents the list of exceptions being rescued in a rescue clause. - # - # begin - # rescue Exception => exception - # end - # - class RescueEx - # [untyped] the list of exceptions being rescued - attr_reader :exceptions - - # [nil | Field | VarField] the expression being used to capture the raised - # exception - attr_reader :variable - - # [Location] the location of this node - attr_reader :location - - def initialize(exceptions:, variable:, location:) - @exceptions = exceptions - @variable = variable - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('rescue_ex') - - q.breakable - q.pp(exceptions) - - q.breakable - q.pp(variable) - end - end - - def to_json(*opts) - { - type: :rescue_ex, - extns: exceptions, - var: variable, - loc: location - }.to_json(*opts) - end - end - - # Rescue represents the use of the rescue keyword inside of a BodyStmt node. - # - # begin - # rescue - # end - # - class Rescue - # [RescueEx] the exceptions being rescued - attr_reader :exception - - # [Statements] the expressions to evaluate when an error is rescued - attr_reader :statements - - # [nil | Rescue] the optional next clause in the chain - attr_reader :consequent - - # [Location] the location of this node - attr_reader :location - - def initialize(exception:, statements:, consequent:, location:) - @exception = exception - @statements = statements - @consequent = consequent - @location = location - end - - def bind_end(end_char) - @location = - Location.new( - start_line: location.start_line, - start_char: location.start_char, - end_line: location.end_line, - end_char: end_char - ) - - if consequent - consequent.bind_end(end_char) - statements.bind_end(consequent.location.start_char) - else - statements.bind_end(end_char) - end - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('rescue') - - if exception - q.breakable - q.pp(exception) - end - - q.breakable - q.pp(statements) - - if consequent - q.breakable - q.pp(consequent) - end - end - end - - def to_json(*opts) - { - type: :rescue, - extn: exception, - stmts: statements, - cons: consequent, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_rescue: ( - # (nil | [untyped] | MRHS | MRHSAddStar) exceptions, - # (nil | Field | VarField) variable, - # Statements statements, - # (nil | Rescue) consequent - # ) -> Rescue - def on_rescue(exceptions, variable, statements, consequent) - keyword = find_token(Kw, 'rescue') - exceptions = exceptions[0] if exceptions.is_a?(Array) - - last_node = variable || exceptions || keyword - statements.bind( - find_next_statement_start(last_node.location.end_char), - char_pos - ) - - # We add an additional inner node here that ripper doesn't provide so that - # we have a nice place to attach inline comments. But we only need it if we - # have an exception or a variable that we're rescuing. - rescue_ex = - if exceptions || variable - RescueEx.new( - exceptions: exceptions, - variable: variable, - location: - Location.new( - start_line: keyword.location.start_line, - start_char: keyword.location.end_char + 1, - end_line: last_node.location.end_line, - end_char: last_node.location.end_char - ) - ) - end - - Rescue.new( - exception: rescue_ex, - statements: statements, - consequent: consequent, - location: - Location.new( - start_line: keyword.location.start_line, - start_char: keyword.location.start_char, - end_line: lineno, - end_char: char_pos - ) - ) - end - - # RescueMod represents the use of the modifier form of a +rescue+ clause. - # - # expression rescue value - # - class RescueMod - # [untyped] the expression to execute - attr_reader :statement - - # [untyped] the value to use if the executed expression raises an error - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(statement:, value:, location:) - @statement = statement - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('rescue_mod') - - q.breakable - q.pp(statement) - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { - type: :rescue_mod, - stmt: statement, - value: value, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_rescue_mod: (untyped statement, untyped value) -> RescueMod - def on_rescue_mod(statement, value) - find_token(Kw, 'rescue') - - RescueMod.new( - statement: statement, - value: value, - location: statement.location.to(value.location) - ) - end - - # RestParam represents defining a parameter in a method definition that - # accepts all remaining positional parameters. - # - # def method(*rest) end - # - class RestParam - # [nil | Ident] the name of the parameter - attr_reader :name - - # [Location] the location of this node - attr_reader :location - - def initialize(name:, location:) - @name = name - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('rest_param') - - q.breakable - q.pp(name) - end - end - - def to_json(*opts) - { type: :rest_param, name: name, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_rest_param: ((nil | Ident) name) -> RestParam - def on_rest_param(name) - location = find_token(Op, '*').location - location = location.to(name.location) if name - - RestParam.new(name: name, location: location) - end - - # Retry represents the use of the +retry+ keyword. - # - # retry - # - class Retry - # [String] the value of the keyword - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('retry') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :retry, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_retry: () -> Retry - def on_retry - keyword = find_token(Kw, 'retry') - - Retry.new(value: keyword.value, location: keyword.location) - end - - # Return represents using the +return+ keyword with arguments. - # - # return value - # - class Return - # [Args | ArgsAddBlock] the arguments being passed to the keyword - attr_reader :arguments - - # [Location] the location of this node - attr_reader :location - - def initialize(arguments:, location:) - @arguments = arguments - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('return') - - q.breakable - q.pp(arguments) - end - end - - def to_json(*opts) - { type: :return, args: arguments, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_return: ((Args | ArgsAddBlock) arguments) -> Return - def on_return(arguments) - keyword = find_token(Kw, 'return') - - Return.new( - arguments: arguments, - location: keyword.location.to(arguments.location) - ) - end - - # Return0 represents the bare +return+ keyword with no arguments. - # - # return - # - class Return0 - # [String] the value of the keyword - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('return0') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :return0, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_return0: () -> Return0 - def on_return0 - keyword = find_token(Kw, 'return') - - Return0.new(value: keyword.value, location: keyword.location) - end - - # RParen represents the use of a right parenthesis, i.e., +)+. - class RParen - # [String] the parenthesis - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_rparen: (String value) -> RParen - def on_rparen(value) - node = - RParen.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # SClass represents a block of statements that should be evaluated within the - # context of the singleton class of an object. It's frequently used to define - # singleton methods. - # - # class << self - # end - # - class SClass - # [untyped] the target of the singleton class to enter - attr_reader :target - - # [BodyStmt] the expressions to be executed - attr_reader :bodystmt - - # [Location] the location of this node - attr_reader :location - - def initialize(target:, bodystmt:, location:) - @target = target - @bodystmt = bodystmt - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('sclass') - - q.breakable - q.pp(target) - - q.breakable - q.pp(bodystmt) - end - end - - def to_json(*opts) - { - type: :sclass, - target: target, - bodystmt: bodystmt, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_sclass: (untyped target, BodyStmt bodystmt) -> SClass - def on_sclass(target, bodystmt) - beginning = find_token(Kw, 'class') - ending = find_token(Kw, 'end') - - bodystmt.bind( - find_next_statement_start(target.location.end_char), - ending.location.start_char - ) - - SClass.new( - target: target, - bodystmt: bodystmt, - location: beginning.location.to(ending.location) - ) - end - - # def on_semicolon(value) - # value - # end - - # def on_sp(value) - # value - # end - - # stmts_add is a parser event that represents a single statement inside a - # list of statements within any lexical block. It accepts as arguments the - # parent stmts node as well as an stmt which can be any expression in - # Ruby. - def on_stmts_add(statements, statement) - statements << statement - end - - # Everything that has a block of code inside of it has a list of statements. - # Normally we would just track those as a node that has an array body, but we - # have some special handling in order to handle empty statement lists. They - # need to have the right location information, so all of the parent node of - # stmts nodes will report back down the location information. We then - # propagate that onto void_stmt nodes inside the stmts in order to make sure - # all comments get printed appropriately. - class Statements - # [SyntaxTree] the parser that created this node - attr_reader :parser - - # [Array[ untyped ]] the list of expressions contained within this node - attr_reader :body - - # [Location] the location of this node - attr_reader :location - - def initialize(parser:, body:, location:) - @parser = parser - @body = body - @location = location - end - - def bind(start_char, end_char) - @location = - Location.new( - start_line: location.start_line, - start_char: start_char, - end_line: location.end_line, - end_char: end_char - ) - - if body[0].is_a?(VoidStmt) - location = body[0].location - location = - Location.new( - start_line: location.start_line, - start_char: start_char, - end_line: location.end_line, - end_char: start_char - ) - - body[0] = VoidStmt.new(location: location) - end - - attach_comments(start_char, end_char) - end - - def bind_end(end_char) - @location = - Location.new( - start_line: location.start_line, - start_char: location.start_char, - end_line: location.end_line, - end_char: end_char - ) - end - - def <<(statement) - @location = - body.any? ? location.to(statement.location) : statement.location - - body << statement - self - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('statements') - - q.breakable - q.seplist(body) { |statement| q.pp(statement) } - end - end - - def to_json(*opts) - { type: :statements, body: body, loc: location }.to_json(*opts) - end - - private - - def attach_comments(start_char, end_char) - attachable = - parser.comments.select do |comment| - !comment.inline? && start_char <= comment.location.start_char && - end_char >= comment.location.end_char && - !comment.value.include?('prettier-ignore') - end - - return if attachable.empty? - - parser.comments -= attachable - @body = (body + attachable).sort_by! { |node| node.location.start_char } - end - end - - # :call-seq: - # on_stmts_new: () -> Statements - def on_stmts_new - Statements.new( - parser: self, - body: [], - location: Location.fixed(line: lineno, char: char_pos) - ) - end - - # StringContent represents the contents of a string-like value. - # - # "string" - # - class StringContent - # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the - # string - attr_reader :parts - - # [Location] the location of this node - attr_reader :location - - def initialize(parts:, location:) - @parts = parts - @location = location - end - end - - # :call-seq: - # on_string_add: ( - # String string, - # (StringEmbExpr | StringDVar | TStringContent) part - # ) -> StringContent - def on_string_add(string, part) - location = - string.parts.any? ? string.location.to(part.location) : part.location - - StringContent.new(parts: string.parts << part, location: location) - end - - # StringConcat represents concatenating two strings together using a backward - # slash. - # - # "first" \ - # "second" - # - class StringConcat - # [StringConcat | StringLiteral] the left side of the concatenation - attr_reader :left - - # [StringLiteral] the right side of the concatenation - attr_reader :right - - # [Location] the location of this node - attr_reader :location - - def initialize(left:, right:, location:) - @left = left - @right = right - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('string_concat') - - q.breakable - q.pp(left) - - q.breakable - q.pp(right) - end - end - - def to_json(*opts) - { type: :string_concat, left: left, right: right, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_string_concat: ( - # (StringConcat | StringLiteral) left, - # StringLiteral right - # ) -> StringConcat - def on_string_concat(left, right) - StringConcat.new( - left: left, - right: right, - location: left.location.to(right.location) - ) - end - - # :call-seq: - # on_string_content: () -> StringContent - def on_string_content - StringContent.new( - parts: [], - location: Location.fixed(line: lineno, char: char_pos) - ) - end - - # StringDVar represents shorthand interpolation of a variable into a string. - # It allows you to take an instance variable, class variable, or global - # variable and omit the braces when interpolating. - # - # "#@variable" - # - class StringDVar - # [Backref | VarRef] the variable being interpolated - attr_reader :variable - - # [Location] the location of this node - attr_reader :location - - def initialize(variable:, location:) - @variable = variable - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('string_dvar') - - q.breakable - q.pp(variable) - end - end - - def to_json(*opts) - { type: :string_dvar, var: variable, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_string_dvar: ((Backref | VarRef) variable) -> StringDVar - def on_string_dvar(variable) - embvar = find_token(EmbVar) - - StringDVar.new( - variable: variable, - location: embvar.location.to(variable.location) - ) - end - - # StringEmbExpr represents interpolated content. It can be contained within a - # couple of different parent nodes, including regular expressions, strings, - # and dynamic symbols. - # - # "string #{expression}" - # - class StringEmbExpr - # [Statements] the expressions to be interpolated - attr_reader :statements - - # [Location] the location of this node - attr_reader :location - - def initialize(statements:, location:) - @statements = statements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('string_embexpr') - - q.breakable - q.pp(statements) - end - end - - def to_json(*opts) - { type: :string_embexpr, stmts: statements, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_string_embexpr: (Statements statements) -> StringEmbExpr - def on_string_embexpr(statements) - embexpr_beg = find_token(EmbExprBeg) - embexpr_end = find_token(EmbExprEnd) - - statements.bind( - embexpr_beg.location.end_char, - embexpr_end.location.start_char - ) - - StringEmbExpr.new( - statements: statements, - location: embexpr_beg.location.to(embexpr_end.location) - ) - end - - # StringLiteral represents a string literal. - # - # "string" - # - class StringLiteral - # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the - # string literal - attr_reader :parts - - # [String] which quote was used by the string literal - attr_reader :quote - - # [Location] the location of this node - attr_reader :location - - def initialize(parts:, quote:, location:) - @parts = parts - @quote = quote - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('string_literal') - - q.breakable - q.group(2, '(', ')') { q.seplist(parts) { |part| q.pp(part) } } - end - end - - def to_json(*opts) - { - type: :string_literal, - parts: parts, - quote: quote, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_string_literal: (String string) -> Heredoc | StringLiteral - def on_string_literal(string) - heredoc = @heredocs[-1] - - if heredoc && heredoc.ending - heredoc = @heredocs.pop - - Heredoc.new( - beginning: heredoc.beginning, - ending: heredoc.ending, - parts: string.parts, - location: heredoc.location - ) - else - tstring_beg = find_token(TStringBeg) - tstring_end = find_token(TStringEnd) - - StringLiteral.new( - parts: string.parts, - quote: tstring_beg.value, - location: tstring_beg.location.to(tstring_end.location) - ) - end - end - - # Super represents using the +super+ keyword with arguments. It can optionally - # use parentheses. - # - # super(value) - # - class Super - # [ArgParen | Args | ArgsAddBlock] the arguments to the keyword - attr_reader :arguments - - # [Location] the location of this node - attr_reader :location - - def initialize(arguments:, location:) - @arguments = arguments - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('super') - - q.breakable - q.pp(arguments) - end - end - - def to_json(*opts) - { type: :super, args: arguments, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_super: ((ArgParen | Args | ArgsAddBlock) arguments) -> Super - def on_super(arguments) - keyword = find_token(Kw, 'super') - - Super.new( - arguments: arguments, - location: keyword.location.to(arguments.location) - ) - end - - # SymBeg represents the beginning of a symbol literal. - # - # :symbol - # - # SymBeg is also used for dynamic symbols, as in: - # - # :"symbol" - # - # Finally, SymBeg is also used for symbols using the %s syntax, as in: - # - # %s[symbol] - # - # The value of this node is a string. In most cases (as in the first example - # above) it will contain just ":". In the case of dynamic symbols it will - # contain ":'" or ":\"". In the case of %s symbols, it will contain the start - # of the symbol including the %s and the delimiter. - class SymBeg - # [String] the beginning of the symbol - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # symbeg is a token that represents the beginning of a symbol literal. - # In most cases it will contain just ":" as in the value, but if its a dynamic - # symbol being defined it will contain ":'" or ":\"". - def on_symbeg(value) - node = - SymBeg.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # SymbolContent represents symbol contents and is always the child of a - # SymbolLiteral node. - # - # :symbol - # - class SymbolContent - # [Backtick | Const | CVar | GVar | Ident | IVar | Kw | Op] the value of the - # symbol - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_symbol: ( - # (Backtick | Const | CVar | GVar | Ident | IVar | Kw | Op) value - # ) -> SymbolContent - def on_symbol(value) - tokens.pop - - SymbolContent.new(value: value, location: value.location) - end - - # SymbolLiteral represents a symbol in the system with no interpolation - # (as opposed to a DynaSymbol which has interpolation). - # - # :symbol - # - class SymbolLiteral - # [Backtick | Const | CVar | GVar | Ident | IVar | Kw | Op] the value of the - # symbol - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('symbol_literal') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :symbol_literal, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_symbol_literal: ( - # ( - # Backtick | Const | CVar | GVar | Ident | - # IVar | Kw | Op | SymbolContent - # ) value - # ) -> SymbolLiteral - def on_symbol_literal(value) - if tokens[-1] == value - SymbolLiteral.new(value: tokens.pop, location: value.location) - else - symbeg = find_token(SymBeg) - - SymbolLiteral.new( - value: value.value, - location: symbeg.location.to(value.location) - ) - end - end - - # Symbols represents a symbol array literal with interpolation. - # - # %I[one two three] - # - class Symbols - # [Array[ Word ]] the words in the symbol array literal - attr_reader :elements - - # [Location] the location of this node - attr_reader :location - - def initialize(elements:, location:) - @elements = elements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('symbols') - - q.breakable - q.group(2, '(', ')') { q.seplist(elements) { |element| q.pp(element) } } - end - end - - def to_json(*opts) - { type: :symbols, elems: elements, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_symbols_add: (Symbols symbols, Word word) -> Symbols - def on_symbols_add(symbols, word) - Symbols.new( - elements: symbols.elements << word, - location: symbols.location.to(word.location) - ) - end - - # SymbolsBeg represents the start of a symbol array literal with - # interpolation. - # - # %I[one two three] - # - # In the snippet above, SymbolsBeg represents the "%I[" token. Note that these - # kinds of arrays can start with a lot of different delimiter types - # (e.g., %I| or %I<). - class SymbolsBeg - # [String] the beginning of the symbol literal array - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_symbols_beg: (String value) -> SymbolsBeg - def on_symbols_beg(value) - node = - SymbolsBeg.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # :call-seq: - # on_symbols_new: () -> Symbols - def on_symbols_new - symbols_beg = find_token(SymbolsBeg) - - Symbols.new(elements: [], location: symbols_beg.location) - end - - # TLambda represents the beginning of a lambda literal. - # - # -> { value } - # - # In the example above the TLambda represents the +->+ operator. - class TLambda - # [String] the beginning of the lambda literal - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_tlambda: (String value) -> TLambda - def on_tlambda(value) - node = - TLambda.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # TLamBeg represents the beginning of the body of a lambda literal using - # braces. - # - # -> { value } - # - # In the example above the TLamBeg represents the +{+ operator. - class TLamBeg - # [String] the beginning of the body of the lambda literal - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_tlambeg: (String value) -> TLamBeg - def on_tlambeg(value) - node = - TLamBeg.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # TopConstField is always the child node of some kind of assignment. It - # represents when you're assigning to a constant that is being referenced at - # the top level. - # - # ::Constant = value - # - class TopConstField - # [Const] the constant being assigned - attr_reader :constant - - # [Location] the location of this node - attr_reader :location - - def initialize(constant:, location:) - @constant = constant - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('top_const_field') - - q.breakable - q.pp(constant) - end - end - - def to_json(*opts) - { type: :top_const_field, constant: constant, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_top_const_field: (Const constant) -> TopConstRef - def on_top_const_field(constant) - operator = find_colon2_before(constant) - - TopConstField.new( - constant: constant, - location: operator.location.to(constant.location) - ) - end - - # TopConstRef is very similar to TopConstField except that it is not involved - # in an assignment. - # - # ::Constant - # - class TopConstRef - # [Const] the constant being referenced - attr_reader :constant - - # [Location] the location of this node - attr_reader :location - - def initialize(constant:, location:) - @constant = constant - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('top_const_ref') - - q.breakable - q.pp(constant) - end - end - - def to_json(*opts) - { type: :top_const_ref, constant: constant, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_top_const_ref: (Const constant) -> TopConstRef - def on_top_const_ref(constant) - operator = find_colon2_before(constant) - - TopConstRef.new( - constant: constant, - location: operator.location.to(constant.location) - ) - end - - # TStringBeg represents the beginning of a string literal. - # - # "string" - # - # In the example above, TStringBeg represents the first set of quotes. Strings - # can also use single quotes. They can also be declared using the +%q+ and - # +%Q+ syntax, as in: - # - # %q{string} - # - class TStringBeg - # [String] the beginning of the string - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_tstring_beg: (String value) -> TStringBeg - def on_tstring_beg(value) - node = - TStringBeg.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # TStringContent represents plain characters inside of an entity that accepts - # string content like a string, heredoc, command string, or regular - # expression. - # - # "string" - # - # In the example above, TStringContent represents the +string+ token contained - # within the string. - class TStringContent - # [String] the content of the string - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('tstring_content') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { - type: :tstring_content, - value: value.force_encoding('UTF-8'), - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_tstring_content: (String value) -> TStringContent - def on_tstring_content(value) - TStringContent.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - end - - # TStringEnd represents the end of a string literal. - # - # "string" - # - # In the example above, TStringEnd represents the second set of quotes. - # Strings can also use single quotes. They can also be declared using the +%q+ - # and +%Q+ syntax, as in: - # - # %q{string} - # - class TStringEnd - # [String] the end of the string - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_tstring_end: (String value) -> TStringEnd - def on_tstring_end(value) - node = - TStringEnd.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # Not represents the unary +not+ method being called on an expression. - # - # not value - # - class Not - # [untyped] the statement on which to operate - attr_reader :statement - - # [boolean] whether or not parentheses were used - attr_reader :parentheses - - # [Location] the location of this node - attr_reader :location - - def initialize(statement:, parentheses:, location:) - @statement = statement - @parentheses = parentheses - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('not') - - q.breakable - q.pp(statement) - end - end - - def to_json(*opts) - { - type: :not, - value: statement, - paren: parentheses, - loc: location - }.to_json(*opts) - end - end - - # Unary represents a unary method being called on an expression, as in +!+ or - # +~+. - # - # !value - # - class Unary - # [String] the operator being used - attr_reader :operator - - # [untyped] the statement on which to operate - attr_reader :statement - - # [Location] the location of this node - attr_reader :location - - def initialize(operator:, statement:, location:) - @operator = operator - @statement = statement - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('unary') - - q.breakable - q.pp(operator) - - q.breakable - q.pp(statement) - end - end - - def to_json(*opts) - { type: :unary, op: operator, value: statement, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_unary: (:not operator, untyped statement) -> Not - # | (Symbol operator, untyped statement) -> Unary - def on_unary(operator, statement) - if operator == :not - # We have somewhat special handling of the not operator since if it has - # parentheses they don't get reported as a paren node for some reason. - - beginning = find_token(Kw, 'not') - ending = statement - - range = beginning.location.end_char...statement.location.start_char - paren = source[range].include?('(') - - if paren - find_token(LParen) - ending = find_token(RParen) - end - - Not.new( - statement: statement, - parentheses: paren, - location: beginning.location.to(ending.location) - ) - else - # Special case instead of using find_token here. It turns out that - # if you have a range that goes from a negative number to a negative - # number then you can end up with a .. or a ... that's higher in the - # stack. So we need to explicitly disallow those operators. - index = - tokens.rindex do |token| - token.is_a?(Op) && - token.location.start_char < statement.location.start_char && - !%w[.. ...].include?(token.value) - end - - beginning = tokens.delete_at(index) - - Unary.new( - operator: operator[0], # :+@ -> "+" - statement: statement, - location: beginning.location.to(statement.location) - ) - end - end - - # Undef represents the use of the +undef+ keyword. - # - # undef method - # - class Undef - # [Array[ DynaSymbol | SymbolLiteral ]] the symbols to undefine - attr_reader :symbols - - # [Location] the location of this node - attr_reader :location - - def initialize(symbols:, location:) - @symbols = symbols - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('undef') - - q.breakable - q.group(2, '(', ')') { q.seplist(symbols) { |symbol| q.pp(symbol) } } - end - end - - def to_json(*opts) - { type: :undef, syms: symbols, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_undef: (Array[DynaSymbol | SymbolLiteral] symbols) -> Undef - def on_undef(symbols) - keyword = find_token(Kw, 'undef') - - Undef.new( - symbols: symbols, - location: keyword.location.to(symbols.last.location) - ) - end - - # Unless represents the first clause in an +unless+ chain. - # - # unless predicate - # end - # - class Unless - # [untyped] the expression to be checked - attr_reader :predicate - - # [Statements] the expressions to be executed - attr_reader :statements - - # [nil, Elsif, Else] the next clause in the chain - attr_reader :consequent - - # [Location] the location of this node - attr_reader :location - - def initialize(predicate:, statements:, consequent:, location:) - @predicate = predicate - @statements = statements - @consequent = consequent - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('unless') - - q.breakable - q.pp(predicate) - - q.breakable - q.pp(statements) - - if consequent - q.breakable - q.pp(consequent) - end - end - end - - def to_json(*opts) - { - type: :unless, - pred: predicate, - stmts: statements, - cons: consequent, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_unless: ( - # untyped predicate, - # Statements statements, - # ((nil | Elsif | Else) consequent) - # ) -> Unless - def on_unless(predicate, statements, consequent) - beginning = find_token(Kw, 'unless') - ending = consequent || find_token(Kw, 'end') - - statements.bind(predicate.location.end_char, ending.location.start_char) - - Unless.new( - predicate: predicate, - statements: statements, - consequent: consequent, - location: beginning.location.to(ending.location) - ) - end - - # UnlessMod represents the modifier form of an +unless+ statement. - # - # expression unless predicate - # - class UnlessMod - # [untyped] the expression to be executed - attr_reader :statement - - # [untyped] the expression to be checked - attr_reader :predicate - - # [Location] the location of this node - attr_reader :location - - def initialize(statement:, predicate:, location:) - @statement = statement - @predicate = predicate - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('unless_mod') - - q.breakable - q.pp(statement) - - q.breakable - q.pp(predicate) - end - end - - def to_json(*opts) - { - type: :unless_mod, - stmt: statement, - pred: predicate, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_unless_mod: (untyped predicate, untyped statement) -> UnlessMod - def on_unless_mod(predicate, statement) - find_token(Kw, 'unless') - - UnlessMod.new( - statement: statement, - predicate: predicate, - location: statement.location.to(predicate.location) - ) - end - - # Until represents an +until+ loop. - # - # until predicate - # end - # - class Until - # [untyped] the expression to be checked - attr_reader :predicate - - # [Statements] the expressions to be executed - attr_reader :statements - - # [Location] the location of this node - attr_reader :location - - def initialize(predicate:, statements:, location:) - @predicate = predicate - @statements = statements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('until') - - q.breakable - q.pp(predicate) - - q.breakable - q.pp(statements) - end - end - - def to_json(*opts) - { - type: :until, - pred: predicate, - stmts: statements, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_until: (untyped predicate, Statements statements) -> Until - def on_until(predicate, statements) - beginning = find_token(Kw, 'until') - ending = find_token(Kw, 'end') - - # Consume the do keyword if it exists so that it doesn't get confused for - # some other block - keyword = find_token(Kw, 'do', consume: false) - if keyword && keyword.location.start_char > predicate.location.end_char && - keyword.location.end_char < ending.location.start_char - tokens.delete(keyword) - end - - # Update the Statements location information - statements.bind(predicate.location.end_char, ending.location.start_char) - - Until.new( - predicate: predicate, - statements: statements, - location: beginning.location.to(ending.location) - ) - end - - # UntilMod represents the modifier form of a +until+ loop. - # - # expression until predicate - # - class UntilMod - # [untyped] the expression to be executed - attr_reader :statement - - # [untyped] the expression to be checked - attr_reader :predicate - - # [Location] the location of this node - attr_reader :location - - def initialize(statement:, predicate:, location:) - @statement = statement - @predicate = predicate - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('until_mod') - - q.breakable - q.pp(statement) - - q.breakable - q.pp(predicate) - end - end - - def to_json(*opts) - { - type: :until_mod, - stmt: statement, - pred: predicate, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_until_mod: (untyped predicate, untyped statement) -> UntilMod - def on_until_mod(predicate, statement) - find_token(Kw, 'until') - - UntilMod.new( - statement: statement, - predicate: predicate, - location: statement.location.to(predicate.location) - ) - end - - # VarAlias represents when you're using the +alias+ keyword with global - # variable arguments. - # - # alias $new $old - # - class VarAlias - # [GVar] the new alias of the variable - attr_reader :left - - # [Backref | GVar] the current name of the variable to be aliased - attr_reader :right - - # [Location] the location of this node - attr_reader :location - - def initialize(left:, right:, location:) - @left = left - @right = right - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('var_alias') - - q.breakable - q.pp(left) - - q.breakable - q.pp(right) - end - end - - def to_json(*opts) - { type: :var_alias, left: left, right: right, loc: location }.to_json( - *opts - ) - end - end - - # :call-seq: - # on_var_alias: (GVar left, (Backref | GVar) right) -> VarAlias - def on_var_alias(left, right) - keyword = find_token(Kw, 'alias') - - VarAlias.new( - left: left, - right: right, - location: keyword.location.to(right.location) - ) - end - - # VarField represents a variable that is being assigned a value. As such, it - # is always a child of an assignment type node. - # - # variable = value - # - # In the example above, the VarField node represents the +variable+ token. - class VarField - # [nil | Const | CVar | GVar | Ident | IVar] the target of this node - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('var_field') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :var_field, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_var_field: ( - # (nil | Const | CVar | GVar | Ident | IVar) value - # ) -> VarField - def on_var_field(value) - location = - if value - value.location - else - # You can hit this pattern if you're assigning to a splat using pattern - # matching syntax in Ruby 2.7+ - Location.fixed(line: lineno, char: char_pos) - end - - VarField.new(value: value, location: location) - end - - # VarRef represents a variable reference. - # - # true - # - # This can be a plain local variable like the example above. It can also be a - # constant, a class variable, a global variable, an instance variable, a - # keyword (like +self+, +nil+, +true+, or +false+), or a numbered block - # variable. - class VarRef - # [Const | CVar | GVar | Ident | IVar | Kw] the value of this node - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('var_ref') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :var_ref, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_var_ref: ((Const | CVar | GVar | Ident | IVar | Kw) value) -> VarRef - def on_var_ref(value) - VarRef.new(value: value, location: value.location) - end - - # AccessCtrl represents a call to a method visibility control, i.e., +public+, - # +protected+, or +private+. - # - # private - # - class AccessCtrl - # [Ident] the value of this expression - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('access_ctrl') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :access_ctrl, value: value, loc: location }.to_json(*opts) - end - end - - # VCall represent any plain named object with Ruby that could be either a - # local variable or a method call. - # - # variable - # - class VCall - # [Ident] the value of this expression - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('vcall') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :vcall, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_vcall: (Ident ident) -> AccessCtrl | VCall - def on_vcall(ident) - @controls ||= %w[private protected public].freeze - - if @controls.include?(ident.value) && ident.value == lines[lineno - 1].strip - # Access controls like private, protected, and public are reported as - # vcall nodes since they're technically method calls. We want to be able - # add new lines around them as necessary, so here we're going to - # explicitly track those as a different node type. - AccessCtrl.new(value: ident, location: ident.location) - else - VCall.new(value: ident, location: ident.location) - end - end - - # VoidStmt represents an empty lexical block of code. - # - # ;; - # - class VoidStmt - # [Location] the location of this node - attr_reader :location - - def initialize(location:) - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') { q.text('void_stmt') } - end - - def to_json(*opts) - { type: :void_stmt, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_void_stmt: () -> VoidStmt - def on_void_stmt - VoidStmt.new(location: Location.fixed(line: lineno, char: char_pos)) - end - - # When represents a +when+ clause in a +case+ chain. - # - # case value - # when predicate - # end - # - class When - # [untyped] the arguments to the when clause - attr_reader :arguments - - # [Statements] the expressions to be executed - attr_reader :statements - - # [nil | Else | When] the next clause in the chain - attr_reader :consequent - - # [Location] the location of this node - attr_reader :location - - def initialize(arguments:, statements:, consequent:, location:) - @arguments = arguments - @statements = statements - @consequent = consequent - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('when') - - q.breakable - q.pp(arguments) - - q.breakable - q.pp(statements) - - if consequent - q.breakable - q.pp(consequent) - end - end - end - - def to_json(*opts) - { - type: :when, - args: arguments, - stmts: statements, - cons: consequent, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_when: ( - # untyped arguments, - # Statements statements, - # (nil | Else | When) consequent - # ) -> When - def on_when(arguments, statements, consequent) - beginning = find_token(Kw, 'when') - ending = consequent || find_token(Kw, 'end') - - statements.bind(arguments.location.end_char, ending.location.start_char) - - When.new( - arguments: arguments, - statements: statements, - consequent: consequent, - location: beginning.location.to(ending.location) - ) - end - - # While represents a +while+ loop. - # - # while predicate - # end - # - class While - # [untyped] the expression to be checked - attr_reader :predicate - - # [Statements] the expressions to be executed - attr_reader :statements - - # [Location] the location of this node - attr_reader :location - - def initialize(predicate:, statements:, location:) - @predicate = predicate - @statements = statements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('while') - - q.breakable - q.pp(predicate) - - q.breakable - q.pp(statements) - end - end - - def to_json(*opts) - { - type: :while, - pred: predicate, - stmts: statements, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_while: (untyped predicate, Statements statements) -> While - def on_while(predicate, statements) - beginning = find_token(Kw, 'while') - ending = find_token(Kw, 'end') - - # Consume the do keyword if it exists so that it doesn't get confused for - # some other block - keyword = find_token(Kw, 'do', consume: false) - if keyword && keyword.location.start_char > predicate.location.end_char && - keyword.location.end_char < ending.location.start_char - tokens.delete(keyword) - end - - # Update the Statements location information - statements.bind(predicate.location.end_char, ending.location.start_char) - - While.new( - predicate: predicate, - statements: statements, - location: beginning.location.to(ending.location) - ) - end - - # WhileMod represents the modifier form of a +while+ loop. - # - # expression while predicate - # - class WhileMod - # [untyped] the expression to be executed - attr_reader :statement - - # [untyped] the expression to be checked - attr_reader :predicate - - # [Location] the location of this node - attr_reader :location - - def initialize(statement:, predicate:, location:) - @statement = statement - @predicate = predicate - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('while_mod') - - q.breakable - q.pp(statement) - - q.breakable - q.pp(predicate) - end - end - - def to_json(*opts) - { - type: :while_mod, - stmt: statement, - pred: predicate, - loc: location - }.to_json(*opts) - end - end - - # :call-seq: - # on_while_mod: (untyped predicate, untyped statement) -> WhileMod - def on_while_mod(predicate, statement) - find_token(Kw, 'while') - - WhileMod.new( - statement: statement, - predicate: predicate, - location: statement.location.to(predicate.location) - ) - end - - # Word represents an element within a special array literal that accepts - # interpolation. - # - # %W[a#{b}c xyz] - # - # In the example above, there would be two Word nodes within a parent Words - # node. - class Word - # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the - # word - attr_reader :parts - - # [Location] the location of this node - attr_reader :location - - def initialize(parts:, location:) - @parts = parts - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('word') - - q.breakable - q.group(2, '(', ')') { q.seplist(parts) { |part| q.pp(part) } } - end - end - - def to_json(*opts) - { type: :word, parts: parts, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_word_add: ( - # Word word, - # (StringEmbExpr | StringDVar | TStringContent) part - # ) -> Word - def on_word_add(word, part) - location = - word.parts.empty? ? part.location : word.location.to(part.location) - - Word.new(parts: word.parts << part, location: location) - end - - # :call-seq: - # on_word_new: () -> Word - def on_word_new - Word.new(parts: [], location: Location.fixed(line: lineno, char: char_pos)) - end - - # Words represents a string literal array with interpolation. - # - # %W[one two three] - # - class Words - # [Array[ Word ]] the elements of this array - attr_reader :elements - - # [Location] the location of this node - attr_reader :location - - def initialize(elements:, location:) - @elements = elements - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('words') - - q.breakable - q.group(2, '(', ')') { q.seplist(elements) { |element| q.pp(element) } } - end - end - - def to_json(*opts) - { type: :words, elems: elements, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_words_add: (Words words, Word word) -> Words - def on_words_add(words, word) - Words.new( - elements: words.elements << word, - location: words.location.to(word.location) - ) - end - - # WordsBeg represents the beginning of a string literal array with - # interpolation. - # - # %W[one two three] - # - # In the snippet above, a WordsBeg would be created with the value of "%W[". - # Note that these kinds of arrays can start with a lot of different delimiter - # types (e.g., %W| or %W<). - class WordsBeg - # [String] the start of the word literal array - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - end - - # :call-seq: - # on_words_beg: (String value) -> WordsBeg - def on_words_beg(value) - node = - WordsBeg.new( - value: value, - location: Location.token(line: lineno, char: char_pos, size: value.size) - ) - - tokens << node - node - end - - # :call-seq: - # on_words_new: () -> Words - def on_words_new - words_beg = find_token(WordsBeg) - - Words.new(elements: [], location: words_beg.location) - end - - # def on_words_sep(value) - # value - # end - - # XString represents the contents of an XStringLiteral. - # - # `ls` - # - class XString - # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the - # xstring - attr_reader :parts - - # [Location] the location of this node - attr_reader :location - - def initialize(parts:, location:) - @parts = parts - @location = location - end - end - - # :call-seq: - # on_xstring_add: ( - # XString xstring, - # (StringEmbExpr | StringDVar | TStringContent) part - # ) -> XString - def on_xstring_add(xstring, part) - XString.new( - parts: xstring.parts << part, - location: xstring.location.to(part.location) - ) - end - - # :call-seq: - # on_xstring_new: () -> XString - def on_xstring_new - heredoc = @heredocs[-1] - - location = - if heredoc && heredoc.beginning.value.include?('`') - heredoc.location - else - find_token(Backtick).location - end - - XString.new(parts: [], location: location) - end - - # XStringLiteral represents a string that gets executed. - # - # `ls` - # - class XStringLiteral - # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the - # xstring - attr_reader :parts - - # [Location] the location of this node - attr_reader :location - - def initialize(parts:, location:) - @parts = parts - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('xstring_literal') - - q.breakable - q.group(2, '(', ')') { q.seplist(parts) { |part| q.pp(part) } } - end - end - - def to_json(*opts) - { type: :xstring_literal, parts: parts, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_xstring_literal: (XString xstring) -> Heredoc | XStringLiteral - def on_xstring_literal(xstring) - heredoc = @heredocs[-1] - - if heredoc && heredoc.beginning.value.include?('`') - Heredoc.new( - beginning: heredoc.beginning, - ending: heredoc.ending, - parts: xstring.parts, - location: heredoc.location - ) - else - ending = find_token(TStringEnd) - - XStringLiteral.new( - parts: xstring.parts, - location: xstring.location.to(ending.location) - ) - end - end - - # Yield represents using the +yield+ keyword with arguments. - # - # yield value - # - class Yield - # [ArgsAddBlock | Paren] the arguments passed to the yield - attr_reader :arguments - - # [Location] the location of this node - attr_reader :location - - def initialize(arguments:, location:) - @arguments = arguments - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('yield') - - q.breakable - q.pp(arguments) - end - end - - def to_json(*opts) - { type: :yield, args: arguments, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_yield: ((ArgsAddBlock | Paren) arguments) -> Yield - def on_yield(arguments) - keyword = find_token(Kw, 'yield') - - Yield.new( - arguments: arguments, - location: keyword.location.to(arguments.location) - ) - end - - # Yield0 represents the bare +yield+ keyword with no arguments. - # - # yield - # - class Yield0 - # [String] the value of the keyword - attr_reader :value - - # [Location] the location of this node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('yield0') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :yield0, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_yield0: () -> Yield0 - def on_yield0 - keyword = find_token(Kw, 'yield') - - Yield0.new(value: keyword.value, location: keyword.location) - end - - # ZSuper represents the bare +super+ keyword with no arguments. - # - # super - # - class ZSuper - # [String] the value of the keyword - attr_reader :value - - # [Location] the location of the node - attr_reader :location - - def initialize(value:, location:) - @value = value - @location = location - end - - def pretty_print(q) - q.group(2, '(', ')') do - q.text('zsuper') - - q.breakable - q.pp(value) - end - end - - def to_json(*opts) - { type: :zsuper, value: value, loc: location }.to_json(*opts) - end - end - - # :call-seq: - # on_zsuper: () -> ZSuper - def on_zsuper - keyword = find_token(Kw, 'super') - - ZSuper.new(value: keyword.value, location: keyword.location) - end -end diff --git a/src/ruby/parser.ts b/src/ruby/parser.ts deleted file mode 100644 index 2570d540..00000000 --- a/src/ruby/parser.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { Plugin, Ruby } from "../types"; -import parseSync from "../parser/parseSync"; -import { getEndChar, getStartChar } from "./location"; - -const parser: Plugin.Parser = { - // This function is responsible for taking an input string of text and - // returning to prettier a JavaScript object that is the equivalent AST that - // represents the code stored in that string. We accomplish this by spawning a - // new Ruby process of parser.rb and reading JSON off STDOUT. - parse(text) { - return parseSync("ruby", text); - }, - astFormat: "ruby", - // This function handles checking whether or not the source string has the - // pragma for prettier. This is an optional workflow for incremental adoption. - hasPragma(text) { - return /^\s*#[^\S\n]*@(?:prettier|format)\s*?(?:\n|$)/m.test(text); - }, - // This function is critical for comments and cursor support, and is - // responsible for returning the index of the character within the source - // string that is the beginning of the given node. - locStart(node) { - return getStartChar(node.loc); - }, - // This function is critical for comments and cursor support, and is - // responsible for returning the index of the character within the source - // string that is the ending of the given node. - locEnd(node) { - return getEndChar(node.loc); - } -}; - -export default parser; diff --git a/src/ruby/printer.ts b/src/ruby/printer.ts deleted file mode 100644 index f2adeead..00000000 --- a/src/ruby/printer.ts +++ /dev/null @@ -1,78 +0,0 @@ -import type { Plugin, Ruby } from "../types"; -import prettier from "../prettier"; - -import { getChildNodes } from "../utils"; -import embed from "./embed"; -import nodes from "./nodes"; - -const { trim } = prettier; - -const noComments = ["args", "args_add_block", "mlhs", "mlhs_paren"]; - -const printer: Plugin.PrinterConfig = { - // Certain nodes are used more for organizational purposed than for actually - // displaying content, so we tell prettier that we don't want comments - // attached to them. - canAttachComment(node) { - return !noComments.includes(node.type); - }, - embed, - // This function tells prettier how to recurse down our AST so that it can - // find where it needs to attach the comments. - getCommentChildNodes(node: Ruby.AnyNode) { - return getChildNodes(node); - }, - // This is an escape-hatch to ignore nodes in the tree. If you have a comment - // that includes this pattern, then the entire node will be ignored and just - // the original source will be printed out. - hasPrettierIgnore(path) { - const node = path.getValue(); - - return ( - (node.comments && - node.comments.some((comment) => - comment.value.includes("prettier-ignore") - )) || - false - ); - }, - // To be honest I'm not 100% sure this function is actually necessary, but it - // *feels* like a block comment equivalent in JavaScript so I'm going to leave - // it in place for now. - isBlockComment(comment) { - return comment.type === "embdoc"; - }, - // This function handles adding the format pragma to a source string. This is - // an optional workflow for incremental adoption. - insertPragma(text) { - const boundary = text.startsWith("#") ? "\n" : "\n\n"; - - return `# @format${boundary}${text}`; - }, - // This is the generic node print function, used to convert any node in the - // AST into its equivalent Doc representation. - print(path, opts, print) { - const node = path.getValue(); - const printer = nodes[node.type]; - - if (!printer) { - throw new Error(`Unsupported node type: ${node.type}`); - } - - return printer(path, opts, print); - }, - // This is the generic print function for any comment in the AST. It handles - // both regular comments that begin with a # and embdoc comments, which are - // surrounded by =begin..=end. - printComment(path) { - const comment = (path as any as Plugin.Path).getValue(); - - if (comment.type === "comment") { - return `#${comment.value}`; - } - - return [trim, comment.value]; - } -}; - -export default printer; diff --git a/src/ruby/toProc.ts b/src/ruby/toProc.ts deleted file mode 100644 index 5ad82131..00000000 --- a/src/ruby/toProc.ts +++ /dev/null @@ -1,114 +0,0 @@ -import type { Plugin, Ruby } from "../types"; - -function isPeriod(node: Ruby.CallOperator) { - // Older versions of Ruby didn't have a @period ripper event, so we need to - // explicitly cast to any here. - if (node === "::" || (node as any) === ".") { - return true; - } - - return node.type === "period"; -} - -// If you have a simple block that only calls a method on the single required -// parameter that is passed to it, then you can replace that block with the -// simpler `Symbol#to_proc`. Meaning, it would go from: -// -// [1, 2, 3].map { |i| i.to_s } -// -// to: -// -// [1, 2, 3].map(&:to_s) -// -// This works with `do` blocks as well. -function toProc( - path: Plugin.Path, - node: Ruby.BraceBlock | Ruby.DoBlock -) { - // Ensure that there are variables being passed to this block. - const params = node.block_var && node.block_var.params; - if (!params) { - return null; - } - - // Ensure there is one and only one parameter, and that it is required. - if ( - params.reqs.length !== 1 || - params.opts.length !== 0 || - params.rest || - params.posts.length !== 0 || - params.keywords.length !== 0 || - params.kwrest || - params.block - ) { - return null; - } - - // Get the list of statements from the block - let statements: Ruby.AnyNode[]; - - if (node.type === "do_block") { - // If you have any other clauses on the bodystmt, then we can't transform. - if (node.bodystmt.rsc || node.bodystmt.els || node.bodystmt.ens) { - return null; - } - - statements = node.bodystmt.stmts.body; - } else { - statements = node.stmts.body; - } - - // Ensure the block contains only one statement - if (statements.length !== 1) { - return null; - } - - // Ensure that statement is a call and that it has no comments attached - const [call] = statements; - if (call.type !== "call" || call.comments) { - return null; - } - - // Ensure the call is a method of the block argument - if ( - call.receiver.type !== "var_ref" || - call.receiver.value.value !== params.reqs[0].value || - !isPeriod(call.op) || - call.message === "call" || - call.message.type !== "ident" - ) { - return null; - } - - // Ensure that we're not inside of a hash that is being passed to a key that - // corresponds to `:if` or `:unless` to avoid problems with callbacks with - // Rails. For more context, see: - // https://github.com/prettier/plugin-ruby/issues/449 - let parentNode = null; - - if (path.getValue().type === "method_add_block") { - parentNode = path.getParentNode(); - } else { - parentNode = path.getParentNode(2); - } - - if (parentNode && parentNode.type === "assoc") { - const assocNode = parentNode as Ruby.Assoc; - const key = assocNode.key; - - if (key.type === "label" && ["if:", "unless:"].includes(key.value)) { - return null; - } - - if ( - key.type === "symbol_literal" && - ["if", "unless"].includes(key.value.value) - ) { - return null; - } - } - - return `&:${call.message.value}`; -} - -export default toProc; diff --git a/src/types.ts b/src/types.ts index ccfab44f..3e79eb3f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,3 +1,121 @@ -export * as Plugin from "./types/plugin"; -export * as Ruby from "./types/ruby"; -export * from "./types/utils"; +import type * as Prettier from "prettier"; + +// The type of elements that make up the given array T. +export type ArrayElement = T extends (infer E)[] ? E : never; + +// A union of the properties of the given object that are arrays. +export type ArrayProperties = { [K in keyof T]: T[K] extends any[] ? K : never }[keyof T]; + +// A union of the properties of the given array T that can be used to index it. +// If the array is a tuple, then that's going to be the explicit indices of the +// array, otherwise it's going to just be number. +export type IndexProperties = IsTuple extends true ? Exclude["length"], T["length"]> : number; + +// Effectively performing T[P], except that it's telling TypeScript that it's +// safe to do this for tuples, arrays, or objects. +export type IndexValue = T extends any[] ? P extends number ? T[P] : never : P extends keyof T ? T[P] : never; + +// Determines if an object T is an array like string[] (in which case this +// evaluates to false) or a tuple like [string] (in which case this evaluates to +// true). +// eslint-disable-next-line @typescript-eslint/no-unused-vars +type IsTuple = T extends [] ? true : T extends [infer First, ...infer Remain] ? IsTuple : false; + +// The same object T as currently exists, except the keys provided by P are +// required instead of optional. +export type RequiredKeys = T & Required>; + +type CallProperties = T extends any[] ? IndexProperties : keyof T; +type IterProperties = T extends any[] ? IndexProperties : ArrayProperties; + +type CallCallback = (path: Path, index: number, value: any) => U; +type EachCallback = (path: Path>, index: number, value: any) => void; +type MapCallback = (path: Path>, index: number, value: any) => U; + +// This path interface is going to override a bunch of functions on the regular +// prettier AstPath interface. This is because we want stricter types than the +// current version of @types/prettier provides. +// +// For each of the tree walk functions (call, each, and map) this provides 5 +// strict type signatures, along with a fallback at the end if you end up +// calling more than 5 properties deep (we don't do that but I've included it +// for completeness). +// +// getParentNode is being overridden because previously it was restricted to the +// type T of the given AST, but it's very unlikely you're going to be receiving +// a parent node that exactly matches your current node. So for now just +// returning any. +interface StrictPath { + call(callback: CallCallback): U; + call>(callback: CallCallback, U>, prop1: P1): U; + call>(callback: CallCallback, P2>, U>, prop1: P1, prop2: P2): U; + call, P3 extends CallProperties>>(callback: CallCallback, P2>, P3>, U>, prop1: P1, prop2: P2, prop3: P3): U; + call, P3 extends CallProperties>, P4 extends CallProperties, P3>>>(callback: CallCallback, P2>, P3>, P4>, U>, prop1: P1, prop2: P2, prop3: P3, prop4: P4): U; + call(callback: CallCallback, prop1: P, prop2: P, prop3: P, prop4: P, ...props: P[]): U; + + each(callback: EachCallback): void; + each>(callback: EachCallback>, prop1: P1): void; + each>(callback: EachCallback, P2>>, prop1: P1, prop2: P2): void; + each, P3 extends IterProperties>>(callback: EachCallback, P2>, P3>>, prop1: P1, prop2: P2, prop3: P3): void; + each, P3 extends IterProperties>, P4 extends IterProperties, P3>>>(callback: EachCallback, P2>, P3>, P4>>, prop1: P1, prop2: P2, prop3: P3, prop4: P4): void; + each

(callback: EachCallback, prop1: P, prop2: P, prop3: P, prop4: P, ...props: P[]): void; + + getParentNode: (count?: number | undefined) => any | null, + + map(callback: MapCallback): U[]; + map>(callback: MapCallback, U>, prop1: P1): U[]; + map>(callback: MapCallback, P2>, U>, prop1: P1, prop2: P2): U[]; + map, P3 extends IterProperties>>(callback: MapCallback, P2>, P3>, U>, prop1: P1, prop2: P2, prop3: P3): U[]; + map, P3 extends IterProperties>, P4 extends IterProperties, P3>>>(callback: MapCallback, P2>, P3>, P4>, U>, prop1: P1, prop2: P2, prop3: P3, prop4: P4): U[]; + map(callback: MapCallback, prop1: P, prop2: P, prop3: P, prop4: P, ...props: P[]): U[]; +}; + +// Reexporting the Doc type mostly because it's annoying to have to reference +// type so deeply in the Prettier namespace. Also because we only really want to +// be pulling in types from this file as they're less likely to change. +export type Doc = Prettier.doc.builders.Doc; + +// This is the same embed as is present in prettier, except that it's required. +export type Embed = Required>["embed"]; + +// These are the regular options from prettier except they also include all of +// the options we defined in our plugin configuration. +export type Options = Prettier.ParserOptions & { + printer: RequiredKeys, + rubyArrayLiteral: boolean, + rubyHashLabel: boolean, + rubyModifier: boolean, + rubySingleQuote: boolean, + rubyToProc: boolean +}; + +// hasPragma was not required, but since we're testing it explicitly we're going +// to add that into the parser object as being required. Additionally we're +// going to change the signature of our parse function to accept our options as +// opposed to the generic options that don't contain the options we defined in +// our plugin configuration. +export type Parser = Omit, "hasPragma" | "parse"> & Required, "hasPragma">> & { + parse: (text: string, parsers: { [name: string]: Prettier.Parser }, options: Options) => any +}; + +// We're overwriting a bunch of function here that walk around the tree here +// because if you restrict the AST for the main path then presumably you're +// printing a lower node in the tree that won't match the current AST type. +export type Path = Omit, keyof StrictPath> & StrictPath; + +// The printer from prettier is missing a couple of keys. We should presumably +// upstream this so that it's accurate in all plugins. +export type PrinterConfig = Omit, "insertPragma" | "print"> & Required, "insertPragma">> & { + getCommentChildNodes?: (node: any) => any[], + isBlockComment?: (comment: any, options: Options) => boolean, + print: Printer +}; + +// This is the regular print node, except it's not restricted by the AST that +// is passed to the parent AST. That's because when you're using it, you are not +// typically printing the same node type again. +export type Print = (path: Path) => Doc; + +// This is the regular printer, except it uses our overridden options and print +// types. +export type Printer = (path: Path, options: Options, print: Print) => Doc; diff --git a/src/types/plugin.ts b/src/types/plugin.ts deleted file mode 100644 index 2de62dc6..00000000 --- a/src/types/plugin.ts +++ /dev/null @@ -1,97 +0,0 @@ -import type * as Prettier from "prettier"; -import type { ArrayElement, ArrayProperties, IndexProperties, IndexValue, RequiredKeys } from "./utils"; - -type CallProperties = T extends any[] ? IndexProperties : keyof T; -type IterProperties = T extends any[] ? IndexProperties : ArrayProperties; - -type CallCallback = (path: Path, index: number, value: any) => U; -type EachCallback = (path: Path>, index: number, value: any) => void; -type MapCallback = (path: Path>, index: number, value: any) => U; - -// This path interface is going to override a bunch of functions on the regular -// prettier AstPath interface. This is because we want stricter types than the -// current version of @types/prettier provides. -// -// For each of the tree walk functions (call, each, and map) this provides 5 -// strict type signatures, along with a fallback at the end if you end up -// calling more than 5 properties deep (we don't do that but I've included it -// for completeness). -// -// getParentNode is being overridden because previously it was restricted to the -// type T of the given AST, but it's very unlikely you're going to be receiving -// a parent node that exactly matches your current node. So for now just -// returning any. -interface StrictPath { - call(callback: CallCallback): U; - call>(callback: CallCallback, U>, prop1: P1): U; - call>(callback: CallCallback, P2>, U>, prop1: P1, prop2: P2): U; - call, P3 extends CallProperties>>(callback: CallCallback, P2>, P3>, U>, prop1: P1, prop2: P2, prop3: P3): U; - call, P3 extends CallProperties>, P4 extends CallProperties, P3>>>(callback: CallCallback, P2>, P3>, P4>, U>, prop1: P1, prop2: P2, prop3: P3, prop4: P4): U; - call(callback: CallCallback, prop1: P, prop2: P, prop3: P, prop4: P, ...props: P[]): U; - - each(callback: EachCallback): void; - each>(callback: EachCallback>, prop1: P1): void; - each>(callback: EachCallback, P2>>, prop1: P1, prop2: P2): void; - each, P3 extends IterProperties>>(callback: EachCallback, P2>, P3>>, prop1: P1, prop2: P2, prop3: P3): void; - each, P3 extends IterProperties>, P4 extends IterProperties, P3>>>(callback: EachCallback, P2>, P3>, P4>>, prop1: P1, prop2: P2, prop3: P3, prop4: P4): void; - each

(callback: EachCallback, prop1: P, prop2: P, prop3: P, prop4: P, ...props: P[]): void; - - getParentNode: (count?: number | undefined) => any | null, - - map(callback: MapCallback): U[]; - map>(callback: MapCallback, U>, prop1: P1): U[]; - map>(callback: MapCallback, P2>, U>, prop1: P1, prop2: P2): U[]; - map, P3 extends IterProperties>>(callback: MapCallback, P2>, P3>, U>, prop1: P1, prop2: P2, prop3: P3): U[]; - map, P3 extends IterProperties>, P4 extends IterProperties, P3>>>(callback: MapCallback, P2>, P3>, P4>, U>, prop1: P1, prop2: P2, prop3: P3, prop4: P4): U[]; - map(callback: MapCallback, prop1: P, prop2: P, prop3: P, prop4: P, ...props: P[]): U[]; -}; - -// Reexporting the Doc type mostly because it's annoying to have to reference -// type so deeply in the Prettier namespace. Also because we only really want to -// be pulling in types from this file as they're less likely to change. -export type Doc = Prettier.doc.builders.Doc; - -// This is the same embed as is present in prettier, except that it's required. -export type Embed = Required>["embed"]; - -// These are the regular options from prettier except they also include all of -// the options we defined in our plugin configuration. -export type Options = Prettier.ParserOptions & { - printer: RequiredKeys, - rubyArrayLiteral: boolean, - rubyHashLabel: boolean, - rubyModifier: boolean, - rubySingleQuote: boolean, - rubyToProc: boolean -}; - -// hasPragma was not required, but since we're testing it explicitly we're going -// to add that into the parser object as being required. Additionally we're -// going to change the signature of our parse function to accept our options as -// opposed to the generic options that don't contain the options we defined in -// our plugin configuration. -export type Parser = Omit, "hasPragma" | "parse"> & Required, "hasPragma">> & { - parse: (text: string, parsers: { [name: string]: Prettier.Parser }, options: Options) => any -}; - -// We're overwriting a bunch of function here that walk around the tree here -// because if you restrict the AST for the main path then presumably you're -// printing a lower node in the tree that won't match the current AST type. -export type Path = Omit, keyof StrictPath> & StrictPath; - -// The printer from prettier is missing a couple of keys. We should presumably -// upstream this so that it's accurate in all plugins. -export type PrinterConfig = Omit, "insertPragma" | "print"> & Required, "insertPragma">> & { - getCommentChildNodes?: (node: any) => any[], - isBlockComment?: (comment: any, options: Options) => boolean, - print: Printer -}; - -// This is the regular print node, except it's not restricted by the AST that -// is passed to the parent AST. That's because when you're using it, you are not -// typically printing the same node type again. -export type Print = (path: Path) => Doc; - -// This is the regular printer, except it uses our overridden options and print -// types. -export type Printer = (path: Path, options: Options, print: Print) => Doc; diff --git a/src/types/ruby.ts b/src/types/ruby.ts deleted file mode 100644 index 56c3a4c5..00000000 --- a/src/types/ruby.ts +++ /dev/null @@ -1,228 +0,0 @@ -// This file contains all of the types that represent objects being returned -// from our ripper-based parser. - -// These are common additions to the various node types. -type Comments = { comments?: Comment[] }; -export type Location = [number, number, number, number]; - -// These are utility types used to construct the various node types. -type ScannerEvent = { type: T, value: string, loc: Location } & Comments; -type ParserEvent0 = { type: T, value: string, loc: Location } & Comments; -type ParserEvent> = { type: T, loc: Location } & Comments & V; - -// This is the main expression type that goes in places where the AST will -// accept just about anything. -// eslint-disable-next-line @typescript-eslint/ban-types -export type AnyNode = AccessCtrl | Alias | Aref | ArefField | ArgParen | Args | ArgsAddBlock | ArgsForward | ArgStar | Array | Aryptn | Assign | Assoc | AssocSplat | AssoclistFromArgs | BEGIN | Backref | Backtick | BareAssocHash | Begin | Binary | BlockVar | Blockarg | Bodystmt | BraceBlock | Break | CVar | Call | Case | Char | Class | Command | CommandCall | Const | ConstPathField | ConstPathRef | ConstRef | Def | Defined | Defs | DefEndless | DoBlock | Dot2 | Dot3 | DynaSymbol | END | Else | Elsif | EndContent | Ensure | ExcessedComma | Fcall | Field | Float | FndPtn | For | GVar | Hash | Heredoc | HeredocBegin | Hshptn | IVar | Identifier | If | IfModifier | Imaginary | In | Int | Keyword | KeywordRestParam | Label | Lambda | Lbrace | Lparen | Massign | MethodAddArg | MethodAddBlock | Mlhs | MlhsParen | Module | Mrhs | MrhsAddStar | MrhsNewFromArgs | Next | Not | Op | Opassign | Params | Paren | Period | Program | Qwords | Qsymbols | Rassign | Rational | Redo | RegexpLiteral | Rescue | RescueEx | RescueModifier | RestParam | Retry | Return | Return0 | Sclass | Statements | StringConcat | StringDVar | StringEmbExpr | StringLiteral | Super | Symbols | SymbolLiteral | TStringContent | Ternary | TopConstField | TopConstRef | Unary | Undef | Unless | UnlessModifier | Until | UntilModifier | VCall | VarAlias | VarField | VarRef | VoidStmt | When | While | WhileModifier | Word | Words | XStringLiteral | Yield | Yield0 | Zsuper - -// This is a special scanner event that contains a comment. It can be attached -// to almost any kind of node, which is why it's pulled out here separately. -type UndecoratedComment = { type: "comment", value: string, inline: boolean, loc: Location }; -type UndecoratedEmbDoc = { type: "embdoc", value: string, loc: Location }; - -// Prettier will attach various metadata to comment nodes, which we're adding in -// to the type here. -type CommentDecorations = { leading: boolean, printed: boolean }; -export type Comment = UndecoratedComment & CommentDecorations; -export type EmbDoc = UndecoratedEmbDoc & CommentDecorations; - -// These are the scanner events that contain only a single string. They're -// always leaves in the tree. Ignored ones that can't show up in the tree but -// are present in ripper include: -// -// comma, embdoc, embdoc_beg, embdoc_end, embexpr_beg, embexpr_end, embvar, -// heredoc_end, ignored_nl, ignored_sp, label_end, lbracket, nl, qsymbols_beg, -// qwords_beg, rbrace, rbracket, regexp_beg, regexp_end, rparen, semicolon, sp, -// symbbeg, symbols_beg, tlambda, tlambeg, tstring_beg, tstring_nd, words_beg, -// words_sep -// -export type Backref = ScannerEvent<"backref">; -export type Backtick = ScannerEvent<"backtick">; -export type Char = ScannerEvent<"CHAR">; -export type Const = ScannerEvent<"const">; -export type CVar = ScannerEvent<"cvar">; -export type EndContent = ScannerEvent<"__end__">; -export type Float = ScannerEvent<"float">; -export type GVar = ScannerEvent<"gvar">; -export type HeredocBegin = ScannerEvent<"heredoc_beg">; -export type Identifier = ScannerEvent<"ident">; -export type Imaginary = ScannerEvent<"imaginary">; -export type Int = ScannerEvent<"int">; -export type IVar = ScannerEvent<"ivar">; -export type Keyword = ScannerEvent<"kw">; -export type Label = ScannerEvent<"label">; -export type Lbrace = ScannerEvent<"lbrace">; -export type Lparen = ScannerEvent<"lparen">; -export type Op = ScannerEvent<"op">; -export type Period = ScannerEvent<"period">; -export type Rational = ScannerEvent<"rational">; -export type TStringContent = ScannerEvent<"tstring_content">; - -// These are the parser events that don't receive any arguments. (In earlier -// versions of ripper they were scanner events, now they're parser events with -// arity 0.) Ignored ones that can't show up in the tree but are present in -// ripper include: -// -// args_new, mlhs_new, mrhs_new, qsymbols_new, qwords_new, regexp_new, -// stmts_new, string_content, symbols_new, word_new, words_new, xstring_new -// -export type ArgsForward = ParserEvent0<"args_forward">; -export type ExcessedComma = ParserEvent0<"excessed_comma">; -export type Redo = ParserEvent0<"redo">; -export type Retry = ParserEvent0<"retry">; -export type Return0 = ParserEvent0<"return0">; -export type VoidStmt = { type: "void_stmt", loc: Location } & Comments; -export type Yield0 = ParserEvent0<"yield0">; -export type Zsuper = ParserEvent0<"zsuper">; - -// Below are various parser events grouped by their relative functionality. -// The grouping is pretty loose, but it should convey a certain sense of the -// area of Ruby that it's related to. It does not include certain events that -// are present in ripper that we remove from tree before they get to this -// form, including: -// -// heredoc_dedent, magic_comment, nokw_param, symbol -// - -// These are various parser events that have to do with string or string-like -// nodes. -export type StringContent = StringDVar | StringEmbExpr | TStringContent; -export type DynaSymbol = ParserEvent<"dyna_symbol", { parts: StringContent[], quote: string }>; -export type Heredoc = ParserEvent<"heredoc", { beging: HeredocBegin, ending: string, parts: StringContent[] }>; -export type RegexpLiteral = ParserEvent<"regexp_literal", { parts: StringContent[], beging: string, ending: string }>; -export type StringConcat = ParserEvent<"string_concat", { left: StringConcat | StringLiteral, right: StringLiteral }>; -export type StringDVar = ParserEvent<"string_dvar", { var: Backref | VarRef }>; -export type StringEmbExpr = ParserEvent<"string_embexpr", { stmts: Statements }>; -export type StringLiteral = ParserEvent<"string_literal", { parts: StringContent[], quote: string }>; -export type SymbolLiteral = ParserEvent<"symbol_literal", { value: Backtick | Const | CVar | GVar | Identifier | IVar | Keyword | Op }>; -export type XStringLiteral = ParserEvent<"xstring_literal", { parts: StringContent[] }>; - -// These are various parser events that have to do with arrays. -export type Array = ParserEvent<"array", { cnts: null | Args }>; -export type Qsymbols = ParserEvent<"qsymbols", { elems: TStringContent[] }>; -export type Qwords = ParserEvent<"qwords", { elems: TStringContent[] }>; -export type Symbols = ParserEvent<"symbols", { elems: Word[] }>; -export type Word = ParserEvent<"word", { parts: StringContent[] }>; -export type Words = ParserEvent<"words", { elems: Word[] }>; - -// These are various parser events that have to do with hashes. -type HashContent = Assoc | AssocSplat; -export type Assoc = ParserEvent<"assoc", { key: AnyNode, value: AnyNode }>; -export type AssocSplat = ParserEvent<"assoc_splat", { value: AnyNode }>; -export type AssoclistFromArgs = ParserEvent<"assoclist_from_args", { assocs: HashContent[] }>; -export type BareAssocHash = ParserEvent<"bare_assoc_hash", { assocs: HashContent[] }>; -export type Hash = ParserEvent<"hash", { cnts: null | AssoclistFromArgs }>; - -// These are various parser events for assignment. -type Assignable = ArefField | ConstPathField | Field | TopConstField | VarField; -export type ArefField = ParserEvent<"aref_field", { collection: AnyNode, index: ArgsAddBlock | null }>; -export type Assign = ParserEvent<"assign", { target: Assignable, value: AnyNode }>; -export type ConstPathField = ParserEvent<"const_path_field", { parent: ConstPathRef | Paren | TopConstRef | VarRef, constant: Const }>; -export type Field = ParserEvent<"field", { parent: AnyNode, op: CallOperator, name: Const | Identifier }>; -export type Opassign = ParserEvent<"opassign", { target: Assignable, op: Op, value: AnyNode }>; -export type TopConstField = ParserEvent<"top_const_field", { constant: Const }>; -export type VarField = ParserEvent<"var_field", { value: null | Const | CVar | GVar | Identifier | IVar }>; - -// These are various parser events that have to do with multiple assignment. -export type Massign = ParserEvent<"massign", { target: Mlhs | MlhsParen, value: AnyNode }>; -export type Mlhs = ParserEvent<"mlhs", { parts: (ArefField | Field | Identifier | MlhsParen | VarField)[], comma: undefined | true }>; -export type MlhsParen = ParserEvent<"mlhs_paren", { cnts: Mlhs | MlhsParen }>; -export type Mrhs = ParserEvent<"mrhs", { parts: AnyNode[] }>; -export type MrhsAddStar = ParserEvent<"mrhs_add_star", { mrhs: Mrhs | MrhsNewFromArgs, star: AnyNode }>; -export type MrhsNewFromArgs = ParserEvent<"mrhs_new_from_args", { args: Args }>; - -// These are various parser events for control flow constructs. -export type Case = ParserEvent<"case", { value: AnyNode, cons: In | When }>; -export type Else = ParserEvent<"else", { stmts: Statements }>; -export type Elsif = ParserEvent<"elsif", { pred: AnyNode, stmts: Statements, cons: null | Elsif | Else }>; -export type Ensure = ParserEvent<"ensure", { keyword: Keyword, stmts: Statements }>; -export type For = ParserEvent<"for", { index: Mlhs | VarField, collection: AnyNode, stmts: Statements }>; -export type If = ParserEvent<"if", { pred: AnyNode, stmts: Statements, cons: null | Elsif | Else }>; -export type IfModifier = ParserEvent<"if_mod", { pred: AnyNode, stmt: AnyNode }>; -export type In = ParserEvent<"in", { pattern: AnyNode, stmts: Statements, cons: null | In | Else }>; -export type Rescue = ParserEvent<"rescue", { extn: null | RescueEx, stmts: Statements, cons: null | Rescue }>; -export type RescueEx = ParserEvent<"rescue_ex", { extns: AnyNode, var: null | Field | VarField }>; -export type RescueModifier = ParserEvent<"rescue_mod", { stmt: AnyNode, value: AnyNode }>; -export type Ternary = ParserEvent<"ifop", { pred: AnyNode, tthy: AnyNode, flsy: AnyNode }>; -export type Unless = ParserEvent<"unless", { pred: AnyNode, stmts: Statements, cons: null | Elsif | Else }>; -export type UnlessModifier = ParserEvent<"unless_mod", { pred: AnyNode, stmt: AnyNode }>; -export type Until = ParserEvent<"until", { pred: AnyNode, stmts: Statements }>; -export type UntilModifier = ParserEvent<"until_mod", { pred: AnyNode, stmt: AnyNode }>; -export type When = ParserEvent<"when", { args: Args, stmts: Statements, cons: null | Else | When }>; -export type While = ParserEvent<"while", { pred: AnyNode, stmts: Statements }>; -export type WhileModifier = ParserEvent<"while_mod", { pred: AnyNode, stmt: AnyNode }>; - -// These are various parser events for control flow keywords. -export type Break = ParserEvent<"break", { args: Args | ArgsAddBlock }>; -export type Next = ParserEvent<"next", { args: Args | ArgsAddBlock }>; -export type Return = ParserEvent<"return", { args: Args | ArgsAddBlock }>; -export type Super = ParserEvent<"super", { args: Args | ArgParen | ArgsAddBlock }>; -export type Yield = ParserEvent<"yield", { args: ArgsAddBlock | Paren }>; - -// These are various parser events for pattern matching. -export type Aryptn = ParserEvent<"aryptn", { constant: null | VarRef, reqs: AnyNode[], rest: null | VarField, posts: AnyNode[] }>; -export type FndPtn = ParserEvent<"fndptn", { constant: null | AnyNode, left: VarField, values: AnyNode[], right: VarField }>; -export type Hshptn = ParserEvent<"hshptn", { constant: null | AnyNode, keywords: [Label, AnyNode][], kwrest: null | VarField }>; -export type Rassign = ParserEvent<"rassign", { value: AnyNode, op: Op | Keyword, pattern: AnyNode }>; - -// These are various parser events for method declarations. -type DefName = Backtick | Const | Identifier | Keyword | Op; -type ParenAroundParams = Omit & { cnts: Params }; - -export type Blockarg = ParserEvent<"blockarg", { name: Identifier }>; -export type Def = ParserEvent<"def", { name: DefName, params: Params | Paren, bodystmt: Bodystmt }>; -export type Defs = ParserEvent<"defs", { target: AnyNode, op: Op | Period, name: DefName, params: Params | Paren, bodystmt: Bodystmt }>; -export type DefEndless = ParserEvent<"def_endless", { name: DefName, paren: null | ParenAroundParams, stmt: AnyNode }>; -export type KeywordRestParam = ParserEvent<"kwrest_param", { name: null | Identifier }>; -export type Lambda = ParserEvent<"lambda", { params: Params | ParenAroundParams, stmts: Bodystmt | Statements }>; -export type Params = ParserEvent<"params", { reqs: Identifier[], opts: [Identifier, AnyNode][], rest: null | ArgsForward | ExcessedComma | RestParam, posts: Identifier[], keywords: [Label, AnyNode][], kwrest: null | "nil" | KeywordRestParam, block: null | Blockarg }>; -export type RestParam = ParserEvent<"rest_param", { name: null | Identifier }>; - -// These are various parser events for method calls. -export type CallOperator = Op | Period | "::"; -export type ArgParen = ParserEvent<"arg_paren", { args: Args | ArgsAddBlock | ArgsForward | null }>; -export type Args = ParserEvent<"args", { parts: AnyNode[] }>; -export type ArgsAddBlock = ParserEvent<"args_add_block", { args: Args, block: null | AnyNode }>; -export type ArgStar = ParserEvent<"arg_star", { value: AnyNode }>; -export type BlockVar = ParserEvent<"block_var", { params: Params, locals: Identifier[] }>; -export type BraceBlock = ParserEvent<"brace_block", { lbrace: Lbrace, block_var: null | BlockVar, stmts: Statements }>; -export type Call = ParserEvent<"call", { receiver: AnyNode, op: CallOperator, message: Backtick | Op | Identifier | Const | "call" }>; -export type Command = ParserEvent<"command", { message: Const | Identifier, args: Args | ArgsAddBlock }>; -export type CommandCall = ParserEvent<"command_call", { receiver: AnyNode, op: CallOperator, message: Op | Identifier | Const, args: Args | ArgsAddBlock }>; -export type DoBlock = ParserEvent<"do_block", { keyword: Keyword, block_var: null | BlockVar, bodystmt: Bodystmt }>; -export type Fcall = ParserEvent<"fcall", { value: Const | Identifier }>; -export type MethodAddArg = ParserEvent<"method_add_arg", { call: Call | Fcall, args: Args | ArgParen | ArgsAddBlock }>; -export type MethodAddBlock = ParserEvent<"method_add_block", { call: AnyNode, block: BraceBlock | DoBlock }>; -export type VCall = ParserEvent<"vcall", { value: Identifier }>; - -// These are various parser events for statements you would find in a method body. -type Dot = { left: AnyNode, right: AnyNode } | { left: null, right: AnyNode } | { left: AnyNode, right: null }; -export type Aref = ParserEvent<"aref", { collection: AnyNode, index: Args | ArgsAddBlock | null }>; -export type BEGIN = ParserEvent<"BEGIN", { lbrace: Lbrace, stmts: Statements }>; -export type Binary = ParserEvent<"binary", { left: AnyNode, op: string, right: AnyNode }>; -export type ConstPathRef = ParserEvent<"const_path_ref", { parent: AnyNode, constant: Const }>; -export type ConstRef = ParserEvent<"const_ref", { constant: Const }>; -export type Defined = ParserEvent<"defined", { value: AnyNode }>; -export type Dot2 = ParserEvent<"dot2", Dot>; -export type Dot3 = ParserEvent<"dot3", Dot>; -export type END = ParserEvent<"END", { lbrace: Lbrace, stmts: Statements }>; -export type Not = ParserEvent<"not", { value: AnyNode, paren: boolean }>; -export type Paren = ParserEvent<"paren", { lparen: Lparen, cnts: AnyNode }>; -export type TopConstRef = ParserEvent<"top_const_ref", { constant: Const }>; -export type Unary = ParserEvent<"unary", { value: AnyNode, op: string }>; -export type VarRef = ParserEvent<"var_ref", { value: Const | CVar | GVar | Identifier | IVar | Keyword }>; - -// These are various parser events for statements you would find in a class definition body. -export type AccessCtrl = ParserEvent<"access_ctrl", { value: Identifier }>; -export type Alias = ParserEvent<"alias", { left: DynaSymbol | SymbolLiteral, right: DynaSymbol | SymbolLiteral }>; -export type Class = ParserEvent<"class", { constant: ConstPathRef | ConstRef | TopConstRef, superclass: null | AnyNode, bodystmt: Bodystmt }>; -export type Module = ParserEvent<"module", { constant: ConstPathRef | ConstRef | TopConstRef, bodystmt: Bodystmt }>; -export type Sclass = ParserEvent<"sclass", { target: AnyNode, bodystmt: Bodystmt }>; -export type VarAlias = ParserEvent<"var_alias", { left: GVar, right: Backref | GVar }>; -export type Undef = ParserEvent<"undef", { syms: (DynaSymbol | SymbolLiteral)[] }>; - -// These are various parser events for statement containers, generally pretty high in the tree. -export type Begin = ParserEvent<"begin", { bodystmt: Bodystmt }>; -export type Bodystmt = ParserEvent<"bodystmt", { stmts: Statements, rsc: null | Rescue, els: null | Statements, ens: null | Ensure }>; -export type Program = ParserEvent<"program", { stmts: Statements }>; -export type Statements = ParserEvent<"statements", { body: AnyNode[] }>; diff --git a/src/types/utils.ts b/src/types/utils.ts deleted file mode 100644 index cdd68a5e..00000000 --- a/src/types/utils.ts +++ /dev/null @@ -1,24 +0,0 @@ -// The type of elements that make up the given array T. -export type ArrayElement = T extends (infer E)[] ? E : never; - -// A union of the properties of the given object that are arrays. -export type ArrayProperties = { [K in keyof T]: T[K] extends any[] ? K : never }[keyof T]; - -// A union of the properties of the given array T that can be used to index it. -// If the array is a tuple, then that's going to be the explicit indices of the -// array, otherwise it's going to just be number. -export type IndexProperties = IsTuple extends true ? Exclude["length"], T["length"]> : number; - -// Effectively performing T[P], except that it's telling TypeScript that it's -// safe to do this for tuples, arrays, or objects. -export type IndexValue = T extends any[] ? P extends number ? T[P] : never : P extends keyof T ? T[P] : never; - -// Determines if an object T is an array like string[] (in which case this -// evaluates to false) or a tuple like [string] (in which case this evaluates to -// true). -// eslint-disable-next-line @typescript-eslint/no-unused-vars -type IsTuple = T extends [] ? true : T extends [infer First, ...infer Remain] ? IsTuple : false; - -// The same object T as currently exists, except the keys provided by P are -// required instead of optional. -export type RequiredKeys = T & Required>; diff --git a/src/utils.ts b/src/utils.ts deleted file mode 100644 index 0d397944..00000000 --- a/src/utils.ts +++ /dev/null @@ -1,13 +0,0 @@ -export { default as containsAssignment } from "./utils/containsAssignment"; -export { default as getTrailingComma } from "./utils/getTrailingComma"; -export { default as isEmptyBodyStmt } from "./utils/isEmptyBodyStmt"; -export { default as isEmptyParams } from "./utils/isEmptyParams"; -export { default as isEmptyStmts } from "./utils/isEmptyStmts"; -export { default as getChildNodes } from "./utils/getChildNodes"; -export { default as hasAncestor } from "./utils/hasAncestor"; -export { default as inlineEnsureParens } from "./utils/inlineEnsureParens"; -export { default as literallineWithoutBreakParent } from "./utils/literallineWithoutBreakParent"; -export { default as makeCall } from "./utils/makeCall"; -export { default as noIndent } from "./utils/noIndent"; -export { default as printEmptyCollection } from "./utils/printEmptyCollection"; -export { default as skipAssignIndent } from "./utils/skipAssignIndent"; diff --git a/src/utils/containsAssignment.ts b/src/utils/containsAssignment.ts deleted file mode 100644 index cb9e9cfe..00000000 --- a/src/utils/containsAssignment.ts +++ /dev/null @@ -1,18 +0,0 @@ -import type { Ruby } from "../types"; -import getChildNodes from "./getChildNodes"; - -// If the node is a type of assignment or if the node is a paren and nested -// inside that paren is a node that is a type of assignment. -function containsAssignment(node: null | Ruby.AnyNode | Ruby.Statements) { - if (!node) { - return false; - } - - if (["assign", "massign", "opassign"].includes(node.type)) { - return true; - } - - return getChildNodes(node).some(containsAssignment); -} - -export default containsAssignment; diff --git a/src/utils/getTrailingComma.ts b/src/utils/getTrailingComma.ts deleted file mode 100644 index 41e17724..00000000 --- a/src/utils/getTrailingComma.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { Plugin } from "../types"; - -function getTrailingComma(opts: Plugin.Options) { - return ["all", "es5"].includes(opts.trailingComma); -} - -export default getTrailingComma; diff --git a/src/utils/hasAncestor.ts b/src/utils/hasAncestor.ts deleted file mode 100644 index 6cf917e6..00000000 --- a/src/utils/hasAncestor.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { Plugin } from "../types"; - -function hasAncestor(path: Plugin.Path<{ type: string }>, types: string[]) { - let parent = 0; - let parentNode = path.getParentNode(); - - while (parentNode) { - if (types.includes(parentNode.type)) { - return true; - } - - parent += 1; - parentNode = path.getParentNode(parent); - } - - return false; -} - -export default hasAncestor; diff --git a/src/utils/inlineEnsureParens.ts b/src/utils/inlineEnsureParens.ts deleted file mode 100644 index 4f5938f2..00000000 --- a/src/utils/inlineEnsureParens.ts +++ /dev/null @@ -1,55 +0,0 @@ -import type { Plugin, Ruby } from "../types"; - -const needsParens = [ - "args", - "assign", - "assoc", - "binary", - "call", - "massign", - "opassign" -]; - -// If you have a modifier statement (for instance an inline if statement or an -// inline while loop) there are times when you need to wrap the entire statement -// in parentheses. This occurs when you have something like: -// -// foo[:foo] = -// if bar? -// baz -// end -// -// Normally we would shorten this to an inline version, which would result in: -// -// foo[:foo] = baz if bar? -// -// but this actually has different semantic meaning. The first example will -// result in a nil being inserted into the hash for the :foo key, whereas the -// second example will result in an empty hash because the if statement applies -// to the entire assignment. -// -// We can fix this in a couple of ways. We can use the then keyword, as in: -// -// foo[:foo] = if bar? then baz end -// -// but I haven't actually seen this anywhere. We can also just leave it as is -// with the multi-line version, but for a short predicate and short value it -// looks pretty silly. The last option and the one I've selected here is to add -// parentheses on both sides of the expression, as in: -// -// foo[:foo] = (baz if bar?) -// -// This approach maintains the nice conciseness of the inline version, while -// keeping the correct semantic meaning. -function inlineEnsureParens( - path: Plugin.Path, - parts: Plugin.Doc[] -) { - if (needsParens.includes(path.getParentNode().type)) { - return ["(", ...parts, ")"]; - } - - return parts; -} - -export default inlineEnsureParens; diff --git a/src/utils/isEmptyBodyStmt.ts b/src/utils/isEmptyBodyStmt.ts deleted file mode 100644 index 842718e9..00000000 --- a/src/utils/isEmptyBodyStmt.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { Ruby } from "../types"; -import isEmptyStmts from "./isEmptyStmts"; - -function isEmptyBodyStmt(node: Ruby.Bodystmt) { - return isEmptyStmts(node.stmts) && !node.rsc && !node.ens && !node.els; -} - -export default isEmptyBodyStmt; diff --git a/src/utils/isEmptyParams.ts b/src/utils/isEmptyParams.ts deleted file mode 100644 index c4a25e68..00000000 --- a/src/utils/isEmptyParams.ts +++ /dev/null @@ -1,15 +0,0 @@ -import type { Ruby } from "../types"; - -function isEmptyParams(node: Ruby.Params) { - return ( - node.reqs.length === 0 && - node.opts.length === 0 && - !node.rest && - node.posts.length === 0 && - node.keywords.length === 0 && - !node.kwrest && - !node.block - ); -} - -export default isEmptyParams; diff --git a/src/utils/isEmptyStmts.ts b/src/utils/isEmptyStmts.ts deleted file mode 100644 index b80a7265..00000000 --- a/src/utils/isEmptyStmts.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { Ruby } from "../types"; - -function isEmptyStmts(node: Ruby.AnyNode | Ruby.Statements) { - return ( - node && - node.type === "statements" && - node.body.length === 1 && - node.body[0].type === "void_stmt" && - !node.body[0].comments - ); -} - -export default isEmptyStmts; diff --git a/src/utils/literallineWithoutBreakParent.ts b/src/utils/literallineWithoutBreakParent.ts deleted file mode 100644 index 4262f364..00000000 --- a/src/utils/literallineWithoutBreakParent.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Plugin } from "../types"; - -const literallineWithoutBreakParent = { - type: "line", - hard: true, - literal: true -} as Plugin.Doc; - -export default literallineWithoutBreakParent; diff --git a/src/utils/makeCall.ts b/src/utils/makeCall.ts deleted file mode 100644 index f9338d70..00000000 --- a/src/utils/makeCall.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { Plugin, Ruby } from "../types"; - -type Callable = Ruby.Call | Ruby.CommandCall | Ruby.Field; - -const makeCall: Plugin.Printer = (path, opts, print) => { - const node = path.getValue(); - const operator = node.op; - - // Ignoring the next block for coverage information because it's only relevant - // in Ruby 2.5 and below. - /* istanbul ignore next */ - if ([".", "&."].includes(operator as any)) { - return operator as Plugin.Doc; - } - - return operator === "::" ? "." : path.call(print, "op"); -}; - -export default makeCall; diff --git a/src/utils/noIndent.ts b/src/utils/noIndent.ts deleted file mode 100644 index defbd741..00000000 --- a/src/utils/noIndent.ts +++ /dev/null @@ -1,10 +0,0 @@ -const noIndent = [ - "array", - "hash", - "heredoc", - "if", - "unless", - "xstring_literal" -]; - -export default noIndent; diff --git a/src/utils/printEmptyCollection.ts b/src/utils/printEmptyCollection.ts deleted file mode 100644 index c3dc4714..00000000 --- a/src/utils/printEmptyCollection.ts +++ /dev/null @@ -1,58 +0,0 @@ -import type { Plugin, Ruby, RequiredKeys } from "../types"; -import prettier from "../prettier"; -import { getEndChar, getStartChar } from "../ruby/location"; - -const { group, hardline, indent, join, line } = prettier; - -function containedWithin(node: Ruby.Array | Ruby.Hash) { - return function containedWithinNode(comment: Ruby.Comment) { - return ( - getStartChar(comment.loc) >= getStartChar(node.loc) && - getEndChar(comment.loc) <= getEndChar(node.loc) - ); - }; -} - -// Empty collections are array or hash literals that do not contain any -// contents. They can, however, have comments inside the body. You can solve -// this by having a child node inside the array that gets the comments attached -// to it, but that requires modifying the parser. Instead, we can just manually -// print out the non-leading comments here. -function printEmptyCollection( - path: Plugin.Path, - opts: Plugin.Options, - startToken: string, - endToken: string -) { - const node = path.getValue(); - const containedWithinNode = containedWithin(node); - - // If there are no comments or only leading comments, then we can just print - // out the start and end token and be done, as there are no comments inside - // the body of this node. - if (!node.comments || !node.comments.some(containedWithinNode)) { - return `${startToken}${endToken}`; - } - - const comments: Plugin.Doc[] = []; - const nodePath = path as Plugin.Path>; - - // For each comment, go through its path and print it out manually. - nodePath.each((commentPath) => { - const comment = commentPath.getValue(); - - if (containedWithinNode(comment)) { - comment.printed = true; - comments.push(opts.printer.printComment(commentPath, opts)); - } - }, "comments"); - - return group([ - startToken, - indent([hardline, join(hardline, comments)]), - line, - endToken - ]); -} - -export default printEmptyCollection; diff --git a/src/utils/skipAssignIndent.ts b/src/utils/skipAssignIndent.ts deleted file mode 100644 index c0420d58..00000000 --- a/src/utils/skipAssignIndent.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { Ruby } from "../types"; - -const skippable = [ - "array", - "dyna_symbol", - "hash", - "heredoc", - "lambda", - "qsymbols", - "qwords", - "regexp_literal", - "symbols", - "words" -]; - -function skipAssignIndent(node: Ruby.AnyNode): boolean { - return ( - skippable.includes(node.type) || - (node.type === "call" && skipAssignIndent(node.receiver)) - ); -} - -export default skipAssignIndent; diff --git a/test/js/ruby/toProc.test.ts b/test/js/ruby/toProc.test.ts deleted file mode 100644 index a10b746c..00000000 --- a/test/js/ruby/toProc.test.ts +++ /dev/null @@ -1,210 +0,0 @@ -import { ruby } from "../utils"; - -describe("to_proc transform", () => { - test("basic inline", () => { - expect("loop { |i| i.to_s }").toChangeFormat("loop(&:to_s)", { - rubyToProc: true - }); - }); - - test("basic inline with option turned off", () => { - expect("loop { |i| i.to_s }").toMatchFormat({ rubyToProc: false }); - }); - - test("basic multi-line", () => { - const content = ruby(` - list.each do |node| - node.print - end - `); - - expect(content).toChangeFormat("list.each(&:print)", { - rubyToProc: true - }); - }); - - test("maintains to_proc if already in use when rubyToProc false", () => { - expect("loop(&:to_s)").toMatchFormat({ rubyToProc: false }); - }); - - test("maintains to_proc if already in use when rubyToProc true", () => { - expect("loop(&:to_s)").toMatchFormat({ rubyToProc: true }); - }); - - test("multi-line with comment", () => { - const content = ruby(` - foo.each do |bar| - # comment - bar.baz - end - `); - - expect(content).toMatchFormat({ rubyToProc: true }); - }); - - test("happens for command nodes", () => { - const content = ruby(` - command 'foo' do |bar| - bar.to_s - end - `); - - expect(content).toChangeFormat("command 'foo', &:to_s", { - rubyToProc: true - }); - }); - - test("happens for command call nodes", () => { - const content = ruby(` - command.call 'foo' do |bar| - bar.to_s - end - `); - - expect(content).toChangeFormat("command.call 'foo', &:to_s", { - rubyToProc: true - }); - }); - - test("with args and parens", () => { - expect("foo(bar) { |baz| baz.to_i }").toChangeFormat("foo(bar, &:to_i)", { - rubyToProc: true - }); - }); - - test("with commands", () => { - const content = ruby(` - command bar do |baz| - baz.to_i - end - `); - - expect(content).toChangeFormat("command bar, &:to_i", { - rubyToProc: true - }); - }); - - test("with command calls", () => { - const content = ruby(` - command.call bar do |baz| - baz.to_i - end - `); - - expect(content).toChangeFormat("command.call bar, &:to_i", { - rubyToProc: true - }); - }); - - test("when inside of an aref node", () => { - const content = "foo[:bar].each { |baz| baz.to_s }"; - const expected = "foo[:bar].each(&:to_s)"; - - expect(content).toChangeFormat(expected, { rubyToProc: true }); - }); - - describe("when not to transform", () => { - test("when called with &.", () => { - const content = "loop { |i| i&.to_s }"; - - expect(content).toMatchFormat({ rubyToProc: true }); - }); - - test("when there are multiple lines", () => { - const content = ruby(` - loop do |i| - i.to_s - i.next - end - `); - - expect(content).toMatchFormat({ rubyToProc: true }); - }); - - test("when there is a rescue, else, or ensure", () => { - const content = ruby(` - loop do |i| - i.to_s - rescue Foo - foo - end - `); - - expect(content).toMatchFormat({ rubyToProc: true }); - }); - - test("when there are args to the method call", () => { - const content = "loop { |i| i.to_s(:db) }"; - - expect(content).toMatchFormat({ rubyToProc: true }); - }); - - test("when there are multiple args", () => { - const content = "loop { |i, j| i.to_s }"; - - expect(content).toMatchFormat({ rubyToProc: true }); - }); - - test("when we're inside an if:", () => { - const content = "{ if: proc { |i| i.to_s } }"; - - expect(content).toMatchFormat({ rubyToProc: true }); - }); - - test("when we're inside an :if =>", () => { - const content = "{ :if => proc { |i| i.to_s } }"; - const expected = "{ if: proc { |i| i.to_s } }"; - - expect(content).toChangeFormat(expected, { rubyToProc: true }); - }); - - test("when we're inside a regular hash", () => { - const content = "{ when: proc { |i| i.to_s } }"; - const expected = "{ when: proc(&:to_s) }"; - - expect(content).toChangeFormat(expected, { rubyToProc: true }); - }); - - test("when we're inside a regular hash", () => { - const content = "{ when: proc { |i| i.to_s } }"; - const expected = "{ when: proc(&:to_s) }"; - - expect(content).toChangeFormat(expected, { rubyToProc: true }); - }); - - test("when there are no variables", () => { - expect("loop { i.to_s }").toMatchFormat({ rubyToProc: true }); - }); - }); - - describe.each(["if", "unless"])( - "does not transform when used inside hash with %s", - (keyword) => { - test(`hash literal with :${keyword} key`, () => { - expect(`{ ${keyword}: ->(foo) { foo.to_s } }`).toMatchFormat({ - rubyToProc: true - }); - }); - - test(`hash literal with hashrocket :${keyword} key`, () => { - expect(`{ :${keyword} => ->(foo) { foo.to_s } }`).toMatchFormat({ - rubyHashLabel: false, - rubyToProc: true - }); - }); - - test(`method arguments with :${keyword} key`, () => { - expect(`bar ${keyword}: ->(foo) { foo.to_s }`).toMatchFormat({ - rubyToProc: true - }); - }); - - test(`method arguments with hashrocket :${keyword} key`, () => { - expect(`bar :${keyword} => ->(foo) { foo.to_s }`).toMatchFormat({ - rubyHashLabel: false, - rubyToProc: true - }); - }); - } - ); -}); diff --git a/test/js/setupTests.ts b/test/js/setupTests.ts index d6bb28d5..8f5c23b4 100644 --- a/test/js/setupTests.ts +++ b/test/js/setupTests.ts @@ -1,10 +1,17 @@ import prettier from "prettier"; +import type * as Prettier from "prettier"; -import type { Plugin } from "../../src/types"; import type { Code } from "./types"; import plugin from "../../src/plugin"; -type Config = Partial; +type Config = Partial & { + printer: Omit & { printComment: () => any }, + rubyArrayLiteral: boolean, + rubyHashLabel: boolean, + rubyModifier: boolean, + rubySingleQuote: boolean, + rubyToProc: boolean +}>; function normalize(code: Code) { const string = typeof code === "string" ? code : code.code; From ea6c1c6a490575377c2f64a6553843d8609409e8 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 6 Apr 2022 22:39:48 -0400 Subject: [PATCH 048/262] Start cleaning up Ruby tests --- package.json | 2 +- src/{parser => }/getInfo.js | 0 src/{parser => }/netcat.js | 0 src/{parser => }/parseSync.ts | 13 +++------- src/plugin.ts | 2 +- src/{parser => }/server.rb | 0 test/js/globalSetup.ts | 6 ++--- test/js/ruby/errors.test.ts | 7 ------ test/js/ruby/locations.test.ts | 10 -------- test/js/ruby/pragma.test.ts | 46 ---------------------------------- 10 files changed, 8 insertions(+), 78 deletions(-) rename src/{parser => }/getInfo.js (100%) rename src/{parser => }/netcat.js (100%) rename src/{parser => }/parseSync.ts (95%) rename src/{parser => }/server.rb (100%) delete mode 100644 test/js/ruby/locations.test.ts delete mode 100644 test/js/ruby/pragma.test.ts diff --git a/package.json b/package.json index fd51b2bf..a8a44b3f 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "checkFormat": "prettier --check '**/*'", "lint": "eslint --cache .", - "prepublishOnly": "tsc -p tsconfig.build.json && cp src/parser/getInfo.js dist/parser && cp src/parser/netcat.js dist/parser && cp src/parser/server.rb dist/parser && cp src/haml/parser.rb dist/haml && cp src/rbs/parser.rb dist/rbs && cp src/ruby/parser.rb dist/ruby", + "prepublishOnly": "tsc -p tsconfig.build.json && cp src/getInfo.js dist && cp src/netcat.js dist && cp src/server.rb dist", "test": "jest" }, "repository": { diff --git a/src/parser/getInfo.js b/src/getInfo.js similarity index 100% rename from src/parser/getInfo.js rename to src/getInfo.js diff --git a/src/parser/netcat.js b/src/netcat.js similarity index 100% rename from src/parser/netcat.js rename to src/netcat.js diff --git a/src/parser/parseSync.ts b/src/parseSync.ts similarity index 95% rename from src/parser/parseSync.ts rename to src/parseSync.ts index 388b7313..cdfc7ede 100644 --- a/src/parser/parseSync.ts +++ b/src/parseSync.ts @@ -77,16 +77,9 @@ function spawnServer(): ParserArgs { // the Ruby server or the getInfo.js script directly. Instead, we need to copy them and all // the files they depend on to a temporary directory. - const sourceFiles = [ - "parser/server.rb", - "parser/getInfo.js", - "parser/netcat.js", - "ruby/parser.rb", - "rbs/parser.rb", - "haml/parser.rb" - ]; - serverRbPath = path.join(tempDir, "parser", "server.rb"); - getInfoJsPath = path.join(tempDir, "parser", "getInfo.js"); + const sourceFiles = ["server.rb", "getInfo.js", "netcat.js"]; + serverRbPath = path.join(tempDir, "server.rb"); + getInfoJsPath = path.join(tempDir, "getInfo.js"); sourceFiles.forEach((rubyFile) => { const destDir = path.join(tempDir, path.dirname(rubyFile)); diff --git a/src/plugin.ts b/src/plugin.ts index 182589ac..2e0c8dfd 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -1,5 +1,5 @@ import type { Plugin, SupportLanguage } from "prettier"; -import parseSync from "./parser/parseSync"; +import parseSync from "./parseSync"; interface ExtendedSupportLanguage extends SupportLanguage { interpreters?: string[] diff --git a/src/parser/server.rb b/src/server.rb similarity index 100% rename from src/parser/server.rb rename to src/server.rb diff --git a/test/js/globalSetup.ts b/test/js/globalSetup.ts index 8cd5001d..90609508 100644 --- a/test/js/globalSetup.ts +++ b/test/js/globalSetup.ts @@ -2,7 +2,7 @@ import { spawn, spawnSync } from "child_process"; import { unlinkSync } from "fs"; import path from "path"; -import { getLang, getInfoFilepath } from "../../src/parser/parseSync"; +import { getLang, getInfoFilepath } from "../../src/parseSync"; // This is somewhat similar to the spawnServer function in parseSync but // slightly different in that it logs its information into environment variables @@ -17,7 +17,7 @@ function globalSetup() { const filepath = getInfoFilepath(); const server = spawn( "ruby", - [path.join(__dirname, "../../src/parser/server.rb"), filepath], + [path.join(__dirname, "../../src/server.rb"), filepath], { env: Object.assign({}, process.env, { LANG: getLang() }), detached: true, @@ -27,7 +27,7 @@ function globalSetup() { // Get the connection information from the parsing server. const information = spawnSync("node", [ - path.join(__dirname, "../../src/parser/getInfo.js"), + path.join(__dirname, "../../src/getInfo.js"), filepath ]); diff --git a/test/js/ruby/errors.test.ts b/test/js/ruby/errors.test.ts index b1054e33..a01611b4 100644 --- a/test/js/ruby/errors.test.ts +++ b/test/js/ruby/errors.test.ts @@ -1,5 +1,4 @@ import prettier from "prettier"; -import printer from "../../../src/ruby/printer"; describe("errors", () => { const cases = [ @@ -20,10 +19,4 @@ describe("errors", () => { expect(format).toThrow(); }); - - test("when encountering an unsupported node type", () => { - const path = { getValue: () => ({ type: "unsupported", body: {} }) }; - - expect(() => (printer as any).print(path)).toThrow("Unsupported"); - }); }); diff --git a/test/js/ruby/locations.test.ts b/test/js/ruby/locations.test.ts deleted file mode 100644 index c3239faa..00000000 --- a/test/js/ruby/locations.test.ts +++ /dev/null @@ -1,10 +0,0 @@ -import parser from "../../../src/ruby/parser"; - -describe("locations", () => { - test("locStart and locEnd are defined", () => { - const { hasOwnProperty } = Object.prototype; - - expect(hasOwnProperty.call(parser, "locStart")).toBe(true); - expect(hasOwnProperty.call(parser, "locEnd")).toBe(true); - }); -}); diff --git a/test/js/ruby/pragma.test.ts b/test/js/ruby/pragma.test.ts deleted file mode 100644 index b763f3e0..00000000 --- a/test/js/ruby/pragma.test.ts +++ /dev/null @@ -1,46 +0,0 @@ -import parser from "../../../src/ruby/parser"; -import printer from "../../../src/ruby/printer"; -import { ruby } from "../utils"; - -describe("pragma", () => { - describe("hasPragma", () => { - test("checks for @prettier comments", () => { - expect(parser.hasPragma("# @prettier")).toBe(true); - }); - - test("checks for @format comments", () => { - expect(parser.hasPragma("# @format")).toBe(true); - }); - - test("does not check for anything else", () => { - expect(parser.hasPragma("# @foobar")).toBe(false); - }); - - test("works when the comment is not on the first line", () => { - const content = ruby(` - # typed: true - # @format - `); - - expect(parser.hasPragma(content)).toBe(true); - }); - }); - - describe("insertPragma", () => { - test("inserts normally", () => { - const content = "foo + bar"; - - expect(printer.insertPragma(content)).toEqual(`# @format\n\n${content}`); - }); - - test("inserts when there is already a comment at the top", () => { - const content = ruby(` - # frozen_string_literal: true - - foo - `); - - expect(printer.insertPragma(content)).toEqual(`# @format\n${content}`); - }); - }); -}); From dbc9a09ab8758a4b279e0e789ca243fee047e6ea Mon Sep 17 00:00:00 2001 From: Drew Bragg Date: Thu, 21 Apr 2022 09:26:13 -0400 Subject: [PATCH 049/262] Fix ignore magic comment test --- test/js/ruby/ignore.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/js/ruby/ignore.test.ts b/test/js/ruby/ignore.test.ts index f0626f20..4983fae5 100644 --- a/test/js/ruby/ignore.test.ts +++ b/test/js/ruby/ignore.test.ts @@ -3,7 +3,7 @@ import { ruby } from "../utils"; describe("ignore", () => { test("you can ignore code blocks", () => { const content = ruby(` - # prettier-ignore + # stree-ignore class Foo; def bar; 1+1+1; end; end `); From 43d7154d1494b5e8cd7ebc97a4c00d04c48f2630 Mon Sep 17 00:00:00 2001 From: Drew Bragg Date: Thu, 21 Apr 2022 09:26:40 -0400 Subject: [PATCH 050/262] Fix whitespace in test --- test/js/ruby/nodes/conditionals.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/test/js/ruby/nodes/conditionals.test.ts b/test/js/ruby/nodes/conditionals.test.ts index 1ca139b8..9cf015bf 100644 --- a/test/js/ruby/nodes/conditionals.test.ts +++ b/test/js/ruby/nodes/conditionals.test.ts @@ -129,7 +129,6 @@ describe("conditionals", () => { test("empty first body with present second body", () => { const content = ruby(` ${keyword} a - else b end From c699d864bd00c2ff87576f175727faa32c4debd3 Mon Sep 17 00:00:00 2001 From: Drew Bragg Date: Thu, 21 Apr 2022 09:27:40 -0400 Subject: [PATCH 051/262] Remove tests referencing `rubyModifier` setting --- test/js/ruby/nodes/conditionals.test.ts | 107 ------------------------ test/js/ruby/nodes/loops.test.ts | 53 ------------ 2 files changed, 160 deletions(-) diff --git a/test/js/ruby/nodes/conditionals.test.ts b/test/js/ruby/nodes/conditionals.test.ts index 9cf015bf..99592a33 100644 --- a/test/js/ruby/nodes/conditionals.test.ts +++ b/test/js/ruby/nodes/conditionals.test.ts @@ -230,113 +230,6 @@ describe("conditionals", () => { }); }); - describe("when inline not allowed", () => { - describe.each(["if", "unless"])("%s keyword", (keyword) => { - test("inline changes", () => { - expect(`1 ${keyword} a`).toChangeFormat(`${keyword} a\n 1\nend`, { - rubyModifier: false - }); - }); - - test("multi line stays", () => { - expect(`${keyword} a\n 1\nend`).toMatchFormat({ - rubyModifier: false - }); - }); - - test("inline breaking changes", () => { - expect(`${long} ${keyword} ${long}`).toChangeFormat( - `${keyword} ${long}\n ${long}\nend`, - { - rubyModifier: false - } - ); - }); - - test("multi line breaking stays", () => { - expect(`${keyword} ${long}\n ${long}\nend`).toMatchFormat({ - rubyModifier: false - }); - }); - - test("not operator", () => { - expect(`${keyword} not a\n b\nend`).toMatchFormat({ - rubyModifier: false - }); - }); - - test("not operator parens", () => { - expect("not(true)").toMatchFormat(); - }); - - test("empty first body", () => { - const content = ruby(` - ${keyword} a - end - `); - - expect(content).toMatchFormat({ rubyModifier: false }); - }); - - test("empty first body with present second body", () => { - const content = ruby(` - ${keyword} a - - else - b - end - `); - - expect(content).toMatchFormat({ rubyModifier: false }); - }); - - test("comment in body", () => { - const content = ruby(` - ${keyword} a - # comment - end - `); - - expect(content).toMatchFormat({ rubyModifier: false }); - }); - - test("comment on node in body", () => { - const content = ruby(` - ${keyword} a - break # comment - end - `); - - expect(content).toMatchFormat({ rubyModifier: false }); - }); - - test("align long predicates", () => { - expect(`foo ${keyword} ${long} || ${long}a`).toChangeFormat( - ruby(` - ${keyword} ${long} || - ${Array(keyword.length).fill("").join(" ")}${long}a - foo - end - `) - ); - }); - - test("single line should break up", () => { - const content = "foo = if bar? then baz end"; - const expected = ruby(` - foo = - if bar? - baz - end - `); - - expect(content).toChangeFormat(expected, { - rubyModifier: false - }); - }); - }); - }); - describe("ternaries", () => { test("non-breaking", () => { expect("a ? 1 : 2").toMatchFormat(); diff --git a/test/js/ruby/nodes/loops.test.ts b/test/js/ruby/nodes/loops.test.ts index 6512fda7..0b6034c4 100644 --- a/test/js/ruby/nodes/loops.test.ts +++ b/test/js/ruby/nodes/loops.test.ts @@ -98,59 +98,6 @@ describe.each(["while", "until"])("%s", (keyword) => { }); }); - describe("inlines not allowed", () => { - test("maintains multiline", () => { - expect(`${keyword} a\n 1\nend`).toMatchFormat({ rubyModifier: false }); - }); - - test("transforms to multiline", () => { - expect(`1 ${keyword} a`).toChangeFormat(`${keyword} a\n 1\nend`, { - rubyModifier: false - }); - }); - - test("breaks on large predicates", () => { - expect(`${keyword} ${long}\n 1\nend`).toMatchFormat({ - rubyModifier: false - }); - }); - - test("breaks inlines on large predicates", () => { - expect(`1 ${keyword} ${long}`).toChangeFormat( - `${keyword} ${long}\n 1\nend`, - { rubyModifier: false } - ); - }); - - test("does not break into block when modifying a begin", () => { - const content = ruby(` - begin - foo - end ${keyword} bar - `); - - expect(content).toMatchFormat({ rubyModifier: false }); - }); - - test("empty body", () => { - const content = ruby(` - while foo - end - `); - - expect(content).toMatchFormat({ rubyModifier: false }); - }); - - test("empty body, long predicate", () => { - const content = ruby(` - while ${long} - end - `); - - expect(content).toMatchFormat({ rubyModifier: false }); - }); - }); - describe.each(["while", "until"])( "add parens when necessary %s", (keyword) => { From 64445b4ed5b7b13f981eb78fe9f4c8908614837e Mon Sep 17 00:00:00 2001 From: Drew Bragg Date: Thu, 21 Apr 2022 09:28:16 -0400 Subject: [PATCH 052/262] Correct method format --- test/js/ruby/nodes/kwargs.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/js/ruby/nodes/kwargs.test.ts b/test/js/ruby/nodes/kwargs.test.ts index 86351a6e..c7a4dfc7 100644 --- a/test/js/ruby/nodes/kwargs.test.ts +++ b/test/js/ruby/nodes/kwargs.test.ts @@ -1,13 +1,13 @@ describe("kwargs", () => { test("basic", () => { - expect("def foo(bar: baz); end").toMatchFormat(); + expect("def foo(bar: baz)\nend").toMatchFormat(); }); test("optional", () => { - expect("def foo(bar:); end").toMatchFormat(); + expect("def foo(bar:)\nend").toMatchFormat(); }); test("double splat", () => { - expect("def foo(bar:, **baz); end").toMatchFormat(); + expect("def foo(bar:, **baz)\nend").toMatchFormat(); }); }); From da71932aed43f55777c6c1ff317051f736fac79b Mon Sep 17 00:00:00 2001 From: Drew Bragg Date: Thu, 21 Apr 2022 09:29:24 -0400 Subject: [PATCH 053/262] Use double quotes over signle quotes --- test/js/ruby/nodes/conditionals.test.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/test/js/ruby/nodes/conditionals.test.ts b/test/js/ruby/nodes/conditionals.test.ts index 99592a33..6c966bb7 100644 --- a/test/js/ruby/nodes/conditionals.test.ts +++ b/test/js/ruby/nodes/conditionals.test.ts @@ -27,32 +27,32 @@ describe("conditionals", () => { describe("modifiers", () => { describe.each(["if", "unless"])("%s keyword", (keyword) => { test("when modifying an assignment expression", () => { - const content = `text = '${long}' ${keyword} text`; + const content = `text = "${long}" ${keyword} text`; const expected = ruby(` text = - '${long}' ${keyword} text + "${long}" ${keyword} text `); expect(content).toChangeFormat(expected); }); test("when modifying an abbreviated assignment expression", () => { - const content = `text ||= '${long}' ${keyword} text`; + const content = `text ||= "${long}" ${keyword} text`; const expected = ruby(` text ||= - '${long}' ${keyword} text + "${long}" ${keyword} text `); expect(content).toChangeFormat(expected); }); test("when modifying an expression with an assignment descendant", () => { - const content = `true && (text = '${long}') ${keyword} text`; + const content = `true && (text = "${long}") ${keyword} text`; const expected = ruby(` true && ( text = - '${long}' + "${long}" ) ${keyword} text `); @@ -541,7 +541,7 @@ describe("conditionals", () => { test("lower precendence operators", () => { const content = ruby(` if x.nil? - puts 'nil' and return + puts "nil" and return else x end @@ -654,8 +654,8 @@ describe("conditionals", () => { if (atLeastVersion("3.0")) { test.each(["if", "unless"])("%s with pattern matching", (keyword) => { const content = ruby(` - user = { role: 'admin', login: 'matz' } - puts "admin: #{name}" ${keyword} user in { role: 'admin', name: } + user = { role: "admin", login: "matz" } + puts "admin: #{name}" ${keyword} user in { role: "admin", name: } `); expect(content).toMatchFormat(); From 1d767d92758333193044af43b791fa2b7d62e054 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 7 Apr 2022 11:36:25 -0400 Subject: [PATCH 054/262] Fix up a bunch of tests --- .github/ISSUE_TEMPLATE/bug.md | 8 +- .github/ISSUE_TEMPLATE/formatting.md | 8 +- .github/workflows/main.yml | 8 +- .prettierignore | 4 - Gemfile | 9 +- README.md | 10 +- bin/print.ts | 3 +- prettier.gemspec | 10 + rubocop.yml | 12 +- src/plugin.ts | 45 +- src/prettier.ts | 24 - src/types.ts | 121 ---- test/js/haml/tag.test.ts | 2 +- test/js/rbs/rbs.test.ts | 8 +- test/js/ruby/comments.test.ts | 12 +- test/js/ruby/embed.test.ts | 144 ----- test/js/ruby/encoding.test.ts | 2 +- test/js/ruby/nodes/alias.test.ts | 4 +- test/js/ruby/nodes/arrays.test.ts | 48 +- test/js/ruby/nodes/assign.test.ts | 4 +- test/js/ruby/nodes/blocks.test.ts | 10 +- test/js/ruby/nodes/calls.test.ts | 14 +- test/js/ruby/nodes/case.test.ts | 12 +- test/js/ruby/nodes/class.test.ts | 3 +- test/js/ruby/nodes/hashes.test.ts | 137 +---- test/js/ruby/nodes/heredocs.test.ts | 16 +- test/js/ruby/nodes/hooks.test.ts | 6 +- test/js/ruby/nodes/method.test.ts | 98 +--- test/js/ruby/nodes/patterns.test.ts | 2 +- test/js/ruby/nodes/strings.test.ts | 54 +- test/js/setupTests.ts | 7 +- test/rb/metadata_test.rb | 825 --------------------------- test/rb/parser_test.rb | 21 - test/rb/rbs_test.rb | 71 --- test/rb/test_helper.rb | 3 - 35 files changed, 138 insertions(+), 1627 deletions(-) delete mode 100644 src/prettier.ts delete mode 100644 src/types.ts delete mode 100644 test/js/ruby/embed.test.ts delete mode 100644 test/rb/metadata_test.rb delete mode 100644 test/rb/parser_test.rb delete mode 100644 test/rb/rbs_test.rb diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md index c1f2fbd7..6b958779 100644 --- a/.github/ISSUE_TEMPLATE/bug.md +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -9,13 +9,7 @@ about: Issues with prettier crashing - Ruby version: latest - Node version: latest - `@prettier/plugin-ruby` or `prettier` gem version: latest -- Options: - - `rubyArrayLiteral` - `true` - - `rubyHashLabel` - `true` - - `rubyModifier` - `true` - - `rubySingleQuote` - `true` - - `rubyToProc` - `false` - - `trailingComma` - `"none"` +- `syntax_tree` version: latest ## Input diff --git a/.github/ISSUE_TEMPLATE/formatting.md b/.github/ISSUE_TEMPLATE/formatting.md index e18e8565..45318417 100644 --- a/.github/ISSUE_TEMPLATE/formatting.md +++ b/.github/ISSUE_TEMPLATE/formatting.md @@ -9,13 +9,7 @@ about: Issues for ugly or incorrect code - Ruby version: latest - Node version: latest - `@prettier/plugin-ruby` or `prettier` gem version: latest -- Options: - - `rubyArrayLiteral` - `true` - - `rubyHashLabel` - `true` - - `rubyModifier` - `true` - - `rubySingleQuote` - `true` - - `rubyToProc` - `false` - - `trailingComma` - `"none"` +- `syntax_tree` version: latest ## Input diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f9fb05b4..fa400c7e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,9 +13,9 @@ jobs: - ubuntu-latest - windows-latest ruby: - - "2.6" - - "2.7" + - "2.7.5" - "3.0" + - "3.1" runs-on: ${{ matrix.platform }} env: PLUGIN_RUBY_CI: true @@ -73,7 +73,7 @@ jobs: - uses: ruby/setup-ruby@v1 with: bundler-cache: true - ruby-version: "3.0" + ruby-version: "3.1" - uses: actions/setup-node@v2 with: node-version: 12.x @@ -106,7 +106,7 @@ jobs: - uses: ruby/setup-ruby@v1 with: bundler-cache: true - ruby-version: "3.0" + ruby-version: "3.1" - uses: actions/setup-node@v2 with: node-version: 12.x diff --git a/.prettierignore b/.prettierignore index 577f115a..58c5e943 100644 --- a/.prettierignore +++ b/.prettierignore @@ -17,7 +17,3 @@ *.txt *.gem - -# I'm ignoring this for now because it's a dump of a bunch of types that I don't -# want running onto multiple lines at the moment. -/src/types diff --git a/Gemfile b/Gemfile index c2d85b51..96709a7f 100644 --- a/Gemfile +++ b/Gemfile @@ -1,11 +1,8 @@ # frozen_string_literal: true -source 'https://rubygems.org' +source "https://rubygems.org" gemspec -gem 'bundler', '~> 2.1' -gem 'haml', '~> 5.2' -gem 'minitest', '~> 5.14' -gem 'rake', '~> 13.0' -gem 'rbs', '~> 1.0' +gem "syntax_tree", path: "../../ruby-syntax-tree/syntax_tree" +gem "rbs", "~> 2" diff --git a/README.md b/README.md index b96517c2..18aaa392 100644 --- a/README.md +++ b/README.md @@ -132,27 +132,21 @@ Below are the options (from [`src/plugin.js`](src/plugin.js)) that `@prettier/pl | ------------------ | ---------------------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------ | | `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | | `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | -| `rubyArrayLiteral` | `--ruby-array-literal` | `true` | When possible, favor the use of string and symbol array literals. | -| `rubyHashLabel` | `--ruby-hash-label` | `true` | When possible, uses the shortened hash key syntax, as opposed to hash rockets. | -| `rubyModifier` | `--ruby-modifier` | `true` | When it fits on one line, allows while and until statements to use the modifier form. | -| `rubySingleQuote` | `--ruby-single-quote` | `true` | When double quotes are not necessary for interpolation, prefers the use of single quotes for string literals. | -| `rubyToProc` | `--ruby-to-proc` | `false` | When possible, convert blocks to the more concise `Symbol#to_proc` syntax. | | `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | -| `trailingComma` | `--trailing-comma` | `"none"` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#trailing-comma)). `"es5"` is equivalent to `true`. | Any of these can be added to your existing [prettier configuration file](https://prettier.io/docs/en/configuration.html). For example: ```json { - "rubySingleQuote": false + "tabWidth": 4 } ``` Or, they can be passed to `prettier` as arguments: ```bash -bundle exec rbprettier --ruby-single-quote false --write '**/*' +bundle exec rbprettier --tab-width 4 --write '**/*' ``` ### Usage with RuboCop diff --git a/bin/print.ts b/bin/print.ts index 2f5b3934..2ccc81bd 100755 --- a/bin/print.ts +++ b/bin/print.ts @@ -27,8 +27,7 @@ if (fs.existsSync(process.argv[contentIdx])) { const { formatted } = prettier.formatWithCursor(content, { parser, plugins: [plugin as any as string], // hacky, but it works - cursorOffset: 1, - rubySingleQuote: false + cursorOffset: 1 } as any); console.log(formatted); diff --git a/prettier.gemspec b/prettier.gemspec index 2d7da08e..bb3143a9 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -21,7 +21,17 @@ Gem::Specification.new do |spec| ] end + spec.required_ruby_version = '>= 2.7.3' + spec.bindir = 'exe' spec.executables = 'rbprettier' spec.require_paths = %w[lib] + + # spec.add_dependency 'syntax_tree' + spec.add_dependency 'syntax_tree-haml' + spec.add_dependency 'syntax_tree-rbs' + + spec.add_development_dependency 'bundler' + spec.add_development_dependency 'minitest' + spec.add_development_dependency 'rake' end diff --git a/rubocop.yml b/rubocop.yml index 4d960c32..db663ad0 100644 --- a/rubocop.yml +++ b/rubocop.yml @@ -13,7 +13,7 @@ Layout: Layout/LineLength: Enabled: true -Style/MultilineIfModifier: # rubyModifier +Style/MultilineIfModifier: Enabled: false # When method chains with multiple blocks are chained together, rubocop will let @@ -23,19 +23,19 @@ Style/MultilineIfModifier: # rubyModifier Style/MultilineBlockChain: Enabled: false -Style/SymbolArray: # rubyArrayLiteral +Style/SymbolArray: Enabled: false -Style/WordArray: # rubyArrayLiteral +Style/WordArray: Enabled: false -Style/TrailingCommaInArguments: # trailingComma +Style/TrailingCommaInArguments: Enabled: false -Style/TrailingCommaInArrayLiteral: # trailingComma +Style/TrailingCommaInArrayLiteral: Enabled: false -Style/TrailingCommaInHashLiteral: # trailingComma +Style/TrailingCommaInHashLiteral: Enabled: false # lambdas that are constructed with the lambda method call cannot be safely diff --git a/src/plugin.ts b/src/plugin.ts index 2e0c8dfd..14531719 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -161,52 +161,9 @@ const plugin: ExtendedPlugin = { } } }, - options: { - rubyArrayLiteral: { - type: "boolean", - category: "Ruby", - default: true, - description: - "When possible, favor the use of string and symbol array literals.", - since: "1.0.0" - }, - rubyHashLabel: { - type: "boolean", - category: "Ruby", - default: true, - description: - "When possible, uses the shortened hash key syntax, as opposed to hash rockets.", - since: "1.0.0" - }, - rubyModifier: { - type: "boolean", - category: "Ruby", - default: true, - description: - "When it fits on one line, allows if, unless, while, and until statements to use the modifier form.", - since: "1.0.0" - }, - rubySingleQuote: { - type: "boolean", - category: "Ruby", - default: true, - description: - "When double quotes are not necessary for interpolation, prefers the use of single quotes for string literals.", - since: "1.0.0" - }, - rubyToProc: { - type: "boolean", - category: "Ruby", - default: false, - description: - "When possible, convert blocks to the more concise Symbol#to_proc syntax.", - since: "1.0.0" - } - }, defaultOptions: { printWidth: 80, - tabWidth: 2, - trailingComma: "none" + tabWidth: 2 } }; diff --git a/src/prettier.ts b/src/prettier.ts deleted file mode 100644 index 4f4f5a82..00000000 --- a/src/prettier.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type * as Prettier from "prettier"; - -type Doc = Prettier.doc.builders.Doc; -type Builders = Omit & { - // Explicitly overwriting the type of the join builder because I don't want to - // have to go around saying "as Doc[]" everywhere. - join: (sep: Doc, docs: Doc | Doc[]) => Prettier.doc.builders.Concat; -}; - -// If `RBPRETTIER` is set, then this is being run from the `Prettier::run` ruby -// method. In that case, we need to pull `prettier` from the node_modules -// directly, as it's been shipped with the gem. -/* istanbul ignore next */ -// eslint-disable-next-line @typescript-eslint/no-var-requires -const source: typeof Prettier = require(process.env.RBPRETTIER - ? "../node_modules/prettier" - : "prettier"); - -// Cramming everything together to make it simpler to pull in all of the right -// utilities and builders. -const builders = source.doc.builders as Builders; -const exported = { ...builders, ...source.doc.utils, ...source.util }; - -export default exported; diff --git a/src/types.ts b/src/types.ts deleted file mode 100644 index 3e79eb3f..00000000 --- a/src/types.ts +++ /dev/null @@ -1,121 +0,0 @@ -import type * as Prettier from "prettier"; - -// The type of elements that make up the given array T. -export type ArrayElement = T extends (infer E)[] ? E : never; - -// A union of the properties of the given object that are arrays. -export type ArrayProperties = { [K in keyof T]: T[K] extends any[] ? K : never }[keyof T]; - -// A union of the properties of the given array T that can be used to index it. -// If the array is a tuple, then that's going to be the explicit indices of the -// array, otherwise it's going to just be number. -export type IndexProperties = IsTuple extends true ? Exclude["length"], T["length"]> : number; - -// Effectively performing T[P], except that it's telling TypeScript that it's -// safe to do this for tuples, arrays, or objects. -export type IndexValue = T extends any[] ? P extends number ? T[P] : never : P extends keyof T ? T[P] : never; - -// Determines if an object T is an array like string[] (in which case this -// evaluates to false) or a tuple like [string] (in which case this evaluates to -// true). -// eslint-disable-next-line @typescript-eslint/no-unused-vars -type IsTuple = T extends [] ? true : T extends [infer First, ...infer Remain] ? IsTuple : false; - -// The same object T as currently exists, except the keys provided by P are -// required instead of optional. -export type RequiredKeys = T & Required>; - -type CallProperties = T extends any[] ? IndexProperties : keyof T; -type IterProperties = T extends any[] ? IndexProperties : ArrayProperties; - -type CallCallback = (path: Path, index: number, value: any) => U; -type EachCallback = (path: Path>, index: number, value: any) => void; -type MapCallback = (path: Path>, index: number, value: any) => U; - -// This path interface is going to override a bunch of functions on the regular -// prettier AstPath interface. This is because we want stricter types than the -// current version of @types/prettier provides. -// -// For each of the tree walk functions (call, each, and map) this provides 5 -// strict type signatures, along with a fallback at the end if you end up -// calling more than 5 properties deep (we don't do that but I've included it -// for completeness). -// -// getParentNode is being overridden because previously it was restricted to the -// type T of the given AST, but it's very unlikely you're going to be receiving -// a parent node that exactly matches your current node. So for now just -// returning any. -interface StrictPath { - call(callback: CallCallback): U; - call>(callback: CallCallback, U>, prop1: P1): U; - call>(callback: CallCallback, P2>, U>, prop1: P1, prop2: P2): U; - call, P3 extends CallProperties>>(callback: CallCallback, P2>, P3>, U>, prop1: P1, prop2: P2, prop3: P3): U; - call, P3 extends CallProperties>, P4 extends CallProperties, P3>>>(callback: CallCallback, P2>, P3>, P4>, U>, prop1: P1, prop2: P2, prop3: P3, prop4: P4): U; - call(callback: CallCallback, prop1: P, prop2: P, prop3: P, prop4: P, ...props: P[]): U; - - each(callback: EachCallback): void; - each>(callback: EachCallback>, prop1: P1): void; - each>(callback: EachCallback, P2>>, prop1: P1, prop2: P2): void; - each, P3 extends IterProperties>>(callback: EachCallback, P2>, P3>>, prop1: P1, prop2: P2, prop3: P3): void; - each, P3 extends IterProperties>, P4 extends IterProperties, P3>>>(callback: EachCallback, P2>, P3>, P4>>, prop1: P1, prop2: P2, prop3: P3, prop4: P4): void; - each

(callback: EachCallback, prop1: P, prop2: P, prop3: P, prop4: P, ...props: P[]): void; - - getParentNode: (count?: number | undefined) => any | null, - - map(callback: MapCallback): U[]; - map>(callback: MapCallback, U>, prop1: P1): U[]; - map>(callback: MapCallback, P2>, U>, prop1: P1, prop2: P2): U[]; - map, P3 extends IterProperties>>(callback: MapCallback, P2>, P3>, U>, prop1: P1, prop2: P2, prop3: P3): U[]; - map, P3 extends IterProperties>, P4 extends IterProperties, P3>>>(callback: MapCallback, P2>, P3>, P4>, U>, prop1: P1, prop2: P2, prop3: P3, prop4: P4): U[]; - map(callback: MapCallback, prop1: P, prop2: P, prop3: P, prop4: P, ...props: P[]): U[]; -}; - -// Reexporting the Doc type mostly because it's annoying to have to reference -// type so deeply in the Prettier namespace. Also because we only really want to -// be pulling in types from this file as they're less likely to change. -export type Doc = Prettier.doc.builders.Doc; - -// This is the same embed as is present in prettier, except that it's required. -export type Embed = Required>["embed"]; - -// These are the regular options from prettier except they also include all of -// the options we defined in our plugin configuration. -export type Options = Prettier.ParserOptions & { - printer: RequiredKeys, - rubyArrayLiteral: boolean, - rubyHashLabel: boolean, - rubyModifier: boolean, - rubySingleQuote: boolean, - rubyToProc: boolean -}; - -// hasPragma was not required, but since we're testing it explicitly we're going -// to add that into the parser object as being required. Additionally we're -// going to change the signature of our parse function to accept our options as -// opposed to the generic options that don't contain the options we defined in -// our plugin configuration. -export type Parser = Omit, "hasPragma" | "parse"> & Required, "hasPragma">> & { - parse: (text: string, parsers: { [name: string]: Prettier.Parser }, options: Options) => any -}; - -// We're overwriting a bunch of function here that walk around the tree here -// because if you restrict the AST for the main path then presumably you're -// printing a lower node in the tree that won't match the current AST type. -export type Path = Omit, keyof StrictPath> & StrictPath; - -// The printer from prettier is missing a couple of keys. We should presumably -// upstream this so that it's accurate in all plugins. -export type PrinterConfig = Omit, "insertPragma" | "print"> & Required, "insertPragma">> & { - getCommentChildNodes?: (node: any) => any[], - isBlockComment?: (comment: any, options: Options) => boolean, - print: Printer -}; - -// This is the regular print node, except it's not restricted by the AST that -// is passed to the parent AST. That's because when you're using it, you are not -// typically printing the same node type again. -export type Print = (path: Path) => Doc; - -// This is the regular printer, except it uses our overridden options and print -// types. -export type Printer = (path: Path, options: Options, print: Print) => Doc; diff --git a/test/js/haml/tag.test.ts b/test/js/haml/tag.test.ts index e69b5514..59749792 100644 --- a/test/js/haml/tag.test.ts +++ b/test/js/haml/tag.test.ts @@ -71,7 +71,7 @@ describe("tag", () => { const content = haml(`%section(xml:lang="en" title="title")`); const expected = `%section{"xml:lang": "en", title: "title"}`; - expect(content).toChangeFormat(expected, { rubySingleQuote: false }); + expect(content).toChangeFormat(expected); }); test("hash label, single quote, interpolation", () => { diff --git a/test/js/rbs/rbs.test.ts b/test/js/rbs/rbs.test.ts index 9b174aa3..d1a8918c 100644 --- a/test/js/rbs/rbs.test.ts +++ b/test/js/rbs/rbs.test.ts @@ -227,9 +227,7 @@ describe("rbs", () => { }); test("changes quotes to match", () => { - expect(rbs("T: 'foo'")).toChangeFormat(`T: "foo"`, { - rubySingleQuote: false - }); + expect(rbs("T: 'foo'")).toChangeFormat(`T: "foo"`); }); test("keeps string the same when there is an escape sequence", () => { @@ -241,9 +239,7 @@ describe("rbs", () => { }); test("unescapes single quotes when using double quotes", () => { - expect(rbs(`T: 'super \\' duper'`)).toChangeFormat(`T: 'super \\' duper'`, { - rubySingleQuote: false - }); + expect(rbs(`T: 'super \\' duper'`)).toChangeFormat(`T: 'super \\' duper'`); }); test("maintains escape sequences when using double quotes", () => { diff --git a/test/js/ruby/comments.test.ts b/test/js/ruby/comments.test.ts index 5c34fbf1..fda5b8e6 100644 --- a/test/js/ruby/comments.test.ts +++ b/test/js/ruby/comments.test.ts @@ -156,11 +156,11 @@ describe("comments", () => { }); test("commands", () => { - expect("command 'foo' # this is an inline comment").toMatchFormat(); + expect(`command "foo" # this is an inline comment`).toMatchFormat(); }); test("command calls", () => { - expect("command.call 'foo' # this is an inline comment").toMatchFormat(); + expect(`command.call "foo" # this is an inline comment`).toMatchFormat(); }); }); @@ -186,9 +186,9 @@ describe("comments", () => { { # these are comments # inside of a hash - foo: 'bar', + foo: "bar", # and then some more - bar: 'baz' + bar: "baz" } `); @@ -244,8 +244,8 @@ describe("comments", () => { test("works with multi-byte characters", () => { const content = ruby(` [ - ['先生小'], # - ['小'] + ["先生小"], # + ["小"] ] `); diff --git a/test/js/ruby/embed.test.ts b/test/js/ruby/embed.test.ts deleted file mode 100644 index beeca9ac..00000000 --- a/test/js/ruby/embed.test.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { ruby } from "../utils"; - -describe("embed", () => { - test("ignores parsers it can't find", () => { - const content = ruby(` - <<-JAVA - int i=0; - JAVA - `); - - expect(content).toMatchFormat(); - }); - - test("formats correctly on straight heredocs", () => { - const content = ruby(` - <<-JS.squish - const a=1; - const b=2; - return a+b; - JS - `); - - const expected = ruby(` - <<-JS.squish - const a = 1; - const b = 2; - return a + b; - JS - `); - - expect(content).toChangeFormat(expected); - }); - - test("formats correctly on squiggly heredocs", () => { - const content = ruby(` - <<~JS.squish - const a=1; - const b=2; - return a+b; - JS - `); - - const expected = ruby(` - <<~JS.squish - const a = 1; - const b = 2; - return a + b; - JS - `); - - expect(content).toChangeFormat(expected); - }); - - test("does not format if the heredoc has an interpolation", () => { - const content = ruby(` - <<~JS.squish - const a=1; - const b=#{2}; - return a+b; - JS - `); - - expect(content).toMatchFormat(); - }); - - test("removes whitespace so embedded parsers don't misinterpret", () => { - const content = ruby(` - <<~MARKDOWN - foo - MARKDOWN - `); - - const expected = ruby(` - <<~MARKDOWN - foo - MARKDOWN - `); - - expect(content).toChangeFormat(expected); - }); - - test("keeps parent indentation", () => { - const content = ruby(` - some_block do - another_block do - x += 1 - description <<~JS - // This is a DSL method on the another_block inner block. - // This is another line of the string. - JS - end - end - `); - - expect(content).toMatchFormat(); - }); - - test("correctly indents nested code while keeping parent indentation", () => { - const content = ruby(` - some_block do - another_block do - x += 1 - description <<~JS - [1, function () { return 2; }, 3]; - JS - end - end - `); - - const expected = ruby(` - some_block do - another_block do - x += 1 - description <<~JS - [ - 1, - function () { - return 2; - }, - 3 - ]; - JS - end - end - `); - - expect(content).toChangeFormat(expected); - }); - - test("doesn't consider empty lines as part of the common leading whitespace", () => { - const content = ruby(` - some_block do - x += 1 - description <<~MARKDOWN - This is a line. It's followed by two literal line breaks. - - This is another line of the string. - MARKDOWN - end - `); - - expect(content).toMatchFormat(); - }); -}); diff --git a/test/js/ruby/encoding.test.ts b/test/js/ruby/encoding.test.ts index 39693dbe..e097d79a 100644 --- a/test/js/ruby/encoding.test.ts +++ b/test/js/ruby/encoding.test.ts @@ -10,7 +10,7 @@ describe("encoding", () => { }); test("string literals", () => { - expect(`${header}\n'ひらがな'`).toMatchFormat(); + expect(`${header}\n"ひらがな"`).toMatchFormat(); }); test("regexp literals", () => { diff --git a/test/js/ruby/nodes/alias.test.ts b/test/js/ruby/nodes/alias.test.ts index f1f67398..f36dc0fd 100644 --- a/test/js/ruby/nodes/alias.test.ts +++ b/test/js/ruby/nodes/alias.test.ts @@ -22,11 +22,11 @@ describe("alias", () => { }); test("dynamic symbols do not get transformed (left)", () => { - expect("alias :'foo' :bar").toChangeFormat("alias :'foo' bar"); + expect(`alias :"foo" :bar`).toChangeFormat(`alias :"foo" bar`); }); test("dynamic symbols do not get transformed (right)", () => { - expect("alias :foo :'bar'").toChangeFormat("alias foo :'bar'"); + expect(`alias :foo :"bar"`).toChangeFormat(`alias foo :"bar"`); }); test("global aliases", () => { diff --git a/test/js/ruby/nodes/arrays.test.ts b/test/js/ruby/nodes/arrays.test.ts index 1bd4311b..2e027e5b 100644 --- a/test/js/ruby/nodes/arrays.test.ts +++ b/test/js/ruby/nodes/arrays.test.ts @@ -10,7 +10,7 @@ describe("array", () => { }); test("does not transform single string arrays", () => { - expect("['a']").toMatchFormat(); + expect(`["a"]`).toMatchFormat(); }); test("does not transform single symbol arrays", () => { @@ -18,43 +18,35 @@ describe("array", () => { }); test("transforms basic string arrays", () => { - expect("['a', 'b', 'c', 'd', 'e']").toChangeFormat("%w[a b c d e]"); + expect(`["a", "b", "c", "d", "e"]`).toChangeFormat("%w[a b c d e]"); }); test("does not transform string arrays with interpolation", () => { - expect(`['a', "#{b}", 'c']`).toMatchFormat(); + expect(`["a", "#{b}", "c"]`).toMatchFormat(); }); test("does not transform string arrays with spaces", () => { - expect("['a', 'b c', 'd', 'e']").toMatchFormat(); + expect(`["a", "b c", "d", "e"]`).toMatchFormat(); }); test("does not transform string arrays with tabs", () => { - expect(`['a', "b\\tc", 'd', 'e']`).toMatchFormat(); + expect(`["a", "b\\tc", "d", "e"]`).toMatchFormat(); }); test("does not transform string arrays with newlines", () => { - expect(`['a', "b\\nc", 'd', 'e']`).toMatchFormat(); + expect(`["a", "b\\nc", "d", "e"]`).toMatchFormat(); }); test("does not transform string arrays with carriage returns", () => { - expect(`['a', "b\\rc", 'd', 'e']`).toMatchFormat(); + expect(`["a", "b\\rc", "d", "e"]`).toMatchFormat(); }); test("does not transform string arrays with interpolation", () => { - expect(`['a', "b#{c}d", 'e']`).toMatchFormat(); + expect(`["a", "b#{c}d", "e"]`).toMatchFormat(); }); test("does not transform string arrays with brackets", () => { - expect(`['a [] b', 'c [] d']`).toMatchFormat(); - }); - - test("does not transform string arrays if disabled", () => { - expect(`['a', 'b']`).toMatchFormat({ rubyArrayLiteral: false }); - }); - - test("does not transform symbol arrays if disabled", () => { - expect("[:a, :b]").toMatchFormat({ rubyArrayLiteral: false }); + expect(`["a [] b", "c [] d"]`).toMatchFormat(); }); test("transforms basic symbol arrays", () => { @@ -62,7 +54,7 @@ describe("array", () => { }); test("does not transform symbol arrays with dynamic symbols", () => { - expect("[:'a + b']").toMatchFormat(); + expect(`[:"a + b"]`).toMatchFormat(); }); test("handles splats", () => { @@ -85,13 +77,6 @@ describe("array", () => { expect(contents).toMatchFormat(); }); - test("adds trailing commas when requested", () => { - const before = `[${long}, ${long}, ${long}]`; - const after = `[\n ${long},\n ${long},\n ${long},\n]`; - - expect(before).toChangeFormat(after, { trailingComma: "all" }); - }); - test("breaking maintains calls on the end", () => { expect(`[${long}].freeze`).toChangeFormat(`[\n ${long}\n].freeze`); }); @@ -126,19 +111,6 @@ describe("array", () => { expect(content).toMatchFormat(); }); - - test("with trailing commas", () => { - const content = ruby(` - [ - ${long}, - <<~HERE, - this is the heredoc - HERE - ] - `); - - expect(content).toMatchFormat({ trailingComma: "all" }); - }); }); test("with leading comments but none in body", () => { diff --git a/test/js/ruby/nodes/assign.test.ts b/test/js/ruby/nodes/assign.test.ts index 195b7f95..f68d801b 100644 --- a/test/js/ruby/nodes/assign.test.ts +++ b/test/js/ruby/nodes/assign.test.ts @@ -137,11 +137,11 @@ describe("assign", () => { describe("constants", () => { test("assigning to constant", () => { - expect("Pret::TIER = 'config'").toMatchFormat(); + expect(`Pret::TIER = "config"`).toMatchFormat(); }); test("assigning to top level constants", () => { - expect("::PRETTIER = 'config'").toMatchFormat(); + expect(`::PRETTIER = "config"`).toMatchFormat(); }); }); }); diff --git a/test/js/ruby/nodes/blocks.test.ts b/test/js/ruby/nodes/blocks.test.ts index de1173fd..c831e507 100644 --- a/test/js/ruby/nodes/blocks.test.ts +++ b/test/js/ruby/nodes/blocks.test.ts @@ -26,19 +26,19 @@ describe("blocks", () => { }); test("multi-line on command, no body", () => { - expect("command 'foobar' do\nend").toMatchFormat(); + expect(`command "foobar" do\nend`).toMatchFormat(); }); test("multi-line on command call, no body", () => { - expect("command.call 'foobar' do\nend").toMatchFormat(); + expect(`command.call "foobar" do\nend`).toMatchFormat(); }); test("multi-line on command, with body", () => { - expect("command 'foobar' do\n foo\nend").toMatchFormat(); + expect(`command "foobar" do\n foo\nend`).toMatchFormat(); }); test("multi-line on command call, with body", () => { - expect("command.call 'foobar' do\n foo\nend").toMatchFormat(); + expect(`command.call "foobar" do\n foo\nend`).toMatchFormat(); }); test("blocks nested inside commands use braces", () => { @@ -124,7 +124,7 @@ describe("blocks", () => { ruby(` assert_nil( ( - 'a'.sub! 'b' do + "a".sub! "b" do end&.foo do end ) diff --git a/test/js/ruby/nodes/calls.test.ts b/test/js/ruby/nodes/calls.test.ts index 33c936ca..9823efd5 100644 --- a/test/js/ruby/nodes/calls.test.ts +++ b/test/js/ruby/nodes/calls.test.ts @@ -2,7 +2,7 @@ import { long, ruby } from "../../utils"; describe("calls", () => { test("simple calls", () => { - const content = "posts.active.where('created_at > ?', 1.year.ago)"; + const content = `posts.active.where("created_at > ?", 1.year.ago)`; expect(content).toMatchFormat(); }); @@ -33,8 +33,8 @@ describe("calls", () => { test("chains of methods with one with arguments right at the top", () => { const content = ruby(` aaa.bbb.ccc.ddd.eee.merge( - ${long.slice(0, 30)}: 'aaa', - ${long.slice(0, 31)}: 'bbb' + ${long.slice(0, 30)}: "aaa", + ${long.slice(0, 31)}: "bbb" ) `); @@ -62,9 +62,9 @@ describe("calls", () => { const content = ruby(` Customer .active - .where(foo: 'bar') + .where(foo: "bar") .where.not(banned_at: nil) - .order(created_at: 'desc') + .order(created_at: "desc") .limit(10) `); @@ -125,7 +125,7 @@ describe("calls", () => { }); test("bang with a special operator on a command_call", () => { - expect("!domain&.include? '@'").toMatchFormat(); + expect(`!domain&.include? "@"`).toMatchFormat(); }); test("#call shorthand does not eliminate empty parentheses", () => { @@ -194,7 +194,7 @@ describe("calls", () => { # then remove remaining rows with duplicate emails uniq { |contact| contact[:email] } .tap do |res| - CSV.open(OUTPUT_PATH, 'wb') do |csv| + CSV.open(OUTPUT_PATH, "wb") do |csv| csv << HEADERS res.each { |d| csv << d.values } end diff --git a/test/js/ruby/nodes/case.test.ts b/test/js/ruby/nodes/case.test.ts index f9d4e71f..b5904a8d 100644 --- a/test/js/ruby/nodes/case.test.ts +++ b/test/js/ruby/nodes/case.test.ts @@ -37,9 +37,9 @@ describe("case", () => { test("breaking with multiple predicates, one when", () => { const content = ruby(` case foo - when '${long}', - 'a${long}', - 'b${long}' + when "${long}", + "a${long}", + "b${long}" bar end `); @@ -50,15 +50,15 @@ describe("case", () => { test("breaking with multiple predicates, each one not too long", () => { const content = ruby(` case foo - when '${long.slice(0, 40)}', '${long.slice(0, 40)}' + when "${long.slice(0, 40)}", "${long.slice(0, 40)}" bar end `); const expected = ruby(` case foo - when '${long.slice(0, 40)}', - '${long.slice(0, 40)}' + when "${long.slice(0, 40)}", + "${long.slice(0, 40)}" bar end `); diff --git a/test/js/ruby/nodes/class.test.ts b/test/js/ruby/nodes/class.test.ts index a69c4d6e..c6f31faa 100644 --- a/test/js/ruby/nodes/class.test.ts +++ b/test/js/ruby/nodes/class.test.ts @@ -39,7 +39,8 @@ describe("class", () => { test("class push blocks", () => { const content = ruby(` class << Prettier - def foo; end + def foo + end end `); diff --git a/test/js/ruby/nodes/hashes.test.ts b/test/js/ruby/nodes/hashes.test.ts index d32ab7ae..bf131ff3 100644 --- a/test/js/ruby/nodes/hashes.test.ts +++ b/test/js/ruby/nodes/hashes.test.ts @@ -37,18 +37,10 @@ describe("hash", () => { ); }); - test("breaking with trailing commas", () => { - const expected = `{\n ${long}:\n ${long},\n}`; - - expect(`{ ${long}: ${long} }`).toChangeFormat(expected, { - trailingComma: "all" - }); - }); - describe("heredocs as values", () => { test("as the first value", () => { const content = ruby(` - { foo: <<~HERE, bar: 'bar' } + { foo: <<~HERE, bar: "bar" } this is the heredoc HERE `); @@ -58,7 +50,7 @@ describe("hash", () => { test("as the last value", () => { const content = ruby(` - { foo: 'foo', bar: <<~HERE } + { foo: "foo", bar: <<~HERE } this is the heredoc HERE `); @@ -66,23 +58,9 @@ describe("hash", () => { expect(content).toMatchFormat(); }); - test("with trailing commas", () => { - const content = ruby(` - { - foo: - ${long}, - bar: <<~HERE, - this is the heredoc - HERE - } - `); - - expect(content).toMatchFormat({ trailingComma: "all" }); - }); - test("when exceeding line length", () => { const content = ruby(` - { foo: '${long}', bar: <<~HERE } + { foo: "${long}", bar: <<~HERE } this is the heredoc HERE `); @@ -90,7 +68,7 @@ describe("hash", () => { const expected = ruby(` { foo: - '${long}', + "${long}", bar: <<~HERE this is the heredoc HERE @@ -103,20 +81,12 @@ describe("hash", () => { describe("dynamic string keys", () => { test("basic", () => { - expect(`{ 'foo': 'bar' }`).toMatchFormat(); + expect(`{ "foo": "bar" }`).toMatchFormat(); }); test("with interpolation", () => { expect(`{ "#{1 + 1}": 2 }`).toMatchFormat(); }); - - test("basic without hash labels", () => { - expect(`{ :'foo' => 'bar' }`).toMatchFormat({ rubyHashLabel: false }); - }); - - test("with interpolation without hash labels", () => { - expect(`{ :"#{1 + 1}" => 2 }`).toMatchFormat({ rubyHashLabel: false }); - }); }); describe("bare assoc hash", () => { @@ -132,44 +102,6 @@ describe("hash", () => { expect("foobar(alpha: alpha, beta: beta)").toMatchFormat(); }); - test("does not add trailing commas on breaking commands", () => { - expect(`foobar ${long}: ${long}, a${long}: a${long}`).toChangeFormat( - ruby(` - foobar ${long}: - ${long}, - a${long}: - a${long} - `), - { trailingComma: "all" } - ); - }); - - test("does not add trailing commas on breaking command calls", () => { - expect(`foo.bar ${long}: ${long}, a${long}: a${long}`).toChangeFormat( - ruby(` - foo.bar ${long}: - ${long}, - a${long}: - a${long} - `), - { trailingComma: "all" } - ); - }); - - test("does add trailing commas on breaking calls", () => { - expect(`foobar(${long}: ${long}, a${long}: a${long})`).toChangeFormat( - ruby(` - foobar( - ${long}: - ${long}, - a${long}: - a${long}, - ) - `), - { trailingComma: "all" } - ); - }); - test("breaks contents and parens together", () => { const content = ruby(` foobar(key1: ${long.slice(0, 32)}, key2: ${long.slice(0, 32)}) @@ -188,12 +120,12 @@ describe("hash", () => { describe("when hash labels allowed", () => { test("hash labels stay", () => { - expect("{ a: 'a', b: 'b', c: 'c' }").toMatchFormat(); + expect(`{ a: "a", b: "b", c: "c" }`).toMatchFormat(); }); test("hash rockets get replaced", () => { - expect("{ :a => 'a', :b => 'b', :c => 'c' }").toChangeFormat( - "{ a: 'a', b: 'b', c: 'c' }" + expect(`{ :a => "a", :b => "b", :c => "c" }`).toChangeFormat( + `{ a: "a", b: "b", c: "c" }` ); }); @@ -202,61 +134,20 @@ describe("hash", () => { }); test("ending in equals stays", () => { - expect("{ :foo= => 'bar' }").toMatchFormat(); + expect(`{ :foo= => "bar" }`).toMatchFormat(); }); test("starting with non-letter/non-underscore stays", () => { - expect("{ :@foo => 'bar' }").toMatchFormat(); + expect(`{ :@foo => "bar" }`).toMatchFormat(); }); test("starting with underscore converts", () => { - expect("{ :_foo => 'bar' }").toChangeFormat("{ _foo: 'bar' }"); - }); - }); - - describe("when hash labels disallowed", () => { - test("hash labels get replaced", () => { - expect("{ a: 'a', b: 'b', c: 'c' }").toChangeFormat( - "{ :a => 'a', :b => 'b', :c => 'c' }", - { - rubyHashLabel: false - } - ); - }); - - test("hash rockets stay", () => { - expect("{ :a => 'a', :b => 'b', :c => 'c' }").toMatchFormat({ - rubyHashLabel: false - }); - }); - - test("hash rockets stay when needed", () => { - expect("{ Foo => 1, Bar => 2 }").toMatchFormat({ - rubyHashLabel: false - }); - }); - - test("ending in equals stays", () => { - expect("{ :foo= => 'bar' }").toMatchFormat({ - rubyHashLabel: false - }); - }); - - test("starting with non-letter/non-underscore stays", () => { - expect("{ :@foo => 'bar' }").toMatchFormat({ - rubyHashLabel: false - }); - }); - - test("starting with underscore stays", () => { - expect("{ :_foo => 'bar' }").toMatchFormat({ - rubyHashLabel: false - }); + expect(`{ :_foo => "bar" }`).toChangeFormat(`{ _foo: "bar" }`); }); }); test("prints hashes with consistent keys", () => { - expect("{ a: 'a', b => 'b' }").toChangeFormat("{ :a => 'a', b => 'b' }"); + expect(`{ a: "a", b => "b" }`).toChangeFormat(`{ :a => "a", b => "b" }`); }); test("print hashes with correct braces when contents fits", () => { @@ -306,14 +197,14 @@ describe("hash", () => { test("splits if the key has a comment attached", () => { const content = ruby(` items = { - :'foo-bar'=> # Inline comment + :"foo-bar"=> # Inline comment baz, } `); const expected = ruby(` items = { - 'foo-bar': # Inline comment + "foo-bar": # Inline comment baz } `); diff --git a/test/js/ruby/nodes/heredocs.test.ts b/test/js/ruby/nodes/heredocs.test.ts index 668fb7f1..0300d361 100644 --- a/test/js/ruby/nodes/heredocs.test.ts +++ b/test/js/ruby/nodes/heredocs.test.ts @@ -240,7 +240,7 @@ describe("heredocs", () => { foo FOO ${long}: - 'bar' + "bar" ) `); @@ -256,7 +256,7 @@ describe("heredocs", () => { `); const expected = ruby(` - puts(<<~TEXT) { 'sample block' } + puts(<<~TEXT) { "sample block" } Hello TEXT `); @@ -279,7 +279,7 @@ describe("heredocs", () => { const expected = ruby(` scope :late_for_checkin, - -> { select(<<~EOS.squish).data_push.having('something') } + -> { select(<<~EOS.squish).data_push.having("something") } some complicated query here EOS `); @@ -308,7 +308,7 @@ describe("heredocs", () => { test("call w/ short breakable arg after heredoc literal", () => { const content = ruby(` - p(<<-BAR, ['value', 'value', 125_484, 0o24024103]) + p(<<-BAR, ["value", "value", 125_484, 0o24024103]) text BAR `); @@ -321,12 +321,12 @@ describe("heredocs", () => { call(1, 2, 3, <<-HERE) do foo HERE - puts 'more code' + puts "more code" end `); const expected = ruby(` - call(1, 2, 3, <<-HERE) { puts 'more code' } + call(1, 2, 3, <<-HERE) { puts "more code" } foo HERE `); @@ -346,7 +346,7 @@ describe("heredocs", () => { test("in parens args with trailing args after", () => { const content = ruby(` - Foo.new(<<-ARG1, 'test2') + Foo.new(<<-ARG1, "test2") test1 line 1 test1 line 2 ARG1 @@ -357,7 +357,7 @@ describe("heredocs", () => { test("in paren args with a call", () => { const content = ruby(` - Foo.new(<<~ARG1.upcase.chomp, 'test2') + Foo.new(<<~ARG1.upcase.chomp, "test2") test1 line 1 test1 line 2 ARG1 diff --git a/test/js/ruby/nodes/hooks.test.ts b/test/js/ruby/nodes/hooks.test.ts index 39987281..a35660d5 100644 --- a/test/js/ruby/nodes/hooks.test.ts +++ b/test/js/ruby/nodes/hooks.test.ts @@ -2,11 +2,11 @@ import { long, ruby } from "../../utils"; describe.each(["BEGIN", "END"])("%s hook", (hook) => { test("shortens to one line", () => { - expect(`${hook} {\n p 'hook'\n}`).toChangeFormat(`${hook} { p 'hook' }`); + expect(`${hook} {\n p "hook"\n}`).toChangeFormat(`${hook} { p "hook" }`); }); test("maintains single lines", () => { - expect(`${hook} { p 'hook' }`).toMatchFormat(); + expect(`${hook} { p "hook" }`).toMatchFormat(); }); test("maintains multi line", () => { @@ -20,7 +20,7 @@ describe.each(["BEGIN", "END"])("%s hook", (hook) => { test("does not move comments on the declaration", () => { const content = ruby(` ${hook} { # comment - p 'hook' + p "hook" } `); diff --git a/test/js/ruby/nodes/method.test.ts b/test/js/ruby/nodes/method.test.ts index 15b63195..397f38c9 100644 --- a/test/js/ruby/nodes/method.test.ts +++ b/test/js/ruby/nodes/method.test.ts @@ -3,35 +3,35 @@ import { atLeastVersion, long, ruby } from "../../utils"; describe("method", () => { describe("definitions", () => { test("shorthand for empty methods", () => { - expect("def foo; end").toMatchFormat(); + expect("def foo; end").toChangeFormat("def foo\nend"); }); test("shorthand for empty methods with parens", () => { - expect("def foo(); end").toMatchFormat(); + expect("def foo(); end").toChangeFormat("def foo()\nend"); }); test("single arg, no parens", () => { - expect("def foo bar\nend").toChangeFormat("def foo(bar); end"); + expect("def foo bar\nend").toChangeFormat("def foo(bar)\nend"); }); test("single arg, with parens", () => { - expect("def foo(bar)\nend").toChangeFormat("def foo(bar); end"); + expect("def foo(bar)\nend").toMatchFormat(); }); test("shorthand for empty singleton methods", () => { - expect("def self.foo; end").toMatchFormat(); + expect("def self.foo; end").toChangeFormat("def self.foo\nend"); }); test("shorthand for empty singleton methods with parens", () => { - expect("def self.foo(); end").toMatchFormat(); + expect("def self.foo(); end").toChangeFormat("def self.foo()\nend"); }); test("singleton, single arg, no parens", () => { - expect("def self.foo bar\nend").toChangeFormat("def self.foo(bar); end"); + expect("def self.foo bar\nend").toChangeFormat("def self.foo(bar)\nend"); }); test("singleton, single arg, with parens", () => { - expect("def self.foo(bar)\nend").toChangeFormat("def self.foo(bar); end"); + expect("def self.foo(bar)\nend").toMatchFormat(); }); test("shorthand with a body", () => { @@ -41,17 +41,17 @@ describe("method", () => { }); test("single splat arg with no name", () => { - expect("def foo(*); end").toMatchFormat(); + expect("def foo(*); end").toChangeFormat("def foo(*)\nend"); }); test("double splat arg with no name", () => { - expect("def foo(**); end").toMatchFormat(); + expect("def foo(**); end").toChangeFormat("def foo(**)\nend"); }); test("with helper method", () => { const content = ruby(` private def foo - 'bar' + "bar" end `); @@ -61,7 +61,7 @@ describe("method", () => { test("with helper method on defs", () => { const content = ruby(` private def self.foo - 'bar' + "bar" end `); @@ -71,7 +71,7 @@ describe("method", () => { test("every single arg type", () => { const content = ruby(` def method(req, *rest, post, kwarg:, kwarg_opt: 1, **kwarg_rest, &block) - 'foo' + "foo" end `); @@ -84,7 +84,8 @@ describe("method", () => { def foo( ${long}:, a${long}: - ); end + ) + end `); expect(content).toChangeFormat(expected); @@ -113,7 +114,7 @@ describe("method", () => { **kwarg_rest, # kwarg_rest comment &block # block comment ) - 'foo' + "foo" end `); @@ -123,9 +124,9 @@ describe("method", () => { test("with comments on optional params", () => { const content = ruby(` def method( - optl = 'value' # comment + optl = "value" # comment ) - 'foo' + "foo" end `); @@ -134,7 +135,7 @@ describe("method", () => { if (atLeastVersion("2.7")) { test("nokw_param", () => { - expect("def foo(**nil); end").toMatchFormat(); + expect("def foo(**nil); end").toChangeFormat("def foo(**nil)\nend"); }); test("args_forward", () => { @@ -390,67 +391,6 @@ describe("method", () => { ); }); }); - - describe("with trailing commas", () => { - test("starting with no trailing comma changes", () => { - expect(`foo(${long}, a${long})`).toChangeFormat( - `foo(\n ${long},\n a${long},\n)`, - { - trailingComma: "all" - } - ); - }); - - test("starting with trailing comma stays", () => { - expect(`foo(${long}, a${long},)`).toChangeFormat( - `foo(\n ${long},\n a${long},\n)`, - { - trailingComma: "all" - } - ); - }); - - test("with block on the end", () => { - expect(`foo(${long}, &block)`).toChangeFormat( - `foo(\n ${long},\n &block\n)`, - { - trailingComma: "all" - } - ); - }); - - test("on commands", () => { - expect(`command ${long}, a${long}`).toChangeFormat( - ruby(` - command ${long}, - a${long} - `), - { trailingComma: "all" } - ); - }); - - test("on command calls", () => { - expect(`command.call ${long}, a${long}`).toChangeFormat( - ruby(` - command.call ${long}, - a${long} - `), - { trailingComma: "all" } - ); - }); - - test("on long commands within an arg_paren", () => { - const expected = ruby(` - foo( - ${long} 'bar' - ) - `); - - expect(`foo(${long} 'bar')`).toChangeFormat(expected, { - trailingComma: "all" - }); - }); - }); }); }); }); diff --git a/test/js/ruby/nodes/patterns.test.ts b/test/js/ruby/nodes/patterns.test.ts index 136def0d..dbb49b79 100644 --- a/test/js/ruby/nodes/patterns.test.ts +++ b/test/js/ruby/nodes/patterns.test.ts @@ -33,7 +33,7 @@ describe("patterns", () => { cases.push("[*, 0, *]", "[*, 0, 1, 2, *]", "FooBar[*, 0, *]"); test("rassign", () => { - const content = "{ db: { user: 'John' } } => { db: { user: } }"; + const content = `{ db: { user: "John" } } => { db: { user: } }`; expect(content).toMatchFormat(); }); diff --git a/test/js/ruby/nodes/strings.test.ts b/test/js/ruby/nodes/strings.test.ts index c7fee41a..c0167972 100644 --- a/test/js/ruby/nodes/strings.test.ts +++ b/test/js/ruby/nodes/strings.test.ts @@ -25,19 +25,19 @@ describe("strings", () => { describe("with single quotes", () => { test("empty single quote strings stay", () => { - expect("''").toMatchFormat(); + expect("''").toChangeFormat(`""`); }); test("empty double quote strings change", () => { - expect(`""`).toChangeFormat("''"); + expect(`""`).toMatchFormat(); }); test("basic strings with single quotes stay", () => { - expect("'abc'").toMatchFormat(); + expect("'abc'").toChangeFormat(`"abc"`); }); test("basic strings with double quotes change", () => { - expect(`"abc"`).toChangeFormat("'abc'"); + expect(`"abc"`).toMatchFormat(); }); test("double quotes with inner single quotes stay", () => { @@ -69,29 +69,27 @@ describe("strings", () => { describe("with double quotes", () => { test("empty single quote strings change", () => { - expect("''").toChangeFormat(`""`, { rubySingleQuote: false }); + expect("''").toChangeFormat(`""`); }); test("empty double quote strings stay", () => { - expect(`""`).toMatchFormat({ rubySingleQuote: false }); + expect(`""`).toMatchFormat(); }); test("basic strings with single quotes change", () => { - expect("'abc'").toChangeFormat(`"abc"`, { rubySingleQuote: false }); + expect("'abc'").toChangeFormat(`"abc"`); }); test("basic strings with double quotes stay", () => { - expect(`"abc"`).toMatchFormat({ rubySingleQuote: false }); + expect(`"abc"`).toMatchFormat(); }); test("double quotes with inner single quotes stay", () => { - expect(`"abc's"`).toMatchFormat({ rubySingleQuote: false }); + expect(`"abc's"`).toMatchFormat(); }); test("double quotes get escaped", () => { - expect(`'"foo"'`).toChangeFormat(`"\\"foo\\""`, { - rubySingleQuote: false - }); + expect(`'"foo"'`).toChangeFormat(`"\\"foo\\""`); }); describe("escape sequences", () => { @@ -165,11 +163,11 @@ describe("strings", () => { describe("char literals", () => { test("single chars get changed", () => { - expect("?a").toChangeFormat("'a'"); + expect("?a").toChangeFormat(`"a"`); }); test("single chars get changed with double quotes", () => { - expect("?a").toChangeFormat(`"a"`, { rubySingleQuote: false }); + expect("?a").toChangeFormat(`"a"`); }); test("control escape sequences stay", () => { @@ -217,45 +215,31 @@ describe("strings", () => { }); test("with single quotes", () => { - expect(":'abc'").toMatchFormat(); + expect(":'abc'").toChangeFormat(`:"abc"`); }); test("with double quotes", () => { - expect(`:"abc"`).toChangeFormat(":'abc'"); + expect(`:"abc"`).toMatchFormat(); }); test("with double quotes with double quotes desired", () => { - expect(`:"abc"`).toMatchFormat({ rubySingleQuote: false }); - }); - - test("with false interpolation and single quotes, no rubySingleQuote", () => { - expect(":'abc#{foo}abc'").toMatchFormat({ rubySingleQuote: false }); + expect(`:"abc"`).toMatchFormat(); }); test("with real interpolation and double quotes", () => { expect(`:"abc#{foo}abc"`).toMatchFormat(); }); - test("with real interpolation and double quotes, rubySingleQuote", () => { - expect(`:"abc#{foo}abc"`).toMatchFormat({ rubySingleQuote: true }); - }); - test("%s literal", () => { - expect("%s[abc]").toChangeFormat(":'abc'"); + expect("%s[abc]").toChangeFormat(`:"abc"`); }); test("%s literal with false interpolation", () => { - expect("%s[abc#{d}]").toChangeFormat(":'abc#{d}'"); + expect("%s[abc#{d}]").toChangeFormat(`:"abc#{d}"`); }); test("%s literal as hash key", () => { - expect("{ %s[abc] => d }").toChangeFormat("{ 'abc': d }"); - }); - - test("%s literal as hash key, no rubySingleQuote", () => { - expect("{ %s[abc] => d }").toChangeFormat(`{ "abc": d }`, { - rubySingleQuote: false - }); + expect("{ %s[abc] => d }").toChangeFormat(`{ "abc": d }`); }); test("symbol literal as a hash key", () => { @@ -273,7 +257,7 @@ describe("strings", () => { }); test("gets correct quotes", () => { - const content = "where('lint_tool_configs.plugin': plugins + %w[core])"; + const content = `where("lint_tool_configs.plugin": plugins + %w[core])`; expect(content).toMatchFormat(); }); diff --git a/test/js/setupTests.ts b/test/js/setupTests.ts index 8f5c23b4..818c2592 100644 --- a/test/js/setupTests.ts +++ b/test/js/setupTests.ts @@ -5,12 +5,7 @@ import type { Code } from "./types"; import plugin from "../../src/plugin"; type Config = Partial & { - printer: Omit & { printComment: () => any }, - rubyArrayLiteral: boolean, - rubyHashLabel: boolean, - rubyModifier: boolean, - rubySingleQuote: boolean, - rubyToProc: boolean + printer: Omit & { printComment: () => any } }>; function normalize(code: Code) { diff --git a/test/rb/metadata_test.rb b/test/rb/metadata_test.rb deleted file mode 100644 index a9ae45b6..00000000 --- a/test/rb/metadata_test.rb +++ /dev/null @@ -1,825 +0,0 @@ -# frozen_string_literal: true - -require 'test_helper' - -class MetadataTest < Minitest::Test - def test_BEGIN - assert_metadata SyntaxTree::BEGINBlock, <<~SOURCE - BEGIN { - } - SOURCE - end - - def test_END - assert_metadata SyntaxTree::ENDBlock, <<~SOURCE - END { - } - SOURCE - end - - def test_alias - assert_metadata SyntaxTree::Alias, 'alias foo bar' - end - - def test_array_args - assert_metadata SyntaxTree::ArrayLiteral, <<~SOURCE - [ - foo, - bar, - baz - ] - SOURCE - end - - def test_aref - assert_metadata SyntaxTree::ARef, 'foo[bar]' - end - - def test_aref_field - assert_node_metadata( - SyntaxTree::ARefField, - parse('foo[bar] = baz').target, - start_char: 0, - end_char: 8 - ) - end - - def test_args - assert_node_metadata( - SyntaxTree::Args, - parse('foo bar, baz').arguments.arguments, - start_char: 4, - end_char: 12 - ) - end - - def test_args_add_block - assert_node_metadata( - SyntaxTree::ArgsAddBlock, - parse('foo bar, baz').arguments, - start_char: 4, - end_char: 12 - ) - end - - def test_arg_paren - content = <<~SOURCE - foo( - a, - b, - c - ) - SOURCE - - assert_node_metadata( - SyntaxTree::ArgParen, - parse(content).arguments, - start_char: 3, - end_char: 20, - start_line: 1, - end_line: 5 - ) - end - - def test_assign - assert_metadata SyntaxTree::Assign, 'foo = bar' - end - - def test_assoc - assert_node_metadata( - SyntaxTree::Assoc, - parse('{ foo: bar, bar: baz }').contents.assocs.first, - start_char: 2, - end_char: 10 - ) - end - - def test_assoc_splat - assert_node_metadata( - SyntaxTree::AssocSplat, - parse('foo **bar').arguments.arguments.parts.first.assocs.first, - start_char: 4, - end_char: 9 - ) - end - - def test_assoclist_from_args - assert_node_metadata( - SyntaxTree::AssocListFromArgs, - parse('{ foo => bar }').contents, - start_char: 1, - end_char: 13 - ) - end - - def test_bare_assoc_hash - assert_node_metadata( - SyntaxTree::BareAssocHash, - parse('foo(bar: baz)').arguments.arguments.arguments.parts.first, - start_char: 4, - end_char: 12 - ) - end - - def test_begin - assert_metadata SyntaxTree::Begin, <<~SOURCE - begin - begin; end - end - SOURCE - end - - def test_binary - assert_metadata SyntaxTree::Binary, 'foo + bar' - end - - def test_blockarg - assert_node_metadata( - SyntaxTree::BlockArg, - parse('def foo(&bar) end').params.contents.block, - start_char: 8, - end_char: 12 - ) - end - - def test_block_var - assert_node_metadata( - SyntaxTree::BlockVar, - parse('foo { |bar| }').block.block_var, - start_char: 6, - end_char: 11 - ) - end - - def test_bodystmt - assert_node_metadata( - SyntaxTree::BodyStmt, - parse('class Foo; def foo; end; end').bodystmt, - start_char: 9, - end_char: 25 - ) - end - - def test_brace_block - assert_node_metadata( - SyntaxTree::BraceBlock, - parse('foo { bar }').block, - start_char: 4, - end_char: 11 - ) - end - - def test_break - assert_metadata SyntaxTree::Break, 'break foo' - end - - def test_call - assert_metadata SyntaxTree::Call, 'foo.bar' - end - - def test_case - assert_metadata SyntaxTree::Case, <<~SOURCE - case foo - when bar - case baz - when qux - end - end - SOURCE - end - - def test_class - assert_metadata SyntaxTree::ClassDeclaration, <<~SOURCE - class Foo - class Bar; end - end - SOURCE - end - - def test_command - assert_metadata SyntaxTree::Command, 'foo bar' - end - - def test_command_call - assert_metadata SyntaxTree::CommandCall, 'foo.bar baz' - end - - def test_const_ref - assert_node_metadata( - SyntaxTree::ConstRef, - parse('class Foo; end').constant, - start_char: 6, - end_char: 9 - ) - end - - def test_const_path_field - assert_node_metadata( - SyntaxTree::ConstPathField, - parse('Foo::Bar = baz').target, - start_char: 0, - end_char: 8 - ) - end - - def test_const_path_ref - assert_metadata SyntaxTree::ConstPathRef, 'Foo::Bar' - end - - def test_def - assert_metadata SyntaxTree::Def, <<~SOURCE - def foo - def bar; end - end - SOURCE - end - - def test_defined - assert_metadata SyntaxTree::Defined, <<~SOURCE - defined?( - Foo - ) - SOURCE - end - - def test_defs - assert_metadata SyntaxTree::Defs, <<~SOURCE - def Object.foo - def Object.bar; end - end - SOURCE - end - - def test_do_block - assert_node_metadata( - SyntaxTree::DoBlock, - parse('foo do; bar; end').block, - start_char: 4, - end_char: 16 - ) - end - - def test_dot2 - assert_metadata SyntaxTree::Dot2, 'foo..bar' - end - - def test_dot3 - assert_metadata SyntaxTree::Dot3, 'foo...bar' - end - - def test_dyna_symbol - assert_metadata SyntaxTree::DynaSymbol, ':"foo #{bar} baz"' - end - - def test_else - content = <<~SOURCE - if foo - bar - else - baz - end - SOURCE - - assert_node_metadata( - SyntaxTree::Else, - parse(content).consequent, - start_char: 13, - end_char: 27, - start_line: 3, - end_line: 5 - ) - end - - def test_elsif - content = <<~SOURCE - if foo - bar - elsif bar - qux - end - SOURCE - - assert_node_metadata( - SyntaxTree::Elsif, - parse(content).consequent, - start_char: 13, - end_char: 32, - start_line: 3, - end_line: 5 - ) - end - - def test_ensure - content = <<~SOURCE - begin - foo - ensure - bar - end - SOURCE - - assert_node_metadata( - SyntaxTree::Ensure, - parse(content).bodystmt.ensure_clause, - start_char: 12, - end_char: 28, - start_line: 3, - end_line: 5 - ) - end - - if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.6') - def test_excessed_comma - assert_node_metadata( - SyntaxTree::ExcessedComma, - parse('foo { |bar,| }').block.block_var.params.rest, - start_char: 10, - end_char: 11 - ) - end - end - - def test_fcall - assert_node_metadata( - SyntaxTree::FCall, - parse('foo(bar)').call, - start_char: 0, - end_char: 3 - ) - end - - def test_field - assert_node_metadata( - SyntaxTree::Field, - parse('foo.bar = baz').target, - start_char: 0, - end_char: 7 - ) - end - - def test_for - assert_metadata SyntaxTree::For, <<~SOURCE - for foo in bar do - for baz in qux do - end - end - SOURCE - end - - def test_hash - assert_metadata SyntaxTree::HashLiteral, <<~SOURCE - { - foo: 'bar' - } - SOURCE - end - - def test_if - assert_metadata SyntaxTree::If, <<~SOURCE - if foo - if bar; end - end - SOURCE - end - - def test_ifop - assert_metadata SyntaxTree::IfOp, 'foo ? bar : baz' - end - - def test_if_mod - assert_metadata SyntaxTree::IfMod, 'foo if bar' - end - - def test_kwrest_param - assert_node_metadata( - SyntaxTree::KwRestParam, - parse('def foo(**bar); end').params.contents.keyword_rest, - start_char: 8, - end_char: 13 - ) - end - - def test_lambda - assert_metadata SyntaxTree::Lambda, <<~SOURCE - -> (foo, bar) { - foo + bar - } - SOURCE - end - - def test_massign - assert_metadata SyntaxTree::MAssign, 'foo, bar, baz = 1, 2, 3' - end - - def test_method_add_arg - assert_metadata SyntaxTree::MethodAddArg, 'foo(bar)' - end - - def test_method_add_block - assert_metadata SyntaxTree::MethodAddBlock, 'foo { bar }' - end - - def test_mlhs - assert_node_metadata( - SyntaxTree::MLHS, - parse('foo, bar, baz = 1, 2, 3').target, - start_char: 0, - end_char: 13 - ) - end - - def test_mlhs_add_post - assert_node_metadata( - SyntaxTree::MLHS, - parse('foo, *bar, baz = 1, 2, 3').target, - start_char: 0, - end_char: 14 - ) - end - - def test_mlhs_add_star - assert_node_metadata( - SyntaxTree::MLHS, - parse('foo, *bar = 1, 2, 3').target, - start_char: 0, - end_char: 9 - ) - end - - def test_mlhs_paren - assert_node_metadata( - SyntaxTree::MLHSParen, - parse('(foo, bar) = baz').target, - start_char: 0, - end_char: 10 - ) - end - - def test_module - assert_metadata SyntaxTree::ModuleDeclaration, <<~SOURCE - module Foo - module Bar; end - end - SOURCE - end - - def test_mrhs_add_star - assert_node_metadata( - SyntaxTree::MRHSAddStar, - parse('foo, bar = *baz').value, - start_char: 11, - end_char: 15 - ) - end - - def test_next - assert_metadata SyntaxTree::Next, 'next foo' - end - - def test_opassign - assert_metadata SyntaxTree::OpAssign, 'foo ||= bar' - end - - def test_params - content = <<~SOURCE - def foo( - bar, - baz - ); end - SOURCE - - assert_node_metadata( - SyntaxTree::Params, - parse(content).params.contents, - start_char: 8, - end_char: 22, - start_line: 2, - end_line: 3 - ) - end - - def test_paren - assert_metadata SyntaxTree::Paren, '()' - end - - def test_qsymbols - assert_metadata SyntaxTree::QSymbols, '%i[foo bar baz]' - end - - def test_qwords - assert_metadata SyntaxTree::QWords, '%w[foo bar baz]' - end - - def test_redo - assert_metadata SyntaxTree::Redo, 'redo' - end - - def test_regexp_literal - assert_metadata SyntaxTree::RegexpLiteral, '/foo/' - assert_metadata SyntaxTree::RegexpLiteral, '%r{foo}' - assert_metadata SyntaxTree::RegexpLiteral, '%r(foo)' - - assert_node_metadata( - SyntaxTree::RegexpLiteral, - parse('%r(foo)'), - beginning: '%r(', - ending: ')', - start_char: 0, - end_char: 7 - ) - end - - def test_rescue - assert_node_metadata( - SyntaxTree::Rescue, - parse('begin; foo; rescue => bar; baz; end').bodystmt.rescue_clause, - start_char: 12, - end_char: 35 - ) - end - - def test_rescue_mod - assert_metadata SyntaxTree::RescueMod, 'foo rescue bar' - end - - def test_rest_param - assert_node_metadata( - SyntaxTree::RestParam, - parse('def foo(*bar); end').params.contents.rest, - start_char: 8, - end_char: 12 - ) - end - - def test_retry - assert_metadata SyntaxTree::Retry, 'retry' - end - - def test_return - assert_metadata SyntaxTree::Return, 'return foo' - end - - def test_return0 - assert_metadata SyntaxTree::Return0, 'return' - end - - def test_sclass - assert_metadata SyntaxTree::SClass, <<~SOURCE - class << Foo - class << Bar; end - end - SOURCE - end - - def test_string_concat - assert_metadata SyntaxTree::StringConcat, <<~SOURCE - 'foo' \ - 'bar' - SOURCE - end - - def test_string_dvar - assert_node_metadata( - SyntaxTree::StringDVar, - parse('"#$foo"').parts.first, - start_char: 1, - end_char: 6 - ) - end - - def test_string_embexpr - assert_node_metadata( - SyntaxTree::StringEmbExpr, - parse('"foo #{bar} baz"').parts[1], - start_char: 5, - end_char: 11 - ) - end - - def test_string_literal - assert_metadata SyntaxTree::StringLiteral, '"foo"' - end - - def test_super - assert_metadata SyntaxTree::Super, 'super foo' - end - - def test_symbol_literal - assert_metadata SyntaxTree::SymbolLiteral, ':foo' - end - - def test_symbols - assert_metadata SyntaxTree::Symbols, '%I[f#{o}o b#{a}r b#{a}z]' - end - - def test_top_const_field - assert_node_metadata( - SyntaxTree::TopConstField, - parse('::Foo = bar').target, - start_char: 0, - end_char: 5 - ) - end - - def test_top_const_ref - assert_metadata SyntaxTree::TopConstRef, '::Foo' - end - - def test_unary - assert_metadata SyntaxTree::Unary, '-foo' - assert_metadata SyntaxTree::Not, 'not foo' - end - - def test_undef - assert_metadata SyntaxTree::Undef, 'undef foo, bar' - end - - def test_unless - assert_metadata SyntaxTree::Unless, <<~SOURCE - unless foo - unless bar; end - end - SOURCE - end - - def test_unless_mod - assert_metadata SyntaxTree::UnlessMod, 'foo unless bar' - end - - def test_until - assert_metadata SyntaxTree::Until, <<~SOURCE - until foo - until bar; end - end - SOURCE - end - - def test_until_mod - assert_metadata SyntaxTree::UntilMod, 'foo until bar' - end - - def test_while - assert_metadata SyntaxTree::While, <<~SOURCE - while foo - while bar; end - end - SOURCE - end - - def test_var_alias - assert_metadata SyntaxTree::VarAlias, 'alias $foo $bar' - end - - def test_var_field - assert_node_metadata( - SyntaxTree::VarField, - parse('foo = 1').target, - start_char: 0, - end_char: 3 - ) - end - - def test_var_ref - assert_metadata SyntaxTree::VarRef, 'true' - end - - def test_vcall - assert_metadata SyntaxTree::VCall, 'foo' - end - - def test_void_stmt - assert_node_metadata( - SyntaxTree::VoidStmt, - parse('; ;'), - start_char: 0, - end_char: 0 - ) - end - - def test_when - assert_node_metadata( - SyntaxTree::When, - parse('case foo; when bar; baz; end').consequent, - start_char: 10, - end_char: 28 - ) - end - - def test_while_mod - assert_metadata SyntaxTree::WhileMod, 'foo while bar' - end - - def test_words - assert_metadata SyntaxTree::Words, '%W[f#{o}o b#{a}r b#{a}z]' - end - - def test_xstring - assert_metadata SyntaxTree::XStringLiteral, <<~SOURCE - ` - foo - bar - ` - SOURCE - end - - def test_yield - assert_metadata SyntaxTree::Yield, 'yield foo' - end - - def test_yield0 - assert_metadata SyntaxTree::Yield0, 'yield' - end - - def test_zsuper - assert_metadata SyntaxTree::ZSuper, 'super' - end - - if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.7') - def test_args_forward - content = <<~SOURCE - def foo(...) - bar(...) - end - SOURCE - - assert_node_metadata( - SyntaxTree::ArgsForward, - parse(content).params.contents.rest, - start_char: 8, - end_char: 11 - ) - end - - def test_aryptn - content = <<~SOURCE - case foo - in bar, baz - qux - end - SOURCE - - assert_node_metadata( - SyntaxTree::AryPtn, - parse(content).consequent.pattern, - start_char: 12, - end_char: 20, - start_line: 2, - end_line: 2 - ) - end - - def test_in - content = <<~SOURCE - case foo - in bar - baz - end - SOURCE - - assert_node_metadata( - SyntaxTree::In, - parse(content).consequent, - start_char: 9, - end_char: 25, - start_line: 2, - end_line: 4 - ) - end - end - - private - - def assert_metadata(type, ruby) - assert_node_metadata( - type, - parse(ruby), - start_line: 1, - start_char: 0, - end_line: [1, ruby.count("\n")].max, - end_char: ruby.chomp.size - ) - end - - def assert_node_metadata( - type, - node, - start_char:, - end_char:, - start_line: 1, - end_line: 1, - **metadata - ) - assert_kind_of(type, node) - - assert_equal(start_line, node.location.start_line) - assert_equal(start_char, node.location.start_char) - assert_equal(end_line, node.location.end_line) - assert_equal(end_char, node.location.end_char) - - metadata.each { |key, value| assert_equal(value, node.public_send(key)) } - end - - def parse(ruby) - SyntaxTree.parse(ruby).statements.body.first - end -end diff --git a/test/rb/parser_test.rb b/test/rb/parser_test.rb deleted file mode 100644 index 2d612357..00000000 --- a/test/rb/parser_test.rb +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true - -require 'test_helper' - -class ParserTest < Minitest::Test - def test_events - filepath = File.expand_path('../../src/ruby/parser.rb', __dir__) - pattern = /(?:alias|def) on_([^(\s]+)/ - - # This is a list of all of the parser events that Ripper will emit - all_events = Ripper::EVENTS - - # This is a list of all of the parser events for which we have an explicitly - # defined event handler in our parser. - handled_events = - File.read(filepath).scan(pattern).map { |event,| event.to_sym } - - # Assert here that there are no missing events. - assert_empty(all_events - handled_events) - end -end diff --git a/test/rb/rbs_test.rb b/test/rb/rbs_test.rb deleted file mode 100644 index 1e424748..00000000 --- a/test/rb/rbs_test.rb +++ /dev/null @@ -1,71 +0,0 @@ -# frozen_string_literal: true - -require 'test_helper' - -class RBSTest < Minitest::Test - # https://github.com/ruby/rbs/commit/c5da467adacc75fe9294ec1630f1b7931d9d6871 - def test_module_type_params_empty - actual = declaration_json("interface _Foo\nend")['type_params'] - assert_instance_of Array, actual - assert_empty actual - end - - def test_module_type_params_fancy - source = <<~SOURCE - class Foo[unchecked in A, B] - end - SOURCE - - actual = declaration_json(source)['type_params'] - assert_instance_of Array, actual - assert_equal 2, actual.length - - type_a, type_b = actual - - assert_equal 'A', type_a['name'] - assert_equal 'contravariant', type_a['variance'] - assert_equal true, type_a['unchecked'] - - assert_equal 'B', type_b['name'] - assert_equal 'invariant', type_b['variance'] - assert_equal false, type_b['unchecked'] - end - - # https://github.com/ruby/rbs/commit/3ccdcb1f3ac5dcb866280f745866a852658195e6 - def test_generic_method - source = <<~SOURCE - class T - def t: [A, B] (A) -> B - end - SOURCE - - actual = member_json(source)['types'].first['type_params'] - assert_equal 2, actual.length - - type_a, type_b = actual - assert_equal 'A', type_a['name'] - assert_equal 'B', type_b['name'] - end - - private - - def declaration_json(source) - JSON.parse(first_declaration(source).to_json) - end - - def member_json(source) - JSON.parse(first_member(source).to_json) - end - - def parse(source) - Prettier::RBSParser.parse(source) - end - - def first_declaration(source) - parse(source)[:declarations].first - end - - def first_member(source) - first_declaration(source).members.first - end -end diff --git a/test/rb/test_helper.rb b/test/rb/test_helper.rb index b2047e0b..4b93f91d 100644 --- a/test/rb/test_helper.rb +++ b/test/rb/test_helper.rb @@ -3,7 +3,4 @@ $LOAD_PATH.unshift(File.expand_path('../../lib', __dir__)) require 'prettier' -require_relative '../../src/ruby/parser' -require_relative '../../src/rbs/parser' - require 'minitest/autorun' From 22dd186d0dd868cf5a307969377dbcf454ecb28b Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 21 Apr 2022 13:09:49 -0400 Subject: [PATCH 055/262] Fix a couple more tests --- src/server.rb | 2 +- test/js/ruby/nodes/strings.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server.rb b/src/server.rb index 72e05ac9..879926ef 100644 --- a/src/server.rb +++ b/src/server.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'bundler/setup' if ENV['PLUGIN_RUBY_CI'] +require 'bundler/setup' # if ENV['PLUGIN_RUBY_CI'] require 'socket' require 'json' require 'fileutils' diff --git a/test/js/ruby/nodes/strings.test.ts b/test/js/ruby/nodes/strings.test.ts index c0167972..41fde744 100644 --- a/test/js/ruby/nodes/strings.test.ts +++ b/test/js/ruby/nodes/strings.test.ts @@ -118,7 +118,7 @@ describe("strings", () => { }); test("concatenation", () => { - expect(`'abc' \\\n 'def' \\\n 'ghi'`).toMatchFormat(); + expect(`"abc" \\\n "def" \\\n "ghi"`).toMatchFormat(); }); describe("interpolation", () => { @@ -235,7 +235,7 @@ describe("strings", () => { }); test("%s literal with false interpolation", () => { - expect("%s[abc#{d}]").toChangeFormat(`:"abc#{d}"`); + expect("%s[abc#{d}]").toChangeFormat(`:'abc#{d}'`); }); test("%s literal as hash key", () => { From 69da2ac69c56a062f6cface1d52fdc00de0ba245 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 21 Apr 2022 14:17:19 -0400 Subject: [PATCH 056/262] Better encoding guessing --- src/server.rb | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/server.rb b/src/server.rb index 879926ef..448f4f33 100644 --- a/src/server.rb +++ b/src/server.rb @@ -68,7 +68,27 @@ # Start up a new thread that will handle each successive connection. Thread.new(server.accept_nonblock) do |socket| - parser, source = socket.read.force_encoding('UTF-8').split('|', 2) + parser, source = socket.read.split('|', 2) + + # First, ensure we get the right encoding for this string. + encoding = + source.each_line do |line| + # Skip past the first line if it contains a shebang so that we get + # to the encoding line. + next if line.start_with?("#!") + + # If the line isn't an encoding magic comment, we're going to + # default to UTF-8. + break "UTF-8" unless line.include?("coding") + + # Otherwise, we're going to use Ripper to try to extract out the + # encoding from the magic comment. + break Ripper.new(line).tap(&:parse).encoding + end + + # Now that we have our guessed encoding, we're going to force it into + # the string so that it gets parsed correctly. + source = source.force_encoding(encoding) response = case parser From e8c59acdc8c28a7be29dfb900e8d935f5941d7f5 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 21 Apr 2022 14:36:07 -0400 Subject: [PATCH 057/262] Fix up expectation on calls test --- test/js/ruby/comments.test.ts | 7 ++++++- test/js/ruby/nodes/blocks.test.ts | 11 ++++++++++- test/js/ruby/nodes/calls.test.ts | 16 ++++++++-------- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/test/js/ruby/comments.test.ts b/test/js/ruby/comments.test.ts index fda5b8e6..4483b3df 100644 --- a/test/js/ruby/comments.test.ts +++ b/test/js/ruby/comments.test.ts @@ -218,7 +218,12 @@ describe("comments", () => { .baz `); - expect(content).toMatchFormat(); + const expected = ruby(` + foo.bar # comment + .baz + `); + + expect(content).toChangeFormat(expected); }); describe("declaration style comments", () => { diff --git a/test/js/ruby/nodes/blocks.test.ts b/test/js/ruby/nodes/blocks.test.ts index c831e507..afc43817 100644 --- a/test/js/ruby/nodes/blocks.test.ts +++ b/test/js/ruby/nodes/blocks.test.ts @@ -59,7 +59,16 @@ describe("blocks", () => { end.to_i `); - expect(content).toMatchFormat(); + const expected = ruby(` + method + .each do |foo| + bar + baz + end + .to_i + `); + + expect(content).toChangeFormat(expected); }); test("doesn't do weird things with comments", () => { diff --git a/test/js/ruby/nodes/calls.test.ts b/test/js/ruby/nodes/calls.test.ts index 9823efd5..7697b6df 100644 --- a/test/js/ruby/nodes/calls.test.ts +++ b/test/js/ruby/nodes/calls.test.ts @@ -75,8 +75,9 @@ describe("calls", () => { test("basic chains", () => { const content = ruby(` sig do - params(contacts: Contact::ActiveRecord_Relation) - .returns(Customer::ActiveRecord_Relation) + params(contacts: Contact::ActiveRecord_Relation).returns( + Customer::ActiveRecord_Relation + ) end `); @@ -141,12 +142,11 @@ describe("calls", () => { const content = `result = [${item}, ${item}, ${item}].map(&:foo?).bbb.ccc`; const expected = ruby(` - result = - [ - ${item}, - ${item}, - ${item} - ].map(&:foo?).bbb.ccc + result = [ + ${item}, + ${item}, + ${item} + ].map(&:foo?).bbb.ccc `); expect(content).toChangeFormat(expected); From 7658e5bf9bd9fa3f60ad71672caf28e63abd2d73 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 12:24:28 -0400 Subject: [PATCH 058/262] Update dependencies --- Gemfile | 3 --- prettier.gemspec | 3 ++- src/server.rb | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 96709a7f..be173b20 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,3 @@ source "https://rubygems.org" gemspec - -gem "syntax_tree", path: "../../ruby-syntax-tree/syntax_tree" -gem "rbs", "~> 2" diff --git a/prettier.gemspec b/prettier.gemspec index bb3143a9..3e4931d9 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -27,9 +27,10 @@ Gem::Specification.new do |spec| spec.executables = 'rbprettier' spec.require_paths = %w[lib] - # spec.add_dependency 'syntax_tree' + spec.add_dependency 'syntax_tree' spec.add_dependency 'syntax_tree-haml' spec.add_dependency 'syntax_tree-rbs' + spec.add_dependency 'rbs', '~> 2' spec.add_development_dependency 'bundler' spec.add_development_dependency 'minitest' diff --git a/src/server.rb b/src/server.rb index 448f4f33..8c813e8d 100644 --- a/src/server.rb +++ b/src/server.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'bundler/setup' # if ENV['PLUGIN_RUBY_CI'] +require 'bundler/setup' require 'socket' require 'json' require 'fileutils' From 1cdf0216e113d1ba4ecca15d0ef0e8920a76d14c Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 12:41:53 -0400 Subject: [PATCH 059/262] Reformat --- CHANGELOG.md | 10 +- README.md | 16 +- Rakefile | 10 +- bin/console | 6 +- bin/debug | 14 +- bin/lex | 2 +- bin/sexp | 6 +- exe/rbprettier | 4 +- lib/prettier.rb | 18 +- lib/prettier/rake/task.rb | 10 +- prettier.gemspec | 40 ++-- src/haml/parser.rb | 143 ------------- src/haml/printer.ts | 427 ------------------------------------- src/plugin.ts | 6 +- src/ruby/nodes/blocks.ts | 131 ------------ src/server.rb | 81 +++---- src/utils/getChildNodes.ts | 326 ---------------------------- test/js/rbs/rbs.test.ts | 8 +- test/js/setupTests.ts | 23 +- test/rb/rake_test.rb | 10 +- test/rb/test_helper.rb | 6 +- test/rb/version_test.rb | 2 +- 22 files changed, 138 insertions(+), 1161 deletions(-) delete mode 100644 src/haml/parser.rb delete mode 100644 src/haml/printer.ts delete mode 100644 src/ruby/nodes/blocks.ts delete mode 100644 src/utils/getChildNodes.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 138d08c5..e53b53c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -320,7 +320,6 @@ The comment in the above example should stay in place. ```ruby begin - rescue Foo, Bar # comment end @@ -476,7 +475,8 @@ return (a or b) if c? - kddnewton - Support for the `nokw_param` node for specifying when methods should no accept keywords, as in: ```ruby -def foo(**nil); end +def foo(**nil) +end ``` - kddnewton - Support for the `args_forward` node for forwarding all types of arguments, as in: @@ -522,9 +522,9 @@ will now be printed as: ```ruby Config::Download.new( - 'prettier', - filename: 'prettier.yml', - url: 'https://raw.githubusercontent.com/...' + "prettier", + filename: "prettier.yml", + url: "https://raw.githubusercontent.com/..." ).perform ``` diff --git a/README.md b/README.md index 18aaa392..6b72a543 100644 --- a/README.md +++ b/README.md @@ -59,9 +59,9 @@ d = [ 30_643_069_058 ] a, s = [], $*[0] -s.each_byte { |b| a << ('%036b' % d[b.chr.to_i]).scan(/\d{6}/) } +s.each_byte { |b| a << ("%036b" % d[b.chr.to_i]).scan(/\d{6}/) } a.transpose.each do |a| - a.join.each_byte { |i| print i == 49 ? ($*[1] || '#') : 32.chr } + a.join.each_byte { |i| printi == 49 ? ($*[1] || "#") : 32.chr } puts end ``` @@ -83,7 +83,7 @@ This plugin currently supports formatting the following kinds of files: Add this line to your application's Gemfile: ```ruby -gem 'prettier' +gem "prettier" ``` And then execute: @@ -128,11 +128,11 @@ The `prettier` executable is now installed and ready for use: Below are the options (from [`src/plugin.js`](src/plugin.js)) that `@prettier/plugin-ruby` currently supports: -| API Option | CLI Option | Default | Description | -| ------------------ | ---------------------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------ | -| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | -| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | -| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | +| API Option | CLI Option | Default | Description | +| --------------- | ------------------ | :-----: | --------------------------------------------------------------------------------------------------- | +| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | +| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | +| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | Any of these can be added to your existing [prettier configuration file](https://prettier.io/docs/en/configuration.html). For example: diff --git a/Rakefile b/Rakefile index b2132881..a4eb3b0f 100644 --- a/Rakefile +++ b/Rakefile @@ -1,12 +1,12 @@ # frozen_string_literal: true -require 'bundler/gem_tasks' -require 'rake/testtask' +require "bundler/gem_tasks" +require "rake/testtask" Rake::TestTask.new(:test) do |t| - t.libs << 'test/rb' - t.libs << 'lib' - t.test_files = FileList['test/rb/**/*_test.rb'] + t.libs << "test/rb" + t.libs << "lib" + t.test_files = FileList["test/rb/**/*_test.rb"] end task default: :test diff --git a/bin/console b/bin/console index 5d2f5a89..05b9a575 100755 --- a/bin/console +++ b/bin/console @@ -1,7 +1,7 @@ #!/usr/bin/env ruby -require 'bundler/setup' -require 'prettier' +require "bundler/setup" +require "prettier" -require 'irb' +require "irb" IRB.start(__FILE__) diff --git a/bin/debug b/bin/debug index 2f80a61d..15d16356 100755 --- a/bin/debug +++ b/bin/debug @@ -1,23 +1,23 @@ #!/usr/bin/env ruby -require 'bundler/inline' +require "bundler/inline" gemfile do - source 'https://rubygems.org' - gem 'sinatra', require: 'sinatra/base' - gem 'webrick' + source "https://rubygems.org" + gem "sinatra", require: "sinatra/base" + gem "webrick" end -require_relative '../src/ruby/parser' +require_relative "../src/ruby/parser" class App < Sinatra::Base HTML = DATA.read - get '/' do + get "/" do HTML end - post '/ast' do + post "/ast" do response = Prettier::Parser.parse(request.body.read) response ? JSON.fast_generate(response) : halt(422) rescue Prettier::Parser::ParserError diff --git a/bin/lex b/bin/lex index b0fdc359..58af05a6 100755 --- a/bin/lex +++ b/bin/lex @@ -1,6 +1,6 @@ #!/usr/bin/env ruby -require 'ripper' +require "ripper" source = File.file?(ARGV[0]) ? File.read(ARGV[0]) : ARGV[0].gsub('\\n', "\n") pp Ripper.lex(source) diff --git a/bin/sexp b/bin/sexp index 348ec402..1c18538c 100755 --- a/bin/sexp +++ b/bin/sexp @@ -1,10 +1,10 @@ #!/usr/bin/env ruby -require_relative '../src/ruby/parser' +require_relative "../src/ruby/parser" source = if !ARGV[0] - File.read('test.rb') + File.read("test.rb") elsif File.file?(ARGV[0]) File.read(ARGV[0]) else @@ -13,7 +13,7 @@ source = parsed = SyntaxTree.parse(source) -puts '=== SOURCE === ' +puts "=== SOURCE === " puts source puts "\n=== COMMENTS ===" diff --git a/exe/rbprettier b/exe/rbprettier index 3f3ba279..f5b653a3 100755 --- a/exe/rbprettier +++ b/exe/rbprettier @@ -1,7 +1,7 @@ #!/usr/bin/env ruby # frozen_string_literal: true -$:.unshift(File.expand_path(File.join('..', 'lib'), __dir__)) -require 'prettier' +$:.unshift(File.expand_path(File.join("..", "lib"), __dir__)) +require "prettier" exit(Prettier.run(ARGV)) diff --git a/lib/prettier.rb b/lib/prettier.rb index 973112e7..3a41899e 100644 --- a/lib/prettier.rb +++ b/lib/prettier.rb @@ -1,19 +1,19 @@ # frozen_string_literal: true -require 'json' unless defined?(JSON) -require 'open3' +require "json" unless defined?(JSON) +require "open3" module Prettier - PLUGIN = -File.expand_path('..', __dir__) - BINARY = -File.join(PLUGIN, 'node_modules', 'prettier', 'bin-prettier.js') - VERSION = -JSON.parse(File.read(File.join(PLUGIN, 'package.json')))['version'] + PLUGIN = -File.expand_path("..", __dir__) + BINARY = -File.join(PLUGIN, "node_modules", "prettier", "bin-prettier.js") + VERSION = -JSON.parse(File.read(File.join(PLUGIN, "package.json")))["version"] def self.run(args) - quoted = args.map { |arg| arg.start_with?('-') ? arg : "\"#{arg}\"" } - command = "node #{BINARY} --plugin \"#{PLUGIN}\" #{quoted.join(' ')}" + quoted = args.map { |arg| arg.start_with?("-") ? arg : "\"#{arg}\"" } + command = "node #{BINARY} --plugin \"#{PLUGIN}\" #{quoted.join(" ")}" stdout, stderr, status = - Open3.capture3({ 'RBPRETTIER' => '1' }, command, stdin_data: STDIN) + Open3.capture3({ "RBPRETTIER" => "1" }, command, stdin_data: STDIN) STDOUT.puts(stdout) # If we completed successfully, then just exit out. @@ -30,7 +30,7 @@ def self.run(args) If you installed this dependency through git instead of from rubygems, it does not install the necessary files by default. To fix this you can either install them yourself by cd-ing into the directory where this gem - is located (#{File.expand_path('..', __dir__)}) and running: + is located (#{File.expand_path("..", __dir__)}) and running: `yarn && yarn prepublishOnly` or diff --git a/lib/prettier/rake/task.rb b/lib/prettier/rake/task.rb index a5591297..35932601 100644 --- a/lib/prettier/rake/task.rb +++ b/lib/prettier/rake/task.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -require 'rake' -require 'rake/tasklib' +require "rake" +require "rake/tasklib" module Prettier module Rake @@ -35,7 +35,7 @@ class Task < ::Rake::TaskLib def initialize(name = :prettier) @name = name @write = true - @source_files = 'lib/**/*.rb' + @source_files = "lib/**/*.rb" yield self if block_given? define_task @@ -44,12 +44,12 @@ def initialize(name = :prettier) private def define_task - desc 'Runs prettier over source files' + desc "Runs prettier over source files" task(name) { run_task } end def run_task - Prettier.run([('--write' if write), source_files].compact) + Prettier.run([("--write" if write), source_files].compact) exit($?.exitstatus) if $?&.exited? end end diff --git a/prettier.gemspec b/prettier.gemspec index 3e4931d9..7ad78393 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -1,38 +1,38 @@ # frozen_string_literal: true -require 'json' unless defined?(JSON) -package = JSON.parse(File.read(File.join(__dir__, 'package.json'))) +require "json" unless defined?(JSON) +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) Gem::Specification.new do |spec| - spec.name = 'prettier' - spec.version = package['version'] - spec.authors = [package['author']] + spec.name = "prettier" + spec.version = package["version"] + spec.authors = [package["author"]] - spec.summary = package['description'] - spec.homepage = package['homepage'] - spec.license = package['license'] + spec.summary = package["description"] + spec.homepage = package["homepage"] + spec.license = package["license"] spec.files = Dir.chdir(__dir__) do %w[LICENSE bin/console package.json rubocop.yml] + - Dir['{{exe,lib,dist}/**/*,*.md}'] + + Dir["{{exe,lib,dist}/**/*,*.md}"] + Dir[ - 'node_modules/prettier/{package.json,index.js,cli.js,doc.js,bin-prettier.js,third-party.js,parser-*.js}' + "node_modules/prettier/{package.json,index.js,cli.js,doc.js,bin-prettier.js,third-party.js,parser-*.js}" ] end - spec.required_ruby_version = '>= 2.7.3' + spec.required_ruby_version = ">= 2.7.3" - spec.bindir = 'exe' - spec.executables = 'rbprettier' + spec.bindir = "exe" + spec.executables = "rbprettier" spec.require_paths = %w[lib] - spec.add_dependency 'syntax_tree' - spec.add_dependency 'syntax_tree-haml' - spec.add_dependency 'syntax_tree-rbs' - spec.add_dependency 'rbs', '~> 2' + spec.add_dependency "syntax_tree" + spec.add_dependency "syntax_tree-haml" + spec.add_dependency "syntax_tree-rbs" + spec.add_dependency "rbs", "~> 2" - spec.add_development_dependency 'bundler' - spec.add_development_dependency 'minitest' - spec.add_development_dependency 'rake' + spec.add_development_dependency "bundler" + spec.add_development_dependency "minitest" + spec.add_development_dependency "rake" end diff --git a/src/haml/parser.rb b/src/haml/parser.rb deleted file mode 100644 index cd8d9796..00000000 --- a/src/haml/parser.rb +++ /dev/null @@ -1,143 +0,0 @@ -# frozen_string_literal: true - -require 'ripper' - -begin - require 'haml' -rescue LoadError - # If we can't load the haml gem, then we're going to provide a shim parser - # that will warn and bail out. - class Prettier::HAMLParser - def self.parse(text) - warn( - 'The `haml` gem could not be loaded. Please ensure you have it ' \ - 'installed and that it is available in the gem path.' - ) - - false - end - end - - return -end - -class Haml::Parser::ParseNode - class DeepAttributeParser - def parse(string) - Haml::AttributeParser.available? ? parse_value(string) : string - end - - private - - def literal(string, level) - level == 0 ? string : "&#{string}" - end - - def parse_value(string, level = 0) - response = Ripper.sexp(string) - return literal(string, level) unless response - - case response[1][0][0] - when :hash - hash = Haml::AttributeParser.parse(string) - - if hash - # Explicitly not using Enumerable#to_h here to support Ruby 2.5 - hash.each_with_object({}) do |(key, value), response| - response[key] = parse_value(value, level + 1) - end - else - literal(string, level) - end - when :string_literal - string[1...-1] - else - literal(string, level) - end - end - end - - ESCAPE = /Haml::Helpers.html_escape\(\((.+)\)\)/.freeze - - # If a node comes in as the plain type but starts with one of the special - # characters that haml parses, then we need to escape it with a \ when - # printing. So here we make a regexp pattern to check if the node needs to be - # escaped. - special_chars = - Haml::Parser::SPECIAL_CHARACTERS.map { |char| Regexp.escape(char) } - - SPECIAL_START = /\A(?:#{special_chars.join('|')})/ - - def as_json - case type - when :comment, :doctype, :silent_script - to_h.tap do |json| - json.delete(:parent) - json[:children] = children.map(&:as_json) - end - when :filter, :haml_comment - to_h.tap { |json| json.delete(:parent) } - when :plain - to_h.tap do |json| - json.delete(:parent) - json[:children] = children.map(&:as_json) - - text = json[:value][:text] - json[:value][:text] = "\\#{text}" if text.match?(SPECIAL_START) - end - when :root - to_h.tap do |json| - json[:children] = children.map(&:as_json) - - # We need this information in the printer to know how to lay out - # multi-line attributes. - json[:supports_multiline] = - Gem::Version.new(Haml::VERSION) >= Gem::Version.new('5.2') - end - when :script - to_h.tap do |json| - json.delete(:parent) - json[:children] = children.map(&:as_json) - - if json[:value][:text].match?(ESCAPE) - json[:value][:text].gsub!(ESCAPE) { $1 } - json[:value].merge!(escape_html: 'escape_html', interpolate: true) - end - end - when :tag - to_h.tap do |json| - json.delete(:parent) - - # For some reason this is actually using a symbol to represent a null - # object ref instead of nil itself, so just replacing it here for - # simplicity in the printer - json[:value][:object_ref] = nil if json[:value][:object_ref] == :nil - - # Get a reference to the dynamic attributes hash - dynamic_attributes = value[:dynamic_attributes].to_h - - # If we have any in the old style, then we're going to pass it through - # the deep attribute parser filter. - if dynamic_attributes[:old] - dynamic_attributes[:old] = - DeepAttributeParser.new.parse(dynamic_attributes[:old]) - end - - json.merge!( - children: children.map(&:as_json), - value: value.merge(dynamic_attributes: dynamic_attributes) - ) - end - else - raise ArgumentError, "Unsupported type: #{type}" - end - end -end - -module Prettier - class HAMLParser - def self.parse(source) - Haml::Parser.new({}).call(source).as_json - end - end -end diff --git a/src/haml/printer.ts b/src/haml/printer.ts deleted file mode 100644 index 78aa4c4e..00000000 --- a/src/haml/printer.ts +++ /dev/null @@ -1,427 +0,0 @@ -import type { Plugin, HAML } from "../types"; -import prettier from "../prettier"; -import embed from "./embed"; - -const { - align, - fill, - group, - hardline, - ifBreak, - indent, - join, - line, - makeString, - softline -} = prettier; - -const docTypes = { - basic: "Basic", - frameset: "Frameset", - mobile: "Mobile", - rdfa: "RDFa", - strict: "Strict", - xml: "XML" -} as const; - -const docVersions = ["1.1", "5"]; - -// Prints out a hash key according to the configured prettier options. -function printHashKey(key: string, opts: Plugin.Options) { - let quoted = key; - const joiner = opts.rubyHashLabel ? ":" : " =>"; - - if (key.includes(":") || key.includes("-") || key.includes("@")) { - const quote = opts.rubySingleQuote ? "'" : '"'; - quoted = `${quote}${key}${quote}`; - } - - return `${opts.rubyHashLabel ? "" : ":"}${quoted}${joiner}`; -} - -// Prints out the value inside of a hash key-value pair according to the -// configured prettier options. -function printHashValue(value: string | number, opts: Plugin.Options) { - if (typeof value !== "string") { - return value.toString(); - } - - // This is a very special syntax created by the parser to let us know that - // this should be printed literally instead of as a string. - if (value.startsWith("&")) { - return value.slice(1); - } - - const quote = - opts.rubySingleQuote && !value.includes("#{") && !value.includes("'") - ? "'" - : '"'; - - return makeString(value, quote); -} - -// This will print an attributes object to a Doc node. It handles nesting on -// multiple levels and will print out according to whether or not the version of -// HAML being used supports multi-line attributes. -function printAttributes( - object: HAML.TagAttrs, - opts: Plugin.Options & { supportsMultiline: boolean; headerLength: number }, - level = 0 -) { - if (typeof object !== "object") { - return printHashValue(object, opts); - } - - const boundary = level === 0 ? softline : line; - const parts: Plugin.Doc[] = Object.keys(object).map((key) => [ - printHashKey(key, opts), - " ", - printAttributes(object[key], opts, level + 1) - ]); - - // If we have support for multi-line attributes laid out like a regular hash, - // then we print them that way here. - if (opts.supportsMultiline) { - return group([ - "{", - indent(group([boundary, join([",", line], parts)])), - boundary, - "}" - ]); - } - - // Otherwise, if we only have one attribute, then just print it inline - // regardless of how long it is. - if (parts.length === 0) { - return group(["{", parts[0], "}"]); - } - - // Otherwise, depending on how long the line is it will split the content into - // multi-line attributes that old Haml understands. - return group([ - "{", - parts[0], - ",", - align(opts.headerLength + 1, [line, join([",", line], parts.slice(1))]), - "}" - ]); -} - -// A utility function used in a silent script that is meant to determine if a -// child node is a continuation of a parent node (as in a when clause within a -// case statement or an else clause within an if). -function isContinuation( - parentNode: HAML.SilentScript, - childNode: HAML.AnyNode -) { - if (childNode.type !== "silent_script") { - return false; - } - - const parent = parentNode.value.keyword; - const child = childNode.value.keyword; - - return ( - (parent === "case" && ["when", "else"].includes(child)) || - (["if", "unless"].includes(parent) && ["elsif", "else"].includes(child)) - ); -} - -const printer: Plugin.PrinterConfig = { - embed, - // This is our printer's main print function that will switch on the type of - // node and print it out by returning a Doc tree. - print(path, opts, print) { - const node = path.getValue(); - - switch (node.type) { - // https://haml.info/docs/yardoc/file.REFERENCE.html#html-comments- - case "comment": { - const { value } = node; - const parts = ["/"]; - - if (value.revealed) { - parts.push("!"); - } - - if (value.conditional) { - parts.push(value.conditional); - } else if (value.text) { - parts.push(" ", value.text); - } - - return printWithChildren(node, group(parts)); - } - // https://haml.info/docs/yardoc/file.REFERENCE.html#doctype- - case "doctype": { - const { value } = node; - const parts = ["!!!"]; - - if (value.type in docTypes) { - parts.push(docTypes[value.type as keyof typeof docTypes]); - } else if (value.version && docVersions.includes(value.version)) { - parts.push(value.version); - } else { - parts.push(value.type); - } - - if (value.encoding) { - parts.push(value.encoding); - } - - return group(join(" ", parts)); - } - // https://haml.info/docs/yardoc/file.REFERENCE.html#filters - case "filter": - return group([ - ":", - node.value.name, - indent([hardline, join(hardline, node.value.text.trim().split("\n"))]) - ]); - // https://haml.info/docs/yardoc/file.REFERENCE.html#haml-comments-- - case "haml_comment": { - const { value } = node; - const parts: Plugin.Doc[] = ["-#"]; - - if (value.text) { - if (opts.originalText.split("\n")[node.line - 1].trim() === "-#") { - const lines = value.text.trim().split("\n"); - - parts.push(indent([hardline, join(hardline, lines)])); - } else { - parts.push(" ", value.text.trim()); - } - } - - return parts; - } - // https://haml.info/docs/yardoc/file.REFERENCE.html#plain-text - case "plain": - return node.value.text; - // The root node in the AST that we build in the parser. - case "root": { - const nodePath = path as Plugin.Path; - - return [join(hardline, nodePath.map(print, "children")), hardline]; - } - // https://haml.info/docs/yardoc/file.REFERENCE.html#inserting_ruby - case "script": { - const { value } = node; - const parts = []; - - if (value.escape_html) { - parts.unshift("&"); - } - - if (value.preserve) { - parts.push("~"); - } else if (!value.interpolate) { - parts.push("="); - } - - if (value.escape_html && !value.preserve && value.interpolate) { - parts.push(" ", value.text.trim().slice(1, -1)); - } else { - parts.push(" ", value.text.trim()); - } - - return printWithChildren(node, group(parts)); - } - // https://haml.info/docs/yardoc/file.REFERENCE.html#running-ruby-- - case "silent_script": { - const parts: Plugin.Doc[] = [`- ${node.value.text.trim()}`]; - - if (node.children.length > 0) { - const nodePath = path as Plugin.Path; - - parts.push( - nodePath.map((childPath) => { - const child = childPath.getValue(); - const concated = [hardline, print(childPath)]; - - return isContinuation(node, child) ? concated : indent(concated); - }, "children") - ); - } - - return group(parts); - } - // https://haml.info/docs/yardoc/file.REFERENCE.html#element-name- - case "tag": { - const { value } = node; - const { attributes, dynamic_attributes } = value; - const parts = []; - - // If we have a tag that isn't a div, then we need to print out that - // name of that tag first. If it is a div, first we'll check if there - // are any other things that would force us to print out the div - // explicitly, and otherwise we'll leave it off. - if (value.name !== "div") { - parts.push(`%${value.name}`); - } - - // If we have a class attribute, then we're going to print that here - // using the special class syntax. - if (attributes.class) { - parts.push(`.${attributes.class.replace(/ /g, ".")}`); - } - - // If we have an id attribute, then we're going to print that here using - // the special id syntax. - if (attributes.id) { - parts.push(`#${attributes.id}`); - } - - // If we're using dynamic attributes on this tag, then they come in as a - // string that looks like the output of Hash#inspect from Ruby. So here - // we're going to split it all up and print it out nicely. - if (dynamic_attributes.new) { - const docs: Plugin.Doc[] = []; - - dynamic_attributes.new - .slice(1, -2) - .split(",") - .forEach((pair, index) => { - if (index !== 0) { - docs.push(line); - } - docs.push(join("=", pair.slice(1).split('" => '))); - }); - - parts.push( - group(["(", align(parts.join("").length + 1, fill(docs)), ")"]) - ); - } - - // If there are any static attributes that are not class or id (because - // we already took care of those), then we're going to print them out - // here. - const staticAttributes = Object.keys(attributes).filter( - (name) => !["class", "id"].includes(name) - ); - - if (staticAttributes.length > 0) { - const docs = staticAttributes.reduce((accum, key) => { - const doc = `${printHashKey(key, opts)} ${printHashValue( - attributes[key], - opts - )}`; - - return accum.length === 0 ? [doc] : [...accum, ",", line, doc]; - }, [] as Plugin.Doc[]); - - parts.push( - group(["{", align(parts.join("").length + 1, fill(docs)), "}"]) - ); - } - - // If there are dynamic attributes that don't use the newer syntax, then - // we're going to print them out here. - if (dynamic_attributes.old) { - if (parts.length === 0) { - parts.push("%div"); - } - - if (typeof dynamic_attributes.old === "string") { - parts.push(dynamic_attributes.old); - } else { - // This is kind of a total hack in that I don't think you're - // really supposed to directly use `path.stack`, but it's the - // easiest way to get the root node without having to know how - // many levels deep we are. - const root = path.stack[0] as HAML.Root; - - parts.push( - printAttributes(dynamic_attributes.old, { - ...opts, - supportsMultiline: root.supports_multiline, - headerLength: parts.join("").length - }) - ); - } - } - - // https://haml.info/docs/yardoc/file.REFERENCE.html#object-reference- - if (value.object_ref) { - if (parts.length === 0) { - parts.push("%div"); - } - parts.push(value.object_ref); - } - - // https://haml.info/docs/yardoc/file.REFERENCE.html#whitespace-removal--and- - if (value.nuke_outer_whitespace) { - parts.push(">"); - } - - if (value.nuke_inner_whitespace) { - parts.push("<"); - } - - // https://haml.info/docs/yardoc/file.REFERENCE.html#empty-void-tags- - if (value.self_closing) { - parts.push("/"); - } - - if (value.value) { - let contents: Plugin.Doc[]; - - if (value.parse && value.value.match(/#[{$@]/)) { - // There's a weird case here where if the value includes - // interpolation and it's marked as { parse: true }, then we don't - // actually want the = prefix, and we want to remove extra escaping. - contents = [ - ifBreak("", " "), - value.value.slice(1, -1).replace(/\\"/g, '"') - ]; - } else if (value.parse) { - contents = ["= ", value.value]; - } else { - contents = [ifBreak("", " "), value.value]; - } - - return printWithChildren( - node, - group([group(parts), indent([softline, ...contents])]) - ); - } - - // In case none of the other if statements have matched and we're - // printing a div, we need to explicitly add it back into the array. - if (parts.length === 0 && value.name === "div") { - parts.push("%div"); - } - - return printWithChildren(node, group(parts)); - } - default: - throw new Error(`Unsupported node encountered: ${(node as any).type}`); - } - - // It's common to a couple of nodes to attach nested child nodes on the - // children property. This utility prints them out grouped together with - // their parent node docs. - function printWithChildren( - node: HAML.Comment | HAML.Script | HAML.Tag, - docs: Plugin.Doc - ) { - if (node.children.length === 0) { - return docs; - } - - const nodePath = path as Plugin.Path; - - return group([ - docs, - indent([hardline, join(hardline, nodePath.map(print, "children"))]) - ]); - } - }, - // This function handles adding the format pragma to a source string. This is - // an optional workflow for incremental adoption. - insertPragma(text) { - return `-# @format${text.startsWith("-#") ? "\n" : "\n\n"}${text}`; - } -}; - -export default printer; diff --git a/src/plugin.ts b/src/plugin.ts index 14531719..4a6ff5ab 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -2,11 +2,11 @@ import type { Plugin, SupportLanguage } from "prettier"; import parseSync from "./parseSync"; interface ExtendedSupportLanguage extends SupportLanguage { - interpreters?: string[] + interpreters?: string[]; } interface ExtendedPlugin extends Omit { - languages: ExtendedSupportLanguage[] + languages: ExtendedSupportLanguage[]; } /* @@ -142,7 +142,7 @@ const plugin: ExtendedPlugin = { }, insertPragma(text) { return `# @format${text.startsWith("#") ? "\n" : "\n\n"}${text}`; - }, + } }, rbs: { print(path) { diff --git a/src/ruby/nodes/blocks.ts b/src/ruby/nodes/blocks.ts deleted file mode 100644 index 27f1ec2e..00000000 --- a/src/ruby/nodes/blocks.ts +++ /dev/null @@ -1,131 +0,0 @@ -import type { Plugin, Ruby } from "../../types"; -import prettier from "../../prettier"; -import { hasAncestor } from "../../utils"; - -const { breakParent, group, ifBreak, indent, join, removeLines, softline } = - prettier; - -export const printBlockVar: Plugin.Printer = ( - path, - opts, - print -) => { - const parts = ["|", removeLines(path.call(print, "params"))]; - - // The second part of this node is a list of optional block-local variables - if (path.getValue().locals.length > 0) { - parts.push("; ", join(", ", path.map(print, "locals"))); - } - - parts.push("| "); - return parts; -}; - -// You have to go through the main print function if you could potentially have -// comments attached. So we're doing this weird reflection on the printed docs -// to retroactively change the printed keyword depending on if we're using -// braces or not. Ideally we wouldn't do this, we would instead do this -// reflection in the child printer, but this keeps the logic to just this file -// and contains it, so keeping it here for now. -function printBlockBegin( - path: Plugin.Path, - print: Plugin.Print, - useBraces: boolean -) { - let docs = print(path); - const doc = useBraces && !path.getValue().comments ? "{" : "do"; - - if (Array.isArray(docs)) { - docs[1] = doc; - } else { - docs = doc; - } - - return docs; -} - -type Block = Ruby.BraceBlock | Ruby.DoBlock; - -function printBlock(braces: boolean): Plugin.Printer { - return function printBlockWithBraces(path, opts, print) { - const node = path.getValue(); - let stmts: Ruby.AnyNode[]; - - if (node.type === "brace_block") { - stmts = node.stmts.body; - } else if ((node as any).bodystmt.type === "statements") { - // This is here to fix an issue in JRuby where it doesn't correctly - // support rescue/else/ensure inside blocks. - stmts = (node as any).bodystmt.body; - } else { - stmts = node.bodystmt.stmts.body; - } - - let doBlockBody: Plugin.Doc = ""; - if ( - stmts.length !== 1 || - stmts[0].type !== "void_stmt" || - stmts[0].comments - ) { - doBlockBody = indent([ - softline, - path.call(print, node.type === "brace_block" ? "stmts" : "bodystmt") - ]); - } - - // If this block is nested underneath a command or command_call node, then - // we can't use `do...end` because that will get associated with the parent - // node as opposed to the current node (because of the difference in - // operator precedence). Instead, we still use a multi-line format but - // switch to using braces instead. - const useBraces = braces && hasAncestor(path, ["command", "command_call"]); - - const doBlock = [ - " ", - path.call( - (beginPath) => printBlockBegin(beginPath, print, useBraces), - node.type === "brace_block" ? "lbrace" : "keyword" - ), - node.block_var ? [" ", path.call(print, "block_var")] : "", - doBlockBody, - [softline, useBraces ? "}" : "end"] - ]; - - // We can hit this next pattern if within the block the only statement is a - // comment. - if ( - stmts.length === 1 && - stmts[0].type === "void_stmt" && - stmts[0].comments - ) { - return [breakParent, doBlock]; - } - - const blockReceiver = (path.getParentNode() as Ruby.MethodAddBlock).call; - - // If the parent node is a command node, then there are no parentheses - // around the arguments to that command, so we need to break the block - if (["command", "command_call"].includes(blockReceiver.type)) { - return [breakParent, doBlock]; - } - - const hasBody = stmts.some(({ type }) => type !== "void_stmt"); - const braceBlock = [ - " ", - path.call( - (beginPath) => printBlockBegin(beginPath, print, true), - node.type === "brace_block" ? "lbrace" : "keyword" - ), - hasBody || node.block_var ? " " : "", - node.block_var ? path.call(print, "block_var") : "", - path.call(print, node.type === "brace_block" ? "stmts" : "bodystmt"), - hasBody ? " " : "", - "}" - ]; - - return group(ifBreak(doBlock, braceBlock)); - }; -} - -export const printBraceBlock = printBlock(true); -export const printDoBlock = printBlock(false); diff --git a/src/server.rb b/src/server.rb index 8c813e8d..dfb08aa3 100644 --- a/src/server.rb +++ b/src/server.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -require 'bundler/setup' -require 'socket' -require 'json' -require 'fileutils' -require 'open3' +require "bundler/setup" +require "socket" +require "json" +require "fileutils" +require "open3" -require 'syntax_tree' -require 'syntax_tree/haml' -require 'syntax_tree/rbs' +require "syntax_tree" +require "syntax_tree/haml" +require "syntax_tree/rbs" # Make sure we trap these signals to be sure we get the quit command coming from # the parent node process @@ -16,13 +16,13 @@ trap(:INT) { quit = true } trap(:TERM) { quit = true } -if Signal.list.key?('QUIT') && RUBY_ENGINE != 'jruby' +if Signal.list.key?("QUIT") && RUBY_ENGINE != "jruby" trap(:QUIT) { quit = true } end # The information variable stores the actual connection information, which will # either be an IP address and port or a path to a unix socket file. -information = '' +information = "" # The candidates array is a list of potential programs that could be used to # connect to our server. We'll run through them after the server starts to find @@ -32,7 +32,7 @@ if Gem.win_platform? # If we're on windows, we're going to start up a TCP server. The 0 here means # to bind to some available port. - server = TCPServer.new('127.0.0.1', 0) + server = TCPServer.new("127.0.0.1", 0) address = server.local_address # Ensure that we close the server when this process exits. @@ -54,7 +54,7 @@ end information = server.local_address.unix_path - candidates = ['nc -w 3 -U', 'ncat -w 3 -U'] + candidates = ["nc -w 3 -U", "ncat -w 3 -U"] end # This is the actual listening thread that will be acting as our server. We have @@ -68,23 +68,30 @@ # Start up a new thread that will handle each successive connection. Thread.new(server.accept_nonblock) do |socket| - parser, source = socket.read.split('|', 2) - - # First, ensure we get the right encoding for this string. - encoding = - source.each_line do |line| - # Skip past the first line if it contains a shebang so that we get - # to the encoding line. - next if line.start_with?("#!") - - # If the line isn't an encoding magic comment, we're going to - # default to UTF-8. - break "UTF-8" unless line.include?("coding") - - # Otherwise, we're going to use Ripper to try to extract out the - # encoding from the magic comment. - break Ripper.new(line).tap(&:parse).encoding + parser, source = socket.read.split("|", 2) + + # First, ensure we get the right encoding for this string. To do this + # we're going to find all of the comments at the top of the file first + # that contain comments. Then we'll pass them through ripper to find the + # encoding. + lines = [] + + source.each_line do |line| + if line.start_with?(/\s*#/) + lines << line + else + break end + end + + # We're going to default to UTF-8 in case we can't find the correct + # encoding. + encoding = "UTF-8" + comments = lines.join + + if comments.include?("coding") + encoding = Ripper.new(comments).tap(&:parse).encoding + end # Now that we have our guessed encoding, we're going to force it into # the string so that it gets parsed correctly. @@ -92,20 +99,20 @@ response = case parser - when 'ping' - 'pong' - when 'ruby' + when "ping" + "pong" + when "ruby" SyntaxTree.format(source) - when 'rbs' + when "rbs" SyntaxTree::RBS.format(source) - when 'haml' + when "haml" SyntaxTree::Haml.format(source) end if response socket.write(JSON.fast_generate(response)) else - socket.write('{ "error": true }') + socket.write("{ \"error\": true }") end rescue SyntaxTree::Parser::ParseError => error loc = { start: { line: error.lineno, column: error.column } } @@ -137,9 +144,9 @@ # We do not care about stderr here, so throw it away stdout, _stderr, status = - Open3.capture3("#{candidate} #{information}", stdin_data: 'ping') + Open3.capture3("#{candidate} #{information}", stdin_data: "ping") - candidate if JSON.parse(stdout) == 'pong' && status.exitstatus == 0 + candidate if JSON.parse(stdout) == "pong" && status.exitstatus == 0 rescue StandardError # We don't actually care if this fails, because we'll just skip that # connection option. @@ -155,7 +162,7 @@ # Default to running the netcat.js script that we ship with the plugin. It's a # good fallback as it will always work, but it is slower than the other options. -prefix ||= "node #{File.expand_path('netcat.js', __dir__)}" +prefix ||= "node #{File.expand_path("netcat.js", __dir__)}" # Write out our connection information to the file given as the first argument # to this script. diff --git a/src/utils/getChildNodes.ts b/src/utils/getChildNodes.ts deleted file mode 100644 index e6c771bd..00000000 --- a/src/utils/getChildNodes.ts +++ /dev/null @@ -1,326 +0,0 @@ -import type { Ruby } from "../types"; - -type AnyNode = Ruby.AnyNode | Ruby.VoidStmt; -type ChildNode = AnyNode | null; - -function throwBadNode(node: never): never; -function throwBadNode(node: AnyNode) { - throw new Error(`Unknown node ${node.type}`); -} - -function getChildNodes(node: AnyNode | Ruby.Comment): ChildNode[] { - switch (node.type) { - case "CHAR": - case "__end__": - case "backref": - case "backtick": - case "comment": - case "const": - case "cvar": - case "float": - case "gvar": - case "heredoc_beg": - case "ident": - case "imaginary": - case "int": - case "ivar": - case "kw": - case "label": - case "lbrace": - case "lparen": - case "op": - case "period": - case "rational": - case "tstring_content": - return []; - case "BEGIN": - return [node.lbrace, node.stmts]; - case "END": - return [node.lbrace, node.stmts]; - case "access_ctrl": - return [node.value]; - case "alias": - return [node.left, node.right]; - case "aref": - return [node.collection, node.index]; - case "aref_field": - return [node.collection, node.index]; - case "arg_paren": - return [node.args]; - case "args": - return node.parts; - case "args_add_block": - return [node.args, node.block]; - case "args_forward": - return []; - case "arg_star": - return [node.value]; - case "array": - return [node.cnts]; - case "aryptn": - return [node.constant, ...node.reqs, node.rest, ...node.posts]; - case "assign": - return [node.target, node.value]; - case "assoc": - return [node.key, node.value]; - case "assoc_splat": - return [node.value]; - case "assoclist_from_args": - return node.assocs; - case "bare_assoc_hash": - return node.assocs; - case "begin": - return [node.bodystmt]; - case "binary": - return [node.left, node.right]; - case "block_var": - return [node.params, ...node.locals]; - case "blockarg": - return [node.name]; - case "bodystmt": - return [node.stmts, node.rsc, node.els, node.ens]; - case "brace_block": - return [node.lbrace, node.block_var, node.stmts]; - case "break": - return [node.args]; - case "call": { - const childNodes: ChildNode[] = [node.receiver]; - - if (node.op !== "::") { - childNodes.push(node.op); - } - - if (node.message !== "call") { - childNodes.push(node.message); - } - - return childNodes; - } - case "case": - return [node.value, node.cons]; - case "class": - return [node.constant, node.superclass, node.bodystmt]; - case "command": - return [node.message, node.args]; - case "command_call": - return [node.receiver, node.message, node.args]; - case "const_path_field": - return [node.parent, node.constant]; - case "const_path_ref": - return [node.parent, node.constant]; - case "const_ref": - return [node.constant]; - case "def": - return [node.name, node.params, node.bodystmt]; - case "def_endless": - return [node.name, node.paren, node.stmt]; - case "defined": - return [node.value]; - case "defs": - return [node.target, node.op, node.name, node.params, node.bodystmt]; - case "do_block": - return [node.keyword, node.block_var, node.bodystmt]; - case "dot2": - return [node.left, node.right]; - case "dot3": - return [node.left, node.right]; - case "dyna_symbol": - return node.parts; - case "else": - return [node.stmts]; - case "elsif": - return [node.pred, node.stmts, node.cons]; - case "ensure": - return [node.keyword, node.stmts]; - case "excessed_comma": - return []; - case "fcall": - return [node.value]; - case "field": { - const childNodes: ChildNode[] = [node.parent]; - - if (node.op !== "::") { - childNodes.push(node.op); - } - - childNodes.push(node.name); - return childNodes; - } - case "fndptn": - return [node.constant, node.left, ...node.values, node.right]; - case "for": - return [node.index, node.collection, node.stmts]; - case "hash": - return [node.cnts]; - case "heredoc": - return [node.beging, ...node.parts]; - case "hshptn": { - const childNodes: ChildNode[] = [node.constant]; - - node.keywords.forEach(([key, value]) => { - childNodes.push(key, value); - }); - - childNodes.push(node.kwrest); - return childNodes; - } - case "if": - return [node.pred, node.stmts, node.cons]; - case "ifop": - return [node.pred, node.tthy, node.flsy]; - case "if_mod": - return [node.stmt, node.pred]; - case "in": - return [node.pattern, node.stmts, node.cons]; - case "kwrest_param": - return [node.name]; - case "lambda": - return [node.params, node.stmts]; - case "massign": - return [node.target, node.value]; - case "method_add_arg": - return [node.call, node.args]; - case "method_add_block": - return [node.call, node.block]; - case "mlhs": - return node.parts; - case "mlhs_paren": - return [node.cnts]; - case "module": - return [node.constant, node.bodystmt]; - case "mrhs": - return node.parts; - case "mrhs_add_star": - return [node.mrhs, node.star]; - case "mrhs_new_from_args": - return [node.args]; - case "next": - return [node.args]; - case "not": - return [node.value]; - case "opassign": - return [node.target, node.op, node.value]; - case "params": { - let childNodes: ChildNode[] = [...node.reqs]; - - node.opts.forEach(([key, value]) => { - childNodes.push(key, value); - }); - - childNodes.push(node.rest); - childNodes = childNodes.concat(node.posts); - - node.keywords.forEach(([key, value]) => { - childNodes.push(key); - - if (value) { - childNodes.push(value); - } - }); - - if (node.kwrest && node.kwrest !== "nil") { - childNodes.push(node.kwrest); - } - - if (node.block) { - childNodes.push(node.block); - } - - return childNodes; - } - case "paren": - return [node.lparen, node.cnts]; - case "program": - return [node.stmts]; - case "qsymbols": - return []; - case "qwords": - return []; - case "rassign": - return [node.value, node.op, node.pattern]; - case "redo": - return []; - case "regexp_literal": - return node.parts; - case "rescue": - return [node.extn, node.stmts, node.cons]; - case "rescue_ex": - return [node.extns, node.var]; - case "rescue_mod": - return [node.stmt, node.value]; - case "rest_param": - return [node.name]; - case "retry": - return []; - case "return": - return [node.args]; - case "return0": - return []; - case "sclass": - return [node.target, node.bodystmt]; - case "statements": - return node.body; - case "string_concat": - return [node.left, node.right]; - case "string_dvar": - return [node.var]; - case "string_embexpr": - return [node.stmts]; - case "string_literal": - return node.parts; - case "super": - return [node.args]; - case "symbol_literal": - return [node.value]; - case "symbols": - return []; - case "top_const_field": - return [node.constant]; - case "top_const_ref": - return [node.constant]; - case "unary": - return [node.value]; - case "undef": - return node.syms; - case "unless": - return [node.pred, node.stmts, node.cons]; - case "unless_mod": - return [node.stmt, node.pred]; - case "until": - return [node.pred, node.stmts]; - case "until_mod": - return [node.stmt, node.pred]; - case "var_alias": - return [node.left, node.right]; - case "var_field": - return [node.value]; - case "var_ref": - return [node.value]; - case "vcall": - return [node.value]; - case "void_stmt": - return []; - case "when": - return [node.args, node.stmts, node.cons]; - case "while": - return [node.pred, node.stmts]; - case "while_mod": - return [node.stmt, node.pred]; - case "word": - return node.parts; - case "words": - return []; - case "xstring_literal": - return node.parts; - case "yield": - return [node.args]; - case "yield0": - return []; - case "zsuper": - return []; - default: - throwBadNode(node); - } -} - -export default getChildNodes; diff --git a/test/js/rbs/rbs.test.ts b/test/js/rbs/rbs.test.ts index d1a8918c..a1e6dd86 100644 --- a/test/js/rbs/rbs.test.ts +++ b/test/js/rbs/rbs.test.ts @@ -235,11 +235,15 @@ describe("rbs", () => { }); test("unescapes double quotes when using single quotes", () => { - expect(rbs(`T: "super \\" duper"`)).toChangeFormat(`T: "super \\" duper"`); + expect(rbs(`T: "super \\" duper"`)).toChangeFormat( + `T: "super \\" duper"` + ); }); test("unescapes single quotes when using double quotes", () => { - expect(rbs(`T: 'super \\' duper'`)).toChangeFormat(`T: 'super \\' duper'`); + expect(rbs(`T: 'super \\' duper'`)).toChangeFormat( + `T: 'super \\' duper'` + ); }); test("maintains escape sequences when using double quotes", () => { diff --git a/test/js/setupTests.ts b/test/js/setupTests.ts index 818c2592..593ecb94 100644 --- a/test/js/setupTests.ts +++ b/test/js/setupTests.ts @@ -1,25 +1,18 @@ import prettier from "prettier"; -import type * as Prettier from "prettier"; import type { Code } from "./types"; import plugin from "../../src/plugin"; -type Config = Partial & { - printer: Omit & { printComment: () => any } -}>; - function normalize(code: Code) { const string = typeof code === "string" ? code : code.code; return string.replace(/\r?\n/g, "\n").trim(); } -function checkFormat(before: Code, after: Code, config: Config) { +function checkFormat(before: Code, after: Code) { const originalText = typeof before === "string" ? before : before.code; const formatted = prettier.format(originalText, { parser: typeof before === "string" ? "ruby" : before.parser, - originalText, - plugins: [plugin as any as string], - ...config + plugins: [plugin as any as string] }); const expected = normalize(after); @@ -32,11 +25,11 @@ function checkFormat(before: Code, after: Code, config: Config) { } expect.extend({ - toChangeFormat(before: Code, after: Code, config: Config = {}) { - return checkFormat(before, after, config); + toChangeFormat(before: Code, after: Code) { + return checkFormat(before, after); }, - toMatchFormat(before: Code, config: Config = {}) { - return checkFormat(before, before, config); + toMatchFormat(before: Code) { + return checkFormat(before, before); } }); @@ -45,8 +38,8 @@ declare global { namespace jest { // eslint-disable-next-line @typescript-eslint/no-unused-vars interface Matchers { - toChangeFormat(after: Code, config?: Config): CustomMatcherResult; - toMatchFormat(config?: Config): CustomMatcherResult; + toChangeFormat(after: Code): CustomMatcherResult; + toMatchFormat(): CustomMatcherResult; } } } diff --git a/test/rb/rake_test.rb b/test/rb/rake_test.rb index ab3335c3..65891544 100644 --- a/test/rb/rake_test.rb +++ b/test/rb/rake_test.rb @@ -1,13 +1,13 @@ # frozen_string_literal: true -require 'test_helper' -require 'prettier/rake/task' +require "test_helper" +require "prettier/rake/task" class RakeTest < Minitest::Test Invoke = Struct.new(:args) def test_task - source_files = '{app,config,lib}/**/*.rb' + source_files = "{app,config,lib}/**/*.rb" Prettier::Rake::Task.new do |t| t.name = :format t.write = true @@ -16,9 +16,9 @@ def test_task invoke = nil Prettier.stub(:run, ->(args) { invoke = Invoke.new(args) }) do - Rake::Task['format'].invoke + Rake::Task["format"].invoke end - assert_equal ['--write', source_files], invoke.args + assert_equal ["--write", source_files], invoke.args end end diff --git a/test/rb/test_helper.rb b/test/rb/test_helper.rb index 4b93f91d..f223f7f0 100644 --- a/test/rb/test_helper.rb +++ b/test/rb/test_helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -$LOAD_PATH.unshift(File.expand_path('../../lib', __dir__)) +$LOAD_PATH.unshift(File.expand_path("../../lib", __dir__)) -require 'prettier' -require 'minitest/autorun' +require "prettier" +require "minitest/autorun" diff --git a/test/rb/version_test.rb b/test/rb/version_test.rb index 9d55356e..289590be 100644 --- a/test/rb/version_test.rb +++ b/test/rb/version_test.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'test_helper' +require "test_helper" class VersionTest < Minitest::Test def test_version From 22652c66404cc1bfe789fd2cbdc2d36f8260871c Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 14:39:03 -0400 Subject: [PATCH 060/262] Update to latest RBS version --- prettier.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prettier.gemspec b/prettier.gemspec index 7ad78393..79daa149 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -29,7 +29,7 @@ Gem::Specification.new do |spec| spec.add_dependency "syntax_tree" spec.add_dependency "syntax_tree-haml" - spec.add_dependency "syntax_tree-rbs" + spec.add_dependency "syntax_tree-rbs", ">= 0.2.0" spec.add_dependency "rbs", "~> 2" spec.add_development_dependency "bundler" From 235833640695d506f55d81c76e90d42c12b6b71f Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 14:51:04 -0400 Subject: [PATCH 061/262] Update to latest dependencies --- prettier.gemspec | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/prettier.gemspec b/prettier.gemspec index 79daa149..62a944a9 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -27,10 +27,9 @@ Gem::Specification.new do |spec| spec.executables = "rbprettier" spec.require_paths = %w[lib] - spec.add_dependency "syntax_tree" - spec.add_dependency "syntax_tree-haml" + spec.add_dependency "syntax_tree", ">= 2.0.1" + spec.add_dependency "syntax_tree-haml", ">= 1.1.0" spec.add_dependency "syntax_tree-rbs", ">= 0.2.0" - spec.add_dependency "rbs", "~> 2" spec.add_development_dependency "bundler" spec.add_development_dependency "minitest" From de35a67f52c9ef43f159319b53ca5a4609babb83 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 15:12:46 -0400 Subject: [PATCH 062/262] Simplify encoding work --- src/server.rb | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/src/server.rb b/src/server.rb index dfb08aa3..67d05ac2 100644 --- a/src/server.rb +++ b/src/server.rb @@ -70,33 +70,6 @@ Thread.new(server.accept_nonblock) do |socket| parser, source = socket.read.split("|", 2) - # First, ensure we get the right encoding for this string. To do this - # we're going to find all of the comments at the top of the file first - # that contain comments. Then we'll pass them through ripper to find the - # encoding. - lines = [] - - source.each_line do |line| - if line.start_with?(/\s*#/) - lines << line - else - break - end - end - - # We're going to default to UTF-8 in case we can't find the correct - # encoding. - encoding = "UTF-8" - comments = lines.join - - if comments.include?("coding") - encoding = Ripper.new(comments).tap(&:parse).encoding - end - - # Now that we have our guessed encoding, we're going to force it into - # the string so that it gets parsed correctly. - source = source.force_encoding(encoding) - response = case parser when "ping" @@ -110,7 +83,7 @@ end if response - socket.write(JSON.fast_generate(response)) + socket.write(JSON.fast_generate(response.force_encoding("UTF-8"))) else socket.write("{ \"error\": true }") end From 90bf53655e858b40f92d340ffef5ee8d8cbc4605 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 15:13:21 -0400 Subject: [PATCH 063/262] Simplify Ruby versions --- .github/workflows/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fa400c7e..93956cbc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,9 +13,9 @@ jobs: - ubuntu-latest - windows-latest ruby: - - "2.7.5" - - "3.0" - - "3.1" + - '2.7' + - '3.0' + - '3.1' runs-on: ${{ matrix.platform }} env: PLUGIN_RUBY_CI: true From 36ba3985c13e4d6efac6fe28d1d0d7a0832023f1 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 15:18:34 -0400 Subject: [PATCH 064/262] Reformat with prettier --- .github/workflows/main.yml | 6 +++--- src/server.rb | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 93956cbc..bdd529fe 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,9 +13,9 @@ jobs: - ubuntu-latest - windows-latest ruby: - - '2.7' - - '3.0' - - '3.1' + - "2.7" + - "3.0" + - "3.1" runs-on: ${{ matrix.platform }} env: PLUGIN_RUBY_CI: true diff --git a/src/server.rb b/src/server.rb index 67d05ac2..8da4c065 100644 --- a/src/server.rb +++ b/src/server.rb @@ -68,7 +68,22 @@ # Start up a new thread that will handle each successive connection. Thread.new(server.accept_nonblock) do |socket| - parser, source = socket.read.split("|", 2) + parser, source = socket.read.force_encoding("UTF-8").split("|", 2) + + source.each_line do |line| + case line + when /^\s*#.+?coding/ + # If we've found an encoding comment, then we're going to take that + # into account and reclassify the encoding for the source. + encoding = Ripper.new(line).tap(&:parse).encoding + source = source.force_encoding(encoding) + break + when /^\s*#/ + # continue + else + break + end + end response = case parser From 2b7c5730fabb21490cc4b5b81fa87973ccaf2125 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 15:41:21 -0400 Subject: [PATCH 065/262] Ignore macos and ubuntu for yarn pnp test for now --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bdd529fe..f7933201 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -59,8 +59,8 @@ jobs: fail-fast: false matrix: platform: - - macos-latest - - ubuntu-latest + # - macos-latest + # - ubuntu-latest - windows-latest yarn: - 2.x From 2d6df00164238cfff6dd39eb6d9c7b4baa9716a9 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 15:50:17 -0400 Subject: [PATCH 066/262] Update to latest syntax tree --- README.md | 2 +- prettier.gemspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6b72a543..3001f821 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ d = [ a, s = [], $*[0] s.each_byte { |b| a << ("%036b" % d[b.chr.to_i]).scan(/\d{6}/) } a.transpose.each do |a| - a.join.each_byte { |i| printi == 49 ? ($*[1] || "#") : 32.chr } + a.join.each_byte { |i| print i == 49 ? ($*[1] || "#") : 32.chr } puts end ``` diff --git a/prettier.gemspec b/prettier.gemspec index 62a944a9..0c7990fc 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -27,7 +27,7 @@ Gem::Specification.new do |spec| spec.executables = "rbprettier" spec.require_paths = %w[lib] - spec.add_dependency "syntax_tree", ">= 2.0.1" + spec.add_dependency "syntax_tree", ">= 2.3.1" spec.add_dependency "syntax_tree-haml", ">= 1.1.0" spec.add_dependency "syntax_tree-rbs", ">= 0.2.0" From f38684608677db74481333c6659e745f5c04204e Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 16:21:08 -0400 Subject: [PATCH 067/262] Strip typescript --- .eslintignore | 1 - .github/workflows/main.yml | 3 - .gitignore | 1 - .prettierignore | 1 - bin/{doc.ts => doc} | 11 +- bin/pragma | 6 + bin/pragma.ts | 6 - bin/{print.ts => print} | 12 +- lib/prettier.rb | 4 +- package.json | 28 +- prettier.gemspec | 2 +- src/getInfo.js | 1 - src/netcat.js | 1 - src/{parseSync.ts => parseSync.js} | 37 +- src/{plugin.ts => plugin.js} | 15 +- test/js/{files.test.ts => files.test.js} | 11 +- test/js/{globalSetup.ts => globalSetup.js} | 10 +- .../{globalTeardown.ts => globalTeardown.js} | 2 +- .../haml/{comment.test.ts => comment.test.js} | 2 +- .../haml/{doctype.test.ts => doctype.test.js} | 2 +- .../haml/{filter.test.ts => filter.test.js} | 2 +- ...amlComment.test.ts => hamlComment.test.js} | 2 +- test/js/haml/{plain.test.ts => plain.test.js} | 2 +- .../haml/{script.test.ts => script.test.js} | 2 +- ...entScript.test.ts => silentScript.test.js} | 2 +- test/js/haml/{tag.test.ts => tag.test.js} | 2 +- test/js/rbs/{rbs.test.ts => rbs.test.js} | 12 +- .../{comments.test.ts => comments.test.js} | 2 +- .../{encoding.test.ts => encoding.test.js} | 0 .../ruby/{errors.test.ts => errors.test.js} | 2 +- .../ruby/{ignore.test.ts => ignore.test.js} | 2 +- .../ruby/{layout.test.ts => layout.test.js} | 2 +- .../nodes/{alias.test.ts => alias.test.js} | 2 +- .../ruby/nodes/{aref.test.ts => aref.test.js} | 2 +- .../nodes/{arrays.test.ts => arrays.test.js} | 2 +- .../nodes/{assign.test.ts => assign.test.js} | 2 +- .../nodes/{binary.test.ts => binary.test.js} | 2 +- .../nodes/{blocks.test.ts => blocks.test.js} | 2 +- .../nodes/{break.test.ts => break.test.js} | 2 +- .../nodes/{calls.test.ts => calls.test.js} | 2 +- .../ruby/nodes/{case.test.ts => case.test.js} | 2 +- .../nodes/{class.test.ts => class.test.js} | 2 +- ...ditionals.test.ts => conditionals.test.js} | 2 +- .../{defined.test.ts => defined.test.js} | 2 +- .../nodes/{embdoc.test.ts => embdoc.test.js} | 2 +- .../nodes/{field.test.ts => field.test.js} | 0 .../nodes/{hashes.test.ts => hashes.test.js} | 2 +- .../{heredocs.test.ts => heredocs.test.js} | 2 +- .../nodes/{hooks.test.ts => hooks.test.js} | 2 +- .../nodes/{kwargs.test.ts => kwargs.test.js} | 0 .../nodes/{lambda.test.ts => lambda.test.js} | 2 +- .../nodes/{loops.test.ts => loops.test.js} | 2 +- .../{massign.test.ts => massign.test.js} | 0 .../nodes/{method.test.ts => method.test.js} | 2 +- .../ruby/nodes/{next.test.ts => next.test.js} | 2 +- .../{numbers.test.ts => numbers.test.js} | 0 .../{patterns.test.ts => patterns.test.js} | 2 +- .../nodes/{ranges.test.ts => ranges.test.js} | 2 +- .../nodes/{regexp.test.ts => regexp.test.js} | 2 +- .../nodes/{rescue.test.ts => rescue.test.js} | 2 +- .../nodes/{return.test.ts => return.test.js} | 2 +- .../{strings.test.ts => strings.test.js} | 2 +- .../nodes/{super.test.ts => super.test.js} | 2 +- .../nodes/{unary.test.ts => unary.test.js} | 0 .../nodes/{undef.test.ts => undef.test.js} | 2 +- .../nodes/{yield.test.ts => yield.test.js} | 0 test/js/{setupTests.ts => setupTests.js} | 26 +- test/js/types.ts | 4 - test/js/{utils.ts => utils.js} | 25 +- tsconfig.build.json | 4 - tsconfig.json | 12 - yarn.lock | 363 +----------------- 72 files changed, 146 insertions(+), 532 deletions(-) rename bin/{doc.ts => doc} (61%) create mode 100755 bin/pragma delete mode 100755 bin/pragma.ts rename bin/{print.ts => print} (77%) rename src/{parseSync.ts => parseSync.js} (88%) rename src/{plugin.ts => plugin.js} (90%) rename test/js/{files.test.ts => files.test.js} (54%) rename test/js/{globalSetup.ts => globalSetup.js} (84%) rename test/js/{globalTeardown.ts => globalTeardown.js} (93%) rename test/js/haml/{comment.test.ts => comment.test.js} (94%) rename test/js/haml/{doctype.test.ts => doctype.test.js} (95%) rename test/js/haml/{filter.test.ts => filter.test.js} (92%) rename test/js/haml/{hamlComment.test.ts => hamlComment.test.js} (92%) rename test/js/haml/{plain.test.ts => plain.test.js} (90%) rename test/js/haml/{script.test.ts => script.test.js} (95%) rename test/js/haml/{silentScript.test.ts => silentScript.test.js} (96%) rename test/js/haml/{tag.test.ts => tag.test.js} (98%) rename test/js/rbs/{rbs.test.ts => rbs.test.js} (96%) rename test/js/ruby/{comments.test.ts => comments.test.js} (99%) rename test/js/ruby/{encoding.test.ts => encoding.test.js} (100%) rename test/js/ruby/{errors.test.ts => errors.test.js} (91%) rename test/js/ruby/{ignore.test.ts => ignore.test.js} (85%) rename test/js/ruby/{layout.test.ts => layout.test.js} (95%) rename test/js/ruby/nodes/{alias.test.ts => alias.test.js} (97%) rename test/js/ruby/nodes/{aref.test.ts => aref.test.js} (94%) rename test/js/ruby/nodes/{arrays.test.ts => arrays.test.js} (98%) rename test/js/ruby/nodes/{assign.test.ts => assign.test.js} (98%) rename test/js/ruby/nodes/{binary.test.ts => binary.test.js} (93%) rename test/js/ruby/nodes/{blocks.test.ts => blocks.test.js} (99%) rename test/js/ruby/nodes/{break.test.ts => break.test.js} (95%) rename test/js/ruby/nodes/{calls.test.ts => calls.test.js} (99%) rename test/js/ruby/nodes/{case.test.ts => case.test.js} (97%) rename test/js/ruby/nodes/{class.test.ts => class.test.js} (98%) rename test/js/ruby/nodes/{conditionals.test.ts => conditionals.test.js} (99%) rename test/js/ruby/nodes/{defined.test.ts => defined.test.js} (94%) rename test/js/ruby/nodes/{embdoc.test.ts => embdoc.test.js} (94%) rename test/js/ruby/nodes/{field.test.ts => field.test.js} (100%) rename test/js/ruby/nodes/{hashes.test.ts => hashes.test.js} (99%) rename test/js/ruby/nodes/{heredocs.test.ts => heredocs.test.js} (99%) rename test/js/ruby/nodes/{hooks.test.ts => hooks.test.js} (94%) rename test/js/ruby/nodes/{kwargs.test.ts => kwargs.test.js} (100%) rename test/js/ruby/nodes/{lambda.test.ts => lambda.test.js} (98%) rename test/js/ruby/nodes/{loops.test.ts => loops.test.js} (98%) rename test/js/ruby/nodes/{massign.test.ts => massign.test.js} (100%) rename test/js/ruby/nodes/{method.test.ts => method.test.js} (99%) rename test/js/ruby/nodes/{next.test.ts => next.test.js} (94%) rename test/js/ruby/nodes/{numbers.test.ts => numbers.test.js} (100%) rename test/js/ruby/nodes/{patterns.test.ts => patterns.test.js} (96%) rename test/js/ruby/nodes/{ranges.test.ts => ranges.test.js} (93%) rename test/js/ruby/nodes/{regexp.test.ts => regexp.test.js} (97%) rename test/js/ruby/nodes/{rescue.test.ts => rescue.test.js} (98%) rename test/js/ruby/nodes/{return.test.ts => return.test.js} (98%) rename test/js/ruby/nodes/{strings.test.ts => strings.test.js} (99%) rename test/js/ruby/nodes/{super.test.ts => super.test.js} (97%) rename test/js/ruby/nodes/{unary.test.ts => unary.test.js} (100%) rename test/js/ruby/nodes/{undef.test.ts => undef.test.js} (96%) rename test/js/ruby/nodes/{yield.test.ts => yield.test.js} (100%) rename test/js/{setupTests.ts => setupTests.js} (50%) delete mode 100644 test/js/types.ts rename test/js/{utils.ts => utils.js} (71%) delete mode 100644 tsconfig.build.json delete mode 100644 tsconfig.json diff --git a/.eslintignore b/.eslintignore index e55c14fb..7053dc17 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1 @@ /coverage/ -/dist/ diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f7933201..46f96c8d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -49,7 +49,6 @@ jobs: node-version: 12.x cache: yarn - run: yarn install --frozen-lockfile - - run: yarn prepublishOnly - run: yarn checkFormat - run: yarn lint @@ -79,7 +78,6 @@ jobs: node-version: 12.x cache: yarn - run: yarn install --frozen-lockfile - - run: yarn run prepublishOnly - run: yarn pack # Windows runners don't have /tmp, let's make sure it exists - run: mkdir -p /tmp @@ -112,7 +110,6 @@ jobs: node-version: 12.x cache: yarn - run: yarn install --frozen-lockfile - - run: yarn prepublishOnly - run: gem build -o prettier.gem - run: gem unpack prettier.gem - run: prettier/exe/rbprettier --help diff --git a/.gitignore b/.gitignore index 37e289b9..1a035cd8 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,6 @@ /test.rbs /test.haml *.gem -/dist/ # This is to better support the GitHub actions checking - since bundler changes # to being shipped by default with Ruby starting on 2.6. diff --git a/.prettierignore b/.prettierignore index 58c5e943..f430e82a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,6 +1,5 @@ /.bundle/ /coverage/ -/dist/ /pkg/ /playground/ /vendor/ diff --git a/bin/doc.ts b/bin/doc similarity index 61% rename from bin/doc.ts rename to bin/doc index 89aa9955..7022b8c6 100755 --- a/bin/doc.ts +++ b/bin/doc @@ -1,11 +1,10 @@ -#!./node_modules/.bin/ts-node +#!/usr/bin/env node -import fs from "fs"; -import prettier from "prettier"; +const fs = require("fs"); +const prettier = require("prettier"); +const plugin = require("../src/plugin"); -import plugin from "../src/plugin"; - -const debug = (prettier as any).__debug; +const debug = prettier.__debug; const code = fs.existsSync(process.argv[2]) ? fs.readFileSync(process.argv[2], "utf-8") diff --git a/bin/pragma b/bin/pragma new file mode 100755 index 00000000..c47b52a4 --- /dev/null +++ b/bin/pragma @@ -0,0 +1,6 @@ +#!/usr/bin/env node + +const fs = require("fs"); +const parser = require("../src/ruby/parser"); + +console.log(parser.hasPragma(fs.readFileSync(process.argv[2], "utf-8"))); diff --git a/bin/pragma.ts b/bin/pragma.ts deleted file mode 100755 index 501cdae8..00000000 --- a/bin/pragma.ts +++ /dev/null @@ -1,6 +0,0 @@ -#!./node_modules/.bin/ts-node - -import fs from "fs"; -import parser from "../src/ruby/parser"; - -console.log(parser.hasPragma(fs.readFileSync(process.argv[2], "utf-8"))); diff --git a/bin/print.ts b/bin/print similarity index 77% rename from bin/print.ts rename to bin/print index 2ccc81bd..08391d50 100755 --- a/bin/print.ts +++ b/bin/print @@ -1,9 +1,9 @@ -#!./node_modules/.bin/ts-node +#!/usr/bin/env node -import fs from "fs"; -import prettier from "prettier"; +const fs = require("fs"); +const prettier = require("prettier"); -import plugin from "../src/plugin"; +const plugin = require("../src/plugin"); let parser = "ruby"; let contentIdx = 2; @@ -26,8 +26,8 @@ if (fs.existsSync(process.argv[contentIdx])) { const { formatted } = prettier.formatWithCursor(content, { parser, - plugins: [plugin as any as string], // hacky, but it works + plugins: [plugin], cursorOffset: 1 -} as any); +}); console.log(formatted); diff --git a/lib/prettier.rb b/lib/prettier.rb index 3a41899e..b2a4c1fb 100644 --- a/lib/prettier.rb +++ b/lib/prettier.rb @@ -32,9 +32,9 @@ def self.run(args) either install them yourself by cd-ing into the directory where this gem is located (#{File.expand_path("..", __dir__)}) and running: - `yarn && yarn prepublishOnly` + `yarn install` or - `npm install && npm run prepublishOnly` + `npm install` or you can change the source in your Gemfile to point directly to rubygems. MSG diff --git a/package.json b/package.json index a8a44b3f..ef58c6d7 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,10 @@ "name": "@prettier/plugin-ruby", "version": "2.1.0", "description": "prettier plugin for the Ruby programming language", - "main": "dist/plugin.js", + "main": "src/plugin.js", "scripts": { "checkFormat": "prettier --check '**/*'", "lint": "eslint --cache .", - "prepublishOnly": "tsc -p tsconfig.build.json && cp src/getInfo.js dist && cp src/netcat.js dist && cp src/server.rb dist", "test": "jest" }, "repository": { @@ -23,24 +22,15 @@ "prettier": ">=2.3.0" }, "devDependencies": { - "@types/jest": "^27.0.1", - "@types/node": "^17.0.0", - "@types/prettier": "^2.4.2", - "@typescript-eslint/eslint-plugin": "^5.18.0", - "@typescript-eslint/parser": "^5.18.0", "eslint": "^8.1.0", "eslint-config-prettier": "^8.0.0", "husky": "^7.0.0", "jest": "^27.0.1", - "pretty-quick": "^3.1.2", - "ts-jest": "^27.0.5", - "ts-node": "^10.2.1", - "typescript": "^4.5.2" + "pretty-quick": "^3.1.2" }, "eslintConfig": { "extends": [ "eslint:recommended", - "plugin:@typescript-eslint/recommended", "prettier" ], "env": { @@ -48,21 +38,17 @@ "jest": true, "node": true }, - "parser": "@typescript-eslint/parser", "rules": { - "no-unused-vars": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-explicit-any": "off" + "no-unused-vars": "off" } }, "jest": { - "globalSetup": "./test/js/globalSetup.ts", - "globalTeardown": "./test/js/globalTeardown.ts", - "preset": "ts-jest", + "globalSetup": "./test/js/globalSetup.js", + "globalTeardown": "./test/js/globalTeardown.js", "setupFilesAfterEnv": [ - "./test/js/setupTests.ts" + "./test/js/setupTests.js" ], - "testRegex": ".test.ts$" + "testRegex": ".test.js$" }, "husky": { "hooks": { diff --git a/prettier.gemspec b/prettier.gemspec index 0c7990fc..e64c36a0 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -15,7 +15,7 @@ Gem::Specification.new do |spec| spec.files = Dir.chdir(__dir__) do %w[LICENSE bin/console package.json rubocop.yml] + - Dir["{{exe,lib,dist}/**/*,*.md}"] + + Dir["{{exe,lib,src}/**/*,*.md}"] + Dir[ "node_modules/prettier/{package.json,index.js,cli.js,doc.js,bin-prettier.js,third-party.js,parser-*.js}" ] diff --git a/src/getInfo.js b/src/getInfo.js index a35cc368..f4c854af 100644 --- a/src/getInfo.js +++ b/src/getInfo.js @@ -1,4 +1,3 @@ -// eslint-disable-next-line @typescript-eslint/no-var-requires const { existsSync, readFileSync } = require("fs"); // This is how long to wait for the parser to spin up. For the most part, 5 diff --git a/src/netcat.js b/src/netcat.js index 4a6971a0..c36e465a 100644 --- a/src/netcat.js +++ b/src/netcat.js @@ -2,7 +2,6 @@ // On average, this is 2-3x slower than netcat, but still much faster than // spawning a new Ruby process. -// eslint-disable-next-line @typescript-eslint/no-var-requires const { createConnection } = require("net"); const sock = process.argv[process.argv.length - 1]; diff --git a/src/parseSync.ts b/src/parseSync.js similarity index 88% rename from src/parseSync.ts rename to src/parseSync.js index cdfc7ede..962cdf14 100644 --- a/src/parseSync.ts +++ b/src/parseSync.js @@ -1,18 +1,17 @@ -import { spawn, spawnSync } from "child_process"; -import { +const { spawn, spawnSync } = require("child_process"); +const { existsSync, unlinkSync, mkdtempSync, copyFileSync, mkdirSync, rmdirSync -} from "fs"; -import os from "os"; -import path from "path"; -import process from "process"; +} = require("fs"); +const os = require("os"); +const path = require("path"); +const process = require("process"); -type ParserArgs = { cmd: string; args: string[] }; -let parserArgs: undefined | ParserArgs; +let parserArgs; if (process.env.PRETTIER_RUBY_HOST) { const [cmd, ...args] = process.env.PRETTIER_RUBY_HOST.split(" "); @@ -23,7 +22,7 @@ if (process.env.PRETTIER_RUBY_HOST) { // parse using UTF-8. Unfortunately, the way that you accomplish this looks // differently depending on your platform. /* istanbul ignore next */ -export function getLang() { +function getLang() { const { env, platform } = process; const envValue = env.LC_ALL || env.LC_CTYPE || env.LANG; @@ -56,7 +55,7 @@ export function getLang() { // Generate the filepath that should be used to communicate the connection // information between this process and the parser server. -export function getInfoFilepath() { +function getInfoFilepath() { return path.join(os.tmpdir(), `prettier-ruby-parser-${process.pid}.info`); } @@ -64,13 +63,13 @@ export function getInfoFilepath() { // server with that filepath as an argument, then spawn another process that // will read that information in order to enable us to connect to it in the // spawnSync function. -function spawnServer(): ParserArgs { +function spawnServer() { const tempDir = mkdtempSync(path.join(os.tmpdir(), "prettier-plugin-ruby-")); const filepath = getInfoFilepath(); let serverRbPath = path.join(__dirname, "./server.rb"); let getInfoJsPath = path.join(__dirname, "./getInfo.js"); - let cleanupTempFiles: () => void | undefined; + let cleanupTempFiles; if (runningInPnPZip()) { // If we're running in a Yarn PnP environment inside a ZIP file, it's not possible to run @@ -164,15 +163,11 @@ function runningInPnPZip() { return process.versions.pnp && __dirname.includes(".zip"); } -// You can optionally return location information from the source string when -// raising an error that prettier will handle for you nicely. -type LocatedError = Error & { loc?: any }; - // Formats and sends a request to the parser server. We use netcat (or something // like it) here since Prettier requires the results of `parse` to be // synchronous and Node.js does not offer a mechanism for synchronous socket // requests. -function parseSync(parser: string, source: string) { +function parseSync(parser, source) { if (!parserArgs) { parserArgs = spawnServer(); } @@ -195,7 +190,7 @@ function parseSync(parser: string, source: string) { const parsed = JSON.parse(stdout); if (parsed.error) { - const error: LocatedError = new Error(parsed.error); + const error = new Error(parsed.error); if (parsed.loc) { error.loc = parsed.loc; } @@ -206,4 +201,8 @@ function parseSync(parser: string, source: string) { return parsed; } -export default parseSync; +module.exports = { + getLang, + getInfoFilepath, + parseSync +}; diff --git a/src/plugin.ts b/src/plugin.js similarity index 90% rename from src/plugin.ts rename to src/plugin.js index 4a6ff5ab..5d37ef8b 100644 --- a/src/plugin.ts +++ b/src/plugin.js @@ -1,20 +1,11 @@ -import type { Plugin, SupportLanguage } from "prettier"; -import parseSync from "./parseSync"; - -interface ExtendedSupportLanguage extends SupportLanguage { - interpreters?: string[]; -} - -interface ExtendedPlugin extends Omit { - languages: ExtendedSupportLanguage[]; -} +const { parseSync } = require("./parseSync"); /* * metadata mostly pulled from linguist and rubocop: * https://github.com/github/linguist/blob/master/lib/linguist/languages.yml * https://github.com/rubocop/rubocop/blob/master/spec/rubocop/target_finder_spec.rb */ -const plugin: ExtendedPlugin = { +const plugin = { languages: [ { name: "Ruby", @@ -167,4 +158,4 @@ const plugin: ExtendedPlugin = { } }; -export = plugin; +module.exports = plugin; diff --git a/test/js/files.test.ts b/test/js/files.test.js similarity index 54% rename from test/js/files.test.ts rename to test/js/files.test.js index 4ecb7eca..f1e65868 100644 --- a/test/js/files.test.ts +++ b/test/js/files.test.js @@ -1,14 +1,13 @@ -import path from "path"; -import { FileInfoOptions, getFileInfo } from "prettier"; +const path = require("path"); +const prettier = require("prettier"); -// eslint-disable-next-line @typescript-eslint/no-var-requires const plugin = require("../../src/plugin"); -function getInferredParser(filename: string) { +function getInferredParser(filename) { const filepath = path.join(__dirname, filename); - const fileInfoOptions = { plugins: [plugin] } as any as FileInfoOptions; + const fileInfoOptions = { plugins: [plugin] }; - return getFileInfo(filepath, fileInfoOptions).then( + return prettier.getFileInfo(filepath, fileInfoOptions).then( ({ inferredParser }) => inferredParser ); } diff --git a/test/js/globalSetup.ts b/test/js/globalSetup.js similarity index 84% rename from test/js/globalSetup.ts rename to test/js/globalSetup.js index 90609508..8af21f27 100644 --- a/test/js/globalSetup.ts +++ b/test/js/globalSetup.js @@ -1,8 +1,8 @@ -import { spawn, spawnSync } from "child_process"; -import { unlinkSync } from "fs"; -import path from "path"; +const { spawn, spawnSync } = require("child_process"); +const { unlinkSync } = require("fs"); +const path = require("path"); -import { getLang, getInfoFilepath } from "../../src/parseSync"; +const { getLang, getInfoFilepath } = require("../../src/parseSync"); // This is somewhat similar to the spawnServer function in parseSync but // slightly different in that it logs its information into environment variables @@ -42,4 +42,4 @@ function globalSetup() { server.unref(); } -export default globalSetup; +module.exports = globalSetup; diff --git a/test/js/globalTeardown.ts b/test/js/globalTeardown.js similarity index 93% rename from test/js/globalTeardown.ts rename to test/js/globalTeardown.js index b4b20e9a..35320778 100644 --- a/test/js/globalTeardown.ts +++ b/test/js/globalTeardown.js @@ -13,4 +13,4 @@ function globalTeardown() { } } -export default globalTeardown; +module.exports = globalTeardown; diff --git a/test/js/haml/comment.test.ts b/test/js/haml/comment.test.js similarity index 94% rename from test/js/haml/comment.test.ts rename to test/js/haml/comment.test.js index 0b29db72..4342cdeb 100644 --- a/test/js/haml/comment.test.ts +++ b/test/js/haml/comment.test.js @@ -1,4 +1,4 @@ -import { haml } from "../utils"; +const { haml } = require("../utils"); describe("comment", () => { test("single line", () => { diff --git a/test/js/haml/doctype.test.ts b/test/js/haml/doctype.test.js similarity index 95% rename from test/js/haml/doctype.test.ts rename to test/js/haml/doctype.test.js index bd1ffe58..a6ebfcf0 100644 --- a/test/js/haml/doctype.test.ts +++ b/test/js/haml/doctype.test.js @@ -1,4 +1,4 @@ -import { haml } from "../utils"; +const { haml } = require("../utils"); describe("doctype", () => { test("basic", () => { diff --git a/test/js/haml/filter.test.ts b/test/js/haml/filter.test.js similarity index 92% rename from test/js/haml/filter.test.ts rename to test/js/haml/filter.test.js index 711ba4c2..ba01a0e5 100644 --- a/test/js/haml/filter.test.ts +++ b/test/js/haml/filter.test.js @@ -1,4 +1,4 @@ -import { haml } from "../utils"; +const { haml } = require("../utils"); describe("filter", () => { test("self", () => { diff --git a/test/js/haml/hamlComment.test.ts b/test/js/haml/hamlComment.test.js similarity index 92% rename from test/js/haml/hamlComment.test.ts rename to test/js/haml/hamlComment.test.js index de38dfae..edffe41b 100644 --- a/test/js/haml/hamlComment.test.ts +++ b/test/js/haml/hamlComment.test.js @@ -1,4 +1,4 @@ -import { haml } from "../utils"; +const { haml } = require("../utils"); describe("haml comment", () => { test("empty", () => { diff --git a/test/js/haml/plain.test.ts b/test/js/haml/plain.test.js similarity index 90% rename from test/js/haml/plain.test.ts rename to test/js/haml/plain.test.js index 4f824053..0058b262 100644 --- a/test/js/haml/plain.test.ts +++ b/test/js/haml/plain.test.js @@ -1,4 +1,4 @@ -import { haml } from "../utils"; +const { haml } = require("../utils"); describe("plain", () => { const specialChars = ["%", ".", "#", "/", "!", "=", "&", "~", "-", "\\", ":"]; diff --git a/test/js/haml/script.test.ts b/test/js/haml/script.test.js similarity index 95% rename from test/js/haml/script.test.ts rename to test/js/haml/script.test.js index 833bf31c..bca36c45 100644 --- a/test/js/haml/script.test.ts +++ b/test/js/haml/script.test.js @@ -1,4 +1,4 @@ -import { haml } from "../utils"; +const { haml } = require("../utils"); describe("script", () => { test("single line", () => { diff --git a/test/js/haml/silentScript.test.ts b/test/js/haml/silentScript.test.js similarity index 96% rename from test/js/haml/silentScript.test.ts rename to test/js/haml/silentScript.test.js index d263bd14..af626f38 100644 --- a/test/js/haml/silentScript.test.ts +++ b/test/js/haml/silentScript.test.js @@ -1,4 +1,4 @@ -import { haml } from "../utils"; +const { haml } = require("../utils"); describe("silent script", () => { test("single line", () => { diff --git a/test/js/haml/tag.test.ts b/test/js/haml/tag.test.js similarity index 98% rename from test/js/haml/tag.test.ts rename to test/js/haml/tag.test.js index 59749792..978837d8 100644 --- a/test/js/haml/tag.test.ts +++ b/test/js/haml/tag.test.js @@ -1,4 +1,4 @@ -import { long, haml } from "../utils"; +const { long, haml } = require("../utils"); describe("tag", () => { test("class", () => { diff --git a/test/js/rbs/rbs.test.ts b/test/js/rbs/rbs.test.js similarity index 96% rename from test/js/rbs/rbs.test.ts rename to test/js/rbs/rbs.test.js index a1e6dd86..8ac2f838 100644 --- a/test/js/rbs/rbs.test.ts +++ b/test/js/rbs/rbs.test.js @@ -1,10 +1,10 @@ -import fs from "fs"; -import os from "os"; -import path from "path"; +const fs = require("fs"); +const os = require("os"); +const path = require("path"); -import { atLeastVersion, rbs } from "../utils"; +const { atLeastVersion, rbs } = require("../utils"); -function testCases(name: string, transform: (_source: string) => string) { +function testCases(name, transform) { const buffer = fs.readFileSync(path.resolve(__dirname, `${name}.txt`)); const sources = buffer.toString().slice(0, -1).split(/\r?\n/); @@ -15,7 +15,7 @@ function testCases(name: string, transform: (_source: string) => string) { }); } -function describeCases(name: string, transform: (_source: string) => string) { +function describeCases(name, transform) { describe(name, () => { testCases(name, transform); }); diff --git a/test/js/ruby/comments.test.ts b/test/js/ruby/comments.test.js similarity index 99% rename from test/js/ruby/comments.test.ts rename to test/js/ruby/comments.test.js index 4483b3df..d361880a 100644 --- a/test/js/ruby/comments.test.ts +++ b/test/js/ruby/comments.test.js @@ -1,4 +1,4 @@ -import { ruby } from "../utils"; +const { ruby } = require("../utils"); describe("comments", () => { describe("on their own line", () => { diff --git a/test/js/ruby/encoding.test.ts b/test/js/ruby/encoding.test.js similarity index 100% rename from test/js/ruby/encoding.test.ts rename to test/js/ruby/encoding.test.js diff --git a/test/js/ruby/errors.test.ts b/test/js/ruby/errors.test.js similarity index 91% rename from test/js/ruby/errors.test.ts rename to test/js/ruby/errors.test.js index a01611b4..4f90e2cd 100644 --- a/test/js/ruby/errors.test.ts +++ b/test/js/ruby/errors.test.js @@ -1,4 +1,4 @@ -import prettier from "prettier"; +const prettier = require("prettier"); describe("errors", () => { const cases = [ diff --git a/test/js/ruby/ignore.test.ts b/test/js/ruby/ignore.test.js similarity index 85% rename from test/js/ruby/ignore.test.ts rename to test/js/ruby/ignore.test.js index 4983fae5..e1855482 100644 --- a/test/js/ruby/ignore.test.ts +++ b/test/js/ruby/ignore.test.js @@ -1,4 +1,4 @@ -import { ruby } from "../utils"; +const { ruby } = require("../utils"); describe("ignore", () => { test("you can ignore code blocks", () => { diff --git a/test/js/ruby/layout.test.ts b/test/js/ruby/layout.test.js similarity index 95% rename from test/js/ruby/layout.test.ts rename to test/js/ruby/layout.test.js index 37da3f63..b94fa48d 100644 --- a/test/js/ruby/layout.test.ts +++ b/test/js/ruby/layout.test.js @@ -1,4 +1,4 @@ -import { ruby } from "../utils"; +const { ruby } = require("../utils"); describe("layout", () => { test("turns multiple blank lines into just one blank line", () => { diff --git a/test/js/ruby/nodes/alias.test.ts b/test/js/ruby/nodes/alias.test.js similarity index 97% rename from test/js/ruby/nodes/alias.test.ts rename to test/js/ruby/nodes/alias.test.js index f36dc0fd..f29c6c01 100644 --- a/test/js/ruby/nodes/alias.test.ts +++ b/test/js/ruby/nodes/alias.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("alias", () => { test("bare word aliases", () => { diff --git a/test/js/ruby/nodes/aref.test.ts b/test/js/ruby/nodes/aref.test.js similarity index 94% rename from test/js/ruby/nodes/aref.test.ts rename to test/js/ruby/nodes/aref.test.js index 8bb699cd..d18d7230 100644 --- a/test/js/ruby/nodes/aref.test.ts +++ b/test/js/ruby/nodes/aref.test.js @@ -1,4 +1,4 @@ -import { ruby } from "../../utils"; +const { ruby } = require("../../utils"); describe("aref", () => { test("literal reference", () => { diff --git a/test/js/ruby/nodes/arrays.test.ts b/test/js/ruby/nodes/arrays.test.js similarity index 98% rename from test/js/ruby/nodes/arrays.test.ts rename to test/js/ruby/nodes/arrays.test.js index 2e027e5b..72c55465 100644 --- a/test/js/ruby/nodes/arrays.test.ts +++ b/test/js/ruby/nodes/arrays.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("array", () => { test("empty arrays", () => { diff --git a/test/js/ruby/nodes/assign.test.ts b/test/js/ruby/nodes/assign.test.js similarity index 98% rename from test/js/ruby/nodes/assign.test.ts rename to test/js/ruby/nodes/assign.test.js index f68d801b..44eca0a0 100644 --- a/test/js/ruby/nodes/assign.test.ts +++ b/test/js/ruby/nodes/assign.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("assign", () => { describe("single assignment", () => { diff --git a/test/js/ruby/nodes/binary.test.ts b/test/js/ruby/nodes/binary.test.js similarity index 93% rename from test/js/ruby/nodes/binary.test.ts rename to test/js/ruby/nodes/binary.test.js index a04618c4..e02693bd 100644 --- a/test/js/ruby/nodes/binary.test.ts +++ b/test/js/ruby/nodes/binary.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("binary", () => { test("single line", () => { diff --git a/test/js/ruby/nodes/blocks.test.ts b/test/js/ruby/nodes/blocks.test.js similarity index 99% rename from test/js/ruby/nodes/blocks.test.ts rename to test/js/ruby/nodes/blocks.test.js index afc43817..74b45120 100644 --- a/test/js/ruby/nodes/blocks.test.ts +++ b/test/js/ruby/nodes/blocks.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("blocks", () => { test("empty", () => { diff --git a/test/js/ruby/nodes/break.test.ts b/test/js/ruby/nodes/break.test.js similarity index 95% rename from test/js/ruby/nodes/break.test.ts rename to test/js/ruby/nodes/break.test.js index 8a51b2bb..8842d5f6 100644 --- a/test/js/ruby/nodes/break.test.ts +++ b/test/js/ruby/nodes/break.test.js @@ -1,4 +1,4 @@ -import { ruby } from "../../utils"; +const { ruby } = require("../../utils"); describe("break", () => { test("empty break", () => { diff --git a/test/js/ruby/nodes/calls.test.ts b/test/js/ruby/nodes/calls.test.js similarity index 99% rename from test/js/ruby/nodes/calls.test.ts rename to test/js/ruby/nodes/calls.test.js index 7697b6df..bab58d43 100644 --- a/test/js/ruby/nodes/calls.test.ts +++ b/test/js/ruby/nodes/calls.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("calls", () => { test("simple calls", () => { diff --git a/test/js/ruby/nodes/case.test.ts b/test/js/ruby/nodes/case.test.js similarity index 97% rename from test/js/ruby/nodes/case.test.ts rename to test/js/ruby/nodes/case.test.js index b5904a8d..1be33ef4 100644 --- a/test/js/ruby/nodes/case.test.ts +++ b/test/js/ruby/nodes/case.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("case", () => { test("empty case", () => { diff --git a/test/js/ruby/nodes/class.test.ts b/test/js/ruby/nodes/class.test.js similarity index 98% rename from test/js/ruby/nodes/class.test.ts rename to test/js/ruby/nodes/class.test.js index c6f31faa..e2c82bf6 100644 --- a/test/js/ruby/nodes/class.test.ts +++ b/test/js/ruby/nodes/class.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("class", () => { test("basic nesting", () => { diff --git a/test/js/ruby/nodes/conditionals.test.ts b/test/js/ruby/nodes/conditionals.test.js similarity index 99% rename from test/js/ruby/nodes/conditionals.test.ts rename to test/js/ruby/nodes/conditionals.test.js index 6c966bb7..89506951 100644 --- a/test/js/ruby/nodes/conditionals.test.ts +++ b/test/js/ruby/nodes/conditionals.test.js @@ -1,4 +1,4 @@ -import { long, ruby, atLeastVersion } from "../../utils"; +const { long, ruby, atLeastVersion } = require("../../utils"); describe("conditionals", () => { describe("not operator", () => { diff --git a/test/js/ruby/nodes/defined.test.ts b/test/js/ruby/nodes/defined.test.js similarity index 94% rename from test/js/ruby/nodes/defined.test.ts rename to test/js/ruby/nodes/defined.test.js index 3e23e252..d1503a03 100644 --- a/test/js/ruby/nodes/defined.test.ts +++ b/test/js/ruby/nodes/defined.test.js @@ -1,4 +1,4 @@ -import { long } from "../../utils"; +const { long } = require("../../utils"); describe("defined", () => { test("no parens", () => { diff --git a/test/js/ruby/nodes/embdoc.test.ts b/test/js/ruby/nodes/embdoc.test.js similarity index 94% rename from test/js/ruby/nodes/embdoc.test.ts rename to test/js/ruby/nodes/embdoc.test.js index 592c1a70..e6e9b6f1 100644 --- a/test/js/ruby/nodes/embdoc.test.ts +++ b/test/js/ruby/nodes/embdoc.test.js @@ -1,4 +1,4 @@ -import { ruby } from "../../utils"; +const { ruby } = require("../../utils"); describe("embdoc", () => { test("basic embdocs", () => { diff --git a/test/js/ruby/nodes/field.test.ts b/test/js/ruby/nodes/field.test.js similarity index 100% rename from test/js/ruby/nodes/field.test.ts rename to test/js/ruby/nodes/field.test.js diff --git a/test/js/ruby/nodes/hashes.test.ts b/test/js/ruby/nodes/hashes.test.js similarity index 99% rename from test/js/ruby/nodes/hashes.test.ts rename to test/js/ruby/nodes/hashes.test.js index bf131ff3..8ecd8b17 100644 --- a/test/js/ruby/nodes/hashes.test.ts +++ b/test/js/ruby/nodes/hashes.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("hash", () => { test("empty", () => { diff --git a/test/js/ruby/nodes/heredocs.test.ts b/test/js/ruby/nodes/heredocs.test.js similarity index 99% rename from test/js/ruby/nodes/heredocs.test.ts rename to test/js/ruby/nodes/heredocs.test.js index 0300d361..a348b3bd 100644 --- a/test/js/ruby/nodes/heredocs.test.ts +++ b/test/js/ruby/nodes/heredocs.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("heredocs", () => { describe("straight", () => { diff --git a/test/js/ruby/nodes/hooks.test.ts b/test/js/ruby/nodes/hooks.test.js similarity index 94% rename from test/js/ruby/nodes/hooks.test.ts rename to test/js/ruby/nodes/hooks.test.js index a35660d5..2d7b0cb1 100644 --- a/test/js/ruby/nodes/hooks.test.ts +++ b/test/js/ruby/nodes/hooks.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe.each(["BEGIN", "END"])("%s hook", (hook) => { test("shortens to one line", () => { diff --git a/test/js/ruby/nodes/kwargs.test.ts b/test/js/ruby/nodes/kwargs.test.js similarity index 100% rename from test/js/ruby/nodes/kwargs.test.ts rename to test/js/ruby/nodes/kwargs.test.js diff --git a/test/js/ruby/nodes/lambda.test.ts b/test/js/ruby/nodes/lambda.test.js similarity index 98% rename from test/js/ruby/nodes/lambda.test.ts rename to test/js/ruby/nodes/lambda.test.js index a2222910..8a9588f7 100644 --- a/test/js/ruby/nodes/lambda.test.ts +++ b/test/js/ruby/nodes/lambda.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("lambda", () => { test("plain stabby lambda literal", () => { diff --git a/test/js/ruby/nodes/loops.test.ts b/test/js/ruby/nodes/loops.test.js similarity index 98% rename from test/js/ruby/nodes/loops.test.ts rename to test/js/ruby/nodes/loops.test.js index 0b6034c4..d08dfcf6 100644 --- a/test/js/ruby/nodes/loops.test.ts +++ b/test/js/ruby/nodes/loops.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe.each(["while", "until"])("%s", (keyword) => { test("aligns predicates", () => { diff --git a/test/js/ruby/nodes/massign.test.ts b/test/js/ruby/nodes/massign.test.js similarity index 100% rename from test/js/ruby/nodes/massign.test.ts rename to test/js/ruby/nodes/massign.test.js diff --git a/test/js/ruby/nodes/method.test.ts b/test/js/ruby/nodes/method.test.js similarity index 99% rename from test/js/ruby/nodes/method.test.ts rename to test/js/ruby/nodes/method.test.js index 397f38c9..288885ba 100644 --- a/test/js/ruby/nodes/method.test.ts +++ b/test/js/ruby/nodes/method.test.js @@ -1,4 +1,4 @@ -import { atLeastVersion, long, ruby } from "../../utils"; +const { atLeastVersion, long, ruby } = require("../../utils"); describe("method", () => { describe("definitions", () => { diff --git a/test/js/ruby/nodes/next.test.ts b/test/js/ruby/nodes/next.test.js similarity index 94% rename from test/js/ruby/nodes/next.test.ts rename to test/js/ruby/nodes/next.test.js index 9e2dbdd4..53d2629b 100644 --- a/test/js/ruby/nodes/next.test.ts +++ b/test/js/ruby/nodes/next.test.js @@ -1,4 +1,4 @@ -import { ruby } from "../../utils"; +const { ruby } = require("../../utils"); describe("next", () => { test("bare", () => { diff --git a/test/js/ruby/nodes/numbers.test.ts b/test/js/ruby/nodes/numbers.test.js similarity index 100% rename from test/js/ruby/nodes/numbers.test.ts rename to test/js/ruby/nodes/numbers.test.js diff --git a/test/js/ruby/nodes/patterns.test.ts b/test/js/ruby/nodes/patterns.test.js similarity index 96% rename from test/js/ruby/nodes/patterns.test.ts rename to test/js/ruby/nodes/patterns.test.js index dbb49b79..deb8aed6 100644 --- a/test/js/ruby/nodes/patterns.test.ts +++ b/test/js/ruby/nodes/patterns.test.js @@ -1,4 +1,4 @@ -import { atLeastVersion, atMostVersion, ruby } from "../../utils"; +const { atLeastVersion, atMostVersion, ruby } = require("../../utils"); describe("patterns", () => { if (atMostVersion("2.7")) { diff --git a/test/js/ruby/nodes/ranges.test.ts b/test/js/ruby/nodes/ranges.test.js similarity index 93% rename from test/js/ruby/nodes/ranges.test.ts rename to test/js/ruby/nodes/ranges.test.js index 3e3d67d2..62d6a8cb 100644 --- a/test/js/ruby/nodes/ranges.test.ts +++ b/test/js/ruby/nodes/ranges.test.js @@ -1,4 +1,4 @@ -import { atLeastVersion } from "../../utils"; +const { atLeastVersion } = require("../../utils"); describe("ranges", () => { test("two dot", () => { diff --git a/test/js/ruby/nodes/regexp.test.ts b/test/js/ruby/nodes/regexp.test.js similarity index 97% rename from test/js/ruby/nodes/regexp.test.ts rename to test/js/ruby/nodes/regexp.test.js index 59866495..5ff7983e 100644 --- a/test/js/ruby/nodes/regexp.test.ts +++ b/test/js/ruby/nodes/regexp.test.js @@ -1,4 +1,4 @@ -import { ruby } from "../../utils"; +const { ruby } = require("../../utils"); describe("regexp", () => { test("basic", () => { diff --git a/test/js/ruby/nodes/rescue.test.ts b/test/js/ruby/nodes/rescue.test.js similarity index 98% rename from test/js/ruby/nodes/rescue.test.ts rename to test/js/ruby/nodes/rescue.test.js index b3948af7..30e4c9b4 100644 --- a/test/js/ruby/nodes/rescue.test.ts +++ b/test/js/ruby/nodes/rescue.test.js @@ -1,4 +1,4 @@ -import { ruby } from "../../utils"; +const { ruby } = require("../../utils"); describe("rescue", () => { test("inline", () => { diff --git a/test/js/ruby/nodes/return.test.ts b/test/js/ruby/nodes/return.test.js similarity index 98% rename from test/js/ruby/nodes/return.test.ts rename to test/js/ruby/nodes/return.test.js index dc2f6e03..94f3c842 100644 --- a/test/js/ruby/nodes/return.test.ts +++ b/test/js/ruby/nodes/return.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("return", () => { test("bare", () => { diff --git a/test/js/ruby/nodes/strings.test.ts b/test/js/ruby/nodes/strings.test.js similarity index 99% rename from test/js/ruby/nodes/strings.test.ts rename to test/js/ruby/nodes/strings.test.js index 41fde744..34e90cc1 100644 --- a/test/js/ruby/nodes/strings.test.ts +++ b/test/js/ruby/nodes/strings.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("strings", () => { describe("%-literals with escape sequences in the middle", () => { diff --git a/test/js/ruby/nodes/super.test.ts b/test/js/ruby/nodes/super.test.js similarity index 97% rename from test/js/ruby/nodes/super.test.ts rename to test/js/ruby/nodes/super.test.js index 76a9cd62..0ed4b73c 100644 --- a/test/js/ruby/nodes/super.test.ts +++ b/test/js/ruby/nodes/super.test.js @@ -1,4 +1,4 @@ -import { ruby } from "../../utils"; +const { ruby } = require("../../utils"); describe("super", () => { test("bare", () => { diff --git a/test/js/ruby/nodes/unary.test.ts b/test/js/ruby/nodes/unary.test.js similarity index 100% rename from test/js/ruby/nodes/unary.test.ts rename to test/js/ruby/nodes/unary.test.js diff --git a/test/js/ruby/nodes/undef.test.ts b/test/js/ruby/nodes/undef.test.js similarity index 96% rename from test/js/ruby/nodes/undef.test.ts rename to test/js/ruby/nodes/undef.test.js index fb4f81c1..cdef0e48 100644 --- a/test/js/ruby/nodes/undef.test.ts +++ b/test/js/ruby/nodes/undef.test.js @@ -1,4 +1,4 @@ -import { long, ruby } from "../../utils"; +const { long, ruby } = require("../../utils"); describe("undef", () => { test("single inline", () => { diff --git a/test/js/ruby/nodes/yield.test.ts b/test/js/ruby/nodes/yield.test.js similarity index 100% rename from test/js/ruby/nodes/yield.test.ts rename to test/js/ruby/nodes/yield.test.js diff --git a/test/js/setupTests.ts b/test/js/setupTests.js similarity index 50% rename from test/js/setupTests.ts rename to test/js/setupTests.js index 593ecb94..266cf2df 100644 --- a/test/js/setupTests.ts +++ b/test/js/setupTests.js @@ -1,18 +1,17 @@ -import prettier from "prettier"; +const prettier = require("prettier"); -import type { Code } from "./types"; -import plugin from "../../src/plugin"; +const plugin = require("../../src/plugin"); -function normalize(code: Code) { +function normalize(code) { const string = typeof code === "string" ? code : code.code; return string.replace(/\r?\n/g, "\n").trim(); } -function checkFormat(before: Code, after: Code) { +function checkFormat(before, after) { const originalText = typeof before === "string" ? before : before.code; const formatted = prettier.format(originalText, { parser: typeof before === "string" ? "ruby" : before.parser, - plugins: [plugin as any as string] + plugins: [plugin] }); const expected = normalize(after); @@ -25,21 +24,10 @@ function checkFormat(before: Code, after: Code) { } expect.extend({ - toChangeFormat(before: Code, after: Code) { + toChangeFormat(before, after) { return checkFormat(before, after); }, - toMatchFormat(before: Code) { + toMatchFormat(before) { return checkFormat(before, before); } }); - -declare global { - // eslint-disable-next-line @typescript-eslint/no-namespace - namespace jest { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - interface Matchers { - toChangeFormat(after: Code): CustomMatcherResult; - toMatchFormat(): CustomMatcherResult; - } - } -} diff --git a/test/js/types.ts b/test/js/types.ts deleted file mode 100644 index 26de5835..00000000 --- a/test/js/types.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type Code = - | string - | { code: string; parser: "rbs" } - | { code: string; parser: "haml" }; diff --git a/test/js/utils.ts b/test/js/utils.js similarity index 71% rename from test/js/utils.ts rename to test/js/utils.js index 2d0f0242..ae0584f6 100644 --- a/test/js/utils.ts +++ b/test/js/utils.js @@ -1,8 +1,6 @@ -import type { Code } from "./types"; +const long = Array(80).fill("a").join(""); -export const long = Array(80).fill("a").join(""); - -function stripLeadingWhitespace(code: string) { +function stripLeadingWhitespace(code) { if (!code.includes("\n")) { return code; } @@ -15,15 +13,15 @@ function stripLeadingWhitespace(code: string) { return content.map((line) => line.slice(indent)).join("\n"); } -export function ruby(code: string) { +function ruby(code) { return stripLeadingWhitespace(code); } -export function rbs(code: string): Code { +function rbs(code) { return { code: stripLeadingWhitespace(code), parser: "rbs" }; } -export function haml(code: string): Code { +function haml(code) { return { code: stripLeadingWhitespace(code), parser: "haml" }; } @@ -32,10 +30,19 @@ export function haml(code: string): Code { // should be always available. TypeScript doesn't know that though, so we // explicitly allow it to be undefined by coalescing with the empty string. -export function atLeastVersion(version: string) { +function atLeastVersion(version) { return (process.env.RUBY_VERSION || "") >= version; } -export function atMostVersion(version: string) { +function atMostVersion(version) { return (process.env.RUBY_VERSION || "") < version; } + +module.exports = { + long, + ruby, + rbs, + haml, + atLeastVersion, + atMostVersion +}; diff --git a/tsconfig.build.json b/tsconfig.build.json deleted file mode 100644 index f4f4548c..00000000 --- a/tsconfig.build.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.json", - "exclude": ["bin", "test"] -} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 043f24e5..00000000 --- a/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "allowJs": false, - "esModuleInterop": true, - "module": "commonjs", - "moduleResolution": "node", - "outDir": "dist", - "sourceMap": false, - "strict": true, - "target": "es2019" - } -} diff --git a/yarn.lock b/yarn.lock index 583a4071..b75a3549 100644 --- a/yarn.lock +++ b/yarn.lock @@ -293,18 +293,6 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cspotcode/source-map-consumer@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" - integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== - -"@cspotcode/source-map-support@0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" - integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== - dependencies: - "@cspotcode/source-map-consumer" "0.8.0" - "@eslint/eslintrc@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" @@ -537,27 +525,6 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@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" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -577,26 +544,6 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@tsconfig/node10@^1.0.7": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" - integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== - -"@tsconfig/node12@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" - integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== - -"@tsconfig/node14@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" - integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== - -"@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== - "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": version "7.1.19" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" @@ -656,30 +603,17 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^27.0.1": - version "27.4.1" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-27.4.1.tgz#185cbe2926eaaf9662d340cc02e548ce9e11ab6d" - integrity sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw== - dependencies: - jest-matcher-utils "^27.0.0" - pretty-format "^27.0.0" - -"@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - "@types/minimatch@^3.0.3": version "3.0.5" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== -"@types/node@*", "@types/node@^17.0.0": +"@types/node@*": version "17.0.25" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.25.tgz#527051f3c2f77aa52e5dc74e45a3da5fb2301448" integrity sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w== -"@types/prettier@^2.1.5", "@types/prettier@^2.4.2": +"@types/prettier@^2.1.5": version "2.6.0" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759" integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== @@ -701,86 +635,6 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.18.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.20.0.tgz#022531a639640ff3faafaf251d1ce00a2ef000a1" - integrity sha512-fapGzoxilCn3sBtC6NtXZX6+P/Hef7VDbyfGqTTpzYydwhlkevB+0vE0EnmHPVTVSy68GUncyJ/2PcrFBeCo5Q== - dependencies: - "@typescript-eslint/scope-manager" "5.20.0" - "@typescript-eslint/type-utils" "5.20.0" - "@typescript-eslint/utils" "5.20.0" - debug "^4.3.2" - functional-red-black-tree "^1.0.1" - ignore "^5.1.8" - regexpp "^3.2.0" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.18.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.20.0.tgz#4991c4ee0344315c2afc2a62f156565f689c8d0b" - integrity sha512-UWKibrCZQCYvobmu3/N8TWbEeo/EPQbS41Ux1F9XqPzGuV7pfg6n50ZrFo6hryynD8qOTTfLHtHjjdQtxJ0h/w== - dependencies: - "@typescript-eslint/scope-manager" "5.20.0" - "@typescript-eslint/types" "5.20.0" - "@typescript-eslint/typescript-estree" "5.20.0" - debug "^4.3.2" - -"@typescript-eslint/scope-manager@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.20.0.tgz#79c7fb8598d2942e45b3c881ced95319818c7980" - integrity sha512-h9KtuPZ4D/JuX7rpp1iKg3zOH0WNEa+ZIXwpW/KWmEFDxlA/HSfCMhiyF1HS/drTICjIbpA6OqkAhrP/zkCStg== - dependencies: - "@typescript-eslint/types" "5.20.0" - "@typescript-eslint/visitor-keys" "5.20.0" - -"@typescript-eslint/type-utils@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.20.0.tgz#151c21cbe9a378a34685735036e5ddfc00223be3" - integrity sha512-WxNrCwYB3N/m8ceyoGCgbLmuZwupvzN0rE8NBuwnl7APgjv24ZJIjkNzoFBXPRCGzLNkoU/WfanW0exvp/+3Iw== - dependencies: - "@typescript-eslint/utils" "5.20.0" - debug "^4.3.2" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.20.0.tgz#fa39c3c2aa786568302318f1cb51fcf64258c20c" - integrity sha512-+d8wprF9GyvPwtoB4CxBAR/s0rpP25XKgnOvMf/gMXYDvlUC3rPFHupdTQ/ow9vn7UDe5rX02ovGYQbv/IUCbg== - -"@typescript-eslint/typescript-estree@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.20.0.tgz#ab73686ab18c8781bbf249c9459a55dc9417d6b0" - integrity sha512-36xLjP/+bXusLMrT9fMMYy1KJAGgHhlER2TqpUVDYUQg4w0q/NW/sg4UGAgVwAqb8V4zYg43KMUpM8vV2lve6w== - dependencies: - "@typescript-eslint/types" "5.20.0" - "@typescript-eslint/visitor-keys" "5.20.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.20.0.tgz#b8e959ed11eca1b2d5414e12417fd94cae3517a5" - integrity sha512-lHONGJL1LIO12Ujyx8L8xKbwWSkoUKFSO+0wDAqGXiudWB2EO7WEUT+YZLtVbmOmSllAjLb9tpoIPwpRe5Tn6w== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.20.0" - "@typescript-eslint/types" "5.20.0" - "@typescript-eslint/typescript-estree" "5.20.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.20.0": - version "5.20.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.20.0.tgz#70236b5c6b67fbaf8b2f58bf3414b76c1e826c2a" - integrity sha512-1flRpNF+0CAQkMNlTJ6L/Z5jiODG/e5+7mk6XwtPOUS3UrTz3UOiAg9jG2VtKsWI6rZQfy4C6a232QNRZTRGlg== - dependencies: - "@typescript-eslint/types" "5.20.0" - eslint-visitor-keys "^3.0.0" - abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" @@ -804,17 +658,12 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - 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.2.4, acorn@^8.4.1, acorn@^8.7.0: +acorn@^8.2.4, acorn@^8.7.0: version "8.7.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== @@ -875,11 +724,6 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -1009,13 +853,6 @@ browserslist@^4.17.5: node-releases "^2.0.2" picocolors "^1.0.0" -bs-logger@0.x: - version "0.2.6" - resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" - integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== - dependencies: - fast-json-stable-stringify "2.x" - bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -1150,11 +987,6 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -1232,18 +1064,6 @@ diff-sequences@^27.5.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -1324,14 +1144,6 @@ eslint-config-prettier@^8.0.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - eslint-scope@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" @@ -1352,7 +1164,7 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: +eslint-visitor-keys@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== @@ -1426,11 +1238,6 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" @@ -1491,18 +1298,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - 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.x, fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@^2.0.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== @@ -1512,13 +1308,6 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - 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" @@ -1617,13 +1406,6 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - glob-parent@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" @@ -1655,18 +1437,6 @@ globals@^13.6.0, globals@^13.9.0: dependencies: type-fest "^0.20.2" -globby@^11.0.4: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" @@ -1740,7 +1510,7 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: +ignore@^5.1.4, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -1806,7 +1576,7 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -2071,7 +1841,7 @@ jest-leak-detector@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-matcher-utils@^27.0.0, jest-matcher-utils@^27.5.1: +jest-matcher-utils@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== @@ -2230,7 +2000,7 @@ jest-snapshot@^27.5.1: pretty-format "^27.5.1" semver "^7.3.2" -jest-util@^27.0.0, jest-util@^27.5.1: +jest-util@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== @@ -2358,7 +2128,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@2.x, json5@^2.1.2: +json5@^2.1.2: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== @@ -2401,11 +2171,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.memoize@4.x: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -2430,11 +2195,6 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" -make-error@1.x, make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -2447,11 +2207,6 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - micromatch@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -2636,11 +2391,6 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -2678,7 +2428,7 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== -pretty-format@^27.0.0, pretty-format@^27.5.1: +pretty-format@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== @@ -2725,11 +2475,6 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - react-is@^17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" @@ -2776,11 +2521,6 @@ resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -2788,13 +2528,6 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -2812,18 +2545,18 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -semver@7.x, semver@^7.3.2, semver@^7.3.5: +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.2: version "7.3.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -3024,51 +2757,6 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" -ts-jest@^27.0.5: - version "27.1.4" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.4.tgz#84d42cf0f4e7157a52e7c64b1492c46330943e00" - integrity sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ== - dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^27.0.0" - json5 "2.x" - lodash.memoize "4.x" - make-error "1.x" - semver "7.x" - yargs-parser "20.x" - -ts-node@^10.2.1: - version "10.7.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.7.0.tgz#35d503d0fab3e2baa672a0e94f4b40653c2463f5" - integrity sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A== - dependencies: - "@cspotcode/source-map-support" "0.7.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.0" - yn "3.1.1" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -3105,11 +2793,6 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^4.5.2: - version "4.6.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" - integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== - universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -3122,11 +2805,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -v8-compile-cache-lib@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz#0582bcb1c74f3a2ee46487ceecf372e46bce53e8" - integrity sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA== - v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" @@ -3254,7 +2932,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@20.x, yargs-parser@^20.2.2: +yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== @@ -3271,8 +2949,3 @@ yargs@^16.2.0: string-width "^4.2.0" y18n "^5.0.5" yargs-parser "^20.2.2" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== From 82334dbf7689d8f8d0402b90bb534727ef50e932 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 16:36:58 -0400 Subject: [PATCH 068/262] Fix up formatting on main --- test/js/files.test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/js/files.test.js b/test/js/files.test.js index f1e65868..90bc1121 100644 --- a/test/js/files.test.js +++ b/test/js/files.test.js @@ -7,9 +7,9 @@ function getInferredParser(filename) { const filepath = path.join(__dirname, filename); const fileInfoOptions = { plugins: [plugin] }; - return prettier.getFileInfo(filepath, fileInfoOptions).then( - ({ inferredParser }) => inferredParser - ); + return prettier + .getFileInfo(filepath, fileInfoOptions) + .then(({ inferredParser }) => inferredParser); } describe("files", () => { From 42e4a90b069ffbc4918a2b2c8bac99c84cd56ca8 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 16:38:40 -0400 Subject: [PATCH 069/262] Remove old debugging utilities now covered by SyntaxTree --- bin/console | 7 -- bin/debug | 163 ----------------------------------------------- bin/lex | 6 -- bin/sexp | 23 ------- prettier.gemspec | 2 +- 5 files changed, 1 insertion(+), 200 deletions(-) delete mode 100755 bin/console delete mode 100755 bin/debug delete mode 100755 bin/lex delete mode 100755 bin/sexp diff --git a/bin/console b/bin/console deleted file mode 100755 index 05b9a575..00000000 --- a/bin/console +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env ruby - -require "bundler/setup" -require "prettier" - -require "irb" -IRB.start(__FILE__) diff --git a/bin/debug b/bin/debug deleted file mode 100755 index 15d16356..00000000 --- a/bin/debug +++ /dev/null @@ -1,163 +0,0 @@ -#!/usr/bin/env ruby - -require "bundler/inline" - -gemfile do - source "https://rubygems.org" - gem "sinatra", require: "sinatra/base" - gem "webrick" -end - -require_relative "../src/ruby/parser" - -class App < Sinatra::Base - HTML = DATA.read - - get "/" do - HTML - end - - post "/ast" do - response = Prettier::Parser.parse(request.body.read) - response ? JSON.fast_generate(response) : halt(422) - rescue Prettier::Parser::ParserError - halt 422 - end - - start! -end - -__END__ - - - - - - - @prettier/plugin-ruby - - - -

@prettier/plugin-ruby

- - -
    - - - diff --git a/bin/lex b/bin/lex deleted file mode 100755 index 58af05a6..00000000 --- a/bin/lex +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env ruby - -require "ripper" - -source = File.file?(ARGV[0]) ? File.read(ARGV[0]) : ARGV[0].gsub('\\n', "\n") -pp Ripper.lex(source) diff --git a/bin/sexp b/bin/sexp deleted file mode 100755 index 1c18538c..00000000 --- a/bin/sexp +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env ruby - -require_relative "../src/ruby/parser" - -source = - if !ARGV[0] - File.read("test.rb") - elsif File.file?(ARGV[0]) - File.read(ARGV[0]) - else - ARGV[0].gsub('\\n', "\n") - end - -parsed = SyntaxTree.parse(source) - -puts "=== SOURCE === " -puts source - -puts "\n=== COMMENTS ===" -pp parsed.comments - -puts "\n=== S-EXPS ===" -pp parsed diff --git a/prettier.gemspec b/prettier.gemspec index e64c36a0..3fd2c017 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -14,7 +14,7 @@ Gem::Specification.new do |spec| spec.files = Dir.chdir(__dir__) do - %w[LICENSE bin/console package.json rubocop.yml] + + %w[LICENSE package.json rubocop.yml] + Dir["{{exe,lib,src}/**/*,*.md}"] + Dir[ "node_modules/prettier/{package.json,index.js,cli.js,doc.js,bin-prettier.js,third-party.js,parser-*.js}" From 43b7ab55d1182e191a33a311a62462c99a8a7517 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Apr 2022 16:45:33 -0400 Subject: [PATCH 070/262] Fix up formatting on main --- prettier.gemspec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/prettier.gemspec b/prettier.gemspec index 3fd2c017..c2b45719 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -14,8 +14,7 @@ Gem::Specification.new do |spec| spec.files = Dir.chdir(__dir__) do - %w[LICENSE package.json rubocop.yml] + - Dir["{{exe,lib,src}/**/*,*.md}"] + + %w[LICENSE package.json rubocop.yml] + Dir["{{exe,lib,src}/**/*,*.md}"] + Dir[ "node_modules/prettier/{package.json,index.js,cli.js,doc.js,bin-prettier.js,third-party.js,parser-*.js}" ] From 0815dfed50e8bd68596b0aaec5a40250d7b8bb53 Mon Sep 17 00:00:00 2001 From: Nat Budin Date: Sat, 23 Apr 2022 09:37:31 -0700 Subject: [PATCH 071/262] Copy source files from the correct path The syntax_tree-based plugin doesn't store the source files in the same location in the package as before. So, the parseSync logic needs to know about that so it can copy the files from the new directory. --- .github/workflows/main.yml | 5 +++-- src/parseSync.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 46f96c8d..35027e8e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -58,8 +58,8 @@ jobs: fail-fast: false matrix: platform: - # - macos-latest - # - ubuntu-latest + - macos-latest + - ubuntu-latest - windows-latest yarn: - 2.x @@ -73,6 +73,7 @@ jobs: with: bundler-cache: true ruby-version: "3.1" + - run: gem install syntax_tree syntax_tree-haml syntax_tree-rbs - uses: actions/setup-node@v2 with: node-version: 12.x diff --git a/src/parseSync.js b/src/parseSync.js index 962cdf14..e4afbb1c 100644 --- a/src/parseSync.js +++ b/src/parseSync.js @@ -86,7 +86,7 @@ function spawnServer() { mkdirSync(destDir); } copyFileSync( - path.join(__dirname, "..", rubyFile), + path.join(__dirname, "..", "src", rubyFile), path.join(tempDir, rubyFile) ); }); From b16f96f6b2b1115f1eebcb1f2478ad8ceb1d1555 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Apr 2022 12:01:23 +0000 Subject: [PATCH 072/262] Bump eslint from 8.13.0 to 8.14.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.13.0 to 8.14.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.13.0...v8.14.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index b75a3549..69b00d18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -293,10 +293,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.1.tgz#8b5e1c49f4077235516bc9ec7d41378c0f69b8c6" - integrity sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ== +"@eslint/eslintrc@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.2.tgz#4989b9e8c0216747ee7cca314ae73791bb281aae" + integrity sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1170,11 +1170,11 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.1.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.13.0.tgz#6fcea43b6811e655410f5626cfcf328016badcd7" - integrity sha512-D+Xei61eInqauAyTJ6C0q6x9mx7kTUC1KZ0m0LSEexR0V+e94K12LmWX076ZIsldwfQ2RONdaJe0re0TRGQbRQ== + version "8.14.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.14.0.tgz#62741f159d9eb4a79695b28ec4989fcdec623239" + integrity sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw== dependencies: - "@eslint/eslintrc" "^1.2.1" + "@eslint/eslintrc" "^1.2.2" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" From aba756d7e9da3c00b72b3b989b189cce8885a32a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Apr 2022 12:01:06 +0000 Subject: [PATCH 073/262] Bump jest from 27.5.1 to 28.0.1 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 27.5.1 to 28.0.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v28.0.1/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 1352 +++++++++++++++++++------------------------------- 2 files changed, 522 insertions(+), 832 deletions(-) diff --git a/package.json b/package.json index ef58c6d7..c2ca81a0 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "eslint": "^8.1.0", "eslint-config-prettier": "^8.0.0", "husky": "^7.0.0", - "jest": "^27.0.1", + "jest": "^28.0.1", "pretty-quick": "^3.1.2" }, "eslintConfig": { diff --git a/yarn.lock b/yarn.lock index 69b00d18..3f320a5a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21,7 +21,28 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": +"@babel/core@^7.11.6": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" + integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.9" + "@babel/parser" "^7.17.9" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.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/core@^7.12.3": version "7.17.8" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== @@ -51,6 +72,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" + integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-compilation-targets@^7.17.7": version "7.17.7" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" @@ -77,6 +107,14 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.16.7" +"@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-get-function-arity@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" @@ -150,6 +188,15 @@ "@babel/traverse" "^7.17.3" "@babel/types" "^7.17.0" +"@babel/helpers@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" + integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.9" + "@babel/types" "^7.17.0" + "@babel/highlight@^7.16.7": version "7.16.10" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" @@ -164,6 +211,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== +"@babel/parser@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" + integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -280,6 +332,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" + integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.9" + "@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.17.9" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": version "7.17.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" @@ -338,173 +406,195 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" - integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== +"@jest/console@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.0.1.tgz#4869cecbc5ffddbd03feaaeddcc73110d9e23f49" + integrity sha512-c05/4ZS+1d/TM4svDxrsh+vbYUPC08C0zG/DWJgdv2rtkDgYHRfLtt9bSaWpSISE+NtqdRbnzbUtJeBXjTKyhQ== dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^28.0.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^27.5.1" - jest-util "^27.5.1" + jest-message-util "^28.0.1" + jest-util "^28.0.1" slash "^3.0.0" -"@jest/core@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" - integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== +"@jest/core@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.0.1.tgz#9d3cd1f157f3e53c0e61e242ae39a1872befc374" + integrity sha512-hTxTpwJPOwHpCFwo4s6QVHq423RtZNaBsb/JQdicLzGvQuxnAzvaA7H3NFiv+TB6ExSOdW5aG2Q5nz/IwYCHIQ== dependencies: - "@jest/console" "^27.5.1" - "@jest/reporters" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/console" "^28.0.1" + "@jest/reporters" "^28.0.1" + "@jest/test-result" "^28.0.1" + "@jest/transform" "^28.0.1" + "@jest/types" "^28.0.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - emittery "^0.8.1" + ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^27.5.1" - jest-config "^27.5.1" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-resolve-dependencies "^27.5.1" - jest-runner "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - jest-watcher "^27.5.1" + jest-changed-files "^28.0.0" + jest-config "^28.0.1" + jest-haste-map "^28.0.1" + jest-message-util "^28.0.1" + jest-regex-util "^28.0.0" + jest-resolve "^28.0.1" + jest-resolve-dependencies "^28.0.1" + jest-runner "^28.0.1" + jest-runtime "^28.0.1" + jest-snapshot "^28.0.1" + jest-util "^28.0.1" + jest-validate "^28.0.1" + jest-watcher "^28.0.1" micromatch "^4.0.4" + pretty-format "^28.0.1" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" - integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== +"@jest/environment@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.0.1.tgz#a50cefc75329b7f499b65694fc405509bd3a8ec9" + integrity sha512-PuN3TBNFSUKNgEgFgJxb15/GOyhXc46wbyCobUcf8ijUgteEmVXD4FfUZpe5QXg/bpmydufzx/02BRlUfkM44Q== dependencies: - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/fake-timers" "^28.0.1" + "@jest/types" "^28.0.1" "@types/node" "*" - jest-mock "^27.5.1" + jest-mock "^28.0.1" -"@jest/fake-timers@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" - integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== +"@jest/expect-utils@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.0.1.tgz#c6aa0fb629e3d205384406c2e6cb00b7916c597a" + integrity sha512-ctuvt7SeoVlG3P2eemtq3/TF5a7ncnpC18Ctv1BjCfBjkjVKtAkDblw6qhx24tZlYdhm0lrihwK80pkzmkUctw== dependencies: - "@jest/types" "^27.5.1" - "@sinonjs/fake-timers" "^8.0.1" + jest-get-type "^28.0.0" + +"@jest/expect@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.0.1.tgz#eb836dc95686e724de3419bf08e43f12466a9fb2" + integrity sha512-qRAiC7/gJ/1z2O+TnGCVUTJ/HkqXhDCSm4R7ydfY/rOMryvFzccpALmHdI8joovGRQvkHStM/wwHRHRQTc8+zQ== + dependencies: + expect "^28.0.1" + jest-snapshot "^28.0.1" + +"@jest/fake-timers@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.0.1.tgz#e0a95401a06b28224475fe0a124835d6e689869b" + integrity sha512-w7JleyVymoVWMvsnRRpM/ySM+K6qq+cLwK33VbFAghKTHp14oBiOio1Hh1egUyFdNybmKZxQvBBwB0M/48LgGQ== + dependencies: + "@jest/types" "^28.0.1" + "@sinonjs/fake-timers" "^9.1.1" "@types/node" "*" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-util "^27.5.1" + jest-message-util "^28.0.1" + jest-mock "^28.0.1" + jest-util "^28.0.1" -"@jest/globals@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" - integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== +"@jest/globals@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.0.1.tgz#165eced7e768c595c2eba5ae8e6d9784224328e9" + integrity sha512-KBWuQ1PQjm8IKUObSSQAGlGguJZHKaVCHWY99FSGwjyf58hT9yCYH2wFfLhWocy4Y5otK2gZbsCwWVX6WXft2Q== dependencies: - "@jest/environment" "^27.5.1" - "@jest/types" "^27.5.1" - expect "^27.5.1" + "@jest/environment" "^28.0.1" + "@jest/expect" "^28.0.1" + "@jest/types" "^28.0.1" -"@jest/reporters@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" - integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== +"@jest/reporters@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.0.1.tgz#711145ea5e6c29c9f8050cb65d3ef98fe68a8290" + integrity sha512-XMjv+E0fi2QA1qbV1q/NiODueljjfM9i2SpOFqGLc8pHeAcfYfFAZIWI6DXe+2dL4RylDiAlV6Ll5KU4GyUuvA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/console" "^28.0.1" + "@jest/test-result" "^28.0.1" + "@jest/transform" "^28.0.1" + "@jest/types" "^28.0.1" + "@jridgewell/trace-mapping" "^0.3.7" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" - glob "^7.1.2" + glob "^7.1.3" graceful-fs "^4.2.9" istanbul-lib-coverage "^3.0.0" istanbul-lib-instrument "^5.1.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-haste-map "^27.5.1" - jest-resolve "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" + jest-util "^28.0.1" + jest-worker "^28.0.1" slash "^3.0.0" - source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" + v8-to-istanbul "^9.0.0" -"@jest/source-map@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" - integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== +"@jest/schemas@^28.0.0": + version "28.0.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.0.tgz#55cf5fcc82440a2a39b717bb949570c501fd5410" + integrity sha512-Pap9Jvwr8KYFvDgkya/p0FCVya+jZkWt57lHpwBylfjgmwi/gtXfhyAO/Cw+jKuMafHcXY0beNf2XV2pkcu9vA== dependencies: + "@sinclair/typebox" "^0.23.3" + +"@jest/source-map@^28.0.0": + version "28.0.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.0.0.tgz#d026fc1cd7e95fd7ce788d0b27838d9796da0a74" + integrity sha512-yeD/Y94j6UJPiaZTG5Sdww7pbHvEc7RlTucoVAdXaBaSuNcyrAkLlJonAb/xX/efCugDOEbFJdATsSnDEh45Nw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.7" callsites "^3.0.0" graceful-fs "^4.2.9" - source-map "^0.6.0" -"@jest/test-result@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" - integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== +"@jest/test-result@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.0.1.tgz#4c0eb5d7c3947c70f7ae1a119a9bc049b8465fbf" + integrity sha512-8LhoEbdIkkYK+PZx6JhfRvI1Jw7tfB77OEJUQwp0diBvXJpjPKeFFWfsbpm7djdXuKoKvXKNzSGgjXDOFbxuhg== dependencies: - "@jest/console" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/console" "^28.0.1" + "@jest/types" "^28.0.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" - integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== +"@jest/test-sequencer@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.0.1.tgz#7260db16c12f055f80809348740c2fd2d903f6e0" + integrity sha512-PbXoEP9aovOC+KunEy65vuSAB/ZMLNcBVdMUIH2hsfFDWhQx/8OnHsz3dr3g1U6qNuCpXzD1fyM8/1TrUU0uFw== dependencies: - "@jest/test-result" "^27.5.1" + "@jest/test-result" "^28.0.1" graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-runtime "^27.5.1" + jest-haste-map "^28.0.1" + slash "^3.0.0" -"@jest/transform@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" - integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== +"@jest/transform@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.0.1.tgz#44fced5a366af7cc5f69745c92014bf45c408d90" + integrity sha512-45fxjycts6CTPMeusSICYhMkMgFAs1opvgEBYcMmukucJw/AgVEMsGFqheWyDzlU6GJ+h9cpft/zkTGPJtzRGQ== dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.5.1" + "@babel/core" "^7.11.6" + "@jest/types" "^28.0.1" + "@jridgewell/trace-mapping" "^0.3.7" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-regex-util "^27.5.1" - jest-util "^27.5.1" + jest-haste-map "^28.0.1" + jest-regex-util "^28.0.0" + jest-util "^28.0.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" + write-file-atomic "^4.0.1" -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== +"@jest/types@^28.0.1": + version "28.0.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.0.1.tgz#4bf819b570efd6fc89d8fa45a7b2c13db58800c3" + integrity sha512-Z48DBfQDtTZZAImaa1m8O1SCP9gx355FhuA6xuS8e7V5gQbj4l2hk/+EELN4UU/O9i5gjQuc94N/gC61/Qxfxw== dependencies: + "@jest/schemas" "^28.0.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" - "@types/yargs" "^16.0.0" + "@types/yargs" "^17.0.8" chalk "^4.0.0" "@jridgewell/resolve-uri@^3.0.3": @@ -525,6 +615,19 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.7": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@sinclair/typebox@^0.23.3": + version "0.23.4" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.4.tgz#6ff93fd2585ce44f7481c9ff6af610fbb5de98a4" + integrity sha512-0/WqSvpVbCBAV1yPeko7eAczKbs78dNVAaX14quVlwOb2wxfKuXCx91h4NrEfkYK9zEnyVSW4JVI/trP3iS+Qg== + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -532,19 +635,14 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== +"@sinonjs/fake-timers@^9.1.1": + version "9.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" + integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== dependencies: "@sinonjs/commons" "^1.7.0" -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": +"@types/babel__core@^7.1.14": version "7.1.19" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== @@ -570,14 +668,14 @@ "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": 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== dependencies: "@babel/types" "^7.3.0" -"@types/graceful-fs@^4.1.2": +"@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== @@ -628,53 +726,23 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== +"@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== dependencies: "@types/yargs-parser" "*" -abab@^2.0.3, abab@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - -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" - acorn-jsx@^5.3.1: 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.2.4, acorn@^8.7.0: +acorn@^8.7.0: version "8.7.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== -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" - ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -751,21 +819,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -babel-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" - integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== +babel-jest@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.0.1.tgz#effa686f25551d930bf3b645d7513091094f8968" + integrity sha512-UbL+4xVftxnIcPKzCqmwZHwaPG8DyKOCXoWPeuKrvUFtyeUpePy6VtRiMN1Dv001NbEMNP4FVjfKwv1xe2PWZQ== dependencies: - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/transform" "^28.0.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.5.1" + babel-preset-jest "^28.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -781,14 +843,14 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" - integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== +babel-plugin-jest-hoist@^28.0.0: + version "28.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.0.tgz#7429bb64b97170822dce58ee763555ebc983cbdc" + integrity sha512-Eu+TDlmKd2SsnvmlooVeHFryVHHom6ffCLSZuqrN8WpIHE0H6qiIPW5h5rFlzIZQmVqnZR2qHnbm2eQWIP7hZg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" + "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" babel-preset-current-node-syntax@^1.0.0: @@ -809,12 +871,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" - integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== +babel-preset-jest@^28.0.0: + version "28.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.0.0.tgz#9e7c5f4097b63a3e9edb8f59b8030eca6901771c" + integrity sha512-JLyjfCmqCWS3tXUw86ei5fQwuwn34slNBPTluNbhoqHVI1Cbw6MsmvgEl54jPjbyzkmA6XAHJTg3EGNY7rnr4A== dependencies: - babel-plugin-jest-hoist "^27.5.1" + babel-plugin-jest-hoist "^28.0.0" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -837,11 +899,6 @@ braces@^3.0.2: 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== - browserslist@^4.17.5: version "4.20.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" @@ -968,13 +1025,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" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -996,50 +1046,19 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -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== - dependencies: - cssom "~0.3.6" - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: +debug@^4.1.0, debug@^4.1.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== dependencies: ms "2.1.2" -decimal.js@^10.2.1: - version "10.3.1" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" - integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== - dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= -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== @@ -1049,20 +1068,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -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: 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@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== +diff-sequences@^28.0.0: + version "28.0.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.0.0.tgz#06d253f0005463bf203d96fdbd6296c5f1d1888c" + integrity sha512-GTIQPn2pPa1DMoEH70P9yQgYLcGW8bjPR5EOL2JO9/7DQHX+9tTFJee3UmlGWuyUvIqMgpXXssrckLubiEUZTg== doctrine@^3.0.0: version "3.0.0" @@ -1071,22 +1085,15 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - electron-to-chromium@^1.4.84: version "1.4.103" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz#abfe376a4d70fa1e1b4b353b95df5d6dfd05da3a" integrity sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg== -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== +emittery@^0.10.2: + version "0.10.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" + integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== emoji-regex@^8.0.0: version "8.0.0" @@ -1127,18 +1134,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@^8.0.0: version "8.5.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" @@ -1219,7 +1214,7 @@ espree@^9.3.1: acorn-jsx "^5.3.1" eslint-visitor-keys "^3.3.0" -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== @@ -1283,15 +1278,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" - integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== +expect@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-28.0.1.tgz#7bfac95d375d4310d5061f7e9b7f2afa55a1c1c0" + integrity sha512-sJjuHVbveEUczNITHKgHUepbEyj+UzjACMNuEln5tZI6b9L/y8jTXAN8VnOCnMoK7vuQPSttO/5HlKB+G3Enpw== dependencies: - "@jest/types" "^27.5.1" - jest-get-type "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" + "@jest/expect-utils" "^28.0.1" + jest-get-type "^28.0.0" + jest-matcher-utils "^28.0.1" + jest-message-util "^28.0.1" + jest-util "^28.0.1" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1303,7 +1299,7 @@ fast-json-stable-stringify@^2.0.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= @@ -1350,15 +1346,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - 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" @@ -1413,7 +1400,7 @@ glob-parent@^6.0.1: dependencies: is-glob "^4.0.3" -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.3, glob@^7.1.4: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -1459,35 +1446,11 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - 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@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" @@ -1503,13 +1466,6 @@ husky@^7.0.0: resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535" integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - ignore@^5.1.4, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" @@ -1588,21 +1544,11 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -1650,228 +1596,188 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" - integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== +jest-changed-files@^28.0.0: + version "28.0.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.0.0.tgz#f06ad666ef6ec766a77e13cb3f55bd5c0dec0461" + integrity sha512-9hFz/LuADUTv7zN+t0Ig+J/as2mtILTmgoT2XQdG/ezGbA1tfqoSwEKCXFcDaldzkskZddbh+QI2sACQGaxg6Q== dependencies: - "@jest/types" "^27.5.1" execa "^5.0.0" throat "^6.0.1" -jest-circus@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" - integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== +jest-circus@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.0.1.tgz#5bad5888e4965735e765188fc21e6c73ffe8d984" + integrity sha512-33Ulac556FQcgQkDEXVVDag4PGQd+lWP9bxsuVg4q+b4x1cMiWNMCUjN5Dv1q/n90PvGzWxqXuN5X3gF93msew== dependencies: - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/environment" "^28.0.1" + "@jest/expect" "^28.0.1" + "@jest/test-result" "^28.0.1" + "@jest/types" "^28.0.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" - expect "^27.5.1" is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" + jest-each "^28.0.1" + jest-matcher-utils "^28.0.1" + jest-message-util "^28.0.1" + jest-runtime "^28.0.1" + jest-snapshot "^28.0.1" + jest-util "^28.0.1" + pretty-format "^28.0.1" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" - integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== +jest-cli@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.0.1.tgz#0d1b90e6726dab104cb5f5e7e8fcdef20ba75644" + integrity sha512-N6m5FwG0E0sFuhT6eRhskvfPrm+e5UXoErdR1cw2csIlpZpzvnl+bP60JH/UAG9KW1wYNDo2N3tVYn/zoMbhOA== dependencies: - "@jest/core" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/core" "^28.0.1" + "@jest/test-result" "^28.0.1" + "@jest/types" "^28.0.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" + jest-config "^28.0.1" + jest-util "^28.0.1" + jest-validate "^28.0.1" prompts "^2.0.1" - yargs "^16.2.0" + yargs "^17.3.1" -jest-config@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" - integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== +jest-config@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.0.1.tgz#69bc6304edd7f44746d59393acb9ce6e55c00ef4" + integrity sha512-Zp7hsNMxhBrMYx9R+OXWXElX4TDRotgilwGwkRT7YZ4wE8d0w5LKS0mKrd9sExoIWc+cFii/WAeDXlt8/AtfCA== dependencies: - "@babel/core" "^7.8.0" - "@jest/test-sequencer" "^27.5.1" - "@jest/types" "^27.5.1" - babel-jest "^27.5.1" + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^28.0.1" + "@jest/types" "^28.0.1" + babel-jest "^28.0.1" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" - glob "^7.1.1" + glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-get-type "^27.5.1" - jest-jasmine2 "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runner "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" + jest-circus "^28.0.1" + jest-environment-node "^28.0.1" + jest-get-type "^28.0.0" + jest-regex-util "^28.0.0" + jest-resolve "^28.0.1" + jest-runner "^28.0.1" + jest-util "^28.0.1" + jest-validate "^28.0.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^27.5.1" + pretty-format "^28.0.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== +jest-diff@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.0.1.tgz#fe29002a53c0a663c6cb395cad91ea0b82b0c826" + integrity sha512-XtUUND9AlP6y+O5gnxm54rcFxs65isB1NahScgBU+NqiUYdKK9qXMXAotkTJHui6GUdjApXq0zvSXB6zQh9CNg== dependencies: chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" + diff-sequences "^28.0.0" + jest-get-type "^28.0.0" + pretty-format "^28.0.1" -jest-docblock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" - integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== +jest-docblock@^28.0.0: + version "28.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.0.0.tgz#7f39dc998da47dac243157fbe7fbc1e993ab0eb8" + integrity sha512-88od+z1QkHyvtpj1gRA6QGysopOzImocHNNlvvM7OydDe9ER6z1siLtHJXbKEfi5FoxMpYqDtszYIS50JVs0WA== dependencies: detect-newline "^3.0.0" -jest-each@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" - integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== +jest-each@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.0.1.tgz#bd8d78f066df0366cfd351a5f9ba5acfa119ef89" + integrity sha512-C7ftacESgAPcs2CydQYJKBFi0T0jkuxZWds2f901coi0SJ4M9ONhFHR2WmfJpHiPWGhAl3N9E8qn8QCZhCk9fA== dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^28.0.1" chalk "^4.0.0" - jest-get-type "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - -jest-environment-jsdom@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" - integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - jsdom "^16.6.0" - -jest-environment-node@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" - integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" + jest-get-type "^28.0.0" + jest-util "^28.0.1" + pretty-format "^28.0.1" + +jest-environment-node@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.0.1.tgz#d2eacc122481438102a324b3f83216b873773a18" + integrity sha512-oGlrqMpLyHgpUThI/8hdDQfcWXKtXuWcFVTKYAeVWvD14btGUn90RlIeCqTbGv197t7NwV51PHDZBFbp1RWceQ== + dependencies: + "@jest/environment" "^28.0.1" + "@jest/fake-timers" "^28.0.1" + "@jest/types" "^28.0.1" "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" + jest-mock "^28.0.1" + jest-util "^28.0.1" -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== +jest-get-type@^28.0.0: + version "28.0.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.0.tgz#8d36b49c151bc3a9e078a2e92d502e778ed49164" + integrity sha512-754LtawzW+Qk4o5rC+eDqfcQ9dV8z9uvbaVenmK8pju11PBGfuMDvQwRxoPews0LCaumNmYHjcAwmkYINTlhIA== -jest-haste-map@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" - integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== +jest-haste-map@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.0.1.tgz#48fa7e2c9f205118a713b04bd80c07de2795d281" + integrity sha512-qjpK9NDBiwlSHbKS0rDUDOTTDSHT4tNnJbUewfMsSiWFAOAqgcBDG3o5f1N9Srx5Hz14QsdnDuK9oy6oyQqJ9g== dependencies: - "@jest/types" "^27.5.1" - "@types/graceful-fs" "^4.1.2" + "@jest/types" "^28.0.1" + "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^27.5.1" - jest-serializer "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" + jest-regex-util "^28.0.0" + jest-util "^28.0.1" + jest-worker "^28.0.1" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-jasmine2@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" - integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - throat "^6.0.1" - -jest-leak-detector@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" - integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== +jest-leak-detector@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.0.1.tgz#26e4737145ee6b2aef871eda2f9606bd63fb33ca" + integrity sha512-g+0cRjOeNy0Wy/9LfgzyyVjKNnkFddEXisac+5arM3JwdW4hjZJR+5lwiIuMxuPtacldLWhu0pN63KV+Z33smQ== dependencies: - jest-get-type "^27.5.1" - pretty-format "^27.5.1" + jest-get-type "^28.0.0" + pretty-format "^28.0.1" -jest-matcher-utils@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== +jest-matcher-utils@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.0.1.tgz#9a19300603dac3fbeadc95a6e7f6285466735e22" + integrity sha512-AE1oD7mFC/rcdKYa3Nebd+zo9HOUq+x5l3ol9EHgVanxffPcDxuQELvDGDUG6jq4w/x8IDmvPHjZ42ZD5iGwCg== dependencies: chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" + jest-diff "^28.0.1" + jest-get-type "^28.0.0" + pretty-format "^28.0.1" -jest-message-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" - integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== +jest-message-util@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.0.1.tgz#2ee286d662363cdcf466b5c6a94615380c9dcb2d" + integrity sha512-Eb+s5Ow4MxcQb4gcIVWVdnLxCnaPrl6DZjOVe7MjKHhexmJlkVTdwvdC//YrAsJKWMU8eG2rdaGbgBk2zG2MLA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.5.1" + "@jest/types" "^28.0.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^27.5.1" + pretty-format "^28.0.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== +jest-mock@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.0.1.tgz#74d1e303e0825a83c54dceaf0f5095100667eeaa" + integrity sha512-pEi1eywUvu7Ko8T5QX6l4X4694cd9NqzyeFFnH7QYDEm4INKxNbgBKLnaNmp025SlH9WHHDkHTeY4zRHPicMHw== dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^28.0.1" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -1879,181 +1785,173 @@ jest-pnp-resolver@^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@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== +jest-regex-util@^28.0.0: + version "28.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.0.tgz#b8d0bf9761328ae21900ab3f3b0ce8c4d392a73a" + integrity sha512-VqrjkteNiucN3ctI/AtBzO7iitfk5YGArPwU2cJ3WyT5Z6kGFHw/HQp0fSTkOUHdwVdJkFzbI5nh0yC82f9Kfg== -jest-resolve-dependencies@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" - integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== +jest-resolve-dependencies@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.0.1.tgz#4448647423f16d7e27438d0704b091858741838e" + integrity sha512-ypEOCjf1OoDOmfotDWeMuMxOgT1WipFmFfS2pHnM4WMNaHBPpQtTRYSRyJN3tqSt4g1+1iP4Ldx2UgLyr3qZWQ== dependencies: - "@jest/types" "^27.5.1" - jest-regex-util "^27.5.1" - jest-snapshot "^27.5.1" + jest-regex-util "^28.0.0" + jest-snapshot "^28.0.1" -jest-resolve@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" - integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== +jest-resolve@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.0.1.tgz#8d51581b52028df3d10746605e13b4a46ba7a37d" + integrity sha512-nQahkVO8flCRsXtlq3JZb+pElJ+9s2L9TQ0xs6x1DLXgZ3FvB3XRfQGnsqtxyMKEAbbEfypGQv1rUVpIrWfssg== dependencies: - "@jest/types" "^27.5.1" chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" + jest-haste-map "^28.0.1" jest-pnp-resolver "^1.2.2" - jest-util "^27.5.1" - jest-validate "^27.5.1" + jest-util "^28.0.1" + jest-validate "^28.0.1" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" - integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== +jest-runner@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.0.1.tgz#006e2b483e67a7bbba46d82bdcb1e84d9d9ec6b4" + integrity sha512-aVRI4Ngaa9hxDg60tAm4ebqJcaI2vUyR04TuNSArI6MZh8Rfio4mP0tjqVI28TzK8RKH3JMg3ARf66nlAwOl7g== dependencies: - "@jest/console" "^27.5.1" - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/console" "^28.0.1" + "@jest/environment" "^28.0.1" + "@jest/test-result" "^28.0.1" + "@jest/transform" "^28.0.1" + "@jest/types" "^28.0.1" "@types/node" "*" chalk "^4.0.0" - emittery "^0.8.1" + emittery "^0.10.2" graceful-fs "^4.2.9" - jest-docblock "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-haste-map "^27.5.1" - jest-leak-detector "^27.5.1" - jest-message-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runtime "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - source-map-support "^0.5.6" + jest-docblock "^28.0.0" + jest-environment-node "^28.0.1" + jest-haste-map "^28.0.1" + jest-leak-detector "^28.0.1" + jest-message-util "^28.0.1" + jest-resolve "^28.0.1" + jest-runtime "^28.0.1" + jest-util "^28.0.1" + jest-watcher "^28.0.1" + jest-worker "^28.0.1" + source-map-support "0.5.13" throat "^6.0.1" -jest-runtime@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" - integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/globals" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" +jest-runtime@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.0.1.tgz#2b33b86c26a14bcba9d3be0ded50010e559ba2be" + integrity sha512-bC22PNBaMK/tX6rMIUf7Usn9V1DallrRyA5QzTqRjz0E2E1UZMUZzKWzhbV6opCI1QSgr5srn0qNUl0MpgWm1g== + dependencies: + "@jest/environment" "^28.0.1" + "@jest/fake-timers" "^28.0.1" + "@jest/globals" "^28.0.1" + "@jest/source-map" "^28.0.0" + "@jest/test-result" "^28.0.1" + "@jest/transform" "^28.0.1" + "@jest/types" "^28.0.1" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" + jest-haste-map "^28.0.1" + jest-message-util "^28.0.1" + jest-mock "^28.0.1" + jest-regex-util "^28.0.0" + jest-resolve "^28.0.1" + jest-snapshot "^28.0.1" + jest-util "^28.0.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-serializer@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" - integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.9" - -jest-snapshot@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" - integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== +jest-snapshot@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.0.1.tgz#864d5445323c3a8c4124941394825c7f3b1874b0" + integrity sha512-xaNY3ZZtOBYIpYSAqLpClZJs66wWVpKgsQiFvu8xxjjQBRmwYwu2CAmdaiL5wmd9KxrGX+viLm2vI964hIiIcw== dependencies: - "@babel/core" "^7.7.2" + "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__traverse" "^7.0.4" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^28.0.1" + "@jest/transform" "^28.0.1" + "@jest/types" "^28.0.1" + "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^27.5.1" + expect "^28.0.1" graceful-fs "^4.2.9" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - jest-haste-map "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-util "^27.5.1" + jest-diff "^28.0.1" + jest-get-type "^28.0.0" + jest-haste-map "^28.0.1" + jest-matcher-utils "^28.0.1" + jest-message-util "^28.0.1" + jest-util "^28.0.1" natural-compare "^1.4.0" - pretty-format "^27.5.1" - semver "^7.3.2" + pretty-format "^28.0.1" + semver "^7.3.5" -jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== +jest-util@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.0.1.tgz#af1da8ea0f8035a489ddd68b547ae3ed428426fa" + integrity sha512-gFpqWx9XqBmJRYqSnQ2FbpxWpvAU3TIGFQcfBrwnMVvwbB1ZHhhoQgS+oD0Ek61l9XkLsoWW20woaNlCRf4eMA== dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^28.0.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" - integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== +jest-validate@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.0.1.tgz#7f360030a2c8eeb91b62de92ab00829119a0ad73" + integrity sha512-1mWGDluyjCSGc5u/gw0JKo6SlVfALiho5bLTfqmStOsdy3k69k7/dp18dq49WctHwQ9C+i4SkqpbQG7l63nxiw== dependencies: - "@jest/types" "^27.5.1" + "@jest/types" "^28.0.1" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^27.5.1" + jest-get-type "^28.0.0" leven "^3.1.0" - pretty-format "^27.5.1" + pretty-format "^28.0.1" -jest-watcher@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" - integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== +jest-watcher@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.0.1.tgz#1460553913120ddfe3045fda7e80144819cc576e" + integrity sha512-tKyjsQal10vBomcyn79ZTutv0N0/dSfYJ+WRFJ3nlaMejiDlLKjMGQ/QrcwcXIXMXQyt0tJG1ycmqLbJg5AK6A== dependencies: - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" + "@jest/test-result" "^28.0.1" + "@jest/types" "^28.0.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^27.5.1" + emittery "^0.10.2" + jest-util "^28.0.1" string-length "^4.0.1" -jest-worker@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== +jest-worker@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.0.1.tgz#7abc005335a5937e6a4f8d24c980c7630a849012" + integrity sha512-Z3j1jfZwtt2ruKwU391a4/kKdYEId7Vy9+6Jeeq5Xl0glJDnOAvO5ixNmgMokMmbpet41jc4MpUx71ciyeTB/A== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^27.0.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" - integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== +jest@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-28.0.1.tgz#064ab082ba3af4c09fc0b227c14b17858083eda7" + integrity sha512-rqP6qSiZ00LUpajUBJIBKjCSE2tOy4x0Y/HI4EJntg51tND02VEiKjKkzgebFyMsFs85H+HGxLgezwOwa1bfwA== dependencies: - "@jest/core" "^27.5.1" + "@jest/core" "^28.0.1" import-local "^3.0.2" - jest-cli "^27.5.1" + jest-cli "^28.0.1" js-tokens@^4.0.0: version "4.0.0" @@ -2075,39 +1973,6 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -2128,7 +1993,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@^2.1.2: +json5@^2.1.2, json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== @@ -2151,14 +2016,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" @@ -2176,11 +2033,6 @@ 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== -lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -2215,18 +2067,6 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -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== - dependencies: - mime-db "1.52.0" - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -2287,11 +2127,6 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.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== - once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -2306,18 +2141,6 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.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.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -2366,11 +2189,6 @@ parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -2418,24 +2236,20 @@ 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@>=2.3.0: version "2.6.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== -pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== +pretty-format@^28.0.1: + version "28.0.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.0.1.tgz#ae6753bd2bf26fdd552f41194568ccbef23d22af" + integrity sha512-utVSIy0ImophYyJALfiWULOeMnfoxLZEzii/92VcSzN7OX5U1r7erAMqfDJyuv31ugw4Rp5tOYUMndsZV1w8DQ== dependencies: + "@jest/schemas" "^28.0.0" ansi-regex "^5.0.1" ansi-styles "^5.0.0" - react-is "^17.0.1" + react-is "^18.0.0" pretty-quick@^3.1.2: version "3.1.3" @@ -2457,11 +2271,6 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -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== - pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -2470,15 +2279,15 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -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== -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +react-is@^18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.0.0.tgz#026f6c4a27dbe33bf4a35655b9e1327c4e55e3f5" + integrity sha512-yUcBYdBBbo3QiPsgYDcfQcIkGZHfxOaoE6HLSnr1sPzMhdyxusbfKOSUbSd/ocGi32dxcj366PsTj+5oggeKKw== regexpp@^3.2.0: version "3.2.0" @@ -2533,27 +2342,15 @@ safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== +semver@^7.3.5: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== dependencies: lru-cache "^6.0.0" @@ -2569,7 +2366,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.2, 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== @@ -2584,10 +2381,10 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -2597,16 +2394,11 @@ source-map@^0.5.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -2627,7 +2419,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^4.1.0, string-width@^4.2.0: +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" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -2692,11 +2484,6 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -symbol-tree@^3.2.4: - version "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== - terminal-link@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" @@ -2741,22 +2528,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tough-cookie@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" - integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.1.2" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -2764,13 +2535,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" @@ -2786,18 +2550,6 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -2810,28 +2562,14 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" - integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== +v8-to-istanbul@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz#be0dae58719fc53cb97e5c7ac1d7e6d4f5b19511" + integrity sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw== dependencies: + "@jridgewell/trace-mapping" "^0.3.7" "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" - source-map "^0.7.3" - -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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" walker@^1.0.7: version "1.0.8" @@ -2840,37 +2578,6 @@ walker@^1.0.7: dependencies: makeerror "1.0.12" -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -2878,7 +2585,7 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -2897,30 +2604,13 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== +write-file-atomic@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" + integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== dependencies: imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.4.6: - version "7.5.7" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + signal-exit "^3.0.7" y18n@^5.0.5: version "5.0.8" @@ -2932,20 +2622,20 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +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@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== +yargs@^17.3.1: + version "17.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.1.tgz#ebe23284207bb75cee7c408c33e722bfb27b5284" + integrity sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g== dependencies: cliui "^7.0.2" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" - string-width "^4.2.0" + string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^20.2.2" + yargs-parser "^21.0.0" From 4c236c722ea4f055f8dd51806882dc5b7eedc546 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 28 Apr 2022 12:01:35 +0000 Subject: [PATCH 074/262] Bump jest from 28.0.1 to 28.0.2 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 28.0.1 to 28.0.2. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v28.0.2/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 696 +++++++++++++++++++++++++++--------------------------- 1 file changed, 348 insertions(+), 348 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3f320a5a..ce351f57 100644 --- a/yarn.lock +++ b/yarn.lock @@ -406,109 +406,109 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.0.1.tgz#4869cecbc5ffddbd03feaaeddcc73110d9e23f49" - integrity sha512-c05/4ZS+1d/TM4svDxrsh+vbYUPC08C0zG/DWJgdv2rtkDgYHRfLtt9bSaWpSISE+NtqdRbnzbUtJeBXjTKyhQ== +"@jest/console@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.0.2.tgz#d11e8b43ae431ae9b3112656848417ae4008fcad" + integrity sha512-tiRpnMeeyQuuzgL5UNSeiqMwF8UOWPbAE5rzcu/1zyq4oPG2Ox6xm4YCOruwbp10F8odWc+XwVxTyGzMSLMqxA== dependencies: - "@jest/types" "^28.0.1" + "@jest/types" "^28.0.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^28.0.1" - jest-util "^28.0.1" + jest-message-util "^28.0.2" + jest-util "^28.0.2" slash "^3.0.0" -"@jest/core@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.0.1.tgz#9d3cd1f157f3e53c0e61e242ae39a1872befc374" - integrity sha512-hTxTpwJPOwHpCFwo4s6QVHq423RtZNaBsb/JQdicLzGvQuxnAzvaA7H3NFiv+TB6ExSOdW5aG2Q5nz/IwYCHIQ== +"@jest/core@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.0.2.tgz#b8433545c32b5e368bfb4d46c9cd01d58c19f0ef" + integrity sha512-AK6xU9wfo9E3wA4fY8t59I2t5hnS3eCVYhD1OVZPMZyUrtIQbU1HR+h9jz3ulsEv39xSDH94QY2IJr46O637ag== dependencies: - "@jest/console" "^28.0.1" - "@jest/reporters" "^28.0.1" - "@jest/test-result" "^28.0.1" - "@jest/transform" "^28.0.1" - "@jest/types" "^28.0.1" + "@jest/console" "^28.0.2" + "@jest/reporters" "^28.0.2" + "@jest/test-result" "^28.0.2" + "@jest/transform" "^28.0.2" + "@jest/types" "^28.0.2" "@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 "^28.0.0" - jest-config "^28.0.1" - jest-haste-map "^28.0.1" - jest-message-util "^28.0.1" - jest-regex-util "^28.0.0" - jest-resolve "^28.0.1" - jest-resolve-dependencies "^28.0.1" - jest-runner "^28.0.1" - jest-runtime "^28.0.1" - jest-snapshot "^28.0.1" - jest-util "^28.0.1" - jest-validate "^28.0.1" - jest-watcher "^28.0.1" + jest-changed-files "^28.0.2" + jest-config "^28.0.2" + jest-haste-map "^28.0.2" + jest-message-util "^28.0.2" + jest-regex-util "^28.0.2" + jest-resolve "^28.0.2" + jest-resolve-dependencies "^28.0.2" + jest-runner "^28.0.2" + jest-runtime "^28.0.2" + jest-snapshot "^28.0.2" + jest-util "^28.0.2" + jest-validate "^28.0.2" + jest-watcher "^28.0.2" micromatch "^4.0.4" - pretty-format "^28.0.1" + pretty-format "^28.0.2" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.0.1.tgz#a50cefc75329b7f499b65694fc405509bd3a8ec9" - integrity sha512-PuN3TBNFSUKNgEgFgJxb15/GOyhXc46wbyCobUcf8ijUgteEmVXD4FfUZpe5QXg/bpmydufzx/02BRlUfkM44Q== +"@jest/environment@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.0.2.tgz#a865949d876b2d364b979bbc0a46338ffd23de26" + integrity sha512-IvI7dEfqVEffDYlw9FQfVBt6kXt/OI38V7QUIur0ulOQgzpKYJDVvLzj4B1TVmHWTGW5tcnJdlZ3hqzV6/I9Qg== dependencies: - "@jest/fake-timers" "^28.0.1" - "@jest/types" "^28.0.1" + "@jest/fake-timers" "^28.0.2" + "@jest/types" "^28.0.2" "@types/node" "*" - jest-mock "^28.0.1" + jest-mock "^28.0.2" -"@jest/expect-utils@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.0.1.tgz#c6aa0fb629e3d205384406c2e6cb00b7916c597a" - integrity sha512-ctuvt7SeoVlG3P2eemtq3/TF5a7ncnpC18Ctv1BjCfBjkjVKtAkDblw6qhx24tZlYdhm0lrihwK80pkzmkUctw== +"@jest/expect-utils@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.0.2.tgz#0a055868d225261eac82a12013e2e0735238774d" + integrity sha512-YryfH2zN5c7M8eLtn9oTBRj1sfD+X4cHNXJnTejqCveOS33wADEZUxJ7de5++lRvByNpRpfAnc8zTK7yrUJqgA== dependencies: - jest-get-type "^28.0.0" + jest-get-type "^28.0.2" -"@jest/expect@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.0.1.tgz#eb836dc95686e724de3419bf08e43f12466a9fb2" - integrity sha512-qRAiC7/gJ/1z2O+TnGCVUTJ/HkqXhDCSm4R7ydfY/rOMryvFzccpALmHdI8joovGRQvkHStM/wwHRHRQTc8+zQ== +"@jest/expect@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.0.2.tgz#ca94154c63a69027da0932b712b0104618cb98b1" + integrity sha512-rxgWG/updGoQtHFw/duImu5gPN48+kHvhVjLJ0fFk2mYQ+3dp7/zLiNTjSQxc92Bq4VOk+b6ln0gSgKM4etOtQ== dependencies: - expect "^28.0.1" - jest-snapshot "^28.0.1" + expect "^28.0.2" + jest-snapshot "^28.0.2" -"@jest/fake-timers@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.0.1.tgz#e0a95401a06b28224475fe0a124835d6e689869b" - integrity sha512-w7JleyVymoVWMvsnRRpM/ySM+K6qq+cLwK33VbFAghKTHp14oBiOio1Hh1egUyFdNybmKZxQvBBwB0M/48LgGQ== +"@jest/fake-timers@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.0.2.tgz#d36e62bc58f39d65ea6adac1ff7749e63aff05f3" + integrity sha512-R75yUv+WeybPa4ZVhX9C+8XN0TKjUoceUX+/QEaDVQGxZZOK50eD74cs7iMDTtpodh00d8iLlc9197vgF6oZjA== dependencies: - "@jest/types" "^28.0.1" + "@jest/types" "^28.0.2" "@sinonjs/fake-timers" "^9.1.1" "@types/node" "*" - jest-message-util "^28.0.1" - jest-mock "^28.0.1" - jest-util "^28.0.1" + jest-message-util "^28.0.2" + jest-mock "^28.0.2" + jest-util "^28.0.2" -"@jest/globals@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.0.1.tgz#165eced7e768c595c2eba5ae8e6d9784224328e9" - integrity sha512-KBWuQ1PQjm8IKUObSSQAGlGguJZHKaVCHWY99FSGwjyf58hT9yCYH2wFfLhWocy4Y5otK2gZbsCwWVX6WXft2Q== +"@jest/globals@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.0.2.tgz#999164fb1b09f2cb5ba47c890d185722876b2ec1" + integrity sha512-gkOd1rTTLoZGM2OqOtf5wyzf8HNoM2a+dGbyWgqO3spQiA/OBE+d1kQlZ6mYs9NtJwJ1/TNAJNyBaPXIeo7xEw== dependencies: - "@jest/environment" "^28.0.1" - "@jest/expect" "^28.0.1" - "@jest/types" "^28.0.1" + "@jest/environment" "^28.0.2" + "@jest/expect" "^28.0.2" + "@jest/types" "^28.0.2" -"@jest/reporters@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.0.1.tgz#711145ea5e6c29c9f8050cb65d3ef98fe68a8290" - integrity sha512-XMjv+E0fi2QA1qbV1q/NiODueljjfM9i2SpOFqGLc8pHeAcfYfFAZIWI6DXe+2dL4RylDiAlV6Ll5KU4GyUuvA== +"@jest/reporters@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.0.2.tgz#ce8efb1499f9b9f57d285289125dd7cb93130b20" + integrity sha512-YOxPWwVwgY2u6h6XOnOILZVZFUthIr86ttvXrdRg8VC/8fg2Vwk4d/fxY6uLDCFE/3CFthXTsVB05kmBjckCsw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.0.1" - "@jest/test-result" "^28.0.1" - "@jest/transform" "^28.0.1" - "@jest/types" "^28.0.1" + "@jest/console" "^28.0.2" + "@jest/test-result" "^28.0.2" + "@jest/transform" "^28.0.2" + "@jest/types" "^28.0.2" "@jridgewell/trace-mapping" "^0.3.7" "@types/node" "*" chalk "^4.0.0" @@ -521,76 +521,76 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-util "^28.0.1" - jest-worker "^28.0.1" + jest-util "^28.0.2" + jest-worker "^28.0.2" slash "^3.0.0" string-length "^4.0.1" terminal-link "^2.0.0" v8-to-istanbul "^9.0.0" -"@jest/schemas@^28.0.0": - version "28.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.0.tgz#55cf5fcc82440a2a39b717bb949570c501fd5410" - integrity sha512-Pap9Jvwr8KYFvDgkya/p0FCVya+jZkWt57lHpwBylfjgmwi/gtXfhyAO/Cw+jKuMafHcXY0beNf2XV2pkcu9vA== +"@jest/schemas@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.2.tgz#08c30df6a8d07eafea0aef9fb222c5e26d72e613" + integrity sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA== dependencies: "@sinclair/typebox" "^0.23.3" -"@jest/source-map@^28.0.0": - version "28.0.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.0.0.tgz#d026fc1cd7e95fd7ce788d0b27838d9796da0a74" - integrity sha512-yeD/Y94j6UJPiaZTG5Sdww7pbHvEc7RlTucoVAdXaBaSuNcyrAkLlJonAb/xX/efCugDOEbFJdATsSnDEh45Nw== +"@jest/source-map@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.0.2.tgz#914546f4410b67b1d42c262a1da7e0406b52dc90" + integrity sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw== dependencies: "@jridgewell/trace-mapping" "^0.3.7" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.0.1.tgz#4c0eb5d7c3947c70f7ae1a119a9bc049b8465fbf" - integrity sha512-8LhoEbdIkkYK+PZx6JhfRvI1Jw7tfB77OEJUQwp0diBvXJpjPKeFFWfsbpm7djdXuKoKvXKNzSGgjXDOFbxuhg== +"@jest/test-result@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.0.2.tgz#bc8e15a95347e3c2149572ae06a5a6fed939c522" + integrity sha512-4EUqgjq9VzyUiVTvZfI9IRJD6t3NYBNP4f+Eq8Zr93+hkJ0RrGU4OBTw8tfNzidKX+bmuYzn8FxqpxOPIGGCMA== dependencies: - "@jest/console" "^28.0.1" - "@jest/types" "^28.0.1" + "@jest/console" "^28.0.2" + "@jest/types" "^28.0.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.0.1.tgz#7260db16c12f055f80809348740c2fd2d903f6e0" - integrity sha512-PbXoEP9aovOC+KunEy65vuSAB/ZMLNcBVdMUIH2hsfFDWhQx/8OnHsz3dr3g1U6qNuCpXzD1fyM8/1TrUU0uFw== +"@jest/test-sequencer@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.0.2.tgz#7669b7d8ff2aa7a8221b11bb37cce552de81b1bb" + integrity sha512-zhnZ8ydkZQTPL7YucB86eOlD79zPy5EGSUKiR2Iv93RVEDU6OEP33kwDBg70ywOcxeJGDRhyo09q7TafNCBiIg== dependencies: - "@jest/test-result" "^28.0.1" + "@jest/test-result" "^28.0.2" graceful-fs "^4.2.9" - jest-haste-map "^28.0.1" + jest-haste-map "^28.0.2" slash "^3.0.0" -"@jest/transform@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.0.1.tgz#44fced5a366af7cc5f69745c92014bf45c408d90" - integrity sha512-45fxjycts6CTPMeusSICYhMkMgFAs1opvgEBYcMmukucJw/AgVEMsGFqheWyDzlU6GJ+h9cpft/zkTGPJtzRGQ== +"@jest/transform@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.0.2.tgz#2b33d93fdf5827309cbd332bf968fa0dd049e7b2" + integrity sha512-PgvB/DEwVY+vJAGTRSFhdmorytx54aXKK1+VQIxVtdFVAe0mJ2fUIRWQuGimveEJWT4ELJImZAIYOgs8z2L0eg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^28.0.1" + "@jest/types" "^28.0.2" "@jridgewell/trace-mapping" "^0.3.7" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.0.1" - jest-regex-util "^28.0.0" - jest-util "^28.0.1" + jest-haste-map "^28.0.2" + jest-regex-util "^28.0.2" + jest-util "^28.0.2" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^28.0.1": - version "28.0.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.0.1.tgz#4bf819b570efd6fc89d8fa45a7b2c13db58800c3" - integrity sha512-Z48DBfQDtTZZAImaa1m8O1SCP9gx355FhuA6xuS8e7V5gQbj4l2hk/+EELN4UU/O9i5gjQuc94N/gC61/Qxfxw== +"@jest/types@^28.0.2": + version "28.0.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.0.2.tgz#70b9538c1863fb060b2f438ca008b5563d00c5b4" + integrity sha512-hi3jUdm9iht7I2yrV5C4s3ucCJHUP8Eh3W6rQ1s4n/Qw9rQgsda4eqCt+r3BKRi7klVmZfQlMx1nGlzNMP2d8A== dependencies: - "@jest/schemas" "^28.0.0" + "@jest/schemas" "^28.0.2" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -819,15 +819,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.0.1.tgz#effa686f25551d930bf3b645d7513091094f8968" - integrity sha512-UbL+4xVftxnIcPKzCqmwZHwaPG8DyKOCXoWPeuKrvUFtyeUpePy6VtRiMN1Dv001NbEMNP4FVjfKwv1xe2PWZQ== +babel-jest@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.0.2.tgz#72c050b4fbd108e561f9d9c7bad4893b20399b12" + integrity sha512-OlbfoOpHmU3jzAWoiT98bBuAhjrSZMxSVk5ALkCL/8ocb8dyx8F4H9NlBjH2xd08MI5306Yxa0+y87cjY55Eqw== dependencies: - "@jest/transform" "^28.0.1" + "@jest/transform" "^28.0.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.0.0" + babel-preset-jest "^28.0.2" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -843,10 +843,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^28.0.0: - version "28.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.0.tgz#7429bb64b97170822dce58ee763555ebc983cbdc" - integrity sha512-Eu+TDlmKd2SsnvmlooVeHFryVHHom6ffCLSZuqrN8WpIHE0H6qiIPW5h5rFlzIZQmVqnZR2qHnbm2eQWIP7hZg== +babel-plugin-jest-hoist@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz#9307d03a633be6fc4b1a6bc5c3a87e22bd01dd3b" + integrity sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -871,12 +871,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^28.0.0: - version "28.0.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.0.0.tgz#9e7c5f4097b63a3e9edb8f59b8030eca6901771c" - integrity sha512-JLyjfCmqCWS3tXUw86ei5fQwuwn34slNBPTluNbhoqHVI1Cbw6MsmvgEl54jPjbyzkmA6XAHJTg3EGNY7rnr4A== +babel-preset-jest@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz#d8210fe4e46c1017e9fa13d7794b166e93aa9f89" + integrity sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ== dependencies: - babel-plugin-jest-hoist "^28.0.0" + babel-plugin-jest-hoist "^28.0.2" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1073,10 +1073,10 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^28.0.0: - version "28.0.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.0.0.tgz#06d253f0005463bf203d96fdbd6296c5f1d1888c" - integrity sha512-GTIQPn2pPa1DMoEH70P9yQgYLcGW8bjPR5EOL2JO9/7DQHX+9tTFJee3UmlGWuyUvIqMgpXXssrckLubiEUZTg== +diff-sequences@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.0.2.tgz#40f8d4ffa081acbd8902ba35c798458d0ff1af41" + integrity sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ== doctrine@^3.0.0: version "3.0.0" @@ -1278,16 +1278,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.0.1.tgz#7bfac95d375d4310d5061f7e9b7f2afa55a1c1c0" - integrity sha512-sJjuHVbveEUczNITHKgHUepbEyj+UzjACMNuEln5tZI6b9L/y8jTXAN8VnOCnMoK7vuQPSttO/5HlKB+G3Enpw== +expect@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-28.0.2.tgz#86f0d6fa971bc533faf68d4d103d00f343d6a4b3" + integrity sha512-X0qIuI/zKv98k34tM+uGeOgAC73lhs4vROF9MkPk94C1zujtwv4Cla8SxhWn0G1OwvG9gLLL7RjFBkwGVaZ83w== dependencies: - "@jest/expect-utils" "^28.0.1" - jest-get-type "^28.0.0" - jest-matcher-utils "^28.0.1" - jest-message-util "^28.0.1" - jest-util "^28.0.1" + "@jest/expect-utils" "^28.0.2" + jest-get-type "^28.0.2" + jest-matcher-utils "^28.0.2" + jest-message-util "^28.0.2" + jest-util "^28.0.2" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1596,188 +1596,188 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^28.0.0: - version "28.0.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.0.0.tgz#f06ad666ef6ec766a77e13cb3f55bd5c0dec0461" - integrity sha512-9hFz/LuADUTv7zN+t0Ig+J/as2mtILTmgoT2XQdG/ezGbA1tfqoSwEKCXFcDaldzkskZddbh+QI2sACQGaxg6Q== +jest-changed-files@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.0.2.tgz#7d7810660a5bd043af9e9cfbe4d58adb05e91531" + integrity sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA== dependencies: execa "^5.0.0" throat "^6.0.1" -jest-circus@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.0.1.tgz#5bad5888e4965735e765188fc21e6c73ffe8d984" - integrity sha512-33Ulac556FQcgQkDEXVVDag4PGQd+lWP9bxsuVg4q+b4x1cMiWNMCUjN5Dv1q/n90PvGzWxqXuN5X3gF93msew== +jest-circus@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.0.2.tgz#deb0a06491ae2d61ff67e28985b6ce3729db4a93" + integrity sha512-5U0K43UZSwu9xBo3RmK366Y8i0YMTGe2hgFm7TYka6ecT5lB0VZ+/TQTTsDVxa9q1TuOWRa7EskSMm1Q74Hy/Q== dependencies: - "@jest/environment" "^28.0.1" - "@jest/expect" "^28.0.1" - "@jest/test-result" "^28.0.1" - "@jest/types" "^28.0.1" + "@jest/environment" "^28.0.2" + "@jest/expect" "^28.0.2" + "@jest/test-result" "^28.0.2" + "@jest/types" "^28.0.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^28.0.1" - jest-matcher-utils "^28.0.1" - jest-message-util "^28.0.1" - jest-runtime "^28.0.1" - jest-snapshot "^28.0.1" - jest-util "^28.0.1" - pretty-format "^28.0.1" + jest-each "^28.0.2" + jest-matcher-utils "^28.0.2" + jest-message-util "^28.0.2" + jest-runtime "^28.0.2" + jest-snapshot "^28.0.2" + jest-util "^28.0.2" + pretty-format "^28.0.2" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.0.1.tgz#0d1b90e6726dab104cb5f5e7e8fcdef20ba75644" - integrity sha512-N6m5FwG0E0sFuhT6eRhskvfPrm+e5UXoErdR1cw2csIlpZpzvnl+bP60JH/UAG9KW1wYNDo2N3tVYn/zoMbhOA== +jest-cli@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.0.2.tgz#1db7587960adecb130fa830a7547e1aef861d9f6" + integrity sha512-X6KSoKiSDZ07lds9awDMd14VUmtLS0sxgbUzZi1m6JewWdwXtuadTBff1kAUcAmKgJTYBPnVN0u2BKp7AIzllA== dependencies: - "@jest/core" "^28.0.1" - "@jest/test-result" "^28.0.1" - "@jest/types" "^28.0.1" + "@jest/core" "^28.0.2" + "@jest/test-result" "^28.0.2" + "@jest/types" "^28.0.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.0.1" - jest-util "^28.0.1" - jest-validate "^28.0.1" + jest-config "^28.0.2" + jest-util "^28.0.2" + jest-validate "^28.0.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.0.1.tgz#69bc6304edd7f44746d59393acb9ce6e55c00ef4" - integrity sha512-Zp7hsNMxhBrMYx9R+OXWXElX4TDRotgilwGwkRT7YZ4wE8d0w5LKS0mKrd9sExoIWc+cFii/WAeDXlt8/AtfCA== +jest-config@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.0.2.tgz#43053a24ae6efd4da25bbe473d4bc98da008ac18" + integrity sha512-4E5r24Dw1DsyF4ObkwiDEqXIwrX7p01mnngWKtB/0Jdb0SpR1UGAm8Bjg6GTozCA4SlSj/Bbq7LTkg0WrzLanQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.0.1" - "@jest/types" "^28.0.1" - babel-jest "^28.0.1" + "@jest/test-sequencer" "^28.0.2" + "@jest/types" "^28.0.2" + babel-jest "^28.0.2" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^28.0.1" - jest-environment-node "^28.0.1" - jest-get-type "^28.0.0" - jest-regex-util "^28.0.0" - jest-resolve "^28.0.1" - jest-runner "^28.0.1" - jest-util "^28.0.1" - jest-validate "^28.0.1" + jest-circus "^28.0.2" + jest-environment-node "^28.0.2" + jest-get-type "^28.0.2" + jest-regex-util "^28.0.2" + jest-resolve "^28.0.2" + jest-runner "^28.0.2" + jest-util "^28.0.2" + jest-validate "^28.0.2" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^28.0.1" + pretty-format "^28.0.2" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.0.1.tgz#fe29002a53c0a663c6cb395cad91ea0b82b0c826" - integrity sha512-XtUUND9AlP6y+O5gnxm54rcFxs65isB1NahScgBU+NqiUYdKK9qXMXAotkTJHui6GUdjApXq0zvSXB6zQh9CNg== +jest-diff@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.0.2.tgz#a543c90082560cd6cb14c5f28c39e6d4618ad7a6" + integrity sha512-33Rnf821Y54OAloav0PGNWHlbtEorXpjwchnToyyWbec10X74FOW7hGfvrXLGz7xOe2dz0uo9JVFAHHj/2B5pg== dependencies: chalk "^4.0.0" - diff-sequences "^28.0.0" - jest-get-type "^28.0.0" - pretty-format "^28.0.1" + diff-sequences "^28.0.2" + jest-get-type "^28.0.2" + pretty-format "^28.0.2" -jest-docblock@^28.0.0: - version "28.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.0.0.tgz#7f39dc998da47dac243157fbe7fbc1e993ab0eb8" - integrity sha512-88od+z1QkHyvtpj1gRA6QGysopOzImocHNNlvvM7OydDe9ER6z1siLtHJXbKEfi5FoxMpYqDtszYIS50JVs0WA== +jest-docblock@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.0.2.tgz#3cab8abea53275c9d670cdca814fc89fba1298c2" + integrity sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg== dependencies: detect-newline "^3.0.0" -jest-each@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.0.1.tgz#bd8d78f066df0366cfd351a5f9ba5acfa119ef89" - integrity sha512-C7ftacESgAPcs2CydQYJKBFi0T0jkuxZWds2f901coi0SJ4M9ONhFHR2WmfJpHiPWGhAl3N9E8qn8QCZhCk9fA== +jest-each@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.0.2.tgz#fcf6843e9afe5a3f2d0b1c02aab1f41889d92f1d" + integrity sha512-/W5Wc0b+ipR36kDaLngdVEJ/5UYPOITK7rW0djTlCCQdMuWpCFJweMW4TzAoJ6GiRrljPL8FwiyOSoSHKrda2w== dependencies: - "@jest/types" "^28.0.1" + "@jest/types" "^28.0.2" chalk "^4.0.0" - jest-get-type "^28.0.0" - jest-util "^28.0.1" - pretty-format "^28.0.1" - -jest-environment-node@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.0.1.tgz#d2eacc122481438102a324b3f83216b873773a18" - integrity sha512-oGlrqMpLyHgpUThI/8hdDQfcWXKtXuWcFVTKYAeVWvD14btGUn90RlIeCqTbGv197t7NwV51PHDZBFbp1RWceQ== - dependencies: - "@jest/environment" "^28.0.1" - "@jest/fake-timers" "^28.0.1" - "@jest/types" "^28.0.1" + jest-get-type "^28.0.2" + jest-util "^28.0.2" + pretty-format "^28.0.2" + +jest-environment-node@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.0.2.tgz#bd58e192b8f36a37e52c52fac812bd24b360c0b9" + integrity sha512-o9u5UHZ+NCuIoa44KEF0Behhsz/p1wMm0WumsZfWR1k4IVoWSt3aN0BavSC5dd26VxSGQvkrCnJxxOzhhUEG3Q== + dependencies: + "@jest/environment" "^28.0.2" + "@jest/fake-timers" "^28.0.2" + "@jest/types" "^28.0.2" "@types/node" "*" - jest-mock "^28.0.1" - jest-util "^28.0.1" + jest-mock "^28.0.2" + jest-util "^28.0.2" -jest-get-type@^28.0.0: - version "28.0.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.0.tgz#8d36b49c151bc3a9e078a2e92d502e778ed49164" - integrity sha512-754LtawzW+Qk4o5rC+eDqfcQ9dV8z9uvbaVenmK8pju11PBGfuMDvQwRxoPews0LCaumNmYHjcAwmkYINTlhIA== +jest-get-type@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" + integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== -jest-haste-map@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.0.1.tgz#48fa7e2c9f205118a713b04bd80c07de2795d281" - integrity sha512-qjpK9NDBiwlSHbKS0rDUDOTTDSHT4tNnJbUewfMsSiWFAOAqgcBDG3o5f1N9Srx5Hz14QsdnDuK9oy6oyQqJ9g== +jest-haste-map@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.0.2.tgz#0c768f43680013cfd2a4471a3ec76c47bfb9e7c6" + integrity sha512-EokdL7l5uk4TqWGawwrIt8w3tZNcbeiRxmKGEURf42pl+/rWJy3sCJlon5HBhJXZTW978jk6600BLQOI7i25Ig== dependencies: - "@jest/types" "^28.0.1" + "@jest/types" "^28.0.2" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^28.0.0" - jest-util "^28.0.1" - jest-worker "^28.0.1" + jest-regex-util "^28.0.2" + jest-util "^28.0.2" + jest-worker "^28.0.2" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.0.1.tgz#26e4737145ee6b2aef871eda2f9606bd63fb33ca" - integrity sha512-g+0cRjOeNy0Wy/9LfgzyyVjKNnkFddEXisac+5arM3JwdW4hjZJR+5lwiIuMxuPtacldLWhu0pN63KV+Z33smQ== +jest-leak-detector@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.0.2.tgz#cbde3d22d09bd690ececdc2ed01c608435328456" + integrity sha512-UGaSPYtxKXl/YKacq6juRAKmMp1z2os8NaU8PSC+xvNikmu3wF6QFrXrihMM4hXeMr9HuNotBrQZHmzDY8KIBQ== dependencies: - jest-get-type "^28.0.0" - pretty-format "^28.0.1" + jest-get-type "^28.0.2" + pretty-format "^28.0.2" -jest-matcher-utils@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.0.1.tgz#9a19300603dac3fbeadc95a6e7f6285466735e22" - integrity sha512-AE1oD7mFC/rcdKYa3Nebd+zo9HOUq+x5l3ol9EHgVanxffPcDxuQELvDGDUG6jq4w/x8IDmvPHjZ42ZD5iGwCg== +jest-matcher-utils@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.0.2.tgz#eb461af204b6d0f05281e9228094f0ab7e9e8537" + integrity sha512-SxtTiI2qLJHFtOz/bySStCnwCvISAuxQ/grS+74dfTy5AuJw3Sgj9TVUvskcnImTfpzLoMCDJseRaeRrVYbAOA== dependencies: chalk "^4.0.0" - jest-diff "^28.0.1" - jest-get-type "^28.0.0" - pretty-format "^28.0.1" + jest-diff "^28.0.2" + jest-get-type "^28.0.2" + pretty-format "^28.0.2" -jest-message-util@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.0.1.tgz#2ee286d662363cdcf466b5c6a94615380c9dcb2d" - integrity sha512-Eb+s5Ow4MxcQb4gcIVWVdnLxCnaPrl6DZjOVe7MjKHhexmJlkVTdwvdC//YrAsJKWMU8eG2rdaGbgBk2zG2MLA== +jest-message-util@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.0.2.tgz#f3cf36be72be4c4c4058cb34bd6673996d26dee3" + integrity sha512-knK7XyojvwYh1XiF2wmVdskgM/uN11KsjcEWWHfnMZNEdwXCrqB4sCBO94F4cfiAwCS8WFV6CDixDwPlMh/wdA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.0.1" + "@jest/types" "^28.0.2" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^28.0.1" + pretty-format "^28.0.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.0.1.tgz#74d1e303e0825a83c54dceaf0f5095100667eeaa" - integrity sha512-pEi1eywUvu7Ko8T5QX6l4X4694cd9NqzyeFFnH7QYDEm4INKxNbgBKLnaNmp025SlH9WHHDkHTeY4zRHPicMHw== +jest-mock@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.0.2.tgz#059b500b34c1dd76474ebcdeccc249fe4dd0249f" + integrity sha512-vfnJ4zXRB0i24jOTGtQJyl26JKsgBKtqRlCnsrORZbG06FToSSn33h2x/bmE8XxqxkLWdZBRo+/65l8Vi3nD+g== dependencies: - "@jest/types" "^28.0.1" + "@jest/types" "^28.0.2" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -1785,173 +1785,173 @@ jest-pnp-resolver@^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@^28.0.0: - version "28.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.0.tgz#b8d0bf9761328ae21900ab3f3b0ce8c4d392a73a" - integrity sha512-VqrjkteNiucN3ctI/AtBzO7iitfk5YGArPwU2cJ3WyT5Z6kGFHw/HQp0fSTkOUHdwVdJkFzbI5nh0yC82f9Kfg== +jest-regex-util@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" + integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-resolve-dependencies@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.0.1.tgz#4448647423f16d7e27438d0704b091858741838e" - integrity sha512-ypEOCjf1OoDOmfotDWeMuMxOgT1WipFmFfS2pHnM4WMNaHBPpQtTRYSRyJN3tqSt4g1+1iP4Ldx2UgLyr3qZWQ== +jest-resolve-dependencies@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.0.2.tgz#44e1a65ccaaf3b73d4fa8e9add4eeff5b752e1cb" + integrity sha512-Xgkc51baZJQ9UcZg8UN9rGtnvqoVHeDNP6iM4QV3W/phzbFyRCiAxqgJ2GyuBnzGm2EirUlIcstlvOR/6trHmw== dependencies: - jest-regex-util "^28.0.0" - jest-snapshot "^28.0.1" + jest-regex-util "^28.0.2" + jest-snapshot "^28.0.2" -jest-resolve@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.0.1.tgz#8d51581b52028df3d10746605e13b4a46ba7a37d" - integrity sha512-nQahkVO8flCRsXtlq3JZb+pElJ+9s2L9TQ0xs6x1DLXgZ3FvB3XRfQGnsqtxyMKEAbbEfypGQv1rUVpIrWfssg== +jest-resolve@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.0.2.tgz#46faf8f418fbb7dd37ae958c7393c8bcaf331f8d" + integrity sha512-4smZQ+Z4bzRNAXmj2HSrDYOAVar/SBDClUWxDJrz3BHbw+URXGAPenziWIShmybBlcRnX0lVCs43UiB7+Fh+lg== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.0.1" + jest-haste-map "^28.0.2" jest-pnp-resolver "^1.2.2" - jest-util "^28.0.1" - jest-validate "^28.0.1" + jest-util "^28.0.2" + jest-validate "^28.0.2" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.0.1.tgz#006e2b483e67a7bbba46d82bdcb1e84d9d9ec6b4" - integrity sha512-aVRI4Ngaa9hxDg60tAm4ebqJcaI2vUyR04TuNSArI6MZh8Rfio4mP0tjqVI28TzK8RKH3JMg3ARf66nlAwOl7g== +jest-runner@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.0.2.tgz#48b0bdf2a5c286e591d41e4e304856362eaf18de" + integrity sha512-biaiCtgNAeTl1GrHezlWLbTStoi/aP4X2FOZaAhdbHUAflUg4bal6q3Ck8VNhTGzkXVeFtVVZFHE5PHlyUAJBw== dependencies: - "@jest/console" "^28.0.1" - "@jest/environment" "^28.0.1" - "@jest/test-result" "^28.0.1" - "@jest/transform" "^28.0.1" - "@jest/types" "^28.0.1" + "@jest/console" "^28.0.2" + "@jest/environment" "^28.0.2" + "@jest/test-result" "^28.0.2" + "@jest/transform" "^28.0.2" + "@jest/types" "^28.0.2" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" - jest-docblock "^28.0.0" - jest-environment-node "^28.0.1" - jest-haste-map "^28.0.1" - jest-leak-detector "^28.0.1" - jest-message-util "^28.0.1" - jest-resolve "^28.0.1" - jest-runtime "^28.0.1" - jest-util "^28.0.1" - jest-watcher "^28.0.1" - jest-worker "^28.0.1" + jest-docblock "^28.0.2" + jest-environment-node "^28.0.2" + jest-haste-map "^28.0.2" + jest-leak-detector "^28.0.2" + jest-message-util "^28.0.2" + jest-resolve "^28.0.2" + jest-runtime "^28.0.2" + jest-util "^28.0.2" + jest-watcher "^28.0.2" + jest-worker "^28.0.2" source-map-support "0.5.13" throat "^6.0.1" -jest-runtime@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.0.1.tgz#2b33b86c26a14bcba9d3be0ded50010e559ba2be" - integrity sha512-bC22PNBaMK/tX6rMIUf7Usn9V1DallrRyA5QzTqRjz0E2E1UZMUZzKWzhbV6opCI1QSgr5srn0qNUl0MpgWm1g== - dependencies: - "@jest/environment" "^28.0.1" - "@jest/fake-timers" "^28.0.1" - "@jest/globals" "^28.0.1" - "@jest/source-map" "^28.0.0" - "@jest/test-result" "^28.0.1" - "@jest/transform" "^28.0.1" - "@jest/types" "^28.0.1" +jest-runtime@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.0.2.tgz#3e11c9b66891ea959a455dce0e62509bfa5a73f1" + integrity sha512-fUoJ/GVrCj7pdYYXfET8bBudDmefmnscd/0jBkBAgHTs3qu+rGXUAV3QN/ECNhWhhEXoJ5a2PnSFTJ8RmXM6xQ== + dependencies: + "@jest/environment" "^28.0.2" + "@jest/fake-timers" "^28.0.2" + "@jest/globals" "^28.0.2" + "@jest/source-map" "^28.0.2" + "@jest/test-result" "^28.0.2" + "@jest/transform" "^28.0.2" + "@jest/types" "^28.0.2" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.0.1" - jest-message-util "^28.0.1" - jest-mock "^28.0.1" - jest-regex-util "^28.0.0" - jest-resolve "^28.0.1" - jest-snapshot "^28.0.1" - jest-util "^28.0.1" + jest-haste-map "^28.0.2" + jest-message-util "^28.0.2" + jest-mock "^28.0.2" + jest-regex-util "^28.0.2" + jest-resolve "^28.0.2" + jest-snapshot "^28.0.2" + jest-util "^28.0.2" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.0.1.tgz#864d5445323c3a8c4124941394825c7f3b1874b0" - integrity sha512-xaNY3ZZtOBYIpYSAqLpClZJs66wWVpKgsQiFvu8xxjjQBRmwYwu2CAmdaiL5wmd9KxrGX+viLm2vI964hIiIcw== +jest-snapshot@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.0.2.tgz#d20f38d47e4f7e0cab752c21f99fcdc7e127c350" + integrity sha512-Y+2red99KRYY5vxA3HIE1p7p2MxPZz5uwamly18DII/9m/D2QQKcYqETS+/DjDthOxpnJWFqqku7MDzdpnHkHg== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.0.1" - "@jest/transform" "^28.0.1" - "@jest/types" "^28.0.1" + "@jest/expect-utils" "^28.0.2" + "@jest/transform" "^28.0.2" + "@jest/types" "^28.0.2" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.0.1" + expect "^28.0.2" graceful-fs "^4.2.9" - jest-diff "^28.0.1" - jest-get-type "^28.0.0" - jest-haste-map "^28.0.1" - jest-matcher-utils "^28.0.1" - jest-message-util "^28.0.1" - jest-util "^28.0.1" + jest-diff "^28.0.2" + jest-get-type "^28.0.2" + jest-haste-map "^28.0.2" + jest-matcher-utils "^28.0.2" + jest-message-util "^28.0.2" + jest-util "^28.0.2" natural-compare "^1.4.0" - pretty-format "^28.0.1" + pretty-format "^28.0.2" semver "^7.3.5" -jest-util@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.0.1.tgz#af1da8ea0f8035a489ddd68b547ae3ed428426fa" - integrity sha512-gFpqWx9XqBmJRYqSnQ2FbpxWpvAU3TIGFQcfBrwnMVvwbB1ZHhhoQgS+oD0Ek61l9XkLsoWW20woaNlCRf4eMA== +jest-util@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.0.2.tgz#8e22cdd6e0549e0a393055f0e2da7eacc334b143" + integrity sha512-EVdpIRCC8lzqhp9A0u0aAKlsFIzufK6xKxNK7awsnebTdOP4hpyQW5o6Ox2qPl8gbeUKYF+POLyItaND53kpGA== dependencies: - "@jest/types" "^28.0.1" + "@jest/types" "^28.0.2" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.0.1.tgz#7f360030a2c8eeb91b62de92ab00829119a0ad73" - integrity sha512-1mWGDluyjCSGc5u/gw0JKo6SlVfALiho5bLTfqmStOsdy3k69k7/dp18dq49WctHwQ9C+i4SkqpbQG7l63nxiw== +jest-validate@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.0.2.tgz#58bb7e826c054a8bb3b54c05f73758d96cf6dbef" + integrity sha512-nr0UOvCTtxP0YPdsk01Gk7e7c0xIiEe2nncAe3pj0wBfUvAykTVrMrdeASlAJnlEQCBuwN/GF4hKoCzbkGNCNw== dependencies: - "@jest/types" "^28.0.1" + "@jest/types" "^28.0.2" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^28.0.0" + jest-get-type "^28.0.2" leven "^3.1.0" - pretty-format "^28.0.1" + pretty-format "^28.0.2" -jest-watcher@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.0.1.tgz#1460553913120ddfe3045fda7e80144819cc576e" - integrity sha512-tKyjsQal10vBomcyn79ZTutv0N0/dSfYJ+WRFJ3nlaMejiDlLKjMGQ/QrcwcXIXMXQyt0tJG1ycmqLbJg5AK6A== +jest-watcher@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.0.2.tgz#649fa24df531d4071be5784b6274d494d788c88b" + integrity sha512-uIVJLpQ/5VTGQWBiBatHsi7jrCqHjHl0e0dFHMWzwuIfUbdW/muk0DtSr0fteY2T7QTFylv+7a5Rm8sBKrE12Q== dependencies: - "@jest/test-result" "^28.0.1" - "@jest/types" "^28.0.1" + "@jest/test-result" "^28.0.2" + "@jest/types" "^28.0.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^28.0.1" + jest-util "^28.0.2" string-length "^4.0.1" -jest-worker@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.0.1.tgz#7abc005335a5937e6a4f8d24c980c7630a849012" - integrity sha512-Z3j1jfZwtt2ruKwU391a4/kKdYEId7Vy9+6Jeeq5Xl0glJDnOAvO5ixNmgMokMmbpet41jc4MpUx71ciyeTB/A== +jest-worker@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.0.2.tgz#75f7e5126541289ba02e9c1a67e46349ddb8141d" + integrity sha512-pijNxfjxT0tGAx+8+OzZ+eayVPCwy/rsZFhebmC0F4YnXu1EHPEPxg7utL3m5uX3EaFH1/jwDxGa1EbjJCST2g== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.0.1.tgz#064ab082ba3af4c09fc0b227c14b17858083eda7" - integrity sha512-rqP6qSiZ00LUpajUBJIBKjCSE2tOy4x0Y/HI4EJntg51tND02VEiKjKkzgebFyMsFs85H+HGxLgezwOwa1bfwA== + version "28.0.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-28.0.2.tgz#41385ca21d009708bb9fc65e08663110e08e2cc0" + integrity sha512-COUtjybolW4koQvO7kCfq5kgbeeU5WbSJfVZprz4zbS8AL32+RAZZTUjBEyRRdpsXqss/pHIvSL7/P+LyMYHXg== dependencies: - "@jest/core" "^28.0.1" + "@jest/core" "^28.0.2" import-local "^3.0.2" - jest-cli "^28.0.1" + jest-cli "^28.0.2" js-tokens@^4.0.0: version "4.0.0" @@ -2241,12 +2241,12 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== -pretty-format@^28.0.1: - version "28.0.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.0.1.tgz#ae6753bd2bf26fdd552f41194568ccbef23d22af" - integrity sha512-utVSIy0ImophYyJALfiWULOeMnfoxLZEzii/92VcSzN7OX5U1r7erAMqfDJyuv31ugw4Rp5tOYUMndsZV1w8DQ== +pretty-format@^28.0.2: + version "28.0.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.0.2.tgz#6a24d71cbb61a5e5794ba7513fe22101675481bc" + integrity sha512-UmGZ1IERwS3yY35LDMTaBUYI1w4udZDdJGGT/DqQeKG9ZLDn7/K2Jf/JtYSRiHCCKMHvUA+zsEGSmHdpaVp1yw== dependencies: - "@jest/schemas" "^28.0.0" + "@jest/schemas" "^28.0.2" ansi-regex "^5.0.1" ansi-styles "^5.0.0" react-is "^18.0.0" From 00f47efd8fdaa2e1d71d0a6dcee0c63a3139805d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Apr 2022 12:01:32 +0000 Subject: [PATCH 075/262] Bump jest from 28.0.2 to 28.0.3 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 28.0.2 to 28.0.3. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v28.0.3/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 182 +++++++++++++++++++++++++++--------------------------- 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/yarn.lock b/yarn.lock index ce351f57..493a51bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -418,15 +418,15 @@ jest-util "^28.0.2" slash "^3.0.0" -"@jest/core@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.0.2.tgz#b8433545c32b5e368bfb4d46c9cd01d58c19f0ef" - integrity sha512-AK6xU9wfo9E3wA4fY8t59I2t5hnS3eCVYhD1OVZPMZyUrtIQbU1HR+h9jz3ulsEv39xSDH94QY2IJr46O637ag== +"@jest/core@^28.0.3": + version "28.0.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.0.3.tgz#2b8223914ef6ae16ff740e65235ef8ef49c46d52" + integrity sha512-cCQW06vEZ+5r50SB06pOnSWsOBs7F+lswPYnKKfBz1ncLlj1sMqmvjgam8q40KhlZ8Ut4eNAL2Hvfx4BKIO2FA== dependencies: "@jest/console" "^28.0.2" - "@jest/reporters" "^28.0.2" + "@jest/reporters" "^28.0.3" "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.2" + "@jest/transform" "^28.0.3" "@jest/types" "^28.0.2" "@types/node" "*" ansi-escapes "^4.2.1" @@ -435,15 +435,15 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^28.0.2" - jest-config "^28.0.2" + jest-config "^28.0.3" jest-haste-map "^28.0.2" jest-message-util "^28.0.2" jest-regex-util "^28.0.2" - jest-resolve "^28.0.2" - jest-resolve-dependencies "^28.0.2" - jest-runner "^28.0.2" - jest-runtime "^28.0.2" - jest-snapshot "^28.0.2" + jest-resolve "^28.0.3" + jest-resolve-dependencies "^28.0.3" + jest-runner "^28.0.3" + jest-runtime "^28.0.3" + jest-snapshot "^28.0.3" jest-util "^28.0.2" jest-validate "^28.0.2" jest-watcher "^28.0.2" @@ -470,13 +470,13 @@ dependencies: jest-get-type "^28.0.2" -"@jest/expect@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.0.2.tgz#ca94154c63a69027da0932b712b0104618cb98b1" - integrity sha512-rxgWG/updGoQtHFw/duImu5gPN48+kHvhVjLJ0fFk2mYQ+3dp7/zLiNTjSQxc92Bq4VOk+b6ln0gSgKM4etOtQ== +"@jest/expect@^28.0.3": + version "28.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.0.3.tgz#80e0233bee62586e1112f904d28b904dd1143ef2" + integrity sha512-VEzZr85bqNomgayQkR7hWG5HnbZYWYWagQriZsixhLmOzU6PCpMP61aeVhkCoRrg7ri5f7JDpeTPzDAajIwFHw== dependencies: expect "^28.0.2" - jest-snapshot "^28.0.2" + jest-snapshot "^28.0.3" "@jest/fake-timers@^28.0.2": version "28.0.2" @@ -490,24 +490,24 @@ jest-mock "^28.0.2" jest-util "^28.0.2" -"@jest/globals@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.0.2.tgz#999164fb1b09f2cb5ba47c890d185722876b2ec1" - integrity sha512-gkOd1rTTLoZGM2OqOtf5wyzf8HNoM2a+dGbyWgqO3spQiA/OBE+d1kQlZ6mYs9NtJwJ1/TNAJNyBaPXIeo7xEw== +"@jest/globals@^28.0.3": + version "28.0.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.0.3.tgz#70f68a06c863d1c9d14aea151c69b9690e3efeb4" + integrity sha512-q/zXYI6CKtTSIt1WuTHBYizJhH7K8h+xG5PE3C0oawLlPIvUMDYmpj0JX0XsJwPRLCsz/fYXHZVG46AaEhSPmw== dependencies: "@jest/environment" "^28.0.2" - "@jest/expect" "^28.0.2" + "@jest/expect" "^28.0.3" "@jest/types" "^28.0.2" -"@jest/reporters@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.0.2.tgz#ce8efb1499f9b9f57d285289125dd7cb93130b20" - integrity sha512-YOxPWwVwgY2u6h6XOnOILZVZFUthIr86ttvXrdRg8VC/8fg2Vwk4d/fxY6uLDCFE/3CFthXTsVB05kmBjckCsw== +"@jest/reporters@^28.0.3": + version "28.0.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.0.3.tgz#9996189e5552e37fcdffe0f41c07754f5d2ea854" + integrity sha512-xrbIc7J/xwo+D7AY3enAR9ZWYCmJ8XIkstTukTGpKDph0gLl/TJje9jl3dssvE4KJzYqMKiSrnE5Nt68I4fTEg== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@jest/console" "^28.0.2" "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.2" + "@jest/transform" "^28.0.3" "@jest/types" "^28.0.2" "@jridgewell/trace-mapping" "^0.3.7" "@types/node" "*" @@ -564,10 +564,10 @@ jest-haste-map "^28.0.2" slash "^3.0.0" -"@jest/transform@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.0.2.tgz#2b33d93fdf5827309cbd332bf968fa0dd049e7b2" - integrity sha512-PgvB/DEwVY+vJAGTRSFhdmorytx54aXKK1+VQIxVtdFVAe0mJ2fUIRWQuGimveEJWT4ELJImZAIYOgs8z2L0eg== +"@jest/transform@^28.0.3": + version "28.0.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.0.3.tgz#591fb5ebc1d84db5c5f21e1225c7406c35f5eb1e" + integrity sha512-+Y0ikI7SwoW/YbK8t9oKwC70h4X2Gd0OVuz5tctRvSV/EDQU00AAkoqevXgPSSFimUmp/sp7Yl8s/1bExDqOIg== dependencies: "@babel/core" "^7.11.6" "@jest/types" "^28.0.2" @@ -819,12 +819,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.0.2.tgz#72c050b4fbd108e561f9d9c7bad4893b20399b12" - integrity sha512-OlbfoOpHmU3jzAWoiT98bBuAhjrSZMxSVk5ALkCL/8ocb8dyx8F4H9NlBjH2xd08MI5306Yxa0+y87cjY55Eqw== +babel-jest@^28.0.3: + version "28.0.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.0.3.tgz#843dc170da5b9671d4054ada9fdcd28f85f92a6e" + integrity sha512-S0ADyYdcrt5fp9YldRYWCUHdk1BKt9AkvBkLWBoNAEV9NoWZPIj5+MYhPcGgTS65mfv3a+Ymf2UqgWoAVd41cA== dependencies: - "@jest/transform" "^28.0.2" + "@jest/transform" "^28.0.3" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^28.0.2" @@ -1604,13 +1604,13 @@ jest-changed-files@^28.0.2: execa "^5.0.0" throat "^6.0.1" -jest-circus@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.0.2.tgz#deb0a06491ae2d61ff67e28985b6ce3729db4a93" - integrity sha512-5U0K43UZSwu9xBo3RmK366Y8i0YMTGe2hgFm7TYka6ecT5lB0VZ+/TQTTsDVxa9q1TuOWRa7EskSMm1Q74Hy/Q== +jest-circus@^28.0.3: + version "28.0.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.0.3.tgz#45f77090b4b9fe5c1b84f72816868c9d4c0f57b1" + integrity sha512-HJ3rUCm3A3faSy7KVH5MFCncqJLtrjEFkTPn9UIcs4Kq77+TXqHsOaI+/k73aHe6DJQigLUXq9rCYj3MYFlbIw== dependencies: "@jest/environment" "^28.0.2" - "@jest/expect" "^28.0.2" + "@jest/expect" "^28.0.3" "@jest/test-result" "^28.0.2" "@jest/types" "^28.0.2" "@types/node" "*" @@ -1621,52 +1621,52 @@ jest-circus@^28.0.2: jest-each "^28.0.2" jest-matcher-utils "^28.0.2" jest-message-util "^28.0.2" - jest-runtime "^28.0.2" - jest-snapshot "^28.0.2" + jest-runtime "^28.0.3" + jest-snapshot "^28.0.3" jest-util "^28.0.2" pretty-format "^28.0.2" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.0.2.tgz#1db7587960adecb130fa830a7547e1aef861d9f6" - integrity sha512-X6KSoKiSDZ07lds9awDMd14VUmtLS0sxgbUzZi1m6JewWdwXtuadTBff1kAUcAmKgJTYBPnVN0u2BKp7AIzllA== +jest-cli@^28.0.3: + version "28.0.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.0.3.tgz#4a4e55078ec772e0ea2583dd4c4b38fb306dc556" + integrity sha512-NCPTEONCnhYGo1qzPP4OOcGF04YasM5GZSwQLI1HtEluxa3ct4U65IbZs6DSRt8XN1Rq0jhXwv02m5lHB28Uyg== dependencies: - "@jest/core" "^28.0.2" + "@jest/core" "^28.0.3" "@jest/test-result" "^28.0.2" "@jest/types" "^28.0.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.0.2" + jest-config "^28.0.3" jest-util "^28.0.2" jest-validate "^28.0.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.0.2.tgz#43053a24ae6efd4da25bbe473d4bc98da008ac18" - integrity sha512-4E5r24Dw1DsyF4ObkwiDEqXIwrX7p01mnngWKtB/0Jdb0SpR1UGAm8Bjg6GTozCA4SlSj/Bbq7LTkg0WrzLanQ== +jest-config@^28.0.3: + version "28.0.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.0.3.tgz#9c0556d60d692153a6bc8652974182c22db9244f" + integrity sha512-3gWOEHwGpNhyYOk9vnUMv94x15QcdjACm7A3lERaluwnyD6d1WZWe9RFCShgIXVOHzRfG1hWxsI2U0gKKSGgDQ== dependencies: "@babel/core" "^7.11.6" "@jest/test-sequencer" "^28.0.2" "@jest/types" "^28.0.2" - babel-jest "^28.0.2" + babel-jest "^28.0.3" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^28.0.2" + jest-circus "^28.0.3" jest-environment-node "^28.0.2" jest-get-type "^28.0.2" jest-regex-util "^28.0.2" - jest-resolve "^28.0.2" - jest-runner "^28.0.2" + jest-resolve "^28.0.3" + jest-runner "^28.0.3" jest-util "^28.0.2" jest-validate "^28.0.2" micromatch "^4.0.4" @@ -1790,18 +1790,18 @@ jest-regex-util@^28.0.2: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-resolve-dependencies@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.0.2.tgz#44e1a65ccaaf3b73d4fa8e9add4eeff5b752e1cb" - integrity sha512-Xgkc51baZJQ9UcZg8UN9rGtnvqoVHeDNP6iM4QV3W/phzbFyRCiAxqgJ2GyuBnzGm2EirUlIcstlvOR/6trHmw== +jest-resolve-dependencies@^28.0.3: + version "28.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.0.3.tgz#76d8f59f7e76ba36d76a1677eeaaed24560da7e0" + integrity sha512-lCgHMm0/5p0qHemrOzm7kI6JDei28xJwIf7XOEcv1HeAVHnsON8B8jO/woqlU+/GcOXb58ymieYqhk3zjGWnvQ== dependencies: jest-regex-util "^28.0.2" - jest-snapshot "^28.0.2" + jest-snapshot "^28.0.3" -jest-resolve@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.0.2.tgz#46faf8f418fbb7dd37ae958c7393c8bcaf331f8d" - integrity sha512-4smZQ+Z4bzRNAXmj2HSrDYOAVar/SBDClUWxDJrz3BHbw+URXGAPenziWIShmybBlcRnX0lVCs43UiB7+Fh+lg== +jest-resolve@^28.0.3: + version "28.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.0.3.tgz#63f8e6b53e40f265b3ca9116195221dd43e3d16d" + integrity sha512-lfgjd9JhEjpjIN3HLUfdysdK+A7ePQoYmd7WL9DUEWqdnngb1rF56eee6iDXJxl/3eSolpP43VD7VrhjL3NsoQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" @@ -1813,15 +1813,15 @@ jest-resolve@^28.0.2: resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.0.2.tgz#48b0bdf2a5c286e591d41e4e304856362eaf18de" - integrity sha512-biaiCtgNAeTl1GrHezlWLbTStoi/aP4X2FOZaAhdbHUAflUg4bal6q3Ck8VNhTGzkXVeFtVVZFHE5PHlyUAJBw== +jest-runner@^28.0.3: + version "28.0.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.0.3.tgz#a8a409c685ad3081a44b149b2eb04bc4d47faaf9" + integrity sha512-4OsHMjBLtYUWCENucAQ4Za0jGfEbOFi/Fusv6dzUuaweqx8apb4+5p2LR2yvgF4StFulmxyC238tGLftfu+zBA== dependencies: "@jest/console" "^28.0.2" "@jest/environment" "^28.0.2" "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.2" + "@jest/transform" "^28.0.3" "@jest/types" "^28.0.2" "@types/node" "*" chalk "^4.0.0" @@ -1832,25 +1832,25 @@ jest-runner@^28.0.2: jest-haste-map "^28.0.2" jest-leak-detector "^28.0.2" jest-message-util "^28.0.2" - jest-resolve "^28.0.2" - jest-runtime "^28.0.2" + jest-resolve "^28.0.3" + jest-runtime "^28.0.3" jest-util "^28.0.2" jest-watcher "^28.0.2" jest-worker "^28.0.2" source-map-support "0.5.13" throat "^6.0.1" -jest-runtime@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.0.2.tgz#3e11c9b66891ea959a455dce0e62509bfa5a73f1" - integrity sha512-fUoJ/GVrCj7pdYYXfET8bBudDmefmnscd/0jBkBAgHTs3qu+rGXUAV3QN/ECNhWhhEXoJ5a2PnSFTJ8RmXM6xQ== +jest-runtime@^28.0.3: + version "28.0.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.0.3.tgz#02346a34de0ac61d23bdb0e8c035ad973d7bb087" + integrity sha512-7FtPUmvbZEHLOdjsF6dyHg5Pe4E0DU+f3Vvv8BPzVR7mQA6nFR4clQYLAPyJGnsUvN8WRWn+b5a5SVwnj1WaGg== dependencies: "@jest/environment" "^28.0.2" "@jest/fake-timers" "^28.0.2" - "@jest/globals" "^28.0.2" + "@jest/globals" "^28.0.3" "@jest/source-map" "^28.0.2" "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.2" + "@jest/transform" "^28.0.3" "@jest/types" "^28.0.2" chalk "^4.0.0" cjs-module-lexer "^1.0.0" @@ -1862,16 +1862,16 @@ jest-runtime@^28.0.2: jest-message-util "^28.0.2" jest-mock "^28.0.2" jest-regex-util "^28.0.2" - jest-resolve "^28.0.2" - jest-snapshot "^28.0.2" + jest-resolve "^28.0.3" + jest-snapshot "^28.0.3" jest-util "^28.0.2" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.0.2.tgz#d20f38d47e4f7e0cab752c21f99fcdc7e127c350" - integrity sha512-Y+2red99KRYY5vxA3HIE1p7p2MxPZz5uwamly18DII/9m/D2QQKcYqETS+/DjDthOxpnJWFqqku7MDzdpnHkHg== +jest-snapshot@^28.0.3: + version "28.0.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.0.3.tgz#9a768d0c617d070e87c1bd37240f22b344616154" + integrity sha512-nVzAAIlAbrMuvVUrS1YxmAeo1TfSsDDU+K5wv/Ow56MBp+L+Y71ksAbwRp3kGCgZAz4oOXcAMPAwtT9Yh1hlQQ== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1879,7 +1879,7 @@ jest-snapshot@^28.0.2: "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" "@jest/expect-utils" "^28.0.2" - "@jest/transform" "^28.0.2" + "@jest/transform" "^28.0.3" "@jest/types" "^28.0.2" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" @@ -1945,13 +1945,13 @@ jest-worker@^28.0.2: supports-color "^8.0.0" jest@^28.0.1: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.0.2.tgz#41385ca21d009708bb9fc65e08663110e08e2cc0" - integrity sha512-COUtjybolW4koQvO7kCfq5kgbeeU5WbSJfVZprz4zbS8AL32+RAZZTUjBEyRRdpsXqss/pHIvSL7/P+LyMYHXg== + version "28.0.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-28.0.3.tgz#92a7d6ee097b61de4ba2db7f3ab723e81a99b32d" + integrity sha512-uS+T5J3w5xyzd1KSJCGKhCo8WTJXbNl86f5SW11wgssbandJOVLRKKUxmhdFfmKxhPeksl1hHZ0HaA8VBzp7xA== dependencies: - "@jest/core" "^28.0.2" + "@jest/core" "^28.0.3" import-local "^3.0.2" - jest-cli "^28.0.2" + jest-cli "^28.0.3" js-tokens@^4.0.0: version "4.0.0" From a19b0a807d78c57b76ba0d6b020f0254ed8ec3e6 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 4 May 2022 22:57:29 -0400 Subject: [PATCH 076/262] Positive process ID on windows --- src/parseSync.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/parseSync.js b/src/parseSync.js index e4afbb1c..9b2d08dc 100644 --- a/src/parseSync.js +++ b/src/parseSync.js @@ -132,7 +132,11 @@ function spawnServer() { try { if (server.pid) { - process.kill(-server.pid); + // Kill the server process if it's still running. If we're on windows + // we're going to use the process ID number. If we're not, we're going + // to use the negative process ID to indicate the group. + const pid = process.platform === "win32" ? server.pid : -server.pid; + process.kill(pid); } } catch (e) { if (process.env.PLUGIN_RUBY_CI) { From 69acc91799e6e3bcc561211bda9c276628bec3e0 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 4 May 2022 23:06:19 -0400 Subject: [PATCH 077/262] Update CHANGELOG --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e53b53c9..59041572 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,20 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +### Added + +- [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - Encoding for source files is now guessed in a much better way. + ### Changed - [#1198](https://github.com/prettier/plugin-ruby/issues/1198) - pas-f, kddnewton - Fix crashes on JRuby with do blocks. +- [#1131](https://github.com/prettier/plugin-ruby/issues/1131) - hyrious, kddnewton - Ensure zombie processes are not left around when the server exits. +- [#1206](https://github.com/prettier/plugin-ruby/pull/1206) - kddnewton - Switch back to plain JavaScript for development. +- [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - Switch over to using Syntax Tree for the backend. + +### Removed + +- [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - The configuration options have been removed. Instead, configuration is to be done through modifying Syntax Tree. ## [2.1.0] - 2022-04-04 From 2379c92459edd93ea5496a628a191522d2ece2e2 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 4 May 2022 23:08:40 -0400 Subject: [PATCH 078/262] Bump to v3.0.0 --- CHANGELOG.md | 5 ++++- package.json | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59041572..3167848e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [3.0.0] - 2022-05-04 + ### Added - [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - Encoding for source files is now guessed in a much better way. @@ -1223,7 +1225,8 @@ would previously result in `array[]`, but now prints properly. - Initial release 🎉 -[unreleased]: https://github.com/prettier/plugin-ruby/compare/v2.1.0...HEAD +[unreleased]: https://github.com/prettier/plugin-ruby/compare/v3.0.0...HEAD +[3.0.0]: https://github.com/prettier/plugin-ruby/compare/v2.1.0...v3.0.0 [2.1.0]: https://github.com/prettier/plugin-ruby/compare/v2.0.0...v2.1.0 [2.0.0]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc4...v2.0.0 [2.0.0-rc4]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc3...v2.0.0-rc4 diff --git a/package.json b/package.json index c2ca81a0..dc5f6f49 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "2.1.0", + "version": "3.0.0", "description": "prettier plugin for the Ruby programming language", "main": "src/plugin.js", "scripts": { From 513a9ebb37d1bc0f6a052f987043615049a68824 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 4 May 2022 23:26:52 -0400 Subject: [PATCH 079/262] Document necessary Ruby dependencies --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 3001f821..d0fa6db9 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,12 @@ Or if you're using `yarn`, then add the plugin by: yarn add --dev prettier @prettier/plugin-ruby ``` +You'll also need to add the necessary Ruby dependencies. You can do this by running: + +```bash +gem install syntax_tree syntax_tree-haml syntax_tree-rbs +``` + The `prettier` executable is now installed and ready for use: ```bash From c5e34859d3830223dc678662b31300f52a48c3dc Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 5 May 2022 12:06:06 -0400 Subject: [PATCH 080/262] Document needing bundler --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d0fa6db9..5f6abff4 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ yarn add --dev prettier @prettier/plugin-ruby You'll also need to add the necessary Ruby dependencies. You can do this by running: ```bash -gem install syntax_tree syntax_tree-haml syntax_tree-rbs +gem install bundler syntax_tree syntax_tree-haml syntax_tree-rbs ``` The `prettier` executable is now installed and ready for use: From 19cb95b6b1f3c72635ba0ff571ccd73e7376536f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 May 2022 12:01:29 +0000 Subject: [PATCH 081/262] Bump jest from 28.0.3 to 28.1.0 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 28.0.3 to 28.1.0. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v28.1.0/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 573 +++++++++++++++++++++++++++--------------------------- 1 file changed, 287 insertions(+), 286 deletions(-) diff --git a/yarn.lock b/yarn.lock index 493a51bd..9af83b72 100644 --- a/yarn.lock +++ b/yarn.lock @@ -406,28 +406,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.0.2.tgz#d11e8b43ae431ae9b3112656848417ae4008fcad" - integrity sha512-tiRpnMeeyQuuzgL5UNSeiqMwF8UOWPbAE5rzcu/1zyq4oPG2Ox6xm4YCOruwbp10F8odWc+XwVxTyGzMSLMqxA== +"@jest/console@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.0.tgz#db78222c3d3b0c1db82f1b9de51094c2aaff2176" + integrity sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA== dependencies: - "@jest/types" "^28.0.2" + "@jest/types" "^28.1.0" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^28.0.2" - jest-util "^28.0.2" + jest-message-util "^28.1.0" + jest-util "^28.1.0" slash "^3.0.0" -"@jest/core@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.0.3.tgz#2b8223914ef6ae16ff740e65235ef8ef49c46d52" - integrity sha512-cCQW06vEZ+5r50SB06pOnSWsOBs7F+lswPYnKKfBz1ncLlj1sMqmvjgam8q40KhlZ8Ut4eNAL2Hvfx4BKIO2FA== +"@jest/core@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.0.tgz#784a1e6ce5358b46fcbdcfbbd93b1b713ed4ea80" + integrity sha512-/2PTt0ywhjZ4NwNO4bUqD9IVJfmFVhVKGlhvSpmEfUCuxYf/3NHcKmRFI+I71lYzbTT3wMuYpETDCTHo81gC/g== dependencies: - "@jest/console" "^28.0.2" - "@jest/reporters" "^28.0.3" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" + "@jest/console" "^28.1.0" + "@jest/reporters" "^28.1.0" + "@jest/test-result" "^28.1.0" + "@jest/transform" "^28.1.0" + "@jest/types" "^28.1.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -435,80 +435,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^28.0.2" - jest-config "^28.0.3" - jest-haste-map "^28.0.2" - jest-message-util "^28.0.2" + jest-config "^28.1.0" + jest-haste-map "^28.1.0" + jest-message-util "^28.1.0" jest-regex-util "^28.0.2" - jest-resolve "^28.0.3" - jest-resolve-dependencies "^28.0.3" - jest-runner "^28.0.3" - jest-runtime "^28.0.3" - jest-snapshot "^28.0.3" - jest-util "^28.0.2" - jest-validate "^28.0.2" - jest-watcher "^28.0.2" + jest-resolve "^28.1.0" + jest-resolve-dependencies "^28.1.0" + jest-runner "^28.1.0" + jest-runtime "^28.1.0" + jest-snapshot "^28.1.0" + jest-util "^28.1.0" + jest-validate "^28.1.0" + jest-watcher "^28.1.0" micromatch "^4.0.4" - pretty-format "^28.0.2" + pretty-format "^28.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.0.2.tgz#a865949d876b2d364b979bbc0a46338ffd23de26" - integrity sha512-IvI7dEfqVEffDYlw9FQfVBt6kXt/OI38V7QUIur0ulOQgzpKYJDVvLzj4B1TVmHWTGW5tcnJdlZ3hqzV6/I9Qg== +"@jest/environment@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.0.tgz#dedf7d59ec341b9292fcf459fd0ed819eb2e228a" + integrity sha512-S44WGSxkRngzHslhV6RoAExekfF7Qhwa6R5+IYFa81mpcj0YgdBnRSmvHe3SNwOt64yXaE5GG8Y2xM28ii5ssA== dependencies: - "@jest/fake-timers" "^28.0.2" - "@jest/types" "^28.0.2" + "@jest/fake-timers" "^28.1.0" + "@jest/types" "^28.1.0" "@types/node" "*" - jest-mock "^28.0.2" + jest-mock "^28.1.0" -"@jest/expect-utils@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.0.2.tgz#0a055868d225261eac82a12013e2e0735238774d" - integrity sha512-YryfH2zN5c7M8eLtn9oTBRj1sfD+X4cHNXJnTejqCveOS33wADEZUxJ7de5++lRvByNpRpfAnc8zTK7yrUJqgA== +"@jest/expect-utils@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.0.tgz#a5cde811195515a9809b96748ae8bcc331a3538a" + integrity sha512-5BrG48dpC0sB80wpeIX5FU6kolDJI4K0n5BM9a5V38MGx0pyRvUBSS0u2aNTdDzmOrCjhOg8pGs6a20ivYkdmw== dependencies: jest-get-type "^28.0.2" -"@jest/expect@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.0.3.tgz#80e0233bee62586e1112f904d28b904dd1143ef2" - integrity sha512-VEzZr85bqNomgayQkR7hWG5HnbZYWYWagQriZsixhLmOzU6PCpMP61aeVhkCoRrg7ri5f7JDpeTPzDAajIwFHw== +"@jest/expect@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.0.tgz#2e5a31db692597070932366a1602b5157f0f217c" + integrity sha512-be9ETznPLaHOmeJqzYNIXv1ADEzENuQonIoobzThOYPuK/6GhrWNIJDVTgBLCrz3Am73PyEU2urQClZp0hLTtA== dependencies: - expect "^28.0.2" - jest-snapshot "^28.0.3" + expect "^28.1.0" + jest-snapshot "^28.1.0" -"@jest/fake-timers@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.0.2.tgz#d36e62bc58f39d65ea6adac1ff7749e63aff05f3" - integrity sha512-R75yUv+WeybPa4ZVhX9C+8XN0TKjUoceUX+/QEaDVQGxZZOK50eD74cs7iMDTtpodh00d8iLlc9197vgF6oZjA== +"@jest/fake-timers@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.0.tgz#ea77878aabd5c5d50e1fc53e76d3226101e33064" + integrity sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg== dependencies: - "@jest/types" "^28.0.2" + "@jest/types" "^28.1.0" "@sinonjs/fake-timers" "^9.1.1" "@types/node" "*" - jest-message-util "^28.0.2" - jest-mock "^28.0.2" - jest-util "^28.0.2" + jest-message-util "^28.1.0" + jest-mock "^28.1.0" + jest-util "^28.1.0" -"@jest/globals@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.0.3.tgz#70f68a06c863d1c9d14aea151c69b9690e3efeb4" - integrity sha512-q/zXYI6CKtTSIt1WuTHBYizJhH7K8h+xG5PE3C0oawLlPIvUMDYmpj0JX0XsJwPRLCsz/fYXHZVG46AaEhSPmw== +"@jest/globals@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.0.tgz#a4427d2eb11763002ff58e24de56b84ba79eb793" + integrity sha512-3m7sTg52OTQR6dPhsEQSxAvU+LOBbMivZBwOvKEZ+Rb+GyxVnXi9HKgOTYkx/S99T8yvh17U4tNNJPIEQmtwYw== dependencies: - "@jest/environment" "^28.0.2" - "@jest/expect" "^28.0.3" - "@jest/types" "^28.0.2" + "@jest/environment" "^28.1.0" + "@jest/expect" "^28.1.0" + "@jest/types" "^28.1.0" -"@jest/reporters@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.0.3.tgz#9996189e5552e37fcdffe0f41c07754f5d2ea854" - integrity sha512-xrbIc7J/xwo+D7AY3enAR9ZWYCmJ8XIkstTukTGpKDph0gLl/TJje9jl3dssvE4KJzYqMKiSrnE5Nt68I4fTEg== +"@jest/reporters@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.0.tgz#5183a28b9b593b6000fa9b89b031c7216b58a9a0" + integrity sha512-qxbFfqap/5QlSpIizH9c/bFCDKsQlM4uAKSOvZrP+nIdrjqre3FmKzpTtYyhsaVcOSNK7TTt2kjm+4BJIjysFA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.0.2" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" + "@jest/console" "^28.1.0" + "@jest/test-result" "^28.1.0" + "@jest/transform" "^28.1.0" + "@jest/types" "^28.1.0" "@jridgewell/trace-mapping" "^0.3.7" "@types/node" "*" chalk "^4.0.0" @@ -521,10 +521,11 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-util "^28.0.2" - jest-worker "^28.0.2" + jest-util "^28.1.0" + jest-worker "^28.1.0" slash "^3.0.0" string-length "^4.0.1" + strip-ansi "^6.0.0" terminal-link "^2.0.0" v8-to-istanbul "^9.0.0" @@ -544,51 +545,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.0.2.tgz#bc8e15a95347e3c2149572ae06a5a6fed939c522" - integrity sha512-4EUqgjq9VzyUiVTvZfI9IRJD6t3NYBNP4f+Eq8Zr93+hkJ0RrGU4OBTw8tfNzidKX+bmuYzn8FxqpxOPIGGCMA== +"@jest/test-result@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.0.tgz#fd149dee123510dd2fcadbbf5f0020f98ad7f12c" + integrity sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ== dependencies: - "@jest/console" "^28.0.2" - "@jest/types" "^28.0.2" + "@jest/console" "^28.1.0" + "@jest/types" "^28.1.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.0.2.tgz#7669b7d8ff2aa7a8221b11bb37cce552de81b1bb" - integrity sha512-zhnZ8ydkZQTPL7YucB86eOlD79zPy5EGSUKiR2Iv93RVEDU6OEP33kwDBg70ywOcxeJGDRhyo09q7TafNCBiIg== +"@jest/test-sequencer@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.0.tgz#ce7294bbe986415b9a30e218c7e705e6ebf2cdf2" + integrity sha512-tZCEiVWlWNTs/2iK9yi6o3AlMfbbYgV4uuZInSVdzZ7ftpHZhCMuhvk2HLYhCZzLgPFQ9MnM1YaxMnh3TILFiQ== dependencies: - "@jest/test-result" "^28.0.2" + "@jest/test-result" "^28.1.0" graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" + jest-haste-map "^28.1.0" slash "^3.0.0" -"@jest/transform@^28.0.3": - version "28.0.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.0.3.tgz#591fb5ebc1d84db5c5f21e1225c7406c35f5eb1e" - integrity sha512-+Y0ikI7SwoW/YbK8t9oKwC70h4X2Gd0OVuz5tctRvSV/EDQU00AAkoqevXgPSSFimUmp/sp7Yl8s/1bExDqOIg== +"@jest/transform@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.0.tgz#224a3c9ba4cc98e2ff996c0a89a2d59db15c74ce" + integrity sha512-omy2xe5WxlAfqmsTjTPxw+iXRTRnf+NtX0ToG+4S0tABeb4KsKmPUHq5UBuwunHg3tJRwgEQhEp0M/8oiatLEA== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^28.0.2" + "@jest/types" "^28.1.0" "@jridgewell/trace-mapping" "^0.3.7" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" + jest-haste-map "^28.1.0" jest-regex-util "^28.0.2" - jest-util "^28.0.2" + jest-util "^28.1.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.0.2.tgz#70b9538c1863fb060b2f438ca008b5563d00c5b4" - integrity sha512-hi3jUdm9iht7I2yrV5C4s3ucCJHUP8Eh3W6rQ1s4n/Qw9rQgsda4eqCt+r3BKRi7klVmZfQlMx1nGlzNMP2d8A== +"@jest/types@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.0.tgz#508327a89976cbf9bd3e1cc74641a29fd7dfd519" + integrity sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA== dependencies: "@jest/schemas" "^28.0.2" "@types/istanbul-lib-coverage" "^2.0.0" @@ -819,12 +820,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.0.3.tgz#843dc170da5b9671d4054ada9fdcd28f85f92a6e" - integrity sha512-S0ADyYdcrt5fp9YldRYWCUHdk1BKt9AkvBkLWBoNAEV9NoWZPIj5+MYhPcGgTS65mfv3a+Ymf2UqgWoAVd41cA== +babel-jest@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.0.tgz#95a67f8e2e7c0042e7b3ad3951b8af41a533b5ea" + integrity sha512-zNKk0yhDZ6QUwfxh9k07GII6siNGMJWVUU49gmFj5gfdqDKLqa2RArXOF2CODp4Dr7dLxN2cvAV+667dGJ4b4w== dependencies: - "@jest/transform" "^28.0.3" + "@jest/transform" "^28.1.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^28.0.2" @@ -1278,16 +1279,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.0.2.tgz#86f0d6fa971bc533faf68d4d103d00f343d6a4b3" - integrity sha512-X0qIuI/zKv98k34tM+uGeOgAC73lhs4vROF9MkPk94C1zujtwv4Cla8SxhWn0G1OwvG9gLLL7RjFBkwGVaZ83w== +expect@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.0.tgz#10e8da64c0850eb8c39a480199f14537f46e8360" + integrity sha512-qFXKl8Pmxk8TBGfaFKRtcQjfXEnKAs+dmlxdwvukJZorwrAabT7M3h8oLOG01I2utEhkmUTi17CHaPBovZsKdw== dependencies: - "@jest/expect-utils" "^28.0.2" + "@jest/expect-utils" "^28.1.0" jest-get-type "^28.0.2" - jest-matcher-utils "^28.0.2" - jest-message-util "^28.0.2" - jest-util "^28.0.2" + jest-matcher-utils "^28.1.0" + jest-message-util "^28.1.0" + jest-util "^28.1.0" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1604,86 +1605,86 @@ jest-changed-files@^28.0.2: execa "^5.0.0" throat "^6.0.1" -jest-circus@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.0.3.tgz#45f77090b4b9fe5c1b84f72816868c9d4c0f57b1" - integrity sha512-HJ3rUCm3A3faSy7KVH5MFCncqJLtrjEFkTPn9UIcs4Kq77+TXqHsOaI+/k73aHe6DJQigLUXq9rCYj3MYFlbIw== +jest-circus@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.0.tgz#e229f590911bd54d60efaf076f7acd9360296dae" + integrity sha512-rNYfqfLC0L0zQKRKsg4n4J+W1A2fbyGH7Ss/kDIocp9KXD9iaL111glsLu7+Z7FHuZxwzInMDXq+N1ZIBkI/TQ== dependencies: - "@jest/environment" "^28.0.2" - "@jest/expect" "^28.0.3" - "@jest/test-result" "^28.0.2" - "@jest/types" "^28.0.2" + "@jest/environment" "^28.1.0" + "@jest/expect" "^28.1.0" + "@jest/test-result" "^28.1.0" + "@jest/types" "^28.1.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^28.0.2" - jest-matcher-utils "^28.0.2" - jest-message-util "^28.0.2" - jest-runtime "^28.0.3" - jest-snapshot "^28.0.3" - jest-util "^28.0.2" - pretty-format "^28.0.2" + jest-each "^28.1.0" + jest-matcher-utils "^28.1.0" + jest-message-util "^28.1.0" + jest-runtime "^28.1.0" + jest-snapshot "^28.1.0" + jest-util "^28.1.0" + pretty-format "^28.1.0" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.0.3.tgz#4a4e55078ec772e0ea2583dd4c4b38fb306dc556" - integrity sha512-NCPTEONCnhYGo1qzPP4OOcGF04YasM5GZSwQLI1HtEluxa3ct4U65IbZs6DSRt8XN1Rq0jhXwv02m5lHB28Uyg== +jest-cli@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.0.tgz#cd1d8adb9630102d5ba04a22895f63decdd7ac1f" + integrity sha512-fDJRt6WPRriHrBsvvgb93OxgajHHsJbk4jZxiPqmZbMDRcHskfJBBfTyjFko0jjfprP544hOktdSi9HVgl4VUQ== dependencies: - "@jest/core" "^28.0.3" - "@jest/test-result" "^28.0.2" - "@jest/types" "^28.0.2" + "@jest/core" "^28.1.0" + "@jest/test-result" "^28.1.0" + "@jest/types" "^28.1.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.0.3" - jest-util "^28.0.2" - jest-validate "^28.0.2" + jest-config "^28.1.0" + jest-util "^28.1.0" + jest-validate "^28.1.0" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.0.3.tgz#9c0556d60d692153a6bc8652974182c22db9244f" - integrity sha512-3gWOEHwGpNhyYOk9vnUMv94x15QcdjACm7A3lERaluwnyD6d1WZWe9RFCShgIXVOHzRfG1hWxsI2U0gKKSGgDQ== +jest-config@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.0.tgz#fca22ca0760e746fe1ce1f9406f6b307ab818501" + integrity sha512-aOV80E9LeWrmflp7hfZNn/zGA4QKv/xsn2w8QCBP0t0+YqObuCWTSgNbHJ0j9YsTuCO08ZR/wsvlxqqHX20iUA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.0.2" - "@jest/types" "^28.0.2" - babel-jest "^28.0.3" + "@jest/test-sequencer" "^28.1.0" + "@jest/types" "^28.1.0" + babel-jest "^28.1.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 "^28.0.3" - jest-environment-node "^28.0.2" + jest-circus "^28.1.0" + jest-environment-node "^28.1.0" jest-get-type "^28.0.2" jest-regex-util "^28.0.2" - jest-resolve "^28.0.3" - jest-runner "^28.0.3" - jest-util "^28.0.2" - jest-validate "^28.0.2" + jest-resolve "^28.1.0" + jest-runner "^28.1.0" + jest-util "^28.1.0" + jest-validate "^28.1.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^28.0.2" + pretty-format "^28.1.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.0.2.tgz#a543c90082560cd6cb14c5f28c39e6d4618ad7a6" - integrity sha512-33Rnf821Y54OAloav0PGNWHlbtEorXpjwchnToyyWbec10X74FOW7hGfvrXLGz7xOe2dz0uo9JVFAHHj/2B5pg== +jest-diff@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.0.tgz#77686fef899ec1873dbfbf9330e37dd429703269" + integrity sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA== dependencies: chalk "^4.0.0" diff-sequences "^28.0.2" jest-get-type "^28.0.2" - pretty-format "^28.0.2" + pretty-format "^28.1.0" jest-docblock@^28.0.2: version "28.0.2" @@ -1692,92 +1693,92 @@ jest-docblock@^28.0.2: dependencies: detect-newline "^3.0.0" -jest-each@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.0.2.tgz#fcf6843e9afe5a3f2d0b1c02aab1f41889d92f1d" - integrity sha512-/W5Wc0b+ipR36kDaLngdVEJ/5UYPOITK7rW0djTlCCQdMuWpCFJweMW4TzAoJ6GiRrljPL8FwiyOSoSHKrda2w== +jest-each@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.0.tgz#54ae66d6a0a5b1913e9a87588d26c2687c39458b" + integrity sha512-a/XX02xF5NTspceMpHujmOexvJ4GftpYXqr6HhhmKmExtMXsyIN/fvanQlt/BcgFoRKN4OCXxLQKth9/n6OPFg== dependencies: - "@jest/types" "^28.0.2" + "@jest/types" "^28.1.0" chalk "^4.0.0" jest-get-type "^28.0.2" - jest-util "^28.0.2" - pretty-format "^28.0.2" + jest-util "^28.1.0" + pretty-format "^28.1.0" -jest-environment-node@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.0.2.tgz#bd58e192b8f36a37e52c52fac812bd24b360c0b9" - integrity sha512-o9u5UHZ+NCuIoa44KEF0Behhsz/p1wMm0WumsZfWR1k4IVoWSt3aN0BavSC5dd26VxSGQvkrCnJxxOzhhUEG3Q== +jest-environment-node@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.0.tgz#6ed2150aa31babba0c488c5b4f4d813a585c68e6" + integrity sha512-gBLZNiyrPw9CSMlTXF1yJhaBgWDPVvH0Pq6bOEwGMXaYNzhzhw2kA/OijNF8egbCgDS0/veRv97249x2CX+udQ== dependencies: - "@jest/environment" "^28.0.2" - "@jest/fake-timers" "^28.0.2" - "@jest/types" "^28.0.2" + "@jest/environment" "^28.1.0" + "@jest/fake-timers" "^28.1.0" + "@jest/types" "^28.1.0" "@types/node" "*" - jest-mock "^28.0.2" - jest-util "^28.0.2" + jest-mock "^28.1.0" + jest-util "^28.1.0" jest-get-type@^28.0.2: version "28.0.2" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== -jest-haste-map@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.0.2.tgz#0c768f43680013cfd2a4471a3ec76c47bfb9e7c6" - integrity sha512-EokdL7l5uk4TqWGawwrIt8w3tZNcbeiRxmKGEURf42pl+/rWJy3sCJlon5HBhJXZTW978jk6600BLQOI7i25Ig== +jest-haste-map@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.0.tgz#6c1ee2daf1c20a3e03dbd8e5b35c4d73d2349cf0" + integrity sha512-xyZ9sXV8PtKi6NCrJlmq53PyNVHzxmcfXNVvIRHpHmh1j/HChC4pwKgyjj7Z9us19JMw8PpQTJsFWOsIfT93Dw== dependencies: - "@jest/types" "^28.0.2" + "@jest/types" "^28.1.0" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^28.0.2" - jest-util "^28.0.2" - jest-worker "^28.0.2" + jest-util "^28.1.0" + jest-worker "^28.1.0" micromatch "^4.0.4" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.0.2.tgz#cbde3d22d09bd690ececdc2ed01c608435328456" - integrity sha512-UGaSPYtxKXl/YKacq6juRAKmMp1z2os8NaU8PSC+xvNikmu3wF6QFrXrihMM4hXeMr9HuNotBrQZHmzDY8KIBQ== +jest-leak-detector@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.0.tgz#b65167776a8787443214d6f3f54935a4c73c8a45" + integrity sha512-uIJDQbxwEL2AMMs2xjhZl2hw8s77c3wrPaQ9v6tXJLGaaQ+4QrNJH5vuw7hA7w/uGT/iJ42a83opAqxGHeyRIA== dependencies: jest-get-type "^28.0.2" - pretty-format "^28.0.2" + pretty-format "^28.1.0" -jest-matcher-utils@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.0.2.tgz#eb461af204b6d0f05281e9228094f0ab7e9e8537" - integrity sha512-SxtTiI2qLJHFtOz/bySStCnwCvISAuxQ/grS+74dfTy5AuJw3Sgj9TVUvskcnImTfpzLoMCDJseRaeRrVYbAOA== +jest-matcher-utils@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz#2ae398806668eeabd293c61712227cb94b250ccf" + integrity sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ== dependencies: chalk "^4.0.0" - jest-diff "^28.0.2" + jest-diff "^28.1.0" jest-get-type "^28.0.2" - pretty-format "^28.0.2" + pretty-format "^28.1.0" -jest-message-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.0.2.tgz#f3cf36be72be4c4c4058cb34bd6673996d26dee3" - integrity sha512-knK7XyojvwYh1XiF2wmVdskgM/uN11KsjcEWWHfnMZNEdwXCrqB4sCBO94F4cfiAwCS8WFV6CDixDwPlMh/wdA== +jest-message-util@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.0.tgz#7e8f0b9049e948e7b94c2a52731166774ba7d0af" + integrity sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.0.2" + "@jest/types" "^28.1.0" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^28.0.2" + pretty-format "^28.1.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.0.2.tgz#059b500b34c1dd76474ebcdeccc249fe4dd0249f" - integrity sha512-vfnJ4zXRB0i24jOTGtQJyl26JKsgBKtqRlCnsrORZbG06FToSSn33h2x/bmE8XxqxkLWdZBRo+/65l8Vi3nD+g== +jest-mock@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.0.tgz#ccc7cc12a9b330b3182db0c651edc90d163ff73e" + integrity sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw== dependencies: - "@jest/types" "^28.0.2" + "@jest/types" "^28.1.0" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -1790,168 +1791,168 @@ jest-regex-util@^28.0.2: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-resolve-dependencies@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.0.3.tgz#76d8f59f7e76ba36d76a1677eeaaed24560da7e0" - integrity sha512-lCgHMm0/5p0qHemrOzm7kI6JDei28xJwIf7XOEcv1HeAVHnsON8B8jO/woqlU+/GcOXb58ymieYqhk3zjGWnvQ== +jest-resolve-dependencies@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.0.tgz#167becb8bee6e20b5ef4a3a728ec67aef6b0b79b" + integrity sha512-Ue1VYoSZquPwEvng7Uefw8RmZR+me/1kr30H2jMINjGeHgeO/JgrR6wxj2ofkJ7KSAA11W3cOrhNCbj5Dqqd9g== dependencies: jest-regex-util "^28.0.2" - jest-snapshot "^28.0.3" + jest-snapshot "^28.1.0" -jest-resolve@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.0.3.tgz#63f8e6b53e40f265b3ca9116195221dd43e3d16d" - integrity sha512-lfgjd9JhEjpjIN3HLUfdysdK+A7ePQoYmd7WL9DUEWqdnngb1rF56eee6iDXJxl/3eSolpP43VD7VrhjL3NsoQ== +jest-resolve@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.0.tgz#b1f32748a6cee7d1779c7ef639c0a87078de3d35" + integrity sha512-vvfN7+tPNnnhDvISuzD1P+CRVP8cK0FHXRwPAcdDaQv4zgvwvag2n55/h5VjYcM5UJG7L4TwE5tZlzcI0X2Lhw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" + jest-haste-map "^28.1.0" jest-pnp-resolver "^1.2.2" - jest-util "^28.0.2" - jest-validate "^28.0.2" + jest-util "^28.1.0" + jest-validate "^28.1.0" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.0.3.tgz#a8a409c685ad3081a44b149b2eb04bc4d47faaf9" - integrity sha512-4OsHMjBLtYUWCENucAQ4Za0jGfEbOFi/Fusv6dzUuaweqx8apb4+5p2LR2yvgF4StFulmxyC238tGLftfu+zBA== +jest-runner@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.0.tgz#aefe2a1e618a69baa0b24a50edc54fdd7e728eaa" + integrity sha512-FBpmuh1HB2dsLklAlRdOxNTTHKFR6G1Qmd80pVDvwbZXTriqjWqjei5DKFC1UlM732KjYcE6yuCdiF0WUCOS2w== dependencies: - "@jest/console" "^28.0.2" - "@jest/environment" "^28.0.2" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" + "@jest/console" "^28.1.0" + "@jest/environment" "^28.1.0" + "@jest/test-result" "^28.1.0" + "@jest/transform" "^28.1.0" + "@jest/types" "^28.1.0" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^28.0.2" - jest-environment-node "^28.0.2" - jest-haste-map "^28.0.2" - jest-leak-detector "^28.0.2" - jest-message-util "^28.0.2" - jest-resolve "^28.0.3" - jest-runtime "^28.0.3" - jest-util "^28.0.2" - jest-watcher "^28.0.2" - jest-worker "^28.0.2" + jest-environment-node "^28.1.0" + jest-haste-map "^28.1.0" + jest-leak-detector "^28.1.0" + jest-message-util "^28.1.0" + jest-resolve "^28.1.0" + jest-runtime "^28.1.0" + jest-util "^28.1.0" + jest-watcher "^28.1.0" + jest-worker "^28.1.0" source-map-support "0.5.13" throat "^6.0.1" -jest-runtime@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.0.3.tgz#02346a34de0ac61d23bdb0e8c035ad973d7bb087" - integrity sha512-7FtPUmvbZEHLOdjsF6dyHg5Pe4E0DU+f3Vvv8BPzVR7mQA6nFR4clQYLAPyJGnsUvN8WRWn+b5a5SVwnj1WaGg== +jest-runtime@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.0.tgz#4847dcb2a4eb4b0f9eaf41306897e51fb1665631" + integrity sha512-wNYDiwhdH/TV3agaIyVF0lsJ33MhyujOe+lNTUiolqKt8pchy1Hq4+tDMGbtD5P/oNLA3zYrpx73T9dMTOCAcg== dependencies: - "@jest/environment" "^28.0.2" - "@jest/fake-timers" "^28.0.2" - "@jest/globals" "^28.0.3" + "@jest/environment" "^28.1.0" + "@jest/fake-timers" "^28.1.0" + "@jest/globals" "^28.1.0" "@jest/source-map" "^28.0.2" - "@jest/test-result" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" + "@jest/test-result" "^28.1.0" + "@jest/transform" "^28.1.0" + "@jest/types" "^28.1.0" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.0.2" - jest-message-util "^28.0.2" - jest-mock "^28.0.2" + jest-haste-map "^28.1.0" + jest-message-util "^28.1.0" + jest-mock "^28.1.0" jest-regex-util "^28.0.2" - jest-resolve "^28.0.3" - jest-snapshot "^28.0.3" - jest-util "^28.0.2" + jest-resolve "^28.1.0" + jest-snapshot "^28.1.0" + jest-util "^28.1.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^28.0.3: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.0.3.tgz#9a768d0c617d070e87c1bd37240f22b344616154" - integrity sha512-nVzAAIlAbrMuvVUrS1YxmAeo1TfSsDDU+K5wv/Ow56MBp+L+Y71ksAbwRp3kGCgZAz4oOXcAMPAwtT9Yh1hlQQ== +jest-snapshot@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.0.tgz#4b74fa8816707dd10fe9d551c2c258e5a67b53b6" + integrity sha512-ex49M2ZrZsUyQLpLGxQtDbahvgBjlLPgklkqGM0hq/F7W/f8DyqZxVHjdy19QKBm4O93eDp+H5S23EiTbbUmHw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.0.2" - "@jest/transform" "^28.0.3" - "@jest/types" "^28.0.2" + "@jest/expect-utils" "^28.1.0" + "@jest/transform" "^28.1.0" + "@jest/types" "^28.1.0" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.0.2" + expect "^28.1.0" graceful-fs "^4.2.9" - jest-diff "^28.0.2" + jest-diff "^28.1.0" jest-get-type "^28.0.2" - jest-haste-map "^28.0.2" - jest-matcher-utils "^28.0.2" - jest-message-util "^28.0.2" - jest-util "^28.0.2" + jest-haste-map "^28.1.0" + jest-matcher-utils "^28.1.0" + jest-message-util "^28.1.0" + jest-util "^28.1.0" natural-compare "^1.4.0" - pretty-format "^28.0.2" + pretty-format "^28.1.0" semver "^7.3.5" -jest-util@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.0.2.tgz#8e22cdd6e0549e0a393055f0e2da7eacc334b143" - integrity sha512-EVdpIRCC8lzqhp9A0u0aAKlsFIzufK6xKxNK7awsnebTdOP4hpyQW5o6Ox2qPl8gbeUKYF+POLyItaND53kpGA== +jest-util@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.0.tgz#d54eb83ad77e1dd441408738c5a5043642823be5" + integrity sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA== dependencies: - "@jest/types" "^28.0.2" + "@jest/types" "^28.1.0" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.0.2.tgz#58bb7e826c054a8bb3b54c05f73758d96cf6dbef" - integrity sha512-nr0UOvCTtxP0YPdsk01Gk7e7c0xIiEe2nncAe3pj0wBfUvAykTVrMrdeASlAJnlEQCBuwN/GF4hKoCzbkGNCNw== +jest-validate@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.0.tgz#8a6821f48432aba9f830c26e28226ad77b9a0e18" + integrity sha512-Lly7CJYih3vQBfjLeANGgBSBJ7pEa18cxpQfQEq2go2xyEzehnHfQTjoUia8xUv4x4J80XKFIDwJJThXtRFQXQ== dependencies: - "@jest/types" "^28.0.2" + "@jest/types" "^28.1.0" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^28.0.2" leven "^3.1.0" - pretty-format "^28.0.2" + pretty-format "^28.1.0" -jest-watcher@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.0.2.tgz#649fa24df531d4071be5784b6274d494d788c88b" - integrity sha512-uIVJLpQ/5VTGQWBiBatHsi7jrCqHjHl0e0dFHMWzwuIfUbdW/muk0DtSr0fteY2T7QTFylv+7a5Rm8sBKrE12Q== +jest-watcher@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.0.tgz#aaa7b4164a4e77eeb5f7d7b25ede5e7b4e9c9aaf" + integrity sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA== dependencies: - "@jest/test-result" "^28.0.2" - "@jest/types" "^28.0.2" + "@jest/test-result" "^28.1.0" + "@jest/types" "^28.1.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^28.0.2" + jest-util "^28.1.0" string-length "^4.0.1" -jest-worker@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.0.2.tgz#75f7e5126541289ba02e9c1a67e46349ddb8141d" - integrity sha512-pijNxfjxT0tGAx+8+OzZ+eayVPCwy/rsZFhebmC0F4YnXu1EHPEPxg7utL3m5uX3EaFH1/jwDxGa1EbjJCST2g== +jest-worker@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.0.tgz#ced54757a035e87591e1208253a6e3aac1a855e5" + integrity sha512-ZHwM6mNwaWBR52Snff8ZvsCTqQsvhCxP/bT1I6T6DAnb6ygkshsyLQIMxFwHpYxht0HOoqt23JlC01viI7T03A== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^28.0.1: - version "28.0.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.0.3.tgz#92a7d6ee097b61de4ba2db7f3ab723e81a99b32d" - integrity sha512-uS+T5J3w5xyzd1KSJCGKhCo8WTJXbNl86f5SW11wgssbandJOVLRKKUxmhdFfmKxhPeksl1hHZ0HaA8VBzp7xA== + version "28.1.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.0.tgz#f420e41c8f2395b9a30445a97189ebb57593d831" + integrity sha512-TZR+tHxopPhzw3c3560IJXZWLNHgpcz1Zh0w5A65vynLGNcg/5pZ+VildAd7+XGOu6jd58XMY/HNn0IkZIXVXg== dependencies: - "@jest/core" "^28.0.3" + "@jest/core" "^28.1.0" import-local "^3.0.2" - jest-cli "^28.0.3" + jest-cli "^28.1.0" js-tokens@^4.0.0: version "4.0.0" @@ -2241,10 +2242,10 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== -pretty-format@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.0.2.tgz#6a24d71cbb61a5e5794ba7513fe22101675481bc" - integrity sha512-UmGZ1IERwS3yY35LDMTaBUYI1w4udZDdJGGT/DqQeKG9ZLDn7/K2Jf/JtYSRiHCCKMHvUA+zsEGSmHdpaVp1yw== +pretty-format@^28.1.0: + version "28.1.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.0.tgz#8f5836c6a0dfdb834730577ec18029052191af55" + integrity sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q== dependencies: "@jest/schemas" "^28.0.2" ansi-regex "^5.0.1" From 8b7800edbcc762589981d18346e71e058352e6a2 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 12 May 2022 10:03:44 -0400 Subject: [PATCH 082/262] Bump deps --- package.json | 4 +- test/js/haml/script.test.js | 4 - test/js/ruby/nodes/hashes.test.js | 2 +- test/js/ruby/nodes/patterns.test.js | 14 +- test/js/ruby/nodes/strings.test.js | 2 +- yarn.lock | 375 +++++++++++----------------- 6 files changed, 155 insertions(+), 246 deletions(-) diff --git a/package.json b/package.json index dc5f6f49..99cf5779 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,9 @@ "prettier": ">=2.3.0" }, "devDependencies": { - "eslint": "^8.1.0", + "eslint": "^8.15.0", "eslint-config-prettier": "^8.0.0", - "husky": "^7.0.0", + "husky": "^8.0.1", "jest": "^28.0.1", "pretty-quick": "^3.1.2" }, diff --git a/test/js/haml/script.test.js b/test/js/haml/script.test.js index bca36c45..510c30c0 100644 --- a/test/js/haml/script.test.js +++ b/test/js/haml/script.test.js @@ -15,10 +15,6 @@ describe("script", () => { expect(content).toMatchFormat(); }); - test.skip("escape", () => { - expect(haml(`& I like #{"cheese & crackers"}`)).toMatchFormat(); - }); - test("escape with interpolate", () => { expect(haml(`&= "I like cheese & crackers"`)).toMatchFormat(); }); diff --git a/test/js/ruby/nodes/hashes.test.js b/test/js/ruby/nodes/hashes.test.js index 8ecd8b17..7e8478a5 100644 --- a/test/js/ruby/nodes/hashes.test.js +++ b/test/js/ruby/nodes/hashes.test.js @@ -81,7 +81,7 @@ describe("hash", () => { describe("dynamic string keys", () => { test("basic", () => { - expect(`{ "foo": "bar" }`).toMatchFormat(); + expect(`{ "foo": "bar" }`).toChangeFormat(`{ foo: "bar" }`); }); test("with interpolation", () => { diff --git a/test/js/ruby/nodes/patterns.test.js b/test/js/ruby/nodes/patterns.test.js index deb8aed6..74fbc04d 100644 --- a/test/js/ruby/nodes/patterns.test.js +++ b/test/js/ruby/nodes/patterns.test.js @@ -23,7 +23,7 @@ describe("patterns", () => { "*c, d, e", "0, [1, _] => bar", "^bar", - "x: 0.. => px, **rest", + "{ x: 0.. => px, **rest }", "**rest", "SuperPoint[x: 0.. => px]", "a, b if b == a * 2" @@ -79,18 +79,6 @@ describe("patterns", () => { expect(content).toMatchFormat(); }); - test("with comments in an array pattern", () => { - const content = ruby(` - case foo - in foo:, # foo comment - bar: # bar comment - bar - end - `); - - expect(content).toMatchFormat(); - }); - test("multiple clauses", () => { const content = ruby(` case foo diff --git a/test/js/ruby/nodes/strings.test.js b/test/js/ruby/nodes/strings.test.js index 34e90cc1..4e0223f3 100644 --- a/test/js/ruby/nodes/strings.test.js +++ b/test/js/ruby/nodes/strings.test.js @@ -239,7 +239,7 @@ describe("strings", () => { }); test("%s literal as hash key", () => { - expect("{ %s[abc] => d }").toChangeFormat(`{ "abc": d }`); + expect("{ %s[abc] => d }").toChangeFormat(`{ abc: d }`); }); test("symbol literal as a hash key", () => { diff --git a/yarn.lock b/yarn.lock index 9af83b72..10f732ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,11 +3,12 @@ "@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== dependencies: - "@jridgewell/trace-mapping" "^0.3.0" + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": version "7.16.7" @@ -16,79 +17,49 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/compat-data@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" - integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== +"@babel/compat-data@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" + integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== -"@babel/core@^7.11.6": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe" - integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw== +"@babel/core@^7.11.6", "@babel/core@^7.12.3": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.10.tgz#74ef0fbf56b7dfc3f198fc2d927f4f03e12f4b05" + integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" - "@babel/helper-compilation-targets" "^7.17.7" + "@babel/generator" "^7.17.10" + "@babel/helper-compilation-targets" "^7.17.10" "@babel/helper-module-transforms" "^7.17.7" "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.9" + "@babel/parser" "^7.17.10" "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/traverse" "^7.17.10" + "@babel/types" "^7.17.10" 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/core@^7.12.3": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" - integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.7" - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.8" - "@babel/parser" "^7.17.8" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - -"@babel/generator@^7.17.3", "@babel/generator@^7.17.7", "@babel/generator@^7.7.2": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" - integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== - dependencies: - "@babel/types" "^7.17.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" - integrity sha512-rAdDousTwxbIxbz5I7GEQ3lUip+xVCXooZNbsydCWs3xA7ZsYOv+CFRdzGxRX78BmQHu9B1Eso59AOZQOJDEdQ== +"@babel/generator@^7.17.10", "@babel/generator@^7.7.2": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189" + integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.17.10" + "@jridgewell/gen-mapping" "^0.1.0" jsesc "^2.5.1" - source-map "^0.5.0" -"@babel/helper-compilation-targets@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" - integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== +"@babel/helper-compilation-targets@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe" + integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ== dependencies: - "@babel/compat-data" "^7.17.7" + "@babel/compat-data" "^7.17.10" "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" + browserslist "^4.20.2" semver "^6.3.0" "@babel/helper-environment-visitor@^7.16.7": @@ -98,15 +69,6 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" - integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== - dependencies: - "@babel/helper-get-function-arity" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - "@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" @@ -115,13 +77,6 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.17.0" -"@babel/helper-get-function-arity@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" - integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== - dependencies: - "@babel/types" "^7.16.7" - "@babel/helper-hoist-variables@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" @@ -179,15 +134,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== -"@babel/helpers@^7.17.8": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.8.tgz#288450be8c6ac7e4e44df37bcc53d345e07bc106" - integrity sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - "@babel/helpers@^7.17.9": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" @@ -198,23 +144,18 @@ "@babel/types" "^7.17.0" "@babel/highlight@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" - integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" + integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== dependencies: "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.17.8": - version "7.17.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" - integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== - -"@babel/parser@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef" - integrity sha512-vqUSBLP8dQHFPdPi9bc5GK9vRkYHJ49fsZdtoJ8EQ8ibpwk5rPKfvNIwChB0KVXcIjcepEBBd2VHC5r9Gy8ueg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.10": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" + integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -301,9 +242,9 @@ "@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== + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.10.tgz#80031e6042cad6a95ed753f672ebd23c30933195" + integrity sha512-xJefea1DWXW09pW4Tm9bjwVlPDyYA2it3fWlmEjpYz6alPvTUjL0EOzNzI/FEOyI3r4/J7uVH5UqKgl1TQ5hqQ== dependencies: "@babel/helper-plugin-utils" "^7.16.7" @@ -316,42 +257,26 @@ "@babel/parser" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/traverse@^7.17.3", "@babel/traverse@^7.7.2": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" - integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== +"@babel/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.2": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" + integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.3" - "@babel/types" "^7.17.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.9.tgz#1f9b207435d9ae4a8ed6998b2b82300d83c37a0d" - integrity sha512-PQO8sDIJ8SIwipTPiR71kJQCKQYB5NGImbOviK8K+kg5xkNSYXLBupuX9QhatFowrsvo9Hj8WgArg3W7ijNAQw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.9" + "@babel/generator" "^7.17.10" "@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.17.9" - "@babel/types" "^7.17.0" + "@babel/parser" "^7.17.10" + "@babel/types" "^7.17.10" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== +"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.17.10", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.17.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" + integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -361,19 +286,19 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.2.tgz#4989b9e8c0216747ee7cca314ae73791bb281aae" - integrity sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg== +"@eslint/eslintrc@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.3.tgz#fcaa2bcef39e13d6e9e7f6271f4cc7cae1174886" + integrity sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.1" + espree "^9.3.2" globals "^13.9.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" - minimatch "^3.0.4" + minimatch "^3.1.2" strip-json-comments "^3.1.1" "@humanwhocodes/config-array@^0.9.2": @@ -598,36 +523,41 @@ "@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" + "@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + version "3.0.7" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" + integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== +"@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/trace-mapping@^0.3.0": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" - integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.13" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" + integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== -"@jridgewell/trace-mapping@^0.3.7": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== +"@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" + integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" "@sinclair/typebox@^0.23.3": - version "0.23.4" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.4.tgz#6ff93fd2585ce44f7481c9ff6af610fbb5de98a4" - integrity sha512-0/WqSvpVbCBAV1yPeko7eAczKbs78dNVAaX14quVlwOb2wxfKuXCx91h4NrEfkYK9zEnyVSW4JVI/trP3iS+Qg== + version "0.23.5" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d" + integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -670,9 +600,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - 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== + version "7.17.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314" + integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== dependencies: "@babel/types" "^7.3.0" @@ -708,9 +638,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.25" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.25.tgz#527051f3c2f77aa52e5dc74e45a3da5fb2301448" - integrity sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w== + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.32.tgz#51d59d7a90ef2d0ae961791e0900cad2393a0149" + integrity sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw== "@types/prettier@^2.1.5": version "2.6.0" @@ -734,15 +664,15 @@ dependencies: "@types/yargs-parser" "*" -acorn-jsx@^5.3.1: +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@^8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +acorn@^8.7.1: + version "8.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" @@ -900,15 +830,15 @@ braces@^3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.17.5: - version "4.20.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" - integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== +browserslist@^4.20.2: + version "4.20.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" + integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== dependencies: - caniuse-lite "^1.0.30001317" - electron-to-chromium "^1.4.84" + caniuse-lite "^1.0.30001332" + electron-to-chromium "^1.4.118" escalade "^3.1.1" - node-releases "^2.0.2" + node-releases "^2.0.3" picocolors "^1.0.0" bser@2.1.1: @@ -938,10 +868,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001317: - version "1.0.30001325" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001325.tgz#2b4ad19b77aa36f61f2eaf72e636d7481d55e606" - integrity sha512-sB1bZHjseSjDtijV1Hb7PB2Zd58Kyx+n/9EotvZ4Qcz2K3d0lWB8dB4nb8wN/TsOGFq3UuAm0zQZNQ4SoR7TrQ== +caniuse-lite@^1.0.30001332: + version "1.0.30001340" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001340.tgz#029a2f8bfc025d4820fafbfaa6259fd7778340c7" + integrity sha512-jUNz+a9blQTQVu4uFcn17uAD8IDizPzQkIKh3LCJfg9BkyIqExYYdyc/ZSlWUSKb8iYiXxKsxbv4zYSvkqjrxw== chalk@^2.0.0: version "2.4.2" @@ -974,9 +904,9 @@ char-regex@^1.0.2: 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== + version "3.3.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.1.tgz#58331f6f472a25fe3a50a351ae3052936c2c7f32" + integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg== cjs-module-lexer@^1.0.0: version "1.2.2" @@ -1086,10 +1016,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -electron-to-chromium@^1.4.84: - version "1.4.103" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz#abfe376a4d70fa1e1b4b353b95df5d6dfd05da3a" - integrity sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg== +electron-to-chromium@^1.4.118: + version "1.4.137" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" + integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== emittery@^0.10.2: version "0.10.2" @@ -1165,12 +1095,12 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.1.0: - version "8.14.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.14.0.tgz#62741f159d9eb4a79695b28ec4989fcdec623239" - integrity sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw== +eslint@^8.15.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.15.0.tgz#fea1d55a7062da48d82600d2e0974c55612a11e9" + integrity sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA== dependencies: - "@eslint/eslintrc" "^1.2.2" + "@eslint/eslintrc" "^1.2.3" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -1181,7 +1111,7 @@ eslint@^8.1.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.1" + espree "^9.3.2" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -1197,7 +1127,7 @@ eslint@^8.1.0: json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" - minimatch "^3.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.1" regexpp "^3.2.0" @@ -1206,13 +1136,13 @@ eslint@^8.1.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.1.tgz#8793b4bc27ea4c778c19908e0719e7b8f4115bcd" - integrity sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ== +espree@^9.3.2: + version "9.3.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" + integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== dependencies: - acorn "^8.7.0" - acorn-jsx "^5.3.1" + acorn "^8.7.1" + acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" esprima@^4.0.0: @@ -1419,9 +1349,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.6.0, globals@^13.9.0: - version "13.13.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.13.0.tgz#ac32261060d8070e2719dd6998406e27d2b5727b" - integrity sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A== + version "13.15.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" + integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== dependencies: type-fest "^0.20.2" @@ -1462,10 +1392,10 @@ 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== -husky@^7.0.0: - version "7.0.4" - resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535" - integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== +husky@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" + integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== ignore@^5.1.4, ignore@^5.2.0: version "5.2.0" @@ -1512,9 +1442,9 @@ is-arrayish@^0.2.1: integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== dependencies: has "^1.0.3" @@ -1561,9 +1491,9 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - 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== + version "5.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f" + integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" @@ -1994,7 +1924,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@^2.1.2, json5@^2.2.1: +json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== @@ -2073,7 +2003,7 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4: +minimatch@^3.0.4, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -2111,10 +2041,10 @@ 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.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" - integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== +node-releases@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" + integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== normalize-path@^3.0.0: version "3.0.0" @@ -2286,9 +2216,9 @@ punycode@^2.1.0: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== react-is@^18.0.0: - version "18.0.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.0.0.tgz#026f6c4a27dbe33bf4a35655b9e1327c4e55e3f5" - integrity sha512-yUcBYdBBbo3QiPsgYDcfQcIkGZHfxOaoE6HLSnr1sPzMhdyxusbfKOSUbSd/ocGi32dxcj366PsTj+5oggeKKw== + version "18.1.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" + integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== regexpp@^3.2.0: version "3.2.0" @@ -2390,11 +2320,6 @@ source-map-support@0.5.13: 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 sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -2629,9 +2554,9 @@ yargs-parser@^21.0.0: integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== yargs@^17.3.1: - version "17.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.1.tgz#ebe23284207bb75cee7c408c33e722bfb27b5284" - integrity sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g== + version "17.5.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.0.tgz#2706c5431f8c119002a2b106fc9f58b9bb9097a3" + integrity sha512-3sLxVhbAB5OC8qvVRebCLWuouhwh/rswsiDYx3WGxajUk/l4G20SKfrKKFeNIHboUFt2JFgv2yfn+5cgOr/t5A== dependencies: cliui "^7.0.2" escalade "^3.1.1" From 7bed720f8f05f2be2c4abb4cec9758b3fbc71e2f Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 12 May 2022 10:13:26 -0400 Subject: [PATCH 083/262] Support passing rubyPlugins options --- .github/workflows/main.yml | 8 ++++---- README.md | 11 ++++++----- src/parseSync.js | 20 ++++++++++++-------- src/plugin.js | 21 +++++++++++++++------ src/server.rb | 5 +++++ test/js/globalSetup.js | 2 +- 6 files changed, 43 insertions(+), 24 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 35027e8e..bcc38d69 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: ruby-version: ${{ matrix.ruby }} - uses: actions/setup-node@v2 with: - node-version: 12.x + node-version: 16.x cache: yarn - run: yarn install --frozen-lockfile - run: yarn test @@ -46,7 +46,7 @@ jobs: ruby-version: "3.0" - uses: actions/setup-node@v2 with: - node-version: 12.x + node-version: 16.x cache: yarn - run: yarn install --frozen-lockfile - run: yarn checkFormat @@ -76,7 +76,7 @@ jobs: - run: gem install syntax_tree syntax_tree-haml syntax_tree-rbs - uses: actions/setup-node@v2 with: - node-version: 12.x + node-version: 16.x cache: yarn - run: yarn install --frozen-lockfile - run: yarn pack @@ -108,7 +108,7 @@ jobs: ruby-version: "3.1" - uses: actions/setup-node@v2 with: - node-version: 12.x + node-version: 16.x cache: yarn - run: yarn install --frozen-lockfile - run: gem build -o prettier.gem diff --git a/README.md b/README.md index 5f6abff4..a9d1f73a 100644 --- a/README.md +++ b/README.md @@ -134,11 +134,12 @@ The `prettier` executable is now installed and ready for use: Below are the options (from [`src/plugin.js`](src/plugin.js)) that `@prettier/plugin-ruby` currently supports: -| API Option | CLI Option | Default | Description | -| --------------- | ------------------ | :-----: | --------------------------------------------------------------------------------------------------- | -| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | -| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | -| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | +| API Option | CLI Option | Default | Description | +| --------------- | ------------------ | :-----: | --------------------------------------------------------------------------------------------------------------------------- | +| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | +| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | +| `rubyPlugins` | `--ruby-plugins` | `""` | The comma-separated list of plugins to require. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | +| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | Any of these can be added to your existing [prettier configuration file](https://prettier.io/docs/en/configuration.html). For example: diff --git a/src/parseSync.js b/src/parseSync.js index 9b2d08dc..343ef151 100644 --- a/src/parseSync.js +++ b/src/parseSync.js @@ -63,7 +63,7 @@ function getInfoFilepath() { // server with that filepath as an argument, then spawn another process that // will read that information in order to enable us to connect to it in the // spawnSync function. -function spawnServer() { +function spawnServer(opts) { const tempDir = mkdtempSync(path.join(os.tmpdir(), "prettier-plugin-ruby-")); const filepath = getInfoFilepath(); @@ -114,11 +114,15 @@ function spawnServer() { }; } - const server = spawn("ruby", [serverRbPath, filepath], { - env: Object.assign({}, process.env, { LANG: getLang() }), - detached: true, - stdio: "inherit" - }); + const server = spawn( + "ruby", + [serverRbPath, `--plugins=${opts.rubyPlugins}`, filepath], + { + env: Object.assign({}, process.env, { LANG: getLang() }), + detached: true, + stdio: "inherit" + } + ); server.unref(); process.on("exit", () => { @@ -171,9 +175,9 @@ function runningInPnPZip() { // like it) here since Prettier requires the results of `parse` to be // synchronous and Node.js does not offer a mechanism for synchronous socket // requests. -function parseSync(parser, source) { +function parseSync(parser, source, opts) { if (!parserArgs) { - parserArgs = spawnServer(); + parserArgs = spawnServer(opts); } const response = spawnSync(parserArgs.cmd, parserArgs.args, { diff --git a/src/plugin.js b/src/plugin.js index 5d37ef8b..9dcda0d3 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -81,8 +81,8 @@ const plugin = { ], parsers: { ruby: { - parse(text) { - return parseSync("ruby", text); + parse(text, _parsers, opts) { + return parseSync("ruby", text, opts); }, astFormat: "ruby", hasPragma(text) { @@ -96,8 +96,8 @@ const plugin = { } }, rbs: { - parse(text) { - return parseSync("rbs", text); + parse(text, _parsers, opts) { + return parseSync("rbs", text, opts); }, astFormat: "rbs", hasPragma(text) { @@ -111,8 +111,8 @@ const plugin = { } }, haml: { - parse(text) { - return parseSync("haml", text); + parse(text, _parsers, opts) { + return parseSync("haml", text, opts); }, astFormat: "haml", hasPragma(text) { @@ -152,6 +152,15 @@ const plugin = { } } }, + options: { + rubyPlugins: { + type: "string", + category: "Ruby", + default: "", + description: "The comma-separated list of plugins to require", + since: "3.1.0" + } + }, defaultOptions: { printWidth: 80, tabWidth: 2 diff --git a/src/server.rb b/src/server.rb index 8da4c065..78eab145 100644 --- a/src/server.rb +++ b/src/server.rb @@ -10,6 +10,11 @@ require "syntax_tree/haml" require "syntax_tree/rbs" +# First, require all of the plugins that the user specified. +ARGV.shift[/^--plugins=(.*)$/, 1] + .split(",") + .each { |plugin| require "syntax_tree/#{plugin}" } + # Make sure we trap these signals to be sure we get the quit command coming from # the parent node process quit = false diff --git a/test/js/globalSetup.js b/test/js/globalSetup.js index 8af21f27..6e316c5b 100644 --- a/test/js/globalSetup.js +++ b/test/js/globalSetup.js @@ -17,7 +17,7 @@ function globalSetup() { const filepath = getInfoFilepath(); const server = spawn( "ruby", - [path.join(__dirname, "../../src/server.rb"), filepath], + [path.join(__dirname, "../../src/server.rb"), "--plugins=", filepath], { env: Object.assign({}, process.env, { LANG: getLang() }), detached: true, From cf7659f1e4680eb8febb4b2cdd15f5652502caef Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 12 May 2022 10:27:20 -0400 Subject: [PATCH 084/262] Bump to v3.1.0 --- CHANGELOG.md | 6 ++++++ package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3167848e..4a1f13e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [3.1.0] - 2022-05-12 + +### Added + +- [#1224](https://github.com/prettier/plugin-ruby/pull/1224) - kddnewton - Support passing the `rubyPlugins` option to configure Syntax Tree. + ## [3.0.0] - 2022-05-04 ### Added diff --git a/package.json b/package.json index 99cf5779..9a1cd976 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "3.0.0", + "version": "3.1.0", "description": "prettier plugin for the Ruby programming language", "main": "src/plugin.js", "scripts": { From 815e9bb5c169dfee46c3e6188a0b60c775cd4d02 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 12 May 2022 10:30:56 -0400 Subject: [PATCH 085/262] Update rubocop config --- CHANGELOG.md | 6 ++++++ package.json | 2 +- rubocop.yml | 34 +++++++++++++++++++++++++++------- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a1f13e3..f52d9dcb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [3.1.1] - 2022-05-12 + +### Changed + +- [#1125](https://github.com/prettier/plugin-ruby/pull/1225) - kddnewton - Update the bundled rubocop config to be in sync with Syntax Tree. + ## [3.1.0] - 2022-05-12 ### Added diff --git a/package.json b/package.json index 9a1cd976..cec00fbb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "3.1.0", + "version": "3.1.1", "description": "prettier plugin for the Ruby programming language", "main": "src/plugin.js", "scripts": { diff --git a/rubocop.yml b/rubocop.yml index db663ad0..eff5aede 100644 --- a/rubocop.yml +++ b/rubocop.yml @@ -1,6 +1,5 @@ # Disabling all Layout/* rules, as they're unnecessary when the user is using -# prettier to handle all of the formatting. - +# Syntax Tree to handle all of the formatting. Layout: Enabled: false @@ -16,6 +15,16 @@ Layout/LineLength: Style/MultilineIfModifier: Enabled: false +# Syntax Tree will expand empty methods to put the end keyword on the subsequent +# line to reduce git diff noise. +Style/EmptyMethod: + EnforcedStyle: expanded + +# lambdas that are constructed with the lambda method call cannot be safely +# turned into lambda literals without removing a method call. +Style/Lambda: + Enabled: false + # When method chains with multiple blocks are chained together, rubocop will let # them pass if they're using braces but not if they're using do and end # keywords. Because we will break individual blocks down to using keywords if @@ -23,12 +32,28 @@ Style/MultilineIfModifier: Style/MultilineBlockChain: Enabled: false +# Syntax Tree by default uses double quotes, so changing the configuration here +# to match that. +Style/StringLiterals: + EnforcedStyle: double_quotes + +Style/StringLiteralsInInterpolation: + EnforcedStyle: double_quotes + +Style/QuotedSymbols: + EnforcedStyle: double_quotes + +# We let users have a little more freedom with symbol and words arrays. If the +# user only has an individual item like ["value"] then we don't bother +# converting it because it ends up being just noise. Style/SymbolArray: Enabled: false Style/WordArray: Enabled: false +# We don't support trailing commas in Syntax Tree by default, so just turning +# these off for now. Style/TrailingCommaInArguments: Enabled: false @@ -37,8 +62,3 @@ Style/TrailingCommaInArrayLiteral: Style/TrailingCommaInHashLiteral: Enabled: false - -# lambdas that are constructed with the lambda method call cannot be safely -# turned into lambda literals without removing a method call. -Style/Lambda: - Enabled: false From 02a2294d5d7ce2455644e1b3ebc84d2f6f77a539 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 12 May 2022 10:54:36 -0400 Subject: [PATCH 086/262] Document minimum ruby version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a9d1f73a..def987cf 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ end ## Getting started -To run `prettier` with the Ruby plugin, you're going to need [`ruby`](https://www.ruby-lang.org/en/documentation/installation/) (version `2.5` or newer) and [`node`](https://nodejs.org/en/download/) (version `8.3` or newer). If you're integrating with a project that is not already using `prettier`, you should use the Ruby gem. Otherwise you can use the `npm` package directly. +To run `prettier` with the Ruby plugin, you're going to need [`ruby`](https://www.ruby-lang.org/en/documentation/installation/) (version `2.7.3` or newer) and [`node`](https://nodejs.org/en/download/) (version `8.3` or newer). If you're integrating with a project that is not already using `prettier`, you should use the Ruby gem. Otherwise you can use the `npm` package directly. Note that currently the editor integrations work best with the `npm` package, as most of the major editor plugins expect a `node_modules` directory. You can get them to work with the Ruby gem, but it requires manually configuring the paths. From 38f62b7cb6d41e2d9ae23d8fe33c320dcc9ecf41 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 13 May 2022 22:16:28 -0400 Subject: [PATCH 087/262] Pass printwidth through to server --- README.md | 2 +- src/parseSync.js | 2 +- src/server.rb | 19 +++++++++++++++---- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index def987cf..23869966 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ yarn add --dev prettier @prettier/plugin-ruby You'll also need to add the necessary Ruby dependencies. You can do this by running: ```bash -gem install bundler syntax_tree syntax_tree-haml syntax_tree-rbs +gem install bundler prettier_print syntax_tree syntax_tree-haml syntax_tree-rbs ``` The `prettier` executable is now installed and ready for use: diff --git a/src/parseSync.js b/src/parseSync.js index 343ef151..c39467bf 100644 --- a/src/parseSync.js +++ b/src/parseSync.js @@ -181,7 +181,7 @@ function parseSync(parser, source, opts) { } const response = spawnSync(parserArgs.cmd, parserArgs.args, { - input: `${parser}|${source}`, + input: `${parser}|${opts.printWidth}|${source}`, maxBuffer: 15 * 1024 * 1024 }); diff --git a/src/server.rb b/src/server.rb index 78eab145..ab4496b6 100644 --- a/src/server.rb +++ b/src/server.rb @@ -6,6 +6,7 @@ require "fileutils" require "open3" +require "prettier_print" require "syntax_tree" require "syntax_tree/haml" require "syntax_tree/rbs" @@ -73,7 +74,8 @@ # Start up a new thread that will handle each successive connection. Thread.new(server.accept_nonblock) do |socket| - parser, source = socket.read.force_encoding("UTF-8").split("|", 2) + parser, width, source = + socket.read.force_encoding("UTF-8").split("|", 3) source.each_line do |line| case line @@ -90,16 +92,25 @@ end end + maxwidth = width.to_i response = case parser when "ping" "pong" when "ruby" - SyntaxTree.format(source) + formatter = SyntaxTree::Formatter.new(source, [], maxwidth) + SyntaxTree.parse(source).format(formatter) + formatter.flush + formatter.output.join when "rbs" - SyntaxTree::RBS.format(source) + formatter = SyntaxTree::RBS::Formatter.new(source, [], maxwidth) + SyntaxTree::RBS.parse(source).format(formatter) + formatter.flush + formatter.output.join when "haml" - SyntaxTree::Haml.format(source) + PrettierPrint.format(+"", maxwidth) do |q| + SyntaxTree::Haml.parse(source).format(q) + end end if response From cbdc6083e2afe812dab6230a7202ef4e171df239 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 13 May 2022 22:34:33 -0400 Subject: [PATCH 088/262] Bump to v3.1.2 --- CHANGELOG.md | 11 ++++++++++- package.json | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f52d9dcb..218eca5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [3.1.2] - 2022-05-13 + +### Changed + +- [#1127](https://github.com/prettier/plugin-ruby/issues/1227) - mscrivo, kddnewton - Support passing the `printWidth` option. + ## [3.1.1] - 2022-05-12 ### Changed @@ -1237,7 +1243,10 @@ would previously result in `array[]`, but now prints properly. - Initial release 🎉 -[unreleased]: https://github.com/prettier/plugin-ruby/compare/v3.0.0...HEAD +[unreleased]: https://github.com/prettier/plugin-ruby/compare/v3.1.2...HEAD +[3.1.2]: https://github.com/prettier/plugin-ruby/compare/v3.1.1...v3.1.2 +[3.1.1]: https://github.com/prettier/plugin-ruby/compare/v3.1.0...v3.1.1 +[3.1.0]: https://github.com/prettier/plugin-ruby/compare/v3.0.0...v3.1.0 [3.0.0]: https://github.com/prettier/plugin-ruby/compare/v2.1.0...v3.0.0 [2.1.0]: https://github.com/prettier/plugin-ruby/compare/v2.0.0...v2.1.0 [2.0.0]: https://github.com/prettier/plugin-ruby/compare/v2.0.0-rc4...v2.0.0 diff --git a/package.json b/package.json index cec00fbb..b9a37b9e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "3.1.1", + "version": "3.1.2", "description": "prettier plugin for the Ruby programming language", "main": "src/plugin.js", "scripts": { From 73b4f0e0b249eae700a5f883bc3ca053c00b0ac4 Mon Sep 17 00:00:00 2001 From: Boris Petrov Date: Thu, 26 May 2022 09:03:44 +0300 Subject: [PATCH 089/262] Disable the single- vs double-quotes rules in `rubocop.yml` --- rubocop.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rubocop.yml b/rubocop.yml index eff5aede..64316d0c 100644 --- a/rubocop.yml +++ b/rubocop.yml @@ -32,16 +32,16 @@ Style/Lambda: Style/MultilineBlockChain: Enabled: false -# Syntax Tree by default uses double quotes, so changing the configuration here -# to match that. +# Disable the single- vs double-quotes rules as these depend on whether the user +# has added or not `plugin/single_quotes` for `syntax_tree` Style/StringLiterals: - EnforcedStyle: double_quotes + Enabled: false Style/StringLiteralsInInterpolation: - EnforcedStyle: double_quotes + Enabled: false Style/QuotedSymbols: - EnforcedStyle: double_quotes + Enabled: false # We let users have a little more freedom with symbol and words arrays. If the # user only has an individual item like ["value"] then we don't bother @@ -52,8 +52,8 @@ Style/SymbolArray: Style/WordArray: Enabled: false -# We don't support trailing commas in Syntax Tree by default, so just turning -# these off for now. +# Disable the trailing-comma rules as these depend on whether the user has added +# or not `plugin/trailing_comma` for `syntax_tree` Style/TrailingCommaInArguments: Enabled: false From 2e1413090ea072c1ad47de4ec7a106d74fa1ce81 Mon Sep 17 00:00:00 2001 From: Ryan Seys Date: Tue, 31 May 2022 13:36:21 -0700 Subject: [PATCH 090/262] Fix some tests failing on main --- test/js/ruby/nodes/patterns.test.js | 109 ++++++++++++++++++++++++++-- test/js/ruby/nodes/strings.test.js | 4 +- 2 files changed, 104 insertions(+), 9 deletions(-) diff --git a/test/js/ruby/nodes/patterns.test.js b/test/js/ruby/nodes/patterns.test.js index 74fbc04d..6e5117fc 100644 --- a/test/js/ruby/nodes/patterns.test.js +++ b/test/js/ruby/nodes/patterns.test.js @@ -15,18 +15,13 @@ describe("patterns", () => { "-1..1", "Integer", "bar", - "_, _", "0 | 1 | 2", "Integer => bar", "Object[0, *bar, 1]", - "a, b, *c, d, e", - "*c, d, e", - "0, [1, _] => bar", "^bar", "{ x: 0.. => px, **rest }", "**rest", - "SuperPoint[x: 0.. => px]", - "a, b if b == a * 2" + "SuperPoint[x: 0.. => px]" ]; if (atLeastVersion("3.0")) { @@ -56,6 +51,96 @@ describe("patterns", () => { expect(content).toMatchFormat(); }); + test("a, b, *c, d, e", () => { + const content = ruby(` + case foo + in a, b, *c, d, e + baz + end + `); + + const expectedContent = ruby(` + case foo + in [a, b, *c, d, e] + baz + end + `); + + expect(content).toChangeFormat(expectedContent); + }); + + test("0, [1, _] => bar", () => { + const content = ruby(` + case foo + in 0, [1, _] => bar + baz + end + `); + + const expectedContent = ruby(` + case foo + in [0, [1, _] => bar] + baz + end + `); + + expect(content).toChangeFormat(expectedContent); + }); + + test("*c, d, e", () => { + const content = ruby(` + case foo + in *c, d, e + baz + end + `); + + const expectedContent = ruby(` + case foo + in [*c, d, e] + baz + end + `); + + expect(content).toChangeFormat(expectedContent); + }); + + test("_, _", () => { + const content = ruby(` + case foo + in _, _ + baz + end + `); + + const expectedContent = ruby(` + case foo + in [_, _] + baz + end + `); + + expect(content).toChangeFormat(expectedContent); + }); + + test("a, b if b == a * 2", () => { + const content = ruby(` + case foo + in a, b if b == a * 2 + baz + end + `); + + const expectedContent = ruby(` + case foo + in [a, b] if b == a * 2 + baz + end + `); + + expect(content).toChangeFormat(expectedContent); + }); + test("with a single array element", () => { const content = ruby(` case value @@ -76,7 +161,17 @@ describe("patterns", () => { end `); - expect(content).toMatchFormat(); + const expectedContent = ruby(` + case foo + in [ + 1, # 1 comment + 2 + ] # 2 comment + bar + end + `); + + expect(content).toChangeFormat(expectedContent); }); test("multiple clauses", () => { diff --git a/test/js/ruby/nodes/strings.test.js b/test/js/ruby/nodes/strings.test.js index 4e0223f3..e085a62b 100644 --- a/test/js/ruby/nodes/strings.test.js +++ b/test/js/ruby/nodes/strings.test.js @@ -88,8 +88,8 @@ describe("strings", () => { expect(`"abc's"`).toMatchFormat(); }); - test("double quotes get escaped", () => { - expect(`'"foo"'`).toChangeFormat(`"\\"foo\\""`); + test("double quotes do not get escaped if it results in more quotes", () => { + expect(`'"foo"'`).toMatchFormat(); }); describe("escape sequences", () => { From eb43c9c25f40523eba07eecd8adb56418562fa5f Mon Sep 17 00:00:00 2001 From: Ryan Seys Date: Tue, 31 May 2022 14:47:52 -0700 Subject: [PATCH 091/262] Bump syntax_tree to >= 2.7.1 --- prettier.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prettier.gemspec b/prettier.gemspec index c2b45719..e5ad4985 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -26,7 +26,7 @@ Gem::Specification.new do |spec| spec.executables = "rbprettier" spec.require_paths = %w[lib] - spec.add_dependency "syntax_tree", ">= 2.3.1" + spec.add_dependency "syntax_tree", ">= 2.7.1" spec.add_dependency "syntax_tree-haml", ">= 1.1.0" spec.add_dependency "syntax_tree-rbs", ">= 0.2.0" From 7a6f83f59ee325ba482a70214a82e00da368a89a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Jun 2022 12:01:07 +0000 Subject: [PATCH 092/262] Bump eslint from 8.15.0 to 8.17.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.15.0 to 8.17.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.15.0...v8.17.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/yarn.lock b/yarn.lock index 10f732ad..97a3c990 100644 --- a/yarn.lock +++ b/yarn.lock @@ -286,15 +286,15 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.2.3.tgz#fcaa2bcef39e13d6e9e7f6271f4cc7cae1174886" - integrity sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA== +"@eslint/eslintrc@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" + integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.3.2" - globals "^13.9.0" + globals "^13.15.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" @@ -1096,11 +1096,11 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.15.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.15.0.tgz#fea1d55a7062da48d82600d2e0974c55612a11e9" - integrity sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA== + version "8.17.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.17.0.tgz#1cfc4b6b6912f77d24b874ca1506b0fe09328c21" + integrity sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw== dependencies: - "@eslint/eslintrc" "^1.2.3" + "@eslint/eslintrc" "^1.3.0" "@humanwhocodes/config-array" "^0.9.2" ajv "^6.10.0" chalk "^4.0.0" @@ -1118,7 +1118,7 @@ eslint@^8.15.0: file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" glob-parent "^6.0.1" - globals "^13.6.0" + globals "^13.15.0" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" @@ -1348,7 +1348,7 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: +globals@^13.15.0: version "13.15.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== From 8f67c62d078976d81e641765cda612840171faf6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jun 2022 12:01:32 +0000 Subject: [PATCH 093/262] Bump jest from 28.1.0 to 28.1.1 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 28.1.0 to 28.1.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v28.1.1/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 618 +++++++++++++++++++++++++++--------------------------- 1 file changed, 310 insertions(+), 308 deletions(-) diff --git a/yarn.lock b/yarn.lock index 97a3c990..0db50134 100644 --- a/yarn.lock +++ b/yarn.lock @@ -331,28 +331,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.0.tgz#db78222c3d3b0c1db82f1b9de51094c2aaff2176" - integrity sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA== +"@jest/console@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.1.tgz#305f8ca50b6e70413839f54c0e002b60a0f2fd7d" + integrity sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^28.1.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^28.1.0" - jest-util "^28.1.0" + jest-message-util "^28.1.1" + jest-util "^28.1.1" slash "^3.0.0" -"@jest/core@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.0.tgz#784a1e6ce5358b46fcbdcfbbd93b1b713ed4ea80" - integrity sha512-/2PTt0ywhjZ4NwNO4bUqD9IVJfmFVhVKGlhvSpmEfUCuxYf/3NHcKmRFI+I71lYzbTT3wMuYpETDCTHo81gC/g== +"@jest/core@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.1.tgz#086830bec6267accf9af5ca76f794858e9f9f092" + integrity sha512-3pYsBoZZ42tXMdlcFeCc/0j9kOlK7MYuXs2B1QbvDgMoW1K9NJ4G/VYvIbMb26iqlkTfPHo7SC2JgjDOk/mxXw== dependencies: - "@jest/console" "^28.1.0" - "@jest/reporters" "^28.1.0" - "@jest/test-result" "^28.1.0" - "@jest/transform" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/console" "^28.1.1" + "@jest/reporters" "^28.1.1" + "@jest/test-result" "^28.1.1" + "@jest/transform" "^28.1.1" + "@jest/types" "^28.1.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -360,80 +360,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^28.0.2" - jest-config "^28.1.0" - jest-haste-map "^28.1.0" - jest-message-util "^28.1.0" + jest-config "^28.1.1" + jest-haste-map "^28.1.1" + jest-message-util "^28.1.1" jest-regex-util "^28.0.2" - jest-resolve "^28.1.0" - jest-resolve-dependencies "^28.1.0" - jest-runner "^28.1.0" - jest-runtime "^28.1.0" - jest-snapshot "^28.1.0" - jest-util "^28.1.0" - jest-validate "^28.1.0" - jest-watcher "^28.1.0" + jest-resolve "^28.1.1" + jest-resolve-dependencies "^28.1.1" + jest-runner "^28.1.1" + jest-runtime "^28.1.1" + jest-snapshot "^28.1.1" + jest-util "^28.1.1" + jest-validate "^28.1.1" + jest-watcher "^28.1.1" micromatch "^4.0.4" - pretty-format "^28.1.0" + pretty-format "^28.1.1" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.0.tgz#dedf7d59ec341b9292fcf459fd0ed819eb2e228a" - integrity sha512-S44WGSxkRngzHslhV6RoAExekfF7Qhwa6R5+IYFa81mpcj0YgdBnRSmvHe3SNwOt64yXaE5GG8Y2xM28ii5ssA== +"@jest/environment@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.1.tgz#c4cbf85283278d768f816ebd1a258ea6f9e39d4f" + integrity sha512-9auVQ2GzQ7nrU+lAr8KyY838YahElTX9HVjbQPPS2XjlxQ+na18G113OoBhyBGBtD6ZnO/SrUy5WR8EzOj1/Uw== dependencies: - "@jest/fake-timers" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/fake-timers" "^28.1.1" + "@jest/types" "^28.1.1" "@types/node" "*" - jest-mock "^28.1.0" + jest-mock "^28.1.1" -"@jest/expect-utils@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.0.tgz#a5cde811195515a9809b96748ae8bcc331a3538a" - integrity sha512-5BrG48dpC0sB80wpeIX5FU6kolDJI4K0n5BM9a5V38MGx0pyRvUBSS0u2aNTdDzmOrCjhOg8pGs6a20ivYkdmw== +"@jest/expect-utils@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.1.tgz#d84c346025b9f6f3886d02c48a6177e2b0360587" + integrity sha512-n/ghlvdhCdMI/hTcnn4qV57kQuV9OTsZzH1TTCVARANKhl6hXJqLKUkwX69ftMGpsbpt96SsDD8n8LD2d9+FRw== dependencies: jest-get-type "^28.0.2" -"@jest/expect@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.0.tgz#2e5a31db692597070932366a1602b5157f0f217c" - integrity sha512-be9ETznPLaHOmeJqzYNIXv1ADEzENuQonIoobzThOYPuK/6GhrWNIJDVTgBLCrz3Am73PyEU2urQClZp0hLTtA== +"@jest/expect@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.1.tgz#ea4fcc8504b45835029221c0dc357c622a761326" + integrity sha512-/+tQprrFoT6lfkMj4mW/mUIfAmmk/+iQPmg7mLDIFOf2lyf7EBHaS+x3RbeR0VZVMe55IvX7QRoT/2aK3AuUXg== dependencies: - expect "^28.1.0" - jest-snapshot "^28.1.0" + expect "^28.1.1" + jest-snapshot "^28.1.1" -"@jest/fake-timers@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.0.tgz#ea77878aabd5c5d50e1fc53e76d3226101e33064" - integrity sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg== +"@jest/fake-timers@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.1.tgz#47ce33296ab9d680c76076d51ddbe65ceb3337f1" + integrity sha512-BY/3+TyLs5+q87rGWrGUY5f8e8uC3LsVHS9Diz8+FV3ARXL4sNnkLlIB8dvDvRrp+LUCGM+DLqlsYubizGUjIA== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^28.1.1" "@sinonjs/fake-timers" "^9.1.1" "@types/node" "*" - jest-message-util "^28.1.0" - jest-mock "^28.1.0" - jest-util "^28.1.0" + jest-message-util "^28.1.1" + jest-mock "^28.1.1" + jest-util "^28.1.1" -"@jest/globals@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.0.tgz#a4427d2eb11763002ff58e24de56b84ba79eb793" - integrity sha512-3m7sTg52OTQR6dPhsEQSxAvU+LOBbMivZBwOvKEZ+Rb+GyxVnXi9HKgOTYkx/S99T8yvh17U4tNNJPIEQmtwYw== +"@jest/globals@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.1.tgz#c0a7977f85e26279cc090d9adcdf82b8a34c4061" + integrity sha512-dEgl/6v7ToB4vXItdvcltJBgny0xBE6xy6IYQrPJAJggdEinGxCDMivNv7sFzPcTITGquXD6UJwYxfJ/5ZwDSg== dependencies: - "@jest/environment" "^28.1.0" - "@jest/expect" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/environment" "^28.1.1" + "@jest/expect" "^28.1.1" + "@jest/types" "^28.1.1" -"@jest/reporters@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.0.tgz#5183a28b9b593b6000fa9b89b031c7216b58a9a0" - integrity sha512-qxbFfqap/5QlSpIizH9c/bFCDKsQlM4uAKSOvZrP+nIdrjqre3FmKzpTtYyhsaVcOSNK7TTt2kjm+4BJIjysFA== +"@jest/reporters@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.1.tgz#9389f4bb3cce4d9b586f6195f83c79cd2a1c8662" + integrity sha512-597Zj4D4d88sZrzM4atEGLuO7SdA/YrOv9SRXHXRNC+/FwPCWxZhBAEzhXoiJzfRwn8zes/EjS8Lo6DouGN5Gg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.0" - "@jest/test-result" "^28.1.0" - "@jest/transform" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/console" "^28.1.1" + "@jest/test-result" "^28.1.1" + "@jest/transform" "^28.1.1" + "@jest/types" "^28.1.1" "@jridgewell/trace-mapping" "^0.3.7" "@types/node" "*" chalk "^4.0.0" @@ -446,8 +446,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-util "^28.1.0" - jest-worker "^28.1.0" + jest-message-util "^28.1.1" + jest-util "^28.1.1" + jest-worker "^28.1.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -470,51 +471,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.0.tgz#fd149dee123510dd2fcadbbf5f0020f98ad7f12c" - integrity sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ== +"@jest/test-result@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.1.tgz#c6f18d1bbb01aa88925dd687872a75f8414b317a" + integrity sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ== dependencies: - "@jest/console" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/console" "^28.1.1" + "@jest/types" "^28.1.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.0.tgz#ce7294bbe986415b9a30e218c7e705e6ebf2cdf2" - integrity sha512-tZCEiVWlWNTs/2iK9yi6o3AlMfbbYgV4uuZInSVdzZ7ftpHZhCMuhvk2HLYhCZzLgPFQ9MnM1YaxMnh3TILFiQ== +"@jest/test-sequencer@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.1.tgz#f594ee2331df75000afe0d1ae3237630ecec732e" + integrity sha512-nuL+dNSVMcWB7OOtgb0EGH5AjO4UBCt68SLP08rwmC+iRhyuJWS9MtZ/MpipxFwKAlHFftbMsydXqWre8B0+XA== dependencies: - "@jest/test-result" "^28.1.0" + "@jest/test-result" "^28.1.1" graceful-fs "^4.2.9" - jest-haste-map "^28.1.0" + jest-haste-map "^28.1.1" slash "^3.0.0" -"@jest/transform@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.0.tgz#224a3c9ba4cc98e2ff996c0a89a2d59db15c74ce" - integrity sha512-omy2xe5WxlAfqmsTjTPxw+iXRTRnf+NtX0ToG+4S0tABeb4KsKmPUHq5UBuwunHg3tJRwgEQhEp0M/8oiatLEA== +"@jest/transform@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.1.tgz#83541f2a3f612077c8501f49cc4e205d4e4a6b27" + integrity sha512-PkfaTUuvjUarl1EDr5ZQcCA++oXkFCP9QFUkG0yVKVmNObjhrqDy0kbMpMebfHWm3CCDHjYNem9eUSH8suVNHQ== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^28.1.0" + "@jest/types" "^28.1.1" "@jridgewell/trace-mapping" "^0.3.7" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.0" + jest-haste-map "^28.1.1" jest-regex-util "^28.0.2" - jest-util "^28.1.0" + jest-util "^28.1.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^28.1.0": - version "28.1.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.0.tgz#508327a89976cbf9bd3e1cc74641a29fd7dfd519" - integrity sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA== +"@jest/types@^28.1.1": + version "28.1.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.1.tgz#d059bbc80e6da6eda9f081f293299348bd78ee0b" + integrity sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw== dependencies: "@jest/schemas" "^28.0.2" "@types/istanbul-lib-coverage" "^2.0.0" @@ -750,15 +751,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.0.tgz#95a67f8e2e7c0042e7b3ad3951b8af41a533b5ea" - integrity sha512-zNKk0yhDZ6QUwfxh9k07GII6siNGMJWVUU49gmFj5gfdqDKLqa2RArXOF2CODp4Dr7dLxN2cvAV+667dGJ4b4w== +babel-jest@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.1.tgz#2a3a4ae50964695b2d694ccffe4bec537c5a3586" + integrity sha512-MEt0263viUdAkTq5D7upHPNxvt4n9uLUGa6pPz3WviNBMtOmStb1lIXS3QobnoqM+qnH+vr4EKlvhe8QcmxIYw== dependencies: - "@jest/transform" "^28.1.0" + "@jest/transform" "^28.1.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.0.2" + babel-preset-jest "^28.1.1" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -774,10 +775,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz#9307d03a633be6fc4b1a6bc5c3a87e22bd01dd3b" - integrity sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ== +babel-plugin-jest-hoist@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.1.tgz#5e055cdcc47894f28341f87f5e35aad2df680b11" + integrity sha512-NovGCy5Hn25uMJSAU8FaHqzs13cFoOI4lhIujiepssjCKRsAo3TA734RDWSGxuFTsUJXerYOqQQodlxgmtqbzw== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -802,12 +803,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz#d8210fe4e46c1017e9fa13d7794b166e93aa9f89" - integrity sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ== +babel-preset-jest@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.1.tgz#5b6e5e69f963eb2d70f739c607b8f723c0ee75e4" + integrity sha512-FCq9Oud0ReTeWtcneYf/48981aTfXYuB9gbU4rBNNJVBSQ6ssv7E6v/qvbBxtOWwZFXjLZwpg+W3q7J6vhH25g== dependencies: - babel-plugin-jest-hoist "^28.0.2" + babel-plugin-jest-hoist "^28.1.1" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1004,10 +1005,10 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.0.2.tgz#40f8d4ffa081acbd8902ba35c798458d0ff1af41" - integrity sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ== +diff-sequences@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" + integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== doctrine@^3.0.0: version "3.0.0" @@ -1209,16 +1210,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.0.tgz#10e8da64c0850eb8c39a480199f14537f46e8360" - integrity sha512-qFXKl8Pmxk8TBGfaFKRtcQjfXEnKAs+dmlxdwvukJZorwrAabT7M3h8oLOG01I2utEhkmUTi17CHaPBovZsKdw== +expect@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.1.tgz#ca6fff65f6517cf7220c2e805a49c19aea30b420" + integrity sha512-/AANEwGL0tWBwzLNOvO0yUdy2D52jVdNXppOqswC49sxMN2cPWsGCQdzuIf9tj6hHoBQzNvx75JUYuQAckPo3w== dependencies: - "@jest/expect-utils" "^28.1.0" + "@jest/expect-utils" "^28.1.1" jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.0" - jest-message-util "^28.1.0" - jest-util "^28.1.0" + jest-matcher-utils "^28.1.1" + jest-message-util "^28.1.1" + jest-util "^28.1.1" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1535,180 +1536,180 @@ jest-changed-files@^28.0.2: execa "^5.0.0" throat "^6.0.1" -jest-circus@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.0.tgz#e229f590911bd54d60efaf076f7acd9360296dae" - integrity sha512-rNYfqfLC0L0zQKRKsg4n4J+W1A2fbyGH7Ss/kDIocp9KXD9iaL111glsLu7+Z7FHuZxwzInMDXq+N1ZIBkI/TQ== +jest-circus@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.1.tgz#3d27da6a974d85a466dc0cdc6ddeb58daaa57bb4" + integrity sha512-75+BBVTsL4+p2w198DQpCeyh1RdaS2lhEG87HkaFX/UG0gJExVq2skG2pT7XZEGBubNj2CytcWSPan4QEPNosw== dependencies: - "@jest/environment" "^28.1.0" - "@jest/expect" "^28.1.0" - "@jest/test-result" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/environment" "^28.1.1" + "@jest/expect" "^28.1.1" + "@jest/test-result" "^28.1.1" + "@jest/types" "^28.1.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^28.1.0" - jest-matcher-utils "^28.1.0" - jest-message-util "^28.1.0" - jest-runtime "^28.1.0" - jest-snapshot "^28.1.0" - jest-util "^28.1.0" - pretty-format "^28.1.0" + jest-each "^28.1.1" + jest-matcher-utils "^28.1.1" + jest-message-util "^28.1.1" + jest-runtime "^28.1.1" + jest-snapshot "^28.1.1" + jest-util "^28.1.1" + pretty-format "^28.1.1" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.0.tgz#cd1d8adb9630102d5ba04a22895f63decdd7ac1f" - integrity sha512-fDJRt6WPRriHrBsvvgb93OxgajHHsJbk4jZxiPqmZbMDRcHskfJBBfTyjFko0jjfprP544hOktdSi9HVgl4VUQ== +jest-cli@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.1.tgz#23ddfde8940e1818585ae4a568877b33b0e51cfe" + integrity sha512-+sUfVbJqb1OjBZ0OdBbI6OWfYM1i7bSfzYy6gze1F1w3OKWq8ZTEKkZ8a7ZQPq6G/G1qMh/uKqpdWhgl11NFQQ== dependencies: - "@jest/core" "^28.1.0" - "@jest/test-result" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/core" "^28.1.1" + "@jest/test-result" "^28.1.1" + "@jest/types" "^28.1.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.1.0" - jest-util "^28.1.0" - jest-validate "^28.1.0" + jest-config "^28.1.1" + jest-util "^28.1.1" + jest-validate "^28.1.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.0.tgz#fca22ca0760e746fe1ce1f9406f6b307ab818501" - integrity sha512-aOV80E9LeWrmflp7hfZNn/zGA4QKv/xsn2w8QCBP0t0+YqObuCWTSgNbHJ0j9YsTuCO08ZR/wsvlxqqHX20iUA== +jest-config@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.1.tgz#e90b97b984f14a6c24a221859e81b258990fce2f" + integrity sha512-tASynMhS+jVV85zKvjfbJ8nUyJS/jUSYZ5KQxLUN2ZCvcQc/OmhQl2j6VEL3ezQkNofxn5pQ3SPYWPHb0unTZA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.0" - "@jest/types" "^28.1.0" - babel-jest "^28.1.0" + "@jest/test-sequencer" "^28.1.1" + "@jest/types" "^28.1.1" + babel-jest "^28.1.1" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^28.1.0" - jest-environment-node "^28.1.0" + jest-circus "^28.1.1" + jest-environment-node "^28.1.1" jest-get-type "^28.0.2" jest-regex-util "^28.0.2" - jest-resolve "^28.1.0" - jest-runner "^28.1.0" - jest-util "^28.1.0" - jest-validate "^28.1.0" + jest-resolve "^28.1.1" + jest-runner "^28.1.1" + jest-util "^28.1.1" + jest-validate "^28.1.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^28.1.0" + pretty-format "^28.1.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.0.tgz#77686fef899ec1873dbfbf9330e37dd429703269" - integrity sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA== +jest-diff@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.1.tgz#1a3eedfd81ae79810931c63a1d0f201b9120106c" + integrity sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg== dependencies: chalk "^4.0.0" - diff-sequences "^28.0.2" + diff-sequences "^28.1.1" jest-get-type "^28.0.2" - pretty-format "^28.1.0" + pretty-format "^28.1.1" -jest-docblock@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.0.2.tgz#3cab8abea53275c9d670cdca814fc89fba1298c2" - integrity sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg== +jest-docblock@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" + integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== dependencies: detect-newline "^3.0.0" -jest-each@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.0.tgz#54ae66d6a0a5b1913e9a87588d26c2687c39458b" - integrity sha512-a/XX02xF5NTspceMpHujmOexvJ4GftpYXqr6HhhmKmExtMXsyIN/fvanQlt/BcgFoRKN4OCXxLQKth9/n6OPFg== +jest-each@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.1.tgz#ba5238dacf4f31d9fe23ddc2c44c01e7c23885c4" + integrity sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^28.1.1" chalk "^4.0.0" jest-get-type "^28.0.2" - jest-util "^28.1.0" - pretty-format "^28.1.0" + jest-util "^28.1.1" + pretty-format "^28.1.1" -jest-environment-node@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.0.tgz#6ed2150aa31babba0c488c5b4f4d813a585c68e6" - integrity sha512-gBLZNiyrPw9CSMlTXF1yJhaBgWDPVvH0Pq6bOEwGMXaYNzhzhw2kA/OijNF8egbCgDS0/veRv97249x2CX+udQ== +jest-environment-node@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.1.tgz#1c86c59003a7d319fa06ea3b1bbda6c193715c67" + integrity sha512-2aV/eeY/WNgUUJrrkDJ3cFEigjC5fqT1+fCclrY6paqJ5zVPoM//sHmfgUUp7WLYxIdbPwMiVIzejpN56MxnNA== dependencies: - "@jest/environment" "^28.1.0" - "@jest/fake-timers" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/environment" "^28.1.1" + "@jest/fake-timers" "^28.1.1" + "@jest/types" "^28.1.1" "@types/node" "*" - jest-mock "^28.1.0" - jest-util "^28.1.0" + jest-mock "^28.1.1" + jest-util "^28.1.1" jest-get-type@^28.0.2: version "28.0.2" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== -jest-haste-map@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.0.tgz#6c1ee2daf1c20a3e03dbd8e5b35c4d73d2349cf0" - integrity sha512-xyZ9sXV8PtKi6NCrJlmq53PyNVHzxmcfXNVvIRHpHmh1j/HChC4pwKgyjj7Z9us19JMw8PpQTJsFWOsIfT93Dw== +jest-haste-map@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.1.tgz#471685f1acd365a9394745bb97c8fc16289adca3" + integrity sha512-ZrRSE2o3Ezh7sb1KmeLEZRZ4mgufbrMwolcFHNRSjKZhpLa8TdooXOOFlSwoUzlbVs1t0l7upVRW2K7RWGHzbQ== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^28.1.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^28.0.2" - jest-util "^28.1.0" - jest-worker "^28.1.0" + jest-util "^28.1.1" + jest-worker "^28.1.1" micromatch "^4.0.4" - walker "^1.0.7" + walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.0.tgz#b65167776a8787443214d6f3f54935a4c73c8a45" - integrity sha512-uIJDQbxwEL2AMMs2xjhZl2hw8s77c3wrPaQ9v6tXJLGaaQ+4QrNJH5vuw7hA7w/uGT/iJ42a83opAqxGHeyRIA== +jest-leak-detector@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.1.tgz#537f37afd610a4b3f4cab15e06baf60484548efb" + integrity sha512-4jvs8V8kLbAaotE+wFR7vfUGf603cwYtFf1/PYEsyX2BAjSzj8hQSVTP6OWzseTl0xL6dyHuKs2JAks7Pfubmw== dependencies: jest-get-type "^28.0.2" - pretty-format "^28.1.0" + pretty-format "^28.1.1" -jest-matcher-utils@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz#2ae398806668eeabd293c61712227cb94b250ccf" - integrity sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ== +jest-matcher-utils@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz#a7c4653c2b782ec96796eb3088060720f1e29304" + integrity sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw== dependencies: chalk "^4.0.0" - jest-diff "^28.1.0" + jest-diff "^28.1.1" jest-get-type "^28.0.2" - pretty-format "^28.1.0" + pretty-format "^28.1.1" -jest-message-util@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.0.tgz#7e8f0b9049e948e7b94c2a52731166774ba7d0af" - integrity sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw== +jest-message-util@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.1.tgz#60aa0b475cfc08c8a9363ed2fb9108514dd9ab89" + integrity sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.0" + "@jest/types" "^28.1.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^28.1.0" + pretty-format "^28.1.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.0.tgz#ccc7cc12a9b330b3182db0c651edc90d163ff73e" - integrity sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw== +jest-mock@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.1.tgz#37903d269427fa1ef5b2447be874e1c62a39a371" + integrity sha512-bDCb0FjfsmKweAvE09dZT59IMkzgN0fYBH6t5S45NoJfd2DHkS3ySG2K+hucortryhO3fVuXdlxWcbtIuV/Skw== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^28.1.1" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -1721,168 +1722,169 @@ jest-regex-util@^28.0.2: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-resolve-dependencies@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.0.tgz#167becb8bee6e20b5ef4a3a728ec67aef6b0b79b" - integrity sha512-Ue1VYoSZquPwEvng7Uefw8RmZR+me/1kr30H2jMINjGeHgeO/JgrR6wxj2ofkJ7KSAA11W3cOrhNCbj5Dqqd9g== +jest-resolve-dependencies@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.1.tgz#3dffaaa56f4b41bc6b61053899d1756401763a27" + integrity sha512-p8Y150xYJth4EXhOuB8FzmS9r8IGLEioiaetgdNGb9VHka4fl0zqWlVe4v7mSkYOuEUg2uB61iE+zySDgrOmgQ== dependencies: jest-regex-util "^28.0.2" - jest-snapshot "^28.1.0" + jest-snapshot "^28.1.1" -jest-resolve@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.0.tgz#b1f32748a6cee7d1779c7ef639c0a87078de3d35" - integrity sha512-vvfN7+tPNnnhDvISuzD1P+CRVP8cK0FHXRwPAcdDaQv4zgvwvag2n55/h5VjYcM5UJG7L4TwE5tZlzcI0X2Lhw== +jest-resolve@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.1.tgz#bc2eaf384abdcc1aaf3ba7c50d1adf01e59095e5" + integrity sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.0" + jest-haste-map "^28.1.1" jest-pnp-resolver "^1.2.2" - jest-util "^28.1.0" - jest-validate "^28.1.0" + jest-util "^28.1.1" + jest-validate "^28.1.1" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.0.tgz#aefe2a1e618a69baa0b24a50edc54fdd7e728eaa" - integrity sha512-FBpmuh1HB2dsLklAlRdOxNTTHKFR6G1Qmd80pVDvwbZXTriqjWqjei5DKFC1UlM732KjYcE6yuCdiF0WUCOS2w== +jest-runner@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.1.tgz#9ecdb3f27a00059986797aa6b012ba8306aa436c" + integrity sha512-W5oFUiDBgTsCloTAj6q95wEvYDB0pxIhY6bc5F26OucnwBN+K58xGTGbliSMI4ChQal5eANDF+xvELaYkJxTmA== dependencies: - "@jest/console" "^28.1.0" - "@jest/environment" "^28.1.0" - "@jest/test-result" "^28.1.0" - "@jest/transform" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/console" "^28.1.1" + "@jest/environment" "^28.1.1" + "@jest/test-result" "^28.1.1" + "@jest/transform" "^28.1.1" + "@jest/types" "^28.1.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" - jest-docblock "^28.0.2" - jest-environment-node "^28.1.0" - jest-haste-map "^28.1.0" - jest-leak-detector "^28.1.0" - jest-message-util "^28.1.0" - jest-resolve "^28.1.0" - jest-runtime "^28.1.0" - jest-util "^28.1.0" - jest-watcher "^28.1.0" - jest-worker "^28.1.0" + jest-docblock "^28.1.1" + jest-environment-node "^28.1.1" + jest-haste-map "^28.1.1" + jest-leak-detector "^28.1.1" + jest-message-util "^28.1.1" + jest-resolve "^28.1.1" + jest-runtime "^28.1.1" + jest-util "^28.1.1" + jest-watcher "^28.1.1" + jest-worker "^28.1.1" source-map-support "0.5.13" throat "^6.0.1" -jest-runtime@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.0.tgz#4847dcb2a4eb4b0f9eaf41306897e51fb1665631" - integrity sha512-wNYDiwhdH/TV3agaIyVF0lsJ33MhyujOe+lNTUiolqKt8pchy1Hq4+tDMGbtD5P/oNLA3zYrpx73T9dMTOCAcg== +jest-runtime@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.1.tgz#569e1dc3c36c6c4c0b29516c1c49b6ad580abdaf" + integrity sha512-J89qEJWW0leOsqyi0D9zHpFEYHwwafFdS9xgvhFHtIdRghbadodI0eA+DrthK/1PebBv3Px8mFSMGKrtaVnleg== dependencies: - "@jest/environment" "^28.1.0" - "@jest/fake-timers" "^28.1.0" - "@jest/globals" "^28.1.0" + "@jest/environment" "^28.1.1" + "@jest/fake-timers" "^28.1.1" + "@jest/globals" "^28.1.1" "@jest/source-map" "^28.0.2" - "@jest/test-result" "^28.1.0" - "@jest/transform" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/test-result" "^28.1.1" + "@jest/transform" "^28.1.1" + "@jest/types" "^28.1.1" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.0" - jest-message-util "^28.1.0" - jest-mock "^28.1.0" + jest-haste-map "^28.1.1" + jest-message-util "^28.1.1" + jest-mock "^28.1.1" jest-regex-util "^28.0.2" - jest-resolve "^28.1.0" - jest-snapshot "^28.1.0" - jest-util "^28.1.0" + jest-resolve "^28.1.1" + jest-snapshot "^28.1.1" + jest-util "^28.1.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.0.tgz#4b74fa8816707dd10fe9d551c2c258e5a67b53b6" - integrity sha512-ex49M2ZrZsUyQLpLGxQtDbahvgBjlLPgklkqGM0hq/F7W/f8DyqZxVHjdy19QKBm4O93eDp+H5S23EiTbbUmHw== +jest-snapshot@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.1.tgz#ab825c16c8d8b5e883bd57eee6ca8748c42ab848" + integrity sha512-1KjqHJ98adRcbIdMizjF5DipwZFbvxym/kFO4g4fVZCZRxH/dqV8TiBFCa6rqic3p0karsy8RWS1y4E07b7P0A== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.0" - "@jest/transform" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/expect-utils" "^28.1.1" + "@jest/transform" "^28.1.1" + "@jest/types" "^28.1.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.1.0" + expect "^28.1.1" graceful-fs "^4.2.9" - jest-diff "^28.1.0" + jest-diff "^28.1.1" jest-get-type "^28.0.2" - jest-haste-map "^28.1.0" - jest-matcher-utils "^28.1.0" - jest-message-util "^28.1.0" - jest-util "^28.1.0" + jest-haste-map "^28.1.1" + jest-matcher-utils "^28.1.1" + jest-message-util "^28.1.1" + jest-util "^28.1.1" natural-compare "^1.4.0" - pretty-format "^28.1.0" + pretty-format "^28.1.1" semver "^7.3.5" -jest-util@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.0.tgz#d54eb83ad77e1dd441408738c5a5043642823be5" - integrity sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA== +jest-util@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.1.tgz#ff39e436a1aca397c0ab998db5a51ae2b7080d05" + integrity sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^28.1.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.0.tgz#8a6821f48432aba9f830c26e28226ad77b9a0e18" - integrity sha512-Lly7CJYih3vQBfjLeANGgBSBJ7pEa18cxpQfQEq2go2xyEzehnHfQTjoUia8xUv4x4J80XKFIDwJJThXtRFQXQ== +jest-validate@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.1.tgz#59b7b339b3c85b5144bd0c06ad3600f503a4acc8" + integrity sha512-Kpf6gcClqFCIZ4ti5++XemYJWUPCFUW+N2gknn+KgnDf549iLul3cBuKVe1YcWRlaF8tZV8eJCap0eECOEE3Ug== dependencies: - "@jest/types" "^28.1.0" + "@jest/types" "^28.1.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^28.0.2" leven "^3.1.0" - pretty-format "^28.1.0" + pretty-format "^28.1.1" -jest-watcher@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.0.tgz#aaa7b4164a4e77eeb5f7d7b25ede5e7b4e9c9aaf" - integrity sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA== +jest-watcher@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.1.tgz#533597fb3bfefd52b5cd115cd916cffd237fb60c" + integrity sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug== dependencies: - "@jest/test-result" "^28.1.0" - "@jest/types" "^28.1.0" + "@jest/test-result" "^28.1.1" + "@jest/types" "^28.1.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^28.1.0" + jest-util "^28.1.1" string-length "^4.0.1" -jest-worker@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.0.tgz#ced54757a035e87591e1208253a6e3aac1a855e5" - integrity sha512-ZHwM6mNwaWBR52Snff8ZvsCTqQsvhCxP/bT1I6T6DAnb6ygkshsyLQIMxFwHpYxht0HOoqt23JlC01viI7T03A== +jest-worker@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.1.tgz#3480c73247171dfd01eda77200f0063ab6a3bf28" + integrity sha512-Au7slXB08C6h+xbJPp7VIb6U0XX5Kc9uel/WFc6/rcTzGiaVCBRngBExSYuXSLFPULPSYU3cJ3ybS988lNFQhQ== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^28.0.1: - version "28.1.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.0.tgz#f420e41c8f2395b9a30445a97189ebb57593d831" - integrity sha512-TZR+tHxopPhzw3c3560IJXZWLNHgpcz1Zh0w5A65vynLGNcg/5pZ+VildAd7+XGOu6jd58XMY/HNn0IkZIXVXg== + version "28.1.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.1.tgz#3c39a3a09791e16e9ef283597d24ab19a0df701e" + integrity sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA== dependencies: - "@jest/core" "^28.1.0" + "@jest/core" "^28.1.1" + "@jest/types" "^28.1.1" import-local "^3.0.2" - jest-cli "^28.1.0" + jest-cli "^28.1.1" js-tokens@^4.0.0: version "4.0.0" @@ -2172,10 +2174,10 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== -pretty-format@^28.1.0: - version "28.1.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.0.tgz#8f5836c6a0dfdb834730577ec18029052191af55" - integrity sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q== +pretty-format@^28.1.1: + version "28.1.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.1.tgz#f731530394e0f7fcd95aba6b43c50e02d86b95cb" + integrity sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw== dependencies: "@jest/schemas" "^28.0.2" ansi-regex "^5.0.1" @@ -2497,7 +2499,7 @@ v8-to-istanbul@^9.0.0: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" -walker@^1.0.7: +walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== From dd2fa77f1b990729f07658ff76028769ca8eff88 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jun 2022 12:01:02 +0000 Subject: [PATCH 094/262] Bump prettier from 2.6.2 to 2.7.0 Bumps [prettier](https://github.com/prettier/prettier) from 2.6.2 to 2.7.0. - [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/2.6.2...2.7.0) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0db50134..ed6b028a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2170,9 +2170,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@>=2.3.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" - integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== + version "2.7.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.0.tgz#a4fdae07e5596c51c9857ea676cd41a0163879d6" + integrity sha512-nwoX4GMFgxoPC6diHvSwmK/4yU8FFH3V8XWtLQrbj4IBsK2pkYhG4kf/ljF/haaZ/aii+wNJqISrCDPgxGWDVQ== pretty-format@^28.1.1: version "28.1.1" From 90c395f9bf55b1d8d92c425059d7cec63bc9bdeb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Jun 2022 12:05:36 +0000 Subject: [PATCH 095/262] Bump prettier from 2.7.0 to 2.7.1 Bumps [prettier](https://github.com/prettier/prettier) from 2.7.0 to 2.7.1. - [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/2.7.0...2.7.1) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index ed6b028a..85759998 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2170,9 +2170,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@>=2.3.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.0.tgz#a4fdae07e5596c51c9857ea676cd41a0163879d6" - integrity sha512-nwoX4GMFgxoPC6diHvSwmK/4yU8FFH3V8XWtLQrbj4IBsK2pkYhG4kf/ljF/haaZ/aii+wNJqISrCDPgxGWDVQ== + version "2.7.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" + integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== pretty-format@^28.1.1: version "28.1.1" From d5012bf7e505f8832755d8a725eaab7966cdd2a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jun 2022 12:03:08 +0000 Subject: [PATCH 096/262] Bump eslint from 8.17.0 to 8.18.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.17.0 to 8.18.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.17.0...v8.18.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 85759998..e6e3ab1a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1097,9 +1097,9 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.17.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.17.0.tgz#1cfc4b6b6912f77d24b874ca1506b0fe09328c21" - integrity sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw== + version "8.18.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.18.0.tgz#78d565d16c993d0b73968c523c0446b13da784fd" + integrity sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA== dependencies: "@eslint/eslintrc" "^1.3.0" "@humanwhocodes/config-array" "^0.9.2" From ae8c13e0c468386fee941b4f49b2752ba8c40584 Mon Sep 17 00:00:00 2001 From: Mark Haussmann Date: Mon, 27 Jun 2022 11:28:49 +1200 Subject: [PATCH 097/262] Resolves process waiting on STDIN Seems like #1134 caused the process to wait for stdin. This PR only passes the `:stdin_data` option if `STDIN` is not attached to a terminal. --- lib/prettier.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/prettier.rb b/lib/prettier.rb index b2a4c1fb..963c6182 100644 --- a/lib/prettier.rb +++ b/lib/prettier.rb @@ -11,9 +11,10 @@ module Prettier def self.run(args) quoted = args.map { |arg| arg.start_with?("-") ? arg : "\"#{arg}\"" } command = "node #{BINARY} --plugin \"#{PLUGIN}\" #{quoted.join(" ")}" + opts = STDIN.tty? ? {} : { stdin_data: STDIN } stdout, stderr, status = - Open3.capture3({ "RBPRETTIER" => "1" }, command, stdin_data: STDIN) + Open3.capture3({ "RBPRETTIER" => "1" }, command, opts) STDOUT.puts(stdout) # If we completed successfully, then just exit out. From 61beda638532dec9a8c8da2dda2735b9f3667874 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Jun 2022 12:01:28 +0000 Subject: [PATCH 098/262] Bump jest from 28.1.1 to 28.1.2 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 28.1.1 to 28.1.2. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v28.1.2/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 252 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 130 insertions(+), 122 deletions(-) diff --git a/yarn.lock b/yarn.lock index e6e3ab1a..0b819ab9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -343,15 +343,15 @@ jest-util "^28.1.1" slash "^3.0.0" -"@jest/core@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.1.tgz#086830bec6267accf9af5ca76f794858e9f9f092" - integrity sha512-3pYsBoZZ42tXMdlcFeCc/0j9kOlK7MYuXs2B1QbvDgMoW1K9NJ4G/VYvIbMb26iqlkTfPHo7SC2JgjDOk/mxXw== +"@jest/core@^28.1.2": + version "28.1.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.2.tgz#eac519b9acbd154313854b8823a47b5c645f785a" + integrity sha512-Xo4E+Sb/nZODMGOPt2G3cMmCBqL4/W2Ijwr7/mrXlq4jdJwcFQ/9KrrJZT2adQRk2otVBXXOz1GRQ4Z5iOgvRQ== dependencies: "@jest/console" "^28.1.1" - "@jest/reporters" "^28.1.1" + "@jest/reporters" "^28.1.2" "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.1" + "@jest/transform" "^28.1.2" "@jest/types" "^28.1.1" "@types/node" "*" ansi-escapes "^4.2.1" @@ -360,15 +360,15 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^28.0.2" - jest-config "^28.1.1" + jest-config "^28.1.2" jest-haste-map "^28.1.1" jest-message-util "^28.1.1" jest-regex-util "^28.0.2" jest-resolve "^28.1.1" - jest-resolve-dependencies "^28.1.1" - jest-runner "^28.1.1" - jest-runtime "^28.1.1" - jest-snapshot "^28.1.1" + jest-resolve-dependencies "^28.1.2" + jest-runner "^28.1.2" + jest-runtime "^28.1.2" + jest-snapshot "^28.1.2" jest-util "^28.1.1" jest-validate "^28.1.1" jest-watcher "^28.1.1" @@ -378,12 +378,12 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.1.tgz#c4cbf85283278d768f816ebd1a258ea6f9e39d4f" - integrity sha512-9auVQ2GzQ7nrU+lAr8KyY838YahElTX9HVjbQPPS2XjlxQ+na18G113OoBhyBGBtD6ZnO/SrUy5WR8EzOj1/Uw== +"@jest/environment@^28.1.2": + version "28.1.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.2.tgz#94a052c0c5f9f8c8e6d13ea6da78dbc5d7d9b85b" + integrity sha512-I0CR1RUMmOzd0tRpz10oUfaChBWs+/Hrvn5xYhMEF/ZqrDaaeHwS8yDBqEWCrEnkH2g+WE/6g90oBv3nKpcm8Q== dependencies: - "@jest/fake-timers" "^28.1.1" + "@jest/fake-timers" "^28.1.2" "@jest/types" "^28.1.1" "@types/node" "*" jest-mock "^28.1.1" @@ -395,46 +395,46 @@ dependencies: jest-get-type "^28.0.2" -"@jest/expect@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.1.tgz#ea4fcc8504b45835029221c0dc357c622a761326" - integrity sha512-/+tQprrFoT6lfkMj4mW/mUIfAmmk/+iQPmg7mLDIFOf2lyf7EBHaS+x3RbeR0VZVMe55IvX7QRoT/2aK3AuUXg== +"@jest/expect@^28.1.2": + version "28.1.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.2.tgz#0b25acedff46e1e1e5606285306c8a399c12534f" + integrity sha512-HBzyZBeFBiOelNbBKN0pilWbbrGvwDUwAqMC46NVJmWm8AVkuE58NbG1s7DR4cxFt4U5cVLxofAoHxgvC5MyOw== dependencies: expect "^28.1.1" - jest-snapshot "^28.1.1" + jest-snapshot "^28.1.2" -"@jest/fake-timers@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.1.tgz#47ce33296ab9d680c76076d51ddbe65ceb3337f1" - integrity sha512-BY/3+TyLs5+q87rGWrGUY5f8e8uC3LsVHS9Diz8+FV3ARXL4sNnkLlIB8dvDvRrp+LUCGM+DLqlsYubizGUjIA== +"@jest/fake-timers@^28.1.2": + version "28.1.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.2.tgz#d49e8ee4e02ba85a6e844a52a5e7c59c23e3b76f" + integrity sha512-xSYEI7Y0D5FbZN2LsCUj/EKRR1zfQYmGuAUVh6xTqhx7V5JhjgMcK5Pa0iR6WIk0GXiHDe0Ke4A+yERKE9saqg== dependencies: "@jest/types" "^28.1.1" - "@sinonjs/fake-timers" "^9.1.1" + "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" jest-message-util "^28.1.1" jest-mock "^28.1.1" jest-util "^28.1.1" -"@jest/globals@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.1.tgz#c0a7977f85e26279cc090d9adcdf82b8a34c4061" - integrity sha512-dEgl/6v7ToB4vXItdvcltJBgny0xBE6xy6IYQrPJAJggdEinGxCDMivNv7sFzPcTITGquXD6UJwYxfJ/5ZwDSg== +"@jest/globals@^28.1.2": + version "28.1.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.2.tgz#92fab296e337c7309c25e4202fb724f62249d83f" + integrity sha512-cz0lkJVDOtDaYhvT3Fv2U1B6FtBnV+OpEyJCzTHM1fdoTsU4QNLAt/H4RkiwEUU+dL4g/MFsoTuHeT2pvbo4Hg== dependencies: - "@jest/environment" "^28.1.1" - "@jest/expect" "^28.1.1" + "@jest/environment" "^28.1.2" + "@jest/expect" "^28.1.2" "@jest/types" "^28.1.1" -"@jest/reporters@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.1.tgz#9389f4bb3cce4d9b586f6195f83c79cd2a1c8662" - integrity sha512-597Zj4D4d88sZrzM4atEGLuO7SdA/YrOv9SRXHXRNC+/FwPCWxZhBAEzhXoiJzfRwn8zes/EjS8Lo6DouGN5Gg== +"@jest/reporters@^28.1.2": + version "28.1.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.2.tgz#0327be4ce4d0d9ae49e7908656f89669d0c2a260" + integrity sha512-/whGLhiwAqeCTmQEouSigUZJPVl7sW8V26EiboImL+UyXznnr1a03/YZ2BX8OlFw0n+Zlwu+EZAITZtaeRTxyA== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@jest/console" "^28.1.1" "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.1" + "@jest/transform" "^28.1.2" "@jest/types" "^28.1.1" - "@jridgewell/trace-mapping" "^0.3.7" + "@jridgewell/trace-mapping" "^0.3.13" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -453,7 +453,7 @@ string-length "^4.0.1" strip-ansi "^6.0.0" terminal-link "^2.0.0" - v8-to-istanbul "^9.0.0" + v8-to-istanbul "^9.0.1" "@jest/schemas@^28.0.2": version "28.0.2" @@ -462,12 +462,12 @@ dependencies: "@sinclair/typebox" "^0.23.3" -"@jest/source-map@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.0.2.tgz#914546f4410b67b1d42c262a1da7e0406b52dc90" - integrity sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw== +"@jest/source-map@^28.1.2": + version "28.1.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24" + integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== dependencies: - "@jridgewell/trace-mapping" "^0.3.7" + "@jridgewell/trace-mapping" "^0.3.13" callsites "^3.0.0" graceful-fs "^4.2.9" @@ -491,14 +491,14 @@ jest-haste-map "^28.1.1" slash "^3.0.0" -"@jest/transform@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.1.tgz#83541f2a3f612077c8501f49cc4e205d4e4a6b27" - integrity sha512-PkfaTUuvjUarl1EDr5ZQcCA++oXkFCP9QFUkG0yVKVmNObjhrqDy0kbMpMebfHWm3CCDHjYNem9eUSH8suVNHQ== +"@jest/transform@^28.1.2": + version "28.1.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.2.tgz#b367962c53fd53821269bde050ce373e111327c1" + integrity sha512-3o+lKF6iweLeJFHBlMJysdaPbpoMmtbHEFsjzSv37HIq/wWt5ijTeO2Yf7MO5yyczCopD507cNwNLeX8Y/CuIg== dependencies: "@babel/core" "^7.11.6" "@jest/types" "^28.1.1" - "@jridgewell/trace-mapping" "^0.3.7" + "@jridgewell/trace-mapping" "^0.3.13" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" @@ -547,7 +547,15 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== -"@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13": + version "0.3.14" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" + integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.9": version "0.3.13" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== @@ -567,7 +575,7 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^9.1.1": +"@sinonjs/fake-timers@^9.1.2": version "9.1.2" resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== @@ -751,12 +759,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.1.tgz#2a3a4ae50964695b2d694ccffe4bec537c5a3586" - integrity sha512-MEt0263viUdAkTq5D7upHPNxvt4n9uLUGa6pPz3WviNBMtOmStb1lIXS3QobnoqM+qnH+vr4EKlvhe8QcmxIYw== +babel-jest@^28.1.2: + version "28.1.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.2.tgz#2b37fb81439f14d34d8b2cc4a4bd7efabf9acbfe" + integrity sha512-pfmoo6sh4L/+5/G2OOfQrGJgvH7fTa1oChnuYH2G/6gA+JwDvO8PELwvwnofKBMNrQsam0Wy/Rw+QSrBNewq2Q== dependencies: - "@jest/transform" "^28.1.1" + "@jest/transform" "^28.1.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^28.1.1" @@ -1536,13 +1544,13 @@ jest-changed-files@^28.0.2: execa "^5.0.0" throat "^6.0.1" -jest-circus@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.1.tgz#3d27da6a974d85a466dc0cdc6ddeb58daaa57bb4" - integrity sha512-75+BBVTsL4+p2w198DQpCeyh1RdaS2lhEG87HkaFX/UG0gJExVq2skG2pT7XZEGBubNj2CytcWSPan4QEPNosw== +jest-circus@^28.1.2: + version "28.1.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.2.tgz#0d5a5623eccb244efe87d1edc365696e4fcf80ce" + integrity sha512-E2vdPIJG5/69EMpslFhaA46WkcrN74LI5V/cSJ59L7uS8UNoXbzTxmwhpi9XrIL3zqvMt5T0pl5k2l2u2GwBNQ== dependencies: - "@jest/environment" "^28.1.1" - "@jest/expect" "^28.1.1" + "@jest/environment" "^28.1.2" + "@jest/expect" "^28.1.2" "@jest/test-result" "^28.1.1" "@jest/types" "^28.1.1" "@types/node" "*" @@ -1553,52 +1561,52 @@ jest-circus@^28.1.1: jest-each "^28.1.1" jest-matcher-utils "^28.1.1" jest-message-util "^28.1.1" - jest-runtime "^28.1.1" - jest-snapshot "^28.1.1" + jest-runtime "^28.1.2" + jest-snapshot "^28.1.2" jest-util "^28.1.1" pretty-format "^28.1.1" slash "^3.0.0" stack-utils "^2.0.3" throat "^6.0.1" -jest-cli@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.1.tgz#23ddfde8940e1818585ae4a568877b33b0e51cfe" - integrity sha512-+sUfVbJqb1OjBZ0OdBbI6OWfYM1i7bSfzYy6gze1F1w3OKWq8ZTEKkZ8a7ZQPq6G/G1qMh/uKqpdWhgl11NFQQ== +jest-cli@^28.1.2: + version "28.1.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.2.tgz#b89012e5bad14135e71b1628b85475d3773a1bbc" + integrity sha512-l6eoi5Do/IJUXAFL9qRmDiFpBeEJAnjJb1dcd9i/VWfVWbp3mJhuH50dNtX67Ali4Ecvt4eBkWb4hXhPHkAZTw== dependencies: - "@jest/core" "^28.1.1" + "@jest/core" "^28.1.2" "@jest/test-result" "^28.1.1" "@jest/types" "^28.1.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.1.1" + jest-config "^28.1.2" jest-util "^28.1.1" jest-validate "^28.1.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.1.tgz#e90b97b984f14a6c24a221859e81b258990fce2f" - integrity sha512-tASynMhS+jVV85zKvjfbJ8nUyJS/jUSYZ5KQxLUN2ZCvcQc/OmhQl2j6VEL3ezQkNofxn5pQ3SPYWPHb0unTZA== +jest-config@^28.1.2: + version "28.1.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.2.tgz#ba00ad30caf62286c86e7c1099e915218a0ac8c6" + integrity sha512-g6EfeRqddVbjPVBVY4JWpUY4IvQoFRIZcv4V36QkqzE0IGhEC/VkugFeBMAeUE7PRgC8KJF0yvJNDeQRbamEVA== dependencies: "@babel/core" "^7.11.6" "@jest/test-sequencer" "^28.1.1" "@jest/types" "^28.1.1" - babel-jest "^28.1.1" + babel-jest "^28.1.2" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^28.1.1" - jest-environment-node "^28.1.1" + jest-circus "^28.1.2" + jest-environment-node "^28.1.2" jest-get-type "^28.0.2" jest-regex-util "^28.0.2" jest-resolve "^28.1.1" - jest-runner "^28.1.1" + jest-runner "^28.1.2" jest-util "^28.1.1" jest-validate "^28.1.1" micromatch "^4.0.4" @@ -1635,13 +1643,13 @@ jest-each@^28.1.1: jest-util "^28.1.1" pretty-format "^28.1.1" -jest-environment-node@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.1.tgz#1c86c59003a7d319fa06ea3b1bbda6c193715c67" - integrity sha512-2aV/eeY/WNgUUJrrkDJ3cFEigjC5fqT1+fCclrY6paqJ5zVPoM//sHmfgUUp7WLYxIdbPwMiVIzejpN56MxnNA== +jest-environment-node@^28.1.2: + version "28.1.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.2.tgz#3e2eb47f6d173b0648d5f7c717cb1c26651d5c8a" + integrity sha512-oYsZz9Qw27XKmOgTtnl0jW7VplJkN2oeof+SwAwKFQacq3CLlG9u4kTGuuLWfvu3J7bVutWlrbEQMOCL/jughw== dependencies: - "@jest/environment" "^28.1.1" - "@jest/fake-timers" "^28.1.1" + "@jest/environment" "^28.1.2" + "@jest/fake-timers" "^28.1.2" "@jest/types" "^28.1.1" "@types/node" "*" jest-mock "^28.1.1" @@ -1722,13 +1730,13 @@ jest-regex-util@^28.0.2: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-resolve-dependencies@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.1.tgz#3dffaaa56f4b41bc6b61053899d1756401763a27" - integrity sha512-p8Y150xYJth4EXhOuB8FzmS9r8IGLEioiaetgdNGb9VHka4fl0zqWlVe4v7mSkYOuEUg2uB61iE+zySDgrOmgQ== +jest-resolve-dependencies@^28.1.2: + version "28.1.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.2.tgz#ca528858e0c6642d5a1dda8fc7cda10230c275bc" + integrity sha512-OXw4vbOZuyRTBi3tapWBqdyodU+T33ww5cPZORuTWkg+Y8lmsxQlVu3MWtJh6NMlKRTHQetF96yGPv01Ye7Mbg== dependencies: jest-regex-util "^28.0.2" - jest-snapshot "^28.1.1" + jest-snapshot "^28.1.2" jest-resolve@^28.1.1: version "28.1.1" @@ -1745,44 +1753,44 @@ jest-resolve@^28.1.1: resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.1.tgz#9ecdb3f27a00059986797aa6b012ba8306aa436c" - integrity sha512-W5oFUiDBgTsCloTAj6q95wEvYDB0pxIhY6bc5F26OucnwBN+K58xGTGbliSMI4ChQal5eANDF+xvELaYkJxTmA== +jest-runner@^28.1.2: + version "28.1.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.2.tgz#f293409592a62234285a71237e38499a3554e350" + integrity sha512-6/k3DlAsAEr5VcptCMdhtRhOoYClZQmxnVMZvZ/quvPGRpN7OBQYPIC32tWSgOnbgqLXNs5RAniC+nkdFZpD4A== dependencies: "@jest/console" "^28.1.1" - "@jest/environment" "^28.1.1" + "@jest/environment" "^28.1.2" "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.1" + "@jest/transform" "^28.1.2" "@jest/types" "^28.1.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^28.1.1" - jest-environment-node "^28.1.1" + jest-environment-node "^28.1.2" jest-haste-map "^28.1.1" jest-leak-detector "^28.1.1" jest-message-util "^28.1.1" jest-resolve "^28.1.1" - jest-runtime "^28.1.1" + jest-runtime "^28.1.2" jest-util "^28.1.1" jest-watcher "^28.1.1" jest-worker "^28.1.1" source-map-support "0.5.13" throat "^6.0.1" -jest-runtime@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.1.tgz#569e1dc3c36c6c4c0b29516c1c49b6ad580abdaf" - integrity sha512-J89qEJWW0leOsqyi0D9zHpFEYHwwafFdS9xgvhFHtIdRghbadodI0eA+DrthK/1PebBv3Px8mFSMGKrtaVnleg== +jest-runtime@^28.1.2: + version "28.1.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.2.tgz#d68f34f814a848555a345ceda23289f14d59a688" + integrity sha512-i4w93OsWzLOeMXSi9epmakb2+3z0AchZtUQVF1hesBmcQQy4vtaql5YdVe9KexdJaVRyPDw8DoBR0j3lYsZVYw== dependencies: - "@jest/environment" "^28.1.1" - "@jest/fake-timers" "^28.1.1" - "@jest/globals" "^28.1.1" - "@jest/source-map" "^28.0.2" + "@jest/environment" "^28.1.2" + "@jest/fake-timers" "^28.1.2" + "@jest/globals" "^28.1.2" + "@jest/source-map" "^28.1.2" "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.1" + "@jest/transform" "^28.1.2" "@jest/types" "^28.1.1" chalk "^4.0.0" cjs-module-lexer "^1.0.0" @@ -1795,15 +1803,15 @@ jest-runtime@^28.1.1: jest-mock "^28.1.1" jest-regex-util "^28.0.2" jest-resolve "^28.1.1" - jest-snapshot "^28.1.1" + jest-snapshot "^28.1.2" jest-util "^28.1.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.1.tgz#ab825c16c8d8b5e883bd57eee6ca8748c42ab848" - integrity sha512-1KjqHJ98adRcbIdMizjF5DipwZFbvxym/kFO4g4fVZCZRxH/dqV8TiBFCa6rqic3p0karsy8RWS1y4E07b7P0A== +jest-snapshot@^28.1.2: + version "28.1.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.2.tgz#93d31b87b11b384f5946fe0767541496135f8d52" + integrity sha512-wzrieFttZYfLvrCVRJxX+jwML2YTArOUqFpCoSVy1QUapx+LlV9uLbV/mMEhYj4t7aMeE9aSQFHSvV/oNoDAMA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1811,7 +1819,7 @@ jest-snapshot@^28.1.1: "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" "@jest/expect-utils" "^28.1.1" - "@jest/transform" "^28.1.1" + "@jest/transform" "^28.1.2" "@jest/types" "^28.1.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" @@ -1877,14 +1885,14 @@ jest-worker@^28.1.1: supports-color "^8.0.0" jest@^28.0.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.1.tgz#3c39a3a09791e16e9ef283597d24ab19a0df701e" - integrity sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA== + version "28.1.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.2.tgz#451ff24081ce31ca00b07b60c61add13aa96f8eb" + integrity sha512-Tuf05DwLeCh2cfWCQbcz9UxldoDyiR1E9Igaei5khjonKncYdc6LDfynKCEWozK0oLE3GD+xKAo2u8x/0s6GOg== dependencies: - "@jest/core" "^28.1.1" + "@jest/core" "^28.1.2" "@jest/types" "^28.1.1" import-local "^3.0.2" - jest-cli "^28.1.1" + jest-cli "^28.1.2" js-tokens@^4.0.0: version "4.0.0" @@ -2490,12 +2498,12 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz#be0dae58719fc53cb97e5c7ac1d7e6d4f5b19511" - integrity sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw== +v8-to-istanbul@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" + integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== dependencies: - "@jridgewell/trace-mapping" "^0.3.7" + "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" From a455e400f54e46725ab57eb93fedb41648463ba5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Jul 2022 12:01:08 +0000 Subject: [PATCH 099/262] Bump eslint from 8.18.0 to 8.19.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.18.0 to 8.19.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.18.0...v8.19.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0b819ab9..0e18eb86 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1105,9 +1105,9 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.18.0.tgz#78d565d16c993d0b73968c523c0446b13da784fd" - integrity sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA== + version "8.19.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.19.0.tgz#7342a3cbc4fbc5c106a1eefe0fd0b50b6b1a7d28" + integrity sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw== dependencies: "@eslint/eslintrc" "^1.3.0" "@humanwhocodes/config-array" "^0.9.2" From 60da42492aa0053a476a0bab67e02d2b90c92409 Mon Sep 17 00:00:00 2001 From: Spencer Oberstadt Date: Mon, 11 Jul 2022 22:20:53 -0400 Subject: [PATCH 100/262] Run Rake task in check mode if write disabled --- lib/prettier/rake/task.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/prettier/rake/task.rb b/lib/prettier/rake/task.rb index 35932601..0da0fc9e 100644 --- a/lib/prettier/rake/task.rb +++ b/lib/prettier/rake/task.rb @@ -49,7 +49,7 @@ def define_task end def run_task - Prettier.run([("--write" if write), source_files].compact) + Prettier.run([write ? "--write" : "--check", source_files].compact) exit($?.exitstatus) if $?&.exited? end end From 6c42ebd8379b1a66b511ea2b5ab0542dcbe374f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Jul 2022 12:01:05 +0000 Subject: [PATCH 101/262] Bump jest from 28.1.2 to 28.1.3 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 28.1.2 to 28.1.3. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v28.1.3/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 655 +++++++++++++++++++++++++++--------------------------- 1 file changed, 331 insertions(+), 324 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0e18eb86..dec46833 100644 --- a/yarn.lock +++ b/yarn.lock @@ -331,109 +331,109 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.1.tgz#305f8ca50b6e70413839f54c0e002b60a0f2fd7d" - integrity sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA== +"@jest/console@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" + integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^28.1.1" - jest-util "^28.1.1" + jest-message-util "^28.1.3" + jest-util "^28.1.3" slash "^3.0.0" -"@jest/core@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.2.tgz#eac519b9acbd154313854b8823a47b5c645f785a" - integrity sha512-Xo4E+Sb/nZODMGOPt2G3cMmCBqL4/W2Ijwr7/mrXlq4jdJwcFQ/9KrrJZT2adQRk2otVBXXOz1GRQ4Z5iOgvRQ== - dependencies: - "@jest/console" "^28.1.1" - "@jest/reporters" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" +"@jest/core@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" + integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== + dependencies: + "@jest/console" "^28.1.3" + "@jest/reporters" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.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 "^28.0.2" - jest-config "^28.1.2" - jest-haste-map "^28.1.1" - jest-message-util "^28.1.1" + jest-changed-files "^28.1.3" + jest-config "^28.1.3" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-resolve-dependencies "^28.1.2" - jest-runner "^28.1.2" - jest-runtime "^28.1.2" - jest-snapshot "^28.1.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" - jest-watcher "^28.1.1" + jest-resolve "^28.1.3" + jest-resolve-dependencies "^28.1.3" + jest-runner "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + jest-watcher "^28.1.3" micromatch "^4.0.4" - pretty-format "^28.1.1" + pretty-format "^28.1.3" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.2.tgz#94a052c0c5f9f8c8e6d13ea6da78dbc5d7d9b85b" - integrity sha512-I0CR1RUMmOzd0tRpz10oUfaChBWs+/Hrvn5xYhMEF/ZqrDaaeHwS8yDBqEWCrEnkH2g+WE/6g90oBv3nKpcm8Q== +"@jest/environment@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" + integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== dependencies: - "@jest/fake-timers" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" - jest-mock "^28.1.1" + jest-mock "^28.1.3" -"@jest/expect-utils@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.1.tgz#d84c346025b9f6f3886d02c48a6177e2b0360587" - integrity sha512-n/ghlvdhCdMI/hTcnn4qV57kQuV9OTsZzH1TTCVARANKhl6hXJqLKUkwX69ftMGpsbpt96SsDD8n8LD2d9+FRw== +"@jest/expect-utils@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" + integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== dependencies: jest-get-type "^28.0.2" -"@jest/expect@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.2.tgz#0b25acedff46e1e1e5606285306c8a399c12534f" - integrity sha512-HBzyZBeFBiOelNbBKN0pilWbbrGvwDUwAqMC46NVJmWm8AVkuE58NbG1s7DR4cxFt4U5cVLxofAoHxgvC5MyOw== +"@jest/expect@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" + integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== dependencies: - expect "^28.1.1" - jest-snapshot "^28.1.2" + expect "^28.1.3" + jest-snapshot "^28.1.3" -"@jest/fake-timers@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.2.tgz#d49e8ee4e02ba85a6e844a52a5e7c59c23e3b76f" - integrity sha512-xSYEI7Y0D5FbZN2LsCUj/EKRR1zfQYmGuAUVh6xTqhx7V5JhjgMcK5Pa0iR6WIk0GXiHDe0Ke4A+yERKE9saqg== +"@jest/fake-timers@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" + integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^28.1.1" - jest-mock "^28.1.1" - jest-util "^28.1.1" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" + jest-util "^28.1.3" -"@jest/globals@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.2.tgz#92fab296e337c7309c25e4202fb724f62249d83f" - integrity sha512-cz0lkJVDOtDaYhvT3Fv2U1B6FtBnV+OpEyJCzTHM1fdoTsU4QNLAt/H4RkiwEUU+dL4g/MFsoTuHeT2pvbo4Hg== +"@jest/globals@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" + integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== dependencies: - "@jest/environment" "^28.1.2" - "@jest/expect" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/types" "^28.1.3" -"@jest/reporters@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.2.tgz#0327be4ce4d0d9ae49e7908656f89669d0c2a260" - integrity sha512-/whGLhiwAqeCTmQEouSigUZJPVl7sW8V26EiboImL+UyXznnr1a03/YZ2BX8OlFw0n+Zlwu+EZAITZtaeRTxyA== +"@jest/reporters@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" + integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.1" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/console" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@jridgewell/trace-mapping" "^0.3.13" "@types/node" "*" chalk "^4.0.0" @@ -446,21 +446,21 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^28.1.1" - jest-util "^28.1.1" - jest-worker "^28.1.1" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + jest-worker "^28.1.3" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" terminal-link "^2.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^28.0.2": - version "28.0.2" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.2.tgz#08c30df6a8d07eafea0aef9fb222c5e26d72e613" - integrity sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA== +"@jest/schemas@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== dependencies: - "@sinclair/typebox" "^0.23.3" + "@sinclair/typebox" "^0.24.1" "@jest/source-map@^28.1.2": version "28.1.2" @@ -471,53 +471,53 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.1.tgz#c6f18d1bbb01aa88925dd687872a75f8414b317a" - integrity sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ== +"@jest/test-result@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" + integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== dependencies: - "@jest/console" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/console" "^28.1.3" + "@jest/types" "^28.1.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.1.tgz#f594ee2331df75000afe0d1ae3237630ecec732e" - integrity sha512-nuL+dNSVMcWB7OOtgb0EGH5AjO4UBCt68SLP08rwmC+iRhyuJWS9MtZ/MpipxFwKAlHFftbMsydXqWre8B0+XA== +"@jest/test-sequencer@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" + integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== dependencies: - "@jest/test-result" "^28.1.1" + "@jest/test-result" "^28.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" + jest-haste-map "^28.1.3" slash "^3.0.0" -"@jest/transform@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.2.tgz#b367962c53fd53821269bde050ce373e111327c1" - integrity sha512-3o+lKF6iweLeJFHBlMJysdaPbpoMmtbHEFsjzSv37HIq/wWt5ijTeO2Yf7MO5yyczCopD507cNwNLeX8Y/CuIg== +"@jest/transform@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" + integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@jridgewell/trace-mapping" "^0.3.13" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" + jest-haste-map "^28.1.3" jest-regex-util "^28.0.2" - jest-util "^28.1.1" + jest-util "^28.1.3" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^28.1.1": - version "28.1.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.1.tgz#d059bbc80e6da6eda9f081f293299348bd78ee0b" - integrity sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw== +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== dependencies: - "@jest/schemas" "^28.0.2" + "@jest/schemas" "^28.1.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -563,10 +563,10 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@sinclair/typebox@^0.23.3": - version "0.23.5" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d" - integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg== +"@sinclair/typebox@^0.24.1": + version "0.24.19" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.19.tgz#5297278e0d8a1aea084685a3216074910ac6c113" + integrity sha512-gHJu8cdYTD5p4UqmQHrxaWrtb/jkH5imLXzuBypWhKzNkW0qfmgz+w1xaJccWVuJta1YYUdlDiPHXRTR4Ku0MQ== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -759,15 +759,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.2.tgz#2b37fb81439f14d34d8b2cc4a4bd7efabf9acbfe" - integrity sha512-pfmoo6sh4L/+5/G2OOfQrGJgvH7fTa1oChnuYH2G/6gA+JwDvO8PELwvwnofKBMNrQsam0Wy/Rw+QSrBNewq2Q== +babel-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" + integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== dependencies: - "@jest/transform" "^28.1.2" + "@jest/transform" "^28.1.3" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.1" + babel-preset-jest "^28.1.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -783,10 +783,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.1.tgz#5e055cdcc47894f28341f87f5e35aad2df680b11" - integrity sha512-NovGCy5Hn25uMJSAU8FaHqzs13cFoOI4lhIujiepssjCKRsAo3TA734RDWSGxuFTsUJXerYOqQQodlxgmtqbzw== +babel-plugin-jest-hoist@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" + integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -811,12 +811,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.1.tgz#5b6e5e69f963eb2d70f739c607b8f723c0ee75e4" - integrity sha512-FCq9Oud0ReTeWtcneYf/48981aTfXYuB9gbU4rBNNJVBSQ6ssv7E6v/qvbBxtOWwZFXjLZwpg+W3q7J6vhH25g== +babel-preset-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" + integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== dependencies: - babel-plugin-jest-hoist "^28.1.1" + babel-plugin-jest-hoist "^28.1.3" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1218,16 +1218,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.1.tgz#ca6fff65f6517cf7220c2e805a49c19aea30b420" - integrity sha512-/AANEwGL0tWBwzLNOvO0yUdy2D52jVdNXppOqswC49sxMN2cPWsGCQdzuIf9tj6hHoBQzNvx75JUYuQAckPo3w== +expect@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" + integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== dependencies: - "@jest/expect-utils" "^28.1.1" + "@jest/expect-utils" "^28.1.3" jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-util "^28.1.1" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1536,94 +1536,94 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.0.2.tgz#7d7810660a5bd043af9e9cfbe4d58adb05e91531" - integrity sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA== +jest-changed-files@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" + integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== dependencies: execa "^5.0.0" - throat "^6.0.1" + p-limit "^3.1.0" -jest-circus@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.2.tgz#0d5a5623eccb244efe87d1edc365696e4fcf80ce" - integrity sha512-E2vdPIJG5/69EMpslFhaA46WkcrN74LI5V/cSJ59L7uS8UNoXbzTxmwhpi9XrIL3zqvMt5T0pl5k2l2u2GwBNQ== +jest-circus@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" + integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== dependencies: - "@jest/environment" "^28.1.2" - "@jest/expect" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^28.1.1" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-runtime "^28.1.2" - jest-snapshot "^28.1.2" - jest-util "^28.1.1" - pretty-format "^28.1.1" + jest-each "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + p-limit "^3.1.0" + pretty-format "^28.1.3" slash "^3.0.0" stack-utils "^2.0.3" - throat "^6.0.1" -jest-cli@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.2.tgz#b89012e5bad14135e71b1628b85475d3773a1bbc" - integrity sha512-l6eoi5Do/IJUXAFL9qRmDiFpBeEJAnjJb1dcd9i/VWfVWbp3mJhuH50dNtX67Ali4Ecvt4eBkWb4hXhPHkAZTw== +jest-cli@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" + integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== dependencies: - "@jest/core" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/core" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.1.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" + jest-config "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.2.tgz#ba00ad30caf62286c86e7c1099e915218a0ac8c6" - integrity sha512-g6EfeRqddVbjPVBVY4JWpUY4IvQoFRIZcv4V36QkqzE0IGhEC/VkugFeBMAeUE7PRgC8KJF0yvJNDeQRbamEVA== +jest-config@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60" + integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.1" - "@jest/types" "^28.1.1" - babel-jest "^28.1.2" + "@jest/test-sequencer" "^28.1.3" + "@jest/types" "^28.1.3" + babel-jest "^28.1.3" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^28.1.2" - jest-environment-node "^28.1.2" + jest-circus "^28.1.3" + jest-environment-node "^28.1.3" jest-get-type "^28.0.2" jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-runner "^28.1.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" + jest-resolve "^28.1.3" + jest-runner "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^28.1.1" + pretty-format "^28.1.3" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.1.tgz#1a3eedfd81ae79810931c63a1d0f201b9120106c" - integrity sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg== +jest-diff@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" + integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== dependencies: chalk "^4.0.0" diff-sequences "^28.1.1" jest-get-type "^28.0.2" - pretty-format "^28.1.1" + pretty-format "^28.1.3" jest-docblock@^28.1.1: version "28.1.1" @@ -1632,92 +1632,92 @@ jest-docblock@^28.1.1: dependencies: detect-newline "^3.0.0" -jest-each@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.1.tgz#ba5238dacf4f31d9fe23ddc2c44c01e7c23885c4" - integrity sha512-A042rqh17ZvEhRceDMi784ppoXR7MWGDEKTXEZXb4svt0eShMZvijGxzKsx+yIjeE8QYmHPrnHiTSQVhN4nqaw== +jest-each@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" + integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" chalk "^4.0.0" jest-get-type "^28.0.2" - jest-util "^28.1.1" - pretty-format "^28.1.1" + jest-util "^28.1.3" + pretty-format "^28.1.3" -jest-environment-node@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.2.tgz#3e2eb47f6d173b0648d5f7c717cb1c26651d5c8a" - integrity sha512-oYsZz9Qw27XKmOgTtnl0jW7VplJkN2oeof+SwAwKFQacq3CLlG9u4kTGuuLWfvu3J7bVutWlrbEQMOCL/jughw== +jest-environment-node@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" + integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== dependencies: - "@jest/environment" "^28.1.2" - "@jest/fake-timers" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" - jest-mock "^28.1.1" - jest-util "^28.1.1" + jest-mock "^28.1.3" + jest-util "^28.1.3" jest-get-type@^28.0.2: version "28.0.2" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== -jest-haste-map@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.1.tgz#471685f1acd365a9394745bb97c8fc16289adca3" - integrity sha512-ZrRSE2o3Ezh7sb1KmeLEZRZ4mgufbrMwolcFHNRSjKZhpLa8TdooXOOFlSwoUzlbVs1t0l7upVRW2K7RWGHzbQ== +jest-haste-map@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" + integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^28.0.2" - jest-util "^28.1.1" - jest-worker "^28.1.1" + jest-util "^28.1.3" + jest-worker "^28.1.3" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.1.tgz#537f37afd610a4b3f4cab15e06baf60484548efb" - integrity sha512-4jvs8V8kLbAaotE+wFR7vfUGf603cwYtFf1/PYEsyX2BAjSzj8hQSVTP6OWzseTl0xL6dyHuKs2JAks7Pfubmw== +jest-leak-detector@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" + integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== dependencies: jest-get-type "^28.0.2" - pretty-format "^28.1.1" + pretty-format "^28.1.3" -jest-matcher-utils@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz#a7c4653c2b782ec96796eb3088060720f1e29304" - integrity sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw== +jest-matcher-utils@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" + integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== dependencies: chalk "^4.0.0" - jest-diff "^28.1.1" + jest-diff "^28.1.3" jest-get-type "^28.0.2" - pretty-format "^28.1.1" + pretty-format "^28.1.3" -jest-message-util@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.1.tgz#60aa0b475cfc08c8a9363ed2fb9108514dd9ab89" - integrity sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ== +jest-message-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^28.1.1" + pretty-format "^28.1.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.1.tgz#37903d269427fa1ef5b2447be874e1c62a39a371" - integrity sha512-bDCb0FjfsmKweAvE09dZT59IMkzgN0fYBH6t5S45NoJfd2DHkS3ySG2K+hucortryhO3fVuXdlxWcbtIuV/Skw== +jest-mock@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" + integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -1730,169 +1730,169 @@ jest-regex-util@^28.0.2: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-resolve-dependencies@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.2.tgz#ca528858e0c6642d5a1dda8fc7cda10230c275bc" - integrity sha512-OXw4vbOZuyRTBi3tapWBqdyodU+T33ww5cPZORuTWkg+Y8lmsxQlVu3MWtJh6NMlKRTHQetF96yGPv01Ye7Mbg== +jest-resolve-dependencies@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" + integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== dependencies: jest-regex-util "^28.0.2" - jest-snapshot "^28.1.2" + jest-snapshot "^28.1.3" -jest-resolve@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.1.tgz#bc2eaf384abdcc1aaf3ba7c50d1adf01e59095e5" - integrity sha512-/d1UbyUkf9nvsgdBildLe6LAD4DalgkgZcKd0nZ8XUGPyA/7fsnaQIlKVnDiuUXv/IeZhPEDrRJubVSulxrShA== +jest-resolve@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" + integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" + jest-haste-map "^28.1.3" jest-pnp-resolver "^1.2.2" - jest-util "^28.1.1" - jest-validate "^28.1.1" + jest-util "^28.1.3" + jest-validate "^28.1.3" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.2.tgz#f293409592a62234285a71237e38499a3554e350" - integrity sha512-6/k3DlAsAEr5VcptCMdhtRhOoYClZQmxnVMZvZ/quvPGRpN7OBQYPIC32tWSgOnbgqLXNs5RAniC+nkdFZpD4A== - dependencies: - "@jest/console" "^28.1.1" - "@jest/environment" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" +jest-runner@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" + integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== + dependencies: + "@jest/console" "^28.1.3" + "@jest/environment" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^28.1.1" - jest-environment-node "^28.1.2" - jest-haste-map "^28.1.1" - jest-leak-detector "^28.1.1" - jest-message-util "^28.1.1" - jest-resolve "^28.1.1" - jest-runtime "^28.1.2" - jest-util "^28.1.1" - jest-watcher "^28.1.1" - jest-worker "^28.1.1" + jest-environment-node "^28.1.3" + jest-haste-map "^28.1.3" + jest-leak-detector "^28.1.3" + jest-message-util "^28.1.3" + jest-resolve "^28.1.3" + jest-runtime "^28.1.3" + jest-util "^28.1.3" + jest-watcher "^28.1.3" + jest-worker "^28.1.3" + p-limit "^3.1.0" source-map-support "0.5.13" - throat "^6.0.1" -jest-runtime@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.2.tgz#d68f34f814a848555a345ceda23289f14d59a688" - integrity sha512-i4w93OsWzLOeMXSi9epmakb2+3z0AchZtUQVF1hesBmcQQy4vtaql5YdVe9KexdJaVRyPDw8DoBR0j3lYsZVYw== +jest-runtime@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" + integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== dependencies: - "@jest/environment" "^28.1.2" - "@jest/fake-timers" "^28.1.2" - "@jest/globals" "^28.1.2" + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/globals" "^28.1.3" "@jest/source-map" "^28.1.2" - "@jest/test-result" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.1" - jest-message-util "^28.1.1" - jest-mock "^28.1.1" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" jest-regex-util "^28.0.2" - jest-resolve "^28.1.1" - jest-snapshot "^28.1.2" - jest-util "^28.1.1" + jest-resolve "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^28.1.2: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.2.tgz#93d31b87b11b384f5946fe0767541496135f8d52" - integrity sha512-wzrieFttZYfLvrCVRJxX+jwML2YTArOUqFpCoSVy1QUapx+LlV9uLbV/mMEhYj4t7aMeE9aSQFHSvV/oNoDAMA== +jest-snapshot@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" + integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.1" - "@jest/transform" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/expect-utils" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.1.1" + expect "^28.1.3" graceful-fs "^4.2.9" - jest-diff "^28.1.1" + jest-diff "^28.1.3" jest-get-type "^28.0.2" - jest-haste-map "^28.1.1" - jest-matcher-utils "^28.1.1" - jest-message-util "^28.1.1" - jest-util "^28.1.1" + jest-haste-map "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" natural-compare "^1.4.0" - pretty-format "^28.1.1" + pretty-format "^28.1.3" semver "^7.3.5" -jest-util@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.1.tgz#ff39e436a1aca397c0ab998db5a51ae2b7080d05" - integrity sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw== +jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.1.tgz#59b7b339b3c85b5144bd0c06ad3600f503a4acc8" - integrity sha512-Kpf6gcClqFCIZ4ti5++XemYJWUPCFUW+N2gknn+KgnDf549iLul3cBuKVe1YcWRlaF8tZV8eJCap0eECOEE3Ug== +jest-validate@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" + integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== dependencies: - "@jest/types" "^28.1.1" + "@jest/types" "^28.1.3" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^28.0.2" leven "^3.1.0" - pretty-format "^28.1.1" + pretty-format "^28.1.3" -jest-watcher@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.1.tgz#533597fb3bfefd52b5cd115cd916cffd237fb60c" - integrity sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug== +jest-watcher@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" + integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== dependencies: - "@jest/test-result" "^28.1.1" - "@jest/types" "^28.1.1" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^28.1.1" + jest-util "^28.1.3" string-length "^4.0.1" -jest-worker@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.1.tgz#3480c73247171dfd01eda77200f0063ab6a3bf28" - integrity sha512-Au7slXB08C6h+xbJPp7VIb6U0XX5Kc9uel/WFc6/rcTzGiaVCBRngBExSYuXSLFPULPSYU3cJ3ybS988lNFQhQ== +jest-worker@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" + integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^28.0.1: - version "28.1.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.2.tgz#451ff24081ce31ca00b07b60c61add13aa96f8eb" - integrity sha512-Tuf05DwLeCh2cfWCQbcz9UxldoDyiR1E9Igaei5khjonKncYdc6LDfynKCEWozK0oLE3GD+xKAo2u8x/0s6GOg== + version "28.1.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" + integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== dependencies: - "@jest/core" "^28.1.2" - "@jest/types" "^28.1.1" + "@jest/core" "^28.1.3" + "@jest/types" "^28.1.3" import-local "^3.0.2" - jest-cli "^28.1.2" + jest-cli "^28.1.3" js-tokens@^4.0.0: version "4.0.0" @@ -2101,6 +2101,13 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -2182,12 +2189,12 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.1.tgz#f731530394e0f7fcd95aba6b43c50e02d86b95cb" - integrity sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw== +pretty-format@^28.1.3: + version "28.1.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" + integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== dependencies: - "@jest/schemas" "^28.0.2" + "@jest/schemas" "^28.1.3" ansi-regex "^5.0.1" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -2442,11 +2449,6 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -throat@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" - integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== - tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -2575,3 +2577,8 @@ yargs@^17.3.1: string-width "^4.2.3" y18n "^5.0.5" yargs-parser "^21.0.0" + +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== From 2629fb0baeab98e288a071a20627e9a9a20414aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Jul 2022 12:01:29 +0000 Subject: [PATCH 102/262] Bump eslint from 8.19.0 to 8.20.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.19.0 to 8.20.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.19.0...v8.20.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index dec46833..6f2c7920 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1105,9 +1105,9 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.19.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.19.0.tgz#7342a3cbc4fbc5c106a1eefe0fd0b50b6b1a7d28" - integrity sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw== + version "8.20.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.20.0.tgz#048ac56aa18529967da8354a478be4ec0a2bc81b" + integrity sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA== dependencies: "@eslint/eslintrc" "^1.3.0" "@humanwhocodes/config-array" "^0.9.2" From 85bbb9128b83731d4c0f32232a786fcbbab90cd6 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 27 Jun 2022 10:03:19 -0400 Subject: [PATCH 103/262] Respect tabwidth --- src/parseSync.js | 2 +- src/server.rb | 31 +++++++++++++++++++++++-------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/parseSync.js b/src/parseSync.js index c39467bf..fabfeb52 100644 --- a/src/parseSync.js +++ b/src/parseSync.js @@ -181,7 +181,7 @@ function parseSync(parser, source, opts) { } const response = spawnSync(parserArgs.cmd, parserArgs.args, { - input: `${parser}|${opts.printWidth}|${source}`, + input: `${parser}|${opts.printWidth}|${opts.tabWidth}|${source}`, maxBuffer: 15 * 1024 * 1024 }); diff --git a/src/server.rb b/src/server.rb index ab4496b6..57d3232a 100644 --- a/src/server.rb +++ b/src/server.rb @@ -74,8 +74,8 @@ # Start up a new thread that will handle each successive connection. Thread.new(server.accept_nonblock) do |socket| - parser, width, source = - socket.read.force_encoding("UTF-8").split("|", 3) + parser, maxwidth_string, tabwidth_string, source = + socket.read.force_encoding("UTF-8").split("|", 4) source.each_line do |line| case line @@ -92,25 +92,40 @@ end end - maxwidth = width.to_i + # At the moment, we're not going to support odd tabwidths. It's going to + # have to be a multiple of 2, because of the way that the prettyprint + # gem functions. So we're going to just use integer division here. + scalar = tabwidth_string.to_i / 2 + genspace = ->(n) { " " * n * scalar } + + maxwidth = maxwidth_string.to_i response = case parser when "ping" "pong" when "ruby" - formatter = SyntaxTree::Formatter.new(source, [], maxwidth) + formatter = + SyntaxTree::Formatter.new(source, [], maxwidth, "\n", &genspace) SyntaxTree.parse(source).format(formatter) formatter.flush formatter.output.join when "rbs" - formatter = SyntaxTree::RBS::Formatter.new(source, [], maxwidth) + formatter = + SyntaxTree::RBS::Formatter.new( + source, + [], + maxwidth, + "\n", + &genspace + ) SyntaxTree::RBS.parse(source).format(formatter) formatter.flush formatter.output.join when "haml" - PrettierPrint.format(+"", maxwidth) do |q| - SyntaxTree::Haml.parse(source).format(q) - end + formatter = PrettierPrint.new(+"", maxwidth, "\n", &genspace) + SyntaxTree::Haml.parse(source).format(formatter) + formatter.flush + formatter.output end if response From d1eb56712d055c3305c9dd2eccafb0085d703be6 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 22 Jul 2022 13:17:06 -0400 Subject: [PATCH 104/262] Bump version to 3.2.0 --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 218eca5e..21d15d2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [3.2.0] - 2022-07-22 + +### Added + +- [#1250](https://github.com/prettier/plugin-ruby/issues/1250) - alexf101, kddnewton - Respect the `tabWidth` option. + +### Changed + +- [#1255](https://github.com/prettier/plugin-ruby/pull/1255) - soberstadt - The rake task now runs check if write is false. +- [#1237](https://github.com/prettier/plugin-ruby/issues/1237) - boris-petrov - Disable the style rules associated with quotes. +- [#1248](https://github.com/prettier/plugin-ruby/pull/1248) - mhssmnn - Fix process waiting on STDIN. + ## [3.1.2] - 2022-05-13 ### Changed diff --git a/package.json b/package.json index b9a37b9e..bd5e1045 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "3.1.2", + "version": "3.2.0", "description": "prettier plugin for the Ruby programming language", "main": "src/plugin.js", "scripts": { From 053b7beea4c0d8f42c17afe6da3c3b2853464c24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Aug 2022 12:01:06 +0000 Subject: [PATCH 105/262] Bump eslint from 8.20.0 to 8.21.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.20.0 to 8.21.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.20.0...v8.21.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 168 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 148 insertions(+), 20 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6f2c7920..074ccef7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -301,15 +301,20 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.9.2": - version "0.9.5" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" - integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== +"@humanwhocodes/config-array@^0.10.4": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" + integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" minimatch "^3.0.4" +"@humanwhocodes/gitignore-to-minimatch@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" + integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== + "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" @@ -563,6 +568,27 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@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" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + "@sinclair/typebox@^0.24.1": version "0.24.19" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.19.tgz#5297278e0d8a1aea084685a3216074910ac6c113" @@ -678,10 +704,10 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== +acorn@^8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" @@ -1018,6 +1044,13 @@ diff-sequences@^28.1.1: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -1105,12 +1138,13 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.20.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.20.0.tgz#048ac56aa18529967da8354a478be4ec0a2bc81b" - integrity sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA== + version "8.21.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.21.0.tgz#1940a68d7e0573cef6f50037addee295ff9be9ef" + integrity sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA== dependencies: "@eslint/eslintrc" "^1.3.0" - "@humanwhocodes/config-array" "^0.9.2" + "@humanwhocodes/config-array" "^0.10.4" + "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -1120,14 +1154,17 @@ eslint@^8.15.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.2" + espree "^9.3.3" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" + find-up "^5.0.0" functional-red-black-tree "^1.0.1" glob-parent "^6.0.1" globals "^13.15.0" + globby "^11.1.0" + grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" @@ -1145,12 +1182,12 @@ eslint@^8.15.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" - integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== +espree@^9.3.2, espree@^9.3.3: + version "9.3.3" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d" + integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== dependencies: - acorn "^8.7.1" + acorn "^8.8.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" @@ -1234,6 +1271,17 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + 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: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -1244,6 +1292,13 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + 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" @@ -1273,6 +1328,14 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -1333,6 +1396,13 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob-parent@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" @@ -1364,11 +1434,28 @@ globals@^13.15.0: dependencies: type-fest "^0.20.2" +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -1472,7 +1559,7 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0, is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -1969,6 +2056,13 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" @@ -2000,6 +2094,11 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + micromatch@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -2101,7 +2200,7 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.1.0: +p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -2115,6 +2214,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -2157,6 +2263,11 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -2232,6 +2343,11 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + react-is@^18.0.0: version "18.1.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" @@ -2278,6 +2394,11 @@ resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -2285,6 +2406,13 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" From fdaa5d6ddf128d87d391b12ed9876c4846311c4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 12:01:25 +0000 Subject: [PATCH 106/262] Bump eslint from 8.21.0 to 8.22.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.21.0 to 8.22.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.21.0...v8.22.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 074ccef7..f4654254 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1138,9 +1138,9 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.21.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.21.0.tgz#1940a68d7e0573cef6f50037addee295ff9be9ef" - integrity sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA== + version "8.22.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48" + integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA== dependencies: "@eslint/eslintrc" "^1.3.0" "@humanwhocodes/config-array" "^0.10.4" From daaca2142ce657a0e813574740cc12fa197ebf78 Mon Sep 17 00:00:00 2001 From: David Buchan-Swanson Date: Wed, 10 Aug 2022 16:01:48 +1000 Subject: [PATCH 107/262] add back support for standard prettier config options --- README.md | 14 ++++++++------ src/parseSync.js | 13 ++++++++++++- src/plugin.js | 4 +++- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 23869966..76454ed5 100644 --- a/README.md +++ b/README.md @@ -134,12 +134,14 @@ The `prettier` executable is now installed and ready for use: Below are the options (from [`src/plugin.js`](src/plugin.js)) that `@prettier/plugin-ruby` currently supports: -| API Option | CLI Option | Default | Description | -| --------------- | ------------------ | :-----: | --------------------------------------------------------------------------------------------------------------------------- | -| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | -| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | -| `rubyPlugins` | `--ruby-plugins` | `""` | The comma-separated list of plugins to require. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | -| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | +| API Option | CLI Option | Default | Description | +| --------------- | ------------------ | :-----: | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | +| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | +| `rubyPlugins` | `--ruby-plugins` | `""` | The comma-separated list of plugins to require. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | +| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | +| `singleQuote` | `--single-quote` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#quotes)). | +| `trailingComma` | `--trailing-comma` | `es5` | Almost same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#trailing-commas)). Will be on for any value except `none`. | Any of these can be added to your existing [prettier configuration file](https://prettier.io/docs/en/configuration.html). For example: diff --git a/src/parseSync.js b/src/parseSync.js index fabfeb52..a9a7c543 100644 --- a/src/parseSync.js +++ b/src/parseSync.js @@ -114,9 +114,20 @@ function spawnServer(opts) { }; } + const plugins = new Set(opts.rubyPlugins.split(",")); + if (opts.singleQuote) { + plugins.add("plugin/single_quotes"); + } + + if (opts.trailingComma !== "none") { + plugins.add("plugin/trailing_comma"); + } + + const rubyPlugins = Array.from(plugins).join(","); + const server = spawn( "ruby", - [serverRbPath, `--plugins=${opts.rubyPlugins}`, filepath], + [serverRbPath, `--plugins=${rubyPlugins}`, filepath], { env: Object.assign({}, process.env, { LANG: getLang() }), detached: true, diff --git a/src/plugin.js b/src/plugin.js index 9dcda0d3..45c3f95c 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -163,7 +163,9 @@ const plugin = { }, defaultOptions: { printWidth: 80, - tabWidth: 2 + tabWidth: 2, + trailingComma: "none", + singleQuote: false } }; From f61513dfb6ffdf6d4e56c401455738d76add8b4c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Aug 2022 12:01:23 +0000 Subject: [PATCH 108/262] Bump jest from 28.1.3 to 29.0.0 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 28.1.3 to 29.0.0. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.0.0/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 742 ++++++++++++++++++++++++++------------------------- 2 files changed, 382 insertions(+), 362 deletions(-) diff --git a/package.json b/package.json index bd5e1045..15dd8fdd 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "eslint": "^8.15.0", "eslint-config-prettier": "^8.0.0", "husky": "^8.0.1", - "jest": "^28.0.1", + "jest": "^29.0.0", "pretty-quick": "^3.1.2" }, "eslintConfig": { diff --git a/yarn.lock b/yarn.lock index f4654254..c6224a57 100644 --- a/yarn.lock +++ b/yarn.lock @@ -110,6 +110,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== +"@babel/helper-plugin-utils@^7.18.6": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" + integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== + "@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" @@ -192,6 +197,13 @@ 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== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": 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" @@ -336,110 +348,110 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.3.tgz#2030606ec03a18c31803b8a36382762e447655df" - integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== +"@jest/console@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.0.tgz#1e49fcbff7d20c88a6747f27e2fec0e759e405ca" + integrity sha512-rHsKEqT2Kx73PqO9qIOdwg0Grd6Y3COyqNpi5SKRI0qXgmlqXkOczQMfIb8I0Gdnc9/kaMj6cTnBGLyBA03Xrg== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.0" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^28.1.3" - jest-util "^28.1.3" + jest-message-util "^29.0.0" + jest-util "^29.0.0" slash "^3.0.0" -"@jest/core@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" - integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== +"@jest/core@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.0.tgz#6e9213014895bd91117f500bc9e8865d66f981fb" + integrity sha512-9qljprspjQwbmnq3Wv9d/M6/ejMdWs1uAAljQAX9QsjJ1SlSByXw1mRA9UpR2BP9TxLLwEembbm0ykrT//2STg== dependencies: - "@jest/console" "^28.1.3" - "@jest/reporters" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/console" "^29.0.0" + "@jest/reporters" "^29.0.0" + "@jest/test-result" "^29.0.0" + "@jest/transform" "^29.0.0" + "@jest/types" "^29.0.0" "@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 "^28.1.3" - jest-config "^28.1.3" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-resolve-dependencies "^28.1.3" - jest-runner "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - jest-watcher "^28.1.3" + jest-changed-files "^29.0.0" + jest-config "^29.0.0" + jest-haste-map "^29.0.0" + jest-message-util "^29.0.0" + jest-regex-util "^29.0.0" + jest-resolve "^29.0.0" + jest-resolve-dependencies "^29.0.0" + jest-runner "^29.0.0" + jest-runtime "^29.0.0" + jest-snapshot "^29.0.0" + jest-util "^29.0.0" + jest-validate "^29.0.0" + jest-watcher "^29.0.0" micromatch "^4.0.4" - pretty-format "^28.1.3" - rimraf "^3.0.0" + pretty-format "^29.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" - integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== +"@jest/environment@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.0.tgz#069758196cae8458d8b7a7778d0877f2ec04da83" + integrity sha512-ZHLvUENMAnwXowtyhmPRS0QLCXM4TS0ZfuiSR4QfRsJVN5lG4KdBDvI9kHJe/21vrgzPVOkvI7IBnkyPFCbV7g== dependencies: - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/fake-timers" "^29.0.0" + "@jest/types" "^29.0.0" "@types/node" "*" - jest-mock "^28.1.3" + jest-mock "^29.0.0" -"@jest/expect-utils@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" - integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== +"@jest/expect-utils@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.0.tgz#aa3a2cbe4630ac2095cd2bcd3040fe42015fe9ed" + integrity sha512-odQ+cjUpui6++a9Ua/oWn7CG0Af+EZe9weWZbfUQHTg7C3K9PCb0AnD4X7nyAe4WjfeZmVVyG5SJELMQaUbCtg== dependencies: - jest-get-type "^28.0.2" + jest-get-type "^29.0.0" -"@jest/expect@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" - integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== +"@jest/expect@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.0.tgz#e4586136c27aa460afa427db2cd494d890d07b48" + integrity sha512-X2S5NpZOeXXDGBLvU/4K1nAD5iIz6/9Gs041wToI0FiX3glh/aEGGsVv3+SxKddYIb6Ei+ZbqzJmfRzQ7nwPlQ== dependencies: - expect "^28.1.3" - jest-snapshot "^28.1.3" + expect "^29.0.0" + jest-snapshot "^29.0.0" -"@jest/fake-timers@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" - integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== +"@jest/fake-timers@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.0.tgz#6f9a3a6318af5fd6cbac52e20aa868f5643aba23" + integrity sha512-4tqH5fT9H0+Ms3Z1HLZ/JfpzJluep2Zo3uuj0KPyu6IIyYSHCDfkXuiBQNWUGvumZDLQ2Si03cC7Gq0r73VgVg== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.0" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-util "^28.1.3" + jest-message-util "^29.0.0" + jest-mock "^29.0.0" + jest-util "^29.0.0" -"@jest/globals@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" - integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== +"@jest/globals@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.0.tgz#8a65b224e2eb1458d3780652d4ad832611d16066" + integrity sha512-ZHQMh6BZtabbikh9wkuPpVQmPHEpc4EgOaY/UJNM6hHHA5HRmiP5rH54M8267nkGscuqM5KpWP+zAZ4XEOXZag== dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/environment" "^29.0.0" + "@jest/expect" "^29.0.0" + "@jest/types" "^29.0.0" + jest-mock "^29.0.0" -"@jest/reporters@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" - integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== +"@jest/reporters@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.0.tgz#2bcdee6c8a347acdc93421fffc441a2c282a8b0f" + integrity sha512-6ZFLlHQwncULTucAKWeGJLGPvzjgC/0gFmxJi/LgU9G1v498r/RcWQiZBPqhJcSvpWGTCaqjvUGmPCLtrUpubw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" + "@jest/console" "^29.0.0" + "@jest/test-result" "^29.0.0" + "@jest/transform" "^29.0.0" + "@jest/types" "^29.0.0" + "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -451,78 +463,78 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - jest-worker "^28.1.3" + jest-message-util "^29.0.0" + jest-util "^29.0.0" + jest-worker "^29.0.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" terminal-link "^2.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.1.3.tgz#ad8b86a66f11f33619e3d7e1dcddd7f2d40ff905" - integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== +"@jest/schemas@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" + integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/source-map@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24" - integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== +"@jest/source-map@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.0.0.tgz#f8d1518298089f8ae624e442bbb6eb870ee7783c" + integrity sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ== dependencies: - "@jridgewell/trace-mapping" "^0.3.13" + "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.3.tgz#5eae945fd9f4b8fcfce74d239e6f725b6bf076c5" - integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== +"@jest/test-result@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.0.tgz#592f556b94a9d9aed951dd43c310370239c9cb56" + integrity sha512-mv76j8ILaqOuZAWBGR1/ZSRinN5Q/eEji7kMcvADjd+gQGfn/Py+91nUrVakJT69idC66bvQ7yF24frQpzFKUg== dependencies: - "@jest/console" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/console" "^29.0.0" + "@jest/types" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" - integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== +"@jest/test-sequencer@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.0.tgz#32da68bec6f83f5f2c7936946eac54d80ba96d0e" + integrity sha512-uL6yX//SUME1c/ucbY365obdsrPjvSoNBwB80WTe+drYL4jf7A87vA2+w4hYwXJEIGQspv5skg3iB/sJSys7ew== dependencies: - "@jest/test-result" "^28.1.3" + "@jest/test-result" "^29.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" + jest-haste-map "^29.0.0" slash "^3.0.0" -"@jest/transform@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" - integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== +"@jest/transform@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.0.tgz#a19c6af7724786ac286dde2037d077372ce8c76e" + integrity sha512-hwyBt8UR5o8GGaphmRqNQwVCctiOR8ncugCp/RlInEZvQ+ysKkS5TFfe5RgeQ0KtKdWByQqn5yA574LLOp3OWw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" + "@jest/types" "^29.0.0" + "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" + fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" + jest-haste-map "^29.0.0" + jest-regex-util "^29.0.0" + jest-util "^29.0.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" - integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== +"@jest/types@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.0.tgz#16bef8898fec32c2c5c17a6eb770539986322587" + integrity sha512-ErShruvByUF7vphEtPugMAphCtDIDdfWh3DxpBLxPEtHhL/H5MaidHsOutnOUhKpPL7QA6/7GitjFgLOLeGa1A== dependencies: - "@jest/schemas" "^28.1.3" + "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -552,7 +564,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13": +"@jridgewell/trace-mapping@^0.3.12": version "0.3.14" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== @@ -560,6 +572,14 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.15": + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping@^0.3.9": version "0.3.13" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" @@ -785,15 +805,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" - integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== +babel-jest@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.0.tgz#abf783ce6eb999cfb6764915bd86d3055a8ae3be" + integrity sha512-EJM2dqxz9+uWJLLucZLPYAmRsHHt1IMkitAHGqjDlIP2IQXzkIMO3ATbBWk0lU6VwX4rNeVN04t/DDB8U5C2rg== dependencies: - "@jest/transform" "^28.1.3" + "@jest/transform" "^29.0.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.3" + babel-preset-jest "^29.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -809,10 +829,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" - integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== +babel-plugin-jest-hoist@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.0.tgz#ae4873399a199ede93697a15919d3d0f614a2eb1" + integrity sha512-B9oaXrlxXHFWeWqhDPg03iqQd2UN/mg/VdZOsLaqAVBkztru3ctTryAI4zisxLEEgmcUnLTKewqx0gGifoXD3A== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -837,12 +857,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" - integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== +babel-preset-jest@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.0.tgz#52d7f1afe3a15d14a3c5ab4349cbd388d98d330b" + integrity sha512-B5Ke47Xcs8rDF3p1korT3LoilpADCwbG93ALqtvqu6Xpf4d8alKkrCBTExbNzdHJcIuEPpfYvEaFFRGee2kUgQ== dependencies: - babel-plugin-jest-hoist "^28.1.3" + babel-plugin-jest-hoist "^29.0.0" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1039,10 +1059,10 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" - integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== +diff-sequences@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.0.0.tgz#bae49972ef3933556bcb0800b72e8579d19d9e4f" + integrity sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA== dir-glob@^3.0.1: version "3.0.1" @@ -1255,16 +1275,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" - integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== +expect@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.0.tgz#e4af58cf4343683ffeca875d75d5c790f2712565" + integrity sha512-OKAHGwaBqZ6I7bas0cnrrvomEL2d0yp2XXYQhhnVHfaqDaKStUBxjWtlGu/uI2tBqwb9sBMvaS41DSJFsRRJHQ== dependencies: - "@jest/expect-utils" "^28.1.3" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" + "@jest/expect-utils" "^29.0.0" + jest-get-type "^29.0.0" + jest-matcher-utils "^29.0.0" + jest-message-util "^29.0.0" + jest-util "^29.0.0" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1282,7 +1302,7 @@ fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0: +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== @@ -1623,188 +1643,188 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" - integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== +jest-changed-files@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.0.0.tgz#aa238eae42d9372a413dd9a8dadc91ca1806dce0" + integrity sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" - integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== +jest-circus@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.0.tgz#086e825159edf711c504cfc0ca0816bc756e5494" + integrity sha512-6EX70/+ZdzPLShBeokMVIpUaq5cQpOsO4OCDiV1drKUHht0hmUOWvY6LE4pBSFdepB0Sukw4Y0ajRqtvLBO9/A== dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/environment" "^29.0.0" + "@jest/expect" "^29.0.0" + "@jest/test-result" "^29.0.0" + "@jest/types" "^29.0.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" + jest-each "^29.0.0" + jest-matcher-utils "^29.0.0" + jest-message-util "^29.0.0" + jest-runtime "^29.0.0" + jest-snapshot "^29.0.0" + jest-util "^29.0.0" p-limit "^3.1.0" - pretty-format "^28.1.3" + pretty-format "^29.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" - integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== +jest-cli@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.0.tgz#ea38f017f5ad8f435f9b2910a7e8e18607ebc644" + integrity sha512-VZUPQjWJKL8QABFiBk1tHeJ3czBodjU9r22ceQmeL7X8/M73FYxTte0RkYPHI2SiLPWy99GZNWA+oOu9x0xKOA== dependencies: - "@jest/core" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/core" "^29.0.0" + "@jest/test-result" "^29.0.0" + "@jest/types" "^29.0.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" + jest-config "^29.0.0" + jest-util "^29.0.0" + jest-validate "^29.0.0" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60" - integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== +jest-config@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.0.tgz#fb2408b447ff9479a2aed7f0ee6f1888665ff8ca" + integrity sha512-RbcUgQBJDS0O8OThWUwm5UCfzo0zOymUX/cJzUNlYB1ZWqe3M8MFEcgwqgZSifYuYTi46xWu5cmkMiyRQAdnMw== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.3" - "@jest/types" "^28.1.3" - babel-jest "^28.1.3" + "@jest/test-sequencer" "^29.0.0" + "@jest/types" "^29.0.0" + babel-jest "^29.0.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 "^28.1.3" - jest-environment-node "^28.1.3" - jest-get-type "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-runner "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" + jest-circus "^29.0.0" + jest-environment-node "^29.0.0" + jest-get-type "^29.0.0" + jest-regex-util "^29.0.0" + jest-resolve "^29.0.0" + jest-runner "^29.0.0" + jest-util "^29.0.0" + jest-validate "^29.0.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^28.1.3" + pretty-format "^29.0.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" - integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== +jest-diff@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.0.tgz#24a3dd5846ae0e48cba0194b1397178b06b123ad" + integrity sha512-erkuYf1dQBHow3XJmS+bH6t9TZ0GwrSdQGauN8sTqyZlFByOjRadmHgTTcAHINeeSwxzGHN2ob3PXVvZphD7XQ== dependencies: chalk "^4.0.0" - diff-sequences "^28.1.1" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + diff-sequences "^29.0.0" + jest-get-type "^29.0.0" + pretty-format "^29.0.0" -jest-docblock@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" - integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== +jest-docblock@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.0.0.tgz#3151bcc45ed7f5a8af4884dcc049aee699b4ceae" + integrity sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw== dependencies: detect-newline "^3.0.0" -jest-each@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" - integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== +jest-each@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.0.tgz#1aff8fae85ed2094ca3b64ae9ab61225dbf20c6a" + integrity sha512-ACKRvqdo7Bc0YrjQbrQtokpQ2NZxdXA63OklJht7a9UarCJXlZeWh51wEUe0ORqbnu15nAnX1YFQHmVpS1+ZXA== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.0" chalk "^4.0.0" - jest-get-type "^28.0.2" - jest-util "^28.1.3" - pretty-format "^28.1.3" - -jest-environment-node@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" - integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" + jest-get-type "^29.0.0" + jest-util "^29.0.0" + pretty-format "^29.0.0" + +jest-environment-node@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.0.tgz#849fc1c0b149cf7e6f9513715a0ec6b775ee3506" + integrity sha512-Cns21Vgu0z7LjtssL0SWkxmjclHdwXeECFAP3ONit5NPnGCbv+0Rqby8w9vK7NpFlUaFgMmLYYBsUjSmIhwpvg== + dependencies: + "@jest/environment" "^29.0.0" + "@jest/fake-timers" "^29.0.0" + "@jest/types" "^29.0.0" "@types/node" "*" - jest-mock "^28.1.3" - jest-util "^28.1.3" + jest-mock "^29.0.0" + jest-util "^29.0.0" -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== +jest-get-type@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" + integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== -jest-haste-map@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" - integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== +jest-haste-map@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.0.tgz#52078a615aaa8a3ef017903e43cd413894fca768" + integrity sha512-mLyDt2WyNU0DZ64s7kRFkFJzrHEuXIxG+OKOs9/P5s1W7NzXE+P7SvLbxjz2Cg63cJjuglYRrD6fZcYf19T8Lw== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.0" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" - jest-worker "^28.1.3" + jest-regex-util "^29.0.0" + jest-util "^29.0.0" + jest-worker "^29.0.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" - integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== +jest-leak-detector@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.0.tgz#7a6791cf61513550a8fc4a95f907f77db899204f" + integrity sha512-kBjNS0/z2+ZV/3N7R+ot5fKD2W1fHkoxC3kH/fkb2z24YSPfR9RGwiNX+YLRG9r0gWsxQx16boxzHT23G6rFBw== dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + jest-get-type "^29.0.0" + pretty-format "^29.0.0" -jest-matcher-utils@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" - integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== +jest-matcher-utils@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.0.tgz#7e79d5d43ccbe4fe2b27f812986f196e7a98746c" + integrity sha512-HtCxFHI8lQSbN1RppFjtl6DIrS+x4d3lOhpJljVxFEXob4lxlKon3FunW0XoGxNSvIoD00AfTFspnufpOqszrg== dependencies: chalk "^4.0.0" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + jest-diff "^29.0.0" + jest-get-type "^29.0.0" + pretty-format "^29.0.0" -jest-message-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.3.tgz#232def7f2e333f1eecc90649b5b94b0055e7c43d" - integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== +jest-message-util@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.0.tgz#7995991fca9b41dc8410d0952894bbd4c5052ba8" + integrity sha512-4U0RdNV0TBTgVGzEchjryEpq4sqLO3gUQT7TEIbO5+q0K5MuiofOPcXk4GLpWviWByMRJjliQNMuzJ4YGT+oGQ== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.0" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^28.1.3" + pretty-format "^29.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" - integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== +jest-mock@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.0.tgz#dff9e2a9caa9c813115db24e78d00a0cba9f0019" + integrity sha512-0AWznVt415KMCxcJPaE2+tWaruw0w8aRrKH1Y/NZUx3+Pd9f20jQjUR82iHqGSuYS4EOHL9uI8SjAhJk+ET91g== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.0" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -1812,174 +1832,175 @@ jest-pnp-resolver@^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@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== +jest-regex-util@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" + integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== -jest-resolve-dependencies@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" - integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== +jest-resolve-dependencies@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.0.tgz#6c7886caa63838acb207f2caa7eb8f64930fb1e7" + integrity sha512-1TYUMcLZcUqa2fdUQ3leYtiXWXfNmimPvnJ34YDLLf0nyJ/aEeqlHJM9Ji2jw9Qxdh7nUypanjUlUV87yRHBFQ== dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.1.3" + jest-regex-util "^29.0.0" + jest-snapshot "^29.0.0" -jest-resolve@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" - integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== +jest-resolve@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.0.tgz#63d8e0b5cae115203da65cc8331722a315069351" + integrity sha512-MN19maPUXzibBshYg/cSrDWqiJwEBur6gbQb2lwOL4+6k14wdNW8Xh0uNPPxUntb7cpTi07uql/bUO5TVwiJbA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" + jest-haste-map "^29.0.0" jest-pnp-resolver "^1.2.2" - jest-util "^28.1.3" - jest-validate "^28.1.3" + jest-util "^29.0.0" + jest-validate "^29.0.0" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" - integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== +jest-runner@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.0.tgz#8fff8a248b912e8be033a0b61d477a323b349397" + integrity sha512-OpTpRIBOIn9RXuMMrpS+h9ZoK+nZHaOuNOceUiDbDoOJ6pmeGu0zst7VR22xXT3fOCwWqg5qe0fZ23G+ve5P0Q== dependencies: - "@jest/console" "^28.1.3" - "@jest/environment" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/console" "^29.0.0" + "@jest/environment" "^29.0.0" + "@jest/test-result" "^29.0.0" + "@jest/transform" "^29.0.0" + "@jest/types" "^29.0.0" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" - jest-docblock "^28.1.1" - jest-environment-node "^28.1.3" - jest-haste-map "^28.1.3" - jest-leak-detector "^28.1.3" - jest-message-util "^28.1.3" - jest-resolve "^28.1.3" - jest-runtime "^28.1.3" - jest-util "^28.1.3" - jest-watcher "^28.1.3" - jest-worker "^28.1.3" + jest-docblock "^29.0.0" + jest-environment-node "^29.0.0" + jest-haste-map "^29.0.0" + jest-leak-detector "^29.0.0" + jest-message-util "^29.0.0" + jest-resolve "^29.0.0" + jest-runtime "^29.0.0" + jest-util "^29.0.0" + jest-watcher "^29.0.0" + jest-worker "^29.0.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" - integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/globals" "^28.1.3" - "@jest/source-map" "^28.1.2" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" +jest-runtime@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.0.tgz#544e610ca0e55748819a31c18e3166abff7302f4" + integrity sha512-dU0qFpTRWZY7Rur7yBgpz4g67mITSozBZ1jlhoG4ER/P/NiTFyZ/W8nMd5floeAMafmbrOc/5A9SlCu7SQCoBA== + dependencies: + "@jest/environment" "^29.0.0" + "@jest/fake-timers" "^29.0.0" + "@jest/globals" "^29.0.0" + "@jest/source-map" "^29.0.0" + "@jest/test-result" "^29.0.0" + "@jest/transform" "^29.0.0" + "@jest/types" "^29.0.0" + "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" - execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" + jest-haste-map "^29.0.0" + jest-message-util "^29.0.0" + jest-mock "^29.0.0" + jest-regex-util "^29.0.0" + jest-resolve "^29.0.0" + jest-snapshot "^29.0.0" + jest-util "^29.0.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" - integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== +jest-snapshot@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.0.tgz#5a349608cb7fa12dbdafad999cd5a3ed571bfd90" + integrity sha512-rR3B8GInk/IibF0M/sQCukSM8xX8bPI3Q0kjoAw4HT9Mx0Q3bS0MmF74rsreBOnVJgzN0Iwrc7YY56Yp8KQ7kA== 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/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/expect-utils" "^29.0.0" + "@jest/transform" "^29.0.0" + "@jest/types" "^29.0.0" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.1.3" + expect "^29.0.0" graceful-fs "^4.2.9" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - jest-haste-map "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" + jest-diff "^29.0.0" + jest-get-type "^29.0.0" + jest-haste-map "^29.0.0" + jest-matcher-utils "^29.0.0" + jest-message-util "^29.0.0" + jest-util "^29.0.0" natural-compare "^1.4.0" - pretty-format "^28.1.3" + pretty-format "^29.0.0" semver "^7.3.5" -jest-util@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" - integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== +jest-util@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.0.tgz#54dfddf25fb011a2ff93fe8d11738dee8ff7f663" + integrity sha512-HMjW/pkFgi34LGKumjNDK03DYonV+nPMNUZ63rZX8PFdBkdIWUtOCEiaa7sAJkWrw5MyMVzSpa22NcOJjoQ3JQ== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.0" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" - integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== +jest-validate@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.0.tgz#714f9f013e7dc4cb3a20b098170fbed3fbad4252" + integrity sha512-UhgDKmahJnv5s5MK6a8kQ397YNS9euvL7gWTvUf7y0OO7vZeafUItlq3tguvfFVazQJ+kBGUm/XCJes7V61l8g== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.0" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^28.0.2" + jest-get-type "^29.0.0" leven "^3.1.0" - pretty-format "^28.1.3" + pretty-format "^29.0.0" -jest-watcher@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" - integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== +jest-watcher@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.0.tgz#7ecdf96acaafa0d1afe4be9695f3c81978afd20d" + integrity sha512-GoRq5QJt5/dv3keK7rIzg9R0e/HpTnjyMNYtCTTDZgGIj6QUDMpiJqt7Mwfyyaxwg5PS8gVyQvRQn6Lril4cuQ== dependencies: - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/test-result" "^29.0.0" + "@jest/types" "^29.0.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^28.1.3" + jest-util "^29.0.0" string-length "^4.0.1" -jest-worker@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" - integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== +jest-worker@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.0.tgz#a1c7b67b2d9ce057383999b32d8b71794efcd0b9" + integrity sha512-2t9Panx3F9N1wAvRuZT7xLEptRFc1C5G90DOHniIGz1JIgF9uhd5u8jNBsc7wN63lhnaiLeVLnNx21wT7OVFEQ== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^28.0.1: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" - integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== +jest@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.0.tgz#0614bce40ffd3a1a19a30c8a2c66d19103712001" + integrity sha512-9uz4Tclskb8WrfRXqu66FsFCFoyYctwWXpruKwnD95FZqkyoEAA1oGH53HUn7nQx7uEgZTKdNl/Yo6DqqU+XMg== dependencies: - "@jest/core" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/core" "^29.0.0" + "@jest/types" "^29.0.0" import-local "^3.0.2" - jest-cli "^28.1.3" + jest-cli "^29.0.0" js-tokens@^4.0.0: version "4.0.0" @@ -2300,13 +2321,12 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" - integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== +pretty-format@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.0.tgz#a9a604ca71678f803f34f6563a25a638fce267ba" + integrity sha512-tMkFRn1vxRwZdiDETcveuNeonRKDg4doOvI+iyb1sOAtxYioGzRicqnsr+d3C/lLv9hBiM/2lDBi5ilR81h2bQ== dependencies: - "@jest/schemas" "^28.1.3" - ansi-regex "^5.0.1" + "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -2399,7 +2419,7 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== From 8517e34a5b4191cd6b2330a28c056f5e5445f4dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Aug 2022 12:01:10 +0000 Subject: [PATCH 109/262] Bump eslint from 8.22.0 to 8.23.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.22.0 to 8.23.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.22.0...v8.23.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/yarn.lock b/yarn.lock index c6224a57..8c265d90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -298,14 +298,14 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" - integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== +"@eslint/eslintrc@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d" + integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.2" + espree "^9.4.0" globals "^13.15.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -327,6 +327,11 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" @@ -1158,13 +1163,14 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.22.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48" - integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA== + version "8.23.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.0.tgz#a184918d288820179c6041bb3ddcc99ce6eea040" + integrity sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA== dependencies: - "@eslint/eslintrc" "^1.3.0" + "@eslint/eslintrc" "^1.3.1" "@humanwhocodes/config-array" "^0.10.4" "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + "@humanwhocodes/module-importer" "^1.0.1" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -1174,7 +1180,7 @@ eslint@^8.15.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.3" + espree "^9.4.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -1200,12 +1206,11 @@ eslint@^8.15.0: strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^9.3.2, espree@^9.3.3: - version "9.3.3" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d" - integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== +espree@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" + integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" @@ -2643,11 +2648,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - v8-to-istanbul@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" From 1c4b5368f2bb1af7f3e3c0ba61c13619c18eb2dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Aug 2022 12:01:12 +0000 Subject: [PATCH 110/262] Bump jest from 29.0.0 to 29.0.1 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.0.0 to 29.0.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.0.1/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 582 +++++++++++++++++++++++++++--------------------------- 1 file changed, 291 insertions(+), 291 deletions(-) diff --git a/yarn.lock b/yarn.lock index c6224a57..3baea5b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -348,28 +348,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.0.tgz#1e49fcbff7d20c88a6747f27e2fec0e759e405ca" - integrity sha512-rHsKEqT2Kx73PqO9qIOdwg0Grd6Y3COyqNpi5SKRI0qXgmlqXkOczQMfIb8I0Gdnc9/kaMj6cTnBGLyBA03Xrg== +"@jest/console@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.1.tgz#e0e429cfc89900e3a46ce27f493bf488395ade39" + integrity sha512-SxLvSKf9gk4Rvt3p2KRQWVQ3sVj7S37rjlCHwp2+xNcRO/X+Uw0idbkfOtciUpjghHIxyggqcrrKhThQ+vClLQ== dependencies: - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.0.0" - jest-util "^29.0.0" + jest-message-util "^29.0.1" + jest-util "^29.0.1" slash "^3.0.0" -"@jest/core@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.0.tgz#6e9213014895bd91117f500bc9e8865d66f981fb" - integrity sha512-9qljprspjQwbmnq3Wv9d/M6/ejMdWs1uAAljQAX9QsjJ1SlSByXw1mRA9UpR2BP9TxLLwEembbm0ykrT//2STg== - dependencies: - "@jest/console" "^29.0.0" - "@jest/reporters" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/transform" "^29.0.0" - "@jest/types" "^29.0.0" +"@jest/core@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.1.tgz#a49517795f692a510b6fae55a9c09e659826c472" + integrity sha512-EcFrXkYh8I1GYHRH9V4TU7jr4P6ckaPqGo/z4AIJjHDZxicjYgWB6fx1xFb5bhEM87eUjCF4FAY5t+RamLWQmA== + dependencies: + "@jest/console" "^29.0.1" + "@jest/reporters" "^29.0.1" + "@jest/test-result" "^29.0.1" + "@jest/transform" "^29.0.1" + "@jest/types" "^29.0.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -377,80 +377,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.0.0" - jest-config "^29.0.0" - jest-haste-map "^29.0.0" - jest-message-util "^29.0.0" + jest-config "^29.0.1" + jest-haste-map "^29.0.1" + jest-message-util "^29.0.1" jest-regex-util "^29.0.0" - jest-resolve "^29.0.0" - jest-resolve-dependencies "^29.0.0" - jest-runner "^29.0.0" - jest-runtime "^29.0.0" - jest-snapshot "^29.0.0" - jest-util "^29.0.0" - jest-validate "^29.0.0" - jest-watcher "^29.0.0" + jest-resolve "^29.0.1" + jest-resolve-dependencies "^29.0.1" + jest-runner "^29.0.1" + jest-runtime "^29.0.1" + jest-snapshot "^29.0.1" + jest-util "^29.0.1" + jest-validate "^29.0.1" + jest-watcher "^29.0.1" micromatch "^4.0.4" - pretty-format "^29.0.0" + pretty-format "^29.0.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.0.tgz#069758196cae8458d8b7a7778d0877f2ec04da83" - integrity sha512-ZHLvUENMAnwXowtyhmPRS0QLCXM4TS0ZfuiSR4QfRsJVN5lG4KdBDvI9kHJe/21vrgzPVOkvI7IBnkyPFCbV7g== +"@jest/environment@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.1.tgz#d236ce9e906744ac58bfc59ae6f7c9882ace7927" + integrity sha512-iLcFfoq2K6DAB+Mc+2VNLzZVmHdwQFeSqvoM/X8SMON6s/+yEi1iuRX3snx/JfwSnvmiMXjSr0lktxNxOcqXYA== dependencies: - "@jest/fake-timers" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/fake-timers" "^29.0.1" + "@jest/types" "^29.0.1" "@types/node" "*" - jest-mock "^29.0.0" + jest-mock "^29.0.1" -"@jest/expect-utils@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.0.tgz#aa3a2cbe4630ac2095cd2bcd3040fe42015fe9ed" - integrity sha512-odQ+cjUpui6++a9Ua/oWn7CG0Af+EZe9weWZbfUQHTg7C3K9PCb0AnD4X7nyAe4WjfeZmVVyG5SJELMQaUbCtg== +"@jest/expect-utils@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.1.tgz#c1a84ee66caaef537f351dd82f7c63d559cf78d5" + integrity sha512-Tw5kUUOKmXGQDmQ9TSgTraFFS7HMC1HG/B7y0AN2G2UzjdAXz9BzK2rmNpCSDl7g7y0Gf/VLBm//blonvhtOTQ== dependencies: jest-get-type "^29.0.0" -"@jest/expect@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.0.tgz#e4586136c27aa460afa427db2cd494d890d07b48" - integrity sha512-X2S5NpZOeXXDGBLvU/4K1nAD5iIz6/9Gs041wToI0FiX3glh/aEGGsVv3+SxKddYIb6Ei+ZbqzJmfRzQ7nwPlQ== +"@jest/expect@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.1.tgz#0ffde7f5b4c87f1dd6f8664726bd53f6cd1f7014" + integrity sha512-qKB3q52XDV8VUEiqKKLgLrJx7puQ8sYVqIDlul6n7SIXWS97DOK3KqbR2rDDaMtmenRHqEUl2fI+aFzx0oSemA== dependencies: - expect "^29.0.0" - jest-snapshot "^29.0.0" + expect "^29.0.1" + jest-snapshot "^29.0.1" -"@jest/fake-timers@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.0.tgz#6f9a3a6318af5fd6cbac52e20aa868f5643aba23" - integrity sha512-4tqH5fT9H0+Ms3Z1HLZ/JfpzJluep2Zo3uuj0KPyu6IIyYSHCDfkXuiBQNWUGvumZDLQ2Si03cC7Gq0r73VgVg== +"@jest/fake-timers@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.1.tgz#51ba7a82431db479d4b828576c139c4c0dc5e409" + integrity sha512-XZ+kAhLChVQ+KJNa5034p7O1Mz3vtWrelxDcMoxhZkgqmWDaEQAW9qJeutaeCfPvwaEwKYVyKDYfWpcyT8RiMw== dependencies: - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.0.0" - jest-mock "^29.0.0" - jest-util "^29.0.0" + jest-message-util "^29.0.1" + jest-mock "^29.0.1" + jest-util "^29.0.1" -"@jest/globals@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.0.tgz#8a65b224e2eb1458d3780652d4ad832611d16066" - integrity sha512-ZHQMh6BZtabbikh9wkuPpVQmPHEpc4EgOaY/UJNM6hHHA5HRmiP5rH54M8267nkGscuqM5KpWP+zAZ4XEOXZag== +"@jest/globals@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.1.tgz#764135ad31408fb632b3126793ab3aaed933095f" + integrity sha512-BtZWrVrKRKNUt7T1H2S8Mz31PN7ItROCmH+V5pn10hJDUfjOCTIUwb0WtLZzm0f1tJ3Uvx+5lVZrF/VTKqNaFg== dependencies: - "@jest/environment" "^29.0.0" - "@jest/expect" "^29.0.0" - "@jest/types" "^29.0.0" - jest-mock "^29.0.0" + "@jest/environment" "^29.0.1" + "@jest/expect" "^29.0.1" + "@jest/types" "^29.0.1" + jest-mock "^29.0.1" -"@jest/reporters@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.0.tgz#2bcdee6c8a347acdc93421fffc441a2c282a8b0f" - integrity sha512-6ZFLlHQwncULTucAKWeGJLGPvzjgC/0gFmxJi/LgU9G1v498r/RcWQiZBPqhJcSvpWGTCaqjvUGmPCLtrUpubw== +"@jest/reporters@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.1.tgz#82a491657031c1cc278bf659905e5094973309ad" + integrity sha512-dM3L8JmYYOsdeXUUVZClQy67Tz/v1sMo9h4AQv2U+716VLHV0zdA6Hh4FQNAHMhYw/95dbZbPX8Q+TRR7Rw+wA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/transform" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/console" "^29.0.1" + "@jest/test-result" "^29.0.1" + "@jest/transform" "^29.0.1" + "@jest/types" "^29.0.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -463,9 +463,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.0.0" - jest-util "^29.0.0" - jest-worker "^29.0.0" + jest-message-util "^29.0.1" + jest-util "^29.0.1" + jest-worker "^29.0.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -488,51 +488,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.0.tgz#592f556b94a9d9aed951dd43c310370239c9cb56" - integrity sha512-mv76j8ILaqOuZAWBGR1/ZSRinN5Q/eEji7kMcvADjd+gQGfn/Py+91nUrVakJT69idC66bvQ7yF24frQpzFKUg== +"@jest/test-result@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.1.tgz#97ac334e4c6f7d016c341cdd500aa423a38e4cdd" + integrity sha512-XCA4whh/igxjBaR/Hg8qwFd/uTsauoD7QAdAYUjV2CSGx0+iunhjoCRRWTwqjQrETRqOJABx6kNfw0+C0vMSgQ== dependencies: - "@jest/console" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/console" "^29.0.1" + "@jest/types" "^29.0.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.0.tgz#32da68bec6f83f5f2c7936946eac54d80ba96d0e" - integrity sha512-uL6yX//SUME1c/ucbY365obdsrPjvSoNBwB80WTe+drYL4jf7A87vA2+w4hYwXJEIGQspv5skg3iB/sJSys7ew== +"@jest/test-sequencer@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.1.tgz#7074b5f89ce30941b5b0fb493a19308d441a30b8" + integrity sha512-3GhSBMCRcWXGluP2Dw7CLP6mNke/t+EcftF5YjzhX1BJmqcatMbtZVwjuCfZy0TCME1GevXy3qTyV5PLpwIFKQ== dependencies: - "@jest/test-result" "^29.0.0" + "@jest/test-result" "^29.0.1" graceful-fs "^4.2.9" - jest-haste-map "^29.0.0" + jest-haste-map "^29.0.1" slash "^3.0.0" -"@jest/transform@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.0.tgz#a19c6af7724786ac286dde2037d077372ce8c76e" - integrity sha512-hwyBt8UR5o8GGaphmRqNQwVCctiOR8ncugCp/RlInEZvQ+ysKkS5TFfe5RgeQ0KtKdWByQqn5yA574LLOp3OWw== +"@jest/transform@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.1.tgz#fdaa5d9e135c9bd7addbe65bedd1f15ad028cc7e" + integrity sha512-6UxXtqrPScFdDhoip8ys60dQAIYppQinyR87n9nlasR/ZnFfJohKToqzM29KK4gb9gHRv5oDFChdqZKE0SIhsg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.1" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.0" + jest-haste-map "^29.0.1" jest-regex-util "^29.0.0" - jest-util "^29.0.0" + jest-util "^29.0.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.0.tgz#16bef8898fec32c2c5c17a6eb770539986322587" - integrity sha512-ErShruvByUF7vphEtPugMAphCtDIDdfWh3DxpBLxPEtHhL/H5MaidHsOutnOUhKpPL7QA6/7GitjFgLOLeGa1A== +"@jest/types@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.1.tgz#1985650acf137bdb81710ff39a4689ec071dd86a" + integrity sha512-ft01rxzVsbh9qZPJ6EFgAIj3PT9FCRfBF9Xljo2/33VDOUjLZr0ZJ2oKANqh9S/K0/GERCsHDAQlBwj7RxA+9g== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -805,12 +805,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.0.tgz#abf783ce6eb999cfb6764915bd86d3055a8ae3be" - integrity sha512-EJM2dqxz9+uWJLLucZLPYAmRsHHt1IMkitAHGqjDlIP2IQXzkIMO3ATbBWk0lU6VwX4rNeVN04t/DDB8U5C2rg== +babel-jest@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.1.tgz#db50de501fc8727e768f5aa417496cb871ee1ba0" + integrity sha512-wyI9r8tqwsZEMWiIaYjdUJ6ztZIO4DMWpGq7laW34wR71WtRS+D/iBEtXOP5W2aSYCVUQMsypRl/xiJYZznnTg== dependencies: - "@jest/transform" "^29.0.0" + "@jest/transform" "^29.0.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.0.0" @@ -1275,16 +1275,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.0.tgz#e4af58cf4343683ffeca875d75d5c790f2712565" - integrity sha512-OKAHGwaBqZ6I7bas0cnrrvomEL2d0yp2XXYQhhnVHfaqDaKStUBxjWtlGu/uI2tBqwb9sBMvaS41DSJFsRRJHQ== +expect@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.1.tgz#a2fa64a59cffe4b4007877e730bc82be3d1742bb" + integrity sha512-yQgemsjLU+1S8t2A7pXT3Sn/v5/37LY8J+tocWtKEA0iEYYc6gfKbbJJX2fxHZmd7K9WpdbQqXUpmYkq1aewYg== dependencies: - "@jest/expect-utils" "^29.0.0" + "@jest/expect-utils" "^29.0.1" jest-get-type "^29.0.0" - jest-matcher-utils "^29.0.0" - jest-message-util "^29.0.0" - jest-util "^29.0.0" + jest-matcher-utils "^29.0.1" + jest-message-util "^29.0.1" + jest-util "^29.0.1" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1651,86 +1651,86 @@ jest-changed-files@^29.0.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.0.tgz#086e825159edf711c504cfc0ca0816bc756e5494" - integrity sha512-6EX70/+ZdzPLShBeokMVIpUaq5cQpOsO4OCDiV1drKUHht0hmUOWvY6LE4pBSFdepB0Sukw4Y0ajRqtvLBO9/A== +jest-circus@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.1.tgz#7ecb4913e134fb4addc03655fb36c9398014fa07" + integrity sha512-I5J4LyK3qPo8EnqPmxsMAVR+2SFx7JOaZsbqW9xQmk4UDmTCD92EQgS162Ey3Jq6CfpKJKFDhzhG3QqiE0fRbw== dependencies: - "@jest/environment" "^29.0.0" - "@jest/expect" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/environment" "^29.0.1" + "@jest/expect" "^29.0.1" + "@jest/test-result" "^29.0.1" + "@jest/types" "^29.0.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.0.0" - jest-matcher-utils "^29.0.0" - jest-message-util "^29.0.0" - jest-runtime "^29.0.0" - jest-snapshot "^29.0.0" - jest-util "^29.0.0" + jest-each "^29.0.1" + jest-matcher-utils "^29.0.1" + jest-message-util "^29.0.1" + jest-runtime "^29.0.1" + jest-snapshot "^29.0.1" + jest-util "^29.0.1" p-limit "^3.1.0" - pretty-format "^29.0.0" + pretty-format "^29.0.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.0.tgz#ea38f017f5ad8f435f9b2910a7e8e18607ebc644" - integrity sha512-VZUPQjWJKL8QABFiBk1tHeJ3czBodjU9r22ceQmeL7X8/M73FYxTte0RkYPHI2SiLPWy99GZNWA+oOu9x0xKOA== +jest-cli@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.1.tgz#6633c2ab97337ac5207910bd6b0aba2ef0900110" + integrity sha512-XozBHtoJCS6mnjCxNESyGm47Y4xSWzNlBJj4tix9nGrG6m068B83lrTWKtjYAenYSfOqyYVpQCkyqUp35IT+qA== dependencies: - "@jest/core" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/core" "^29.0.1" + "@jest/test-result" "^29.0.1" + "@jest/types" "^29.0.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.0.0" - jest-util "^29.0.0" - jest-validate "^29.0.0" + jest-config "^29.0.1" + jest-util "^29.0.1" + jest-validate "^29.0.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.0.tgz#fb2408b447ff9479a2aed7f0ee6f1888665ff8ca" - integrity sha512-RbcUgQBJDS0O8OThWUwm5UCfzo0zOymUX/cJzUNlYB1ZWqe3M8MFEcgwqgZSifYuYTi46xWu5cmkMiyRQAdnMw== +jest-config@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.1.tgz#bccc2aedc3bafb6cb08bad23e5f0fcc3b1959268" + integrity sha512-3duIx5ucEPIsUOESDTuasMfqHonD0oZRjqHycIMHSC4JwbvHDjAWNKN/NiM0ZxHXjAYrMTLt2QxSQ+IqlbYE5A== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.0.0" - "@jest/types" "^29.0.0" - babel-jest "^29.0.0" + "@jest/test-sequencer" "^29.0.1" + "@jest/types" "^29.0.1" + babel-jest "^29.0.1" 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.0.0" - jest-environment-node "^29.0.0" + jest-circus "^29.0.1" + jest-environment-node "^29.0.1" jest-get-type "^29.0.0" jest-regex-util "^29.0.0" - jest-resolve "^29.0.0" - jest-runner "^29.0.0" - jest-util "^29.0.0" - jest-validate "^29.0.0" + jest-resolve "^29.0.1" + jest-runner "^29.0.1" + jest-util "^29.0.1" + jest-validate "^29.0.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.0.0" + pretty-format "^29.0.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.0.tgz#24a3dd5846ae0e48cba0194b1397178b06b123ad" - integrity sha512-erkuYf1dQBHow3XJmS+bH6t9TZ0GwrSdQGauN8sTqyZlFByOjRadmHgTTcAHINeeSwxzGHN2ob3PXVvZphD7XQ== +jest-diff@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.1.tgz#d14e900a38ee4798d42feaaf0c61cb5b98e4c028" + integrity sha512-l8PYeq2VhcdxG9tl5cU78ClAlg/N7RtVSp0v3MlXURR0Y99i6eFnegmasOandyTmO6uEdo20+FByAjBFEO9nuw== dependencies: chalk "^4.0.0" diff-sequences "^29.0.0" jest-get-type "^29.0.0" - pretty-format "^29.0.0" + pretty-format "^29.0.1" jest-docblock@^29.0.0: version "29.0.0" @@ -1739,92 +1739,92 @@ jest-docblock@^29.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.0.tgz#1aff8fae85ed2094ca3b64ae9ab61225dbf20c6a" - integrity sha512-ACKRvqdo7Bc0YrjQbrQtokpQ2NZxdXA63OklJht7a9UarCJXlZeWh51wEUe0ORqbnu15nAnX1YFQHmVpS1+ZXA== +jest-each@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.1.tgz#c17da68a7073440122dbd47dca3941351ee0cbe5" + integrity sha512-UmCZYU9LPvRfSDoCrKJqrCNmgTYGGb3Ga6IVsnnVjedBTRRR9GJMca7UmDKRrJ1s+U632xrVtiRD27BxaG1aaQ== dependencies: - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.1" chalk "^4.0.0" jest-get-type "^29.0.0" - jest-util "^29.0.0" - pretty-format "^29.0.0" + jest-util "^29.0.1" + pretty-format "^29.0.1" -jest-environment-node@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.0.tgz#849fc1c0b149cf7e6f9513715a0ec6b775ee3506" - integrity sha512-Cns21Vgu0z7LjtssL0SWkxmjclHdwXeECFAP3ONit5NPnGCbv+0Rqby8w9vK7NpFlUaFgMmLYYBsUjSmIhwpvg== +jest-environment-node@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.1.tgz#b09db2a1b8439aace11a6805719d92498a64987e" + integrity sha512-PcIRBrEBFAPBqkbL53ZpEvTptcAnOW6/lDfqBfACMm3vkVT0N7DcfkH/hqNSbDmSxzGr0FtJI6Ej3TPhveWCMA== dependencies: - "@jest/environment" "^29.0.0" - "@jest/fake-timers" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/environment" "^29.0.1" + "@jest/fake-timers" "^29.0.1" + "@jest/types" "^29.0.1" "@types/node" "*" - jest-mock "^29.0.0" - jest-util "^29.0.0" + jest-mock "^29.0.1" + jest-util "^29.0.1" jest-get-type@^29.0.0: version "29.0.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== -jest-haste-map@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.0.tgz#52078a615aaa8a3ef017903e43cd413894fca768" - integrity sha512-mLyDt2WyNU0DZ64s7kRFkFJzrHEuXIxG+OKOs9/P5s1W7NzXE+P7SvLbxjz2Cg63cJjuglYRrD6fZcYf19T8Lw== +jest-haste-map@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.1.tgz#472212f93ef44309bf97d191f93ddd2e41169615" + integrity sha512-gcKOAydafpGoSBvcj/mGCfhOKO8fRLkAeee1KXGdcJ1Pb9O2nnOl4I8bQSIID2MaZeMHtLLgNboukh/pUGkBtg== dependencies: - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.0.0" - jest-util "^29.0.0" - jest-worker "^29.0.0" + jest-util "^29.0.1" + jest-worker "^29.0.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.0.tgz#7a6791cf61513550a8fc4a95f907f77db899204f" - integrity sha512-kBjNS0/z2+ZV/3N7R+ot5fKD2W1fHkoxC3kH/fkb2z24YSPfR9RGwiNX+YLRG9r0gWsxQx16boxzHT23G6rFBw== +jest-leak-detector@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.1.tgz#1a7cf8475d85e7b2bd53efa5adc5195828a12c33" + integrity sha512-5tISHJphB+sCmKXtVHJGQGltj7ksrLLb9vkuNWwFR86Of1tfzjskvrrrZU1gSzEfWC+qXIn4tuh8noKHYGMIPA== dependencies: jest-get-type "^29.0.0" - pretty-format "^29.0.0" + pretty-format "^29.0.1" -jest-matcher-utils@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.0.tgz#7e79d5d43ccbe4fe2b27f812986f196e7a98746c" - integrity sha512-HtCxFHI8lQSbN1RppFjtl6DIrS+x4d3lOhpJljVxFEXob4lxlKon3FunW0XoGxNSvIoD00AfTFspnufpOqszrg== +jest-matcher-utils@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.1.tgz#eaa92dd5405c2df9d31d45ec4486361d219de3e9" + integrity sha512-/e6UbCDmprRQFnl7+uBKqn4G22c/OmwriE5KCMVqxhElKCQUDcFnq5XM9iJeKtzy4DUjxT27y9VHmKPD8BQPaw== dependencies: chalk "^4.0.0" - jest-diff "^29.0.0" + jest-diff "^29.0.1" jest-get-type "^29.0.0" - pretty-format "^29.0.0" + pretty-format "^29.0.1" -jest-message-util@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.0.tgz#7995991fca9b41dc8410d0952894bbd4c5052ba8" - integrity sha512-4U0RdNV0TBTgVGzEchjryEpq4sqLO3gUQT7TEIbO5+q0K5MuiofOPcXk4GLpWviWByMRJjliQNMuzJ4YGT+oGQ== +jest-message-util@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.1.tgz#85c4b5b90296c228da158e168eaa5b079f2ab879" + integrity sha512-wRMAQt3HrLpxSubdnzOo68QoTfQ+NLXFzU0Heb18ZUzO2S9GgaXNEdQ4rpd0fI9dq2NXkpCk1IUWSqzYKji64A== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.0.0" + pretty-format "^29.0.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.0.tgz#dff9e2a9caa9c813115db24e78d00a0cba9f0019" - integrity sha512-0AWznVt415KMCxcJPaE2+tWaruw0w8aRrKH1Y/NZUx3+Pd9f20jQjUR82iHqGSuYS4EOHL9uI8SjAhJk+ET91g== +jest-mock@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.1.tgz#12e1b137035365b022ccdb8fd67d476cd4d4bfad" + integrity sha512-i1yTceg2GKJwUNZFjIzrH7Y74fN1SKJWxQX/Vu3LT4TiJerFARH5l+4URNyapZ+DNpchHYrGOP2deVbn3ma8JA== dependencies: - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.1" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -1837,88 +1837,88 @@ jest-regex-util@^29.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== -jest-resolve-dependencies@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.0.tgz#6c7886caa63838acb207f2caa7eb8f64930fb1e7" - integrity sha512-1TYUMcLZcUqa2fdUQ3leYtiXWXfNmimPvnJ34YDLLf0nyJ/aEeqlHJM9Ji2jw9Qxdh7nUypanjUlUV87yRHBFQ== +jest-resolve-dependencies@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.1.tgz#c41b88380c8ea178ce72a750029b5f3d5f65cb94" + integrity sha512-fUGcYlSc1NzNz+tsHDjjG0rclw6blJcFZsLEsezxm/n54bAm9HFvJxgBuCV1CJQoPtIx6AfR+tXkR9lpWJs2LQ== dependencies: jest-regex-util "^29.0.0" - jest-snapshot "^29.0.0" + jest-snapshot "^29.0.1" -jest-resolve@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.0.tgz#63d8e0b5cae115203da65cc8331722a315069351" - integrity sha512-MN19maPUXzibBshYg/cSrDWqiJwEBur6gbQb2lwOL4+6k14wdNW8Xh0uNPPxUntb7cpTi07uql/bUO5TVwiJbA== +jest-resolve@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.1.tgz#4f1338eee2ccc7319ffce850e13eb118a9e93ce5" + integrity sha512-dwb5Z0lLZbptlBtPExqsHfdDamXeiRLv4vdkfPrN84vBwLSWHWcXjlM2JXD/KLSQfljBcXbzI/PDvUJuTQ84Nw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.0" + jest-haste-map "^29.0.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.0.0" - jest-validate "^29.0.0" + jest-util "^29.0.1" + jest-validate "^29.0.1" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.0.tgz#8fff8a248b912e8be033a0b61d477a323b349397" - integrity sha512-OpTpRIBOIn9RXuMMrpS+h9ZoK+nZHaOuNOceUiDbDoOJ6pmeGu0zst7VR22xXT3fOCwWqg5qe0fZ23G+ve5P0Q== - dependencies: - "@jest/console" "^29.0.0" - "@jest/environment" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/transform" "^29.0.0" - "@jest/types" "^29.0.0" +jest-runner@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.1.tgz#15bacd13170f3d786168ef8548fdeb96933ea643" + integrity sha512-XeFfPmHtO7HyZyD1uJeO4Oqa8PyTbDHzS1YdGrvsFXk/A5eXinbqA5a42VUEqvsKQgNnKTl5NJD0UtDWg7cQ2A== + dependencies: + "@jest/console" "^29.0.1" + "@jest/environment" "^29.0.1" + "@jest/test-result" "^29.0.1" + "@jest/transform" "^29.0.1" + "@jest/types" "^29.0.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^29.0.0" - jest-environment-node "^29.0.0" - jest-haste-map "^29.0.0" - jest-leak-detector "^29.0.0" - jest-message-util "^29.0.0" - jest-resolve "^29.0.0" - jest-runtime "^29.0.0" - jest-util "^29.0.0" - jest-watcher "^29.0.0" - jest-worker "^29.0.0" + jest-environment-node "^29.0.1" + jest-haste-map "^29.0.1" + jest-leak-detector "^29.0.1" + jest-message-util "^29.0.1" + jest-resolve "^29.0.1" + jest-runtime "^29.0.1" + jest-util "^29.0.1" + jest-watcher "^29.0.1" + jest-worker "^29.0.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.0.tgz#544e610ca0e55748819a31c18e3166abff7302f4" - integrity sha512-dU0qFpTRWZY7Rur7yBgpz4g67mITSozBZ1jlhoG4ER/P/NiTFyZ/W8nMd5floeAMafmbrOc/5A9SlCu7SQCoBA== +jest-runtime@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.1.tgz#cafdc10834c45c50105eecb0ded8677ce741e2af" + integrity sha512-yDgz5OE0Rm44PUAfTqwA6cDFnTYnVcYbRpPECsokSASQ0I5RXpnKPVr2g0CYZWKzbsXqqtmM7TIk7CAutZJ7gQ== dependencies: - "@jest/environment" "^29.0.0" - "@jest/fake-timers" "^29.0.0" - "@jest/globals" "^29.0.0" + "@jest/environment" "^29.0.1" + "@jest/fake-timers" "^29.0.1" + "@jest/globals" "^29.0.1" "@jest/source-map" "^29.0.0" - "@jest/test-result" "^29.0.0" - "@jest/transform" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/test-result" "^29.0.1" + "@jest/transform" "^29.0.1" + "@jest/types" "^29.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.0.0" - jest-message-util "^29.0.0" - jest-mock "^29.0.0" + jest-haste-map "^29.0.1" + jest-message-util "^29.0.1" + jest-mock "^29.0.1" jest-regex-util "^29.0.0" - jest-resolve "^29.0.0" - jest-snapshot "^29.0.0" - jest-util "^29.0.0" + jest-resolve "^29.0.1" + jest-snapshot "^29.0.1" + jest-util "^29.0.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.0.tgz#5a349608cb7fa12dbdafad999cd5a3ed571bfd90" - integrity sha512-rR3B8GInk/IibF0M/sQCukSM8xX8bPI3Q0kjoAw4HT9Mx0Q3bS0MmF74rsreBOnVJgzN0Iwrc7YY56Yp8KQ7kA== +jest-snapshot@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.1.tgz#ed455cb7e56fb43e2d451edd902d622349d6afed" + integrity sha512-OuYGp+lsh7RhB3DDX36z/pzrGm2F740e5ERG9PQpJyDknCRtWdhaehBQyMqDnsQdKkvC2zOcetcxskiHjO7e8Q== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1926,81 +1926,81 @@ jest-snapshot@^29.0.0: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.0.0" - "@jest/transform" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/expect-utils" "^29.0.1" + "@jest/transform" "^29.0.1" + "@jest/types" "^29.0.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.0.0" + expect "^29.0.1" graceful-fs "^4.2.9" - jest-diff "^29.0.0" + jest-diff "^29.0.1" jest-get-type "^29.0.0" - jest-haste-map "^29.0.0" - jest-matcher-utils "^29.0.0" - jest-message-util "^29.0.0" - jest-util "^29.0.0" + jest-haste-map "^29.0.1" + jest-matcher-utils "^29.0.1" + jest-message-util "^29.0.1" + jest-util "^29.0.1" natural-compare "^1.4.0" - pretty-format "^29.0.0" + pretty-format "^29.0.1" semver "^7.3.5" -jest-util@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.0.tgz#54dfddf25fb011a2ff93fe8d11738dee8ff7f663" - integrity sha512-HMjW/pkFgi34LGKumjNDK03DYonV+nPMNUZ63rZX8PFdBkdIWUtOCEiaa7sAJkWrw5MyMVzSpa22NcOJjoQ3JQ== +jest-util@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.1.tgz#f854a4a8877c7817316c4afbc2a851ceb2e71598" + integrity sha512-GIWkgNfkeA9d84rORDHPGGTFBrRD13A38QVSKE0bVrGSnoR1KDn8Kqz+0yI5kezMgbT/7zrWaruWP1Kbghlb2A== dependencies: - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.0.tgz#714f9f013e7dc4cb3a20b098170fbed3fbad4252" - integrity sha512-UhgDKmahJnv5s5MK6a8kQ397YNS9euvL7gWTvUf7y0OO7vZeafUItlq3tguvfFVazQJ+kBGUm/XCJes7V61l8g== +jest-validate@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.1.tgz#8de8ff9d65507c0477964fd39c5b0a1778e3103d" + integrity sha512-mS4q7F738YXZFWBPqE+NjHU/gEOs7IBIFQ8i9zq5EO691cLrUbLhFq4larf8/lNcmauRO71tn/+DTW2y+MrLow== dependencies: - "@jest/types" "^29.0.0" + "@jest/types" "^29.0.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.0.0" leven "^3.1.0" - pretty-format "^29.0.0" + pretty-format "^29.0.1" -jest-watcher@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.0.tgz#7ecdf96acaafa0d1afe4be9695f3c81978afd20d" - integrity sha512-GoRq5QJt5/dv3keK7rIzg9R0e/HpTnjyMNYtCTTDZgGIj6QUDMpiJqt7Mwfyyaxwg5PS8gVyQvRQn6Lril4cuQ== +jest-watcher@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.1.tgz#63adeb8887a0562ed8f990f413b830ef48a8db94" + integrity sha512-0LBWDL3sZ+vyHRYxjqm2irhfwhUXHonjLSbd0oDeGq44U1e1uUh3icWNXYF8HO/UEnOoa6+OJDncLUXP2Hdg9A== dependencies: - "@jest/test-result" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/test-result" "^29.0.1" + "@jest/types" "^29.0.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^29.0.0" + jest-util "^29.0.1" string-length "^4.0.1" -jest-worker@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.0.tgz#a1c7b67b2d9ce057383999b32d8b71794efcd0b9" - integrity sha512-2t9Panx3F9N1wAvRuZT7xLEptRFc1C5G90DOHniIGz1JIgF9uhd5u8jNBsc7wN63lhnaiLeVLnNx21wT7OVFEQ== +jest-worker@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.1.tgz#fb42ff7e05e0573f330ec0cf781fc545dcd11a31" + integrity sha512-+B/2/8WW7goit7qVezG9vnI1QP3dlmuzi2W0zxazAQQ8dcDIA63dDn6j4pjOGBARha/ZevcwYQtNIzCySbS7fQ== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.0.tgz#0614bce40ffd3a1a19a30c8a2c66d19103712001" - integrity sha512-9uz4Tclskb8WrfRXqu66FsFCFoyYctwWXpruKwnD95FZqkyoEAA1oGH53HUn7nQx7uEgZTKdNl/Yo6DqqU+XMg== + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.1.tgz#4a1c48d79fada0a47c686a111ed9411fd41cd584" + integrity sha512-liHkwzaW6iwQyhRBFj0A4ZYKcsQ7ers1s62CCT95fPeNzoxT/vQRWwjTT4e7jpSCwrvPP2t1VESuy7GrXcr2ug== dependencies: - "@jest/core" "^29.0.0" - "@jest/types" "^29.0.0" + "@jest/core" "^29.0.1" + "@jest/types" "^29.0.1" import-local "^3.0.2" - jest-cli "^29.0.0" + jest-cli "^29.0.1" js-tokens@^4.0.0: version "4.0.0" @@ -2321,10 +2321,10 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.0.tgz#a9a604ca71678f803f34f6563a25a638fce267ba" - integrity sha512-tMkFRn1vxRwZdiDETcveuNeonRKDg4doOvI+iyb1sOAtxYioGzRicqnsr+d3C/lLv9hBiM/2lDBi5ilR81h2bQ== +pretty-format@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.1.tgz#2f8077114cdac92a59b464292972a106410c7ad0" + integrity sha512-iTHy3QZMzuL484mSTYbQIM1AHhEQsH8mXWS2/vd2yFBYnG3EBqGiMONo28PlPgrW7P/8s/1ISv+y7WH306l8cw== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" From d8e36e335ba735bea97c4e24cd45a76d7bf992d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Sep 2022 15:55:49 +0000 Subject: [PATCH 111/262] Bump jest from 29.0.1 to 29.0.2 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.0.1 to 29.0.2. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.0.2/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 598 +++++++++++++++++++++++++++--------------------------- 1 file changed, 299 insertions(+), 299 deletions(-) diff --git a/yarn.lock b/yarn.lock index cc38824c..a851f3cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -353,28 +353,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.1.tgz#e0e429cfc89900e3a46ce27f493bf488395ade39" - integrity sha512-SxLvSKf9gk4Rvt3p2KRQWVQ3sVj7S37rjlCHwp2+xNcRO/X+Uw0idbkfOtciUpjghHIxyggqcrrKhThQ+vClLQ== +"@jest/console@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.2.tgz#3a02dccad4dd37c25fd30013df67ec50998402ce" + integrity sha512-Fv02ijyhF4D/Wb3DvZO3iBJQz5DnzpJEIDBDbvje8Em099N889tNMUnBw7SalmSuOI+NflNG40RA1iK71kImPw== dependencies: - "@jest/types" "^29.0.1" + "@jest/types" "^29.0.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.0.1" - jest-util "^29.0.1" + jest-message-util "^29.0.2" + jest-util "^29.0.2" slash "^3.0.0" -"@jest/core@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.1.tgz#a49517795f692a510b6fae55a9c09e659826c472" - integrity sha512-EcFrXkYh8I1GYHRH9V4TU7jr4P6ckaPqGo/z4AIJjHDZxicjYgWB6fx1xFb5bhEM87eUjCF4FAY5t+RamLWQmA== +"@jest/core@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.2.tgz#7bf47ff6cd882678c47fbdea562bdf1ff03b6d33" + integrity sha512-imP5M6cdpHEOkmcuFYZuM5cTG1DAF7ZlVNCq1+F7kbqme2Jcl+Kh4M78hihM76DJHNkurbv4UVOnejGxBKEmww== dependencies: - "@jest/console" "^29.0.1" - "@jest/reporters" "^29.0.1" - "@jest/test-result" "^29.0.1" - "@jest/transform" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/console" "^29.0.2" + "@jest/reporters" "^29.0.2" + "@jest/test-result" "^29.0.2" + "@jest/transform" "^29.0.2" + "@jest/types" "^29.0.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -382,80 +382,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.0.0" - jest-config "^29.0.1" - jest-haste-map "^29.0.1" - jest-message-util "^29.0.1" + jest-config "^29.0.2" + jest-haste-map "^29.0.2" + jest-message-util "^29.0.2" jest-regex-util "^29.0.0" - jest-resolve "^29.0.1" - jest-resolve-dependencies "^29.0.1" - jest-runner "^29.0.1" - jest-runtime "^29.0.1" - jest-snapshot "^29.0.1" - jest-util "^29.0.1" - jest-validate "^29.0.1" - jest-watcher "^29.0.1" + jest-resolve "^29.0.2" + jest-resolve-dependencies "^29.0.2" + jest-runner "^29.0.2" + jest-runtime "^29.0.2" + jest-snapshot "^29.0.2" + jest-util "^29.0.2" + jest-validate "^29.0.2" + jest-watcher "^29.0.2" micromatch "^4.0.4" - pretty-format "^29.0.1" + pretty-format "^29.0.2" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.1.tgz#d236ce9e906744ac58bfc59ae6f7c9882ace7927" - integrity sha512-iLcFfoq2K6DAB+Mc+2VNLzZVmHdwQFeSqvoM/X8SMON6s/+yEi1iuRX3snx/JfwSnvmiMXjSr0lktxNxOcqXYA== +"@jest/environment@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.2.tgz#9e4b6d4c9bce5bfced6f63945d8c8e571394f572" + integrity sha512-Yf+EYaLOrVCgts/aTS5nGznU4prZUPa5k9S63Yct8YSOKj2jkdS17hHSUKhk5jxDFMyCy1PXknypDw7vfgc/mA== dependencies: - "@jest/fake-timers" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/fake-timers" "^29.0.2" + "@jest/types" "^29.0.2" "@types/node" "*" - jest-mock "^29.0.1" + jest-mock "^29.0.2" -"@jest/expect-utils@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.1.tgz#c1a84ee66caaef537f351dd82f7c63d559cf78d5" - integrity sha512-Tw5kUUOKmXGQDmQ9TSgTraFFS7HMC1HG/B7y0AN2G2UzjdAXz9BzK2rmNpCSDl7g7y0Gf/VLBm//blonvhtOTQ== +"@jest/expect-utils@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.2.tgz#00dfcb9e6fe99160c326ba39f7734b984543dea8" + integrity sha512-+wcQF9khXKvAEi8VwROnCWWmHfsJYCZAs5dmuMlJBKk57S6ZN2/FQMIlo01F29fJyT8kV/xblE7g3vkIdTLOjw== dependencies: jest-get-type "^29.0.0" -"@jest/expect@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.1.tgz#0ffde7f5b4c87f1dd6f8664726bd53f6cd1f7014" - integrity sha512-qKB3q52XDV8VUEiqKKLgLrJx7puQ8sYVqIDlul6n7SIXWS97DOK3KqbR2rDDaMtmenRHqEUl2fI+aFzx0oSemA== +"@jest/expect@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.2.tgz#641d151e1062ceb976c5ad1c23eba3bb1e188896" + integrity sha512-y/3geZ92p2/zovBm/F+ZjXUJ3thvT9IRzD6igqaWskFE2aR0idD+N/p5Lj/ZautEox/9RwEc6nqergebeh72uQ== dependencies: - expect "^29.0.1" - jest-snapshot "^29.0.1" + expect "^29.0.2" + jest-snapshot "^29.0.2" -"@jest/fake-timers@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.1.tgz#51ba7a82431db479d4b828576c139c4c0dc5e409" - integrity sha512-XZ+kAhLChVQ+KJNa5034p7O1Mz3vtWrelxDcMoxhZkgqmWDaEQAW9qJeutaeCfPvwaEwKYVyKDYfWpcyT8RiMw== +"@jest/fake-timers@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.2.tgz#6f15f4d8eb1089d445e3f73473ddc434faa2f798" + integrity sha512-2JhQeWU28fvmM5r33lxg6BxxkTKaVXs6KMaJ6eXSM8ml/MaWkt2BvbIO8G9KWAJFMdBXWbn+2h9OK1/s5urKZA== dependencies: - "@jest/types" "^29.0.1" + "@jest/types" "^29.0.2" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.0.1" - jest-mock "^29.0.1" - jest-util "^29.0.1" + jest-message-util "^29.0.2" + jest-mock "^29.0.2" + jest-util "^29.0.2" -"@jest/globals@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.1.tgz#764135ad31408fb632b3126793ab3aaed933095f" - integrity sha512-BtZWrVrKRKNUt7T1H2S8Mz31PN7ItROCmH+V5pn10hJDUfjOCTIUwb0WtLZzm0f1tJ3Uvx+5lVZrF/VTKqNaFg== +"@jest/globals@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.2.tgz#605d3389ad0c6bfe17ad3e1359b5bc39aefd8b65" + integrity sha512-4hcooSNJCVXuTu07/VJwCWW6HTnjLtQdqlcGisK6JST7z2ixa8emw4SkYsOk7j36WRc2ZUEydlUePnOIOTCNXg== dependencies: - "@jest/environment" "^29.0.1" - "@jest/expect" "^29.0.1" - "@jest/types" "^29.0.1" - jest-mock "^29.0.1" + "@jest/environment" "^29.0.2" + "@jest/expect" "^29.0.2" + "@jest/types" "^29.0.2" + jest-mock "^29.0.2" -"@jest/reporters@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.1.tgz#82a491657031c1cc278bf659905e5094973309ad" - integrity sha512-dM3L8JmYYOsdeXUUVZClQy67Tz/v1sMo9h4AQv2U+716VLHV0zdA6Hh4FQNAHMhYw/95dbZbPX8Q+TRR7Rw+wA== +"@jest/reporters@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.2.tgz#5f927646b6f01029525c05ac108324eac7d7ad5c" + integrity sha512-Kr41qejRQHHkCgWHC9YwSe7D5xivqP4XML+PvgwsnRFaykKdNflDUb4+xLXySOU+O/bPkVdFpGzUpVNSJChCrw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.0.1" - "@jest/test-result" "^29.0.1" - "@jest/transform" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/console" "^29.0.2" + "@jest/test-result" "^29.0.2" + "@jest/transform" "^29.0.2" + "@jest/types" "^29.0.2" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -468,9 +468,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.0.1" - jest-util "^29.0.1" - jest-worker "^29.0.1" + jest-message-util "^29.0.2" + jest-util "^29.0.2" + jest-worker "^29.0.2" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -493,51 +493,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.1.tgz#97ac334e4c6f7d016c341cdd500aa423a38e4cdd" - integrity sha512-XCA4whh/igxjBaR/Hg8qwFd/uTsauoD7QAdAYUjV2CSGx0+iunhjoCRRWTwqjQrETRqOJABx6kNfw0+C0vMSgQ== +"@jest/test-result@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.2.tgz#dde4922e6234dd311c85ddf1ec2b7f600a90295d" + integrity sha512-b5rDc0lLL6Kx73LyCx6370k9uZ8o5UKdCpMS6Za3ke7H9y8PtAU305y6TeghpBmf2In8p/qqi3GpftgzijSsNw== dependencies: - "@jest/console" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/console" "^29.0.2" + "@jest/types" "^29.0.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.1.tgz#7074b5f89ce30941b5b0fb493a19308d441a30b8" - integrity sha512-3GhSBMCRcWXGluP2Dw7CLP6mNke/t+EcftF5YjzhX1BJmqcatMbtZVwjuCfZy0TCME1GevXy3qTyV5PLpwIFKQ== +"@jest/test-sequencer@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.2.tgz#ae9b2d2c1694c7aa1a407713100e14dbfa79293e" + integrity sha512-fsyZqHBlXNMv5ZqjQwCuYa2pskXCO0DVxh5aaVCuAtwzHuYEGrhordyEncBLQNuCGQSYgElrEEmS+7wwFnnMKw== dependencies: - "@jest/test-result" "^29.0.1" + "@jest/test-result" "^29.0.2" graceful-fs "^4.2.9" - jest-haste-map "^29.0.1" + jest-haste-map "^29.0.2" slash "^3.0.0" -"@jest/transform@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.1.tgz#fdaa5d9e135c9bd7addbe65bedd1f15ad028cc7e" - integrity sha512-6UxXtqrPScFdDhoip8ys60dQAIYppQinyR87n9nlasR/ZnFfJohKToqzM29KK4gb9gHRv5oDFChdqZKE0SIhsg== +"@jest/transform@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.2.tgz#eef90ebd939b68bf2c2508d9e914377871869146" + integrity sha512-lajVQx2AnsR+Pa17q2zR7eikz2PkPs1+g/qPbZkqQATeS/s6eT55H+yHcsLfuI/0YQ/4VSBepSu3bOX+44q0aA== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.0.1" + "@jest/types" "^29.0.2" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.1" + jest-haste-map "^29.0.2" jest-regex-util "^29.0.0" - jest-util "^29.0.1" + jest-util "^29.0.2" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^29.0.1": - version "29.0.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.1.tgz#1985650acf137bdb81710ff39a4689ec071dd86a" - integrity sha512-ft01rxzVsbh9qZPJ6EFgAIj3PT9FCRfBF9Xljo2/33VDOUjLZr0ZJ2oKANqh9S/K0/GERCsHDAQlBwj7RxA+9g== +"@jest/types@^29.0.2": + version "29.0.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.2.tgz#5a5391fa7f7f41bf4b201d6d2da30e874f95b6c1" + integrity sha512-5WNMesBLmlkt1+fVkoCjHa0X3i3q8zc4QLTDkdHgCa2gyPZc7rdlZBWgVLqwS1860ZW5xJuCDwAzqbGaXIr/ew== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -810,15 +810,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.1.tgz#db50de501fc8727e768f5aa417496cb871ee1ba0" - integrity sha512-wyI9r8tqwsZEMWiIaYjdUJ6ztZIO4DMWpGq7laW34wR71WtRS+D/iBEtXOP5W2aSYCVUQMsypRl/xiJYZznnTg== +babel-jest@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.2.tgz#7efde496c07607949e9be499bf277aa1543ded95" + integrity sha512-yTu4/WSi/HzarjQtrJSwV+/0maoNt+iP0DmpvFJdv9yY+5BuNle8TbheHzzcSWj5gIHfuhpbLYHWRDYhWKyeKQ== dependencies: - "@jest/transform" "^29.0.1" + "@jest/transform" "^29.0.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.0.0" + babel-preset-jest "^29.0.2" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -834,10 +834,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.0.tgz#ae4873399a199ede93697a15919d3d0f614a2eb1" - integrity sha512-B9oaXrlxXHFWeWqhDPg03iqQd2UN/mg/VdZOsLaqAVBkztru3ctTryAI4zisxLEEgmcUnLTKewqx0gGifoXD3A== +babel-plugin-jest-hoist@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.2.tgz#ae61483a829a021b146c016c6ad39b8bcc37c2c8" + integrity sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -862,12 +862,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.0.tgz#52d7f1afe3a15d14a3c5ab4349cbd388d98d330b" - integrity sha512-B5Ke47Xcs8rDF3p1korT3LoilpADCwbG93ALqtvqu6Xpf4d8alKkrCBTExbNzdHJcIuEPpfYvEaFFRGee2kUgQ== +babel-preset-jest@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.2.tgz#e14a7124e22b161551818d89e5bdcfb3b2b0eac7" + integrity sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA== dependencies: - babel-plugin-jest-hoist "^29.0.0" + babel-plugin-jest-hoist "^29.0.2" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1280,16 +1280,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.1.tgz#a2fa64a59cffe4b4007877e730bc82be3d1742bb" - integrity sha512-yQgemsjLU+1S8t2A7pXT3Sn/v5/37LY8J+tocWtKEA0iEYYc6gfKbbJJX2fxHZmd7K9WpdbQqXUpmYkq1aewYg== +expect@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.2.tgz#22c7132400f60444b427211f1d6bb604a9ab2420" + integrity sha512-JeJlAiLKn4aApT4pzUXBVxl3NaZidWIOdg//smaIlP9ZMBDkHZGFd9ubphUZP9pUyDEo7bC6M0IIZR51o75qQw== dependencies: - "@jest/expect-utils" "^29.0.1" + "@jest/expect-utils" "^29.0.2" jest-get-type "^29.0.0" - jest-matcher-utils "^29.0.1" - jest-message-util "^29.0.1" - jest-util "^29.0.1" + jest-matcher-utils "^29.0.2" + jest-message-util "^29.0.2" + jest-util "^29.0.2" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1656,86 +1656,86 @@ jest-changed-files@^29.0.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.1.tgz#7ecb4913e134fb4addc03655fb36c9398014fa07" - integrity sha512-I5J4LyK3qPo8EnqPmxsMAVR+2SFx7JOaZsbqW9xQmk4UDmTCD92EQgS162Ey3Jq6CfpKJKFDhzhG3QqiE0fRbw== +jest-circus@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.2.tgz#7dda94888a8d47edb58e85a8e5f688f9da6657a3" + integrity sha512-YTPEsoE1P1X0bcyDQi3QIkpt2Wl9om9k2DQRuLFdS5x8VvAKSdYAVJufgvudhnKgM8WHvvAzhBE+1DRQB8x1CQ== dependencies: - "@jest/environment" "^29.0.1" - "@jest/expect" "^29.0.1" - "@jest/test-result" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/environment" "^29.0.2" + "@jest/expect" "^29.0.2" + "@jest/test-result" "^29.0.2" + "@jest/types" "^29.0.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.0.1" - jest-matcher-utils "^29.0.1" - jest-message-util "^29.0.1" - jest-runtime "^29.0.1" - jest-snapshot "^29.0.1" - jest-util "^29.0.1" + jest-each "^29.0.2" + jest-matcher-utils "^29.0.2" + jest-message-util "^29.0.2" + jest-runtime "^29.0.2" + jest-snapshot "^29.0.2" + jest-util "^29.0.2" p-limit "^3.1.0" - pretty-format "^29.0.1" + pretty-format "^29.0.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.1.tgz#6633c2ab97337ac5207910bd6b0aba2ef0900110" - integrity sha512-XozBHtoJCS6mnjCxNESyGm47Y4xSWzNlBJj4tix9nGrG6m068B83lrTWKtjYAenYSfOqyYVpQCkyqUp35IT+qA== +jest-cli@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.2.tgz#adf341ee3a4fd6ad1f23e3c0eb4e466847407021" + integrity sha512-tlf8b+4KcUbBGr25cywIi3+rbZ4+G+SiG8SvY552m9sRZbXPafdmQRyeVE/C/R8K+TiBAMrTIUmV2SlStRJ40g== dependencies: - "@jest/core" "^29.0.1" - "@jest/test-result" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/core" "^29.0.2" + "@jest/test-result" "^29.0.2" + "@jest/types" "^29.0.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.0.1" - jest-util "^29.0.1" - jest-validate "^29.0.1" + jest-config "^29.0.2" + jest-util "^29.0.2" + jest-validate "^29.0.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.1.tgz#bccc2aedc3bafb6cb08bad23e5f0fcc3b1959268" - integrity sha512-3duIx5ucEPIsUOESDTuasMfqHonD0oZRjqHycIMHSC4JwbvHDjAWNKN/NiM0ZxHXjAYrMTLt2QxSQ+IqlbYE5A== +jest-config@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.2.tgz#0ce168e1f74ca46c27285a7182ecb06c2d8ce7d9" + integrity sha512-RU4gzeUNZAFktYVzDGimDxeYoaiTnH100jkYYZgldqFamaZukF0IqmFx8+QrzVeEWccYg10EEJT3ox1Dq5b74w== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.0.1" - "@jest/types" "^29.0.1" - babel-jest "^29.0.1" + "@jest/test-sequencer" "^29.0.2" + "@jest/types" "^29.0.2" + babel-jest "^29.0.2" 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.0.1" - jest-environment-node "^29.0.1" + jest-circus "^29.0.2" + jest-environment-node "^29.0.2" jest-get-type "^29.0.0" jest-regex-util "^29.0.0" - jest-resolve "^29.0.1" - jest-runner "^29.0.1" - jest-util "^29.0.1" - jest-validate "^29.0.1" + jest-resolve "^29.0.2" + jest-runner "^29.0.2" + jest-util "^29.0.2" + jest-validate "^29.0.2" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.0.1" + pretty-format "^29.0.2" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.1.tgz#d14e900a38ee4798d42feaaf0c61cb5b98e4c028" - integrity sha512-l8PYeq2VhcdxG9tl5cU78ClAlg/N7RtVSp0v3MlXURR0Y99i6eFnegmasOandyTmO6uEdo20+FByAjBFEO9nuw== +jest-diff@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.2.tgz#1a99419efda66f9ee72f91e580e774df95de5ddc" + integrity sha512-b9l9970sa1rMXH1owp2Woprmy42qIwwll/htsw4Gf7+WuSp5bZxNhkKHDuCGKL+HoHn1KhcC+tNEeAPYBkD2Jg== dependencies: chalk "^4.0.0" diff-sequences "^29.0.0" jest-get-type "^29.0.0" - pretty-format "^29.0.1" + pretty-format "^29.0.2" jest-docblock@^29.0.0: version "29.0.0" @@ -1744,92 +1744,92 @@ jest-docblock@^29.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.1.tgz#c17da68a7073440122dbd47dca3941351ee0cbe5" - integrity sha512-UmCZYU9LPvRfSDoCrKJqrCNmgTYGGb3Ga6IVsnnVjedBTRRR9GJMca7UmDKRrJ1s+U632xrVtiRD27BxaG1aaQ== +jest-each@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.2.tgz#f98375a79a37761137e11d458502dfe1f00ba5b0" + integrity sha512-+sA9YjrJl35iCg0W0VCrgCVj+wGhDrrKQ+YAqJ/DHBC4gcDFAeePtRRhpJnX9gvOZ63G7gt52pwp2PesuSEx0Q== dependencies: - "@jest/types" "^29.0.1" + "@jest/types" "^29.0.2" chalk "^4.0.0" jest-get-type "^29.0.0" - jest-util "^29.0.1" - pretty-format "^29.0.1" + jest-util "^29.0.2" + pretty-format "^29.0.2" -jest-environment-node@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.1.tgz#b09db2a1b8439aace11a6805719d92498a64987e" - integrity sha512-PcIRBrEBFAPBqkbL53ZpEvTptcAnOW6/lDfqBfACMm3vkVT0N7DcfkH/hqNSbDmSxzGr0FtJI6Ej3TPhveWCMA== +jest-environment-node@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.2.tgz#8196268c9f740f1d2e7ecccf212b4c1c5b0167e4" + integrity sha512-4Fv8GXVCToRlMzDO94gvA8iOzKxQ7rhAbs8L+j8GPyTxGuUiYkV+63LecGeVdVhsL2KXih1sKnoqmH6tp89J7Q== dependencies: - "@jest/environment" "^29.0.1" - "@jest/fake-timers" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/environment" "^29.0.2" + "@jest/fake-timers" "^29.0.2" + "@jest/types" "^29.0.2" "@types/node" "*" - jest-mock "^29.0.1" - jest-util "^29.0.1" + jest-mock "^29.0.2" + jest-util "^29.0.2" jest-get-type@^29.0.0: version "29.0.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== -jest-haste-map@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.1.tgz#472212f93ef44309bf97d191f93ddd2e41169615" - integrity sha512-gcKOAydafpGoSBvcj/mGCfhOKO8fRLkAeee1KXGdcJ1Pb9O2nnOl4I8bQSIID2MaZeMHtLLgNboukh/pUGkBtg== +jest-haste-map@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.2.tgz#cac403a595e6e43982c9776b5c4dae63e38b22c5" + integrity sha512-SOorh2ysQ0fe8gsF4gaUDhoMIWAvi2hXOkwThEO48qT3JqA8GLAUieQcIvdSEd6M0scRDe1PVmKc5tXR3Z0U0A== dependencies: - "@jest/types" "^29.0.1" + "@jest/types" "^29.0.2" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.0.0" - jest-util "^29.0.1" - jest-worker "^29.0.1" + jest-util "^29.0.2" + jest-worker "^29.0.2" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.1.tgz#1a7cf8475d85e7b2bd53efa5adc5195828a12c33" - integrity sha512-5tISHJphB+sCmKXtVHJGQGltj7ksrLLb9vkuNWwFR86Of1tfzjskvrrrZU1gSzEfWC+qXIn4tuh8noKHYGMIPA== +jest-leak-detector@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.2.tgz#f88fd08e352b5fad3d33e48ecab39e97077ed8a8" + integrity sha512-5f0493qDeAxjUldkBSQg5D1cLadRgZVyWpTQvfJeQwQUpHQInE21AyVHVv64M7P2Ue8Z5EZ4BAcoDS/dSPPgMw== dependencies: jest-get-type "^29.0.0" - pretty-format "^29.0.1" + pretty-format "^29.0.2" -jest-matcher-utils@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.1.tgz#eaa92dd5405c2df9d31d45ec4486361d219de3e9" - integrity sha512-/e6UbCDmprRQFnl7+uBKqn4G22c/OmwriE5KCMVqxhElKCQUDcFnq5XM9iJeKtzy4DUjxT27y9VHmKPD8BQPaw== +jest-matcher-utils@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.2.tgz#0ffdcaec340a9810caee6c73ff90fb029b446e10" + integrity sha512-s62YkHFBfAx0JLA2QX1BlnCRFwHRobwAv2KP1+YhjzF6ZCbCVrf1sG8UJyn62ZUsDaQKpoo86XMTjkUyO5aWmQ== dependencies: chalk "^4.0.0" - jest-diff "^29.0.1" + jest-diff "^29.0.2" jest-get-type "^29.0.0" - pretty-format "^29.0.1" + pretty-format "^29.0.2" -jest-message-util@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.1.tgz#85c4b5b90296c228da158e168eaa5b079f2ab879" - integrity sha512-wRMAQt3HrLpxSubdnzOo68QoTfQ+NLXFzU0Heb18ZUzO2S9GgaXNEdQ4rpd0fI9dq2NXkpCk1IUWSqzYKji64A== +jest-message-util@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.2.tgz#b2781dfb6a2d1c63830d9684c5148ae3155c6154" + integrity sha512-kcJAgms3ckJV0wUoLsAM40xAhY+pb9FVSZwicjFU9PFkaTNmqh9xd99/CzKse48wPM1ANUQKmp03/DpkY+lGrA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.0.1" + "@jest/types" "^29.0.2" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.0.1" + pretty-format "^29.0.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.1.tgz#12e1b137035365b022ccdb8fd67d476cd4d4bfad" - integrity sha512-i1yTceg2GKJwUNZFjIzrH7Y74fN1SKJWxQX/Vu3LT4TiJerFARH5l+4URNyapZ+DNpchHYrGOP2deVbn3ma8JA== +jest-mock@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.2.tgz#d7810966a6338aca6a440c3cd9f19276477840ad" + integrity sha512-giWXOIT23UCxHCN2VUfUJ0Q7SmiqQwfSFXlCaIhW5anITpNQ+3vuLPQdKt5wkuwM37GrbFyHIClce8AAK9ft9g== dependencies: - "@jest/types" "^29.0.1" + "@jest/types" "^29.0.2" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -1842,88 +1842,88 @@ jest-regex-util@^29.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== -jest-resolve-dependencies@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.1.tgz#c41b88380c8ea178ce72a750029b5f3d5f65cb94" - integrity sha512-fUGcYlSc1NzNz+tsHDjjG0rclw6blJcFZsLEsezxm/n54bAm9HFvJxgBuCV1CJQoPtIx6AfR+tXkR9lpWJs2LQ== +jest-resolve-dependencies@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.2.tgz#2d30199ed0059ff97712f4fa6320c590bfcd2061" + integrity sha512-fSAu6eIG7wtGdnPJUkVVdILGzYAP9Dj/4+zvC8BrGe8msaUMJ9JeygU0Hf9+Uor6/icbuuzQn5See1uajLnAqg== dependencies: jest-regex-util "^29.0.0" - jest-snapshot "^29.0.1" + jest-snapshot "^29.0.2" -jest-resolve@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.1.tgz#4f1338eee2ccc7319ffce850e13eb118a9e93ce5" - integrity sha512-dwb5Z0lLZbptlBtPExqsHfdDamXeiRLv4vdkfPrN84vBwLSWHWcXjlM2JXD/KLSQfljBcXbzI/PDvUJuTQ84Nw== +jest-resolve@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.2.tgz#dd097e1c8020fbed4a8c1e1889ccb56022288697" + integrity sha512-V3uLjSA+EHxLtjIDKTBXnY71hyx+8lusCqPXvqzkFO1uCGvVpjBfuOyp+KOLBNSuY61kM2jhepiMwt4eiJS+Vw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.1" + jest-haste-map "^29.0.2" jest-pnp-resolver "^1.2.2" - jest-util "^29.0.1" - jest-validate "^29.0.1" + jest-util "^29.0.2" + jest-validate "^29.0.2" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.1.tgz#15bacd13170f3d786168ef8548fdeb96933ea643" - integrity sha512-XeFfPmHtO7HyZyD1uJeO4Oqa8PyTbDHzS1YdGrvsFXk/A5eXinbqA5a42VUEqvsKQgNnKTl5NJD0UtDWg7cQ2A== +jest-runner@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.2.tgz#64e4e6c88f74387307687b73a4688f93369d8d99" + integrity sha512-+D82iPZejI8t+SfduOO1deahC/QgLFf8aJBO++Znz3l2ETtOMdM7K4ATsGWzCFnTGio5yHaRifg1Su5Ybza5Nw== dependencies: - "@jest/console" "^29.0.1" - "@jest/environment" "^29.0.1" - "@jest/test-result" "^29.0.1" - "@jest/transform" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/console" "^29.0.2" + "@jest/environment" "^29.0.2" + "@jest/test-result" "^29.0.2" + "@jest/transform" "^29.0.2" + "@jest/types" "^29.0.2" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^29.0.0" - jest-environment-node "^29.0.1" - jest-haste-map "^29.0.1" - jest-leak-detector "^29.0.1" - jest-message-util "^29.0.1" - jest-resolve "^29.0.1" - jest-runtime "^29.0.1" - jest-util "^29.0.1" - jest-watcher "^29.0.1" - jest-worker "^29.0.1" + jest-environment-node "^29.0.2" + jest-haste-map "^29.0.2" + jest-leak-detector "^29.0.2" + jest-message-util "^29.0.2" + jest-resolve "^29.0.2" + jest-runtime "^29.0.2" + jest-util "^29.0.2" + jest-watcher "^29.0.2" + jest-worker "^29.0.2" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.1.tgz#cafdc10834c45c50105eecb0ded8677ce741e2af" - integrity sha512-yDgz5OE0Rm44PUAfTqwA6cDFnTYnVcYbRpPECsokSASQ0I5RXpnKPVr2g0CYZWKzbsXqqtmM7TIk7CAutZJ7gQ== +jest-runtime@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.2.tgz#dc3de788b8d75af346ae163d59c585027a9d809c" + integrity sha512-DO6F81LX4okOgjJLkLySv10E5YcV5NHUbY1ZqAUtofxdQE+q4hjH0P2gNsY8x3z3sqgw7O/+919SU4r18Fcuig== dependencies: - "@jest/environment" "^29.0.1" - "@jest/fake-timers" "^29.0.1" - "@jest/globals" "^29.0.1" + "@jest/environment" "^29.0.2" + "@jest/fake-timers" "^29.0.2" + "@jest/globals" "^29.0.2" "@jest/source-map" "^29.0.0" - "@jest/test-result" "^29.0.1" - "@jest/transform" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/test-result" "^29.0.2" + "@jest/transform" "^29.0.2" + "@jest/types" "^29.0.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 "^29.0.1" - jest-message-util "^29.0.1" - jest-mock "^29.0.1" + jest-haste-map "^29.0.2" + jest-message-util "^29.0.2" + jest-mock "^29.0.2" jest-regex-util "^29.0.0" - jest-resolve "^29.0.1" - jest-snapshot "^29.0.1" - jest-util "^29.0.1" + jest-resolve "^29.0.2" + jest-snapshot "^29.0.2" + jest-util "^29.0.2" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.1.tgz#ed455cb7e56fb43e2d451edd902d622349d6afed" - integrity sha512-OuYGp+lsh7RhB3DDX36z/pzrGm2F740e5ERG9PQpJyDknCRtWdhaehBQyMqDnsQdKkvC2zOcetcxskiHjO7e8Q== +jest-snapshot@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.2.tgz#5017d54db8369f01900d11e179513fa5839fb5ac" + integrity sha512-26C4PzGKaX5gkoKg8UzYGVy2HPVcTaROSkf0gwnHu3lGeTB7bAIJBovvVPZoiJ20IximJELQs/r8WSDRCuGX2A== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1931,81 +1931,81 @@ jest-snapshot@^29.0.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.0.1" - "@jest/transform" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/expect-utils" "^29.0.2" + "@jest/transform" "^29.0.2" + "@jest/types" "^29.0.2" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.0.1" + expect "^29.0.2" graceful-fs "^4.2.9" - jest-diff "^29.0.1" + jest-diff "^29.0.2" jest-get-type "^29.0.0" - jest-haste-map "^29.0.1" - jest-matcher-utils "^29.0.1" - jest-message-util "^29.0.1" - jest-util "^29.0.1" + jest-haste-map "^29.0.2" + jest-matcher-utils "^29.0.2" + jest-message-util "^29.0.2" + jest-util "^29.0.2" natural-compare "^1.4.0" - pretty-format "^29.0.1" + pretty-format "^29.0.2" semver "^7.3.5" -jest-util@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.1.tgz#f854a4a8877c7817316c4afbc2a851ceb2e71598" - integrity sha512-GIWkgNfkeA9d84rORDHPGGTFBrRD13A38QVSKE0bVrGSnoR1KDn8Kqz+0yI5kezMgbT/7zrWaruWP1Kbghlb2A== +jest-util@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.2.tgz#c75c5cab7f3b410782f9570a60c5558b5dfb6e3a" + integrity sha512-ozk8ruEEEACxqpz0hN9UOgtPZS0aN+NffwQduR5dVlhN+eN47vxurtvgZkYZYMpYrsmlAEx1XabkB3BnN0GfKQ== dependencies: - "@jest/types" "^29.0.1" + "@jest/types" "^29.0.2" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.1.tgz#8de8ff9d65507c0477964fd39c5b0a1778e3103d" - integrity sha512-mS4q7F738YXZFWBPqE+NjHU/gEOs7IBIFQ8i9zq5EO691cLrUbLhFq4larf8/lNcmauRO71tn/+DTW2y+MrLow== +jest-validate@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.2.tgz#ad86e157cc1735a3a3ea88995a611ebf8544bd67" + integrity sha512-AeRKm7cEucSy7tr54r3LhiGIXYvOILUwBM1S7jQkKs6YelwAlWKsmZGVrQR7uwsd31rBTnR5NQkODi1Z+6TKIQ== dependencies: - "@jest/types" "^29.0.1" + "@jest/types" "^29.0.2" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.0.0" leven "^3.1.0" - pretty-format "^29.0.1" + pretty-format "^29.0.2" -jest-watcher@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.1.tgz#63adeb8887a0562ed8f990f413b830ef48a8db94" - integrity sha512-0LBWDL3sZ+vyHRYxjqm2irhfwhUXHonjLSbd0oDeGq44U1e1uUh3icWNXYF8HO/UEnOoa6+OJDncLUXP2Hdg9A== +jest-watcher@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.2.tgz#093c044e0d7462e691ec64ca6d977014272c9bca" + integrity sha512-ds2bV0oyUdYoyrUTv4Ga5uptz4cEvmmP/JzqDyzZZanvrIn8ipxg5l3SDOAIiyuAx1VdHd2FBzeXPFO5KPH8vQ== dependencies: - "@jest/test-result" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/test-result" "^29.0.2" + "@jest/types" "^29.0.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^29.0.1" + jest-util "^29.0.2" string-length "^4.0.1" -jest-worker@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.1.tgz#fb42ff7e05e0573f330ec0cf781fc545dcd11a31" - integrity sha512-+B/2/8WW7goit7qVezG9vnI1QP3dlmuzi2W0zxazAQQ8dcDIA63dDn6j4pjOGBARha/ZevcwYQtNIzCySbS7fQ== +jest-worker@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.2.tgz#46c9f2cb9a19663d22babbacf998e4b5d7c46574" + integrity sha512-EyvBlYcvd2pg28yg5A3OODQnqK9LI1kitnGUZUG5/NYIeaRgewtYBKB5wlr7oXj8zPCkzev7EmnTCsrXK7V+Xw== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.0.0: - version "29.0.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.1.tgz#4a1c48d79fada0a47c686a111ed9411fd41cd584" - integrity sha512-liHkwzaW6iwQyhRBFj0A4ZYKcsQ7ers1s62CCT95fPeNzoxT/vQRWwjTT4e7jpSCwrvPP2t1VESuy7GrXcr2ug== + version "29.0.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.2.tgz#16e20003dbf8fb9ed7e6ab801579a77084e13fba" + integrity sha512-enziNbNUmXTcTaTP/Uq5rV91r0Yqy2UKzLUIabxMpGm9YHz8qpbJhiRnNVNvm6vzWfzt/0o97NEHH8/3udoClA== dependencies: - "@jest/core" "^29.0.1" - "@jest/types" "^29.0.1" + "@jest/core" "^29.0.2" + "@jest/types" "^29.0.2" import-local "^3.0.2" - jest-cli "^29.0.1" + jest-cli "^29.0.2" js-tokens@^4.0.0: version "4.0.0" @@ -2326,10 +2326,10 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^29.0.1: - version "29.0.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.1.tgz#2f8077114cdac92a59b464292972a106410c7ad0" - integrity sha512-iTHy3QZMzuL484mSTYbQIM1AHhEQsH8mXWS2/vd2yFBYnG3EBqGiMONo28PlPgrW7P/8s/1ISv+y7WH306l8cw== +pretty-format@^29.0.2: + version "29.0.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.2.tgz#7f7666a7bf05ba2bcacde61be81c6db64f6f3be6" + integrity sha512-wp3CdtUa3cSJVFn3Miu5a1+pxc1iPIQTenOAn+x5erXeN1+ryTcLesV5pbK/rlW5EKwp27x38MoYfNGaNXDDhg== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" From d40d6a982228890dc661937d2d6dbfca18a545ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Sep 2022 12:01:47 +0000 Subject: [PATCH 112/262] Bump eslint from 8.23.0 to 8.23.1 Bumps [eslint](https://github.com/eslint/eslint) from 8.23.0 to 8.23.1. - [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.23.0...v8.23.1) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index a851f3cd..dd6a30a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -298,10 +298,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d" - integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ== +"@eslint/eslintrc@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356" + integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1163,11 +1163,11 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.23.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.0.tgz#a184918d288820179c6041bb3ddcc99ce6eea040" - integrity sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA== + version "8.23.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc" + integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg== dependencies: - "@eslint/eslintrc" "^1.3.1" + "@eslint/eslintrc" "^1.3.2" "@humanwhocodes/config-array" "^0.10.4" "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" "@humanwhocodes/module-importer" "^1.0.1" @@ -1186,7 +1186,6 @@ eslint@^8.15.0: fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" - functional-red-black-tree "^1.0.1" glob-parent "^6.0.1" globals "^13.15.0" globby "^11.1.0" @@ -1195,6 +1194,7 @@ eslint@^8.15.0: import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" + js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -1389,11 +1389,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -2007,6 +2002,11 @@ jest@^29.0.0: import-local "^3.0.2" jest-cli "^29.0.2" +js-sdsl@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6" + integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw== + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" From 5adf30c9740a868a81855c2fbd5891787e6b4d36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Sep 2022 12:09:53 +0000 Subject: [PATCH 113/262] Bump jest from 29.0.2 to 29.0.3 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.0.2 to 29.0.3. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.0.3/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 582 +++++++++++++++++++++++++++--------------------------- 1 file changed, 291 insertions(+), 291 deletions(-) diff --git a/yarn.lock b/yarn.lock index dd6a30a0..e39a00aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -353,28 +353,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.2.tgz#3a02dccad4dd37c25fd30013df67ec50998402ce" - integrity sha512-Fv02ijyhF4D/Wb3DvZO3iBJQz5DnzpJEIDBDbvje8Em099N889tNMUnBw7SalmSuOI+NflNG40RA1iK71kImPw== +"@jest/console@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.3.tgz#a222ab87e399317a89db88a58eaec289519e807a" + integrity sha512-cGg0r+klVHSYnfE977S9wmpuQ9L+iYuYgL+5bPXiUlUynLLYunRxswEmhBzvrSKGof5AKiHuTTmUKAqRcDY9dg== dependencies: - "@jest/types" "^29.0.2" + "@jest/types" "^29.0.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.0.2" - jest-util "^29.0.2" + jest-message-util "^29.0.3" + jest-util "^29.0.3" slash "^3.0.0" -"@jest/core@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.2.tgz#7bf47ff6cd882678c47fbdea562bdf1ff03b6d33" - integrity sha512-imP5M6cdpHEOkmcuFYZuM5cTG1DAF7ZlVNCq1+F7kbqme2Jcl+Kh4M78hihM76DJHNkurbv4UVOnejGxBKEmww== - dependencies: - "@jest/console" "^29.0.2" - "@jest/reporters" "^29.0.2" - "@jest/test-result" "^29.0.2" - "@jest/transform" "^29.0.2" - "@jest/types" "^29.0.2" +"@jest/core@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.3.tgz#ba22a9cbd0c7ba36e04292e2093c547bf53ec1fd" + integrity sha512-1d0hLbOrM1qQE3eP3DtakeMbKTcXiXP3afWxqz103xPyddS2NhnNghS7MaXx1dcDt4/6p4nlhmeILo2ofgi8cQ== + dependencies: + "@jest/console" "^29.0.3" + "@jest/reporters" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -382,80 +382,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.0.0" - jest-config "^29.0.2" - jest-haste-map "^29.0.2" - jest-message-util "^29.0.2" + jest-config "^29.0.3" + jest-haste-map "^29.0.3" + jest-message-util "^29.0.3" jest-regex-util "^29.0.0" - jest-resolve "^29.0.2" - jest-resolve-dependencies "^29.0.2" - jest-runner "^29.0.2" - jest-runtime "^29.0.2" - jest-snapshot "^29.0.2" - jest-util "^29.0.2" - jest-validate "^29.0.2" - jest-watcher "^29.0.2" + jest-resolve "^29.0.3" + jest-resolve-dependencies "^29.0.3" + jest-runner "^29.0.3" + jest-runtime "^29.0.3" + jest-snapshot "^29.0.3" + jest-util "^29.0.3" + jest-validate "^29.0.3" + jest-watcher "^29.0.3" micromatch "^4.0.4" - pretty-format "^29.0.2" + pretty-format "^29.0.3" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.2.tgz#9e4b6d4c9bce5bfced6f63945d8c8e571394f572" - integrity sha512-Yf+EYaLOrVCgts/aTS5nGznU4prZUPa5k9S63Yct8YSOKj2jkdS17hHSUKhk5jxDFMyCy1PXknypDw7vfgc/mA== +"@jest/environment@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.3.tgz#7745ec30a954e828e8cc6df6a13280d3b51d8f35" + integrity sha512-iKl272NKxYNQNqXMQandAIwjhQaGw5uJfGXduu8dS9llHi8jV2ChWrtOAVPnMbaaoDhnI3wgUGNDvZgHeEJQCA== dependencies: - "@jest/fake-timers" "^29.0.2" - "@jest/types" "^29.0.2" + "@jest/fake-timers" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" - jest-mock "^29.0.2" + jest-mock "^29.0.3" -"@jest/expect-utils@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.2.tgz#00dfcb9e6fe99160c326ba39f7734b984543dea8" - integrity sha512-+wcQF9khXKvAEi8VwROnCWWmHfsJYCZAs5dmuMlJBKk57S6ZN2/FQMIlo01F29fJyT8kV/xblE7g3vkIdTLOjw== +"@jest/expect-utils@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.3.tgz#f5bb86f5565bf2dacfca31ccbd887684936045b2" + integrity sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q== dependencies: jest-get-type "^29.0.0" -"@jest/expect@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.2.tgz#641d151e1062ceb976c5ad1c23eba3bb1e188896" - integrity sha512-y/3geZ92p2/zovBm/F+ZjXUJ3thvT9IRzD6igqaWskFE2aR0idD+N/p5Lj/ZautEox/9RwEc6nqergebeh72uQ== +"@jest/expect@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.3.tgz#9dc7c46354eeb7a348d73881fba6402f5fdb2c30" + integrity sha512-6W7K+fsI23FQ01H/BWccPyDZFrnU9QlzDcKOjrNVU5L8yUORFAJJIpmyxWPW70+X624KUNqzZwPThPMX28aXEQ== dependencies: - expect "^29.0.2" - jest-snapshot "^29.0.2" + expect "^29.0.3" + jest-snapshot "^29.0.3" -"@jest/fake-timers@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.2.tgz#6f15f4d8eb1089d445e3f73473ddc434faa2f798" - integrity sha512-2JhQeWU28fvmM5r33lxg6BxxkTKaVXs6KMaJ6eXSM8ml/MaWkt2BvbIO8G9KWAJFMdBXWbn+2h9OK1/s5urKZA== +"@jest/fake-timers@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.3.tgz#ad5432639b715d45a86a75c47fd75019bc36b22c" + integrity sha512-tmbUIo03x0TdtcZCESQ0oQSakPCpo7+s6+9mU19dd71MptkP4zCwoeZqna23//pgbhtT1Wq02VmA9Z9cNtvtCQ== dependencies: - "@jest/types" "^29.0.2" + "@jest/types" "^29.0.3" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.0.2" - jest-mock "^29.0.2" - jest-util "^29.0.2" + jest-message-util "^29.0.3" + jest-mock "^29.0.3" + jest-util "^29.0.3" -"@jest/globals@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.2.tgz#605d3389ad0c6bfe17ad3e1359b5bc39aefd8b65" - integrity sha512-4hcooSNJCVXuTu07/VJwCWW6HTnjLtQdqlcGisK6JST7z2ixa8emw4SkYsOk7j36WRc2ZUEydlUePnOIOTCNXg== +"@jest/globals@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.3.tgz#681950c430fdc13ff9aa89b2d8d572ac0e4a1bf5" + integrity sha512-YqGHT65rFY2siPIHHFjuCGUsbzRjdqkwbat+Of6DmYRg5shIXXrLdZoVE/+TJ9O1dsKsFmYhU58JvIbZRU1Z9w== dependencies: - "@jest/environment" "^29.0.2" - "@jest/expect" "^29.0.2" - "@jest/types" "^29.0.2" - jest-mock "^29.0.2" + "@jest/environment" "^29.0.3" + "@jest/expect" "^29.0.3" + "@jest/types" "^29.0.3" + jest-mock "^29.0.3" -"@jest/reporters@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.2.tgz#5f927646b6f01029525c05ac108324eac7d7ad5c" - integrity sha512-Kr41qejRQHHkCgWHC9YwSe7D5xivqP4XML+PvgwsnRFaykKdNflDUb4+xLXySOU+O/bPkVdFpGzUpVNSJChCrw== +"@jest/reporters@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.3.tgz#735f110e08b44b38729d8dbbb74063bdf5aba8a5" + integrity sha512-3+QU3d4aiyOWfmk1obDerie4XNCaD5Xo1IlKNde2yGEi02WQD+ZQD0i5Hgqm1e73sMV7kw6pMlCnprtEwEVwxw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.0.2" - "@jest/test-result" "^29.0.2" - "@jest/transform" "^29.0.2" - "@jest/types" "^29.0.2" + "@jest/console" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -468,9 +468,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.0.2" - jest-util "^29.0.2" - jest-worker "^29.0.2" + jest-message-util "^29.0.3" + jest-util "^29.0.3" + jest-worker "^29.0.3" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -493,51 +493,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.2.tgz#dde4922e6234dd311c85ddf1ec2b7f600a90295d" - integrity sha512-b5rDc0lLL6Kx73LyCx6370k9uZ8o5UKdCpMS6Za3ke7H9y8PtAU305y6TeghpBmf2In8p/qqi3GpftgzijSsNw== +"@jest/test-result@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.3.tgz#b03d8ef4c58be84cd5d5d3b24d4b4c8cabbf2746" + integrity sha512-vViVnQjCgTmbhDKEonKJPtcFe9G/CJO4/Np4XwYJah+lF2oI7KKeRp8t1dFvv44wN2NdbDb/qC6pi++Vpp0Dlg== dependencies: - "@jest/console" "^29.0.2" - "@jest/types" "^29.0.2" + "@jest/console" "^29.0.3" + "@jest/types" "^29.0.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.2.tgz#ae9b2d2c1694c7aa1a407713100e14dbfa79293e" - integrity sha512-fsyZqHBlXNMv5ZqjQwCuYa2pskXCO0DVxh5aaVCuAtwzHuYEGrhordyEncBLQNuCGQSYgElrEEmS+7wwFnnMKw== +"@jest/test-sequencer@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.3.tgz#0681061ad21fb8e293b49c4fdf7e631ca79240ba" + integrity sha512-Hf4+xYSWZdxTNnhDykr8JBs0yBN/nxOXyUQWfotBUqqy0LF9vzcFB0jm/EDNZCx587znLWTIgxcokW7WeZMobQ== dependencies: - "@jest/test-result" "^29.0.2" + "@jest/test-result" "^29.0.3" graceful-fs "^4.2.9" - jest-haste-map "^29.0.2" + jest-haste-map "^29.0.3" slash "^3.0.0" -"@jest/transform@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.2.tgz#eef90ebd939b68bf2c2508d9e914377871869146" - integrity sha512-lajVQx2AnsR+Pa17q2zR7eikz2PkPs1+g/qPbZkqQATeS/s6eT55H+yHcsLfuI/0YQ/4VSBepSu3bOX+44q0aA== +"@jest/transform@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.3.tgz#9eb1fed2072a0354f190569807d1250572fb0970" + integrity sha512-C5ihFTRYaGDbi/xbRQRdbo5ddGtI4VSpmL6AIcZxdhwLbXMa7PcXxxqyI91vGOFHnn5aVM3WYnYKCHEqmLVGzg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.0.2" + "@jest/types" "^29.0.3" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.2" + jest-haste-map "^29.0.3" jest-regex-util "^29.0.0" - jest-util "^29.0.2" + jest-util "^29.0.3" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^29.0.2": - version "29.0.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.2.tgz#5a5391fa7f7f41bf4b201d6d2da30e874f95b6c1" - integrity sha512-5WNMesBLmlkt1+fVkoCjHa0X3i3q8zc4QLTDkdHgCa2gyPZc7rdlZBWgVLqwS1860ZW5xJuCDwAzqbGaXIr/ew== +"@jest/types@^29.0.3": + version "29.0.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.3.tgz#0be78fdddb1a35aeb2041074e55b860561c8ef63" + integrity sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -810,12 +810,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.2.tgz#7efde496c07607949e9be499bf277aa1543ded95" - integrity sha512-yTu4/WSi/HzarjQtrJSwV+/0maoNt+iP0DmpvFJdv9yY+5BuNle8TbheHzzcSWj5gIHfuhpbLYHWRDYhWKyeKQ== +babel-jest@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.3.tgz#64e156a47a77588db6a669a88dedff27ed6e260f" + integrity sha512-ApPyHSOhS/sVzwUOQIWJmdvDhBsMG01HX9z7ogtkp1TToHGGUWFlnXJUIzCgKPSfiYLn3ibipCYzsKSURHEwLg== dependencies: - "@jest/transform" "^29.0.2" + "@jest/transform" "^29.0.3" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.0.2" @@ -1280,16 +1280,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.2.tgz#22c7132400f60444b427211f1d6bb604a9ab2420" - integrity sha512-JeJlAiLKn4aApT4pzUXBVxl3NaZidWIOdg//smaIlP9ZMBDkHZGFd9ubphUZP9pUyDEo7bC6M0IIZR51o75qQw== +expect@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.3.tgz#6be65ddb945202f143c4e07c083f4f39f3bd326f" + integrity sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q== dependencies: - "@jest/expect-utils" "^29.0.2" + "@jest/expect-utils" "^29.0.3" jest-get-type "^29.0.0" - jest-matcher-utils "^29.0.2" - jest-message-util "^29.0.2" - jest-util "^29.0.2" + jest-matcher-utils "^29.0.3" + jest-message-util "^29.0.3" + jest-util "^29.0.3" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1651,86 +1651,86 @@ jest-changed-files@^29.0.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.2.tgz#7dda94888a8d47edb58e85a8e5f688f9da6657a3" - integrity sha512-YTPEsoE1P1X0bcyDQi3QIkpt2Wl9om9k2DQRuLFdS5x8VvAKSdYAVJufgvudhnKgM8WHvvAzhBE+1DRQB8x1CQ== +jest-circus@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.3.tgz#90faebc90295291cfc636b27dbd82e3bfb9e7a48" + integrity sha512-QeGzagC6Hw5pP+df1+aoF8+FBSgkPmraC1UdkeunWh0jmrp7wC0Hr6umdUAOELBQmxtKAOMNC3KAdjmCds92Zg== dependencies: - "@jest/environment" "^29.0.2" - "@jest/expect" "^29.0.2" - "@jest/test-result" "^29.0.2" - "@jest/types" "^29.0.2" + "@jest/environment" "^29.0.3" + "@jest/expect" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.0.2" - jest-matcher-utils "^29.0.2" - jest-message-util "^29.0.2" - jest-runtime "^29.0.2" - jest-snapshot "^29.0.2" - jest-util "^29.0.2" + jest-each "^29.0.3" + jest-matcher-utils "^29.0.3" + jest-message-util "^29.0.3" + jest-runtime "^29.0.3" + jest-snapshot "^29.0.3" + jest-util "^29.0.3" p-limit "^3.1.0" - pretty-format "^29.0.2" + pretty-format "^29.0.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.2.tgz#adf341ee3a4fd6ad1f23e3c0eb4e466847407021" - integrity sha512-tlf8b+4KcUbBGr25cywIi3+rbZ4+G+SiG8SvY552m9sRZbXPafdmQRyeVE/C/R8K+TiBAMrTIUmV2SlStRJ40g== +jest-cli@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.3.tgz#fd8f0ef363a7a3d9c53ef62e0651f18eeffa77b9" + integrity sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ== dependencies: - "@jest/core" "^29.0.2" - "@jest/test-result" "^29.0.2" - "@jest/types" "^29.0.2" + "@jest/core" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/types" "^29.0.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.0.2" - jest-util "^29.0.2" - jest-validate "^29.0.2" + jest-config "^29.0.3" + jest-util "^29.0.3" + jest-validate "^29.0.3" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.2.tgz#0ce168e1f74ca46c27285a7182ecb06c2d8ce7d9" - integrity sha512-RU4gzeUNZAFktYVzDGimDxeYoaiTnH100jkYYZgldqFamaZukF0IqmFx8+QrzVeEWccYg10EEJT3ox1Dq5b74w== +jest-config@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.3.tgz#c2e52a8f5adbd18de79f99532d8332a19e232f13" + integrity sha512-U5qkc82HHVYe3fNu2CRXLN4g761Na26rWKf7CjM8LlZB3In1jadEkZdMwsE37rd9RSPV0NfYaCjHdk/gu3v+Ew== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.0.2" - "@jest/types" "^29.0.2" - babel-jest "^29.0.2" + "@jest/test-sequencer" "^29.0.3" + "@jest/types" "^29.0.3" + babel-jest "^29.0.3" 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.0.2" - jest-environment-node "^29.0.2" + jest-circus "^29.0.3" + jest-environment-node "^29.0.3" jest-get-type "^29.0.0" jest-regex-util "^29.0.0" - jest-resolve "^29.0.2" - jest-runner "^29.0.2" - jest-util "^29.0.2" - jest-validate "^29.0.2" + jest-resolve "^29.0.3" + jest-runner "^29.0.3" + jest-util "^29.0.3" + jest-validate "^29.0.3" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.0.2" + pretty-format "^29.0.3" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.2.tgz#1a99419efda66f9ee72f91e580e774df95de5ddc" - integrity sha512-b9l9970sa1rMXH1owp2Woprmy42qIwwll/htsw4Gf7+WuSp5bZxNhkKHDuCGKL+HoHn1KhcC+tNEeAPYBkD2Jg== +jest-diff@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.3.tgz#41cc02409ad1458ae1bf7684129a3da2856341ac" + integrity sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg== dependencies: chalk "^4.0.0" diff-sequences "^29.0.0" jest-get-type "^29.0.0" - pretty-format "^29.0.2" + pretty-format "^29.0.3" jest-docblock@^29.0.0: version "29.0.0" @@ -1739,92 +1739,92 @@ jest-docblock@^29.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.2.tgz#f98375a79a37761137e11d458502dfe1f00ba5b0" - integrity sha512-+sA9YjrJl35iCg0W0VCrgCVj+wGhDrrKQ+YAqJ/DHBC4gcDFAeePtRRhpJnX9gvOZ63G7gt52pwp2PesuSEx0Q== +jest-each@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.3.tgz#7ef3157580b15a609d7ef663dd4fc9b07f4e1299" + integrity sha512-wILhZfESURHHBNvPMJ0lZlYZrvOQJxAo3wNHi+ycr90V7M+uGR9Gh4+4a/BmaZF0XTyZsk4OiYEf3GJN7Ltqzg== dependencies: - "@jest/types" "^29.0.2" + "@jest/types" "^29.0.3" chalk "^4.0.0" jest-get-type "^29.0.0" - jest-util "^29.0.2" - pretty-format "^29.0.2" + jest-util "^29.0.3" + pretty-format "^29.0.3" -jest-environment-node@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.2.tgz#8196268c9f740f1d2e7ecccf212b4c1c5b0167e4" - integrity sha512-4Fv8GXVCToRlMzDO94gvA8iOzKxQ7rhAbs8L+j8GPyTxGuUiYkV+63LecGeVdVhsL2KXih1sKnoqmH6tp89J7Q== +jest-environment-node@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.3.tgz#293804b1e0fa5f0e354dacbe510655caa478a3b2" + integrity sha512-cdZqRCnmIlTXC+9vtvmfiY/40Cj6s2T0czXuq1whvQdmpzAnj4sbqVYuZ4zFHk766xTTJ+Ij3uUqkk8KCfXoyg== dependencies: - "@jest/environment" "^29.0.2" - "@jest/fake-timers" "^29.0.2" - "@jest/types" "^29.0.2" + "@jest/environment" "^29.0.3" + "@jest/fake-timers" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" - jest-mock "^29.0.2" - jest-util "^29.0.2" + jest-mock "^29.0.3" + jest-util "^29.0.3" jest-get-type@^29.0.0: version "29.0.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== -jest-haste-map@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.2.tgz#cac403a595e6e43982c9776b5c4dae63e38b22c5" - integrity sha512-SOorh2ysQ0fe8gsF4gaUDhoMIWAvi2hXOkwThEO48qT3JqA8GLAUieQcIvdSEd6M0scRDe1PVmKc5tXR3Z0U0A== +jest-haste-map@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.3.tgz#d7f3f7180f558d760eacc5184aac5a67f20ef939" + integrity sha512-uMqR99+GuBHo0RjRhOE4iA6LmsxEwRdgiIAQgMU/wdT2XebsLDz5obIwLZm/Psj+GwSEQhw9AfAVKGYbh2G55A== dependencies: - "@jest/types" "^29.0.2" + "@jest/types" "^29.0.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.0.0" - jest-util "^29.0.2" - jest-worker "^29.0.2" + jest-util "^29.0.3" + jest-worker "^29.0.3" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.2.tgz#f88fd08e352b5fad3d33e48ecab39e97077ed8a8" - integrity sha512-5f0493qDeAxjUldkBSQg5D1cLadRgZVyWpTQvfJeQwQUpHQInE21AyVHVv64M7P2Ue8Z5EZ4BAcoDS/dSPPgMw== +jest-leak-detector@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.3.tgz#e85cf3391106a7a250850b6766b508bfe9c7bc6f" + integrity sha512-YfW/G63dAuiuQ3QmQlh8hnqLDe25WFY3eQhuc/Ev1AGmkw5zREblTh7TCSKLoheyggu6G9gxO2hY8p9o6xbaRQ== dependencies: jest-get-type "^29.0.0" - pretty-format "^29.0.2" + pretty-format "^29.0.3" -jest-matcher-utils@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.2.tgz#0ffdcaec340a9810caee6c73ff90fb029b446e10" - integrity sha512-s62YkHFBfAx0JLA2QX1BlnCRFwHRobwAv2KP1+YhjzF6ZCbCVrf1sG8UJyn62ZUsDaQKpoo86XMTjkUyO5aWmQ== +jest-matcher-utils@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.3.tgz#b8305fd3f9e27cdbc210b21fc7dbba92d4e54560" + integrity sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w== dependencies: chalk "^4.0.0" - jest-diff "^29.0.2" + jest-diff "^29.0.3" jest-get-type "^29.0.0" - pretty-format "^29.0.2" + pretty-format "^29.0.3" -jest-message-util@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.2.tgz#b2781dfb6a2d1c63830d9684c5148ae3155c6154" - integrity sha512-kcJAgms3ckJV0wUoLsAM40xAhY+pb9FVSZwicjFU9PFkaTNmqh9xd99/CzKse48wPM1ANUQKmp03/DpkY+lGrA== +jest-message-util@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.3.tgz#f0254e1ffad21890c78355726202cc91d0a40ea8" + integrity sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.0.2" + "@jest/types" "^29.0.3" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.0.2" + pretty-format "^29.0.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.2.tgz#d7810966a6338aca6a440c3cd9f19276477840ad" - integrity sha512-giWXOIT23UCxHCN2VUfUJ0Q7SmiqQwfSFXlCaIhW5anITpNQ+3vuLPQdKt5wkuwM37GrbFyHIClce8AAK9ft9g== +jest-mock@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.3.tgz#4f0093f6a9cb2ffdb9c44a07a3912f0c098c8de9" + integrity sha512-ort9pYowltbcrCVR43wdlqfAiFJXBx8l4uJDsD8U72LgBcetvEp+Qxj1W9ZYgMRoeAo+ov5cnAGF2B6+Oth+ww== dependencies: - "@jest/types" "^29.0.2" + "@jest/types" "^29.0.3" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -1837,88 +1837,88 @@ jest-regex-util@^29.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== -jest-resolve-dependencies@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.2.tgz#2d30199ed0059ff97712f4fa6320c590bfcd2061" - integrity sha512-fSAu6eIG7wtGdnPJUkVVdILGzYAP9Dj/4+zvC8BrGe8msaUMJ9JeygU0Hf9+Uor6/icbuuzQn5See1uajLnAqg== +jest-resolve-dependencies@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.3.tgz#f23a54295efc6374b86b198cf8efed5606d6b762" + integrity sha512-KzuBnXqNvbuCdoJpv8EanbIGObk7vUBNt/PwQPPx2aMhlv/jaXpUJsqWYRpP/0a50faMBY7WFFP8S3/CCzwfDw== dependencies: jest-regex-util "^29.0.0" - jest-snapshot "^29.0.2" + jest-snapshot "^29.0.3" -jest-resolve@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.2.tgz#dd097e1c8020fbed4a8c1e1889ccb56022288697" - integrity sha512-V3uLjSA+EHxLtjIDKTBXnY71hyx+8lusCqPXvqzkFO1uCGvVpjBfuOyp+KOLBNSuY61kM2jhepiMwt4eiJS+Vw== +jest-resolve@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.3.tgz#329a3431e3b9eb6629a2cd483e9bed95b26827b9" + integrity sha512-toVkia85Y/BPAjJasTC9zIPY6MmVXQPtrCk8SmiheC4MwVFE/CMFlOtMN6jrwPMC6TtNh8+sTMllasFeu1wMPg== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.2" + jest-haste-map "^29.0.3" jest-pnp-resolver "^1.2.2" - jest-util "^29.0.2" - jest-validate "^29.0.2" + jest-util "^29.0.3" + jest-validate "^29.0.3" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.2.tgz#64e4e6c88f74387307687b73a4688f93369d8d99" - integrity sha512-+D82iPZejI8t+SfduOO1deahC/QgLFf8aJBO++Znz3l2ETtOMdM7K4ATsGWzCFnTGio5yHaRifg1Su5Ybza5Nw== - dependencies: - "@jest/console" "^29.0.2" - "@jest/environment" "^29.0.2" - "@jest/test-result" "^29.0.2" - "@jest/transform" "^29.0.2" - "@jest/types" "^29.0.2" +jest-runner@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.3.tgz#2e47fe1e8777aea9b8970f37e8f83630b508fb87" + integrity sha512-Usu6VlTOZlCZoNuh3b2Tv/yzDpKqtiNAetG9t3kJuHfUyVMNW7ipCCJOUojzKkjPoaN7Bl1f7Buu6PE0sGpQxw== + dependencies: + "@jest/console" "^29.0.3" + "@jest/environment" "^29.0.3" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^29.0.0" - jest-environment-node "^29.0.2" - jest-haste-map "^29.0.2" - jest-leak-detector "^29.0.2" - jest-message-util "^29.0.2" - jest-resolve "^29.0.2" - jest-runtime "^29.0.2" - jest-util "^29.0.2" - jest-watcher "^29.0.2" - jest-worker "^29.0.2" + jest-environment-node "^29.0.3" + jest-haste-map "^29.0.3" + jest-leak-detector "^29.0.3" + jest-message-util "^29.0.3" + jest-resolve "^29.0.3" + jest-runtime "^29.0.3" + jest-util "^29.0.3" + jest-watcher "^29.0.3" + jest-worker "^29.0.3" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.2.tgz#dc3de788b8d75af346ae163d59c585027a9d809c" - integrity sha512-DO6F81LX4okOgjJLkLySv10E5YcV5NHUbY1ZqAUtofxdQE+q4hjH0P2gNsY8x3z3sqgw7O/+919SU4r18Fcuig== +jest-runtime@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.3.tgz#5a823ec5902257519556a4e5a71a868e8fd788aa" + integrity sha512-12gZXRQ7ozEeEHKTY45a+YLqzNDR/x4c//X6AqwKwKJPpWM8FY4vwn4VQJOcLRS3Nd1fWwgP7LU4SoynhuUMHQ== dependencies: - "@jest/environment" "^29.0.2" - "@jest/fake-timers" "^29.0.2" - "@jest/globals" "^29.0.2" + "@jest/environment" "^29.0.3" + "@jest/fake-timers" "^29.0.3" + "@jest/globals" "^29.0.3" "@jest/source-map" "^29.0.0" - "@jest/test-result" "^29.0.2" - "@jest/transform" "^29.0.2" - "@jest/types" "^29.0.2" + "@jest/test-result" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" "@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.0.2" - jest-message-util "^29.0.2" - jest-mock "^29.0.2" + jest-haste-map "^29.0.3" + jest-message-util "^29.0.3" + jest-mock "^29.0.3" jest-regex-util "^29.0.0" - jest-resolve "^29.0.2" - jest-snapshot "^29.0.2" - jest-util "^29.0.2" + jest-resolve "^29.0.3" + jest-snapshot "^29.0.3" + jest-util "^29.0.3" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.2.tgz#5017d54db8369f01900d11e179513fa5839fb5ac" - integrity sha512-26C4PzGKaX5gkoKg8UzYGVy2HPVcTaROSkf0gwnHu3lGeTB7bAIJBovvVPZoiJ20IximJELQs/r8WSDRCuGX2A== +jest-snapshot@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.3.tgz#0a024706986a915a6eefae74d7343069d2fc8eef" + integrity sha512-52q6JChm04U3deq+mkQ7R/7uy7YyfVIrebMi6ZkBoDJ85yEjm/sJwdr1P0LOIEHmpyLlXrxy3QP0Zf5J2kj0ew== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1926,81 +1926,81 @@ jest-snapshot@^29.0.2: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.0.2" - "@jest/transform" "^29.0.2" - "@jest/types" "^29.0.2" + "@jest/expect-utils" "^29.0.3" + "@jest/transform" "^29.0.3" + "@jest/types" "^29.0.3" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.0.2" + expect "^29.0.3" graceful-fs "^4.2.9" - jest-diff "^29.0.2" + jest-diff "^29.0.3" jest-get-type "^29.0.0" - jest-haste-map "^29.0.2" - jest-matcher-utils "^29.0.2" - jest-message-util "^29.0.2" - jest-util "^29.0.2" + jest-haste-map "^29.0.3" + jest-matcher-utils "^29.0.3" + jest-message-util "^29.0.3" + jest-util "^29.0.3" natural-compare "^1.4.0" - pretty-format "^29.0.2" + pretty-format "^29.0.3" semver "^7.3.5" -jest-util@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.2.tgz#c75c5cab7f3b410782f9570a60c5558b5dfb6e3a" - integrity sha512-ozk8ruEEEACxqpz0hN9UOgtPZS0aN+NffwQduR5dVlhN+eN47vxurtvgZkYZYMpYrsmlAEx1XabkB3BnN0GfKQ== +jest-util@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.3.tgz#06d1d77f9a1bea380f121897d78695902959fbc0" + integrity sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ== dependencies: - "@jest/types" "^29.0.2" + "@jest/types" "^29.0.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.2.tgz#ad86e157cc1735a3a3ea88995a611ebf8544bd67" - integrity sha512-AeRKm7cEucSy7tr54r3LhiGIXYvOILUwBM1S7jQkKs6YelwAlWKsmZGVrQR7uwsd31rBTnR5NQkODi1Z+6TKIQ== +jest-validate@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.3.tgz#f9521581d7344685428afa0a4d110e9c519aeeb6" + integrity sha512-OebiqqT6lK8cbMPtrSoS3aZP4juID762lZvpf1u+smZnwTEBCBInan0GAIIhv36MxGaJvmq5uJm7dl5gVt+Zrw== dependencies: - "@jest/types" "^29.0.2" + "@jest/types" "^29.0.3" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.0.0" leven "^3.1.0" - pretty-format "^29.0.2" + pretty-format "^29.0.3" -jest-watcher@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.2.tgz#093c044e0d7462e691ec64ca6d977014272c9bca" - integrity sha512-ds2bV0oyUdYoyrUTv4Ga5uptz4cEvmmP/JzqDyzZZanvrIn8ipxg5l3SDOAIiyuAx1VdHd2FBzeXPFO5KPH8vQ== +jest-watcher@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.3.tgz#8e220d1cc4f8029875e82015d084cab20f33d57f" + integrity sha512-tQX9lU91A+9tyUQKUMp0Ns8xAcdhC9fo73eqA3LFxP2bSgiF49TNcc+vf3qgGYYK9qRjFpXW9+4RgF/mbxyOOw== dependencies: - "@jest/test-result" "^29.0.2" - "@jest/types" "^29.0.2" + "@jest/test-result" "^29.0.3" + "@jest/types" "^29.0.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^29.0.2" + jest-util "^29.0.3" string-length "^4.0.1" -jest-worker@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.2.tgz#46c9f2cb9a19663d22babbacf998e4b5d7c46574" - integrity sha512-EyvBlYcvd2pg28yg5A3OODQnqK9LI1kitnGUZUG5/NYIeaRgewtYBKB5wlr7oXj8zPCkzev7EmnTCsrXK7V+Xw== +jest-worker@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.3.tgz#c2ba0aa7e41eec9eb0be8e8a322ae6518df72647" + integrity sha512-Tl/YWUugQOjoTYwjKdfJWkSOfhufJHO5LhXTSZC3TRoQKO+fuXnZAdoXXBlpLXKGODBL3OvdUasfDD4PcMe6ng== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.0.0: - version "29.0.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.2.tgz#16e20003dbf8fb9ed7e6ab801579a77084e13fba" - integrity sha512-enziNbNUmXTcTaTP/Uq5rV91r0Yqy2UKzLUIabxMpGm9YHz8qpbJhiRnNVNvm6vzWfzt/0o97NEHH8/3udoClA== + version "29.0.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.3.tgz#5227a0596d30791b2649eea347e4aa97f734944d" + integrity sha512-ElgUtJBLgXM1E8L6K1RW1T96R897YY/3lRYqq9uVcPWtP2AAl/nQ16IYDh/FzQOOQ12VEuLdcPU83mbhG2C3PQ== dependencies: - "@jest/core" "^29.0.2" - "@jest/types" "^29.0.2" + "@jest/core" "^29.0.3" + "@jest/types" "^29.0.3" import-local "^3.0.2" - jest-cli "^29.0.2" + jest-cli "^29.0.3" js-sdsl@^4.1.4: version "4.1.4" @@ -2326,10 +2326,10 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.2.tgz#7f7666a7bf05ba2bcacde61be81c6db64f6f3be6" - integrity sha512-wp3CdtUa3cSJVFn3Miu5a1+pxc1iPIQTenOAn+x5erXeN1+ryTcLesV5pbK/rlW5EKwp27x38MoYfNGaNXDDhg== +pretty-format@^29.0.3: + version "29.0.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.3.tgz#23d5f8cabc9cbf209a77d49409d093d61166a811" + integrity sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" From 9cd2f07f9f7963e0614646d4dbbc71d8900a0904 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 19 Sep 2022 14:10:41 -0400 Subject: [PATCH 114/262] Support the next syntax_tree-haml version --- src/server.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/server.rb b/src/server.rb index 57d3232a..e9d2ec25 100644 --- a/src/server.rb +++ b/src/server.rb @@ -122,7 +122,14 @@ formatter.flush formatter.output.join when "haml" - formatter = PrettierPrint.new(+"", maxwidth, "\n", &genspace) + formatter_class = + if defined?(SyntaxTree::Haml::Format::Formatter) + SyntaxTree::Haml::Format::Formatter + else + PrettierPrint + end + + formatter = formatter_class.new(+"", maxwidth, "\n", &genspace) SyntaxTree::Haml.parse(source).format(formatter) formatter.flush formatter.output From 117480181e28e2ac7959083a13adcea5b5ba0cbb Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 19 Sep 2022 14:25:25 -0400 Subject: [PATCH 115/262] Bump to v3.2.1 --- CHANGELOG.md | 10 +++++++++- package.json | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 21d15d2b..832cf30d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [3.2.1] - 2022-09-19 + +### Changed + +- [#1274](https://github.com/prettier/plugin-ruby/pull/1274) - kddnewton - Support the next version of `syntax_tree-haml`. + ## [3.2.0] - 2022-07-22 ### Added @@ -1255,7 +1261,9 @@ would previously result in `array[]`, but now prints properly. - Initial release 🎉 -[unreleased]: https://github.com/prettier/plugin-ruby/compare/v3.1.2...HEAD +[unreleased]: https://github.com/prettier/plugin-ruby/compare/v3.2.1...HEAD +[3.2.1]: https://github.com/prettier/plugin-ruby/compare/v3.2.0...v3.2.1 +[3.2.0]: https://github.com/prettier/plugin-ruby/compare/v3.1.2...v3.2.0 [3.1.2]: https://github.com/prettier/plugin-ruby/compare/v3.1.1...v3.1.2 [3.1.1]: https://github.com/prettier/plugin-ruby/compare/v3.1.0...v3.1.1 [3.1.0]: https://github.com/prettier/plugin-ruby/compare/v3.0.0...v3.1.0 diff --git a/package.json b/package.json index 15dd8fdd..203b904c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "3.2.0", + "version": "3.2.1", "description": "prettier plugin for the Ruby programming language", "main": "src/plugin.js", "scripts": { From bd3b72dcd95783261d60a3af807e3289590a6c3c Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 20 Sep 2022 10:54:58 -0400 Subject: [PATCH 116/262] Fix plugins options parsing --- src/parseSync.js | 33 +++++++++++++++++++++------------ src/server.rb | 4 +++- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/parseSync.js b/src/parseSync.js index a9a7c543..9d89db6b 100644 --- a/src/parseSync.js +++ b/src/parseSync.js @@ -59,6 +59,26 @@ function getInfoFilepath() { return path.join(os.tmpdir(), `prettier-ruby-parser-${process.pid}.info`); } +// Return the list of plugins that should be passed to the server process. +function getPlugins(opts) { + const plugins = new Set(); + + const rubyPlugins = opts.rubyPlugins.trim(); + if (rubyPlugins.length > 0) { + rubyPlugins.split(",").forEach((plugin) => plugins.add(plugin.trim())); + } + + if (opts.singleQuote) { + plugins.add("plugin/single_quotes"); + } + + if (opts.trailingComma !== "none") { + plugins.add("plugin/trailing_comma"); + } + + return Array.from(plugins); +} + // Create a file that will act as a communication mechanism, spawn a parser // server with that filepath as an argument, then spawn another process that // will read that information in order to enable us to connect to it in the @@ -114,20 +134,9 @@ function spawnServer(opts) { }; } - const plugins = new Set(opts.rubyPlugins.split(",")); - if (opts.singleQuote) { - plugins.add("plugin/single_quotes"); - } - - if (opts.trailingComma !== "none") { - plugins.add("plugin/trailing_comma"); - } - - const rubyPlugins = Array.from(plugins).join(","); - const server = spawn( "ruby", - [serverRbPath, `--plugins=${rubyPlugins}`, filepath], + [serverRbPath, `--plugins=${getPlugins(opts).join(",")}`, filepath], { env: Object.assign({}, process.env, { LANG: getLang() }), detached: true, diff --git a/src/server.rb b/src/server.rb index e9d2ec25..86741a76 100644 --- a/src/server.rb +++ b/src/server.rb @@ -129,7 +129,9 @@ PrettierPrint end - formatter = formatter_class.new(+"", maxwidth, "\n", &genspace) + formatter = + formatter_class.new(source, +"", maxwidth, "\n", &genspace) + SyntaxTree::Haml.parse(source).format(formatter) formatter.flush formatter.output From 4a7191b95120125041adbd078693505577f268e8 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 20 Sep 2022 11:27:35 -0400 Subject: [PATCH 117/262] Bump to v3.2.2 --- CHANGELOG.md | 9 ++++++++- package.json | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 832cf30d..10ec685b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [3.2.2] - 2022-09-20 + +### Changed + +- [#1276](https://github.com/prettier/plugin-ruby/pull/1276) - kddnewton - Fix the parsing for options being passed to the server process. + ## [3.2.1] - 2022-09-19 ### Changed @@ -1261,7 +1267,8 @@ would previously result in `array[]`, but now prints properly. - Initial release 🎉 -[unreleased]: https://github.com/prettier/plugin-ruby/compare/v3.2.1...HEAD +[unreleased]: https://github.com/prettier/plugin-ruby/compare/v3.2.2...HEAD +[3.2.2]: https://github.com/prettier/plugin-ruby/compare/v3.2.1...v3.2.2 [3.2.1]: https://github.com/prettier/plugin-ruby/compare/v3.2.0...v3.2.1 [3.2.0]: https://github.com/prettier/plugin-ruby/compare/v3.1.2...v3.2.0 [3.1.2]: https://github.com/prettier/plugin-ruby/compare/v3.1.1...v3.1.2 diff --git a/package.json b/package.json index 203b904c..b98dd011 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "3.2.1", + "version": "3.2.2", "description": "prettier plugin for the Ruby programming language", "main": "src/plugin.js", "scripts": { From ca8300fa7ea134b68f140b94fe8bf04872035ed2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Sep 2022 12:02:26 +0000 Subject: [PATCH 118/262] Bump eslint from 8.23.1 to 8.24.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.23.1 to 8.24.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.23.1...v8.24.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index e39a00aa..a26b39a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -313,10 +313,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" - integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== +"@humanwhocodes/config-array@^0.10.5": + version "0.10.5" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.5.tgz#bb679745224745fff1e9a41961c1d45a49f81c04" + integrity sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -1163,12 +1163,12 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.23.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.1.tgz#cfd7b3f7fdd07db8d16b4ac0516a29c8d8dca5dc" - integrity sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg== + version "8.24.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.24.0.tgz#489516c927a5da11b3979dbfb2679394523383c8" + integrity sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ== dependencies: "@eslint/eslintrc" "^1.3.2" - "@humanwhocodes/config-array" "^0.10.4" + "@humanwhocodes/config-array" "^0.10.5" "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" "@humanwhocodes/module-importer" "^1.0.1" ajv "^6.10.0" From 6c2e005002297591ecf4068b28ca1a84b31222a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Sep 2022 12:01:15 +0000 Subject: [PATCH 119/262] Bump jest from 29.0.3 to 29.1.1 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.0.3 to 29.1.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.1.1/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 579 +++++++++++++++++++++++++++--------------------------- 1 file changed, 290 insertions(+), 289 deletions(-) diff --git a/yarn.lock b/yarn.lock index a26b39a6..3731ba66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -353,28 +353,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.3.tgz#a222ab87e399317a89db88a58eaec289519e807a" - integrity sha512-cGg0r+klVHSYnfE977S9wmpuQ9L+iYuYgL+5bPXiUlUynLLYunRxswEmhBzvrSKGof5AKiHuTTmUKAqRcDY9dg== +"@jest/console@^29.1.0": + version "29.1.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.1.0.tgz#3b8e9e86aef28af15fcadfd8df7321ed1327c3e7" + integrity sha512-yNoFMuAsXTP8OyweaMaIoa6Px6rJkbbG7HtgYKGP3CY7lE7ADRA0Fn5ad9O+KefKcaf6W9rywKpCWOw21WMsAw== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.0" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.0.3" - jest-util "^29.0.3" + jest-message-util "^29.1.0" + jest-util "^29.1.0" slash "^3.0.0" -"@jest/core@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.3.tgz#ba22a9cbd0c7ba36e04292e2093c547bf53ec1fd" - integrity sha512-1d0hLbOrM1qQE3eP3DtakeMbKTcXiXP3afWxqz103xPyddS2NhnNghS7MaXx1dcDt4/6p4nlhmeILo2ofgi8cQ== +"@jest/core@^29.1.1": + version "29.1.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.1.1.tgz#a7e5f86dd29fa9da1ca84752237735dc7bcda3d8" + integrity sha512-ppym+PLiuSmvU9ufXVb/8OtHUPcjW+bBlb8CLh6oMATgJtCE3fjDYrzJi5u1uX8q9jbmtQ7VADKJKIlp68zi3A== dependencies: - "@jest/console" "^29.0.3" - "@jest/reporters" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.1.0" + "@jest/reporters" "^29.1.0" + "@jest/test-result" "^29.1.0" + "@jest/transform" "^29.1.0" + "@jest/types" "^29.1.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -382,80 +382,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.0.0" - jest-config "^29.0.3" - jest-haste-map "^29.0.3" - jest-message-util "^29.0.3" + jest-config "^29.1.1" + jest-haste-map "^29.1.0" + jest-message-util "^29.1.0" jest-regex-util "^29.0.0" - jest-resolve "^29.0.3" - jest-resolve-dependencies "^29.0.3" - jest-runner "^29.0.3" - jest-runtime "^29.0.3" - jest-snapshot "^29.0.3" - jest-util "^29.0.3" - jest-validate "^29.0.3" - jest-watcher "^29.0.3" + jest-resolve "^29.1.0" + jest-resolve-dependencies "^29.1.1" + jest-runner "^29.1.1" + jest-runtime "^29.1.1" + jest-snapshot "^29.1.0" + jest-util "^29.1.0" + jest-validate "^29.1.0" + jest-watcher "^29.1.0" micromatch "^4.0.4" - pretty-format "^29.0.3" + pretty-format "^29.1.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.3.tgz#7745ec30a954e828e8cc6df6a13280d3b51d8f35" - integrity sha512-iKl272NKxYNQNqXMQandAIwjhQaGw5uJfGXduu8dS9llHi8jV2ChWrtOAVPnMbaaoDhnI3wgUGNDvZgHeEJQCA== +"@jest/environment@^29.1.1": + version "29.1.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.1.1.tgz#afeb66563d8d366a329908087b6697c3bfaed3cb" + integrity sha512-69WULhTD38UcjvLGRAnnwC5hDt35ZC91ZwnvWipNOAOSaQNT32uKYL/TVCT3tncB9L1D++LOmBbYhTYP4TLuuQ== dependencies: - "@jest/fake-timers" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/fake-timers" "^29.1.1" + "@jest/types" "^29.1.0" "@types/node" "*" - jest-mock "^29.0.3" + jest-mock "^29.1.1" -"@jest/expect-utils@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.3.tgz#f5bb86f5565bf2dacfca31ccbd887684936045b2" - integrity sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q== +"@jest/expect-utils@^29.1.0": + version "29.1.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.1.0.tgz#598cc7fea83b1bf84249b3b98683575cee888894" + integrity sha512-YcD5CF2beqfoB07WqejPzWq1/l+zT3SgGwcqqIaPPG1DHFn/ea8MWWXeqV3KKMhTaOM1rZjlYplj1GQxR0XxKA== dependencies: jest-get-type "^29.0.0" -"@jest/expect@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.3.tgz#9dc7c46354eeb7a348d73881fba6402f5fdb2c30" - integrity sha512-6W7K+fsI23FQ01H/BWccPyDZFrnU9QlzDcKOjrNVU5L8yUORFAJJIpmyxWPW70+X624KUNqzZwPThPMX28aXEQ== +"@jest/expect@^29.1.0": + version "29.1.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.1.0.tgz#58956d38c22f42a2ec7ecf7adb9e0ddd9a9082a3" + integrity sha512-qWQttxE5rEwzvDW9G3f0o8chu1EKvIfsMQDeRlXMLCtsDS94ckcqEMNgbKKz0NYlZ45xrIoy+/pngt3ZFr/2zw== dependencies: - expect "^29.0.3" - jest-snapshot "^29.0.3" + expect "^29.1.0" + jest-snapshot "^29.1.0" -"@jest/fake-timers@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.3.tgz#ad5432639b715d45a86a75c47fd75019bc36b22c" - integrity sha512-tmbUIo03x0TdtcZCESQ0oQSakPCpo7+s6+9mU19dd71MptkP4zCwoeZqna23//pgbhtT1Wq02VmA9Z9cNtvtCQ== +"@jest/fake-timers@^29.1.1": + version "29.1.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.1.1.tgz#ae345e5ca51e9f72e0d861e17c65d9cb558f407b" + integrity sha512-5wTGObRfL/OjzEz0v2ShXlzeJFJw8mO6ByMBwmPLd6+vkdPcmIpCvASG/PR/g8DpchSIEeDXCxQADojHxuhX8g== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.0" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.0.3" - jest-mock "^29.0.3" - jest-util "^29.0.3" + jest-message-util "^29.1.0" + jest-mock "^29.1.1" + jest-util "^29.1.0" -"@jest/globals@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.3.tgz#681950c430fdc13ff9aa89b2d8d572ac0e4a1bf5" - integrity sha512-YqGHT65rFY2siPIHHFjuCGUsbzRjdqkwbat+Of6DmYRg5shIXXrLdZoVE/+TJ9O1dsKsFmYhU58JvIbZRU1Z9w== +"@jest/globals@^29.1.1": + version "29.1.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.1.1.tgz#017cffa0e79b35e7197b229d852c9ad35ed4be5c" + integrity sha512-yTiusxeEHjXwmo3guWlN31a1harU8zekLBMlZpOZ+84rfO3HDrkNZLTfd/YaHF8CrwlNCFpDGNSQCH8WkklH/Q== dependencies: - "@jest/environment" "^29.0.3" - "@jest/expect" "^29.0.3" - "@jest/types" "^29.0.3" - jest-mock "^29.0.3" + "@jest/environment" "^29.1.1" + "@jest/expect" "^29.1.0" + "@jest/types" "^29.1.0" + jest-mock "^29.1.1" -"@jest/reporters@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.3.tgz#735f110e08b44b38729d8dbbb74063bdf5aba8a5" - integrity sha512-3+QU3d4aiyOWfmk1obDerie4XNCaD5Xo1IlKNde2yGEi02WQD+ZQD0i5Hgqm1e73sMV7kw6pMlCnprtEwEVwxw== +"@jest/reporters@^29.1.0": + version "29.1.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.1.0.tgz#da488ddfb39a4cfb86abdc29fd94f84031acfd02" + integrity sha512-szSjHjVuBQ7aZUdBzTicCoQAAQsQFLk+/PtMfO0RQxL5mQ1iw+PSKOpyvMZcA5T6bH9pIapue5U9UCrxfOtL3w== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.1.0" + "@jest/test-result" "^29.1.0" + "@jest/transform" "^29.1.0" + "@jest/types" "^29.1.0" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -468,9 +468,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.0.3" - jest-util "^29.0.3" - jest-worker "^29.0.3" + jest-message-util "^29.1.0" + jest-util "^29.1.0" + jest-worker "^29.1.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -493,51 +493,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.3.tgz#b03d8ef4c58be84cd5d5d3b24d4b4c8cabbf2746" - integrity sha512-vViVnQjCgTmbhDKEonKJPtcFe9G/CJO4/Np4XwYJah+lF2oI7KKeRp8t1dFvv44wN2NdbDb/qC6pi++Vpp0Dlg== +"@jest/test-result@^29.1.0": + version "29.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.1.0.tgz#da6b0062325a780c9e3c7262b6b89da57fba2dca" + integrity sha512-RMBhPlw1Qfc2bKSf3RFPCyFSN7cfWVSTxRD8JrnvqdqgaDgrq4aGJT1A/V2+5Vq9bqBd187FpaxGTQ4zLrt08g== dependencies: - "@jest/console" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.1.0" + "@jest/types" "^29.1.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.3.tgz#0681061ad21fb8e293b49c4fdf7e631ca79240ba" - integrity sha512-Hf4+xYSWZdxTNnhDykr8JBs0yBN/nxOXyUQWfotBUqqy0LF9vzcFB0jm/EDNZCx587znLWTIgxcokW7WeZMobQ== +"@jest/test-sequencer@^29.1.0": + version "29.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.1.0.tgz#d3d34497e860a44f3f80e94958651f58d3ce64f8" + integrity sha512-1diQfwNhBAte+x3TmyfWloxT1C8GcPEPEZ4BZjmELBK2j3cdqi0DofoJUxBDDUBBnakbv8ce0B7CIzprsupPSA== dependencies: - "@jest/test-result" "^29.0.3" + "@jest/test-result" "^29.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.3" + jest-haste-map "^29.1.0" slash "^3.0.0" -"@jest/transform@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.3.tgz#9eb1fed2072a0354f190569807d1250572fb0970" - integrity sha512-C5ihFTRYaGDbi/xbRQRdbo5ddGtI4VSpmL6AIcZxdhwLbXMa7PcXxxqyI91vGOFHnn5aVM3WYnYKCHEqmLVGzg== +"@jest/transform@^29.1.0": + version "29.1.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.1.0.tgz#1b3e597681362f6164e786e6bc2826c34ecbf74f" + integrity sha512-NI1zd62KgM0lW6rWMIZDx52dfTIDd+cnLQNahH0YhH7TVmQVigumJ6jszuhAzvKHGm55P2Fozcglb5sGMfFp3Q== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.0" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.3" + jest-haste-map "^29.1.0" jest-regex-util "^29.0.0" - jest-util "^29.0.3" + jest-util "^29.1.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.3.tgz#0be78fdddb1a35aeb2041074e55b860561c8ef63" - integrity sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A== +"@jest/types@^29.1.0": + version "29.1.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.1.0.tgz#db23d727ce0a95500749551d8724fb3526d1e903" + integrity sha512-lE30u3z4lbTOqf5D7fDdoco3Qd8H6F/t73nLOswU4x+7VhgDQMX5y007IMqrKjFHdnpslaYymVFhWX+ttXNARQ== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -810,12 +810,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.3.tgz#64e156a47a77588db6a669a88dedff27ed6e260f" - integrity sha512-ApPyHSOhS/sVzwUOQIWJmdvDhBsMG01HX9z7ogtkp1TToHGGUWFlnXJUIzCgKPSfiYLn3ibipCYzsKSURHEwLg== +babel-jest@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.1.0.tgz#945e45eb8a33e8ad8cb334f2b0f040d7306cffbf" + integrity sha512-0XiBgPRhMSng+ThuXz0M/WpOeml/q5S4BFIaDS5uQb+lCjOzd0OfYEN4hWte5fDy7SZ6rNmEi16UpWGurSg2nQ== dependencies: - "@jest/transform" "^29.0.3" + "@jest/transform" "^29.1.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.0.2" @@ -1280,16 +1280,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.3.tgz#6be65ddb945202f143c4e07c083f4f39f3bd326f" - integrity sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q== +expect@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.1.0.tgz#0e20a72cf4b2cfb8ca5e2ab138c23c5078c37460" + integrity sha512-1NCfR0FEArn9Vq1KEjhPd1rggRLiWgo87gfMK4iKn6DcVzJBRMyDNX22hyND5KiSRPIPQ5KtsY6HLxsQ0MU86w== dependencies: - "@jest/expect-utils" "^29.0.3" + "@jest/expect-utils" "^29.1.0" jest-get-type "^29.0.0" - jest-matcher-utils "^29.0.3" - jest-message-util "^29.0.3" - jest-util "^29.0.3" + jest-matcher-utils "^29.1.0" + jest-message-util "^29.1.0" + jest-util "^29.1.0" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1651,86 +1651,86 @@ jest-changed-files@^29.0.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.3.tgz#90faebc90295291cfc636b27dbd82e3bfb9e7a48" - integrity sha512-QeGzagC6Hw5pP+df1+aoF8+FBSgkPmraC1UdkeunWh0jmrp7wC0Hr6umdUAOELBQmxtKAOMNC3KAdjmCds92Zg== +jest-circus@^29.1.1: + version "29.1.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.1.1.tgz#696e0b58351316f5fdb39d3480b4fffe8dbf0100" + integrity sha512-Ii+3JIeLF3z8j2E7fPSjPjXJLBdbAcZyfEiALRQ1Fk+FWTIfuEfZrZcjSaBdz/k/waoq+bPf9x/vBCXIAyLLEQ== dependencies: - "@jest/environment" "^29.0.3" - "@jest/expect" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/environment" "^29.1.1" + "@jest/expect" "^29.1.0" + "@jest/test-result" "^29.1.0" + "@jest/types" "^29.1.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.0.3" - jest-matcher-utils "^29.0.3" - jest-message-util "^29.0.3" - jest-runtime "^29.0.3" - jest-snapshot "^29.0.3" - jest-util "^29.0.3" + jest-each "^29.1.0" + jest-matcher-utils "^29.1.0" + jest-message-util "^29.1.0" + jest-runtime "^29.1.1" + jest-snapshot "^29.1.0" + jest-util "^29.1.0" p-limit "^3.1.0" - pretty-format "^29.0.3" + pretty-format "^29.1.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.3.tgz#fd8f0ef363a7a3d9c53ef62e0651f18eeffa77b9" - integrity sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ== +jest-cli@^29.1.1: + version "29.1.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.1.1.tgz#6ff79c0b2d1d062f24216d2bcbf6c01a1e41db21" + integrity sha512-nz/JNtqDFf49R2KgeZ9+6Zl1uxSuRsg/tICC+DHMh+bQ0co6QqBPWKg3FtW4534bs8/J2YqFC2Lct9DZR24z0Q== dependencies: - "@jest/core" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/core" "^29.1.1" + "@jest/test-result" "^29.1.0" + "@jest/types" "^29.1.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.0.3" - jest-util "^29.0.3" - jest-validate "^29.0.3" + jest-config "^29.1.1" + jest-util "^29.1.0" + jest-validate "^29.1.0" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.3.tgz#c2e52a8f5adbd18de79f99532d8332a19e232f13" - integrity sha512-U5qkc82HHVYe3fNu2CRXLN4g761Na26rWKf7CjM8LlZB3In1jadEkZdMwsE37rd9RSPV0NfYaCjHdk/gu3v+Ew== +jest-config@^29.1.1: + version "29.1.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.1.1.tgz#52aaa6237a7b3eea5c640aad6a53b390dc76f49f" + integrity sha512-o2iZrQMOiF54zOw1kOcJGmfKzAW+V2ajZVWxbt+Ex+g0fVaTkk215BD/GFhrviuic+Xk7DpzUmdTT9c1QfsPqg== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.0.3" - "@jest/types" "^29.0.3" - babel-jest "^29.0.3" + "@jest/test-sequencer" "^29.1.0" + "@jest/types" "^29.1.0" + babel-jest "^29.1.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.0.3" - jest-environment-node "^29.0.3" + jest-circus "^29.1.1" + jest-environment-node "^29.1.1" jest-get-type "^29.0.0" jest-regex-util "^29.0.0" - jest-resolve "^29.0.3" - jest-runner "^29.0.3" - jest-util "^29.0.3" - jest-validate "^29.0.3" + jest-resolve "^29.1.0" + jest-runner "^29.1.1" + jest-util "^29.1.0" + jest-validate "^29.1.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.0.3" + pretty-format "^29.1.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.3.tgz#41cc02409ad1458ae1bf7684129a3da2856341ac" - integrity sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg== +jest-diff@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.1.0.tgz#952639cd73fcf4d34173e2d98a0cd1c20c71ba88" + integrity sha512-ZJyWG30jpVHwxLs8xxR1so4tz6lFARNztnFlxssFpQdakaW0isSx9rAKs/6aQUKQDZ/DgSpY6HjUGLO9xkNdRw== dependencies: chalk "^4.0.0" diff-sequences "^29.0.0" jest-get-type "^29.0.0" - pretty-format "^29.0.3" + pretty-format "^29.1.0" jest-docblock@^29.0.0: version "29.0.0" @@ -1739,93 +1739,94 @@ jest-docblock@^29.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.3.tgz#7ef3157580b15a609d7ef663dd4fc9b07f4e1299" - integrity sha512-wILhZfESURHHBNvPMJ0lZlYZrvOQJxAo3wNHi+ycr90V7M+uGR9Gh4+4a/BmaZF0XTyZsk4OiYEf3GJN7Ltqzg== +jest-each@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.1.0.tgz#d0962d04f4a28f5f048c2ff50965cab9ae2f524d" + integrity sha512-ELSZV/L4yjqKU2O0bnDTNHlizD4IRS9DX94iAB6QpiPIJsR453dJW7Ka7TXSmxQdc66HNNOhUcQ5utIeVCKGyA== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.0" chalk "^4.0.0" jest-get-type "^29.0.0" - jest-util "^29.0.3" - pretty-format "^29.0.3" + jest-util "^29.1.0" + pretty-format "^29.1.0" -jest-environment-node@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.3.tgz#293804b1e0fa5f0e354dacbe510655caa478a3b2" - integrity sha512-cdZqRCnmIlTXC+9vtvmfiY/40Cj6s2T0czXuq1whvQdmpzAnj4sbqVYuZ4zFHk766xTTJ+Ij3uUqkk8KCfXoyg== +jest-environment-node@^29.1.1: + version "29.1.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.1.1.tgz#10f1782b74e17fcf782ff51df79f2b0cee135851" + integrity sha512-0nwTca4L2N8iM33A+JMfBdygR6B3N/bcPoLe1hEd9o87KLxDZwKGvpTGSfXpjtyqNQXiaL/3G+YOcSoeq/syPw== dependencies: - "@jest/environment" "^29.0.3" - "@jest/fake-timers" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/environment" "^29.1.1" + "@jest/fake-timers" "^29.1.1" + "@jest/types" "^29.1.0" "@types/node" "*" - jest-mock "^29.0.3" - jest-util "^29.0.3" + jest-mock "^29.1.1" + jest-util "^29.1.0" jest-get-type@^29.0.0: version "29.0.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== -jest-haste-map@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.3.tgz#d7f3f7180f558d760eacc5184aac5a67f20ef939" - integrity sha512-uMqR99+GuBHo0RjRhOE4iA6LmsxEwRdgiIAQgMU/wdT2XebsLDz5obIwLZm/Psj+GwSEQhw9AfAVKGYbh2G55A== +jest-haste-map@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.1.0.tgz#1cbdd30528b7b215523166cec3718600a3328ad1" + integrity sha512-qn+QVZ6JHzzx6g8XrMrNNvvIWrgVT6FzOoxTP5hQ1vEu6r9use2gOb0sSeC3Xle7eaDLN4DdAazSKnWskK3B/g== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.0" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.0.0" - jest-util "^29.0.3" - jest-worker "^29.0.3" + jest-util "^29.1.0" + jest-worker "^29.1.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.3.tgz#e85cf3391106a7a250850b6766b508bfe9c7bc6f" - integrity sha512-YfW/G63dAuiuQ3QmQlh8hnqLDe25WFY3eQhuc/Ev1AGmkw5zREblTh7TCSKLoheyggu6G9gxO2hY8p9o6xbaRQ== +jest-leak-detector@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.1.0.tgz#6b7067d383dbf0804f21e16426d8562d84f19340" + integrity sha512-7ZdlIA2UXBIzXBNadta7pohrrvbD/Jp5T55Ux2DE1BSGul4RglIPHt7cZ0V3ll+ppBC1pGaBiWPBfLcQ2dDc3Q== dependencies: jest-get-type "^29.0.0" - pretty-format "^29.0.3" + pretty-format "^29.1.0" -jest-matcher-utils@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.3.tgz#b8305fd3f9e27cdbc210b21fc7dbba92d4e54560" - integrity sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w== +jest-matcher-utils@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.1.0.tgz#60f53cc199921ece9170d3d20500ae0b93294928" + integrity sha512-pfthsLu27kZg+T1XTUGvox0r3gP3KtqdMPliVd/bs6iDrZ9Z6yJgLbw6zNc4DHtCcyzq9UW0jmszCX8DdFU/wA== dependencies: chalk "^4.0.0" - jest-diff "^29.0.3" + jest-diff "^29.1.0" jest-get-type "^29.0.0" - pretty-format "^29.0.3" + pretty-format "^29.1.0" -jest-message-util@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.3.tgz#f0254e1ffad21890c78355726202cc91d0a40ea8" - integrity sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg== +jest-message-util@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.1.0.tgz#0bb50a8064aa49999a6c313827e43bf51bd71dd1" + integrity sha512-NzGXD9wgCxUy20sIvyOsSA/KzQmkmagOVGE5LnT2juWn+hB88gCQr8N/jpu34CXRIXmV7INwrQVVwhnh72pY5A== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.0" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.0.3" + pretty-format "^29.1.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.3.tgz#4f0093f6a9cb2ffdb9c44a07a3912f0c098c8de9" - integrity sha512-ort9pYowltbcrCVR43wdlqfAiFJXBx8l4uJDsD8U72LgBcetvEp+Qxj1W9ZYgMRoeAo+ov5cnAGF2B6+Oth+ww== +jest-mock@^29.1.1: + version "29.1.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.1.1.tgz#b5475d07a8db6d39fe73e960ca94a3ac761afe0d" + integrity sha512-vDe56JmImqt3j8pHcEIkahQbSCnBS49wda0spIl0bkrIM7VDZXjKaes6W28vKZye0atNAcFaj3dxXh0XWjBW4Q== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.0" "@types/node" "*" + jest-util "^29.1.0" jest-pnp-resolver@^1.2.2: version "1.2.2" @@ -1837,88 +1838,88 @@ jest-regex-util@^29.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== -jest-resolve-dependencies@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.3.tgz#f23a54295efc6374b86b198cf8efed5606d6b762" - integrity sha512-KzuBnXqNvbuCdoJpv8EanbIGObk7vUBNt/PwQPPx2aMhlv/jaXpUJsqWYRpP/0a50faMBY7WFFP8S3/CCzwfDw== +jest-resolve-dependencies@^29.1.1: + version "29.1.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.1.1.tgz#03104a866fb133cffd8a6fe7fc198b0de9a17232" + integrity sha512-AMRTJyiK8caRXq3pa9i4oXX6yH+am5v0HwCUq1yk9lxI3ARihyT2OfEySJJo3ER7xpxf3b6isfp1sO6PQY3N0Q== dependencies: jest-regex-util "^29.0.0" - jest-snapshot "^29.0.3" + jest-snapshot "^29.1.0" -jest-resolve@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.3.tgz#329a3431e3b9eb6629a2cd483e9bed95b26827b9" - integrity sha512-toVkia85Y/BPAjJasTC9zIPY6MmVXQPtrCk8SmiheC4MwVFE/CMFlOtMN6jrwPMC6TtNh8+sTMllasFeu1wMPg== +jest-resolve@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.1.0.tgz#114d2a86f6ff07e1cc56dbe84deb9d6e058b4399" + integrity sha512-0IETuMI58nbAWwCrtX1QQmenstlWOEdwNS5FXxpEMAs6S5tttFiEoXUwGTAiI152nqoWRUckAgt21FP4wqeZWA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.3" + jest-haste-map "^29.1.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.0.3" - jest-validate "^29.0.3" + jest-util "^29.1.0" + jest-validate "^29.1.0" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.3.tgz#2e47fe1e8777aea9b8970f37e8f83630b508fb87" - integrity sha512-Usu6VlTOZlCZoNuh3b2Tv/yzDpKqtiNAetG9t3kJuHfUyVMNW7ipCCJOUojzKkjPoaN7Bl1f7Buu6PE0sGpQxw== +jest-runner@^29.1.1: + version "29.1.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.1.1.tgz#4ababc79ec3ec654de33db093ca2ec78599fa7ad" + integrity sha512-HqazsMPXB62Zi2oJEl+Ta9aUWAaR4WdT7ow25pcS99PkOsWQoYH+yyaKbAHBUf8NOqPbZ8T4Q8gt8ZBFEJJdVQ== dependencies: - "@jest/console" "^29.0.3" - "@jest/environment" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.1.0" + "@jest/environment" "^29.1.1" + "@jest/test-result" "^29.1.0" + "@jest/transform" "^29.1.0" + "@jest/types" "^29.1.0" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^29.0.0" - jest-environment-node "^29.0.3" - jest-haste-map "^29.0.3" - jest-leak-detector "^29.0.3" - jest-message-util "^29.0.3" - jest-resolve "^29.0.3" - jest-runtime "^29.0.3" - jest-util "^29.0.3" - jest-watcher "^29.0.3" - jest-worker "^29.0.3" + jest-environment-node "^29.1.1" + jest-haste-map "^29.1.0" + jest-leak-detector "^29.1.0" + jest-message-util "^29.1.0" + jest-resolve "^29.1.0" + jest-runtime "^29.1.1" + jest-util "^29.1.0" + jest-watcher "^29.1.0" + jest-worker "^29.1.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.3.tgz#5a823ec5902257519556a4e5a71a868e8fd788aa" - integrity sha512-12gZXRQ7ozEeEHKTY45a+YLqzNDR/x4c//X6AqwKwKJPpWM8FY4vwn4VQJOcLRS3Nd1fWwgP7LU4SoynhuUMHQ== +jest-runtime@^29.1.1: + version "29.1.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.1.1.tgz#54a4cc4665d5c86f072f3f8fe3f9ec83d3802c8b" + integrity sha512-DA2nW5GUAEFUOFztVqX6BOHbb1tUO1iDzlx+bOVdw870UIkv09u3P5nTfK3N+xtqy/fGlLsg7UCzhpEJnwKilg== dependencies: - "@jest/environment" "^29.0.3" - "@jest/fake-timers" "^29.0.3" - "@jest/globals" "^29.0.3" + "@jest/environment" "^29.1.1" + "@jest/fake-timers" "^29.1.1" + "@jest/globals" "^29.1.1" "@jest/source-map" "^29.0.0" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/test-result" "^29.1.0" + "@jest/transform" "^29.1.0" + "@jest/types" "^29.1.0" "@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.0.3" - jest-message-util "^29.0.3" - jest-mock "^29.0.3" + jest-haste-map "^29.1.0" + jest-message-util "^29.1.0" + jest-mock "^29.1.1" jest-regex-util "^29.0.0" - jest-resolve "^29.0.3" - jest-snapshot "^29.0.3" - jest-util "^29.0.3" + jest-resolve "^29.1.0" + jest-snapshot "^29.1.0" + jest-util "^29.1.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.3.tgz#0a024706986a915a6eefae74d7343069d2fc8eef" - integrity sha512-52q6JChm04U3deq+mkQ7R/7uy7YyfVIrebMi6ZkBoDJ85yEjm/sJwdr1P0LOIEHmpyLlXrxy3QP0Zf5J2kj0ew== +jest-snapshot@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.1.0.tgz#9da20c1c504a41e79abcbfecced090325b3cdba1" + integrity sha512-nHZoA+hpbFlkyV8uLoLJQ/80DLi3c6a5zeELgfSZ5bZj+eljqULr79KBQakp5xyH3onezf4k+K+2/Blk5/1O+g== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1926,81 +1927,81 @@ jest-snapshot@^29.0.3: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/expect-utils" "^29.1.0" + "@jest/transform" "^29.1.0" + "@jest/types" "^29.1.0" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.0.3" + expect "^29.1.0" graceful-fs "^4.2.9" - jest-diff "^29.0.3" + jest-diff "^29.1.0" jest-get-type "^29.0.0" - jest-haste-map "^29.0.3" - jest-matcher-utils "^29.0.3" - jest-message-util "^29.0.3" - jest-util "^29.0.3" + jest-haste-map "^29.1.0" + jest-matcher-utils "^29.1.0" + jest-message-util "^29.1.0" + jest-util "^29.1.0" natural-compare "^1.4.0" - pretty-format "^29.0.3" + pretty-format "^29.1.0" semver "^7.3.5" -jest-util@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.3.tgz#06d1d77f9a1bea380f121897d78695902959fbc0" - integrity sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ== +jest-util@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.1.0.tgz#e8a971dfb900bb85f090c752aa321b6912e81002" + integrity sha512-5haD8egMAEAq/e8ritN2Gr1WjLYtXi4udAIZB22GnKlv/2MHkbCjcyjgDBmyezAMMeQKGfoaaDsWCmVlnHZ1WQ== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.0" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.3.tgz#f9521581d7344685428afa0a4d110e9c519aeeb6" - integrity sha512-OebiqqT6lK8cbMPtrSoS3aZP4juID762lZvpf1u+smZnwTEBCBInan0GAIIhv36MxGaJvmq5uJm7dl5gVt+Zrw== +jest-validate@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.1.0.tgz#5e2ba89d7d6b3e4d3ece34024f317e956a5c85c0" + integrity sha512-EQKRweSxmIJelCdirpuVkeCS1rSNXJFtSGEeSRFwH39QGioy7qKRSY8XBB4qFiappbsvgHnH0V6Iq5ASs11knA== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.0" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.0.0" leven "^3.1.0" - pretty-format "^29.0.3" + pretty-format "^29.1.0" -jest-watcher@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.3.tgz#8e220d1cc4f8029875e82015d084cab20f33d57f" - integrity sha512-tQX9lU91A+9tyUQKUMp0Ns8xAcdhC9fo73eqA3LFxP2bSgiF49TNcc+vf3qgGYYK9qRjFpXW9+4RgF/mbxyOOw== +jest-watcher@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.1.0.tgz#4a9f9d2c9bb9115f7b543c26f468d2c0c0202506" + integrity sha512-JXw7+VpLSf+2yfXlux1/xR65fMn//0pmiXd6EtQWySS9233aA+eGS+8Y5o2imiJ25JBKdG8T45+s78CNQ71Fbg== dependencies: - "@jest/test-result" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/test-result" "^29.1.0" + "@jest/types" "^29.1.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^29.0.3" + jest-util "^29.1.0" string-length "^4.0.1" -jest-worker@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.3.tgz#c2ba0aa7e41eec9eb0be8e8a322ae6518df72647" - integrity sha512-Tl/YWUugQOjoTYwjKdfJWkSOfhufJHO5LhXTSZC3TRoQKO+fuXnZAdoXXBlpLXKGODBL3OvdUasfDD4PcMe6ng== +jest-worker@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.1.0.tgz#374d741b976a868e39141d63fb401abacc07a8c9" + integrity sha512-yr7RFRAxI+vhL/cGB9B0FhD+QfaWh1qSxurx7gLP16dfmqhG8w75D/CQFU8ZetvhiQqLZh8X0C4rxwsZy6HITQ== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.0.0: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.3.tgz#5227a0596d30791b2649eea347e4aa97f734944d" - integrity sha512-ElgUtJBLgXM1E8L6K1RW1T96R897YY/3lRYqq9uVcPWtP2AAl/nQ16IYDh/FzQOOQ12VEuLdcPU83mbhG2C3PQ== + version "29.1.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.1.1.tgz#22d9d828f01335ec17225bcb267fe669319983be" + integrity sha512-Doe41PZ8MvGLtOZIW2RIVu94wa7jm/N775BBloVXk/G/vV6VYnDCOxBwrqekEgrd3Pn/bv8b5UdB2x0pAoQpwQ== dependencies: - "@jest/core" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/core" "^29.1.1" + "@jest/types" "^29.1.0" import-local "^3.0.2" - jest-cli "^29.0.3" + jest-cli "^29.1.1" js-sdsl@^4.1.4: version "4.1.4" @@ -2326,10 +2327,10 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.3.tgz#23d5f8cabc9cbf209a77d49409d093d61166a811" - integrity sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q== +pretty-format@^29.1.0: + version "29.1.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.1.0.tgz#ea3de2feed5b8d19c537a12fe478ddc8b45da6b8" + integrity sha512-dZ21z0UjKVSiEkrPAt2nJnGfrtYMFBlNW4wTkJsIp9oB5A8SUQ8DuJ9EUgAvYyNfMeoGmKiDnpJvM489jkzdSQ== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" From 0995074730abb2c8a4e5d8e841bad432a36c3b3d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Sep 2022 12:05:30 +0000 Subject: [PATCH 120/262] Bump jest from 29.1.1 to 29.1.2 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.1.1 to 29.1.2. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.1.2/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 581 +++++++++++++++++++++++++++--------------------------- 1 file changed, 291 insertions(+), 290 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3731ba66..5cda0ff1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -353,28 +353,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.1.0": - version "29.1.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.1.0.tgz#3b8e9e86aef28af15fcadfd8df7321ed1327c3e7" - integrity sha512-yNoFMuAsXTP8OyweaMaIoa6Px6rJkbbG7HtgYKGP3CY7lE7ADRA0Fn5ad9O+KefKcaf6W9rywKpCWOw21WMsAw== +"@jest/console@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.1.2.tgz#0ae975a70004696f8320490fcaa1a4152f7b62e4" + integrity sha512-ujEBCcYs82BTmRxqfHMQggSlkUZP63AE5YEaTPj7eFyJOzukkTorstOUC7L6nE3w5SYadGVAnTsQ/ZjTGL0qYQ== dependencies: - "@jest/types" "^29.1.0" + "@jest/types" "^29.1.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.1.0" - jest-util "^29.1.0" + jest-message-util "^29.1.2" + jest-util "^29.1.2" slash "^3.0.0" -"@jest/core@^29.1.1": - version "29.1.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.1.1.tgz#a7e5f86dd29fa9da1ca84752237735dc7bcda3d8" - integrity sha512-ppym+PLiuSmvU9ufXVb/8OtHUPcjW+bBlb8CLh6oMATgJtCE3fjDYrzJi5u1uX8q9jbmtQ7VADKJKIlp68zi3A== +"@jest/core@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.1.2.tgz#e5ce7a71e7da45156a96fb5eeed11d18b67bd112" + integrity sha512-sCO2Va1gikvQU2ynDN8V4+6wB7iVrD2CvT0zaRst4rglf56yLly0NQ9nuRRAWFeimRf+tCdFsb1Vk1N9LrrMPA== dependencies: - "@jest/console" "^29.1.0" - "@jest/reporters" "^29.1.0" - "@jest/test-result" "^29.1.0" - "@jest/transform" "^29.1.0" - "@jest/types" "^29.1.0" + "@jest/console" "^29.1.2" + "@jest/reporters" "^29.1.2" + "@jest/test-result" "^29.1.2" + "@jest/transform" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -382,80 +382,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.0.0" - jest-config "^29.1.1" - jest-haste-map "^29.1.0" - jest-message-util "^29.1.0" + jest-config "^29.1.2" + jest-haste-map "^29.1.2" + jest-message-util "^29.1.2" jest-regex-util "^29.0.0" - jest-resolve "^29.1.0" - jest-resolve-dependencies "^29.1.1" - jest-runner "^29.1.1" - jest-runtime "^29.1.1" - jest-snapshot "^29.1.0" - jest-util "^29.1.0" - jest-validate "^29.1.0" - jest-watcher "^29.1.0" + jest-resolve "^29.1.2" + jest-resolve-dependencies "^29.1.2" + jest-runner "^29.1.2" + jest-runtime "^29.1.2" + jest-snapshot "^29.1.2" + jest-util "^29.1.2" + jest-validate "^29.1.2" + jest-watcher "^29.1.2" micromatch "^4.0.4" - pretty-format "^29.1.0" + pretty-format "^29.1.2" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.1.1": - version "29.1.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.1.1.tgz#afeb66563d8d366a329908087b6697c3bfaed3cb" - integrity sha512-69WULhTD38UcjvLGRAnnwC5hDt35ZC91ZwnvWipNOAOSaQNT32uKYL/TVCT3tncB9L1D++LOmBbYhTYP4TLuuQ== +"@jest/environment@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.1.2.tgz#bb51a43fce9f960ba9a48f0b5b556f30618ebc0a" + integrity sha512-rG7xZ2UeOfvOVzoLIJ0ZmvPl4tBEQ2n73CZJSlzUjPw4or1oSWC0s0Rk0ZX+pIBJ04aVr6hLWFn1DFtrnf8MhQ== dependencies: - "@jest/fake-timers" "^29.1.1" - "@jest/types" "^29.1.0" + "@jest/fake-timers" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" - jest-mock "^29.1.1" + jest-mock "^29.1.2" -"@jest/expect-utils@^29.1.0": - version "29.1.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.1.0.tgz#598cc7fea83b1bf84249b3b98683575cee888894" - integrity sha512-YcD5CF2beqfoB07WqejPzWq1/l+zT3SgGwcqqIaPPG1DHFn/ea8MWWXeqV3KKMhTaOM1rZjlYplj1GQxR0XxKA== +"@jest/expect-utils@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.1.2.tgz#66dbb514d38f7d21456bc774419c9ae5cca3f88d" + integrity sha512-4a48bhKfGj/KAH39u0ppzNTABXQ8QPccWAFUFobWBaEMSMp+sB31Z2fK/l47c4a/Mu1po2ffmfAIPxXbVTXdtg== dependencies: jest-get-type "^29.0.0" -"@jest/expect@^29.1.0": - version "29.1.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.1.0.tgz#58956d38c22f42a2ec7ecf7adb9e0ddd9a9082a3" - integrity sha512-qWQttxE5rEwzvDW9G3f0o8chu1EKvIfsMQDeRlXMLCtsDS94ckcqEMNgbKKz0NYlZ45xrIoy+/pngt3ZFr/2zw== +"@jest/expect@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.1.2.tgz#334a86395f621f1ab63ad95b06a588b9114d7b7a" + integrity sha512-FXw/UmaZsyfRyvZw3M6POgSNqwmuOXJuzdNiMWW9LCYo0GRoRDhg+R5iq5higmRTHQY7hx32+j7WHwinRmoILQ== dependencies: - expect "^29.1.0" - jest-snapshot "^29.1.0" + expect "^29.1.2" + jest-snapshot "^29.1.2" -"@jest/fake-timers@^29.1.1": - version "29.1.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.1.1.tgz#ae345e5ca51e9f72e0d861e17c65d9cb558f407b" - integrity sha512-5wTGObRfL/OjzEz0v2ShXlzeJFJw8mO6ByMBwmPLd6+vkdPcmIpCvASG/PR/g8DpchSIEeDXCxQADojHxuhX8g== +"@jest/fake-timers@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.1.2.tgz#f157cdf23b4da48ce46cb00fea28ed1b57fc271a" + integrity sha512-GppaEqS+QQYegedxVMpCe2xCXxxeYwQ7RsNx55zc8f+1q1qevkZGKequfTASI7ejmg9WwI+SJCrHe9X11bLL9Q== dependencies: - "@jest/types" "^29.1.0" + "@jest/types" "^29.1.2" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.1.0" - jest-mock "^29.1.1" - jest-util "^29.1.0" + jest-message-util "^29.1.2" + jest-mock "^29.1.2" + jest-util "^29.1.2" -"@jest/globals@^29.1.1": - version "29.1.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.1.1.tgz#017cffa0e79b35e7197b229d852c9ad35ed4be5c" - integrity sha512-yTiusxeEHjXwmo3guWlN31a1harU8zekLBMlZpOZ+84rfO3HDrkNZLTfd/YaHF8CrwlNCFpDGNSQCH8WkklH/Q== +"@jest/globals@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.1.2.tgz#826ede84bc280ae7f789cb72d325c48cd048b9d3" + integrity sha512-uMgfERpJYoQmykAd0ffyMq8wignN4SvLUG6orJQRe9WAlTRc9cdpCaE/29qurXixYJVZWUqIBXhSk8v5xN1V9g== dependencies: - "@jest/environment" "^29.1.1" - "@jest/expect" "^29.1.0" - "@jest/types" "^29.1.0" - jest-mock "^29.1.1" + "@jest/environment" "^29.1.2" + "@jest/expect" "^29.1.2" + "@jest/types" "^29.1.2" + jest-mock "^29.1.2" -"@jest/reporters@^29.1.0": - version "29.1.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.1.0.tgz#da488ddfb39a4cfb86abdc29fd94f84031acfd02" - integrity sha512-szSjHjVuBQ7aZUdBzTicCoQAAQsQFLk+/PtMfO0RQxL5mQ1iw+PSKOpyvMZcA5T6bH9pIapue5U9UCrxfOtL3w== +"@jest/reporters@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.1.2.tgz#5520898ed0a4ecf69d8b671e1dc8465d0acdfa6e" + integrity sha512-X4fiwwyxy9mnfpxL0g9DD0KcTmEIqP0jUdnc2cfa9riHy+I6Gwwp5vOZiwyg0vZxfSDxrOlK9S4+340W4d+DAA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.1.0" - "@jest/test-result" "^29.1.0" - "@jest/transform" "^29.1.0" - "@jest/types" "^29.1.0" + "@jest/console" "^29.1.2" + "@jest/test-result" "^29.1.2" + "@jest/transform" "^29.1.2" + "@jest/types" "^29.1.2" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -468,9 +468,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.1.0" - jest-util "^29.1.0" - jest-worker "^29.1.0" + jest-message-util "^29.1.2" + jest-util "^29.1.2" + jest-worker "^29.1.2" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -493,51 +493,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.1.0": - version "29.1.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.1.0.tgz#da6b0062325a780c9e3c7262b6b89da57fba2dca" - integrity sha512-RMBhPlw1Qfc2bKSf3RFPCyFSN7cfWVSTxRD8JrnvqdqgaDgrq4aGJT1A/V2+5Vq9bqBd187FpaxGTQ4zLrt08g== +"@jest/test-result@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.1.2.tgz#6a8d006eb2b31ce0287d1fc10d12b8ff8504f3c8" + integrity sha512-jjYYjjumCJjH9hHCoMhA8PCl1OxNeGgAoZ7yuGYILRJX9NjgzTN0pCT5qAoYR4jfOP8htIByvAlz9vfNSSBoVg== dependencies: - "@jest/console" "^29.1.0" - "@jest/types" "^29.1.0" + "@jest/console" "^29.1.2" + "@jest/types" "^29.1.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.1.0": - version "29.1.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.1.0.tgz#d3d34497e860a44f3f80e94958651f58d3ce64f8" - integrity sha512-1diQfwNhBAte+x3TmyfWloxT1C8GcPEPEZ4BZjmELBK2j3cdqi0DofoJUxBDDUBBnakbv8ce0B7CIzprsupPSA== +"@jest/test-sequencer@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.1.2.tgz#10bfd89c08bfdba382eb05cc79c1d23a01238a93" + integrity sha512-fU6dsUqqm8sA+cd85BmeF7Gu9DsXVWFdGn9taxM6xN1cKdcP/ivSgXh5QucFRFz1oZxKv3/9DYYbq0ULly3P/Q== dependencies: - "@jest/test-result" "^29.1.0" + "@jest/test-result" "^29.1.2" graceful-fs "^4.2.9" - jest-haste-map "^29.1.0" + jest-haste-map "^29.1.2" slash "^3.0.0" -"@jest/transform@^29.1.0": - version "29.1.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.1.0.tgz#1b3e597681362f6164e786e6bc2826c34ecbf74f" - integrity sha512-NI1zd62KgM0lW6rWMIZDx52dfTIDd+cnLQNahH0YhH7TVmQVigumJ6jszuhAzvKHGm55P2Fozcglb5sGMfFp3Q== +"@jest/transform@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.1.2.tgz#20f814696e04f090421f6d505c14bbfe0157062a" + integrity sha512-2uaUuVHTitmkx1tHF+eBjb4p7UuzBG7SXIaA/hNIkaMP6K+gXYGxP38ZcrofzqN0HeZ7A90oqsOa97WU7WZkSw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.1.0" + "@jest/types" "^29.1.2" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.1.0" + jest-haste-map "^29.1.2" jest-regex-util "^29.0.0" - jest-util "^29.1.0" + jest-util "^29.1.2" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^29.1.0": - version "29.1.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.1.0.tgz#db23d727ce0a95500749551d8724fb3526d1e903" - integrity sha512-lE30u3z4lbTOqf5D7fDdoco3Qd8H6F/t73nLOswU4x+7VhgDQMX5y007IMqrKjFHdnpslaYymVFhWX+ttXNARQ== +"@jest/types@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.1.2.tgz#7442d32b16bcd7592d9614173078b8c334ec730a" + integrity sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -810,12 +810,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.1.0.tgz#945e45eb8a33e8ad8cb334f2b0f040d7306cffbf" - integrity sha512-0XiBgPRhMSng+ThuXz0M/WpOeml/q5S4BFIaDS5uQb+lCjOzd0OfYEN4hWte5fDy7SZ6rNmEi16UpWGurSg2nQ== +babel-jest@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.1.2.tgz#540d3241925c55240fb0c742e3ffc5f33a501978" + integrity sha512-IuG+F3HTHryJb7gacC7SQ59A9kO56BctUsT67uJHp1mMCHUOMXpDwOHWGifWqdWVknN2WNkCVQELPjXx0aLJ9Q== dependencies: - "@jest/transform" "^29.1.0" + "@jest/transform" "^29.1.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.0.2" @@ -1280,16 +1280,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.1.0.tgz#0e20a72cf4b2cfb8ca5e2ab138c23c5078c37460" - integrity sha512-1NCfR0FEArn9Vq1KEjhPd1rggRLiWgo87gfMK4iKn6DcVzJBRMyDNX22hyND5KiSRPIPQ5KtsY6HLxsQ0MU86w== +expect@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.1.2.tgz#82f8f28d7d408c7c68da3a386a490ee683e1eced" + integrity sha512-AuAGn1uxva5YBbBlXb+2JPxJRuemZsmlGcapPXWNSBNsQtAULfjioREGBWuI0EOvYUKjDnrCy8PW5Zlr1md5mw== dependencies: - "@jest/expect-utils" "^29.1.0" + "@jest/expect-utils" "^29.1.2" jest-get-type "^29.0.0" - jest-matcher-utils "^29.1.0" - jest-message-util "^29.1.0" - jest-util "^29.1.0" + jest-matcher-utils "^29.1.2" + jest-message-util "^29.1.2" + jest-util "^29.1.2" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1651,86 +1651,86 @@ jest-changed-files@^29.0.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.1.1: - version "29.1.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.1.1.tgz#696e0b58351316f5fdb39d3480b4fffe8dbf0100" - integrity sha512-Ii+3JIeLF3z8j2E7fPSjPjXJLBdbAcZyfEiALRQ1Fk+FWTIfuEfZrZcjSaBdz/k/waoq+bPf9x/vBCXIAyLLEQ== +jest-circus@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.1.2.tgz#4551068e432f169a53167fe1aef420cf51c8a735" + integrity sha512-ajQOdxY6mT9GtnfJRZBRYS7toNIJayiiyjDyoZcnvPRUPwJ58JX0ci0PKAKUo2C1RyzlHw0jabjLGKksO42JGA== dependencies: - "@jest/environment" "^29.1.1" - "@jest/expect" "^29.1.0" - "@jest/test-result" "^29.1.0" - "@jest/types" "^29.1.0" + "@jest/environment" "^29.1.2" + "@jest/expect" "^29.1.2" + "@jest/test-result" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.1.0" - jest-matcher-utils "^29.1.0" - jest-message-util "^29.1.0" - jest-runtime "^29.1.1" - jest-snapshot "^29.1.0" - jest-util "^29.1.0" + jest-each "^29.1.2" + jest-matcher-utils "^29.1.2" + jest-message-util "^29.1.2" + jest-runtime "^29.1.2" + jest-snapshot "^29.1.2" + jest-util "^29.1.2" p-limit "^3.1.0" - pretty-format "^29.1.0" + pretty-format "^29.1.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.1.1: - version "29.1.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.1.1.tgz#6ff79c0b2d1d062f24216d2bcbf6c01a1e41db21" - integrity sha512-nz/JNtqDFf49R2KgeZ9+6Zl1uxSuRsg/tICC+DHMh+bQ0co6QqBPWKg3FtW4534bs8/J2YqFC2Lct9DZR24z0Q== +jest-cli@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.1.2.tgz#423b9c5d3ea20a50b1354b8bf3f2a20e72110e89" + integrity sha512-vsvBfQ7oS2o4MJdAH+4u9z76Vw5Q8WBQF5MchDbkylNknZdrPTX1Ix7YRJyTlOWqRaS7ue/cEAn+E4V1MWyMzw== dependencies: - "@jest/core" "^29.1.1" - "@jest/test-result" "^29.1.0" - "@jest/types" "^29.1.0" + "@jest/core" "^29.1.2" + "@jest/test-result" "^29.1.2" + "@jest/types" "^29.1.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.1.1" - jest-util "^29.1.0" - jest-validate "^29.1.0" + jest-config "^29.1.2" + jest-util "^29.1.2" + jest-validate "^29.1.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.1.1: - version "29.1.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.1.1.tgz#52aaa6237a7b3eea5c640aad6a53b390dc76f49f" - integrity sha512-o2iZrQMOiF54zOw1kOcJGmfKzAW+V2ajZVWxbt+Ex+g0fVaTkk215BD/GFhrviuic+Xk7DpzUmdTT9c1QfsPqg== +jest-config@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.1.2.tgz#7d004345ca4c09f5d8f802355f54494e90842f4d" + integrity sha512-EC3Zi86HJUOz+2YWQcJYQXlf0zuBhJoeyxLM6vb6qJsVmpP7KcCP1JnyF0iaqTaXdBP8Rlwsvs7hnKWQWWLwwA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.1.0" - "@jest/types" "^29.1.0" - babel-jest "^29.1.0" + "@jest/test-sequencer" "^29.1.2" + "@jest/types" "^29.1.2" + babel-jest "^29.1.2" 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.1.1" - jest-environment-node "^29.1.1" + jest-circus "^29.1.2" + jest-environment-node "^29.1.2" jest-get-type "^29.0.0" jest-regex-util "^29.0.0" - jest-resolve "^29.1.0" - jest-runner "^29.1.1" - jest-util "^29.1.0" - jest-validate "^29.1.0" + jest-resolve "^29.1.2" + jest-runner "^29.1.2" + jest-util "^29.1.2" + jest-validate "^29.1.2" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.1.0" + pretty-format "^29.1.2" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.1.0.tgz#952639cd73fcf4d34173e2d98a0cd1c20c71ba88" - integrity sha512-ZJyWG30jpVHwxLs8xxR1so4tz6lFARNztnFlxssFpQdakaW0isSx9rAKs/6aQUKQDZ/DgSpY6HjUGLO9xkNdRw== +jest-diff@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.1.2.tgz#bb7aaf5353227d6f4f96c5e7e8713ce576a607dc" + integrity sha512-4GQts0aUopVvecIT4IwD/7xsBaMhKTYoM4/njE/aVw9wpw+pIUVp8Vab/KnSzSilr84GnLBkaP3JLDnQYCKqVQ== dependencies: chalk "^4.0.0" diff-sequences "^29.0.0" jest-get-type "^29.0.0" - pretty-format "^29.1.0" + pretty-format "^29.1.2" jest-docblock@^29.0.0: version "29.0.0" @@ -1739,94 +1739,94 @@ jest-docblock@^29.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.1.0.tgz#d0962d04f4a28f5f048c2ff50965cab9ae2f524d" - integrity sha512-ELSZV/L4yjqKU2O0bnDTNHlizD4IRS9DX94iAB6QpiPIJsR453dJW7Ka7TXSmxQdc66HNNOhUcQ5utIeVCKGyA== +jest-each@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.1.2.tgz#d4c8532c07a846e79f194f7007ce7cb1987d1cd0" + integrity sha512-AmTQp9b2etNeEwMyr4jc0Ql/LIX/dhbgP21gHAizya2X6rUspHn2gysMXaj6iwWuOJ2sYRgP8c1P4cXswgvS1A== dependencies: - "@jest/types" "^29.1.0" + "@jest/types" "^29.1.2" chalk "^4.0.0" jest-get-type "^29.0.0" - jest-util "^29.1.0" - pretty-format "^29.1.0" + jest-util "^29.1.2" + pretty-format "^29.1.2" -jest-environment-node@^29.1.1: - version "29.1.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.1.1.tgz#10f1782b74e17fcf782ff51df79f2b0cee135851" - integrity sha512-0nwTca4L2N8iM33A+JMfBdygR6B3N/bcPoLe1hEd9o87KLxDZwKGvpTGSfXpjtyqNQXiaL/3G+YOcSoeq/syPw== +jest-environment-node@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.1.2.tgz#005e05cc6ea4b9b5ba55906ab1ce53c82f6907a7" + integrity sha512-C59yVbdpY8682u6k/lh8SUMDJPbOyCHOTgLVVi1USWFxtNV+J8fyIwzkg+RJIVI30EKhKiAGNxYaFr3z6eyNhQ== dependencies: - "@jest/environment" "^29.1.1" - "@jest/fake-timers" "^29.1.1" - "@jest/types" "^29.1.0" + "@jest/environment" "^29.1.2" + "@jest/fake-timers" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" - jest-mock "^29.1.1" - jest-util "^29.1.0" + jest-mock "^29.1.2" + jest-util "^29.1.2" jest-get-type@^29.0.0: version "29.0.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== -jest-haste-map@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.1.0.tgz#1cbdd30528b7b215523166cec3718600a3328ad1" - integrity sha512-qn+QVZ6JHzzx6g8XrMrNNvvIWrgVT6FzOoxTP5hQ1vEu6r9use2gOb0sSeC3Xle7eaDLN4DdAazSKnWskK3B/g== +jest-haste-map@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.1.2.tgz#93f3634aa921b6b654e7c94137b24e02e7ca6ac9" + integrity sha512-xSjbY8/BF11Jh3hGSPfYTa/qBFrm3TPM7WU8pU93m2gqzORVLkHFWvuZmFsTEBPRKndfewXhMOuzJNHyJIZGsw== dependencies: - "@jest/types" "^29.1.0" + "@jest/types" "^29.1.2" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.0.0" - jest-util "^29.1.0" - jest-worker "^29.1.0" + jest-util "^29.1.2" + jest-worker "^29.1.2" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.1.0.tgz#6b7067d383dbf0804f21e16426d8562d84f19340" - integrity sha512-7ZdlIA2UXBIzXBNadta7pohrrvbD/Jp5T55Ux2DE1BSGul4RglIPHt7cZ0V3ll+ppBC1pGaBiWPBfLcQ2dDc3Q== +jest-leak-detector@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.1.2.tgz#4c846db14c58219430ccbc4f01a1ec52ebee4fc2" + integrity sha512-TG5gAZJpgmZtjb6oWxBLf2N6CfQ73iwCe6cofu/Uqv9iiAm6g502CAnGtxQaTfpHECBdVEMRBhomSXeLnoKjiQ== dependencies: jest-get-type "^29.0.0" - pretty-format "^29.1.0" + pretty-format "^29.1.2" -jest-matcher-utils@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.1.0.tgz#60f53cc199921ece9170d3d20500ae0b93294928" - integrity sha512-pfthsLu27kZg+T1XTUGvox0r3gP3KtqdMPliVd/bs6iDrZ9Z6yJgLbw6zNc4DHtCcyzq9UW0jmszCX8DdFU/wA== +jest-matcher-utils@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.1.2.tgz#e68c4bcc0266e70aa1a5c13fb7b8cd4695e318a1" + integrity sha512-MV5XrD3qYSW2zZSHRRceFzqJ39B2z11Qv0KPyZYxnzDHFeYZGJlgGi0SW+IXSJfOewgJp/Km/7lpcFT+cgZypw== dependencies: chalk "^4.0.0" - jest-diff "^29.1.0" + jest-diff "^29.1.2" jest-get-type "^29.0.0" - pretty-format "^29.1.0" + pretty-format "^29.1.2" -jest-message-util@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.1.0.tgz#0bb50a8064aa49999a6c313827e43bf51bd71dd1" - integrity sha512-NzGXD9wgCxUy20sIvyOsSA/KzQmkmagOVGE5LnT2juWn+hB88gCQr8N/jpu34CXRIXmV7INwrQVVwhnh72pY5A== +jest-message-util@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.1.2.tgz#c21a33c25f9dc1ebfcd0f921d89438847a09a501" + integrity sha512-9oJ2Os+Qh6IlxLpmvshVbGUiSkZVc2FK+uGOm6tghafnB2RyjKAxMZhtxThRMxfX1J1SOMhTn9oK3/MutRWQJQ== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.1.0" + "@jest/types" "^29.1.2" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.1.0" + pretty-format "^29.1.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.1.1: - version "29.1.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.1.1.tgz#b5475d07a8db6d39fe73e960ca94a3ac761afe0d" - integrity sha512-vDe56JmImqt3j8pHcEIkahQbSCnBS49wda0spIl0bkrIM7VDZXjKaes6W28vKZye0atNAcFaj3dxXh0XWjBW4Q== +jest-mock@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.1.2.tgz#de47807edbb9d4abf8423f1d8d308d670105678c" + integrity sha512-PFDAdjjWbjPUtQPkQufvniXIS3N9Tv7tbibePEjIIprzjgo0qQlyUiVMrT4vL8FaSJo1QXifQUOuPH3HQC/aMA== dependencies: - "@jest/types" "^29.1.0" + "@jest/types" "^29.1.2" "@types/node" "*" - jest-util "^29.1.0" + jest-util "^29.1.2" jest-pnp-resolver@^1.2.2: version "1.2.2" @@ -1838,88 +1838,88 @@ jest-regex-util@^29.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== -jest-resolve-dependencies@^29.1.1: - version "29.1.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.1.1.tgz#03104a866fb133cffd8a6fe7fc198b0de9a17232" - integrity sha512-AMRTJyiK8caRXq3pa9i4oXX6yH+am5v0HwCUq1yk9lxI3ARihyT2OfEySJJo3ER7xpxf3b6isfp1sO6PQY3N0Q== +jest-resolve-dependencies@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.1.2.tgz#a6919e58a0c7465582cb8ec2d745b4e64ae8647f" + integrity sha512-44yYi+yHqNmH3OoWZvPgmeeiwKxhKV/0CfrzaKLSkZG9gT973PX8i+m8j6pDrTYhhHoiKfF3YUFg/6AeuHw4HQ== dependencies: jest-regex-util "^29.0.0" - jest-snapshot "^29.1.0" + jest-snapshot "^29.1.2" -jest-resolve@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.1.0.tgz#114d2a86f6ff07e1cc56dbe84deb9d6e058b4399" - integrity sha512-0IETuMI58nbAWwCrtX1QQmenstlWOEdwNS5FXxpEMAs6S5tttFiEoXUwGTAiI152nqoWRUckAgt21FP4wqeZWA== +jest-resolve@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.1.2.tgz#9dd8c2fc83e59ee7d676b14bd45a5f89e877741d" + integrity sha512-7fcOr+k7UYSVRJYhSmJHIid3AnDBcLQX3VmT9OSbPWsWz1MfT7bcoerMhADKGvKCoMpOHUQaDHtQoNp/P9JMGg== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.1.0" + jest-haste-map "^29.1.2" jest-pnp-resolver "^1.2.2" - jest-util "^29.1.0" - jest-validate "^29.1.0" + jest-util "^29.1.2" + jest-validate "^29.1.2" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.1.1: - version "29.1.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.1.1.tgz#4ababc79ec3ec654de33db093ca2ec78599fa7ad" - integrity sha512-HqazsMPXB62Zi2oJEl+Ta9aUWAaR4WdT7ow25pcS99PkOsWQoYH+yyaKbAHBUf8NOqPbZ8T4Q8gt8ZBFEJJdVQ== +jest-runner@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.1.2.tgz#f18b2b86101341e047de8c2f51a5fdc4e97d053a" + integrity sha512-yy3LEWw8KuBCmg7sCGDIqKwJlULBuNIQa2eFSVgVASWdXbMYZ9H/X0tnXt70XFoGf92W2sOQDOIFAA6f2BG04Q== dependencies: - "@jest/console" "^29.1.0" - "@jest/environment" "^29.1.1" - "@jest/test-result" "^29.1.0" - "@jest/transform" "^29.1.0" - "@jest/types" "^29.1.0" + "@jest/console" "^29.1.2" + "@jest/environment" "^29.1.2" + "@jest/test-result" "^29.1.2" + "@jest/transform" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^29.0.0" - jest-environment-node "^29.1.1" - jest-haste-map "^29.1.0" - jest-leak-detector "^29.1.0" - jest-message-util "^29.1.0" - jest-resolve "^29.1.0" - jest-runtime "^29.1.1" - jest-util "^29.1.0" - jest-watcher "^29.1.0" - jest-worker "^29.1.0" + jest-environment-node "^29.1.2" + jest-haste-map "^29.1.2" + jest-leak-detector "^29.1.2" + jest-message-util "^29.1.2" + jest-resolve "^29.1.2" + jest-runtime "^29.1.2" + jest-util "^29.1.2" + jest-watcher "^29.1.2" + jest-worker "^29.1.2" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.1.1: - version "29.1.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.1.1.tgz#54a4cc4665d5c86f072f3f8fe3f9ec83d3802c8b" - integrity sha512-DA2nW5GUAEFUOFztVqX6BOHbb1tUO1iDzlx+bOVdw870UIkv09u3P5nTfK3N+xtqy/fGlLsg7UCzhpEJnwKilg== +jest-runtime@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.1.2.tgz#dbcd57103d61115479108d5864bdcd661d9c6783" + integrity sha512-jr8VJLIf+cYc+8hbrpt412n5jX3tiXmpPSYTGnwcvNemY+EOuLNiYnHJ3Kp25rkaAcTWOEI4ZdOIQcwYcXIAZw== dependencies: - "@jest/environment" "^29.1.1" - "@jest/fake-timers" "^29.1.1" - "@jest/globals" "^29.1.1" + "@jest/environment" "^29.1.2" + "@jest/fake-timers" "^29.1.2" + "@jest/globals" "^29.1.2" "@jest/source-map" "^29.0.0" - "@jest/test-result" "^29.1.0" - "@jest/transform" "^29.1.0" - "@jest/types" "^29.1.0" + "@jest/test-result" "^29.1.2" + "@jest/transform" "^29.1.2" + "@jest/types" "^29.1.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 "^29.1.0" - jest-message-util "^29.1.0" - jest-mock "^29.1.1" + jest-haste-map "^29.1.2" + jest-message-util "^29.1.2" + jest-mock "^29.1.2" jest-regex-util "^29.0.0" - jest-resolve "^29.1.0" - jest-snapshot "^29.1.0" - jest-util "^29.1.0" + jest-resolve "^29.1.2" + jest-snapshot "^29.1.2" + jest-util "^29.1.2" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.1.0.tgz#9da20c1c504a41e79abcbfecced090325b3cdba1" - integrity sha512-nHZoA+hpbFlkyV8uLoLJQ/80DLi3c6a5zeELgfSZ5bZj+eljqULr79KBQakp5xyH3onezf4k+K+2/Blk5/1O+g== +jest-snapshot@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.1.2.tgz#7dd277e88c45f2d2ff5888de1612e63c7ceb575b" + integrity sha512-rYFomGpVMdBlfwTYxkUp3sjD6usptvZcONFYNqVlaz4EpHPnDvlWjvmOQ9OCSNKqYZqLM2aS3wq01tWujLg7gg== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1927,81 +1927,82 @@ jest-snapshot@^29.1.0: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.1.0" - "@jest/transform" "^29.1.0" - "@jest/types" "^29.1.0" + "@jest/expect-utils" "^29.1.2" + "@jest/transform" "^29.1.2" + "@jest/types" "^29.1.2" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.1.0" + expect "^29.1.2" graceful-fs "^4.2.9" - jest-diff "^29.1.0" + jest-diff "^29.1.2" jest-get-type "^29.0.0" - jest-haste-map "^29.1.0" - jest-matcher-utils "^29.1.0" - jest-message-util "^29.1.0" - jest-util "^29.1.0" + jest-haste-map "^29.1.2" + jest-matcher-utils "^29.1.2" + jest-message-util "^29.1.2" + jest-util "^29.1.2" natural-compare "^1.4.0" - pretty-format "^29.1.0" + pretty-format "^29.1.2" semver "^7.3.5" -jest-util@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.1.0.tgz#e8a971dfb900bb85f090c752aa321b6912e81002" - integrity sha512-5haD8egMAEAq/e8ritN2Gr1WjLYtXi4udAIZB22GnKlv/2MHkbCjcyjgDBmyezAMMeQKGfoaaDsWCmVlnHZ1WQ== +jest-util@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.1.2.tgz#ac5798e93cb6a6703084e194cfa0898d66126df1" + integrity sha512-vPCk9F353i0Ymx3WQq3+a4lZ07NXu9Ca8wya6o4Fe4/aO1e1awMMprZ3woPFpKwghEOW+UXgd15vVotuNN9ONQ== dependencies: - "@jest/types" "^29.1.0" + "@jest/types" "^29.1.2" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.1.0.tgz#5e2ba89d7d6b3e4d3ece34024f317e956a5c85c0" - integrity sha512-EQKRweSxmIJelCdirpuVkeCS1rSNXJFtSGEeSRFwH39QGioy7qKRSY8XBB4qFiappbsvgHnH0V6Iq5ASs11knA== +jest-validate@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.1.2.tgz#83a728b8f6354da2e52346878c8bc7383516ca51" + integrity sha512-k71pOslNlV8fVyI+mEySy2pq9KdXdgZtm7NHrBX8LghJayc3wWZH0Yr0mtYNGaCU4F1OLPXRkwZR0dBm/ClshA== dependencies: - "@jest/types" "^29.1.0" + "@jest/types" "^29.1.2" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.0.0" leven "^3.1.0" - pretty-format "^29.1.0" + pretty-format "^29.1.2" -jest-watcher@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.1.0.tgz#4a9f9d2c9bb9115f7b543c26f468d2c0c0202506" - integrity sha512-JXw7+VpLSf+2yfXlux1/xR65fMn//0pmiXd6EtQWySS9233aA+eGS+8Y5o2imiJ25JBKdG8T45+s78CNQ71Fbg== +jest-watcher@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.1.2.tgz#de21439b7d889e2fcf62cc2a4779ef1a3f1f3c62" + integrity sha512-6JUIUKVdAvcxC6bM8/dMgqY2N4lbT+jZVsxh0hCJRbwkIEnbr/aPjMQ28fNDI5lB51Klh00MWZZeVf27KBUj5w== dependencies: - "@jest/test-result" "^29.1.0" - "@jest/types" "^29.1.0" + "@jest/test-result" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^29.1.0" + jest-util "^29.1.2" string-length "^4.0.1" -jest-worker@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.1.0.tgz#374d741b976a868e39141d63fb401abacc07a8c9" - integrity sha512-yr7RFRAxI+vhL/cGB9B0FhD+QfaWh1qSxurx7gLP16dfmqhG8w75D/CQFU8ZetvhiQqLZh8X0C4rxwsZy6HITQ== +jest-worker@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.1.2.tgz#a68302af61bce82b42a9a57285ca7499d29b2afc" + integrity sha512-AdTZJxKjTSPHbXT/AIOjQVmoFx0LHFcVabWu0sxI7PAy7rFf8c0upyvgBKgguVXdM4vY74JdwkyD4hSmpTW8jA== dependencies: "@types/node" "*" + jest-util "^29.1.2" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.0.0: - version "29.1.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.1.1.tgz#22d9d828f01335ec17225bcb267fe669319983be" - integrity sha512-Doe41PZ8MvGLtOZIW2RIVu94wa7jm/N775BBloVXk/G/vV6VYnDCOxBwrqekEgrd3Pn/bv8b5UdB2x0pAoQpwQ== + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.1.2.tgz#f821a1695ffd6cd0efc3b59d2dfcc70a98582499" + integrity sha512-5wEIPpCezgORnqf+rCaYD1SK+mNN7NsstWzIsuvsnrhR/hSxXWd82oI7DkrbJ+XTD28/eG8SmxdGvukrGGK6Tw== dependencies: - "@jest/core" "^29.1.1" - "@jest/types" "^29.1.0" + "@jest/core" "^29.1.2" + "@jest/types" "^29.1.2" import-local "^3.0.2" - jest-cli "^29.1.1" + jest-cli "^29.1.2" js-sdsl@^4.1.4: version "4.1.4" @@ -2327,10 +2328,10 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^29.1.0: - version "29.1.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.1.0.tgz#ea3de2feed5b8d19c537a12fe478ddc8b45da6b8" - integrity sha512-dZ21z0UjKVSiEkrPAt2nJnGfrtYMFBlNW4wTkJsIp9oB5A8SUQ8DuJ9EUgAvYyNfMeoGmKiDnpJvM489jkzdSQ== +pretty-format@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.1.2.tgz#b1f6b75be7d699be1a051f5da36e8ae9e76a8e6a" + integrity sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" From 6c781dd3f0d7c4afe3431a2de219f46babc76032 Mon Sep 17 00:00:00 2001 From: Oriol Gual Date: Wed, 5 Oct 2022 11:53:49 +0200 Subject: [PATCH 121/262] Use process.execPath instead of "node" When using nvm it seems that `spawnSync` can't find the node binary and the commands just fail awkwardly (spawnSync doesn't let us know it couldn't find the command). Related to https://github.com/prettier/plugin-ruby/issues/113 --- src/parseSync.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/parseSync.js b/src/parseSync.js index 9d89db6b..7d3dc59b 100644 --- a/src/parseSync.js +++ b/src/parseSync.js @@ -169,7 +169,7 @@ function spawnServer(opts) { } }); - const info = spawnSync("node", [getInfoJsPath, filepath]); + const info = spawnSync(process.execPath, [getInfoJsPath, filepath]); if (info.status !== 0) { throw new Error(` @@ -200,7 +200,8 @@ function parseSync(parser, source, opts) { parserArgs = spawnServer(opts); } - const response = spawnSync(parserArgs.cmd, parserArgs.args, { + const command = parserArgs.cmd === "node" ? process.execPath : parserArgs.cmd; + const response = spawnSync(command, parserArgs.args, { input: `${parser}|${opts.printWidth}|${opts.tabWidth}|${source}`, maxBuffer: 15 * 1024 * 1024 }); From 4b4375043b1260569400f11db1f4a86f41bf5605 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Oct 2022 12:01:10 +0000 Subject: [PATCH 122/262] Bump eslint from 8.24.0 to 8.25.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.24.0 to 8.25.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.24.0...v8.25.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5cda0ff1..9b17d2a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -298,10 +298,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356" - integrity sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ== +"@eslint/eslintrc@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" + integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -322,11 +322,6 @@ debug "^4.1.1" minimatch "^3.0.4" -"@humanwhocodes/gitignore-to-minimatch@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" - integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== - "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" @@ -1163,13 +1158,12 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.24.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.24.0.tgz#489516c927a5da11b3979dbfb2679394523383c8" - integrity sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ== + version "8.25.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.25.0.tgz#00eb962f50962165d0c4ee3327708315eaa8058b" + integrity sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A== dependencies: - "@eslint/eslintrc" "^1.3.2" + "@eslint/eslintrc" "^1.3.3" "@humanwhocodes/config-array" "^0.10.5" - "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" "@humanwhocodes/module-importer" "^1.0.1" ajv "^6.10.0" chalk "^4.0.0" From a2f259edfd92e5c8ebe0e758ff340fd872b44d88 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Oct 2022 12:01:29 +0000 Subject: [PATCH 123/262] Bump jest from 29.1.2 to 29.2.0 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.1.2 to 29.2.0. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.2.0/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 713 ++++++++++++++++++++++++++---------------------------- 1 file changed, 348 insertions(+), 365 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9b17d2a6..2c8220c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -348,109 +348,109 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.1.2.tgz#0ae975a70004696f8320490fcaa1a4152f7b62e4" - integrity sha512-ujEBCcYs82BTmRxqfHMQggSlkUZP63AE5YEaTPj7eFyJOzukkTorstOUC7L6nE3w5SYadGVAnTsQ/ZjTGL0qYQ== +"@jest/console@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.0.tgz#e906bdbfc83baf79590f05b515dad900b3b71fed" + integrity sha512-Xz1Wu+ZZxcB3RS8U3HdkFxlRJ7kLXI/by9X7d2/gvseIWPwYu/c1EsYy77cB5iyyHGOy3whS2HycjcuzIF4Jow== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.1.2" - jest-util "^29.1.2" + jest-message-util "^29.2.0" + jest-util "^29.2.0" slash "^3.0.0" -"@jest/core@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.1.2.tgz#e5ce7a71e7da45156a96fb5eeed11d18b67bd112" - integrity sha512-sCO2Va1gikvQU2ynDN8V4+6wB7iVrD2CvT0zaRst4rglf56yLly0NQ9nuRRAWFeimRf+tCdFsb1Vk1N9LrrMPA== +"@jest/core@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.0.tgz#beed57c552be65d4e4ab2f4161d0abe8ea6bf3a8" + integrity sha512-+gyJ3bX+kGEW/eqt/0kI7fLjqiFr3AN8O+rlEl1fYRf7D8h4Sj4tBGo9YOSirvWgvemoH2EPRya35bgvcPFzHQ== dependencies: - "@jest/console" "^29.1.2" - "@jest/reporters" "^29.1.2" - "@jest/test-result" "^29.1.2" - "@jest/transform" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/console" "^29.2.0" + "@jest/reporters" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/transform" "^29.2.0" + "@jest/types" "^29.2.0" "@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.0.0" - jest-config "^29.1.2" - jest-haste-map "^29.1.2" - jest-message-util "^29.1.2" - jest-regex-util "^29.0.0" - jest-resolve "^29.1.2" - jest-resolve-dependencies "^29.1.2" - jest-runner "^29.1.2" - jest-runtime "^29.1.2" - jest-snapshot "^29.1.2" - jest-util "^29.1.2" - jest-validate "^29.1.2" - jest-watcher "^29.1.2" + jest-changed-files "^29.2.0" + jest-config "^29.2.0" + jest-haste-map "^29.2.0" + jest-message-util "^29.2.0" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.0" + jest-resolve-dependencies "^29.2.0" + jest-runner "^29.2.0" + jest-runtime "^29.2.0" + jest-snapshot "^29.2.0" + jest-util "^29.2.0" + jest-validate "^29.2.0" + jest-watcher "^29.2.0" micromatch "^4.0.4" - pretty-format "^29.1.2" + pretty-format "^29.2.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.1.2.tgz#bb51a43fce9f960ba9a48f0b5b556f30618ebc0a" - integrity sha512-rG7xZ2UeOfvOVzoLIJ0ZmvPl4tBEQ2n73CZJSlzUjPw4or1oSWC0s0Rk0ZX+pIBJ04aVr6hLWFn1DFtrnf8MhQ== +"@jest/environment@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.0.tgz#7e5604e4ead098572056a962a970f3d79379fbd8" + integrity sha512-foaVv1QVPB31Mno3LlL58PxEQQOLZd9zQfCpyQQCQIpUAtdFP1INBjkphxrCfKT13VxpA0z5jFGIkmZk0DAg2Q== dependencies: - "@jest/fake-timers" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/fake-timers" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" - jest-mock "^29.1.2" + jest-mock "^29.2.0" -"@jest/expect-utils@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.1.2.tgz#66dbb514d38f7d21456bc774419c9ae5cca3f88d" - integrity sha512-4a48bhKfGj/KAH39u0ppzNTABXQ8QPccWAFUFobWBaEMSMp+sB31Z2fK/l47c4a/Mu1po2ffmfAIPxXbVTXdtg== +"@jest/expect-utils@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.0.tgz#3c0c472115d98211e7e0a0a8fa00719bf081987f" + integrity sha512-nz2IDF7nb1qmj9hx8Ja3MFab2q9Ml8QbOaaeJNyX5JQJHU8QUvEDiMctmhGEkk3Kzr8w8vAqz4hPk/ogJSrUhg== dependencies: - jest-get-type "^29.0.0" + jest-get-type "^29.2.0" -"@jest/expect@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.1.2.tgz#334a86395f621f1ab63ad95b06a588b9114d7b7a" - integrity sha512-FXw/UmaZsyfRyvZw3M6POgSNqwmuOXJuzdNiMWW9LCYo0GRoRDhg+R5iq5higmRTHQY7hx32+j7WHwinRmoILQ== +"@jest/expect@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.0.tgz#25316d2ae930e7bb9df96cce7521053d377c4c0d" + integrity sha512-+3lxcYL9e0xPJGOR33utxxejn+Mulz40kY0oy0FVsmIESW87NZDJ7B1ovaIqeX0xIgPX4laS5SGlqD2uSoBMcw== dependencies: - expect "^29.1.2" - jest-snapshot "^29.1.2" + expect "^29.2.0" + jest-snapshot "^29.2.0" -"@jest/fake-timers@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.1.2.tgz#f157cdf23b4da48ce46cb00fea28ed1b57fc271a" - integrity sha512-GppaEqS+QQYegedxVMpCe2xCXxxeYwQ7RsNx55zc8f+1q1qevkZGKequfTASI7ejmg9WwI+SJCrHe9X11bLL9Q== +"@jest/fake-timers@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.0.tgz#e43635c1bd73b23886e80ca12307092ef2ee1929" + integrity sha512-mX0V0uQsgeSLTt0yTqanAhhpeUKMGd2uq+PSLAfO40h72bvfNNQ7pIEl9vIwNMFxRih1ENveEjSBsLjxGGDPSw== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.1.2" - jest-mock "^29.1.2" - jest-util "^29.1.2" + jest-message-util "^29.2.0" + jest-mock "^29.2.0" + jest-util "^29.2.0" -"@jest/globals@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.1.2.tgz#826ede84bc280ae7f789cb72d325c48cd048b9d3" - integrity sha512-uMgfERpJYoQmykAd0ffyMq8wignN4SvLUG6orJQRe9WAlTRc9cdpCaE/29qurXixYJVZWUqIBXhSk8v5xN1V9g== +"@jest/globals@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.0.tgz#5cfc41c028efaf511624ba086d64113d5a8a92b3" + integrity sha512-JQxtEVNWiai1p3PIzAJZSyEqQdAJGvNKvinZDPfu0mhiYEVx6E+PiBuDWj1sVUW8hzu+R3DVqaWC9K2xcLRIAA== dependencies: - "@jest/environment" "^29.1.2" - "@jest/expect" "^29.1.2" - "@jest/types" "^29.1.2" - jest-mock "^29.1.2" + "@jest/environment" "^29.2.0" + "@jest/expect" "^29.2.0" + "@jest/types" "^29.2.0" + jest-mock "^29.2.0" -"@jest/reporters@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.1.2.tgz#5520898ed0a4ecf69d8b671e1dc8465d0acdfa6e" - integrity sha512-X4fiwwyxy9mnfpxL0g9DD0KcTmEIqP0jUdnc2cfa9riHy+I6Gwwp5vOZiwyg0vZxfSDxrOlK9S4+340W4d+DAA== +"@jest/reporters@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.0.tgz#24cac16d997ec91a9c615db2621805ee485689e0" + integrity sha512-BXoAJatxTZ18U0cwD7C8qBo8V6vef8AXYRBZdhqE5DF9CmpqmhMfw9c7OUvYqMTnBBK9A0NgXGO4Lc9EJzdHvw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.1.2" - "@jest/test-result" "^29.1.2" - "@jest/transform" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/console" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/transform" "^29.2.0" + "@jest/types" "^29.2.0" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -463,13 +463,12 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.1.2" - jest-util "^29.1.2" - jest-worker "^29.1.2" + jest-message-util "^29.2.0" + jest-util "^29.2.0" + jest-worker "^29.2.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" - terminal-link "^2.0.0" v8-to-istanbul "^9.0.1" "@jest/schemas@^29.0.0": @@ -479,60 +478,60 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/source-map@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.0.0.tgz#f8d1518298089f8ae624e442bbb6eb870ee7783c" - integrity sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ== +"@jest/source-map@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744" + integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ== dependencies: "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.1.2.tgz#6a8d006eb2b31ce0287d1fc10d12b8ff8504f3c8" - integrity sha512-jjYYjjumCJjH9hHCoMhA8PCl1OxNeGgAoZ7yuGYILRJX9NjgzTN0pCT5qAoYR4jfOP8htIByvAlz9vfNSSBoVg== +"@jest/test-result@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.0.tgz#3dcc7123b8f0fb5ba1f650ce17af45cce91a0323" + integrity sha512-l76EPJ6QqtzsCLS4aimJqWO53pxZ82o3aE+Brcmo1HJ/phb9+MR7gPhyDdN6VSGaLJCRVJBZgWEhAEz+qON0Fw== dependencies: - "@jest/console" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/console" "^29.2.0" + "@jest/types" "^29.2.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.1.2.tgz#10bfd89c08bfdba382eb05cc79c1d23a01238a93" - integrity sha512-fU6dsUqqm8sA+cd85BmeF7Gu9DsXVWFdGn9taxM6xN1cKdcP/ivSgXh5QucFRFz1oZxKv3/9DYYbq0ULly3P/Q== +"@jest/test-sequencer@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.0.tgz#acd875533f7ad01cb22da59ff4047de18e9d64da" + integrity sha512-NCnjZcGnVdva6IDqF7TCuFsXs2F1tohiNF9sasSJNzD7VfN5ic9XgcS/oPDalGiPLxCmGKj4kewqqrKAqBACcQ== dependencies: - "@jest/test-result" "^29.1.2" + "@jest/test-result" "^29.2.0" graceful-fs "^4.2.9" - jest-haste-map "^29.1.2" + jest-haste-map "^29.2.0" slash "^3.0.0" -"@jest/transform@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.1.2.tgz#20f814696e04f090421f6d505c14bbfe0157062a" - integrity sha512-2uaUuVHTitmkx1tHF+eBjb4p7UuzBG7SXIaA/hNIkaMP6K+gXYGxP38ZcrofzqN0HeZ7A90oqsOa97WU7WZkSw== +"@jest/transform@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.0.tgz#1c55ca549f64810351df999265a29f8ead51be15" + integrity sha512-NXMujGHy+B4DAj4dGnVPD0SIXlR2Z/N8Gp9h3mF66kcIRult1WWqY3/CEIrJcKviNWaFPYhZjCG2L3fteWzcUw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.1.2" - jest-regex-util "^29.0.0" - jest-util "^29.1.2" + jest-haste-map "^29.2.0" + jest-regex-util "^29.2.0" + jest-util "^29.2.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^29.1.2": - version "29.1.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.1.2.tgz#7442d32b16bcd7592d9614173078b8c334ec730a" - integrity sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg== +"@jest/types@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.0.tgz#c0d1ef8bc1e4f4b358e7877e34157371e7881b0b" + integrity sha512-mfgpQz4Z2xGo37m6KD8xEpKelaVzvYVRijmLPePn9pxgaPEtX+SqIyPNzzoeCPXKYbB4L/wYSgXDL8o3Gop78Q== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -805,15 +804,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.1.2.tgz#540d3241925c55240fb0c742e3ffc5f33a501978" - integrity sha512-IuG+F3HTHryJb7gacC7SQ59A9kO56BctUsT67uJHp1mMCHUOMXpDwOHWGifWqdWVknN2WNkCVQELPjXx0aLJ9Q== +babel-jest@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.0.tgz#088624f037da90e69a06073305276cbd111d68a8" + integrity sha512-c8FkrW1chgcbyBqOo7jFGpQYfVnb43JqjQGV+C2r94k2rZJOukYOZ6+csAqKE4ms+PHc+yevnONxs27jQIxylw== dependencies: - "@jest/transform" "^29.1.2" + "@jest/transform" "^29.2.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.0.2" + babel-preset-jest "^29.2.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -829,10 +828,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.2.tgz#ae61483a829a021b146c016c6ad39b8bcc37c2c8" - integrity sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg== +babel-plugin-jest-hoist@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" + integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -857,12 +856,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.2.tgz#e14a7124e22b161551818d89e5bdcfb3b2b0eac7" - integrity sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA== +babel-preset-jest@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" + integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== dependencies: - babel-plugin-jest-hoist "^29.0.2" + babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1059,10 +1058,10 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.0.0.tgz#bae49972ef3933556bcb0800b72e8579d19d9e4f" - integrity sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA== +diff-sequences@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" + integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== dir-glob@^3.0.1: version "3.0.1" @@ -1274,16 +1273,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.1.2.tgz#82f8f28d7d408c7c68da3a386a490ee683e1eced" - integrity sha512-AuAGn1uxva5YBbBlXb+2JPxJRuemZsmlGcapPXWNSBNsQtAULfjioREGBWuI0EOvYUKjDnrCy8PW5Zlr1md5mw== +expect@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.0.tgz#b90c6df52be7abfd9f206f273fbcf8b33d8f332d" + integrity sha512-03ClF3GWwUqd9Grgkr9ZSdaCJGMRA69PQ8jT7o+Bx100VlGiAFf9/8oIm9Qve7ZVJhuJxFftqFhviZJRxxNfvg== dependencies: - "@jest/expect-utils" "^29.1.2" - jest-get-type "^29.0.0" - jest-matcher-utils "^29.1.2" - jest-message-util "^29.1.2" - jest-util "^29.1.2" + "@jest/expect-utils" "^29.2.0" + jest-get-type "^29.2.0" + jest-matcher-utils "^29.2.0" + jest-message-util "^29.2.0" + jest-util "^29.2.0" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1637,283 +1636,283 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.0.0.tgz#aa238eae42d9372a413dd9a8dadc91ca1806dce0" - integrity sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ== +jest-changed-files@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" + integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.1.2.tgz#4551068e432f169a53167fe1aef420cf51c8a735" - integrity sha512-ajQOdxY6mT9GtnfJRZBRYS7toNIJayiiyjDyoZcnvPRUPwJ58JX0ci0PKAKUo2C1RyzlHw0jabjLGKksO42JGA== +jest-circus@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.0.tgz#692ddf3b12a5ae6326f2f37b9d176c68777fcf4c" + integrity sha512-bpJRMe+VtvYlF3q8JNx+/cAo4FYvNCiR5s7Z0Scf8aC+KJ2ineSjZKtw1cIZbythlplkiro0My8nc65pfCqJ3A== dependencies: - "@jest/environment" "^29.1.2" - "@jest/expect" "^29.1.2" - "@jest/test-result" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/environment" "^29.2.0" + "@jest/expect" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.1.2" - jest-matcher-utils "^29.1.2" - jest-message-util "^29.1.2" - jest-runtime "^29.1.2" - jest-snapshot "^29.1.2" - jest-util "^29.1.2" + jest-each "^29.2.0" + jest-matcher-utils "^29.2.0" + jest-message-util "^29.2.0" + jest-runtime "^29.2.0" + jest-snapshot "^29.2.0" + jest-util "^29.2.0" p-limit "^3.1.0" - pretty-format "^29.1.2" + pretty-format "^29.2.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.1.2.tgz#423b9c5d3ea20a50b1354b8bf3f2a20e72110e89" - integrity sha512-vsvBfQ7oS2o4MJdAH+4u9z76Vw5Q8WBQF5MchDbkylNknZdrPTX1Ix7YRJyTlOWqRaS7ue/cEAn+E4V1MWyMzw== +jest-cli@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.0.tgz#c6ca40889d6671c38b1cf9119d3b653809f31a3a" + integrity sha512-/581TzbXeO+5kbtSlhXEthGiVJCC8AP0jgT0iZINAAMW+tTFj2uWU7z+HNUH5yIYdHV7AvRr0fWLrmHJGIruHg== dependencies: - "@jest/core" "^29.1.2" - "@jest/test-result" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/core" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/types" "^29.2.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.1.2" - jest-util "^29.1.2" - jest-validate "^29.1.2" + jest-config "^29.2.0" + jest-util "^29.2.0" + jest-validate "^29.2.0" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.1.2.tgz#7d004345ca4c09f5d8f802355f54494e90842f4d" - integrity sha512-EC3Zi86HJUOz+2YWQcJYQXlf0zuBhJoeyxLM6vb6qJsVmpP7KcCP1JnyF0iaqTaXdBP8Rlwsvs7hnKWQWWLwwA== +jest-config@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.0.tgz#8823f35255f696444a882721e624d7ad352e208b" + integrity sha512-IkdCsrHIoxDPZAyFcdtQrCQ3uftLqns6Joj0tlbxiAQW4k/zTXmIygqWBmPNxO9FbFkDrhtYZiLHXjaJh9rS+Q== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.1.2" - "@jest/types" "^29.1.2" - babel-jest "^29.1.2" + "@jest/test-sequencer" "^29.2.0" + "@jest/types" "^29.2.0" + babel-jest "^29.2.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.1.2" - jest-environment-node "^29.1.2" - jest-get-type "^29.0.0" - jest-regex-util "^29.0.0" - jest-resolve "^29.1.2" - jest-runner "^29.1.2" - jest-util "^29.1.2" - jest-validate "^29.1.2" + jest-circus "^29.2.0" + jest-environment-node "^29.2.0" + jest-get-type "^29.2.0" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.0" + jest-runner "^29.2.0" + jest-util "^29.2.0" + jest-validate "^29.2.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.1.2" + pretty-format "^29.2.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.1.2.tgz#bb7aaf5353227d6f4f96c5e7e8713ce576a607dc" - integrity sha512-4GQts0aUopVvecIT4IwD/7xsBaMhKTYoM4/njE/aVw9wpw+pIUVp8Vab/KnSzSilr84GnLBkaP3JLDnQYCKqVQ== +jest-diff@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.0.tgz#b1e11ac1a1401fc4792ef8ba406b48f1ae7d2bc5" + integrity sha512-GsH07qQL+/D/GxlnU+sSg9GL3fBOcuTlmtr3qr2pnkiODCwubNN2/7slW4m3CvxDsEus/VEOfQKRFLyXsUlnZw== dependencies: chalk "^4.0.0" - diff-sequences "^29.0.0" - jest-get-type "^29.0.0" - pretty-format "^29.1.2" + diff-sequences "^29.2.0" + jest-get-type "^29.2.0" + pretty-format "^29.2.0" -jest-docblock@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.0.0.tgz#3151bcc45ed7f5a8af4884dcc049aee699b4ceae" - integrity sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw== +jest-docblock@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82" + integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A== dependencies: detect-newline "^3.0.0" -jest-each@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.1.2.tgz#d4c8532c07a846e79f194f7007ce7cb1987d1cd0" - integrity sha512-AmTQp9b2etNeEwMyr4jc0Ql/LIX/dhbgP21gHAizya2X6rUspHn2gysMXaj6iwWuOJ2sYRgP8c1P4cXswgvS1A== +jest-each@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.0.tgz#0f89c1233d65f22c7dba265ccd319611f1d662de" + integrity sha512-h4LeC3L/R7jIMfTdYowevPIssvcPYQ7Qzs+pCSYsJgPztIizXwKmnfhZXBA4WVqdmvMcpmseYEXb67JT7IJ2eg== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" chalk "^4.0.0" - jest-get-type "^29.0.0" - jest-util "^29.1.2" - pretty-format "^29.1.2" - -jest-environment-node@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.1.2.tgz#005e05cc6ea4b9b5ba55906ab1ce53c82f6907a7" - integrity sha512-C59yVbdpY8682u6k/lh8SUMDJPbOyCHOTgLVVi1USWFxtNV+J8fyIwzkg+RJIVI30EKhKiAGNxYaFr3z6eyNhQ== - dependencies: - "@jest/environment" "^29.1.2" - "@jest/fake-timers" "^29.1.2" - "@jest/types" "^29.1.2" + jest-get-type "^29.2.0" + jest-util "^29.2.0" + pretty-format "^29.2.0" + +jest-environment-node@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.0.tgz#49c39d4f9df64fc74da3725cbcaeee6da01a6dd6" + integrity sha512-b4qQGVStPMvtZG97Ac0rvnmSIjCZturFU7MQRMp4JDFl7zoaDLTtXmFjFP1tNmi9te6kR8d+Htbv3nYeoaIz6g== + dependencies: + "@jest/environment" "^29.2.0" + "@jest/fake-timers" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" - jest-mock "^29.1.2" - jest-util "^29.1.2" + jest-mock "^29.2.0" + jest-util "^29.2.0" -jest-get-type@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" - integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== +jest-get-type@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" + integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== -jest-haste-map@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.1.2.tgz#93f3634aa921b6b654e7c94137b24e02e7ca6ac9" - integrity sha512-xSjbY8/BF11Jh3hGSPfYTa/qBFrm3TPM7WU8pU93m2gqzORVLkHFWvuZmFsTEBPRKndfewXhMOuzJNHyJIZGsw== +jest-haste-map@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.0.tgz#2410f2ec93958e0bd894818de6c8056eb1b4d6fc" + integrity sha512-qu9lGFi7qJ8v37egS1phZZUJYiMyWnKwu83NlNT1qs50TbedIX2hFl+9ztsJ7U/ENaHwk1/Bs8fqOIQsScIRwg== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.0.0" - jest-util "^29.1.2" - jest-worker "^29.1.2" + jest-regex-util "^29.2.0" + jest-util "^29.2.0" + jest-worker "^29.2.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.1.2.tgz#4c846db14c58219430ccbc4f01a1ec52ebee4fc2" - integrity sha512-TG5gAZJpgmZtjb6oWxBLf2N6CfQ73iwCe6cofu/Uqv9iiAm6g502CAnGtxQaTfpHECBdVEMRBhomSXeLnoKjiQ== +jest-leak-detector@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.0.tgz#7c0eace293cf05a130a09beb1b9318ecc2f77692" + integrity sha512-FXT9sCFdct42+oOqGIr/9kmUw3RbhvpkwidCBT5ySHHoWNGd3c9n7HXpFKjEz9UnUITRCGdn0q2s6Sxrq36kwg== dependencies: - jest-get-type "^29.0.0" - pretty-format "^29.1.2" + jest-get-type "^29.2.0" + pretty-format "^29.2.0" -jest-matcher-utils@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.1.2.tgz#e68c4bcc0266e70aa1a5c13fb7b8cd4695e318a1" - integrity sha512-MV5XrD3qYSW2zZSHRRceFzqJ39B2z11Qv0KPyZYxnzDHFeYZGJlgGi0SW+IXSJfOewgJp/Km/7lpcFT+cgZypw== +jest-matcher-utils@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.0.tgz#d1d73add0e0efb0e316a50f296977505dc053e02" + integrity sha512-FcEfKZ4vm28yCdBsvC69EkrEhcfex+IYlRctNJXsRG9+WC3WxgBNORnECIgqUtj7o/h1d8o7xB/dFUiLi4bqtw== dependencies: chalk "^4.0.0" - jest-diff "^29.1.2" - jest-get-type "^29.0.0" - pretty-format "^29.1.2" + jest-diff "^29.2.0" + jest-get-type "^29.2.0" + pretty-format "^29.2.0" -jest-message-util@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.1.2.tgz#c21a33c25f9dc1ebfcd0f921d89438847a09a501" - integrity sha512-9oJ2Os+Qh6IlxLpmvshVbGUiSkZVc2FK+uGOm6tghafnB2RyjKAxMZhtxThRMxfX1J1SOMhTn9oK3/MutRWQJQ== +jest-message-util@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.0.tgz#cbd43fd9a20a8facd4267ac37556bc5c9a525ec0" + integrity sha512-arBfk5yMFMTnMB22GyG601xGSGthA02vWSewPaxoFo0F9wBqDOyxccPbCcYu8uibw3kduSHXdCOd1PsLSgdomg== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.1.2" + pretty-format "^29.2.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.1.2.tgz#de47807edbb9d4abf8423f1d8d308d670105678c" - integrity sha512-PFDAdjjWbjPUtQPkQufvniXIS3N9Tv7tbibePEjIIprzjgo0qQlyUiVMrT4vL8FaSJo1QXifQUOuPH3HQC/aMA== +jest-mock@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.0.tgz#3531012881178f59f4b5fd1e243acc329d08d6a1" + integrity sha512-aiWGR0P8ivssIO17xkehLGFtCcef2ZwQFNPwEer1jQLHxPctDlIg3Hs6QMq1KpPz5dkCcgM7mwGif4a9IPznlg== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@types/node" "*" - jest-util "^29.1.2" + jest-util "^29.2.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@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" - integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== +jest-regex-util@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" + integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.1.2.tgz#a6919e58a0c7465582cb8ec2d745b4e64ae8647f" - integrity sha512-44yYi+yHqNmH3OoWZvPgmeeiwKxhKV/0CfrzaKLSkZG9gT973PX8i+m8j6pDrTYhhHoiKfF3YUFg/6AeuHw4HQ== +jest-resolve-dependencies@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.0.tgz#a127b7d6b7df69d4eaf2c7c99f652f17ba0fed71" + integrity sha512-Cd0Z39sDntEnfR9PoUdFHUAGDvtKI0/7Wt73l3lt03A3yQ+A6Qi3XmBuqGjdFl2QbXaPa937oLhilG612P8HGQ== dependencies: - jest-regex-util "^29.0.0" - jest-snapshot "^29.1.2" + jest-regex-util "^29.2.0" + jest-snapshot "^29.2.0" -jest-resolve@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.1.2.tgz#9dd8c2fc83e59ee7d676b14bd45a5f89e877741d" - integrity sha512-7fcOr+k7UYSVRJYhSmJHIid3AnDBcLQX3VmT9OSbPWsWz1MfT7bcoerMhADKGvKCoMpOHUQaDHtQoNp/P9JMGg== +jest-resolve@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.0.tgz#cb9f9770164382785cd68598a9fb0b7e4bb95a9f" + integrity sha512-f5c0ljNg2guDBCC7wi92vAhNuA0BtAG5vkY7Fob0c7sUMU1g87mTXqRmjrVFe2XvdwP5m5T/e5KJsCKu9hRvBA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.1.2" + jest-haste-map "^29.2.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.1.2" - jest-validate "^29.1.2" + jest-util "^29.2.0" + jest-validate "^29.2.0" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.1.2.tgz#f18b2b86101341e047de8c2f51a5fdc4e97d053a" - integrity sha512-yy3LEWw8KuBCmg7sCGDIqKwJlULBuNIQa2eFSVgVASWdXbMYZ9H/X0tnXt70XFoGf92W2sOQDOIFAA6f2BG04Q== +jest-runner@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.0.tgz#d621e67a2d59d5bc302eca1f5348615ce166712c" + integrity sha512-VPBrCwl9fM2mc5yk6yZhNrgXzRJMD5jfLmntkMLlrVq4hQPWbRK998iJlR+DOGCO04TC9PPYLntOJ001Vnf28g== dependencies: - "@jest/console" "^29.1.2" - "@jest/environment" "^29.1.2" - "@jest/test-result" "^29.1.2" - "@jest/transform" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/console" "^29.2.0" + "@jest/environment" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/transform" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" - jest-docblock "^29.0.0" - jest-environment-node "^29.1.2" - jest-haste-map "^29.1.2" - jest-leak-detector "^29.1.2" - jest-message-util "^29.1.2" - jest-resolve "^29.1.2" - jest-runtime "^29.1.2" - jest-util "^29.1.2" - jest-watcher "^29.1.2" - jest-worker "^29.1.2" + jest-docblock "^29.2.0" + jest-environment-node "^29.2.0" + jest-haste-map "^29.2.0" + jest-leak-detector "^29.2.0" + jest-message-util "^29.2.0" + jest-resolve "^29.2.0" + jest-runtime "^29.2.0" + jest-util "^29.2.0" + jest-watcher "^29.2.0" + jest-worker "^29.2.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.1.2.tgz#dbcd57103d61115479108d5864bdcd661d9c6783" - integrity sha512-jr8VJLIf+cYc+8hbrpt412n5jX3tiXmpPSYTGnwcvNemY+EOuLNiYnHJ3Kp25rkaAcTWOEI4ZdOIQcwYcXIAZw== - dependencies: - "@jest/environment" "^29.1.2" - "@jest/fake-timers" "^29.1.2" - "@jest/globals" "^29.1.2" - "@jest/source-map" "^29.0.0" - "@jest/test-result" "^29.1.2" - "@jest/transform" "^29.1.2" - "@jest/types" "^29.1.2" +jest-runtime@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.0.tgz#6b10d9539c1f7af32d06fccd7d16b6c9996c9cb2" + integrity sha512-+GDmzCrswQF+mvI0upTYMe/OPYnlRRNLLDHM9AFLp2y7zxWoDoYgb8DL3WwJ8d9m743AzrnvBV9JQHi/0ed7dg== + dependencies: + "@jest/environment" "^29.2.0" + "@jest/fake-timers" "^29.2.0" + "@jest/globals" "^29.2.0" + "@jest/source-map" "^29.2.0" + "@jest/test-result" "^29.2.0" + "@jest/transform" "^29.2.0" + "@jest/types" "^29.2.0" "@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.1.2" - jest-message-util "^29.1.2" - jest-mock "^29.1.2" - jest-regex-util "^29.0.0" - jest-resolve "^29.1.2" - jest-snapshot "^29.1.2" - jest-util "^29.1.2" + jest-haste-map "^29.2.0" + jest-message-util "^29.2.0" + jest-mock "^29.2.0" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.0" + jest-snapshot "^29.2.0" + jest-util "^29.2.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.1.2.tgz#7dd277e88c45f2d2ff5888de1612e63c7ceb575b" - integrity sha512-rYFomGpVMdBlfwTYxkUp3sjD6usptvZcONFYNqVlaz4EpHPnDvlWjvmOQ9OCSNKqYZqLM2aS3wq01tWujLg7gg== +jest-snapshot@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.0.tgz#fb3d4e1d9df579f37d7c60072877ee99376b6090" + integrity sha512-YCKrOR0PLRXROmww73fHO9oeY4tL+LPQXWR3yml1+hKbQDR8j1VUrVzB65hKSJJgxBOr1vWx+hmz2by8JjAU5w== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1921,82 +1920,82 @@ jest-snapshot@^29.1.2: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.1.2" - "@jest/transform" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/expect-utils" "^29.2.0" + "@jest/transform" "^29.2.0" + "@jest/types" "^29.2.0" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.1.2" + expect "^29.2.0" graceful-fs "^4.2.9" - jest-diff "^29.1.2" - jest-get-type "^29.0.0" - jest-haste-map "^29.1.2" - jest-matcher-utils "^29.1.2" - jest-message-util "^29.1.2" - jest-util "^29.1.2" + jest-diff "^29.2.0" + jest-get-type "^29.2.0" + jest-haste-map "^29.2.0" + jest-matcher-utils "^29.2.0" + jest-message-util "^29.2.0" + jest-util "^29.2.0" natural-compare "^1.4.0" - pretty-format "^29.1.2" + pretty-format "^29.2.0" semver "^7.3.5" -jest-util@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.1.2.tgz#ac5798e93cb6a6703084e194cfa0898d66126df1" - integrity sha512-vPCk9F353i0Ymx3WQq3+a4lZ07NXu9Ca8wya6o4Fe4/aO1e1awMMprZ3woPFpKwghEOW+UXgd15vVotuNN9ONQ== +jest-util@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.0.tgz#797935697e83a5722aeba401ed6cd01264295566" + integrity sha512-8M1dx12ujkBbnhwytrezWY0Ut79hbflwodE+qZKjxSRz5qt4xDp6dQQJaOCFvCmE0QJqp9KyEK33lpPNjnhevw== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.1.2.tgz#83a728b8f6354da2e52346878c8bc7383516ca51" - integrity sha512-k71pOslNlV8fVyI+mEySy2pq9KdXdgZtm7NHrBX8LghJayc3wWZH0Yr0mtYNGaCU4F1OLPXRkwZR0dBm/ClshA== +jest-validate@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.0.tgz#e40faf33759365c12ead6a45165349d660d09ba4" + integrity sha512-4Vl51bPNeFeDok9aJiOnrC6tqJbOp4iMCYlewoC2ZzYJZ5+6pfr3KObAdx5wP8auHcg2MRaguiqj5OdScZa72g== dependencies: - "@jest/types" "^29.1.2" + "@jest/types" "^29.2.0" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.0.0" + jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.1.2" + pretty-format "^29.2.0" -jest-watcher@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.1.2.tgz#de21439b7d889e2fcf62cc2a4779ef1a3f1f3c62" - integrity sha512-6JUIUKVdAvcxC6bM8/dMgqY2N4lbT+jZVsxh0hCJRbwkIEnbr/aPjMQ28fNDI5lB51Klh00MWZZeVf27KBUj5w== +jest-watcher@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.0.tgz#d0c58ff76d3dd22fff79f3f9cbeadaa749d2ca6e" + integrity sha512-bRh0JdUeN+cl9XfK7tMnXLm4Mv70hG2SZlqbkFe5CTs7oeCkbwlGBk/mEfEJ63mrxZ8LPbnfaMpfSmkhEQBEGA== dependencies: - "@jest/test-result" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/test-result" "^29.2.0" + "@jest/types" "^29.2.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^29.1.2" + jest-util "^29.2.0" string-length "^4.0.1" -jest-worker@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.1.2.tgz#a68302af61bce82b42a9a57285ca7499d29b2afc" - integrity sha512-AdTZJxKjTSPHbXT/AIOjQVmoFx0LHFcVabWu0sxI7PAy7rFf8c0upyvgBKgguVXdM4vY74JdwkyD4hSmpTW8jA== +jest-worker@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.0.tgz#b2bd1a81fc7a1ae79a500b05f5feb0d1c0b1a19e" + integrity sha512-mluOlMbRX1H59vGVzPcVg2ALfCausbBpxC8a2KWOzInhYHZibbHH8CB0C1JkmkpfurrkOYgF7FPmypuom1OM9A== dependencies: "@types/node" "*" - jest-util "^29.1.2" + jest-util "^29.2.0" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.0.0: - version "29.1.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.1.2.tgz#f821a1695ffd6cd0efc3b59d2dfcc70a98582499" - integrity sha512-5wEIPpCezgORnqf+rCaYD1SK+mNN7NsstWzIsuvsnrhR/hSxXWd82oI7DkrbJ+XTD28/eG8SmxdGvukrGGK6Tw== + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.0.tgz#e7997bc603f31e04edbbe87dd24cf6e7c432abac" + integrity sha512-6krPemKUXCEu5Fh3j6ZVoLMjpTQVm0OCU+7f3K/9gllX8wNIE6NSCQ6s0q2RDoiKLRaQlVRHyscjSPRPqCI0Fg== dependencies: - "@jest/core" "^29.1.2" - "@jest/types" "^29.1.2" + "@jest/core" "^29.2.0" + "@jest/types" "^29.2.0" import-local "^3.0.2" - jest-cli "^29.1.2" + jest-cli "^29.2.0" js-sdsl@^4.1.4: version "4.1.4" @@ -2322,10 +2321,10 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^29.1.2: - version "29.1.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.1.2.tgz#b1f6b75be7d699be1a051f5da36e8ae9e76a8e6a" - integrity sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg== +pretty-format@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.0.tgz#1d4ea56fb46079b44efd9ed59c14f70f2950a61b" + integrity sha512-QCSUFdwOi924g24czhOH5eTkXxUCqlLGZBRCySlwDYHIXRJkdGyjJc9nZaqhlFBZws8dq5Dvk0lCilsmlfsPxw== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" @@ -2549,7 +2548,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -2563,27 +2562,11 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" From 6bfc794bc0b777cc50424c6259241f1a557480ed Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 18 Oct 2022 12:47:21 -0400 Subject: [PATCH 124/262] Document ignoring code comment --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 76454ed5..bcadfb70 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,10 @@ Or, they can be passed to `prettier` as arguments: bundle exec rbprettier --tab-width 4 --write '**/*' ``` +### Ignoring code + +Sometimes you want to leave your formatting in place and have `prettier` not format it, but continue to format the rest of the file. `prettier` has the ability to do this with `prettier-ignore` comments, but because the underlying formatter for this plugin is [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree), you instead would use a `stree-ignore` comment. + ### Usage with RuboCop RuboCop and Prettier for Ruby serve different purposes, but there is overlap From 0f1892f3544e03f3f84d2b1cec83a0d26cde01ea Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 18 Oct 2022 12:53:39 -0400 Subject: [PATCH 125/262] Add back rubySingleQuote option --- README.md | 16 ++++++++-------- src/parseSync.js | 2 +- src/plugin.js | 8 ++++++++ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index bcadfb70..4d3d8b51 100644 --- a/README.md +++ b/README.md @@ -134,14 +134,14 @@ The `prettier` executable is now installed and ready for use: Below are the options (from [`src/plugin.js`](src/plugin.js)) that `@prettier/plugin-ruby` currently supports: -| API Option | CLI Option | Default | Description | -| --------------- | ------------------ | :-----: | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | -| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | -| `rubyPlugins` | `--ruby-plugins` | `""` | The comma-separated list of plugins to require. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | -| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | -| `singleQuote` | `--single-quote` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#quotes)). | -| `trailingComma` | `--trailing-comma` | `es5` | Almost same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#trailing-commas)). Will be on for any value except `none`. | +| API Option | CLI Option | Default | Description | +| ----------------- | --------------------- | :-----: | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | +| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | +| `rubyPlugins` | `--ruby-plugins` | `""` | The comma-separated list of plugins to require. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | +| `rubySingleQuote` | `--ruby-single-quote` | `false` | Whether or not to default to single quotes for Ruby code. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | +| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | +| `trailingComma` | `--trailing-comma` | `es5` | Almost same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#trailing-commas)). Will be on for any value except `none`. | Any of these can be added to your existing [prettier configuration file](https://prettier.io/docs/en/configuration.html). For example: diff --git a/src/parseSync.js b/src/parseSync.js index 7d3dc59b..43b8cc4d 100644 --- a/src/parseSync.js +++ b/src/parseSync.js @@ -68,7 +68,7 @@ function getPlugins(opts) { rubyPlugins.split(",").forEach((plugin) => plugins.add(plugin.trim())); } - if (opts.singleQuote) { + if (opts.rubySingleQuote) { plugins.add("plugin/single_quotes"); } diff --git a/src/plugin.js b/src/plugin.js index 45c3f95c..da98f900 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -159,6 +159,14 @@ const plugin = { default: "", description: "The comma-separated list of plugins to require", since: "3.1.0" + }, + rubySingleQuote: { + type: "boolean", + category: "Ruby", + default: false, + description: + "When double quotes are not necessary for interpolation, prefers the use of single quotes for string literals.", + since: "1.0.0" } }, defaultOptions: { From cdde61cccb666ecae7e6f2124f11e197132a87a3 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 18 Oct 2022 13:15:49 -0400 Subject: [PATCH 126/262] Lower Ruby version requirement, increase syntax_tree requirement --- prettier.gemspec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/prettier.gemspec b/prettier.gemspec index e5ad4985..abe4f9e4 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -20,14 +20,14 @@ Gem::Specification.new do |spec| ] end - spec.required_ruby_version = ">= 2.7.3" + spec.required_ruby_version = ">= 2.7.0" spec.bindir = "exe" spec.executables = "rbprettier" spec.require_paths = %w[lib] - spec.add_dependency "syntax_tree", ">= 2.7.1" - spec.add_dependency "syntax_tree-haml", ">= 1.1.0" + spec.add_dependency "syntax_tree", ">= 4.0.1" + spec.add_dependency "syntax_tree-haml", ">= 2.0.0" spec.add_dependency "syntax_tree-rbs", ">= 0.2.0" spec.add_development_dependency "bundler" From d2d1ac4ae52f4e10d0fb59570a94e95a4ec33813 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 18 Oct 2022 13:08:59 -0400 Subject: [PATCH 127/262] Migrate to ES modules --- CONTRIBUTING.md | 8 +++--- bin/doc | 14 ---------- bin/doc.js | 12 +++++++++ bin/pragma | 6 ----- bin/{print => print.js} | 14 +++++----- package.json | 6 +++-- src/getInfo.js | 2 +- src/netcat.js | 2 +- src/parseSync.js | 36 +++++++++++-------------- src/plugin.js | 4 +-- test/js/files.test.js | 16 +++++------ test/js/globalSetup.js | 15 +++++------ test/js/globalTeardown.js | 2 +- test/js/haml/comment.test.js | 2 +- test/js/haml/doctype.test.js | 2 +- test/js/haml/filter.test.js | 2 +- test/js/haml/hamlComment.test.js | 2 +- test/js/haml/plain.test.js | 2 +- test/js/haml/script.test.js | 2 +- test/js/haml/silentScript.test.js | 2 +- test/js/haml/tag.test.js | 2 +- test/js/rbs/rbs.test.js | 12 ++++----- test/js/ruby/comments.test.js | 2 +- test/js/ruby/errors.test.js | 7 ++--- test/js/ruby/ignore.test.js | 2 +- test/js/ruby/layout.test.js | 2 +- test/js/ruby/nodes/alias.test.js | 2 +- test/js/ruby/nodes/aref.test.js | 2 +- test/js/ruby/nodes/arrays.test.js | 2 +- test/js/ruby/nodes/assign.test.js | 2 +- test/js/ruby/nodes/binary.test.js | 2 +- test/js/ruby/nodes/blocks.test.js | 2 +- test/js/ruby/nodes/break.test.js | 2 +- test/js/ruby/nodes/calls.test.js | 2 +- test/js/ruby/nodes/case.test.js | 2 +- test/js/ruby/nodes/class.test.js | 2 +- test/js/ruby/nodes/conditionals.test.js | 2 +- test/js/ruby/nodes/defined.test.js | 2 +- test/js/ruby/nodes/embdoc.test.js | 2 +- test/js/ruby/nodes/hashes.test.js | 2 +- test/js/ruby/nodes/heredocs.test.js | 2 +- test/js/ruby/nodes/hooks.test.js | 2 +- test/js/ruby/nodes/lambda.test.js | 2 +- test/js/ruby/nodes/loops.test.js | 2 +- test/js/ruby/nodes/method.test.js | 2 +- test/js/ruby/nodes/next.test.js | 2 +- test/js/ruby/nodes/patterns.test.js | 2 +- test/js/ruby/nodes/ranges.test.js | 2 +- test/js/ruby/nodes/regexp.test.js | 2 +- test/js/ruby/nodes/rescue.test.js | 2 +- test/js/ruby/nodes/return.test.js | 2 +- test/js/ruby/nodes/strings.test.js | 2 +- test/js/ruby/nodes/super.test.js | 2 +- test/js/ruby/nodes/undef.test.js | 2 +- test/js/setupTests.js | 7 +++-- test/js/utils.js | 21 +++++---------- 56 files changed, 116 insertions(+), 146 deletions(-) delete mode 100755 bin/doc create mode 100755 bin/doc.js delete mode 100755 bin/pragma rename bin/{print => print.js} (57%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8994fa43..64f0fade 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -78,7 +78,8 @@ Effectively, it walks the AST in the reverse direction from the way `Ripper` bui As the nodes are printing themselves and their children, they're additionally building up a second AST. That AST is built using the `builder` commands from prettier core, described [here](https://github.com/prettier/prettier/blob/main/commands.md). As an example, below is how a `binary` node (like the one representing the `1 + 1` above) would handle printing itself: ```javascript -const { group, indent, line } = require("prettier").doc.builders; +import prettier from "prettier"; +const { group, indent, line } = prettier.doc.builders; const printBinary = (path, opts, print) => group([ @@ -163,10 +164,7 @@ Links relating to `prettier` and its plugins. While developing, we've built a couple of small utilities for debugging the `prettier` printing process. To use them, first run `yarn` and `bundle` to install dependencies. -- `bin/lex [file|source]` - outputs the tokens as ripper sees them -- `bin/sexp [file|source]` - outputs the AST that ripper builds before it gets passed back to `prettier` -- `bin/pragma [file]` - runs the `hasPragma` function against the given input file -- `bin/print [file|source]` - outputs the printed source of a Ruby file after running it through `prettier` +- `bin/print.js [file|source]` - outputs the printed source of a Ruby file after running it through `prettier` ## Testing diff --git a/bin/doc b/bin/doc deleted file mode 100755 index 7022b8c6..00000000 --- a/bin/doc +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env node - -const fs = require("fs"); -const prettier = require("prettier"); -const plugin = require("../src/plugin"); - -const debug = prettier.__debug; - -const code = fs.existsSync(process.argv[2]) - ? fs.readFileSync(process.argv[2], "utf-8") - : process.argv.slice(2).join(" ").replace(/\\n/g, "\n"); - -const doc = debug.printToDoc(code, { parser: "ruby", plugins: [plugin] }); -console.log(debug.formatDoc(doc)); diff --git a/bin/doc.js b/bin/doc.js new file mode 100755 index 00000000..857147f5 --- /dev/null +++ b/bin/doc.js @@ -0,0 +1,12 @@ +#!/usr/bin/env node + +import { existsSync, readFileSync } from "fs"; +import { __debug } from "prettier"; +import plugin from "../src/plugin.js"; + +const code = existsSync(process.argv[2]) + ? readFileSync(process.argv[2], "utf-8") + : process.argv.slice(2).join(" ").replace(/\\n/g, "\n"); + +const doc = __debug.printToDoc(code, { parser: "ruby", plugins: [plugin] }); +console.log(__debug.formatDoc(doc)); diff --git a/bin/pragma b/bin/pragma deleted file mode 100755 index c47b52a4..00000000 --- a/bin/pragma +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env node - -const fs = require("fs"); -const parser = require("../src/ruby/parser"); - -console.log(parser.hasPragma(fs.readFileSync(process.argv[2], "utf-8"))); diff --git a/bin/print b/bin/print.js similarity index 57% rename from bin/print rename to bin/print.js index 08391d50..d05fe059 100755 --- a/bin/print +++ b/bin/print.js @@ -1,9 +1,9 @@ #!/usr/bin/env node -const fs = require("fs"); -const prettier = require("prettier"); +import { existsSync, readFileSync } from "fs"; +import { formatWithCursor } from "prettier"; -const plugin = require("../src/plugin"); +import plugin from "../src/plugin.js"; let parser = "ruby"; let contentIdx = 2; @@ -15,16 +15,16 @@ if (["rbs", "haml"].includes(process.argv[contentIdx])) { let content; -if (fs.existsSync(process.argv[contentIdx])) { - content = fs.readFileSync(process.argv[contentIdx], "utf-8"); +if (existsSync(process.argv[contentIdx])) { + content = readFileSync(process.argv[contentIdx], "utf-8"); } else if (process.argv.length === contentIdx) { const extension = parser === "ruby" ? "rb" : parser; - content = fs.readFileSync(`test.${extension}`, "utf-8"); + content = readFileSync(`test.${extension}`, "utf-8"); } else { content = process.argv.slice(contentIdx).join(" ").replace(/\\n/g, "\n"); } -const { formatted } = prettier.formatWithCursor(content, { +const { formatted } = formatWithCursor(content, { parser, plugins: [plugin], cursorOffset: 1 diff --git a/package.json b/package.json index b98dd011..fa38038b 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,12 @@ "name": "@prettier/plugin-ruby", "version": "3.2.2", "description": "prettier plugin for the Ruby programming language", + "type": "module", "main": "src/plugin.js", "scripts": { "checkFormat": "prettier --check '**/*'", "lint": "eslint --cache .", - "test": "jest" + "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js" }, "repository": { "type": "git", @@ -48,7 +49,8 @@ "setupFilesAfterEnv": [ "./test/js/setupTests.js" ], - "testRegex": ".test.js$" + "testRegex": ".test.js$", + "transform": {} }, "husky": { "hooks": { diff --git a/src/getInfo.js b/src/getInfo.js index f4c854af..9aaf353e 100644 --- a/src/getInfo.js +++ b/src/getInfo.js @@ -1,4 +1,4 @@ -const { existsSync, readFileSync } = require("fs"); +import { existsSync, readFileSync } from "fs"; // This is how long to wait for the parser to spin up. For the most part, 5 // seconds is plenty of time. But in some environments, it may be necessary to diff --git a/src/netcat.js b/src/netcat.js index c36e465a..df100d5a 100644 --- a/src/netcat.js +++ b/src/netcat.js @@ -2,7 +2,7 @@ // On average, this is 2-3x slower than netcat, but still much faster than // spawning a new Ruby process. -const { createConnection } = require("net"); +import { createConnection } from "net"; const sock = process.argv[process.argv.length - 1]; const client = createConnection(sock, () => process.stdin.pipe(client)); diff --git a/src/parseSync.js b/src/parseSync.js index 43b8cc4d..623d5c5a 100644 --- a/src/parseSync.js +++ b/src/parseSync.js @@ -1,15 +1,16 @@ -const { spawn, spawnSync } = require("child_process"); -const { +import { spawn, spawnSync } from "child_process"; +import { existsSync, unlinkSync, mkdtempSync, copyFileSync, mkdirSync, rmdirSync -} = require("fs"); -const os = require("os"); -const path = require("path"); -const process = require("process"); +} from "fs"; +import { tmpdir } from "os"; +import path from "path"; +import process from "process"; +import url from "url"; let parserArgs; @@ -22,7 +23,7 @@ if (process.env.PRETTIER_RUBY_HOST) { // parse using UTF-8. Unfortunately, the way that you accomplish this looks // differently depending on your platform. /* istanbul ignore next */ -function getLang() { +export function getLang() { const { env, platform } = process; const envValue = env.LC_ALL || env.LC_CTYPE || env.LANG; @@ -55,8 +56,8 @@ function getLang() { // Generate the filepath that should be used to communicate the connection // information between this process and the parser server. -function getInfoFilepath() { - return path.join(os.tmpdir(), `prettier-ruby-parser-${process.pid}.info`); +export function getInfoFilepath() { + return path.join(tmpdir(), `prettier-ruby-parser-${process.pid}.info`); } // Return the list of plugins that should be passed to the server process. @@ -84,11 +85,11 @@ function getPlugins(opts) { // will read that information in order to enable us to connect to it in the // spawnSync function. function spawnServer(opts) { - const tempDir = mkdtempSync(path.join(os.tmpdir(), "prettier-plugin-ruby-")); + const tempDir = mkdtempSync(path.join(tmpdir(), "prettier-plugin-ruby-")); const filepath = getInfoFilepath(); - let serverRbPath = path.join(__dirname, "./server.rb"); - let getInfoJsPath = path.join(__dirname, "./getInfo.js"); + let serverRbPath = url.fileURLToPath(new URL("./server.rb", import.meta.url)); + let getInfoJsPath = url.fileURLToPath(new URL("./getInfo.js", import.meta.url)); let cleanupTempFiles; if (runningInPnPZip()) { @@ -106,7 +107,7 @@ function spawnServer(opts) { mkdirSync(destDir); } copyFileSync( - path.join(__dirname, "..", "src", rubyFile), + url.fileURLToPath(new URL(`../src/${rubyFile}`, import.meta.url)), path.join(tempDir, rubyFile) ); }); @@ -188,6 +189,7 @@ function spawnServer(opts) { // used by the parser server and the various scripts used to communicate // therein are not going to work with its virtual file system. function runningInPnPZip() { + const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); return process.versions.pnp && __dirname.includes(".zip"); } @@ -195,7 +197,7 @@ function runningInPnPZip() { // like it) here since Prettier requires the results of `parse` to be // synchronous and Node.js does not offer a mechanism for synchronous socket // requests. -function parseSync(parser, source, opts) { +export function parseSync(parser, source, opts) { if (!parserArgs) { parserArgs = spawnServer(opts); } @@ -229,9 +231,3 @@ function parseSync(parser, source, opts) { return parsed; } - -module.exports = { - getLang, - getInfoFilepath, - parseSync -}; diff --git a/src/plugin.js b/src/plugin.js index da98f900..a73392f3 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -1,4 +1,4 @@ -const { parseSync } = require("./parseSync"); +import { parseSync } from "./parseSync.js"; /* * metadata mostly pulled from linguist and rubocop: @@ -177,4 +177,4 @@ const plugin = { } }; -module.exports = plugin; +export default plugin; diff --git a/test/js/files.test.js b/test/js/files.test.js index 90bc1121..35e0f96a 100644 --- a/test/js/files.test.js +++ b/test/js/files.test.js @@ -1,15 +1,13 @@ -const path = require("path"); -const prettier = require("prettier"); +import prettier from "prettier"; +import url from "url"; +import plugin from "../../src/plugin.js"; -const plugin = require("../../src/plugin"); - -function getInferredParser(filename) { - const filepath = path.join(__dirname, filename); +async function getInferredParser(filename) { + const filepath = url.fileURLToPath(new URL(filename, import.meta.url)); const fileInfoOptions = { plugins: [plugin] }; - return prettier - .getFileInfo(filepath, fileInfoOptions) - .then(({ inferredParser }) => inferredParser); + const { inferredParser } = await prettier.getFileInfo(filepath, fileInfoOptions); + return inferredParser; } describe("files", () => { diff --git a/test/js/globalSetup.js b/test/js/globalSetup.js index 6e316c5b..2a80c480 100644 --- a/test/js/globalSetup.js +++ b/test/js/globalSetup.js @@ -1,8 +1,7 @@ -const { spawn, spawnSync } = require("child_process"); -const { unlinkSync } = require("fs"); -const path = require("path"); - -const { getLang, getInfoFilepath } = require("../../src/parseSync"); +import { spawn, spawnSync } from "child_process"; +import { unlinkSync } from "fs"; +import url from "url"; +import { getLang, getInfoFilepath } from "../../src/parseSync.js"; // This is somewhat similar to the spawnServer function in parseSync but // slightly different in that it logs its information into environment variables @@ -17,7 +16,7 @@ function globalSetup() { const filepath = getInfoFilepath(); const server = spawn( "ruby", - [path.join(__dirname, "../../src/server.rb"), "--plugins=", filepath], + [url.fileURLToPath(new URL("../../src/server.rb", import.meta.url)), "--plugins=", filepath], { env: Object.assign({}, process.env, { LANG: getLang() }), detached: true, @@ -27,7 +26,7 @@ function globalSetup() { // Get the connection information from the parsing server. const information = spawnSync("node", [ - path.join(__dirname, "../../src/getInfo.js"), + url.fileURLToPath(new URL("../../src/getInfo.js", import.meta.url)), filepath ]); @@ -42,4 +41,4 @@ function globalSetup() { server.unref(); } -module.exports = globalSetup; +export default globalSetup; diff --git a/test/js/globalTeardown.js b/test/js/globalTeardown.js index 35320778..b4b20e9a 100644 --- a/test/js/globalTeardown.js +++ b/test/js/globalTeardown.js @@ -13,4 +13,4 @@ function globalTeardown() { } } -module.exports = globalTeardown; +export default globalTeardown; diff --git a/test/js/haml/comment.test.js b/test/js/haml/comment.test.js index 4342cdeb..0b29db72 100644 --- a/test/js/haml/comment.test.js +++ b/test/js/haml/comment.test.js @@ -1,4 +1,4 @@ -const { haml } = require("../utils"); +import { haml } from "../utils"; describe("comment", () => { test("single line", () => { diff --git a/test/js/haml/doctype.test.js b/test/js/haml/doctype.test.js index a6ebfcf0..bd1ffe58 100644 --- a/test/js/haml/doctype.test.js +++ b/test/js/haml/doctype.test.js @@ -1,4 +1,4 @@ -const { haml } = require("../utils"); +import { haml } from "../utils"; describe("doctype", () => { test("basic", () => { diff --git a/test/js/haml/filter.test.js b/test/js/haml/filter.test.js index ba01a0e5..711ba4c2 100644 --- a/test/js/haml/filter.test.js +++ b/test/js/haml/filter.test.js @@ -1,4 +1,4 @@ -const { haml } = require("../utils"); +import { haml } from "../utils"; describe("filter", () => { test("self", () => { diff --git a/test/js/haml/hamlComment.test.js b/test/js/haml/hamlComment.test.js index edffe41b..de38dfae 100644 --- a/test/js/haml/hamlComment.test.js +++ b/test/js/haml/hamlComment.test.js @@ -1,4 +1,4 @@ -const { haml } = require("../utils"); +import { haml } from "../utils"; describe("haml comment", () => { test("empty", () => { diff --git a/test/js/haml/plain.test.js b/test/js/haml/plain.test.js index 0058b262..4f824053 100644 --- a/test/js/haml/plain.test.js +++ b/test/js/haml/plain.test.js @@ -1,4 +1,4 @@ -const { haml } = require("../utils"); +import { haml } from "../utils"; describe("plain", () => { const specialChars = ["%", ".", "#", "/", "!", "=", "&", "~", "-", "\\", ":"]; diff --git a/test/js/haml/script.test.js b/test/js/haml/script.test.js index 510c30c0..440d6a1e 100644 --- a/test/js/haml/script.test.js +++ b/test/js/haml/script.test.js @@ -1,4 +1,4 @@ -const { haml } = require("../utils"); +import { haml } from "../utils"; describe("script", () => { test("single line", () => { diff --git a/test/js/haml/silentScript.test.js b/test/js/haml/silentScript.test.js index af626f38..d263bd14 100644 --- a/test/js/haml/silentScript.test.js +++ b/test/js/haml/silentScript.test.js @@ -1,4 +1,4 @@ -const { haml } = require("../utils"); +import { haml } from "../utils"; describe("silent script", () => { test("single line", () => { diff --git a/test/js/haml/tag.test.js b/test/js/haml/tag.test.js index 978837d8..59749792 100644 --- a/test/js/haml/tag.test.js +++ b/test/js/haml/tag.test.js @@ -1,4 +1,4 @@ -const { long, haml } = require("../utils"); +import { long, haml } from "../utils"; describe("tag", () => { test("class", () => { diff --git a/test/js/rbs/rbs.test.js b/test/js/rbs/rbs.test.js index 8ac2f838..7cd9852b 100644 --- a/test/js/rbs/rbs.test.js +++ b/test/js/rbs/rbs.test.js @@ -1,11 +1,9 @@ -const fs = require("fs"); -const os = require("os"); -const path = require("path"); - -const { atLeastVersion, rbs } = require("../utils"); +import { readFileSync } from "fs"; +import { platform } from "os"; +import { atLeastVersion, rbs } from "../utils"; function testCases(name, transform) { - const buffer = fs.readFileSync(path.resolve(__dirname, `${name}.txt`)); + const buffer = readFileSync(new URL(`${name}.txt`, import.meta.url)); const sources = buffer.toString().slice(0, -1).split(/\r?\n/); sources.forEach((source) => { @@ -301,7 +299,7 @@ describe("rbs", () => { // For some reason these tests are failing on windows on Ruby < 3.0. I'm not // sure why, but I'm leaving it here for now. - if (os.platform() !== "win32" || atLeastVersion("3.0")) { + if (platform() !== "win32" || atLeastVersion("3.0")) { describe("non-ASCII", () => { test("emoji", () => { expect(rbs(`T: { "🌼" => Integer }`)).toMatchFormat(); diff --git a/test/js/ruby/comments.test.js b/test/js/ruby/comments.test.js index d361880a..789747a6 100644 --- a/test/js/ruby/comments.test.js +++ b/test/js/ruby/comments.test.js @@ -1,4 +1,4 @@ -const { ruby } = require("../utils"); +import { ruby } from "../utils.js"; describe("comments", () => { describe("on their own line", () => { diff --git a/test/js/ruby/errors.test.js b/test/js/ruby/errors.test.js index 4f90e2cd..124fd8cf 100644 --- a/test/js/ruby/errors.test.js +++ b/test/js/ruby/errors.test.js @@ -1,4 +1,4 @@ -const prettier = require("prettier"); +import prettier from "prettier"; describe("errors", () => { const cases = [ @@ -14,9 +14,6 @@ describe("errors", () => { ]; test.each(cases)("fails for %s", (content) => { - const format = () => - prettier.format(content, { parser: "ruby", plugins: ["."] }); - - expect(format).toThrow(); + expect(() => prettier.format(content, { parser: "ruby", plugins: ["."] })).toThrow(); }); }); diff --git a/test/js/ruby/ignore.test.js b/test/js/ruby/ignore.test.js index e1855482..43578683 100644 --- a/test/js/ruby/ignore.test.js +++ b/test/js/ruby/ignore.test.js @@ -1,4 +1,4 @@ -const { ruby } = require("../utils"); +import { ruby } from "../utils.js"; describe("ignore", () => { test("you can ignore code blocks", () => { diff --git a/test/js/ruby/layout.test.js b/test/js/ruby/layout.test.js index b94fa48d..8c1716a3 100644 --- a/test/js/ruby/layout.test.js +++ b/test/js/ruby/layout.test.js @@ -1,4 +1,4 @@ -const { ruby } = require("../utils"); +import { ruby } from "../utils.js"; describe("layout", () => { test("turns multiple blank lines into just one blank line", () => { diff --git a/test/js/ruby/nodes/alias.test.js b/test/js/ruby/nodes/alias.test.js index f29c6c01..226cdfb2 100644 --- a/test/js/ruby/nodes/alias.test.js +++ b/test/js/ruby/nodes/alias.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("alias", () => { test("bare word aliases", () => { diff --git a/test/js/ruby/nodes/aref.test.js b/test/js/ruby/nodes/aref.test.js index d18d7230..738d2e68 100644 --- a/test/js/ruby/nodes/aref.test.js +++ b/test/js/ruby/nodes/aref.test.js @@ -1,4 +1,4 @@ -const { ruby } = require("../../utils"); +import { ruby } from "../../utils.js"; describe("aref", () => { test("literal reference", () => { diff --git a/test/js/ruby/nodes/arrays.test.js b/test/js/ruby/nodes/arrays.test.js index 72c55465..8e632912 100644 --- a/test/js/ruby/nodes/arrays.test.js +++ b/test/js/ruby/nodes/arrays.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("array", () => { test("empty arrays", () => { diff --git a/test/js/ruby/nodes/assign.test.js b/test/js/ruby/nodes/assign.test.js index 44eca0a0..032cf7a3 100644 --- a/test/js/ruby/nodes/assign.test.js +++ b/test/js/ruby/nodes/assign.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("assign", () => { describe("single assignment", () => { diff --git a/test/js/ruby/nodes/binary.test.js b/test/js/ruby/nodes/binary.test.js index e02693bd..6589b508 100644 --- a/test/js/ruby/nodes/binary.test.js +++ b/test/js/ruby/nodes/binary.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("binary", () => { test("single line", () => { diff --git a/test/js/ruby/nodes/blocks.test.js b/test/js/ruby/nodes/blocks.test.js index 74b45120..151d7c4f 100644 --- a/test/js/ruby/nodes/blocks.test.js +++ b/test/js/ruby/nodes/blocks.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("blocks", () => { test("empty", () => { diff --git a/test/js/ruby/nodes/break.test.js b/test/js/ruby/nodes/break.test.js index 8842d5f6..14816781 100644 --- a/test/js/ruby/nodes/break.test.js +++ b/test/js/ruby/nodes/break.test.js @@ -1,4 +1,4 @@ -const { ruby } = require("../../utils"); +import { ruby } from "../../utils.js"; describe("break", () => { test("empty break", () => { diff --git a/test/js/ruby/nodes/calls.test.js b/test/js/ruby/nodes/calls.test.js index bab58d43..a7a89343 100644 --- a/test/js/ruby/nodes/calls.test.js +++ b/test/js/ruby/nodes/calls.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("calls", () => { test("simple calls", () => { diff --git a/test/js/ruby/nodes/case.test.js b/test/js/ruby/nodes/case.test.js index 1be33ef4..5c2c4b19 100644 --- a/test/js/ruby/nodes/case.test.js +++ b/test/js/ruby/nodes/case.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("case", () => { test("empty case", () => { diff --git a/test/js/ruby/nodes/class.test.js b/test/js/ruby/nodes/class.test.js index e2c82bf6..81c4be6e 100644 --- a/test/js/ruby/nodes/class.test.js +++ b/test/js/ruby/nodes/class.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("class", () => { test("basic nesting", () => { diff --git a/test/js/ruby/nodes/conditionals.test.js b/test/js/ruby/nodes/conditionals.test.js index 89506951..1f6af635 100644 --- a/test/js/ruby/nodes/conditionals.test.js +++ b/test/js/ruby/nodes/conditionals.test.js @@ -1,4 +1,4 @@ -const { long, ruby, atLeastVersion } = require("../../utils"); +import { long, ruby, atLeastVersion } from "../../utils.js"; describe("conditionals", () => { describe("not operator", () => { diff --git a/test/js/ruby/nodes/defined.test.js b/test/js/ruby/nodes/defined.test.js index d1503a03..5a7154f9 100644 --- a/test/js/ruby/nodes/defined.test.js +++ b/test/js/ruby/nodes/defined.test.js @@ -1,4 +1,4 @@ -const { long } = require("../../utils"); +import { long } from "../../utils.js"; describe("defined", () => { test("no parens", () => { diff --git a/test/js/ruby/nodes/embdoc.test.js b/test/js/ruby/nodes/embdoc.test.js index e6e9b6f1..b531f650 100644 --- a/test/js/ruby/nodes/embdoc.test.js +++ b/test/js/ruby/nodes/embdoc.test.js @@ -1,4 +1,4 @@ -const { ruby } = require("../../utils"); +import { ruby } from "../../utils.js"; describe("embdoc", () => { test("basic embdocs", () => { diff --git a/test/js/ruby/nodes/hashes.test.js b/test/js/ruby/nodes/hashes.test.js index 7e8478a5..4cf71034 100644 --- a/test/js/ruby/nodes/hashes.test.js +++ b/test/js/ruby/nodes/hashes.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("hash", () => { test("empty", () => { diff --git a/test/js/ruby/nodes/heredocs.test.js b/test/js/ruby/nodes/heredocs.test.js index a348b3bd..1a1a92c1 100644 --- a/test/js/ruby/nodes/heredocs.test.js +++ b/test/js/ruby/nodes/heredocs.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("heredocs", () => { describe("straight", () => { diff --git a/test/js/ruby/nodes/hooks.test.js b/test/js/ruby/nodes/hooks.test.js index 2d7b0cb1..34a81842 100644 --- a/test/js/ruby/nodes/hooks.test.js +++ b/test/js/ruby/nodes/hooks.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe.each(["BEGIN", "END"])("%s hook", (hook) => { test("shortens to one line", () => { diff --git a/test/js/ruby/nodes/lambda.test.js b/test/js/ruby/nodes/lambda.test.js index 8a9588f7..f8abd31f 100644 --- a/test/js/ruby/nodes/lambda.test.js +++ b/test/js/ruby/nodes/lambda.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("lambda", () => { test("plain stabby lambda literal", () => { diff --git a/test/js/ruby/nodes/loops.test.js b/test/js/ruby/nodes/loops.test.js index d08dfcf6..f68fcff6 100644 --- a/test/js/ruby/nodes/loops.test.js +++ b/test/js/ruby/nodes/loops.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe.each(["while", "until"])("%s", (keyword) => { test("aligns predicates", () => { diff --git a/test/js/ruby/nodes/method.test.js b/test/js/ruby/nodes/method.test.js index 288885ba..8c88e475 100644 --- a/test/js/ruby/nodes/method.test.js +++ b/test/js/ruby/nodes/method.test.js @@ -1,4 +1,4 @@ -const { atLeastVersion, long, ruby } = require("../../utils"); +import { atLeastVersion, long, ruby } from "../../utils.js"; describe("method", () => { describe("definitions", () => { diff --git a/test/js/ruby/nodes/next.test.js b/test/js/ruby/nodes/next.test.js index 53d2629b..d1a5690d 100644 --- a/test/js/ruby/nodes/next.test.js +++ b/test/js/ruby/nodes/next.test.js @@ -1,4 +1,4 @@ -const { ruby } = require("../../utils"); +import { ruby } from "../../utils.js"; describe("next", () => { test("bare", () => { diff --git a/test/js/ruby/nodes/patterns.test.js b/test/js/ruby/nodes/patterns.test.js index 6e5117fc..dcd17838 100644 --- a/test/js/ruby/nodes/patterns.test.js +++ b/test/js/ruby/nodes/patterns.test.js @@ -1,4 +1,4 @@ -const { atLeastVersion, atMostVersion, ruby } = require("../../utils"); +import { atLeastVersion, atMostVersion, ruby } from "../../utils.js"; describe("patterns", () => { if (atMostVersion("2.7")) { diff --git a/test/js/ruby/nodes/ranges.test.js b/test/js/ruby/nodes/ranges.test.js index 62d6a8cb..dd755db9 100644 --- a/test/js/ruby/nodes/ranges.test.js +++ b/test/js/ruby/nodes/ranges.test.js @@ -1,4 +1,4 @@ -const { atLeastVersion } = require("../../utils"); +import { atLeastVersion } from "../../utils.js"; describe("ranges", () => { test("two dot", () => { diff --git a/test/js/ruby/nodes/regexp.test.js b/test/js/ruby/nodes/regexp.test.js index 5ff7983e..825a827b 100644 --- a/test/js/ruby/nodes/regexp.test.js +++ b/test/js/ruby/nodes/regexp.test.js @@ -1,4 +1,4 @@ -const { ruby } = require("../../utils"); +import { ruby } from "../../utils.js"; describe("regexp", () => { test("basic", () => { diff --git a/test/js/ruby/nodes/rescue.test.js b/test/js/ruby/nodes/rescue.test.js index 30e4c9b4..ae75bb78 100644 --- a/test/js/ruby/nodes/rescue.test.js +++ b/test/js/ruby/nodes/rescue.test.js @@ -1,4 +1,4 @@ -const { ruby } = require("../../utils"); +import { ruby } from "../../utils.js"; describe("rescue", () => { test("inline", () => { diff --git a/test/js/ruby/nodes/return.test.js b/test/js/ruby/nodes/return.test.js index 94f3c842..f99ab392 100644 --- a/test/js/ruby/nodes/return.test.js +++ b/test/js/ruby/nodes/return.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("return", () => { test("bare", () => { diff --git a/test/js/ruby/nodes/strings.test.js b/test/js/ruby/nodes/strings.test.js index e085a62b..7ad47f9d 100644 --- a/test/js/ruby/nodes/strings.test.js +++ b/test/js/ruby/nodes/strings.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("strings", () => { describe("%-literals with escape sequences in the middle", () => { diff --git a/test/js/ruby/nodes/super.test.js b/test/js/ruby/nodes/super.test.js index 0ed4b73c..ae08bf5e 100644 --- a/test/js/ruby/nodes/super.test.js +++ b/test/js/ruby/nodes/super.test.js @@ -1,4 +1,4 @@ -const { ruby } = require("../../utils"); +import { ruby } from "../../utils.js"; describe("super", () => { test("bare", () => { diff --git a/test/js/ruby/nodes/undef.test.js b/test/js/ruby/nodes/undef.test.js index cdef0e48..fb052469 100644 --- a/test/js/ruby/nodes/undef.test.js +++ b/test/js/ruby/nodes/undef.test.js @@ -1,4 +1,4 @@ -const { long, ruby } = require("../../utils"); +import { long, ruby } from "../../utils.js"; describe("undef", () => { test("single inline", () => { diff --git a/test/js/setupTests.js b/test/js/setupTests.js index 266cf2df..32e9fd71 100644 --- a/test/js/setupTests.js +++ b/test/js/setupTests.js @@ -1,6 +1,5 @@ -const prettier = require("prettier"); - -const plugin = require("../../src/plugin"); +import { format } from "prettier"; +import plugin from "../../src/plugin.js"; function normalize(code) { const string = typeof code === "string" ? code : code.code; @@ -9,7 +8,7 @@ function normalize(code) { function checkFormat(before, after) { const originalText = typeof before === "string" ? before : before.code; - const formatted = prettier.format(originalText, { + const formatted = format(originalText, { parser: typeof before === "string" ? "ruby" : before.parser, plugins: [plugin] }); diff --git a/test/js/utils.js b/test/js/utils.js index ae0584f6..8ca50d04 100644 --- a/test/js/utils.js +++ b/test/js/utils.js @@ -1,4 +1,4 @@ -const long = Array(80).fill("a").join(""); +export const long = Array(80).fill("a").join(""); function stripLeadingWhitespace(code) { if (!code.includes("\n")) { @@ -13,15 +13,15 @@ function stripLeadingWhitespace(code) { return content.map((line) => line.slice(indent)).join("\n"); } -function ruby(code) { +export function ruby(code) { return stripLeadingWhitespace(code); } -function rbs(code) { +export function rbs(code) { return { code: stripLeadingWhitespace(code), parser: "rbs" }; } -function haml(code) { +export function haml(code) { return { code: stripLeadingWhitespace(code), parser: "haml" }; } @@ -30,19 +30,10 @@ function haml(code) { // should be always available. TypeScript doesn't know that though, so we // explicitly allow it to be undefined by coalescing with the empty string. -function atLeastVersion(version) { +export function atLeastVersion(version) { return (process.env.RUBY_VERSION || "") >= version; } -function atMostVersion(version) { +export function atMostVersion(version) { return (process.env.RUBY_VERSION || "") < version; } - -module.exports = { - long, - ruby, - rbs, - haml, - atLeastVersion, - atMostVersion -}; From 0747bf50ede4282c33587846960738fe62ee13a5 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 18 Oct 2022 13:40:40 -0400 Subject: [PATCH 128/262] Increment prettier version --- package.json | 2 +- src/plugin.js | 6 +++--- src/server.rb | 9 +++------ test/js/files.test.js | 4 ++-- test/js/ruby/errors.test.js | 6 +++--- test/js/setupTests.js | 4 ++-- yarn.lock | 8 ++++---- 7 files changed, 18 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index fa38038b..badce11e 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "homepage": "https://github.com/prettier/plugin-ruby#readme", "dependencies": { - "prettier": ">=2.3.0" + "prettier": ">=3.0.0-alpha.2" }, "devDependencies": { "eslint": "^8.15.0", diff --git a/src/plugin.js b/src/plugin.js index a73392f3..6fa3f1da 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -81,7 +81,7 @@ const plugin = { ], parsers: { ruby: { - parse(text, _parsers, opts) { + parse(text, opts) { return parseSync("ruby", text, opts); }, astFormat: "ruby", @@ -96,7 +96,7 @@ const plugin = { } }, rbs: { - parse(text, _parsers, opts) { + parse(text, opts) { return parseSync("rbs", text, opts); }, astFormat: "rbs", @@ -111,7 +111,7 @@ const plugin = { } }, haml: { - parse(text, _parsers, opts) { + parse(text, opts) { return parseSync("haml", text, opts); }, astFormat: "haml", diff --git a/src/server.rb b/src/server.rb index 86741a76..7aa860eb 100644 --- a/src/server.rb +++ b/src/server.rb @@ -122,16 +122,13 @@ formatter.flush formatter.output.join when "haml" - formatter_class = + formatter = if defined?(SyntaxTree::Haml::Format::Formatter) - SyntaxTree::Haml::Format::Formatter + SyntaxTree::Haml::Format::Formatter.new(source, +"", maxwidth, "\n", &genspace) else - PrettierPrint + PrettierPrint.new(+"", maxwidth, "\n", &genspace) end - formatter = - formatter_class.new(source, +"", maxwidth, "\n", &genspace) - SyntaxTree::Haml.parse(source).format(formatter) formatter.flush formatter.output diff --git a/test/js/files.test.js b/test/js/files.test.js index 35e0f96a..f3cbec0e 100644 --- a/test/js/files.test.js +++ b/test/js/files.test.js @@ -1,4 +1,4 @@ -import prettier from "prettier"; +import { getFileInfo } from "prettier"; import url from "url"; import plugin from "../../src/plugin.js"; @@ -6,7 +6,7 @@ async function getInferredParser(filename) { const filepath = url.fileURLToPath(new URL(filename, import.meta.url)); const fileInfoOptions = { plugins: [plugin] }; - const { inferredParser } = await prettier.getFileInfo(filepath, fileInfoOptions); + const { inferredParser } = await getFileInfo(filepath, fileInfoOptions); return inferredParser; } diff --git a/test/js/ruby/errors.test.js b/test/js/ruby/errors.test.js index 124fd8cf..f2655f6a 100644 --- a/test/js/ruby/errors.test.js +++ b/test/js/ruby/errors.test.js @@ -1,6 +1,6 @@ -import prettier from "prettier"; +import { format } from "prettier"; -describe("errors", () => { +describe.skip("errors", () => { const cases = [ "alias $a $1", "self = 1", @@ -14,6 +14,6 @@ describe("errors", () => { ]; test.each(cases)("fails for %s", (content) => { - expect(() => prettier.format(content, { parser: "ruby", plugins: ["."] })).toThrow(); + expect(() => format(content, { parser: "ruby", plugins: ["."] })).toThrow(); }); }); diff --git a/test/js/setupTests.js b/test/js/setupTests.js index 32e9fd71..c0459fb0 100644 --- a/test/js/setupTests.js +++ b/test/js/setupTests.js @@ -6,9 +6,9 @@ function normalize(code) { return string.replace(/\r?\n/g, "\n").trim(); } -function checkFormat(before, after) { +async function checkFormat(before, after) { const originalText = typeof before === "string" ? before : before.code; - const formatted = format(originalText, { + const formatted = await format(originalText, { parser: typeof before === "string" ? "ruby" : before.parser, plugins: [plugin] }); diff --git a/yarn.lock b/yarn.lock index 2c8220c5..203b4121 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2316,10 +2316,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@>=2.3.0: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== +prettier@>=3.0.0-alpha.2: + version "3.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.2.tgz#b2e7698f8feb420e2e4347e19e9b7535d8188977" + integrity sha512-GTYhS1pykp0vIoV8ySOvBxc/SFAoot2rOir/QCh1KQXWYdrS9q/k73uKbwXPuUDMlcwZAasuyI0Mg7PZ1p/qRQ== pretty-format@^29.2.0: version "29.2.0" From c64944d60e7350a762add8eb4f0c7ed267095975 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 18 Oct 2022 17:52:46 -0400 Subject: [PATCH 129/262] Update tests and lint to match --- .github/workflows/main.yml | 2 +- bin/print.js | 6 +- package.json | 9 +- src/getInfo.js | 23 --- src/netcat.js | 13 -- src/parse.js | 211 +++++++++++++++++++++ src/parseSync.js | 233 ------------------------ src/plugin.js | 8 +- src/server.rb | 91 ++++----- test/js/files.test.js | 18 +- test/js/globalSetup.js | 50 ++--- test/js/globalTeardown.js | 6 +- test/js/haml/comment.test.js | 10 +- test/js/haml/doctype.test.js | 20 +- test/js/haml/filter.test.js | 6 +- test/js/haml/hamlComment.test.js | 8 +- test/js/haml/plain.test.js | 4 +- test/js/haml/script.test.js | 10 +- test/js/haml/silentScript.test.js | 12 +- test/js/haml/tag.test.js | 52 +++--- test/js/rbs/rbs.test.js | 66 +++---- test/js/ruby/comments.test.js | 40 ++-- test/js/ruby/encoding.test.js | 8 +- test/js/ruby/errors.test.js | 11 +- test/js/ruby/ignore.test.js | 2 +- test/js/ruby/layout.test.js | 10 +- test/js/ruby/nodes/alias.test.js | 24 +-- test/js/ruby/nodes/aref.test.js | 12 +- test/js/ruby/nodes/arrays.test.js | 48 ++--- test/js/ruby/nodes/assign.test.js | 30 +-- test/js/ruby/nodes/binary.test.js | 10 +- test/js/ruby/nodes/blocks.test.js | 60 +++--- test/js/ruby/nodes/break.test.js | 14 +- test/js/ruby/nodes/calls.test.js | 38 ++-- test/js/ruby/nodes/case.test.js | 16 +- test/js/ruby/nodes/class.test.js | 24 +-- test/js/ruby/nodes/conditionals.test.js | 126 ++++++------- test/js/ruby/nodes/defined.test.js | 14 +- test/js/ruby/nodes/embdoc.test.js | 6 +- test/js/ruby/nodes/field.test.js | 6 +- test/js/ruby/nodes/hashes.test.js | 56 +++--- test/js/ruby/nodes/heredocs.test.js | 88 ++++----- test/js/ruby/nodes/hooks.test.js | 16 +- test/js/ruby/nodes/kwargs.test.js | 6 +- test/js/ruby/nodes/lambda.test.js | 28 +-- test/js/ruby/nodes/loops.test.js | 36 ++-- test/js/ruby/nodes/massign.test.js | 32 ++-- test/js/ruby/nodes/method.test.js | 116 ++++++------ test/js/ruby/nodes/next.test.js | 12 +- test/js/ruby/nodes/numbers.test.js | 24 +-- test/js/ruby/nodes/patterns.test.js | 22 +-- test/js/ruby/nodes/ranges.test.js | 16 +- test/js/ruby/nodes/regexp.test.js | 34 ++-- test/js/ruby/nodes/rescue.test.js | 22 +-- test/js/ruby/nodes/return.test.js | 38 ++-- test/js/ruby/nodes/strings.test.js | 102 +++++------ test/js/ruby/nodes/super.test.js | 28 +-- test/js/ruby/nodes/unary.test.js | 4 +- test/js/ruby/nodes/undef.test.js | 16 +- test/js/ruby/nodes/yield.test.js | 10 +- 60 files changed, 997 insertions(+), 1066 deletions(-) delete mode 100644 src/getInfo.js delete mode 100644 src/netcat.js create mode 100644 src/parse.js delete mode 100644 src/parseSync.js diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bcc38d69..4d69a776 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: ruby-version: ${{ matrix.ruby }} - uses: actions/setup-node@v2 with: - node-version: 16.x + node-version: 18.x cache: yarn - run: yarn install --frozen-lockfile - run: yarn test diff --git a/bin/print.js b/bin/print.js index d05fe059..51a3d1e9 100755 --- a/bin/print.js +++ b/bin/print.js @@ -24,10 +24,8 @@ if (existsSync(process.argv[contentIdx])) { content = process.argv.slice(contentIdx).join(" ").replace(/\\n/g, "\n"); } -const { formatted } = formatWithCursor(content, { +formatWithCursor(content, { parser, plugins: [plugin], cursorOffset: 1 -}); - -console.log(formatted); +}).then(({ formatted }) => console.log(formatted)); diff --git a/package.json b/package.json index badce11e..d2f552f3 100644 --- a/package.json +++ b/package.json @@ -35,12 +35,15 @@ "prettier" ], "env": { - "es6": true, "jest": true, "node": true }, + "parserOptions": { + "ecmaVersion": 2020, + "sourceType": "module" + }, "rules": { - "no-unused-vars": "off" + "no-undef": "off" } }, "jest": { @@ -60,7 +63,7 @@ "prettier": { "trailingComma": "none", "plugins": [ - "." + "./src/plugin.js" ] } } diff --git a/src/getInfo.js b/src/getInfo.js deleted file mode 100644 index 9aaf353e..00000000 --- a/src/getInfo.js +++ /dev/null @@ -1,23 +0,0 @@ -import { existsSync, readFileSync } from "fs"; - -// This is how long to wait for the parser to spin up. For the most part, 5 -// seconds is plenty of time. But in some environments, it may be necessary to -// increase this value. -const timeoutMs = parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "5000", 10); - -const filepath = process.argv[process.argv.length - 1]; - -const timeout = setTimeout(() => { - clearInterval(interval); - throw new Error(`Failed to get information from parse server in time. If this - happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment - variable beyond 5000.`); -}, timeoutMs); - -const interval = setInterval(() => { - if (existsSync(filepath)) { - process.stdout.write(readFileSync(filepath).toString("utf8")); - clearTimeout(timeout); - clearInterval(interval); - } -}, 100); diff --git a/src/netcat.js b/src/netcat.js deleted file mode 100644 index df100d5a..00000000 --- a/src/netcat.js +++ /dev/null @@ -1,13 +0,0 @@ -// A simple fallback when no netcat-compatible adapter is found on the system. -// On average, this is 2-3x slower than netcat, but still much faster than -// spawning a new Ruby process. - -import { createConnection } from "net"; - -const sock = process.argv[process.argv.length - 1]; -const client = createConnection(sock, () => process.stdin.pipe(client)); - -client.on("data", (data) => process.stdout.write(data)); -client.on("error", (error) => { - console.error(error); -}); diff --git a/src/parse.js b/src/parse.js new file mode 100644 index 00000000..1e6f536a --- /dev/null +++ b/src/parse.js @@ -0,0 +1,211 @@ +import { spawn } from "child_process"; +import fs from "fs"; +import net from "net"; +import os from "os"; +import path from "path"; +import process from "process"; +import url from "url"; + +// In order to properly parse ruby code, we need to tell the ruby process to +// parse using UTF-8. Unfortunately, the way that you accomplish this looks +// differently depending on your platform. +/* istanbul ignore next */ +function getLang() { + const { env, platform } = process; + const envValue = env.LC_ALL || env.LC_CTYPE || env.LANG; + + // If an env var is set for the locale that already includes UTF-8 in the + // name, then assume we can go with that. + if (envValue && envValue.includes("UTF-8")) { + return envValue; + } + + // Otherwise, we're going to guess which encoding to use based on the system. + // This is probably not the best approach in the world, as you could be on + // linux and not have C.UTF-8, but in that case you're probably passing an env + // var for it. This object below represents all of the possible values of + // process.platform per: + // https://nodejs.org/api/process.html#process_process_platform + return { + aix: "C.UTF-8", + android: "C.UTF-8", + cygwin: "C.UTF-8", + darwin: "en_US.UTF-8", + freebsd: "C.UTF-8", + haiku: "C.UTF-8", + linux: "C.UTF-8", + netbsd: "C.UTF-8", + openbsd: "C.UTF-8", + sunos: "C.UTF-8", + win32: ".UTF-8" + }[platform]; +} + +// Return the list of plugins that should be passed to the server process. +function getPlugins(opts) { + const plugins = new Set(); + + const rubyPlugins = opts.rubyPlugins.trim(); + if (rubyPlugins.length > 0) { + rubyPlugins.split(",").forEach((plugin) => plugins.add(plugin.trim())); + } + + if (opts.rubySingleQuote) { + plugins.add("plugin/single_quotes"); + } + + if (opts.trailingComma !== "none") { + plugins.add("plugin/trailing_comma"); + } + + return Array.from(plugins); +} + +// Create a file that will act as a communication mechanism, spawn a parser +// server with that filepath as an argument, then wait for the file to be +// created that will contain the connection information. +export async function spawnServer(opts) { + const tmpdir = os.tmpdir(); + let serverFilepath = url.fileURLToPath( + new URL("./server.rb", import.meta.url) + ); + + // If we're in a yarn Plug'n'Play environment, then the relative paths being + // used by the parser server are not going to work with its virtual file + // system. + if (process.versions.pnp) { + if (url.fileURLToPath(new URL(".", import.meta.url)).includes(".zip")) { + // serverRbPath = path.join(tmpdir, "server.rb"); + // const rubyFile = "server.rb"; + // const destDir = path.join(tmpdir, path.dirname(rubyFile)); + // if (!existsSync(destDir)) { + // mkdirSync(destDir); + // } + // copyFileSync( + // url.fileURLToPath(new URL(`../src/${rubyFile}`, import.meta.url)), + // path.join(tmpdir, rubyFile) + // ); + // cleanupTempFiles = () => { + // const tmpFilePath = path.join(tmpdir, "server.rb"); + // if (existsSync(tmpFilePath)) { + // unlinkSync(tmpFilePath); + // } + // const tempSubdir = path.join(tmpdir, path.dirname("server.rb")); + // if (existsSync(tempSubdir)) { + // rmdirSync(tempSubdir); + // } + // }; + } + } + + const filepath = path.join( + tmpdir, + `prettier-ruby-parser-${process.pid}.info` + ); + const server = spawn( + "ruby", + [serverFilepath, `--plugins=${getPlugins(opts).join(",")}`, filepath], + { + env: Object.assign({}, process.env, { LANG: getLang() }), + stdio: "ignore", + detached: true + } + ); + + server.unref(); + + process.on("exit", () => { + if (fs.existsSync(filepath)) { + fs.unlinkSync(filepath); + } + + try { + if (server.pid) { + // Kill the server process if it's still running. If we're on windows + // we're going to use the process ID number. If we're not, we're going + // to use the negative process ID to indicate the group. + const pid = process.platform === "win32" ? server.pid : -server.pid; + process.kill(pid); + } + } catch (error) { + if (process.env.PLUGIN_RUBY_CI) { + throw new Error(`Failed to kill the parser server: ${error}`); + } + } + }); + + return new Promise((resolve, reject) => { + const timeout = setTimeout( + () => { + clearInterval(interval); + reject( + new Error( + "Failed to get connection options from parse server in time. If this happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment variable beyond 5000." + ) + ); + }, + parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "5000", 10) + ); + + const interval = setInterval(() => { + if (fs.existsSync(filepath)) { + resolve({ + serverPID: server.pid, + connectionOptions: JSON.parse( + fs.readFileSync(filepath).toString("utf-8") + ) + }); + + clearTimeout(timeout); + clearInterval(interval); + } + }, 100); + }); +} + +let connectionOptions; +if (process.env.PRETTIER_RUBY_HOST) { + connectionOptions = JSON.parse(process.env.PRETTIER_RUBY_HOST); +} + +// Formats and sends a request to the parser server. We use netcat (or something +// like it) here since Prettier requires the results of `parse` to be +// synchronous and Node.js does not offer a mechanism for synchronous socket +// requests. +export async function parse(parser, source, opts) { + if (!connectionOptions) { + const spawnedServer = await spawnServer(opts); + connectionOptions = spawnedServer.connectionOptions; + } + + return new Promise((resolve, reject) => { + const socket = new net.Socket(); + + socket.on("error", reject); + socket.on("data", (data) => { + const response = JSON.parse(data.toString("utf-8")); + + if (response.error) { + const error = new Error(response.error); + if (response.loc) { + error.loc = response.loc; + } + + reject(error); + } + + resolve(response); + }); + + socket.connect(connectionOptions, () => { + socket.end( + JSON.stringify({ + parser, + source, + maxwidth: opts.printWidth, + tabwidth: opts.tabWidth + }) + ); + }); + }); +} diff --git a/src/parseSync.js b/src/parseSync.js deleted file mode 100644 index 623d5c5a..00000000 --- a/src/parseSync.js +++ /dev/null @@ -1,233 +0,0 @@ -import { spawn, spawnSync } from "child_process"; -import { - existsSync, - unlinkSync, - mkdtempSync, - copyFileSync, - mkdirSync, - rmdirSync -} from "fs"; -import { tmpdir } from "os"; -import path from "path"; -import process from "process"; -import url from "url"; - -let parserArgs; - -if (process.env.PRETTIER_RUBY_HOST) { - const [cmd, ...args] = process.env.PRETTIER_RUBY_HOST.split(" "); - parserArgs = { cmd, args }; -} - -// In order to properly parse ruby code, we need to tell the ruby process to -// parse using UTF-8. Unfortunately, the way that you accomplish this looks -// differently depending on your platform. -/* istanbul ignore next */ -export function getLang() { - const { env, platform } = process; - const envValue = env.LC_ALL || env.LC_CTYPE || env.LANG; - - // If an env var is set for the locale that already includes UTF-8 in the - // name, then assume we can go with that. - if (envValue && envValue.includes("UTF-8")) { - return envValue; - } - - // Otherwise, we're going to guess which encoding to use based on the system. - // This is probably not the best approach in the world, as you could be on - // linux and not have C.UTF-8, but in that case you're probably passing an env - // var for it. This object below represents all of the possible values of - // process.platform per: - // https://nodejs.org/api/process.html#process_process_platform - return { - aix: "C.UTF-8", - android: "C.UTF-8", - cygwin: "C.UTF-8", - darwin: "en_US.UTF-8", - freebsd: "C.UTF-8", - haiku: "C.UTF-8", - linux: "C.UTF-8", - netbsd: "C.UTF-8", - openbsd: "C.UTF-8", - sunos: "C.UTF-8", - win32: ".UTF-8" - }[platform]; -} - -// Generate the filepath that should be used to communicate the connection -// information between this process and the parser server. -export function getInfoFilepath() { - return path.join(tmpdir(), `prettier-ruby-parser-${process.pid}.info`); -} - -// Return the list of plugins that should be passed to the server process. -function getPlugins(opts) { - const plugins = new Set(); - - const rubyPlugins = opts.rubyPlugins.trim(); - if (rubyPlugins.length > 0) { - rubyPlugins.split(",").forEach((plugin) => plugins.add(plugin.trim())); - } - - if (opts.rubySingleQuote) { - plugins.add("plugin/single_quotes"); - } - - if (opts.trailingComma !== "none") { - plugins.add("plugin/trailing_comma"); - } - - return Array.from(plugins); -} - -// Create a file that will act as a communication mechanism, spawn a parser -// server with that filepath as an argument, then spawn another process that -// will read that information in order to enable us to connect to it in the -// spawnSync function. -function spawnServer(opts) { - const tempDir = mkdtempSync(path.join(tmpdir(), "prettier-plugin-ruby-")); - const filepath = getInfoFilepath(); - - let serverRbPath = url.fileURLToPath(new URL("./server.rb", import.meta.url)); - let getInfoJsPath = url.fileURLToPath(new URL("./getInfo.js", import.meta.url)); - let cleanupTempFiles; - - if (runningInPnPZip()) { - // If we're running in a Yarn PnP environment inside a ZIP file, it's not possible to run - // the Ruby server or the getInfo.js script directly. Instead, we need to copy them and all - // the files they depend on to a temporary directory. - - const sourceFiles = ["server.rb", "getInfo.js", "netcat.js"]; - serverRbPath = path.join(tempDir, "server.rb"); - getInfoJsPath = path.join(tempDir, "getInfo.js"); - - sourceFiles.forEach((rubyFile) => { - const destDir = path.join(tempDir, path.dirname(rubyFile)); - if (!existsSync(destDir)) { - mkdirSync(destDir); - } - copyFileSync( - url.fileURLToPath(new URL(`../src/${rubyFile}`, import.meta.url)), - path.join(tempDir, rubyFile) - ); - }); - - cleanupTempFiles = () => { - [ - getInfoJsPath, - ...sourceFiles.map((rubyFile) => path.join(tempDir, rubyFile)) - ].forEach((tmpFilePath) => { - if (existsSync(tmpFilePath)) { - unlinkSync(tmpFilePath); - } - }); - - sourceFiles.forEach((rubyFile) => { - const tempSubdir = path.join(tempDir, path.dirname(rubyFile)); - if (existsSync(tempSubdir)) { - rmdirSync(tempSubdir); - } - }); - - if (existsSync(tempDir)) { - rmdirSync(tempDir); - } - }; - } - - const server = spawn( - "ruby", - [serverRbPath, `--plugins=${getPlugins(opts).join(",")}`, filepath], - { - env: Object.assign({}, process.env, { LANG: getLang() }), - detached: true, - stdio: "inherit" - } - ); - - server.unref(); - process.on("exit", () => { - if (existsSync(filepath)) { - unlinkSync(filepath); - } - - if (cleanupTempFiles != null) { - cleanupTempFiles(); - } - - try { - if (server.pid) { - // Kill the server process if it's still running. If we're on windows - // we're going to use the process ID number. If we're not, we're going - // to use the negative process ID to indicate the group. - const pid = process.platform === "win32" ? server.pid : -server.pid; - process.kill(pid); - } - } catch (e) { - if (process.env.PLUGIN_RUBY_CI) { - throw new Error(`Failed to kill the parser server: ${e}`); - } - } - }); - - const info = spawnSync(process.execPath, [getInfoJsPath, filepath]); - - if (info.status !== 0) { - throw new Error(` - We failed to spawn our parser server. Please report this error on GitHub - at https://github.com/prettier/plugin-ruby. The error message was: - - ${info.stderr.toString()}. - `); - } - - const [cmd, ...args] = info.stdout.toString().split(" "); - return { cmd, args }; -} - -// If we're in a yarn Plug'n'Play environment, then the relative paths being -// used by the parser server and the various scripts used to communicate -// therein are not going to work with its virtual file system. -function runningInPnPZip() { - const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); - return process.versions.pnp && __dirname.includes(".zip"); -} - -// Formats and sends a request to the parser server. We use netcat (or something -// like it) here since Prettier requires the results of `parse` to be -// synchronous and Node.js does not offer a mechanism for synchronous socket -// requests. -export function parseSync(parser, source, opts) { - if (!parserArgs) { - parserArgs = spawnServer(opts); - } - - const command = parserArgs.cmd === "node" ? process.execPath : parserArgs.cmd; - const response = spawnSync(command, parserArgs.args, { - input: `${parser}|${opts.printWidth}|${opts.tabWidth}|${source}`, - maxBuffer: 15 * 1024 * 1024 - }); - - const stdout = response.stdout.toString(); - const stderr = response.stderr.toString(); - const { status } = response; - - // If we didn't receive anything over stdout or we have a bad exit status, - // then throw whatever we can. - if (stdout.length === 0 || (status !== null && status !== 0)) { - throw new Error(stderr || "An unknown error occurred"); - } - - const parsed = JSON.parse(stdout); - - if (parsed.error) { - const error = new Error(parsed.error); - if (parsed.loc) { - error.loc = parsed.loc; - } - - throw error; - } - - return parsed; -} diff --git a/src/plugin.js b/src/plugin.js index 6fa3f1da..5e368171 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -1,4 +1,4 @@ -import { parseSync } from "./parseSync.js"; +import { parse } from "./parse.js"; /* * metadata mostly pulled from linguist and rubocop: @@ -82,7 +82,7 @@ const plugin = { parsers: { ruby: { parse(text, opts) { - return parseSync("ruby", text, opts); + return parse("ruby", text, opts); }, astFormat: "ruby", hasPragma(text) { @@ -97,7 +97,7 @@ const plugin = { }, rbs: { parse(text, opts) { - return parseSync("rbs", text, opts); + return parse("rbs", text, opts); }, astFormat: "rbs", hasPragma(text) { @@ -112,7 +112,7 @@ const plugin = { }, haml: { parse(text, opts) { - return parseSync("haml", text, opts); + return parse("haml", text, opts); }, astFormat: "haml", hasPragma(text) { diff --git a/src/server.rb b/src/server.rb index 7aa860eb..0917ee19 100644 --- a/src/server.rb +++ b/src/server.rb @@ -1,10 +1,8 @@ # frozen_string_literal: true require "bundler/setup" -require "socket" require "json" -require "fileutils" -require "open3" +require "socket" require "prettier_print" require "syntax_tree" @@ -16,6 +14,9 @@ .split(",") .each { |plugin| require "syntax_tree/#{plugin}" } +# Next, get the file where we should write our connection information. +connection_filepath = ARGV.shift + # Make sure we trap these signals to be sure we get the quit command coming from # the parent node process quit = false @@ -26,15 +27,6 @@ trap(:QUIT) { quit = true } end -# The information variable stores the actual connection information, which will -# either be an IP address and port or a path to a unix socket file. -information = "" - -# The candidates array is a list of potential programs that could be used to -# connect to our server. We'll run through them after the server starts to find -# the best one to use. -candidates = [] - if Gem.win_platform? # If we're on windows, we're going to start up a TCP server. The 0 here means # to bind to some available port. @@ -44,8 +36,13 @@ # Ensure that we close the server when this process exits. at_exit { server.close } - information = "#{address.ip_address} #{address.ip_port}" - candidates = %w[nc telnet] + File.write( + connection_filepath, + JSON.fast_generate( + address: server.address.ip_address, + port: server.address.ip_port + ) + ) else # If we're not on windows, then we're going to assume we can use unix socket # files (since they're faster than a TCP server). @@ -59,14 +56,15 @@ File.unlink(filepath) end - information = server.local_address.unix_path - candidates = ["nc -w 3 -U", "ncat -w 3 -U"] + File.write( + connection_filepath, + JSON.fast_generate(path: server.local_address.unix_path) + ) end # This is the actual listening thread that will be acting as our server. We have -# to start it in another thread to begin with so that we can run through our -# candidate connection programs. Eventually we'll just join into this thread -# though and it will act as a daemon. +# to start it in another thread in order to properly trap the signals in this +# parent thread. listener = Thread.new do loop do @@ -74,8 +72,8 @@ # Start up a new thread that will handle each successive connection. Thread.new(server.accept_nonblock) do |socket| - parser, maxwidth_string, tabwidth_string, source = - socket.read.force_encoding("UTF-8").split("|", 4) + request = JSON.parse(socket.read.force_encoding("UTF-8")) + source = request["source"] source.each_line do |line| case line @@ -95,14 +93,12 @@ # At the moment, we're not going to support odd tabwidths. It's going to # have to be a multiple of 2, because of the way that the prettyprint # gem functions. So we're going to just use integer division here. - scalar = tabwidth_string.to_i / 2 + scalar = request["tabwidth"].to_i / 2 genspace = ->(n) { " " * n * scalar } - maxwidth = maxwidth_string.to_i + maxwidth = request["maxwidth"].to_i response = - case parser - when "ping" - "pong" + case request["parser"] when "ruby" formatter = SyntaxTree::Formatter.new(source, [], maxwidth, "\n", &genspace) @@ -124,7 +120,13 @@ when "haml" formatter = if defined?(SyntaxTree::Haml::Format::Formatter) - SyntaxTree::Haml::Format::Formatter.new(source, +"", maxwidth, "\n", &genspace) + SyntaxTree::Haml::Format::Formatter.new( + source, + +"", + maxwidth, + "\n", + &genspace + ) else PrettierPrint.new(+"", maxwidth, "\n", &genspace) end @@ -146,8 +148,8 @@ begin socket.write(JSON.fast_generate(error: error.message)) rescue Errno::EPIPE - # Do nothing, the pipe has been closed by the parent process so we don't - # actually care about writing to it anymore. + # Do nothing, the pipe has been closed by the parent process so we + # don't actually care about writing to it anymore. end ensure socket.close @@ -162,35 +164,4 @@ end end -# Map each candidate connection method to a thread that will check if it works. -candidates.map! do |candidate| - Thread.new do - Thread.current.report_on_exception = false - - # We do not care about stderr here, so throw it away - stdout, _stderr, status = - Open3.capture3("#{candidate} #{information}", stdin_data: "ping") - - candidate if JSON.parse(stdout) == "pong" && status.exitstatus == 0 - rescue StandardError - # We don't actually care if this fails, because we'll just skip that - # connection option. - end -end - -# Find the first one prefix that successfully returned the correct value. -prefix = - candidates.detect do |candidate| - value = candidate.value - break value if value - end - -# Default to running the netcat.js script that we ship with the plugin. It's a -# good fallback as it will always work, but it is slower than the other options. -prefix ||= "node #{File.expand_path("netcat.js", __dir__)}" - -# Write out our connection information to the file given as the first argument -# to this script. -File.write(ARGV[0], "#{prefix} #{information}") - listener.join diff --git a/test/js/files.test.js b/test/js/files.test.js index f3cbec0e..05b239bd 100644 --- a/test/js/files.test.js +++ b/test/js/files.test.js @@ -2,18 +2,14 @@ import { getFileInfo } from "prettier"; import url from "url"; import plugin from "../../src/plugin.js"; -async function getInferredParser(filename) { - const filepath = url.fileURLToPath(new URL(filename, import.meta.url)); - const fileInfoOptions = { plugins: [plugin] }; - - const { inferredParser } = await getFileInfo(filepath, fileInfoOptions); - return inferredParser; -} - describe("files", () => { const cases = ["files/Gemfile", "files/shebang", "files/test.rake"]; - test.each(cases)("infers Ruby parser from %s", (filename) => - expect(getInferredParser(filename)).resolves.toBe("ruby") - ); + test.each(cases)("infers Ruby parser from %s", async (filename) => { + const filepath = url.fileURLToPath(new URL(filename, import.meta.url)); + const fileInfoOptions = { plugins: [plugin] }; + + const { inferredParser } = await getFileInfo(filepath, fileInfoOptions); + expect(inferredParser).toEqual("ruby"); + }); }); diff --git a/test/js/globalSetup.js b/test/js/globalSetup.js index 2a80c480..f9e3dc49 100644 --- a/test/js/globalSetup.js +++ b/test/js/globalSetup.js @@ -1,44 +1,28 @@ -import { spawn, spawnSync } from "child_process"; -import { unlinkSync } from "fs"; -import url from "url"; -import { getLang, getInfoFilepath } from "../../src/parseSync.js"; +import { spawnSync } from "child_process"; +import { spawnServer } from "../../src/parse.js"; // This is somewhat similar to the spawnServer function in parseSync but // slightly different in that it logs its information into environment variables // so that it can be reused across the test suite. -function globalSetup() { +async function globalSetup() { // Set a RUBY_VERSION environment variable because certain tests will only run // for certain versions of Ruby. - const args = ["--disable-gems", "-e", "puts RUBY_VERSION"]; - process.env.RUBY_VERSION = spawnSync("ruby", args).stdout.toString().trim(); + process.env.RUBY_VERSION = spawnSync("ruby", [ + "--disable-gems", + "-e", + "puts RUBY_VERSION" + ]) + .stdout.toString("utf-8") + .trim(); - // Set up just one parsing server for the entirety of the test suite. - const filepath = getInfoFilepath(); - const server = spawn( - "ruby", - [url.fileURLToPath(new URL("../../src/server.rb", import.meta.url)), "--plugins=", filepath], - { - env: Object.assign({}, process.env, { LANG: getLang() }), - detached: true, - stdio: "inherit" - } - ); + const { serverPID, connectionOptions } = await spawnServer({ + rubyPlugins: "", + rubySingleQuote: false, + trailingComma: "none" + }); - // Get the connection information from the parsing server. - const information = spawnSync("node", [ - url.fileURLToPath(new URL("../../src/getInfo.js", import.meta.url)), - filepath - ]); - - if (information.status !== 0) { - throw new Error(information.stderr.toString()); - } - - process.env.PRETTIER_RUBY_HOST = information.stdout.toString(); - process.env.PRETTIER_RUBY_PID = `${server.pid}`; - - unlinkSync(filepath); - server.unref(); + process.env.PRETTIER_RUBY_PID = serverPID; + process.env.PRETTIER_RUBY_HOST = JSON.stringify(connectionOptions); } export default globalSetup; diff --git a/test/js/globalTeardown.js b/test/js/globalTeardown.js index b4b20e9a..bcf486c7 100644 --- a/test/js/globalTeardown.js +++ b/test/js/globalTeardown.js @@ -2,11 +2,11 @@ // the PRETTIER_RUBY_PID environment variable. At the end of the test suite we // should send a kill signal to it. function globalTeardown() { - const prettierRubyPID = process.env.PRETTIER_RUBY_PID; + const serverPID = process.env.PRETTIER_RUBY_PID; - if (prettierRubyPID) { + if (serverPID) { try { - process.kill(parseInt(prettierRubyPID, 10), "SIGINT"); + process.kill(parseInt(serverPID, 10), "SIGINT"); } catch (e) { throw new Error("Failed to kill the parser process in globalTeardown."); } diff --git a/test/js/haml/comment.test.js b/test/js/haml/comment.test.js index 0b29db72..6ceac558 100644 --- a/test/js/haml/comment.test.js +++ b/test/js/haml/comment.test.js @@ -2,7 +2,9 @@ import { haml } from "../utils"; describe("comment", () => { test("single line", () => { - expect(haml("/ This is the peanutbutterjelly element")).toMatchFormat(); + return expect( + haml("/ This is the peanutbutterjelly element") + ).toMatchFormat(); }); test("multi line", () => { @@ -11,7 +13,7 @@ describe("comment", () => { %p This doesn't render, because it's commented out! `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("conditional", () => { @@ -20,7 +22,7 @@ describe("comment", () => { %h1 Get Firefox `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("revealed", () => { @@ -29,6 +31,6 @@ describe("comment", () => { You are not using Internet Explorer, or are using version 10+. `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/haml/doctype.test.js b/test/js/haml/doctype.test.js index bd1ffe58..5e6f1ba1 100644 --- a/test/js/haml/doctype.test.js +++ b/test/js/haml/doctype.test.js @@ -2,42 +2,42 @@ import { haml } from "../utils"; describe("doctype", () => { test("basic", () => { - expect(haml("!!! Basic")).toMatchFormat(); + return expect(haml("!!! Basic")).toMatchFormat(); }); test("frameset", () => { - expect(haml("!!! Frameset")).toMatchFormat(); + return expect(haml("!!! Frameset")).toMatchFormat(); }); test("mobile", () => { - expect(haml("!!! Mobile")).toMatchFormat(); + return expect(haml("!!! Mobile")).toMatchFormat(); }); test("rdfa", () => { - expect(haml("!!! RDFa")).toMatchFormat(); + return expect(haml("!!! RDFa")).toMatchFormat(); }); test("strict", () => { - expect(haml("!!! Strict")).toMatchFormat(); + return expect(haml("!!! Strict")).toMatchFormat(); }); test("xml", () => { - expect(haml("!!! XML")).toMatchFormat(); + return expect(haml("!!! XML")).toMatchFormat(); }); test("encoding", () => { - expect(haml("!!! XML iso-8859-1")).toMatchFormat(); + return expect(haml("!!! XML iso-8859-1")).toMatchFormat(); }); test("1.1", () => { - expect(haml("!!! 1.1")).toMatchFormat(); + return expect(haml("!!! 1.1")).toMatchFormat(); }); test("5", () => { - expect(haml("!!! 5")).toMatchFormat(); + return expect(haml("!!! 5")).toMatchFormat(); }); test("misc", () => { - expect(haml("!!! foo")).toMatchFormat(); + return expect(haml("!!! foo")).toMatchFormat(); }); }); diff --git a/test/js/haml/filter.test.js b/test/js/haml/filter.test.js index 711ba4c2..14e7e223 100644 --- a/test/js/haml/filter.test.js +++ b/test/js/haml/filter.test.js @@ -7,7 +7,7 @@ describe("filter", () => { -# comment `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("custom", () => { @@ -17,7 +17,7 @@ describe("filter", () => { bar `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("css", () => { @@ -26,6 +26,6 @@ describe("filter", () => { .foo { height: 100px; width: 100px; } `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/haml/hamlComment.test.js b/test/js/haml/hamlComment.test.js index de38dfae..757f241b 100644 --- a/test/js/haml/hamlComment.test.js +++ b/test/js/haml/hamlComment.test.js @@ -2,11 +2,11 @@ import { haml } from "../utils"; describe("haml comment", () => { test("empty", () => { - expect(haml("-#")).toMatchFormat(); + return expect(haml("-#")).toMatchFormat(); }); test("same line", () => { - expect(haml("-# comment")).toMatchFormat(); + return expect(haml("-# comment")).toMatchFormat(); }); test("multi line", () => { @@ -17,10 +17,10 @@ describe("haml comment", () => { comment `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("weird spacing same line", () => { - expect(haml("-# foobar ")).toChangeFormat("-# foobar"); + return expect(haml("-# foobar ")).toChangeFormat("-# foobar"); }); }); diff --git a/test/js/haml/plain.test.js b/test/js/haml/plain.test.js index 4f824053..87b1e79f 100644 --- a/test/js/haml/plain.test.js +++ b/test/js/haml/plain.test.js @@ -4,10 +4,10 @@ describe("plain", () => { const specialChars = ["%", ".", "#", "/", "!", "=", "&", "~", "-", "\\", ":"]; test.each(specialChars)("escapes starting %s", (specialChar) => { - expect(haml(`\\${specialChar}`)).toMatchFormat(); + return expect(haml(`\\${specialChar}`)).toMatchFormat(); }); test("does not unnecessarily escape other characters", () => { - expect(haml("foo")).toMatchFormat(); + return expect(haml("foo")).toMatchFormat(); }); }); diff --git a/test/js/haml/script.test.js b/test/js/haml/script.test.js index 440d6a1e..f9c56e02 100644 --- a/test/js/haml/script.test.js +++ b/test/js/haml/script.test.js @@ -2,7 +2,7 @@ import { haml } from "../utils"; describe("script", () => { test("single line", () => { - expect(haml('%p= "hello"')).toMatchFormat(); + return expect(haml('%p= "hello"')).toMatchFormat(); }); test("multi line", () => { @@ -12,11 +12,11 @@ describe("script", () => { = "yo" `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("escape with interpolate", () => { - expect(haml(`&= "I like cheese & crackers"`)).toMatchFormat(); + return expect(haml(`&= "I like cheese & crackers"`)).toMatchFormat(); }); test("children", () => { @@ -25,10 +25,10 @@ describe("script", () => { = bar `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("preserve", () => { - expect(haml('~ "Foo\\n
    Bar\\nBaz
    "')).toMatchFormat(); + return expect(haml('~ "Foo\\n
    Bar\\nBaz
    "')).toMatchFormat(); }); }); diff --git a/test/js/haml/silentScript.test.js b/test/js/haml/silentScript.test.js index d263bd14..c7e78177 100644 --- a/test/js/haml/silentScript.test.js +++ b/test/js/haml/silentScript.test.js @@ -2,7 +2,7 @@ import { haml } from "../utils"; describe("silent script", () => { test("single line", () => { - expect(haml('- foo = "hello"')).toMatchFormat(); + return expect(haml('- foo = "hello"')).toMatchFormat(); }); test("multi-line", () => { @@ -11,7 +11,7 @@ describe("silent script", () => { - bar `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multi line with case", () => { @@ -26,7 +26,7 @@ describe("silent script", () => { = "3" `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multi line with if/else", () => { @@ -40,7 +40,7 @@ describe("silent script", () => { -# qix `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multi line with unless/else", () => { @@ -54,7 +54,7 @@ describe("silent script", () => { -# qix `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multi line with embedded", () => { @@ -67,6 +67,6 @@ describe("silent script", () => { %span baz `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/haml/tag.test.js b/test/js/haml/tag.test.js index 59749792..70f4c17f 100644 --- a/test/js/haml/tag.test.js +++ b/test/js/haml/tag.test.js @@ -2,31 +2,31 @@ import { long, haml } from "../utils"; describe("tag", () => { test("class", () => { - expect(haml("%p.foo")).toMatchFormat(); + return expect(haml("%p.foo")).toMatchFormat(); }); test("class multiple", () => { - expect(haml("%p.foo.bar.baz")).toMatchFormat(); + return expect(haml("%p.foo.bar.baz")).toMatchFormat(); }); test("id", () => { - expect(haml("%p#foo")).toMatchFormat(); + return expect(haml("%p#foo")).toMatchFormat(); }); test("classes and id", () => { - expect(haml("%p.foo.bar#baz")).toMatchFormat(); + return expect(haml("%p.foo.bar#baz")).toMatchFormat(); }); test("self closing", () => { - expect(haml("%br/")).toMatchFormat(); + return expect(haml("%br/")).toMatchFormat(); }); test("whitespace removal left single line", () => { - expect(haml('%p>= "Foo\\nBar"')).toMatchFormat(); + return expect(haml('%p>= "Foo\\nBar"')).toMatchFormat(); }); test("whitespace removal right single line", () => { - expect(haml('%p<= "Foo\\nBar"')).toMatchFormat(); + return expect(haml('%p<= "Foo\\nBar"')).toMatchFormat(); }); test("whitespace removal right multi line", () => { @@ -36,63 +36,65 @@ describe("tag", () => { Foo! `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("dynamic attribute", () => { - expect(haml("%span{html_attrs('fr-fr')}")).toMatchFormat(); + return expect(haml("%span{html_attrs('fr-fr')}")).toMatchFormat(); }); test("dynamic attributes (ruby hash)", () => { const content = haml(`%div{data: { controller: "lesson-evaluation" }}`); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("dynamic attributes (html-style)", () => { const content = haml("%img(title=@title alt=@alt)/"); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); describe("static attributes", () => { test("basic", () => { - expect(haml("%span(foo)")).toChangeFormat("%span{foo: true}"); + return expect(haml("%span(foo)")).toChangeFormat("%span{foo: true}"); }); test("hash label, single quote", () => { const content = haml(`%section(xml:lang="en" title="title")`); const expected = `%section{"xml:lang": "en", title: "title"}`; - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("hash label, double quote", () => { const content = haml(`%section(xml:lang="en" title="title")`); const expected = `%section{"xml:lang": "en", title: "title"}`; - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("hash label, single quote, interpolation", () => { const content = haml(`%section{title: "#{title}"}`); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("non-strings", () => { const content = haml(`%section(foo=1 bar=2)`); const expected = `%section(foo=1 bar=2)`; - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("attributes prefixed with @", () => { - expect(haml(`%span{"@click": "open = true"}`)).toMatchFormat(); - expect(haml(`%span{"@click.outside": "open = true"}`)).toMatchFormat(); - expect( - haml(`%span{"@keydown.arrow-up.prevent": "open = true"}`) - ).toMatchFormat(); + return Promise.all([ + expect(haml(`%span{"@click": "open = true"}`)).toMatchFormat(), + expect(haml(`%span{"@click.outside": "open = true"}`)).toMatchFormat(), + expect( + haml(`%span{"@keydown.arrow-up.prevent": "open = true"}`) + ).toMatchFormat() + ]); }); }); @@ -103,7 +105,7 @@ describe("tag", () => { Hello! `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("long declaration before text", () => { @@ -117,18 +119,18 @@ describe("tag", () => { foo `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("with quotes in string", () => { const content = haml(`%div{title: "escaping quotes, it's annoying"}`); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with interpolation in the value", () => { const content = haml(`%p hello"#{1 + 2} little pigs"`); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/rbs/rbs.test.js b/test/js/rbs/rbs.test.js index 7cd9852b..3e6addac 100644 --- a/test/js/rbs/rbs.test.js +++ b/test/js/rbs/rbs.test.js @@ -8,7 +8,7 @@ function testCases(name, transform) { sources.forEach((source) => { test(source, () => { - expect(rbs(transform(source))).toMatchFormat(); + return expect(rbs(transform(source))).toMatchFormat(); }); }); } @@ -33,7 +33,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("interface with type params", () => { @@ -42,7 +42,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); if (atLeastVersion("3.1")) { @@ -52,7 +52,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("interface with fancy bounded type params", () => { @@ -61,7 +61,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); } @@ -71,7 +71,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("class with type params", () => { @@ -80,7 +80,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("class with complicated type params", () => { @@ -89,7 +89,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); if (atLeastVersion("3.1")) { @@ -99,7 +99,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("class with fancy bounded type params", () => { @@ -108,7 +108,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); } @@ -119,7 +119,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("class with annotations that cannot be switched to braces", () => { @@ -129,7 +129,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("class with comments", () => { @@ -139,7 +139,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("class with superclass", () => { @@ -148,7 +148,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("module", () => { @@ -157,7 +157,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("module with type params", () => { @@ -166,7 +166,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("module with self types", () => { @@ -175,7 +175,7 @@ describe("rbs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multiple empty lines", () => { @@ -198,7 +198,7 @@ describe("rbs", () => { end `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); }); @@ -217,39 +217,43 @@ describe("rbs", () => { testCases("literal", (source) => `T: ${source}`); test("+1 drops the plus sign", () => { - expect(rbs("T: +1")).toChangeFormat("T: 1"); + return expect(rbs("T: +1")).toChangeFormat("T: 1"); }); test("uses default quotes", () => { - expect(rbs(`T: "foo"`)).toMatchFormat(); + return expect(rbs(`T: "foo"`)).toMatchFormat(); }); test("changes quotes to match", () => { - expect(rbs("T: 'foo'")).toChangeFormat(`T: "foo"`); + return expect(rbs("T: 'foo'")).toChangeFormat(`T: "foo"`); }); test("keeps string the same when there is an escape sequence", () => { - expect(rbs(`T: "super \\a duper"`)).toMatchFormat(); + return expect(rbs(`T: "super \\a duper"`)).toMatchFormat(); }); test("unescapes double quotes when using single quotes", () => { - expect(rbs(`T: "super \\" duper"`)).toChangeFormat( + return expect(rbs(`T: "super \\" duper"`)).toChangeFormat( `T: "super \\" duper"` ); }); test("unescapes single quotes when using double quotes", () => { - expect(rbs(`T: 'super \\' duper'`)).toChangeFormat( + return expect(rbs(`T: 'super \\' duper'`)).toChangeFormat( `T: 'super \\' duper'` ); }); test("maintains escape sequences when using double quotes", () => { - expect(rbs(`T: "escape sequences \\a\\b\\e\\f\\n\\r"`)).toMatchFormat(); + return expect( + rbs(`T: "escape sequences \\a\\b\\e\\f\\n\\r"`) + ).toMatchFormat(); }); test("maintains not escape sequences when using single quotes", () => { - expect(rbs(`T: 'escape sequences \\a\\b\\e\\f\\n\\r'`)).toMatchFormat(); + return expect( + rbs(`T: 'escape sequences \\a\\b\\e\\f\\n\\r'`) + ).toMatchFormat(); }); }); @@ -275,7 +279,7 @@ describe("rbs", () => { testCases("optional", (source) => `T: ${source}`); test("removes optional space before question mark", () => { - expect(rbs("T: :foo ?")).toChangeFormat("T: :foo?"); + return expect(rbs("T: :foo ?")).toChangeFormat("T: :foo?"); }); }); @@ -285,11 +289,11 @@ describe("rbs", () => { testCases("proc", (source) => `T: ${source}`); test("drops optional parentheses when there are no params", () => { - expect(rbs("T: ^() -> void")).toChangeFormat("T: ^-> void"); + return expect(rbs("T: ^() -> void")).toChangeFormat("T: ^-> void"); }); test("drops optional parentheses with block param when there are no params to the block", () => { - expect(rbs("T: ^{ () -> void } -> void")).toChangeFormat( + return expect(rbs("T: ^{ () -> void } -> void")).toChangeFormat( "T: ^{ -> void } -> void" ); }); @@ -302,11 +306,11 @@ describe("rbs", () => { if (platform() !== "win32" || atLeastVersion("3.0")) { describe("non-ASCII", () => { test("emoji", () => { - expect(rbs(`T: { "🌼" => Integer }`)).toMatchFormat(); + return expect(rbs(`T: { "🌼" => Integer }`)).toMatchFormat(); }); test("kanji", () => { - expect(rbs(`T: { "日本語" => Integer }`)).toMatchFormat(); + return expect(rbs(`T: { "日本語" => Integer }`)).toMatchFormat(); }); }); } diff --git a/test/js/ruby/comments.test.js b/test/js/ruby/comments.test.js index 789747a6..1dcea4a3 100644 --- a/test/js/ruby/comments.test.js +++ b/test/js/ruby/comments.test.js @@ -10,7 +10,7 @@ describe("comments", () => { a = 1 `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("at the end of the file", () => { @@ -21,7 +21,7 @@ describe("comments", () => { # the end of the file `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); const commentBlocks = [ @@ -46,7 +46,7 @@ describe("comments", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("as the first statement", () => { @@ -58,7 +58,7 @@ describe("comments", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("as the last statement", () => { @@ -70,7 +70,7 @@ describe("comments", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -91,7 +91,7 @@ describe("comments", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("case/when/end statements", () => { @@ -110,7 +110,7 @@ describe("comments", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("begin/rescue/ensure/end statements", () => { @@ -130,7 +130,7 @@ describe("comments", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); /* eslint-disable no-useless-escape */ @@ -146,21 +146,25 @@ describe("comments", () => { /_/ /_/ /_/ /____/ /_/ /_/ /_____/ /____/ /_/ /_/ `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); describe("inline", () => { test("basic", () => { - expect("foo # this is an inline comment").toMatchFormat(); + return expect("foo # this is an inline comment").toMatchFormat(); }); test("commands", () => { - expect(`command "foo" # this is an inline comment`).toMatchFormat(); + return expect( + `command "foo" # this is an inline comment` + ).toMatchFormat(); }); test("command calls", () => { - expect(`command.call "foo" # this is an inline comment`).toMatchFormat(); + return expect( + `command.call "foo" # this is an inline comment` + ).toMatchFormat(); }); }); @@ -176,7 +180,7 @@ describe("comments", () => { ] `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -192,7 +196,7 @@ describe("comments", () => { } `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -208,7 +212,7 @@ describe("comments", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -223,7 +227,7 @@ describe("comments", () => { .baz `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); describe("declaration style comments", () => { @@ -242,7 +246,7 @@ describe("comments", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -254,6 +258,6 @@ describe("comments", () => { ] `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/encoding.test.js b/test/js/ruby/encoding.test.js index e097d79a..1d6bb806 100644 --- a/test/js/ruby/encoding.test.js +++ b/test/js/ruby/encoding.test.js @@ -2,18 +2,18 @@ describe("encoding", () => { const header = "# -*- encoding: binary -*-"; test("comments", () => { - expect(`${header}\n# il était`).toMatchFormat(); + return expect(`${header}\n# il était`).toMatchFormat(); }); test("symbol literals", () => { - expect(`${header}\n:il_était`).toMatchFormat(); + return expect(`${header}\n:il_était`).toMatchFormat(); }); test("string literals", () => { - expect(`${header}\n"ひらがな"`).toMatchFormat(); + return expect(`${header}\n"ひらがな"`).toMatchFormat(); }); test("regexp literals", () => { - expect(`${header}\n/ひらがな/`).toMatchFormat(); + return expect(`${header}\n/ひらがな/`).toMatchFormat(); }); }); diff --git a/test/js/ruby/errors.test.js b/test/js/ruby/errors.test.js index f2655f6a..a5e99bbb 100644 --- a/test/js/ruby/errors.test.js +++ b/test/js/ruby/errors.test.js @@ -1,6 +1,6 @@ import { format } from "prettier"; -describe.skip("errors", () => { +describe("errors", () => { const cases = [ "alias $a $1", "self = 1", @@ -13,7 +13,12 @@ describe.skip("errors", () => { "<>" ]; - test.each(cases)("fails for %s", (content) => { - expect(() => format(content, { parser: "ruby", plugins: ["."] })).toThrow(); + test.each(cases)("fails for %s", async (content) => { + try { + await format(content, { parser: "ruby", plugins: ["."] }); + expect(true).toBe(false); + } catch (error) { + expect(error.loc).toBeDefined(); + } }); }); diff --git a/test/js/ruby/ignore.test.js b/test/js/ruby/ignore.test.js index 43578683..f1ce1f95 100644 --- a/test/js/ruby/ignore.test.js +++ b/test/js/ruby/ignore.test.js @@ -7,6 +7,6 @@ describe("ignore", () => { class Foo; def bar; 1+1+1; end; end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/layout.test.js b/test/js/ruby/layout.test.js index 8c1716a3..393d5e5d 100644 --- a/test/js/ruby/layout.test.js +++ b/test/js/ruby/layout.test.js @@ -2,19 +2,19 @@ import { ruby } from "../utils.js"; describe("layout", () => { test("turns multiple blank lines into just one blank line", () => { - expect("1\n\n\n\n\n2").toChangeFormat("1\n\n2"); + return expect("1\n\n\n\n\n2").toChangeFormat("1\n\n2"); }); test("turns semicolons into adjacent lines", () => { - expect("1; 2; 3").toChangeFormat("1\n2\n3"); + return expect("1; 2; 3").toChangeFormat("1\n2\n3"); }); test("maintains semicolons from within interpolation", () => { - expect(`"a#{b; c}"`).toMatchFormat(); + return expect(`"a#{b; c}"`).toMatchFormat(); }); test("handles multiple newlines at the end of the file", () => { - expect("foo\n\n\n").toChangeFormat("foo"); + return expect("foo\n\n\n").toChangeFormat("foo"); }); test("keeps comments in their place when nothing to attach to", () => { @@ -36,6 +36,6 @@ describe("layout", () => { # Comment `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/alias.test.js b/test/js/ruby/nodes/alias.test.js index 226cdfb2..df83939f 100644 --- a/test/js/ruby/nodes/alias.test.js +++ b/test/js/ruby/nodes/alias.test.js @@ -2,35 +2,35 @@ import { long, ruby } from "../../utils.js"; describe("alias", () => { test("bare word aliases", () => { - expect("alias foo bar").toMatchFormat(); + return expect("alias foo bar").toMatchFormat(); }); test("bare word operator aliases", () => { - expect("alias << push").toMatchFormat(); + return expect("alias << push").toMatchFormat(); }); test("bare word keyword aliases", () => { - expect("alias in within").toMatchFormat(); + return expect("alias in within").toMatchFormat(); }); test("bare word constant aliases", () => { - expect("alias in IN").toMatchFormat(); + return expect("alias in IN").toMatchFormat(); }); test("symbol aliases become bare word aliases", () => { - expect("alias :foo :bar").toChangeFormat("alias foo bar"); + return expect("alias :foo :bar").toChangeFormat("alias foo bar"); }); test("dynamic symbols do not get transformed (left)", () => { - expect(`alias :"foo" :bar`).toChangeFormat(`alias :"foo" bar`); + return expect(`alias :"foo" :bar`).toChangeFormat(`alias :"foo" bar`); }); test("dynamic symbols do not get transformed (right)", () => { - expect(`alias :foo :"bar"`).toChangeFormat(`alias foo :"bar"`); + return expect(`alias :foo :"bar"`).toChangeFormat(`alias foo :"bar"`); }); test("global aliases", () => { - expect("alias $foo $bar").toMatchFormat(); + return expect("alias $foo $bar").toMatchFormat(); }); test("handles long symbols", () => { @@ -39,11 +39,11 @@ describe("alias", () => { bar `); - expect(`alias ${long} bar`).toChangeFormat(expected); + return expect(`alias ${long} bar`).toChangeFormat(expected); }); test("handles comments on the right node", () => { - expect("alias foo bar # baz").toMatchFormat(); + return expect("alias foo bar # baz").toMatchFormat(); }); test("handles comments on the left node", () => { @@ -52,7 +52,7 @@ describe("alias", () => { bar `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("handles comments on both nodes", () => { @@ -61,6 +61,6 @@ describe("alias", () => { bar # bar `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/aref.test.js b/test/js/ruby/nodes/aref.test.js index 738d2e68..aa7d7cb4 100644 --- a/test/js/ruby/nodes/aref.test.js +++ b/test/js/ruby/nodes/aref.test.js @@ -2,23 +2,23 @@ import { ruby } from "../../utils.js"; describe("aref", () => { test("literal reference", () => { - expect("array[5]").toMatchFormat(); + return expect("array[5]").toMatchFormat(); }); test("dynamic reference", () => { - expect("array[idx]").toMatchFormat(); + return expect("array[idx]").toMatchFormat(); }); test("reference with comment", () => { - expect("array[idx] # foo").toMatchFormat(); + return expect("array[idx] # foo").toMatchFormat(); }); test("literal assignment", () => { - expect("array[5] = 6").toMatchFormat(); + return expect("array[5] = 6").toMatchFormat(); }); test("dynamic assignment", () => { - expect("array[idx] = 6").toMatchFormat(); + return expect("array[idx] = 6").toMatchFormat(); }); test("comments within assignment", () => { @@ -30,6 +30,6 @@ describe("aref", () => { ] `); - expect(contents).toMatchFormat(); + return expect(contents).toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/arrays.test.js b/test/js/ruby/nodes/arrays.test.js index 8e632912..e54d567f 100644 --- a/test/js/ruby/nodes/arrays.test.js +++ b/test/js/ruby/nodes/arrays.test.js @@ -2,63 +2,63 @@ import { long, ruby } from "../../utils.js"; describe("array", () => { test("empty arrays", () => { - expect("[]").toMatchFormat(); + return expect("[]").toMatchFormat(); }); test("basic formatting", () => { - expect("[1, 2, 3]").toMatchFormat(); + return expect("[1, 2, 3]").toMatchFormat(); }); test("does not transform single string arrays", () => { - expect(`["a"]`).toMatchFormat(); + return expect(`["a"]`).toMatchFormat(); }); test("does not transform single symbol arrays", () => { - expect("[:a]").toMatchFormat(); + return expect("[:a]").toMatchFormat(); }); test("transforms basic string arrays", () => { - expect(`["a", "b", "c", "d", "e"]`).toChangeFormat("%w[a b c d e]"); + return expect(`["a", "b", "c", "d", "e"]`).toChangeFormat("%w[a b c d e]"); }); test("does not transform string arrays with interpolation", () => { - expect(`["a", "#{b}", "c"]`).toMatchFormat(); + return expect(`["a", "#{b}", "c"]`).toMatchFormat(); }); test("does not transform string arrays with spaces", () => { - expect(`["a", "b c", "d", "e"]`).toMatchFormat(); + return expect(`["a", "b c", "d", "e"]`).toMatchFormat(); }); test("does not transform string arrays with tabs", () => { - expect(`["a", "b\\tc", "d", "e"]`).toMatchFormat(); + return expect(`["a", "b\\tc", "d", "e"]`).toMatchFormat(); }); test("does not transform string arrays with newlines", () => { - expect(`["a", "b\\nc", "d", "e"]`).toMatchFormat(); + return expect(`["a", "b\\nc", "d", "e"]`).toMatchFormat(); }); test("does not transform string arrays with carriage returns", () => { - expect(`["a", "b\\rc", "d", "e"]`).toMatchFormat(); + return expect(`["a", "b\\rc", "d", "e"]`).toMatchFormat(); }); test("does not transform string arrays with interpolation", () => { - expect(`["a", "b#{c}d", "e"]`).toMatchFormat(); + return expect(`["a", "b#{c}d", "e"]`).toMatchFormat(); }); test("does not transform string arrays with brackets", () => { - expect(`["a [] b", "c [] d"]`).toMatchFormat(); + return expect(`["a [] b", "c [] d"]`).toMatchFormat(); }); test("transforms basic symbol arrays", () => { - expect("[:a, :b, :c]").toChangeFormat("%i[a b c]"); + return expect("[:a, :b, :c]").toChangeFormat("%i[a b c]"); }); test("does not transform symbol arrays with dynamic symbols", () => { - expect(`[:"a + b"]`).toMatchFormat(); + return expect(`[:"a + b"]`).toMatchFormat(); }); test("handles splats", () => { - expect("[1, 2, *[3, 4], 5, 6]").toMatchFormat(); + return expect("[1, 2, *[3, 4], 5, 6]").toMatchFormat(); }); test("breaks appropriately", () => { @@ -74,11 +74,11 @@ describe("array", () => { ] `); - expect(contents).toMatchFormat(); + return expect(contents).toMatchFormat(); }); test("breaking maintains calls on the end", () => { - expect(`[${long}].freeze`).toChangeFormat(`[\n ${long}\n].freeze`); + return expect(`[${long}].freeze`).toChangeFormat(`[\n ${long}\n].freeze`); }); describe("heredocs", () => { @@ -89,7 +89,7 @@ describe("array", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("as the last value", () => { @@ -99,7 +99,7 @@ describe("array", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with splats in the array", () => { @@ -109,7 +109,7 @@ describe("array", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -119,7 +119,7 @@ describe("array", () => { [] `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with leading comments and comments in the body", () => { @@ -131,7 +131,7 @@ describe("array", () => { ] `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with comments just in the body", () => { @@ -142,7 +142,7 @@ describe("array", () => { ] `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with comments just outside but attached", () => { @@ -152,7 +152,7 @@ describe("array", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test.each(["%w", "%W", "%i", "%I"])("%s special array literals", (start) => diff --git a/test/js/ruby/nodes/assign.test.js b/test/js/ruby/nodes/assign.test.js index 032cf7a3..f8a1254e 100644 --- a/test/js/ruby/nodes/assign.test.js +++ b/test/js/ruby/nodes/assign.test.js @@ -3,7 +3,7 @@ import { long, ruby } from "../../utils.js"; describe("assign", () => { describe("single assignment", () => { test("basic", () => { - expect("a = 1").toMatchFormat(); + return expect("a = 1").toMatchFormat(); }); test("multiline", () => { @@ -14,11 +14,11 @@ describe("assign", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("other operator", () => { - expect("a ||= b").toMatchFormat(); + return expect("a ||= b").toMatchFormat(); }); }); @@ -29,16 +29,16 @@ describe("assign", () => { TEXT `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); describe("breaking", () => { test("inline becomes multi line", () => { - expect(`${long} = ${long}`).toChangeFormat(`${long} =\n ${long}`); + return expect(`${long} = ${long}`).toChangeFormat(`${long} =\n ${long}`); }); test("arrays don't get force indented", () => { - expect(`a = [${long}, ${long}, ${long}]`).toChangeFormat( + return expect(`a = [${long}, ${long}, ${long}]`).toChangeFormat( ruby(` a = [ ${long}, @@ -50,7 +50,9 @@ describe("assign", () => { }); test("hashes don't get force indented", () => { - expect(`a = { a: ${long}, b: ${long}, c: ${long} }`).toChangeFormat( + return expect( + `a = { a: ${long}, b: ${long}, c: ${long} }` + ).toChangeFormat( ruby(` a = { a: @@ -68,7 +70,7 @@ describe("assign", () => { const cases = ["w", "W", "i", "I"]; test.each(cases)("x = %s[...] is not force-indented", (literal) => { - expect(`a = %${literal}[${long} ${long}]`).toChangeFormat( + return expect(`a = %${literal}[${long} ${long}]`).toChangeFormat( ruby(` a = %${literal}[ ${long} @@ -80,7 +82,7 @@ describe("assign", () => { }); test("chained methods on array literals don't get oddly indented", () => { - expect(`a = [${long}].freeze`).toChangeFormat( + return expect(`a = [${long}].freeze`).toChangeFormat( ruby(` a = [ ${long} @@ -90,7 +92,7 @@ describe("assign", () => { }); test("chained methods on hash literals don't get oddly indented", () => { - expect(`a = { a: ${long} }.freeze`).toChangeFormat( + return expect(`a = { a: ${long} }.freeze`).toChangeFormat( ruby(` a = { a: @@ -105,7 +107,7 @@ describe("assign", () => { const operators = ["||", "&&", "+", "*", "%", "**", "<<"]; test.each(operators)("array %s= [...] is not force-indented", (op) => { - expect(`a ${op}= [${long}, ${long}, ${long}]`).toChangeFormat( + return expect(`a ${op}= [${long}, ${long}, ${long}]`).toChangeFormat( ruby(` a ${op}= [ ${long}, @@ -117,7 +119,7 @@ describe("assign", () => { }); test.each(operators)("hash %s= { ... } is not force-indented", (op) => { - expect( + return expect( `a ${op}= { a: ${long}, b: ${long}, c: ${long} }` ).toChangeFormat( ruby(` @@ -137,11 +139,11 @@ describe("assign", () => { describe("constants", () => { test("assigning to constant", () => { - expect(`Pret::TIER = "config"`).toMatchFormat(); + return expect(`Pret::TIER = "config"`).toMatchFormat(); }); test("assigning to top level constants", () => { - expect(`::PRETTIER = "config"`).toMatchFormat(); + return expect(`::PRETTIER = "config"`).toMatchFormat(); }); }); }); diff --git a/test/js/ruby/nodes/binary.test.js b/test/js/ruby/nodes/binary.test.js index 6589b508..2ce05d6a 100644 --- a/test/js/ruby/nodes/binary.test.js +++ b/test/js/ruby/nodes/binary.test.js @@ -2,11 +2,11 @@ import { long, ruby } from "../../utils.js"; describe("binary", () => { test("single line", () => { - expect("foo && bar && baz").toMatchFormat(); + return expect("foo && bar && baz").toMatchFormat(); }); test("multi line", () => { - expect(`${long} && ${long} && ${long}`).toChangeFormat( + return expect(`${long} && ${long} && ${long}`).toChangeFormat( `${long} &&\n ${long} &&\n ${long}` ); }); @@ -19,7 +19,7 @@ describe("binary", () => { ] `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("with heredoc and comment", () => { @@ -29,10 +29,10 @@ describe("binary", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("no spaces for **", () => { - expect("a**b").toMatchFormat(); + return expect("a**b").toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/blocks.test.js b/test/js/ruby/nodes/blocks.test.js index 151d7c4f..9eec551a 100644 --- a/test/js/ruby/nodes/blocks.test.js +++ b/test/js/ruby/nodes/blocks.test.js @@ -2,43 +2,43 @@ import { long, ruby } from "../../utils.js"; describe("blocks", () => { test("empty", () => { - expect("loop {}").toMatchFormat(); + return expect("loop {}").toMatchFormat(); }); test("single line non-breaking", () => { - expect("loop { 1 }").toMatchFormat(); + return expect("loop { 1 }").toMatchFormat(); }); test("single line breaking", () => { - expect(`loop { ${long} }`).toChangeFormat(`loop do\n ${long}\nend`); + return expect(`loop { ${long} }`).toChangeFormat(`loop do\n ${long}\nend`); }); test("multi line non-breaking", () => { - expect("loop do\n 1\nend").toChangeFormat("loop { 1 }"); + return expect("loop do\n 1\nend").toChangeFormat("loop { 1 }"); }); test("multi-line breaking", () => { - expect(`loop do\n ${long}\nend`).toMatchFormat(); + return expect(`loop do\n ${long}\nend`).toMatchFormat(); }); test("multi-line with comment", () => { - expect("loop do\n # foobar\nend").toMatchFormat(); + return expect("loop do\n # foobar\nend").toMatchFormat(); }); test("multi-line on command, no body", () => { - expect(`command "foobar" do\nend`).toMatchFormat(); + return expect(`command "foobar" do\nend`).toMatchFormat(); }); test("multi-line on command call, no body", () => { - expect(`command.call "foobar" do\nend`).toMatchFormat(); + return expect(`command.call "foobar" do\nend`).toMatchFormat(); }); test("multi-line on command, with body", () => { - expect(`command "foobar" do\n foo\nend`).toMatchFormat(); + return expect(`command "foobar" do\n foo\nend`).toMatchFormat(); }); test("multi-line on command call, with body", () => { - expect(`command.call "foobar" do\n foo\nend`).toMatchFormat(); + return expect(`command.call "foobar" do\n foo\nend`).toMatchFormat(); }); test("blocks nested inside commands use braces", () => { @@ -48,7 +48,7 @@ describe("blocks", () => { }.bar `); - expect(`foo ${long} { ${long} }.bar`).toChangeFormat(expected); + return expect(`foo ${long} { ${long} }.bar`).toChangeFormat(expected); }); test("breaking maintains calls on the end", () => { @@ -68,7 +68,7 @@ describe("blocks", () => { .to_i `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("doesn't do weird things with comments", () => { @@ -80,7 +80,7 @@ describe("blocks", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); describe("for loops", () => { @@ -91,7 +91,7 @@ describe("blocks", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multiple variables", () => { @@ -101,7 +101,7 @@ describe("blocks", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("optional do keyword", () => { @@ -123,13 +123,13 @@ describe("blocks", () => { end `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); }); // from ruby test/ruby/test_call.rb test("inline do end", () => { - expect(`assert_nil(("a".sub! "b" do end&.foo {}))`).toChangeFormat( + return expect(`assert_nil(("a".sub! "b" do end&.foo {}))`).toChangeFormat( ruby(` assert_nil( ( @@ -143,50 +143,50 @@ describe("blocks", () => { }); test("excessed_comma nodes", () => { - expect("proc { |x,| }").toMatchFormat(); + return expect("proc { |x,| }").toMatchFormat(); }); describe("args", () => { test("no body", () => { - expect("loop { |i| }").toMatchFormat(); + return expect("loop { |i| }").toMatchFormat(); }); test("single line non-breaking", () => { - expect("loop { |i| 1 }").toMatchFormat(); + return expect("loop { |i| 1 }").toMatchFormat(); }); test("single line breaking", () => { - expect(`loop { |i| ${long} }`).toChangeFormat( + return expect(`loop { |i| ${long} }`).toChangeFormat( `loop do |i|\n ${long}\nend` ); }); test("multi-line non-breaking", () => { - expect("loop do |i|\n i\nend").toChangeFormat("loop { |i| i }"); + return expect("loop do |i|\n i\nend").toChangeFormat("loop { |i| i }"); }); test("multi-line breaking", () => { - expect(`loop do |i|\n ${long}\nend`).toMatchFormat(); + return expect(`loop do |i|\n ${long}\nend`).toMatchFormat(); }); test("block-local args", () => { - expect("loop { |i; j| 1 }").toMatchFormat(); + return expect("loop { |i; j| 1 }").toMatchFormat(); }); test("splat", () => { - expect("loop { |*| i }").toMatchFormat(); + return expect("loop { |*| i }").toMatchFormat(); }); test("destructure", () => { - expect("loop { |(a, b)| i }").toMatchFormat(); + return expect("loop { |(a, b)| i }").toMatchFormat(); }); test("lots of args types", () => { - expect("loop { |a, (b, c), d, *e| i }").toMatchFormat(); + return expect("loop { |a, (b, c), d, *e| i }").toMatchFormat(); }); test("does not split up args inside pipes", () => { - expect(`loop do |${long} = 1, a${long} = 2|\nend`).toMatchFormat(); + return expect(`loop do |${long} = 1, a${long} = 2|\nend`).toMatchFormat(); }); }); @@ -198,7 +198,7 @@ describe("blocks", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); // https://github.com/prettier/plugin-ruby/issues/1042 @@ -209,6 +209,6 @@ describe("blocks", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/break.test.js b/test/js/ruby/nodes/break.test.js index 14816781..10ba00f9 100644 --- a/test/js/ruby/nodes/break.test.js +++ b/test/js/ruby/nodes/break.test.js @@ -2,19 +2,19 @@ import { ruby } from "../../utils.js"; describe("break", () => { test("empty break", () => { - expect("break").toMatchFormat(); + return expect("break").toMatchFormat(); }); test("break with one argument, no parens", () => { - expect("break 1").toMatchFormat(); + return expect("break 1").toMatchFormat(); }); test("break with parens drops parens", () => { - expect("break(1)").toChangeFormat("break 1"); + return expect("break(1)").toChangeFormat("break 1"); }); test("break with multiple arguments", () => { - expect("break 1, 2, 3").toMatchFormat(); + return expect("break 1, 2, 3").toMatchFormat(); }); test("keeps parens for multiple statements", () => { @@ -25,14 +25,14 @@ describe("break", () => { ) `); - expect("break(a = 1; a == 1)").toChangeFormat(expected); + return expect("break(a = 1; a == 1)").toChangeFormat(expected); }); test("keeps parens for _mod nodes", () => { - expect("break(1 if true)").toMatchFormat(); + return expect("break(1 if true)").toMatchFormat(); }); test("works with comments", () => { - expect("break # foo").toMatchFormat(); + return expect("break # foo").toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/calls.test.js b/test/js/ruby/nodes/calls.test.js index a7a89343..1b57328e 100644 --- a/test/js/ruby/nodes/calls.test.js +++ b/test/js/ruby/nodes/calls.test.js @@ -4,11 +4,11 @@ describe("calls", () => { test("simple calls", () => { const content = `posts.active.where("created_at > ?", 1.year.ago)`; - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("short chains", () => { - expect("foo.bar.baz qux").toMatchFormat(); + return expect("foo.bar.baz qux").toMatchFormat(); }); test("chain methods", () => { @@ -27,7 +27,7 @@ describe("calls", () => { .hhhhhhhhhh `); - expect(before).toChangeFormat(after); + return expect(before).toChangeFormat(after); }); test("chains of methods with one with arguments right at the top", () => { @@ -38,7 +38,7 @@ describe("calls", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("chains of methods with a block right at the top", () => { @@ -49,13 +49,13 @@ describe("calls", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("tons of calls that fit on one line", () => { const content = "a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z"; - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("chains which contain a .where.not", () => { @@ -68,7 +68,7 @@ describe("calls", () => { .limit(10) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); describe("within sig blocks", () => { @@ -81,7 +81,7 @@ describe("calls", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("chains with other methods", () => { @@ -93,7 +93,7 @@ describe("calls", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -110,31 +110,31 @@ describe("calls", () => { .select_all(:table1) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("no explicit call doesn't add call", () => { - expect("a.(1, 2, 3)").toMatchFormat(); + return expect("a.(1, 2, 3)").toMatchFormat(); }); test("explicit call maintains call", () => { - expect("a.call(1, 2, 3)").toMatchFormat(); + return expect("a.call(1, 2, 3)").toMatchFormat(); }); test("double bang with a special operator on a call", () => { - expect("!!object&.topic_list").toMatchFormat(); + return expect("!!object&.topic_list").toMatchFormat(); }); test("bang with a special operator on a command_call", () => { - expect(`!domain&.include? "@"`).toMatchFormat(); + return expect(`!domain&.include? "@"`).toMatchFormat(); }); test("#call shorthand does not eliminate empty parentheses", () => { - expect("Foo.new.()").toMatchFormat(); + return expect("Foo.new.()").toMatchFormat(); }); test("methods that look like constants do not eliminate empty parens", () => { - expect("Foo()").toMatchFormat(); + return expect("Foo()").toMatchFormat(); }); test("call chains with no indent on the first receiver", () => { @@ -149,7 +149,7 @@ describe("calls", () => { ].map(&:foo?).bbb.ccc `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("chained method_add_arg after a block", () => { @@ -158,7 +158,7 @@ describe("calls", () => { end.d e, f `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("comments in a method chain get printed correctly", () => { @@ -201,6 +201,6 @@ describe("calls", () => { end `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); }); diff --git a/test/js/ruby/nodes/case.test.js b/test/js/ruby/nodes/case.test.js index 5c2c4b19..f6efaa5d 100644 --- a/test/js/ruby/nodes/case.test.js +++ b/test/js/ruby/nodes/case.test.js @@ -9,7 +9,7 @@ describe("case", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("single when", () => { @@ -20,7 +20,7 @@ describe("case", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multiple predicates, one when", () => { @@ -31,7 +31,7 @@ describe("case", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("breaking with multiple predicates, one when", () => { @@ -44,7 +44,7 @@ describe("case", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("breaking with multiple predicates, each one not too long", () => { @@ -63,7 +63,7 @@ describe("case", () => { end `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("multiple consecutive whens", () => { @@ -75,7 +75,7 @@ describe("case", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("basic multiple branches", () => { @@ -88,7 +88,7 @@ describe("case", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("else clauses", () => { @@ -101,6 +101,6 @@ describe("case", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/class.test.js b/test/js/ruby/nodes/class.test.js index 81c4be6e..ba917ba9 100644 --- a/test/js/ruby/nodes/class.test.js +++ b/test/js/ruby/nodes/class.test.js @@ -14,7 +14,7 @@ describe("class", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("inheritance", () => { @@ -25,15 +25,17 @@ describe("class", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("breaking class name", () => { - expect(`class P${long}; end`).toChangeFormat(`class P${long}\nend`); + return expect(`class P${long}; end`).toChangeFormat(`class P${long}\nend`); }); test("breaking module name", () => { - expect(`module P${long}; end`).toChangeFormat(`module P${long}\nend`); + return expect(`module P${long}; end`).toChangeFormat( + `module P${long}\nend` + ); }); test("class push blocks", () => { @@ -44,7 +46,7 @@ describe("class", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multiple access controls", () => { @@ -70,7 +72,7 @@ describe("class", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("method helper", () => { @@ -82,7 +84,7 @@ describe("class", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); describe.each(["public", "protected", "private"])( @@ -99,7 +101,7 @@ describe("class", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("inline", () => { @@ -111,18 +113,18 @@ describe("class", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); } ); describe("constant reference", () => { test("regular", () => { - expect("Pret::Tier::Ruby").toMatchFormat(); + return expect("Pret::Tier::Ruby").toMatchFormat(); }); test("top-level", () => { - expect("::Pret::Tier::Ruby").toMatchFormat(); + return expect("::Pret::Tier::Ruby").toMatchFormat(); }); }); }); diff --git a/test/js/ruby/nodes/conditionals.test.js b/test/js/ruby/nodes/conditionals.test.js index 1f6af635..dc8db071 100644 --- a/test/js/ruby/nodes/conditionals.test.js +++ b/test/js/ruby/nodes/conditionals.test.js @@ -4,11 +4,11 @@ describe("conditionals", () => { describe("not operator", () => { // from ruby test/ruby/test_not.rb test("not operator, empty parens", () => { - expect("assert_equal(true, (not ()))").toMatchFormat(); + return expect("assert_equal(true, (not ()))").toMatchFormat(); }); test("not operator from within a ternary adds parens", () => { - expect("a ? not(b) : c").toMatchFormat(); + return expect("a ? not(b) : c").toMatchFormat(); }); test("not operator from within an if/else adds parens", () => { @@ -20,7 +20,7 @@ describe("conditionals", () => { end `); - expect(content).toChangeFormat("a ? not(b) : c"); + return expect(content).toChangeFormat("a ? not(b) : c"); }); }); @@ -33,7 +33,7 @@ describe("conditionals", () => { "${long}" ${keyword} text `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("when modifying an abbreviated assignment expression", () => { @@ -43,7 +43,7 @@ describe("conditionals", () => { "${long}" ${keyword} text `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("when modifying an expression with an assignment descendant", () => { @@ -56,7 +56,7 @@ describe("conditionals", () => { ) ${keyword} text `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); }); @@ -72,7 +72,7 @@ describe("conditionals", () => { end `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("does not insert double modifiers on a single line for nested conditionals", () => { @@ -89,32 +89,34 @@ describe("conditionals", () => { end `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); }); describe("when inline allowed", () => { describe.each(["if", "unless"])("%s keyword", (keyword) => { test("inline stays", () => { - expect(`1 ${keyword} a`).toMatchFormat(); + return expect(`1 ${keyword} a`).toMatchFormat(); }); test("multi line changes", () => { - expect(`${keyword} a\n 1\nend`).toChangeFormat(`1 ${keyword} a`); + return expect(`${keyword} a\n 1\nend`).toChangeFormat( + `1 ${keyword} a` + ); }); test("inline breaking changes", () => { - expect(`${long} ${keyword} ${long}`).toChangeFormat( + return expect(`${long} ${keyword} ${long}`).toChangeFormat( `${keyword} ${long}\n ${long}\nend` ); }); test("multi line breaking stays", () => { - expect(`${keyword} ${long}\n ${long}\nend`).toMatchFormat(); + return expect(`${keyword} ${long}\n ${long}\nend`).toMatchFormat(); }); test("not operator", () => { - expect(`b ${keyword} not a`).toMatchFormat(); + return expect(`b ${keyword} not a`).toMatchFormat(); }); test("empty first body", () => { @@ -123,7 +125,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("empty first body with present second body", () => { @@ -134,7 +136,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("comment in body", () => { @@ -144,7 +146,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("comment in body with question mark method", () => { @@ -154,7 +156,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("comment on node in body", () => { @@ -164,7 +166,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("breaks if the predicate is an assignment", () => { @@ -176,7 +178,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("breaks if the predicate is an op assignment", () => { @@ -188,11 +190,11 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("align long predicates", () => { - expect(`foo ${keyword} ${long} || ${long}a`).toChangeFormat( + return expect(`foo ${keyword} ${long} || ${long}a`).toChangeFormat( ruby(` ${keyword} ${long} || ${Array(keyword.length).fill("").join(" ")}${long}a @@ -203,9 +205,9 @@ describe("conditionals", () => { }); test("wraps single lines in parens when assigning", () => { - expect(`hash[:key] = ${keyword} false then :value end`).toChangeFormat( - `hash[:key] = (:value ${keyword} false)` - ); + return expect( + `hash[:key] = ${keyword} false then :value end` + ).toChangeFormat(`hash[:key] = (:value ${keyword} false)`); }); test("wraps inline version with calls", () => { @@ -215,7 +217,7 @@ describe("conditionals", () => { end.to_s `); - expect(content).toChangeFormat("(false if true).to_s"); + return expect(content).toChangeFormat("(false if true).to_s"); }); test("wraps inline version within binary", () => { @@ -225,18 +227,18 @@ describe("conditionals", () => { end || baz `); - expect(content).toChangeFormat("(bar if foo) || baz"); + return expect(content).toChangeFormat("(bar if foo) || baz"); }); }); }); describe("ternaries", () => { test("non-breaking", () => { - expect("a ? 1 : 2").toMatchFormat(); + return expect("a ? 1 : 2").toMatchFormat(); }); test("breaking", () => { - expect(`a ? ${long} : ${long}`).toChangeFormat( + return expect(`a ? ${long} : ${long}`).toChangeFormat( ruby(` if a ${long} @@ -256,7 +258,7 @@ describe("conditionals", () => { end `); - expect(content).toChangeFormat("a ? 1 : 2"); + return expect(content).toChangeFormat("a ? 1 : 2"); }); test("transform for unless/else", () => { @@ -268,7 +270,7 @@ describe("conditionals", () => { end `); - expect(content).toChangeFormat("a ? 2 : 1"); + return expect(content).toChangeFormat("a ? 2 : 1"); }); test("adds parens if inside of a call", () => { @@ -280,7 +282,7 @@ describe("conditionals", () => { end.to_s `); - expect(content).toChangeFormat("(a ? 1 : 2).to_s"); + return expect(content).toChangeFormat("(a ? 1 : 2).to_s"); }); test("does not add parens if it breaks", () => { @@ -292,7 +294,7 @@ describe("conditionals", () => { end.to_s `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("adds parens if inside of a binary", () => { @@ -304,7 +306,7 @@ describe("conditionals", () => { end + 1 `); - expect(content).toChangeFormat("(a ? 1 : 2) + 1"); + return expect(content).toChangeFormat("(a ? 1 : 2) + 1"); }); test("adds parens if within a command", () => { @@ -319,11 +321,11 @@ describe("conditionals", () => { ) `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("does not add parens if within a command_call non-breaking", () => { - expect("foo.bar baz ? foo : bar").toMatchFormat(); + return expect("foo.bar baz ? foo : bar").toMatchFormat(); }); test("adds parens if within a command_call", () => { @@ -338,7 +340,7 @@ describe("conditionals", () => { ) `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); describe("unable to transform", () => { @@ -351,7 +353,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("command in if body", () => { @@ -363,7 +365,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("command in else body", () => { @@ -375,7 +377,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("command call in if body", () => { @@ -387,7 +389,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("command call in else body", () => { @@ -399,7 +401,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("heredoc in if body", () => { @@ -414,7 +416,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("heredoc in else body", () => { @@ -429,7 +431,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("nested conditional in if body", () => { @@ -453,7 +455,7 @@ describe("conditionals", () => { end `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("nested conditional in else body", () => { @@ -476,7 +478,7 @@ describe("conditionals", () => { end `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("nested ternary in if body", () => { @@ -486,7 +488,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("nested ternary in else body", () => { @@ -498,7 +500,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("command with argument predicate", () => { @@ -510,7 +512,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("command call with argument predicate", () => { @@ -522,11 +524,11 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("align long predicates", () => { - expect(`${long} || ${long}a ? foo : bar`).toChangeFormat( + return expect(`${long} || ${long}a ? foo : bar`).toChangeFormat( ruby(` if ${long} || ${long}a @@ -547,7 +549,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("assign nodes in predicate", () => { @@ -559,7 +561,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("opassign nodes in predicate", () => { @@ -571,7 +573,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("cannot transform with multiple statements", () => { @@ -584,7 +586,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); }); @@ -599,7 +601,7 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multiple clauses", () => { @@ -615,37 +617,37 @@ describe("conditionals", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); describe.each(["if", "unless"])("add parens when necessary %s", (keyword) => { test("args", () => { - expect(`[${keyword} foo? then bar end]`).toChangeFormat( + return expect(`[${keyword} foo? then bar end]`).toChangeFormat( `[(bar ${keyword} foo?)]` ); }); test("assign", () => { - expect(`foo = ${keyword} bar? then baz end`).toChangeFormat( + return expect(`foo = ${keyword} bar? then baz end`).toChangeFormat( `foo = (baz ${keyword} bar?)` ); }); test("assoc", () => { - expect(`{ foo: ${keyword} bar? then baz end }`).toChangeFormat( + return expect(`{ foo: ${keyword} bar? then baz end }`).toChangeFormat( `{ foo: (baz ${keyword} bar?) }` ); }); test("massign", () => { - expect(`f, o, o = ${keyword} bar? then baz end`).toChangeFormat( + return expect(`f, o, o = ${keyword} bar? then baz end`).toChangeFormat( `f, o, o = (baz ${keyword} bar?)` ); }); test("opassign", () => { - expect(`foo ||= ${keyword} bar? then baz end`).toChangeFormat( + return expect(`foo ||= ${keyword} bar? then baz end`).toChangeFormat( `foo ||= (baz ${keyword} bar?)` ); }); @@ -658,7 +660,7 @@ describe("conditionals", () => { puts "admin: #{name}" ${keyword} user in { role: "admin", name: } `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); } }); diff --git a/test/js/ruby/nodes/defined.test.js b/test/js/ruby/nodes/defined.test.js index 5a7154f9..3faf4b8b 100644 --- a/test/js/ruby/nodes/defined.test.js +++ b/test/js/ruby/nodes/defined.test.js @@ -2,26 +2,28 @@ import { long } from "../../utils.js"; describe("defined", () => { test("no parens", () => { - expect("defined? a").toChangeFormat("defined?(a)"); + return expect("defined? a").toChangeFormat("defined?(a)"); }); test("parens", () => { - expect("defined?(a)").toMatchFormat(); + return expect("defined?(a)").toMatchFormat(); }); test("breaks on long identifier, no parens", () => { - expect(`defined? ${long}`).toChangeFormat(`defined?(\n ${long}\n)`); + return expect(`defined? ${long}`).toChangeFormat(`defined?(\n ${long}\n)`); }); test("breaks on long identifier, with parens", () => { - expect(`defined?(${long})`).toChangeFormat(`defined?(\n ${long}\n)`); + return expect(`defined?(${long})`).toChangeFormat( + `defined?(\n ${long}\n)` + ); }); test("breaking keeps breaking", () => { - expect(`defined?(\n ${long}\n)`).toMatchFormat(); + return expect(`defined?(\n ${long}\n)`).toMatchFormat(); }); test("unnecessary breaking reverts to inline", () => { - expect("defined?(\n a\n)").toChangeFormat("defined?(a)"); + return expect("defined?(\n a\n)").toChangeFormat("defined?(a)"); }); }); diff --git a/test/js/ruby/nodes/embdoc.test.js b/test/js/ruby/nodes/embdoc.test.js index b531f650..9d3e1d2a 100644 --- a/test/js/ruby/nodes/embdoc.test.js +++ b/test/js/ruby/nodes/embdoc.test.js @@ -14,7 +14,7 @@ describe("embdoc", () => { =end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("within a class", () => { @@ -26,7 +26,7 @@ describe("embdoc", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("within a nested class", () => { @@ -40,6 +40,6 @@ describe("embdoc", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/field.test.js b/test/js/ruby/nodes/field.test.js index daabe636..2492c093 100644 --- a/test/js/ruby/nodes/field.test.js +++ b/test/js/ruby/nodes/field.test.js @@ -1,13 +1,13 @@ describe("field", () => { test("basic", () => { - expect("foo.x = 1").toMatchFormat(); + return expect("foo.x = 1").toMatchFormat(); }); test("replaces :: with .", () => { - expect("foo::x = 1").toChangeFormat("foo.x = 1"); + return expect("foo::x = 1").toChangeFormat("foo.x = 1"); }); test("with lonely operator", () => { - expect("foo&.x = 1").toMatchFormat(); + return expect("foo&.x = 1").toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/hashes.test.js b/test/js/ruby/nodes/hashes.test.js index 4cf71034..a9ecdc85 100644 --- a/test/js/ruby/nodes/hashes.test.js +++ b/test/js/ruby/nodes/hashes.test.js @@ -2,7 +2,7 @@ import { long, ruby } from "../../utils.js"; describe("hash", () => { test("empty", () => { - expect("{}").toMatchFormat(); + return expect("{}").toMatchFormat(); }); test("empty with comments", () => { @@ -13,7 +13,7 @@ describe("hash", () => { } `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("breaking", () => { @@ -28,11 +28,11 @@ describe("hash", () => { } `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("breaking maintains calls on the end", () => { - expect(`{ a: ${long} }.freeze`).toChangeFormat( + return expect(`{ a: ${long} }.freeze`).toChangeFormat( `{\n a:\n ${long}\n}.freeze` ); }); @@ -45,7 +45,7 @@ describe("hash", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("as the last value", () => { @@ -55,7 +55,7 @@ describe("hash", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("when exceeding line length", () => { @@ -75,31 +75,31 @@ describe("hash", () => { } `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); }); describe("dynamic string keys", () => { test("basic", () => { - expect(`{ "foo": "bar" }`).toChangeFormat(`{ foo: "bar" }`); + return expect(`{ "foo": "bar" }`).toChangeFormat(`{ foo: "bar" }`); }); test("with interpolation", () => { - expect(`{ "#{1 + 1}": 2 }`).toMatchFormat(); + return expect(`{ "#{1 + 1}": 2 }`).toMatchFormat(); }); }); describe("bare assoc hash", () => { test("commands", () => { - expect("foobar alpha: alpha, beta: beta").toMatchFormat(); + return expect("foobar alpha: alpha, beta: beta").toMatchFormat(); }); test("command calls", () => { - expect("foo.bar alpha: alpha, beta: beta").toMatchFormat(); + return expect("foo.bar alpha: alpha, beta: beta").toMatchFormat(); }); test("calls", () => { - expect("foobar(alpha: alpha, beta: beta)").toMatchFormat(); + return expect("foobar(alpha: alpha, beta: beta)").toMatchFormat(); }); test("breaks contents and parens together", () => { @@ -114,40 +114,42 @@ describe("hash", () => { ) `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); }); describe("when hash labels allowed", () => { test("hash labels stay", () => { - expect(`{ a: "a", b: "b", c: "c" }`).toMatchFormat(); + return expect(`{ a: "a", b: "b", c: "c" }`).toMatchFormat(); }); test("hash rockets get replaced", () => { - expect(`{ :a => "a", :b => "b", :c => "c" }`).toChangeFormat( + return expect(`{ :a => "a", :b => "b", :c => "c" }`).toChangeFormat( `{ a: "a", b: "b", c: "c" }` ); }); test("hash rockets stay when needed", () => { - expect("{ Foo => 1, Bar => 2 }").toMatchFormat(); + return expect("{ Foo => 1, Bar => 2 }").toMatchFormat(); }); test("ending in equals stays", () => { - expect(`{ :foo= => "bar" }`).toMatchFormat(); + return expect(`{ :foo= => "bar" }`).toMatchFormat(); }); test("starting with non-letter/non-underscore stays", () => { - expect(`{ :@foo => "bar" }`).toMatchFormat(); + return expect(`{ :@foo => "bar" }`).toMatchFormat(); }); test("starting with underscore converts", () => { - expect(`{ :_foo => "bar" }`).toChangeFormat(`{ _foo: "bar" }`); + return expect(`{ :_foo => "bar" }`).toChangeFormat(`{ _foo: "bar" }`); }); }); test("prints hashes with consistent keys", () => { - expect(`{ a: "a", b => "b" }`).toChangeFormat(`{ :a => "a", b => "b" }`); + return expect(`{ a: "a", b => "b" }`).toChangeFormat( + `{ :a => "a", b => "b" }` + ); }); test("print hashes with correct braces when contents fits", () => { @@ -158,7 +160,7 @@ describe("hash", () => { } `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with leading comments but none in body", () => { @@ -167,7 +169,7 @@ describe("hash", () => { {} `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with leading comments and comments in the body", () => { @@ -179,7 +181,7 @@ describe("hash", () => { } `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with comments just in the body", () => { @@ -190,7 +192,7 @@ describe("hash", () => { } `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); // https://github.com/prettier/plugin-ruby/issues/758 @@ -209,7 +211,7 @@ describe("hash", () => { } `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("child hashes break assoc_news if their parents break", () => { @@ -227,7 +229,7 @@ describe("hash", () => { } `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("child hashes break hashes if their parents break", () => { @@ -250,6 +252,6 @@ describe("hash", () => { } `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); }); diff --git a/test/js/ruby/nodes/heredocs.test.js b/test/js/ruby/nodes/heredocs.test.js index 1a1a92c1..77e5e8fb 100644 --- a/test/js/ruby/nodes/heredocs.test.js +++ b/test/js/ruby/nodes/heredocs.test.js @@ -9,7 +9,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with interpolation", () => { @@ -21,7 +21,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on an assignment", () => { @@ -31,7 +31,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("nested within another", () => { @@ -44,7 +44,7 @@ describe("heredocs", () => { PARENT `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with embedded expressions", () => { @@ -58,7 +58,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with a call and indented", () => { @@ -70,7 +70,7 @@ describe("heredocs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -82,7 +82,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with interpolation", () => { @@ -94,7 +94,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on an assignment", () => { @@ -104,7 +104,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("nested within another", () => { @@ -117,7 +117,7 @@ describe("heredocs", () => { PARENT `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with a call and indented", () => { @@ -129,7 +129,7 @@ describe("heredocs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -141,7 +141,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on calls with multiple", () => { @@ -153,7 +153,7 @@ describe("heredocs", () => { THERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on commands", () => { @@ -163,7 +163,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on commands with multiple", () => { @@ -175,7 +175,7 @@ describe("heredocs", () => { THERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on command calls", () => { @@ -185,7 +185,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on command calls with multiple", () => { @@ -197,7 +197,7 @@ describe("heredocs", () => { THERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -209,7 +209,7 @@ describe("heredocs", () => { TEXT `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("squiggly indent", () => { @@ -219,7 +219,7 @@ describe("heredocs", () => { TEXT `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("straight no indent", () => { @@ -229,7 +229,7 @@ describe("heredocs", () => { TEXT `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -244,7 +244,7 @@ describe("heredocs", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("arg w/ block", () => { @@ -261,7 +261,7 @@ describe("heredocs", () => { TEXT `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("in an activerecord scope arg w/ chaining", () => { @@ -284,7 +284,7 @@ describe("heredocs", () => { EOS `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("long breakable arg after heredoc literal", () => { @@ -303,7 +303,7 @@ describe("heredocs", () => { ] `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("call w/ short breakable arg after heredoc literal", () => { @@ -313,7 +313,7 @@ describe("heredocs", () => { BAR `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on calls", () => { @@ -331,7 +331,7 @@ describe("heredocs", () => { HERE `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("on calls with trailing arguments", () => { @@ -341,7 +341,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("in parens args with trailing args after", () => { @@ -352,7 +352,7 @@ describe("heredocs", () => { ARG1 `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("in paren args with a call", () => { @@ -363,7 +363,7 @@ describe("heredocs", () => { ARG1 `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on calls with multiple", () => { @@ -375,7 +375,7 @@ describe("heredocs", () => { THERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on commands", () => { @@ -385,7 +385,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on commands with multiple", () => { @@ -397,7 +397,7 @@ describe("heredocs", () => { THERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on command calls with trailing arg", () => { @@ -407,7 +407,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("on command calls with multiple", () => { @@ -419,7 +419,7 @@ describe("heredocs", () => { THERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("assign with call", () => { @@ -429,7 +429,7 @@ describe("heredocs", () => { TEXT `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("assign with squiggly indent", () => { @@ -440,7 +440,7 @@ describe("heredocs", () => { ).strip `); - expect(content).toChangeFormat( + return expect(content).toChangeFormat( ruby(` foo = (<<~TEXT).strip bar @@ -456,7 +456,7 @@ describe("heredocs", () => { TEXT `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with a call and indented", () => { @@ -468,7 +468,7 @@ describe("heredocs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with a method call", () => { @@ -479,7 +479,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with two calls and indented", () => { @@ -491,7 +491,7 @@ describe("heredocs", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("xstring", () => { @@ -501,7 +501,7 @@ describe("heredocs", () => { SHELL `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with a comment after the declaration", () => { @@ -511,7 +511,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with a comment after the declaration in a call", () => { @@ -521,7 +521,7 @@ describe("heredocs", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("spilling out from another node keeps subsequent formatting", () => { @@ -532,6 +532,6 @@ describe("heredocs", () => { qaz `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/hooks.test.js b/test/js/ruby/nodes/hooks.test.js index 34a81842..a5d94a65 100644 --- a/test/js/ruby/nodes/hooks.test.js +++ b/test/js/ruby/nodes/hooks.test.js @@ -2,19 +2,23 @@ import { long, ruby } from "../../utils.js"; describe.each(["BEGIN", "END"])("%s hook", (hook) => { test("shortens to one line", () => { - expect(`${hook} {\n p "hook"\n}`).toChangeFormat(`${hook} { p "hook" }`); + return expect(`${hook} {\n p "hook"\n}`).toChangeFormat( + `${hook} { p "hook" }` + ); }); test("maintains single lines", () => { - expect(`${hook} { p "hook" }`).toMatchFormat(); + return expect(`${hook} { p "hook" }`).toMatchFormat(); }); test("maintains multi line", () => { - expect(`${hook} {\n ${long}\n}`).toMatchFormat(); + return expect(`${hook} {\n ${long}\n}`).toMatchFormat(); }); test("expands to multi line", () => { - expect(`${hook} { ${long} }`).toChangeFormat(`${hook} {\n ${long}\n}`); + return expect(`${hook} { ${long} }`).toChangeFormat( + `${hook} {\n ${long}\n}` + ); }); test("does not move comments on the declaration", () => { @@ -24,7 +28,7 @@ describe.each(["BEGIN", "END"])("%s hook", (hook) => { } `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("works for comments in the body", () => { @@ -34,6 +38,6 @@ describe.each(["BEGIN", "END"])("%s hook", (hook) => { } `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/kwargs.test.js b/test/js/ruby/nodes/kwargs.test.js index c7a4dfc7..4aa5d4f5 100644 --- a/test/js/ruby/nodes/kwargs.test.js +++ b/test/js/ruby/nodes/kwargs.test.js @@ -1,13 +1,13 @@ describe("kwargs", () => { test("basic", () => { - expect("def foo(bar: baz)\nend").toMatchFormat(); + return expect("def foo(bar: baz)\nend").toMatchFormat(); }); test("optional", () => { - expect("def foo(bar:)\nend").toMatchFormat(); + return expect("def foo(bar:)\nend").toMatchFormat(); }); test("double splat", () => { - expect("def foo(bar:, **baz)\nend").toMatchFormat(); + return expect("def foo(bar:, **baz)\nend").toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/lambda.test.js b/test/js/ruby/nodes/lambda.test.js index f8abd31f..c42e34b6 100644 --- a/test/js/ruby/nodes/lambda.test.js +++ b/test/js/ruby/nodes/lambda.test.js @@ -2,38 +2,38 @@ import { long, ruby } from "../../utils.js"; describe("lambda", () => { test("plain stabby lambda literal", () => { - expect("-> { 1 }").toMatchFormat(); + return expect("-> { 1 }").toMatchFormat(); }); test("stabby lambda literal with args", () => { - expect("->(a, b, c) { a + b + c }").toMatchFormat(); + return expect("->(a, b, c) { a + b + c }").toMatchFormat(); }); test("stabby lambda literal with arg, no parens", () => { - expect("-> a { a }").toChangeFormat("->(a) { a }"); + return expect("-> a { a }").toChangeFormat("->(a) { a }"); }); test("stabby lambda with parens, no args", () => { - expect("-> () { 1 }").toChangeFormat("-> { 1 }"); + return expect("-> () { 1 }").toChangeFormat("-> { 1 }"); }); test("breaking stabby lambda literal", () => { - expect(`-> { ${long} }`).toChangeFormat(`-> do\n ${long}\nend`); + return expect(`-> { ${long} }`).toChangeFormat(`-> do\n ${long}\nend`); }); test("breaking stabby lambda literal with args", () => { const content = `->(a) { a + ${long} }`; const expected = `->(a) do\n a +\n ${long}\nend`; - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("stabby lambda literal within a command node", () => { - expect("command :foo, ->(arg) { arg + arg }").toMatchFormat(); + return expect("command :foo, ->(arg) { arg + arg }").toMatchFormat(); }); test("stabby lambda literal that breaks within a command node", () => { - expect(`command :foo, -> { ${long} }`).toChangeFormat( + return expect(`command :foo, -> { ${long} }`).toChangeFormat( ruby(` command :foo, -> { @@ -44,11 +44,11 @@ describe("lambda", () => { }); test("stabby lambda literal with a command call node", () => { - expect("command.call :foo, ->(arg) { arg + arg }").toMatchFormat(); + return expect("command.call :foo, ->(arg) { arg + arg }").toMatchFormat(); }); test("stabby lambda literal that breaks with a command call node", () => { - expect(`command.call :foo, -> { ${long} }`).toChangeFormat( + return expect(`command.call :foo, -> { ${long} }`).toChangeFormat( ruby(` command.call :foo, -> { @@ -59,7 +59,7 @@ describe("lambda", () => { }); test("stabby lambda literal that breaks deeply within a command node", () => { - expect(`command :foo, bar: -> { ${long} }`).toChangeFormat( + return expect(`command :foo, bar: -> { ${long} }`).toChangeFormat( ruby(` command :foo, bar: -> { @@ -72,7 +72,7 @@ describe("lambda", () => { test("very long arguments list doesn't break within pipes", () => { const content = `command :foo, ->(${long}, a${long}, aa${long}) { true }`; - expect(content).toChangeFormat( + return expect(content).toChangeFormat( ruby(` command :foo, ->( @@ -87,10 +87,10 @@ describe("lambda", () => { }); test("empty brackets", () => { - expect("a[]").toMatchFormat(); + return expect("a[]").toMatchFormat(); }); test("brackets with multiple args", () => { - expect("a[1, 2, 3]").toMatchFormat(); + return expect("a[1, 2, 3]").toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/loops.test.js b/test/js/ruby/nodes/loops.test.js index f68fcff6..fb1bc9bc 100644 --- a/test/js/ruby/nodes/loops.test.js +++ b/test/js/ruby/nodes/loops.test.js @@ -2,7 +2,7 @@ import { long, ruby } from "../../utils.js"; describe.each(["while", "until"])("%s", (keyword) => { test("aligns predicates", () => { - expect(`foo ${keyword} ${long} || ${long}`).toChangeFormat( + return expect(`foo ${keyword} ${long} || ${long}`).toChangeFormat( ruby(` ${keyword} ${long} || ${Array(keyword.length).fill("").join(" ")}${long} @@ -14,19 +14,19 @@ describe.each(["while", "until"])("%s", (keyword) => { describe("inlines allowed", () => { test("transforms to inline", () => { - expect(`${keyword} a\n 1\nend`).toChangeFormat(`1 ${keyword} a`); + return expect(`${keyword} a\n 1\nend`).toChangeFormat(`1 ${keyword} a`); }); test("maintains inlines", () => { - expect(`1 ${keyword} a`).toMatchFormat(); + return expect(`1 ${keyword} a`).toMatchFormat(); }); test("breaks on large predicates", () => { - expect(`${keyword} ${long}\n 1\nend`).toMatchFormat(); + return expect(`${keyword} ${long}\n 1\nend`).toMatchFormat(); }); test("breaks inlines on large predicates", () => { - expect(`1 ${keyword} ${long}`).toChangeFormat( + return expect(`1 ${keyword} ${long}`).toChangeFormat( `${keyword} ${long}\n 1\nend` ); }); @@ -38,7 +38,7 @@ describe.each(["while", "until"])("%s", (keyword) => { end ${keyword} bar `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("breaks when an assignment is in the predicate", () => { @@ -48,7 +48,7 @@ describe.each(["while", "until"])("%s", (keyword) => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("breaks when a multi assignment is in the predicate", () => { @@ -58,7 +58,7 @@ describe.each(["while", "until"])("%s", (keyword) => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("breaks the parent when there is an assignment", () => { @@ -70,11 +70,11 @@ describe.each(["while", "until"])("%s", (keyword) => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("wraps single lines in parens when assigning", () => { - expect( + return expect( `hash[:key] = ${keyword} false do break :value end` ).toChangeFormat(`hash[:key] = (break :value ${keyword} false)`); }); @@ -85,7 +85,7 @@ describe.each(["while", "until"])("%s", (keyword) => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("empty body, long predicate", () => { @@ -94,7 +94,7 @@ describe.each(["while", "until"])("%s", (keyword) => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); @@ -102,31 +102,31 @@ describe.each(["while", "until"])("%s", (keyword) => { "add parens when necessary %s", (keyword) => { test("args", () => { - expect(`[${keyword} foo? do bar end]`).toChangeFormat( + return expect(`[${keyword} foo? do bar end]`).toChangeFormat( `[(bar ${keyword} foo?)]` ); }); test("assign", () => { - expect(`foo = ${keyword} bar? do baz end`).toChangeFormat( + return expect(`foo = ${keyword} bar? do baz end`).toChangeFormat( `foo = (baz ${keyword} bar?)` ); }); test("assoc", () => { - expect(`{ foo: ${keyword} bar? do baz end }`).toChangeFormat( + return expect(`{ foo: ${keyword} bar? do baz end }`).toChangeFormat( `{ foo: (baz ${keyword} bar?) }` ); }); test("massign", () => { - expect(`f, o, o = ${keyword} bar? do baz end`).toChangeFormat( + return expect(`f, o, o = ${keyword} bar? do baz end`).toChangeFormat( `f, o, o = (baz ${keyword} bar?)` ); }); test("opassign", () => { - expect(`foo ||= ${keyword} bar? do baz end`).toChangeFormat( + return expect(`foo ||= ${keyword} bar? do baz end`).toChangeFormat( `foo ||= (baz ${keyword} bar?)` ); }); @@ -155,6 +155,6 @@ describe.each(["while", "until"])("%s", (keyword) => { end `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); }); diff --git a/test/js/ruby/nodes/massign.test.js b/test/js/ruby/nodes/massign.test.js index 5ff61845..5c0ac339 100644 --- a/test/js/ruby/nodes/massign.test.js +++ b/test/js/ruby/nodes/massign.test.js @@ -1,67 +1,67 @@ describe("massign", () => { test("multi on left, multi on right", () => { - expect("a, b, c = 1, 2, 3").toMatchFormat(); + return expect("a, b, c = 1, 2, 3").toMatchFormat(); }); test("single on left, multi on right", () => { - expect("a = 1, 2, 3").toMatchFormat(); + return expect("a = 1, 2, 3").toMatchFormat(); }); test("multi on left, array on right", () => { - expect("a, b, c = [1, 2, 3]").toMatchFormat(); + return expect("a, b, c = [1, 2, 3]").toMatchFormat(); }); test("parens on left, multi on right", () => { - expect("(a, b, c) = 1, 2, 3").toChangeFormat("a, b, c = 1, 2, 3"); + return expect("(a, b, c) = 1, 2, 3").toChangeFormat("a, b, c = 1, 2, 3"); }); test("double parens on left, multi on right", () => { - expect("((a, b, c)) = 1, 2, 3").toChangeFormat("a, b, c = 1, 2, 3"); + return expect("((a, b, c)) = 1, 2, 3").toChangeFormat("a, b, c = 1, 2, 3"); }); test("parens on some of left, multi on right", () => { - expect("(a, b), c = [1, 2], 3").toMatchFormat(); + return expect("(a, b), c = [1, 2], 3").toMatchFormat(); }); test("extra commas at the end", () => { - expect("a, = 1").toMatchFormat(); + return expect("a, = 1").toMatchFormat(); }); test("extra commas at the end with multiple", () => { - expect("a, b, c, = 1").toMatchFormat(); + return expect("a, b, c, = 1").toMatchFormat(); }); test("extra commas with parens", () => { - expect("(a, b,), c, = 1").toMatchFormat(); + return expect("(a, b,), c, = 1").toMatchFormat(); }); test("extra commas with doubled parens", () => { - expect("((a, b,), c,), = 1").toMatchFormat(); + return expect("((a, b,), c,), = 1").toMatchFormat(); }); describe("splat", () => { test("after ident", () => { - expect("a, *b = 1, 2, 3").toMatchFormat(); + return expect("a, *b = 1, 2, 3").toMatchFormat(); }); test("between idents", () => { - expect("a, *b, c, d = 1, 2, 3").toMatchFormat(); + return expect("a, *b, c, d = 1, 2, 3").toMatchFormat(); }); test("with no name", () => { - expect("a, * = 1, 2, 3").toMatchFormat(); + return expect("a, * = 1, 2, 3").toMatchFormat(); }); test("on right side", () => { - expect("a = *a").toMatchFormat(); + return expect("a = *a").toMatchFormat(); }); test("only on left side", () => { - expect("* = [1, 2, 3]").toMatchFormat(); + return expect("* = [1, 2, 3]").toMatchFormat(); }); test("and then ident on left side", () => { - expect("*, a = [1, 2, 3]").toMatchFormat(); + return expect("*, a = [1, 2, 3]").toMatchFormat(); }); }); }); diff --git a/test/js/ruby/nodes/method.test.js b/test/js/ruby/nodes/method.test.js index 8c88e475..9651ac3e 100644 --- a/test/js/ruby/nodes/method.test.js +++ b/test/js/ruby/nodes/method.test.js @@ -3,49 +3,53 @@ import { atLeastVersion, long, ruby } from "../../utils.js"; describe("method", () => { describe("definitions", () => { test("shorthand for empty methods", () => { - expect("def foo; end").toChangeFormat("def foo\nend"); + return expect("def foo; end").toChangeFormat("def foo\nend"); }); test("shorthand for empty methods with parens", () => { - expect("def foo(); end").toChangeFormat("def foo()\nend"); + return expect("def foo(); end").toChangeFormat("def foo()\nend"); }); test("single arg, no parens", () => { - expect("def foo bar\nend").toChangeFormat("def foo(bar)\nend"); + return expect("def foo bar\nend").toChangeFormat("def foo(bar)\nend"); }); test("single arg, with parens", () => { - expect("def foo(bar)\nend").toMatchFormat(); + return expect("def foo(bar)\nend").toMatchFormat(); }); test("shorthand for empty singleton methods", () => { - expect("def self.foo; end").toChangeFormat("def self.foo\nend"); + return expect("def self.foo; end").toChangeFormat("def self.foo\nend"); }); test("shorthand for empty singleton methods with parens", () => { - expect("def self.foo(); end").toChangeFormat("def self.foo()\nend"); + return expect("def self.foo(); end").toChangeFormat( + "def self.foo()\nend" + ); }); test("singleton, single arg, no parens", () => { - expect("def self.foo bar\nend").toChangeFormat("def self.foo(bar)\nend"); + return expect("def self.foo bar\nend").toChangeFormat( + "def self.foo(bar)\nend" + ); }); test("singleton, single arg, with parens", () => { - expect("def self.foo(bar)\nend").toMatchFormat(); + return expect("def self.foo(bar)\nend").toMatchFormat(); }); test("shorthand with a body", () => { - expect("def foo(alpha); 1; end").toChangeFormat( + return expect("def foo(alpha); 1; end").toChangeFormat( "def foo(alpha)\n 1\nend" ); }); test("single splat arg with no name", () => { - expect("def foo(*); end").toChangeFormat("def foo(*)\nend"); + return expect("def foo(*); end").toChangeFormat("def foo(*)\nend"); }); test("double splat arg with no name", () => { - expect("def foo(**); end").toChangeFormat("def foo(**)\nend"); + return expect("def foo(**); end").toChangeFormat("def foo(**)\nend"); }); test("with helper method", () => { @@ -55,7 +59,7 @@ describe("method", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with helper method on defs", () => { @@ -65,7 +69,7 @@ describe("method", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("every single arg type", () => { @@ -75,7 +79,7 @@ describe("method", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("breaking", () => { @@ -88,7 +92,7 @@ describe("method", () => { end `); - expect(content).toChangeFormat(expected); + return expect(content).toChangeFormat(expected); }); test("with comments on method definition", () => { @@ -100,7 +104,7 @@ describe("method", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with comments on params", () => { @@ -118,7 +122,7 @@ describe("method", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with comments on optional params", () => { @@ -130,12 +134,14 @@ describe("method", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); if (atLeastVersion("2.7")) { test("nokw_param", () => { - expect("def foo(**nil); end").toChangeFormat("def foo(**nil)\nend"); + return expect("def foo(**nil); end").toChangeFormat( + "def foo(**nil)\nend" + ); }); test("args_forward", () => { @@ -145,7 +151,7 @@ describe("method", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); } @@ -157,19 +163,19 @@ describe("method", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("single-line methods", () => { - expect("def foo = bar").toMatchFormat(); + return expect("def foo = bar").toMatchFormat(); }); test("single-line methods with empty params", () => { - expect("def foo() = bar").toChangeFormat("def foo = bar"); + return expect("def foo() = bar").toChangeFormat("def foo = bar"); }); test("single-line methods with params", () => { - expect("def foo(name) = bar").toMatchFormat(); + return expect("def foo(name) = bar").toMatchFormat(); }); } @@ -183,25 +189,25 @@ describe("method", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); describe("method calls", () => { test("empty parens", () => { - expect("foo()").toChangeFormat("foo"); + return expect("foo()").toChangeFormat("foo"); }); test("single args", () => { - expect("foo(1)").toMatchFormat(); + return expect("foo(1)").toMatchFormat(); }); test("multi arg", () => { - expect("foo(1, 2)").toMatchFormat(); + return expect("foo(1, 2)").toMatchFormat(); }); test("just block", () => { - expect("foo(&block)").toMatchFormat(); + return expect("foo(&block)").toMatchFormat(); }); describe("commands", () => { @@ -212,7 +218,7 @@ describe("method", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("alignment for `to`", () => { @@ -222,7 +228,7 @@ describe("method", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("alignment for `not_to`", () => { @@ -232,7 +238,7 @@ describe("method", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("alignment for `to_not`", () => { @@ -242,7 +248,7 @@ describe("method", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("just block", () => { @@ -252,21 +258,21 @@ describe("method", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); describe("single splat", () => { test("plain", () => { - expect("foo(*bar)").toMatchFormat(); + return expect("foo(*bar)").toMatchFormat(); }); test("with multi args", () => { - expect("foo(1, 2, *abc)").toMatchFormat(); + return expect("foo(1, 2, *abc)").toMatchFormat(); }); test("between multi args", () => { - expect("foo(1, 2, *abc, 3, 4)").toMatchFormat(); + return expect("foo(1, 2, *abc, 3, 4)").toMatchFormat(); }); test("with comments", () => { @@ -279,7 +285,7 @@ describe("method", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with trailing comments", () => { @@ -292,11 +298,11 @@ describe("method", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with block", () => { - expect("foo(*bar, &block)").toMatchFormat(); + return expect("foo(*bar, &block)").toMatchFormat(); }); test("with comments and block", () => { @@ -307,74 +313,74 @@ describe("method", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); describe("double splat", () => { test("plain", () => { - expect("foo(**bar)").toMatchFormat(); + return expect("foo(**bar)").toMatchFormat(); }); test("with block", () => { - expect("foo(**bar, &block)").toMatchFormat(); + return expect("foo(**bar, &block)").toMatchFormat(); }); test("with splat and block", () => { - expect("foo(*bar, **baz, &block)").toMatchFormat(); + return expect("foo(*bar, **baz, &block)").toMatchFormat(); }); test("after kwarg", () => { - expect("foo(kwarg: 1, **splat)").toMatchFormat(); + return expect("foo(kwarg: 1, **splat)").toMatchFormat(); }); test("before kwarg", () => { - expect("foo(**splat, kwarg: 1)").toMatchFormat(); + return expect("foo(**splat, kwarg: 1)").toMatchFormat(); }); test("before kwargs", () => { - expect("foo(before: 1, **splat, after: 1)").toMatchFormat(); + return expect("foo(before: 1, **splat, after: 1)").toMatchFormat(); }); }); describe("different operators", () => { test("double colon gets changed", () => { - expect("Foo::foo").toChangeFormat("Foo.foo"); + return expect("Foo::foo").toChangeFormat("Foo.foo"); }); test("lonely operator", () => { - expect("foo&.foo").toMatchFormat(); + return expect("foo&.foo").toMatchFormat(); }); }); describe("breaking", () => { describe("without trailing commas", () => { test("starting with no trailing comma stays", () => { - expect(`foo(${long}, a${long})`).toChangeFormat( + return expect(`foo(${long}, a${long})`).toChangeFormat( `foo(\n ${long},\n a${long}\n)` ); }); test("with breaking ternary as first argument", () => { - expect(`foo bar ? ${long} : a${long}`).toChangeFormat( + return expect(`foo bar ? ${long} : a${long}`).toChangeFormat( `foo(\n if bar\n ${long}\n else\n a${long}\n end\n)` ); }); test("starting with trailing comma changes", () => { - expect(`foo(${long}, a${long},)`).toChangeFormat( + return expect(`foo(${long}, a${long},)`).toChangeFormat( `foo(\n ${long},\n a${long}\n)` ); }); test("with block on the end", () => { - expect(`foo(${long}, &block)`).toChangeFormat( + return expect(`foo(${long}, &block)`).toChangeFormat( `foo(\n ${long},\n &block\n)` ); }); test("on commands", () => { - expect(`command ${long}, a${long}`).toChangeFormat( + return expect(`command ${long}, a${long}`).toChangeFormat( ruby(` command ${long}, a${long} @@ -383,7 +389,7 @@ describe("method", () => { }); test("on command calls", () => { - expect(`command.call ${long}, a${long}`).toChangeFormat( + return expect(`command.call ${long}, a${long}`).toChangeFormat( ruby(` command.call ${long}, a${long} diff --git a/test/js/ruby/nodes/next.test.js b/test/js/ruby/nodes/next.test.js index d1a5690d..b1a9fb54 100644 --- a/test/js/ruby/nodes/next.test.js +++ b/test/js/ruby/nodes/next.test.js @@ -2,19 +2,19 @@ import { ruby } from "../../utils.js"; describe("next", () => { test("bare", () => { - expect("next").toMatchFormat(); + return expect("next").toMatchFormat(); }); test("one arg, no parens", () => { - expect("next 1").toMatchFormat(); + return expect("next 1").toMatchFormat(); }); test("one arg, with parens", () => { - expect("next(1)").toChangeFormat("next 1"); + return expect("next(1)").toChangeFormat("next 1"); }); test("multiple args", () => { - expect("next 1, 2").toMatchFormat(); + return expect("next 1, 2").toMatchFormat(); }); test("keeps parens for multiple statements", () => { @@ -25,10 +25,10 @@ describe("next", () => { ) `); - expect("next(a = 1; a == 1)").toChangeFormat(expected); + return expect("next(a = 1; a == 1)").toChangeFormat(expected); }); test("keeps parens for _mod nodes", () => { - expect("next(1 if true)").toMatchFormat(); + return expect("next(1 if true)").toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/numbers.test.js b/test/js/ruby/nodes/numbers.test.js index 82266637..a1edd35b 100644 --- a/test/js/ruby/nodes/numbers.test.js +++ b/test/js/ruby/nodes/numbers.test.js @@ -1,49 +1,49 @@ describe("numbers", () => { test("basic", () => { - expect("123").toMatchFormat(); + return expect("123").toMatchFormat(); }); test("preserves sign", () => { - expect("-123").toMatchFormat(); + return expect("-123").toMatchFormat(); }); test("respects no o for octal numbers", () => { - expect("0123").toChangeFormat("0123"); + return expect("0123").toChangeFormat("0123"); }); test("respects o for octal numbers", () => { - expect("0o123").toChangeFormat("0o123"); + return expect("0o123").toChangeFormat("0o123"); }); test("does not consider numbers large until they have more than 4 digits", () => { - expect("1234").toMatchFormat(); + return expect("1234").toMatchFormat(); }); test("for large numbers adds underscores (mod 3 ==== 0)", () => { - expect("123456").toChangeFormat("123_456"); + return expect("123456").toChangeFormat("123_456"); }); test("for large numbers adds underscores (mod 3 === 1)", () => { - expect("1234567").toChangeFormat("1_234_567"); + return expect("1234567").toChangeFormat("1_234_567"); }); test("for large numbers add underscores (mod 3 ==== 2)", () => { - expect("12345678").toChangeFormat("12_345_678"); + return expect("12345678").toChangeFormat("12_345_678"); }); test("ignores numbers that already have underscores", () => { - expect("2019_04_17_17_09_00").toMatchFormat(); + return expect("2019_04_17_17_09_00").toMatchFormat(); }); test("ignores formatting on binary numbers", () => { - expect("0b01101001").toMatchFormat(); + return expect("0b01101001").toMatchFormat(); }); test("ignores formatting on octal numbers", () => { - expect("0o123401234").toMatchFormat(); + return expect("0o123401234").toMatchFormat(); }); test("ignores formatting on hex numbers", () => { - expect("0x123401234").toMatchFormat(); + return expect("0x123401234").toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/patterns.test.js b/test/js/ruby/nodes/patterns.test.js index dcd17838..19e0793f 100644 --- a/test/js/ruby/nodes/patterns.test.js +++ b/test/js/ruby/nodes/patterns.test.js @@ -30,13 +30,13 @@ describe("patterns", () => { test("rassign", () => { const content = `{ db: { user: "John" } } => { db: { user: } }`; - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("rassign with fndptn", () => { const content = "(1..10).to_a.shuffle => [*bef, 2..4 => thresh, *aft]"; - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); } @@ -48,7 +48,7 @@ describe("patterns", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("a, b, *c, d, e", () => { @@ -66,7 +66,7 @@ describe("patterns", () => { end `); - expect(content).toChangeFormat(expectedContent); + return expect(content).toChangeFormat(expectedContent); }); test("0, [1, _] => bar", () => { @@ -84,7 +84,7 @@ describe("patterns", () => { end `); - expect(content).toChangeFormat(expectedContent); + return expect(content).toChangeFormat(expectedContent); }); test("*c, d, e", () => { @@ -102,7 +102,7 @@ describe("patterns", () => { end `); - expect(content).toChangeFormat(expectedContent); + return expect(content).toChangeFormat(expectedContent); }); test("_, _", () => { @@ -120,7 +120,7 @@ describe("patterns", () => { end `); - expect(content).toChangeFormat(expectedContent); + return expect(content).toChangeFormat(expectedContent); }); test("a, b if b == a * 2", () => { @@ -138,7 +138,7 @@ describe("patterns", () => { end `); - expect(content).toChangeFormat(expectedContent); + return expect(content).toChangeFormat(expectedContent); }); test("with a single array element", () => { @@ -149,7 +149,7 @@ describe("patterns", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("with comments in an array pattern", () => { @@ -171,7 +171,7 @@ describe("patterns", () => { end `); - expect(content).toChangeFormat(expectedContent); + return expect(content).toChangeFormat(expectedContent); }); test("multiple clauses", () => { @@ -184,6 +184,6 @@ describe("patterns", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/ranges.test.js b/test/js/ruby/nodes/ranges.test.js index dd755db9..1f92ba36 100644 --- a/test/js/ruby/nodes/ranges.test.js +++ b/test/js/ruby/nodes/ranges.test.js @@ -2,38 +2,38 @@ import { atLeastVersion } from "../../utils.js"; describe("ranges", () => { test("two dot", () => { - expect("1..2").toMatchFormat(); + return expect("1..2").toMatchFormat(); }); test("negative two dot", () => { - expect("-2..-1").toMatchFormat(); + return expect("-2..-1").toMatchFormat(); }); test("three dot", () => { - expect("3...4").toMatchFormat(); + return expect("3...4").toMatchFormat(); }); test("negative three dot", () => { - expect("-4...-3").toMatchFormat(); + return expect("-4...-3").toMatchFormat(); }); if (atLeastVersion("2.6")) { test("two dot with no ending", () => { - expect("1..").toMatchFormat(); + return expect("1..").toMatchFormat(); }); test("three dot with no ending", () => { - expect("1...").toMatchFormat(); + return expect("1...").toMatchFormat(); }); } if (atLeastVersion("2.7")) { test("two dot with no beginning", () => { - expect("..2").toMatchFormat(); + return expect("..2").toMatchFormat(); }); test("three dot with no beginning", () => { - expect("...2").toMatchFormat(); + return expect("...2").toMatchFormat(); }); } }); diff --git a/test/js/ruby/nodes/regexp.test.js b/test/js/ruby/nodes/regexp.test.js index 825a827b..327e6e2b 100644 --- a/test/js/ruby/nodes/regexp.test.js +++ b/test/js/ruby/nodes/regexp.test.js @@ -2,55 +2,55 @@ import { ruby } from "../../utils.js"; describe("regexp", () => { test("basic", () => { - expect("/abc/").toMatchFormat(); + return expect("/abc/").toMatchFormat(); }); test("unnecessary braces", () => { - expect("%r{abc}").toChangeFormat("/abc/"); + return expect("%r{abc}").toChangeFormat("/abc/"); }); test("unnecessary slashes", () => { - expect("%r/abc/").toChangeFormat("/abc/"); + return expect("%r/abc/").toChangeFormat("/abc/"); }); test("unnecessary brackets", () => { - expect("%r[abc]").toChangeFormat("/abc/"); + return expect("%r[abc]").toChangeFormat("/abc/"); }); test("unnecessary parens", () => { - expect("%r(abc)").toChangeFormat("/abc/"); + return expect("%r(abc)").toChangeFormat("/abc/"); }); test("necessary braces", () => { - expect("%r{a/b/c}").toMatchFormat(); + return expect("%r{a/b/c}").toMatchFormat(); }); test("interpolation", () => { - expect("/a#{inter}c/").toMatchFormat(); + return expect("/a#{inter}c/").toMatchFormat(); }); test("modifiers", () => { - expect("/abc/i").toMatchFormat(); + return expect("/abc/i").toMatchFormat(); }); test("braces and modifiers", () => { - expect("%r{a/b/c}mi").toMatchFormat(); + return expect("%r{a/b/c}mi").toMatchFormat(); }); test("global interpolation", () => { - expect("/#$&/").toChangeFormat("/#{$&}/"); + return expect("/#$&/").toChangeFormat("/#{$&}/"); }); test("do not change if { and / in regexp literal", () => { - expect("%r(a{b/c)").toMatchFormat(); + return expect("%r(a{b/c)").toMatchFormat(); }); test("do not change if } and / in regexp literal", () => { - expect("%r[a}b/c]").toMatchFormat(); + return expect("%r[a}b/c]").toMatchFormat(); }); test("parens with }", () => { - expect("%r(a}bc)").toChangeFormat("/a}bc/"); + return expect("%r(a}bc)").toChangeFormat("/a}bc/"); }); test("comments in regex", () => { @@ -63,18 +63,18 @@ describe("regexp", () => { \\Z/x `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("forces braces if could be ambiguous with space in command", () => { - expect("foo %r{ bar}").toMatchFormat(); + return expect("foo %r{ bar}").toMatchFormat(); }); test("forces braces if could be ambiguous with equals in command", () => { - expect("foo %r{= bar}").toMatchFormat(); + return expect("foo %r{= bar}").toMatchFormat(); }); test("do not force braces if space is in parens", () => { - expect("foo(/ bar/)").toMatchFormat(); + return expect("foo(/ bar/)").toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/rescue.test.js b/test/js/ruby/nodes/rescue.test.js index ae75bb78..4a10d7b1 100644 --- a/test/js/ruby/nodes/rescue.test.js +++ b/test/js/ruby/nodes/rescue.test.js @@ -10,7 +10,7 @@ describe("rescue", () => { end `); - expect("a rescue nil").toChangeFormat(expected); + return expect("a rescue nil").toChangeFormat(expected); }); test("rescue just variable", () => { @@ -22,7 +22,7 @@ describe("rescue", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); // from ruby spec/ruby/language/rescue_spec.rb @@ -35,7 +35,7 @@ describe("rescue", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); // https://github.com/prettier/plugin-ruby/pull/1000 @@ -48,7 +48,7 @@ describe("rescue", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test.each(["begin", "def foo"])("%s with every clause", (declaration) => { @@ -74,7 +74,7 @@ describe("rescue", () => { end `); - expect(content).toChangeFormat( + return expect(content).toChangeFormat( ruby(` ${declaration} 1 @@ -108,7 +108,7 @@ describe("rescue", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("comment inline", () => { @@ -120,7 +120,7 @@ describe("rescue", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("comment inline with multiple", () => { @@ -132,7 +132,7 @@ describe("rescue", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("comment inline with splat", () => { @@ -144,7 +144,7 @@ describe("rescue", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("one error with a comment", () => { @@ -156,7 +156,7 @@ describe("rescue", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("two errors with a comment", () => { @@ -168,6 +168,6 @@ describe("rescue", () => { end `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/return.test.js b/test/js/ruby/nodes/return.test.js index f99ab392..0121128c 100644 --- a/test/js/ruby/nodes/return.test.js +++ b/test/js/ruby/nodes/return.test.js @@ -2,73 +2,73 @@ import { long, ruby } from "../../utils.js"; describe("return", () => { test("bare", () => { - expect("return").toMatchFormat(); + return expect("return").toMatchFormat(); }); test("one arg, no parens", () => { - expect("return 1").toMatchFormat(); + return expect("return 1").toMatchFormat(); }); test("one arg, with parens", () => { - expect("return(1)").toChangeFormat("return 1"); + return expect("return(1)").toChangeFormat("return 1"); }); test("multiple args", () => { - expect("return 1, 2").toMatchFormat(); + return expect("return 1, 2").toMatchFormat(); }); test("return method call", () => { - expect("return foo :bar").toMatchFormat(); + return expect("return foo :bar").toMatchFormat(); }); test("return with breaking", () => { - expect(`return ${long}`).toChangeFormat(`return(\n ${long}\n)`); + return expect(`return ${long}`).toChangeFormat(`return(\n ${long}\n)`); }); test("returning an array", () => { - expect("return [1, 2, 3]").toChangeFormat("return 1, 2, 3"); + return expect("return [1, 2, 3]").toChangeFormat("return 1, 2, 3"); }); test("returning an empty array", () => { - expect("return []").toMatchFormat(); + return expect("return []").toMatchFormat(); }); test("returning a single element array", () => { - expect("return [1]").toMatchFormat(); + return expect("return [1]").toMatchFormat(); }); test("returning a list that breaks", () => { - expect(`return ${long}, ${long}`).toChangeFormat( + return expect(`return ${long}, ${long}`).toChangeFormat( `return [\n ${long},\n ${long}\n]` ); }); test("returning an array within parens", () => { - expect("return([1, 2, 3])").toChangeFormat("return 1, 2, 3"); + return expect("return([1, 2, 3])").toChangeFormat("return 1, 2, 3"); }); test("returning a long special array", () => { - expect(`return %w[${long}]`).toChangeFormat( + return expect(`return %w[${long}]`).toChangeFormat( `return(\n %w[\n ${long}\n ]\n)` ); }); test("returning two arguments, one that breaks", () => { - expect(`return foo, ${long}`).toChangeFormat( + return expect(`return foo, ${long}`).toChangeFormat( `return [\n foo,\n ${long}\n]` ); }); test("returning two arguments, the first with parentheses", () => { - expect("return (1), 2").toMatchFormat(); + return expect("return (1), 2").toMatchFormat(); }); test("returning with the or keyword", () => { - expect("return(a or b)").toMatchFormat(); + return expect("return(a or b)").toMatchFormat(); }); test("returning with the not keyword", () => { - expect("return(not a)").toMatchFormat(); + return expect("return(not a)").toMatchFormat(); }); test("comment inside of return parentheses", () => { @@ -79,7 +79,7 @@ describe("return", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("returning multiple statements", () => { @@ -90,7 +90,7 @@ describe("return", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("returning a value with a modifier if", () => { @@ -98,6 +98,6 @@ describe("return", () => { return :inactive if given_date.before?(first_event_date) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/strings.test.js b/test/js/ruby/nodes/strings.test.js index 7ad47f9d..3970ad51 100644 --- a/test/js/ruby/nodes/strings.test.js +++ b/test/js/ruby/nodes/strings.test.js @@ -25,117 +25,117 @@ describe("strings", () => { describe("with single quotes", () => { test("empty single quote strings stay", () => { - expect("''").toChangeFormat(`""`); + return expect("''").toChangeFormat(`""`); }); test("empty double quote strings change", () => { - expect(`""`).toMatchFormat(); + return expect(`""`).toMatchFormat(); }); test("basic strings with single quotes stay", () => { - expect("'abc'").toChangeFormat(`"abc"`); + return expect("'abc'").toChangeFormat(`"abc"`); }); test("basic strings with double quotes change", () => { - expect(`"abc"`).toMatchFormat(); + return expect(`"abc"`).toMatchFormat(); }); test("double quotes with inner single quotes stay", () => { - expect(`"abc's"`).toMatchFormat(); + return expect(`"abc's"`).toMatchFormat(); }); describe("escape sequences", () => { test("single quotes stay", () => { - expect("'abc\\n'").toMatchFormat(); + return expect("'abc\\n'").toMatchFormat(); }); test("double quotes stay", () => { - expect(`"abc\\n"`).toMatchFormat(); + return expect(`"abc\\n"`).toMatchFormat(); }); test("interpolation within single quotes stay", () => { - expect(`'#{"\\n"}'`).toMatchFormat(); + return expect(`'#{"\\n"}'`).toMatchFormat(); }); test("interpolation within double quotes stay", () => { - expect(`"#{"\\n"}"`).toMatchFormat(); + return expect(`"#{"\\n"}"`).toMatchFormat(); }); test("escaped double quotes are not unquoted", () => { - expect("'abc \\\"def\\\" ghi'").toMatchFormat(); + return expect("'abc \\\"def\\\" ghi'").toMatchFormat(); }); }); }); describe("with double quotes", () => { test("empty single quote strings change", () => { - expect("''").toChangeFormat(`""`); + return expect("''").toChangeFormat(`""`); }); test("empty double quote strings stay", () => { - expect(`""`).toMatchFormat(); + return expect(`""`).toMatchFormat(); }); test("basic strings with single quotes change", () => { - expect("'abc'").toChangeFormat(`"abc"`); + return expect("'abc'").toChangeFormat(`"abc"`); }); test("basic strings with double quotes stay", () => { - expect(`"abc"`).toMatchFormat(); + return expect(`"abc"`).toMatchFormat(); }); test("double quotes with inner single quotes stay", () => { - expect(`"abc's"`).toMatchFormat(); + return expect(`"abc's"`).toMatchFormat(); }); test("double quotes do not get escaped if it results in more quotes", () => { - expect(`'"foo"'`).toMatchFormat(); + return expect(`'"foo"'`).toMatchFormat(); }); describe("escape sequences", () => { test("single quotes stay", () => { - expect("'abc\\n'").toMatchFormat(); + return expect("'abc\\n'").toMatchFormat(); }); test("double quotes stay", () => { - expect(`"abc\\n"`).toMatchFormat(); + return expect(`"abc\\n"`).toMatchFormat(); }); test("interpolation within single quotes stay", () => { - expect(`'#{"\\n"}'`).toMatchFormat(); + return expect(`'#{"\\n"}'`).toMatchFormat(); }); test("interpolation within double quotes stay", () => { - expect(`"#{"\\n"}"`).toMatchFormat(); + return expect(`"#{"\\n"}"`).toMatchFormat(); }); }); }); describe("with %{} quotes", () => { test("matches correctly", () => { - expect("%{foo\\n#{bar}\\nbaz}").toMatchFormat(); + return expect("%{foo\\n#{bar}\\nbaz}").toMatchFormat(); }); }); test("concatenation", () => { - expect(`"abc" \\\n "def" \\\n "ghi"`).toMatchFormat(); + return expect(`"abc" \\\n "def" \\\n "ghi"`).toMatchFormat(); }); describe("interpolation", () => { test("with keywords", () => { - expect(`"abc #{super} abc"`).toMatchFormat(); + return expect(`"abc #{super} abc"`).toMatchFormat(); }); test("at the beginning of the string", () => { - expect(`"#{abc} abc"`).toMatchFormat(); + return expect(`"#{abc} abc"`).toMatchFormat(); }); test("very interpolated", () => { - expect(`"abc #{"abc #{abc} abc"} abc"`).toMatchFormat(); + return expect(`"abc #{"abc #{abc} abc"} abc"`).toMatchFormat(); }); test("long strings with interpolation do not break", () => { - expect(`"${long} #{foo[:bar]} ${long}"`).toMatchFormat(); + return expect(`"${long} #{foo[:bar]} ${long}"`).toMatchFormat(); }); test("long strings with interpolation that were broken do break", () => { @@ -147,7 +147,7 @@ describe("strings", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("within a heredoc there is no indentation", () => { @@ -157,93 +157,93 @@ describe("strings", () => { HERE `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); describe("char literals", () => { test("single chars get changed", () => { - expect("?a").toChangeFormat(`"a"`); + return expect("?a").toChangeFormat(`"a"`); }); test("single chars get changed with double quotes", () => { - expect("?a").toChangeFormat(`"a"`); + return expect("?a").toChangeFormat(`"a"`); }); test("control escape sequences stay", () => { - expect("?\\C-a").toMatchFormat(); + return expect("?\\C-a").toMatchFormat(); }); test("meta escape sequences stay", () => { - expect("?\\M-a").toMatchFormat(); + return expect("?\\M-a").toMatchFormat(); }); test("meta and control sequences stay", () => { - expect("?\\M-\\C-a").toMatchFormat(); + return expect("?\\M-\\C-a").toMatchFormat(); }); }); describe("xstrings", () => { test("backtick literals", () => { - expect("`abc`").toMatchFormat(); + return expect("`abc`").toMatchFormat(); }); test("breaking backtick literals", () => { - expect(`\`${long}\``).toMatchFormat(); + return expect(`\`${long}\``).toMatchFormat(); }); test("breaking backtick literals with method chains", () => { - expect(`\`${long}\`.to_s`).toMatchFormat(); + return expect(`\`${long}\`.to_s`).toMatchFormat(); }); test("%x literals", () => { - expect("%x[abc]").toChangeFormat("`abc`"); + return expect("%x[abc]").toChangeFormat("`abc`"); }); test("breaking %x literals", () => { - expect(`%x[${long}]`).toChangeFormat(`\`${long}\``); + return expect(`%x[${long}]`).toChangeFormat(`\`${long}\``); }); test("breaking %x literals with method chains", () => { - expect(`%x[${long}].to_s`).toChangeFormat(`\`${long}\`.to_s`); + return expect(`%x[${long}].to_s`).toChangeFormat(`\`${long}\`.to_s`); }); }); describe("symbols", () => { test("basic", () => { - expect(":abc").toMatchFormat(); + return expect(":abc").toMatchFormat(); }); test("with single quotes", () => { - expect(":'abc'").toChangeFormat(`:"abc"`); + return expect(":'abc'").toChangeFormat(`:"abc"`); }); test("with double quotes", () => { - expect(`:"abc"`).toMatchFormat(); + return expect(`:"abc"`).toMatchFormat(); }); test("with double quotes with double quotes desired", () => { - expect(`:"abc"`).toMatchFormat(); + return expect(`:"abc"`).toMatchFormat(); }); test("with real interpolation and double quotes", () => { - expect(`:"abc#{foo}abc"`).toMatchFormat(); + return expect(`:"abc#{foo}abc"`).toMatchFormat(); }); test("%s literal", () => { - expect("%s[abc]").toChangeFormat(`:"abc"`); + return expect("%s[abc]").toChangeFormat(`:"abc"`); }); test("%s literal with false interpolation", () => { - expect("%s[abc#{d}]").toChangeFormat(`:'abc#{d}'`); + return expect("%s[abc#{d}]").toChangeFormat(`:'abc#{d}'`); }); test("%s literal as hash key", () => { - expect("{ %s[abc] => d }").toChangeFormat(`{ abc: d }`); + return expect("{ %s[abc] => d }").toChangeFormat(`{ abc: d }`); }); test("symbol literal as a hash key", () => { - expect("{ '\\d' => 1 }").toMatchFormat(); + return expect("{ '\\d' => 1 }").toMatchFormat(); }); test("%s literal with newlines", () => { @@ -253,17 +253,17 @@ describe("strings", () => { ] `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("gets correct quotes", () => { const content = `where("lint_tool_configs.plugin": plugins + %w[core])`; - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); test.each(["@v", "@@v", "$v"])("%s dvar", (interp) => { - expect(`"#${interp}"`).toChangeFormat(`"#{${interp}}"`); + return expect(`"#${interp}"`).toChangeFormat(`"#{${interp}}"`); }); }); diff --git a/test/js/ruby/nodes/super.test.js b/test/js/ruby/nodes/super.test.js index ae08bf5e..1b66b025 100644 --- a/test/js/ruby/nodes/super.test.js +++ b/test/js/ruby/nodes/super.test.js @@ -2,48 +2,48 @@ import { ruby } from "../../utils.js"; describe("super", () => { test("bare", () => { - expect("super").toMatchFormat(); + return expect("super").toMatchFormat(); }); test("empty parens", () => { - expect("super()").toMatchFormat(); + return expect("super()").toMatchFormat(); }); test("one arg, no parens", () => { - expect("super 1").toMatchFormat(); + return expect("super 1").toMatchFormat(); }); test("one arg, with parens", () => { - expect("super(1)").toMatchFormat(); + return expect("super(1)").toMatchFormat(); }); test("multiple args, no parens", () => { - expect("super 1, 2").toMatchFormat(); + return expect("super 1, 2").toMatchFormat(); }); test("multiple args, with parens", () => { - expect("super(1, 2)").toMatchFormat(); + return expect("super(1, 2)").toMatchFormat(); }); describe("with comments", () => { test("bare", () => { - expect("super # comment").toMatchFormat(); + return expect("super # comment").toMatchFormat(); }); test("empty parens", () => { - expect("super() # comment").toMatchFormat(); + return expect("super() # comment").toMatchFormat(); }); test("one arg, no parens", () => { - expect("super 1 # comment").toMatchFormat(); + return expect("super 1 # comment").toMatchFormat(); }); test("one arg, with parens", () => { - expect("super(1) # comment").toMatchFormat(); + return expect("super(1) # comment").toMatchFormat(); }); test("multiple args, no parens", () => { - expect("super 1, 2 # comment").toMatchFormat(); + return expect("super 1, 2 # comment").toMatchFormat(); }); test("multiple args, multiple lines, no parens", () => { @@ -52,11 +52,11 @@ describe("super", () => { 2 # second comment `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multiple args, with parens", () => { - expect("super(1, 2) # comment").toMatchFormat(); + return expect("super(1, 2) # comment").toMatchFormat(); }); test("multiple args, multiple lines, no parens", () => { @@ -67,7 +67,7 @@ describe("super", () => { ) `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); }); }); diff --git a/test/js/ruby/nodes/unary.test.js b/test/js/ruby/nodes/unary.test.js index cebf7b98..8f619b74 100644 --- a/test/js/ruby/nodes/unary.test.js +++ b/test/js/ruby/nodes/unary.test.js @@ -1,10 +1,10 @@ describe("unary", () => { test("regular", () => { - expect("!foo").toMatchFormat(); + return expect("!foo").toMatchFormat(); }); // https://github.com/prettier/plugin-ruby/issues/764 test("with other operator", () => { - expect("!(x&.>(0))").toMatchFormat(); + return expect("!(x&.>(0))").toMatchFormat(); }); }); diff --git a/test/js/ruby/nodes/undef.test.js b/test/js/ruby/nodes/undef.test.js index fb052469..3716cab6 100644 --- a/test/js/ruby/nodes/undef.test.js +++ b/test/js/ruby/nodes/undef.test.js @@ -2,11 +2,11 @@ import { long, ruby } from "../../utils.js"; describe("undef", () => { test("single inline", () => { - expect("undef foo").toMatchFormat(); + return expect("undef foo").toMatchFormat(); }); test("multiple inline", () => { - expect("undef foo, bar").toMatchFormat(); + return expect("undef foo, bar").toMatchFormat(); }); test("multiple breaking", () => { @@ -15,15 +15,15 @@ describe("undef", () => { a${long} `); - expect(`undef ${long}, a${long}`).toChangeFormat(expected); + return expect(`undef ${long}, a${long}`).toChangeFormat(expected); }); test("single with comment", () => { - expect("undef foo # bar").toMatchFormat(); + return expect("undef foo # bar").toMatchFormat(); }); test("multiple inline with comment", () => { - expect("undef foo, bar # baz").toMatchFormat(); + return expect("undef foo, bar # baz").toMatchFormat(); }); test("multiple lines comment on first", () => { @@ -32,7 +32,7 @@ describe("undef", () => { bar `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multiple lines comment on each", () => { @@ -41,7 +41,7 @@ describe("undef", () => { bar # bam `); - expect(content).toMatchFormat(); + return expect(content).toMatchFormat(); }); test("multiple breaking with comment", () => { @@ -50,6 +50,6 @@ describe("undef", () => { a${long} # foo `); - expect(`undef ${long}, a${long} # foo`).toChangeFormat(expected); + return expect(`undef ${long}, a${long} # foo`).toChangeFormat(expected); }); }); diff --git a/test/js/ruby/nodes/yield.test.js b/test/js/ruby/nodes/yield.test.js index f6bafbeb..5ac27496 100644 --- a/test/js/ruby/nodes/yield.test.js +++ b/test/js/ruby/nodes/yield.test.js @@ -1,21 +1,21 @@ describe("yield", () => { test("bare yield", () => { - expect("yield").toMatchFormat(); + return expect("yield").toMatchFormat(); }); test("yield with one argument, no parens", () => { - expect("yield i").toMatchFormat(); + return expect("yield i").toMatchFormat(); }); test("yield with one argument, with parens", () => { - expect("yield(i)").toMatchFormat(); + return expect("yield(i)").toMatchFormat(); }); test("yield with multiple arguments, no parens", () => { - expect("yield i, 2").toMatchFormat(); + return expect("yield i, 2").toMatchFormat(); }); test("yield with multiple arguments, with parens", () => { - expect("yield(i, 2)").toMatchFormat(); + return expect("yield(i, 2)").toMatchFormat(); }); }); From 44ab439243f331c7f7259e57490df9b1d8a20fb7 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 18 Oct 2022 18:06:47 -0400 Subject: [PATCH 130/262] Make relative paths work for gem --- lib/prettier.rb | 12 +++++++----- prettier.gemspec | 4 +--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/prettier.rb b/lib/prettier.rb index 963c6182..fa68dceb 100644 --- a/lib/prettier.rb +++ b/lib/prettier.rb @@ -4,17 +4,19 @@ require "open3" module Prettier - PLUGIN = -File.expand_path("..", __dir__) - BINARY = -File.join(PLUGIN, "node_modules", "prettier", "bin-prettier.js") - VERSION = -JSON.parse(File.read(File.join(PLUGIN, "package.json")))["version"] + directory = -File.expand_path("..", __dir__) + package = File.read(File.join(directory, "package.json")) + + PLUGIN = -File.join(directory, "src/plugin.js") + BINARY = -File.join(directory, "node_modules/prettier/bin/prettier.cjs") + VERSION = -JSON.parse(package)["version"] def self.run(args) quoted = args.map { |arg| arg.start_with?("-") ? arg : "\"#{arg}\"" } command = "node #{BINARY} --plugin \"#{PLUGIN}\" #{quoted.join(" ")}" opts = STDIN.tty? ? {} : { stdin_data: STDIN } - stdout, stderr, status = - Open3.capture3({ "RBPRETTIER" => "1" }, command, opts) + stdout, stderr, status = Open3.capture3({}, command, opts) STDOUT.puts(stdout) # If we completed successfully, then just exit out. diff --git a/prettier.gemspec b/prettier.gemspec index abe4f9e4..bae2dabf 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -15,9 +15,7 @@ Gem::Specification.new do |spec| spec.files = Dir.chdir(__dir__) do %w[LICENSE package.json rubocop.yml] + Dir["{{exe,lib,src}/**/*,*.md}"] + - Dir[ - "node_modules/prettier/{package.json,index.js,cli.js,doc.js,bin-prettier.js,third-party.js,parser-*.js}" - ] + Dir["node_modules/prettier/**/*"] end spec.required_ruby_version = ">= 2.7.0" From 07747975d4cd14182543087e01ce23449c795829 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 18 Oct 2022 20:39:34 -0400 Subject: [PATCH 131/262] Fix up windows server --- src/server.rb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/server.rb b/src/server.rb index 0917ee19..0ee42d51 100644 --- a/src/server.rb +++ b/src/server.rb @@ -38,10 +38,7 @@ File.write( connection_filepath, - JSON.fast_generate( - address: server.address.ip_address, - port: server.address.ip_port - ) + JSON.fast_generate(address: address.ip_address, port: address.ip_port) ) else # If we're not on windows, then we're going to assume we can use unix socket From a45652ed724739d8dcc676c8b5159a87c3046edf Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 18 Oct 2022 20:41:01 -0400 Subject: [PATCH 132/262] Fix up yarn plug-n-play tests --- .github/workflows/main.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4d69a776..52484688 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -76,7 +76,7 @@ jobs: - run: gem install syntax_tree syntax_tree-haml syntax_tree-rbs - uses: actions/setup-node@v2 with: - node-version: 16.x + node-version: 18.x cache: yarn - run: yarn install --frozen-lockfile - run: yarn pack @@ -87,15 +87,14 @@ jobs: - name: Smoke test run: | cd /tmp/smoketest - echo '{ "name": "smoketest" }' > package.json + echo '{ "name": "smoketest", "type": "module", "license": "MIT" }' > package.json yarn set version berry # workaround for https://github.com/yarnpkg/berry/issues/3180 yarn set version ${{ matrix.yarn }} - yarn add prettier @prettier/plugin-ruby@file:/tmp/prettier-plugin-ruby.tgz + yarn add prettier@next @prettier/plugin-ruby@file:/tmp/prettier-plugin-ruby.tgz npx rimraf .yarn/unplugged # Make sure Yarn didn't unplug anything; this will deliberately break if it did - echo '{ "plugins": ["@prettier/plugin-ruby"] }' >.prettierrc.json - echo 'def add(a, b) ; a + b ; end' >smoketest.rb - yarn run prettier -w smoketest.rb - ruby -c smoketest.rb + echo '{ "plugins": ["@prettier/plugin-ruby"] }' > .prettierrc.json + echo 'def add(a, b) ; a + b ; end' > smoketest.rb + yarn run prettier -w smoketest.rb && ruby -c smoketest.rb gem: name: Gem From 5c6448611ed4f9c842eab5b1b33ebb61103869d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Oct 2022 12:01:11 +0000 Subject: [PATCH 133/262] Bump jest from 29.2.0 to 29.2.1 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.2.0 to 29.2.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.2.1/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 586 +++++++++++++++++++++++++++--------------------------- 1 file changed, 293 insertions(+), 293 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2c8220c5..9fcfbf7d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -348,28 +348,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.0.tgz#e906bdbfc83baf79590f05b515dad900b3b71fed" - integrity sha512-Xz1Wu+ZZxcB3RS8U3HdkFxlRJ7kLXI/by9X7d2/gvseIWPwYu/c1EsYy77cB5iyyHGOy3whS2HycjcuzIF4Jow== +"@jest/console@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.1.tgz#5f2c62dcdd5ce66e94b6d6729e021758bceea090" + integrity sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.2.0" - jest-util "^29.2.0" + jest-message-util "^29.2.1" + jest-util "^29.2.1" slash "^3.0.0" -"@jest/core@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.0.tgz#beed57c552be65d4e4ab2f4161d0abe8ea6bf3a8" - integrity sha512-+gyJ3bX+kGEW/eqt/0kI7fLjqiFr3AN8O+rlEl1fYRf7D8h4Sj4tBGo9YOSirvWgvemoH2EPRya35bgvcPFzHQ== - dependencies: - "@jest/console" "^29.2.0" - "@jest/reporters" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" +"@jest/core@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.1.tgz#30af794ebd73bfb87cd8ba36718738dfe38b772e" + integrity sha512-kuLKYqnqgerXkBUwlHVxeSuhSnd+JMnMCLfU98bpacBSfWEJPegytDh3P2m15/JHzet32hGGld4KR4OzMb6/Tg== + dependencies: + "@jest/console" "^29.2.1" + "@jest/reporters" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -377,80 +377,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.2.0" - jest-config "^29.2.0" - jest-haste-map "^29.2.0" - jest-message-util "^29.2.0" + jest-config "^29.2.1" + jest-haste-map "^29.2.1" + jest-message-util "^29.2.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.0" - jest-resolve-dependencies "^29.2.0" - jest-runner "^29.2.0" - jest-runtime "^29.2.0" - jest-snapshot "^29.2.0" - jest-util "^29.2.0" - jest-validate "^29.2.0" - jest-watcher "^29.2.0" + jest-resolve "^29.2.1" + jest-resolve-dependencies "^29.2.1" + jest-runner "^29.2.1" + jest-runtime "^29.2.1" + jest-snapshot "^29.2.1" + jest-util "^29.2.1" + jest-validate "^29.2.1" + jest-watcher "^29.2.1" micromatch "^4.0.4" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.0.tgz#7e5604e4ead098572056a962a970f3d79379fbd8" - integrity sha512-foaVv1QVPB31Mno3LlL58PxEQQOLZd9zQfCpyQQCQIpUAtdFP1INBjkphxrCfKT13VxpA0z5jFGIkmZk0DAg2Q== +"@jest/environment@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.1.tgz#acb1994fbd5ad02819a1a34a923c531e6923b665" + integrity sha512-EutqA7T/X6zFjw6mAWRHND+ZkTPklmIEWCNbmwX6uCmOrFrWaLbDZjA+gePHJx6fFMMRvNfjXcvzXEtz54KPlg== dependencies: - "@jest/fake-timers" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/fake-timers" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.0" + jest-mock "^29.2.1" -"@jest/expect-utils@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.0.tgz#3c0c472115d98211e7e0a0a8fa00719bf081987f" - integrity sha512-nz2IDF7nb1qmj9hx8Ja3MFab2q9Ml8QbOaaeJNyX5JQJHU8QUvEDiMctmhGEkk3Kzr8w8vAqz4hPk/ogJSrUhg== +"@jest/expect-utils@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.1.tgz#eae61c90f2066540f60d23b8f254f03b7869b22f" + integrity sha512-yr4aHNg5Z1CjKby5ozm7sKjgBlCOorlAoFcvrOQ/4rbZRfgZQdnmh7cth192PYIgiPZo2bBXvqdOApnAMWFJZg== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.0.tgz#25316d2ae930e7bb9df96cce7521053d377c4c0d" - integrity sha512-+3lxcYL9e0xPJGOR33utxxejn+Mulz40kY0oy0FVsmIESW87NZDJ7B1ovaIqeX0xIgPX4laS5SGlqD2uSoBMcw== +"@jest/expect@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.1.tgz#8d99be3886ebfcffd6cabb2b46602a301b976ffe" + integrity sha512-o14R2t2tHHHudwji43UKkzmmH49xfF5T++FQBK2tl88qwuBWQOcx7fNUYl+mA/9TPNAN0FkQ3usnpyS8FUwsvQ== dependencies: - expect "^29.2.0" - jest-snapshot "^29.2.0" + expect "^29.2.1" + jest-snapshot "^29.2.1" -"@jest/fake-timers@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.0.tgz#e43635c1bd73b23886e80ca12307092ef2ee1929" - integrity sha512-mX0V0uQsgeSLTt0yTqanAhhpeUKMGd2uq+PSLAfO40h72bvfNNQ7pIEl9vIwNMFxRih1ENveEjSBsLjxGGDPSw== +"@jest/fake-timers@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.1.tgz#786d60e8cb60ca70c9f913cb49fcc77610c072bb" + integrity sha512-KWil+8fef7Uj/P/PTZlPKk1Pw117wAmr71VWFV8ZDtRtkwmTG8oY4IRf0Ss44J2y5CYRy8d/zLOhxyoGRENjvA== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.2.0" - jest-mock "^29.2.0" - jest-util "^29.2.0" + jest-message-util "^29.2.1" + jest-mock "^29.2.1" + jest-util "^29.2.1" -"@jest/globals@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.0.tgz#5cfc41c028efaf511624ba086d64113d5a8a92b3" - integrity sha512-JQxtEVNWiai1p3PIzAJZSyEqQdAJGvNKvinZDPfu0mhiYEVx6E+PiBuDWj1sVUW8hzu+R3DVqaWC9K2xcLRIAA== +"@jest/globals@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.1.tgz#6933beb8b4e43b990409a19c462fde7b71210e63" + integrity sha512-Z4EejYPP1OPVq2abk1+9urAwJqkgw5jB2UJGlPjb5ZwzPQF8WLMcigKEfFzZb2OHhEVPP0RZD0/DbVTY1R6iQA== dependencies: - "@jest/environment" "^29.2.0" - "@jest/expect" "^29.2.0" - "@jest/types" "^29.2.0" - jest-mock "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/expect" "^29.2.1" + "@jest/types" "^29.2.1" + jest-mock "^29.2.1" -"@jest/reporters@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.0.tgz#24cac16d997ec91a9c615db2621805ee485689e0" - integrity sha512-BXoAJatxTZ18U0cwD7C8qBo8V6vef8AXYRBZdhqE5DF9CmpqmhMfw9c7OUvYqMTnBBK9A0NgXGO4Lc9EJzdHvw== +"@jest/reporters@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.1.tgz#599e4376823751fdda50f2ca97243e013da10c4d" + integrity sha512-sCsfUKM/yIF4nNed3e/rIgVIS58EiASGMDEPWqItfLZ9UO1ALW2ASDNJzdWkxEt0T8o2Ztj619G0KKrvK+McAw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/console" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -463,9 +463,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.2.0" - jest-util "^29.2.0" - jest-worker "^29.2.0" + jest-message-util "^29.2.1" + jest-util "^29.2.1" + jest-worker "^29.2.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -487,51 +487,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.0.tgz#3dcc7123b8f0fb5ba1f650ce17af45cce91a0323" - integrity sha512-l76EPJ6QqtzsCLS4aimJqWO53pxZ82o3aE+Brcmo1HJ/phb9+MR7gPhyDdN6VSGaLJCRVJBZgWEhAEz+qON0Fw== +"@jest/test-result@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.1.tgz#f42dbf7b9ae465d0a93eee6131473b8bb3bd2edb" + integrity sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA== dependencies: - "@jest/console" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/console" "^29.2.1" + "@jest/types" "^29.2.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.0.tgz#acd875533f7ad01cb22da59ff4047de18e9d64da" - integrity sha512-NCnjZcGnVdva6IDqF7TCuFsXs2F1tohiNF9sasSJNzD7VfN5ic9XgcS/oPDalGiPLxCmGKj4kewqqrKAqBACcQ== +"@jest/test-sequencer@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.1.tgz#cafd2c5f3528c70bd4cc243800459ac366e480cc" + integrity sha512-O/pnk0/xGj3lxPVNwB6HREJ7AYvUdyP2xo/s14/9Dtf091HoOeyIhWLKQE/4HzB8lNQBMo6J5mg0bHz/uCWK7w== dependencies: - "@jest/test-result" "^29.2.0" + "@jest/test-result" "^29.2.1" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" + jest-haste-map "^29.2.1" slash "^3.0.0" -"@jest/transform@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.0.tgz#1c55ca549f64810351df999265a29f8ead51be15" - integrity sha512-NXMujGHy+B4DAj4dGnVPD0SIXlR2Z/N8Gp9h3mF66kcIRult1WWqY3/CEIrJcKviNWaFPYhZjCG2L3fteWzcUw== +"@jest/transform@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.1.tgz#f3d8154edd19cdbcaf1d6646bd8f4ff7812318a2" + integrity sha512-xup+iEuaIRSQabQaeqxaQyN0vg1Dctrp9oTObQsNf3sZEowTIa5cANYuoyi8Tqhg4GCqEVLTf18KW7ii0UeFVA== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" + jest-haste-map "^29.2.1" jest-regex-util "^29.2.0" - jest-util "^29.2.0" + jest-util "^29.2.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.0.tgz#c0d1ef8bc1e4f4b358e7877e34157371e7881b0b" - integrity sha512-mfgpQz4Z2xGo37m6KD8xEpKelaVzvYVRijmLPePn9pxgaPEtX+SqIyPNzzoeCPXKYbB4L/wYSgXDL8o3Gop78Q== +"@jest/types@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" + integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -804,12 +804,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.0.tgz#088624f037da90e69a06073305276cbd111d68a8" - integrity sha512-c8FkrW1chgcbyBqOo7jFGpQYfVnb43JqjQGV+C2r94k2rZJOukYOZ6+csAqKE4ms+PHc+yevnONxs27jQIxylw== +babel-jest@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.1.tgz#213c47e28072de11bdb98c9d29b89f2ab99664f1" + integrity sha512-gQJwArok0mqoREiCYhXKWOgUhElJj9DpnssW6GL8dG7ARYqHEhrM9fmPHTjdqEGRVXZAd6+imo3/Vwa8TjLcsw== dependencies: - "@jest/transform" "^29.2.0" + "@jest/transform" "^29.2.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -1273,16 +1273,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= -expect@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.0.tgz#b90c6df52be7abfd9f206f273fbcf8b33d8f332d" - integrity sha512-03ClF3GWwUqd9Grgkr9ZSdaCJGMRA69PQ8jT7o+Bx100VlGiAFf9/8oIm9Qve7ZVJhuJxFftqFhviZJRxxNfvg== +expect@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.1.tgz#25752d0df92d3daa5188dc8804de1f30759658cf" + integrity sha512-BJtA754Fba0YWRWHgjKUMTA3ltWarKgITXHQnbZ2mTxTXC4yMQlR0FI7HkB3fJYkhWBf4qjNiqvg3LDtXCcVRQ== dependencies: - "@jest/expect-utils" "^29.2.0" + "@jest/expect-utils" "^29.2.1" jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.0" - jest-message-util "^29.2.0" - jest-util "^29.2.0" + jest-matcher-utils "^29.2.1" + jest-message-util "^29.2.1" + jest-util "^29.2.1" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1644,86 +1644,86 @@ jest-changed-files@^29.2.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.0.tgz#692ddf3b12a5ae6326f2f37b9d176c68777fcf4c" - integrity sha512-bpJRMe+VtvYlF3q8JNx+/cAo4FYvNCiR5s7Z0Scf8aC+KJ2ineSjZKtw1cIZbythlplkiro0My8nc65pfCqJ3A== +jest-circus@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.1.tgz#1385353d9bca6acf58f916068bbeffcfc95bef02" + integrity sha512-W+ZQQ5ln4Db2UZNM4NJIeasnhCdDhSuYW4eLgNAUi0XiSSpF634Kc5wiPvGiHvTgXMFVn1ZgWIijqhi9+kLNLg== dependencies: - "@jest/environment" "^29.2.0" - "@jest/expect" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/expect" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.2.0" - jest-matcher-utils "^29.2.0" - jest-message-util "^29.2.0" - jest-runtime "^29.2.0" - jest-snapshot "^29.2.0" - jest-util "^29.2.0" + jest-each "^29.2.1" + jest-matcher-utils "^29.2.1" + jest-message-util "^29.2.1" + jest-runtime "^29.2.1" + jest-snapshot "^29.2.1" + jest-util "^29.2.1" p-limit "^3.1.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.0.tgz#c6ca40889d6671c38b1cf9119d3b653809f31a3a" - integrity sha512-/581TzbXeO+5kbtSlhXEthGiVJCC8AP0jgT0iZINAAMW+tTFj2uWU7z+HNUH5yIYdHV7AvRr0fWLrmHJGIruHg== +jest-cli@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.1.tgz#fbfa90b87b27a04e1041cc9d33ee80f32e2f2528" + integrity sha512-UIMD5aNqvPKpdlJSaeUAoLfxsh9TZvOkaMETx5qXnkboc317bcbb0eLHbIj8sFBHdcJAIAM+IRKnIU7Wi61MBw== dependencies: - "@jest/core" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/core" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.2.0" - jest-util "^29.2.0" - jest-validate "^29.2.0" + jest-config "^29.2.1" + jest-util "^29.2.1" + jest-validate "^29.2.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.0.tgz#8823f35255f696444a882721e624d7ad352e208b" - integrity sha512-IkdCsrHIoxDPZAyFcdtQrCQ3uftLqns6Joj0tlbxiAQW4k/zTXmIygqWBmPNxO9FbFkDrhtYZiLHXjaJh9rS+Q== +jest-config@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.1.tgz#2182af014d6c73978208626335db5134803dd183" + integrity sha512-EV5F1tQYW/quZV2br2o88hnYEeRzG53Dfi6rSG3TZBuzGQ6luhQBux/RLlU5QrJjCdq3LXxRRM8F1LP6DN1ycA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.2.0" - "@jest/types" "^29.2.0" - babel-jest "^29.2.0" + "@jest/test-sequencer" "^29.2.1" + "@jest/types" "^29.2.1" + babel-jest "^29.2.1" 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.2.0" - jest-environment-node "^29.2.0" + jest-circus "^29.2.1" + jest-environment-node "^29.2.1" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.2.0" - jest-runner "^29.2.0" - jest-util "^29.2.0" - jest-validate "^29.2.0" + jest-resolve "^29.2.1" + jest-runner "^29.2.1" + jest-util "^29.2.1" + jest-validate "^29.2.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.0.tgz#b1e11ac1a1401fc4792ef8ba406b48f1ae7d2bc5" - integrity sha512-GsH07qQL+/D/GxlnU+sSg9GL3fBOcuTlmtr3qr2pnkiODCwubNN2/7slW4m3CvxDsEus/VEOfQKRFLyXsUlnZw== +jest-diff@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" + integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== dependencies: chalk "^4.0.0" diff-sequences "^29.2.0" jest-get-type "^29.2.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" jest-docblock@^29.2.0: version "29.2.0" @@ -1732,94 +1732,94 @@ jest-docblock@^29.2.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.0.tgz#0f89c1233d65f22c7dba265ccd319611f1d662de" - integrity sha512-h4LeC3L/R7jIMfTdYowevPIssvcPYQ7Qzs+pCSYsJgPztIizXwKmnfhZXBA4WVqdmvMcpmseYEXb67JT7IJ2eg== +jest-each@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.1.tgz#6b0a88ee85c2ba27b571a6010c2e0c674f5c9b29" + integrity sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" chalk "^4.0.0" jest-get-type "^29.2.0" - jest-util "^29.2.0" - pretty-format "^29.2.0" + jest-util "^29.2.1" + pretty-format "^29.2.1" -jest-environment-node@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.0.tgz#49c39d4f9df64fc74da3725cbcaeee6da01a6dd6" - integrity sha512-b4qQGVStPMvtZG97Ac0rvnmSIjCZturFU7MQRMp4JDFl7zoaDLTtXmFjFP1tNmi9te6kR8d+Htbv3nYeoaIz6g== +jest-environment-node@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.1.tgz#f90311d0f0e8ef720349f83c97a076e403f90665" + integrity sha512-PulFKwEMz6nTAdLUwglFKei3b/LixwlRiqTN6nvPE1JtrLtlnpd6LXnFI1NFHYJGlTmIWilMP2n9jEtPPKX50g== dependencies: - "@jest/environment" "^29.2.0" - "@jest/fake-timers" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/fake-timers" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.0" - jest-util "^29.2.0" + jest-mock "^29.2.1" + jest-util "^29.2.1" jest-get-type@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== -jest-haste-map@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.0.tgz#2410f2ec93958e0bd894818de6c8056eb1b4d6fc" - integrity sha512-qu9lGFi7qJ8v37egS1phZZUJYiMyWnKwu83NlNT1qs50TbedIX2hFl+9ztsJ7U/ENaHwk1/Bs8fqOIQsScIRwg== +jest-haste-map@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699" + integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.2.0" - jest-worker "^29.2.0" + jest-util "^29.2.1" + jest-worker "^29.2.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.0.tgz#7c0eace293cf05a130a09beb1b9318ecc2f77692" - integrity sha512-FXT9sCFdct42+oOqGIr/9kmUw3RbhvpkwidCBT5ySHHoWNGd3c9n7HXpFKjEz9UnUITRCGdn0q2s6Sxrq36kwg== +jest-leak-detector@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz#ec551686b7d512ec875616c2c3534298b1ffe2fc" + integrity sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug== dependencies: jest-get-type "^29.2.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" -jest-matcher-utils@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.0.tgz#d1d73add0e0efb0e316a50f296977505dc053e02" - integrity sha512-FcEfKZ4vm28yCdBsvC69EkrEhcfex+IYlRctNJXsRG9+WC3WxgBNORnECIgqUtj7o/h1d8o7xB/dFUiLi4bqtw== +jest-matcher-utils@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.1.tgz#2bf876c5f891b33786aadf5d65d5da5970744122" + integrity sha512-hUTBh7H/Mnb6GTpihbLh8uF5rjAMdekfW/oZNXUMAXi7bbmym2HiRpzgqf/zzkjgejMrVAkPdVSQj+32enlUww== dependencies: chalk "^4.0.0" - jest-diff "^29.2.0" + jest-diff "^29.2.1" jest-get-type "^29.2.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" -jest-message-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.0.tgz#cbd43fd9a20a8facd4267ac37556bc5c9a525ec0" - integrity sha512-arBfk5yMFMTnMB22GyG601xGSGthA02vWSewPaxoFo0F9wBqDOyxccPbCcYu8uibw3kduSHXdCOd1PsLSgdomg== +jest-message-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" + integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.0.tgz#3531012881178f59f4b5fd1e243acc329d08d6a1" - integrity sha512-aiWGR0P8ivssIO17xkehLGFtCcef2ZwQFNPwEer1jQLHxPctDlIg3Hs6QMq1KpPz5dkCcgM7mwGif4a9IPznlg== +jest-mock@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.1.tgz#a0d361cffcb28184fa9c5443adbf591fa5759775" + integrity sha512-NDphaY/GqyQpTfnTZiTqqpMaw4Z0I7XnB7yBgrT6IwYrLGxpOhrejYr4ANY4YvO2sEGdd8Tx/6D0+WLQy7/qDA== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-util "^29.2.0" + jest-util "^29.2.1" jest-pnp-resolver@^1.2.2: version "1.2.2" @@ -1831,88 +1831,88 @@ jest-regex-util@^29.2.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.0.tgz#a127b7d6b7df69d4eaf2c7c99f652f17ba0fed71" - integrity sha512-Cd0Z39sDntEnfR9PoUdFHUAGDvtKI0/7Wt73l3lt03A3yQ+A6Qi3XmBuqGjdFl2QbXaPa937oLhilG612P8HGQ== +jest-resolve-dependencies@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.1.tgz#8d717dd41dc615fef1d412d395ea3deccfb1b9fa" + integrity sha512-o3mUGX2j08usj1jIAIE8KmUVpqVAn54k80kI27ldbZf2oJn6eghhB6DvJxjrcH40va9CQgWTfU5f2Ag/MoUqgQ== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.2.0" + jest-snapshot "^29.2.1" -jest-resolve@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.0.tgz#cb9f9770164382785cd68598a9fb0b7e4bb95a9f" - integrity sha512-f5c0ljNg2guDBCC7wi92vAhNuA0BtAG5vkY7Fob0c7sUMU1g87mTXqRmjrVFe2XvdwP5m5T/e5KJsCKu9hRvBA== +jest-resolve@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.1.tgz#a4d2f76db88aeb6ec5f5453c9a40b52483d17799" + integrity sha512-1dJTW76Z9622Viq4yRcwBuEXuzGtE9B2kdl05RC8Om/lAzac9uEgC+M8Q5osVidbuBPmxm8wSrcItYhca2ZAtQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" + jest-haste-map "^29.2.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.2.0" - jest-validate "^29.2.0" + jest-util "^29.2.1" + jest-validate "^29.2.1" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.0.tgz#d621e67a2d59d5bc302eca1f5348615ce166712c" - integrity sha512-VPBrCwl9fM2mc5yk6yZhNrgXzRJMD5jfLmntkMLlrVq4hQPWbRK998iJlR+DOGCO04TC9PPYLntOJ001Vnf28g== - dependencies: - "@jest/console" "^29.2.0" - "@jest/environment" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" +jest-runner@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.1.tgz#885afe64661cb2f51f84c1b97afb713d1093c124" + integrity sha512-PojFI+uVhQ4u4YZKCN/a3yU0/l/pJJXhq1sW3JpCp8CyvGBYGddRFPKZ1WihApusxqWRTHjBJmGyPWv6Av2lWA== + dependencies: + "@jest/console" "^29.2.1" + "@jest/environment" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.2.0" - jest-haste-map "^29.2.0" - jest-leak-detector "^29.2.0" - jest-message-util "^29.2.0" - jest-resolve "^29.2.0" - jest-runtime "^29.2.0" - jest-util "^29.2.0" - jest-watcher "^29.2.0" - jest-worker "^29.2.0" + jest-environment-node "^29.2.1" + jest-haste-map "^29.2.1" + jest-leak-detector "^29.2.1" + jest-message-util "^29.2.1" + jest-resolve "^29.2.1" + jest-runtime "^29.2.1" + jest-util "^29.2.1" + jest-watcher "^29.2.1" + jest-worker "^29.2.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.0.tgz#6b10d9539c1f7af32d06fccd7d16b6c9996c9cb2" - integrity sha512-+GDmzCrswQF+mvI0upTYMe/OPYnlRRNLLDHM9AFLp2y7zxWoDoYgb8DL3WwJ8d9m743AzrnvBV9JQHi/0ed7dg== +jest-runtime@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.1.tgz#62e3a23c33710ae4d9c3304dda851a5fb225b574" + integrity sha512-PSQ880OoIW9y8E6/jjhGn3eQNgNc6ndMzCZaKqy357bv7FqCfSyYepu3yDC6Sp1Vkt+GhP2M/PVgldS2uZSFZg== dependencies: - "@jest/environment" "^29.2.0" - "@jest/fake-timers" "^29.2.0" - "@jest/globals" "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/fake-timers" "^29.2.1" + "@jest/globals" "^29.2.1" "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.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.2.0" - jest-message-util "^29.2.0" - jest-mock "^29.2.0" + jest-haste-map "^29.2.1" + jest-message-util "^29.2.1" + jest-mock "^29.2.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.0" - jest-snapshot "^29.2.0" - jest-util "^29.2.0" + jest-resolve "^29.2.1" + jest-snapshot "^29.2.1" + jest-util "^29.2.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.0.tgz#fb3d4e1d9df579f37d7c60072877ee99376b6090" - integrity sha512-YCKrOR0PLRXROmww73fHO9oeY4tL+LPQXWR3yml1+hKbQDR8j1VUrVzB65hKSJJgxBOr1vWx+hmz2by8JjAU5w== +jest-snapshot@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.1.tgz#f3843b3099c8fec7e6218dea18cc506f10ea5d30" + integrity sha512-KZdLD7iEz5M4ZYd+ezZ/kk73z+DtNbk/yJ4Qx7408Vb0CCuclJIZPa/HmIwSsCfIlOBNcYTKufr7x/Yv47oYlg== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1920,82 +1920,82 @@ jest-snapshot@^29.2.0: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/expect-utils" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.2.0" + expect "^29.2.1" graceful-fs "^4.2.9" - jest-diff "^29.2.0" + jest-diff "^29.2.1" jest-get-type "^29.2.0" - jest-haste-map "^29.2.0" - jest-matcher-utils "^29.2.0" - jest-message-util "^29.2.0" - jest-util "^29.2.0" + jest-haste-map "^29.2.1" + jest-matcher-utils "^29.2.1" + jest-message-util "^29.2.1" + jest-util "^29.2.1" natural-compare "^1.4.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" semver "^7.3.5" -jest-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.0.tgz#797935697e83a5722aeba401ed6cd01264295566" - integrity sha512-8M1dx12ujkBbnhwytrezWY0Ut79hbflwodE+qZKjxSRz5qt4xDp6dQQJaOCFvCmE0QJqp9KyEK33lpPNjnhevw== +jest-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" + integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.0.tgz#e40faf33759365c12ead6a45165349d660d09ba4" - integrity sha512-4Vl51bPNeFeDok9aJiOnrC6tqJbOp4iMCYlewoC2ZzYJZ5+6pfr3KObAdx5wP8auHcg2MRaguiqj5OdScZa72g== +jest-validate@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.1.tgz#db814ce12c4c7e4746044922762e56eb177d066c" + integrity sha512-DZVX5msG6J6DL5vUUw+++6LEkXUsPwB5R7fsfM7BXdz2Ipr0Ib046ak+8egrwAR++pvSM/5laxLK977ieIGxkQ== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" -jest-watcher@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.0.tgz#d0c58ff76d3dd22fff79f3f9cbeadaa749d2ca6e" - integrity sha512-bRh0JdUeN+cl9XfK7tMnXLm4Mv70hG2SZlqbkFe5CTs7oeCkbwlGBk/mEfEJ63mrxZ8LPbnfaMpfSmkhEQBEGA== +jest-watcher@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.1.tgz#1cb91f8aa9e77b1332af139944ad65e51430d7c3" + integrity sha512-7jFaHUaRq50l4w/f6RuY713bvI5XskMmjWCE54NGYcY74fLkShS8LucXJke1QfGnwDSCoIqGnGGGKPwdaBYz2Q== dependencies: - "@jest/test-result" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^29.2.0" + jest-util "^29.2.1" string-length "^4.0.1" -jest-worker@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.0.tgz#b2bd1a81fc7a1ae79a500b05f5feb0d1c0b1a19e" - integrity sha512-mluOlMbRX1H59vGVzPcVg2ALfCausbBpxC8a2KWOzInhYHZibbHH8CB0C1JkmkpfurrkOYgF7FPmypuom1OM9A== +jest-worker@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1" + integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg== dependencies: "@types/node" "*" - jest-util "^29.2.0" + jest-util "^29.2.1" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.0.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.0.tgz#e7997bc603f31e04edbbe87dd24cf6e7c432abac" - integrity sha512-6krPemKUXCEu5Fh3j6ZVoLMjpTQVm0OCU+7f3K/9gllX8wNIE6NSCQ6s0q2RDoiKLRaQlVRHyscjSPRPqCI0Fg== + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.1.tgz#352ec0b81a0e436691d546d984cd7d8f72ffd26a" + integrity sha512-K0N+7rx+fv3Us3KhuwRSJt55MMpZPs9Q3WSO/spRZSnsalX8yEYOTQ1PiSN7OvqzoRX4JEUXCbOJRlP4n8m5LA== dependencies: - "@jest/core" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/core" "^29.2.1" + "@jest/types" "^29.2.1" import-local "^3.0.2" - jest-cli "^29.2.0" + jest-cli "^29.2.1" js-sdsl@^4.1.4: version "4.1.4" @@ -2321,10 +2321,10 @@ prettier@>=2.3.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.0.tgz#1d4ea56fb46079b44efd9ed59c14f70f2950a61b" - integrity sha512-QCSUFdwOi924g24czhOH5eTkXxUCqlLGZBRCySlwDYHIXRJkdGyjJc9nZaqhlFBZws8dq5Dvk0lCilsmlfsPxw== +pretty-format@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" + integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" From 9b61d480155237d0b1713597ee746d00674126e6 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 19 Oct 2022 10:37:20 -0400 Subject: [PATCH 134/262] Attempt to fix windows CI --- .github/workflows/main.yml | 100 +-- src/parse.js | 21 +- src/server.rb | 58 +- yarn.lock | 1206 ++++++++++++++++++------------------ 4 files changed, 685 insertions(+), 700 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 52484688..19603cab 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,9 +33,9 @@ jobs: - run: yarn test - run: bundle exec rake test - lint: - name: Lint - runs-on: ubuntu-latest + windows: + name: Windows + runs-on: windows-latest env: PLUGIN_RUBY_CI: true steps: @@ -43,28 +43,13 @@ jobs: - uses: ruby/setup-ruby@v1 with: bundler-cache: true - ruby-version: "3.0" - - uses: actions/setup-node@v2 - with: - node-version: 16.x - cache: yarn - - run: yarn install --frozen-lockfile - - run: yarn checkFormat - - run: yarn lint + ruby-version: '3.1' + - run: timeout -k 2 2 bundle exec ruby src/server.rb --plugins= file.txt || ls + - run: cat file.txt - smoketest: - name: Yarn PnP smoke test - strategy: - fail-fast: false - matrix: - platform: - - macos-latest - - ubuntu-latest - - windows-latest - yarn: - - 2.x - - 3.x - runs-on: ${{ matrix.platform }} + lint: + name: Lint + runs-on: ubuntu-latest env: PLUGIN_RUBY_CI: true steps: @@ -72,29 +57,58 @@ jobs: - uses: ruby/setup-ruby@v1 with: bundler-cache: true - ruby-version: "3.1" - - run: gem install syntax_tree syntax_tree-haml syntax_tree-rbs + ruby-version: "3.0" - uses: actions/setup-node@v2 with: - node-version: 18.x + node-version: 16.x cache: yarn - run: yarn install --frozen-lockfile - - run: yarn pack - # Windows runners don't have /tmp, let's make sure it exists - - run: mkdir -p /tmp - - run: mv prettier-plugin-ruby-*.tgz /tmp/prettier-plugin-ruby.tgz - - run: mkdir /tmp/smoketest - - name: Smoke test - run: | - cd /tmp/smoketest - echo '{ "name": "smoketest", "type": "module", "license": "MIT" }' > package.json - yarn set version berry # workaround for https://github.com/yarnpkg/berry/issues/3180 - yarn set version ${{ matrix.yarn }} - yarn add prettier@next @prettier/plugin-ruby@file:/tmp/prettier-plugin-ruby.tgz - npx rimraf .yarn/unplugged # Make sure Yarn didn't unplug anything; this will deliberately break if it did - echo '{ "plugins": ["@prettier/plugin-ruby"] }' > .prettierrc.json - echo 'def add(a, b) ; a + b ; end' > smoketest.rb - yarn run prettier -w smoketest.rb && ruby -c smoketest.rb + - run: yarn checkFormat + - run: yarn lint + + # smoketest: + # name: Yarn PnP smoke test + # strategy: + # fail-fast: false + # matrix: + # platform: + # - macos-latest + # - ubuntu-latest + # - windows-latest + # yarn: + # - 2.x + # - 3.x + # runs-on: ${{ matrix.platform }} + # env: + # PLUGIN_RUBY_CI: true + # steps: + # - uses: actions/checkout@main + # - uses: ruby/setup-ruby@v1 + # with: + # bundler-cache: true + # ruby-version: "3.1" + # - run: gem install syntax_tree syntax_tree-haml syntax_tree-rbs + # - uses: actions/setup-node@v2 + # with: + # node-version: 18.x + # cache: yarn + # - run: yarn install --frozen-lockfile + # - run: yarn pack + # # Windows runners don't have /tmp, let's make sure it exists + # - run: mkdir -p /tmp + # - run: mv prettier-plugin-ruby-*.tgz /tmp/prettier-plugin-ruby.tgz + # - run: mkdir /tmp/smoketest + # - name: Smoke test + # run: | + # cd /tmp/smoketest + # echo '{ "name": "smoketest", "type": "module", "license": "MIT" }' > package.json + # yarn set version berry # workaround for https://github.com/yarnpkg/berry/issues/3180 + # yarn set version ${{ matrix.yarn }} + # yarn add prettier@next @prettier/plugin-ruby@file:/tmp/prettier-plugin-ruby.tgz + # npx rimraf .yarn/unplugged # Make sure Yarn didn't unplug anything; this will deliberately break if it did + # echo '{ "plugins": ["@prettier/plugin-ruby"] }' > .prettierrc.json + # echo 'def add(a, b) ; a + b ; end' > smoketest.rb + # yarn run prettier -w smoketest.rb && ruby -c smoketest.rb gem: name: Gem diff --git a/src/parse.js b/src/parse.js index 1e6f536a..97543038 100644 --- a/src/parse.js +++ b/src/parse.js @@ -75,26 +75,7 @@ export async function spawnServer(opts) { // system. if (process.versions.pnp) { if (url.fileURLToPath(new URL(".", import.meta.url)).includes(".zip")) { - // serverRbPath = path.join(tmpdir, "server.rb"); - // const rubyFile = "server.rb"; - // const destDir = path.join(tmpdir, path.dirname(rubyFile)); - // if (!existsSync(destDir)) { - // mkdirSync(destDir); - // } - // copyFileSync( - // url.fileURLToPath(new URL(`../src/${rubyFile}`, import.meta.url)), - // path.join(tmpdir, rubyFile) - // ); - // cleanupTempFiles = () => { - // const tmpFilePath = path.join(tmpdir, "server.rb"); - // if (existsSync(tmpFilePath)) { - // unlinkSync(tmpFilePath); - // } - // const tempSubdir = path.join(tmpdir, path.dirname("server.rb")); - // if (existsSync(tempSubdir)) { - // rmdirSync(tempSubdir); - // } - // }; + // TODO: wait for prettier to get support back for pnp } } diff --git a/src/server.rb b/src/server.rb index 0ee42d51..f3c1336e 100644 --- a/src/server.rb +++ b/src/server.rb @@ -27,37 +27,34 @@ trap(:QUIT) { quit = true } end -if Gem.win_platform? - # If we're on windows, we're going to start up a TCP server. The 0 here means - # to bind to some available port. - server = TCPServer.new("127.0.0.1", 0) - address = server.local_address - - # Ensure that we close the server when this process exits. - at_exit { server.close } - - File.write( - connection_filepath, - JSON.fast_generate(address: address.ip_address, port: address.ip_port) - ) -else - # If we're not on windows, then we're going to assume we can use unix socket - # files (since they're faster than a TCP server). - filepath = "/tmp/prettier-ruby-parser-#{Process.pid}.sock" - server = UNIXServer.new(filepath) - - # Ensure that we close the server and delete the socket file when this - # process exits. - at_exit do - server.close - File.unlink(filepath) - end +connection_information = + if Gem.win_platform? + # If we're on windows, we're going to start up a TCP server. The 0 here means + # to bind to some available port. + server = TCPServer.new("0.0.0.0", 0) + address = server.local_address + + # Ensure that we close the server when this process exits. + at_exit { server.close } + + # Return the connection information. + { address: address.ip_address, port: address.ip_port } + else + # If we're not on windows, then we're going to assume we can use unix socket + # files (since they're faster than a TCP server). + filepath = "/tmp/prettier-ruby-parser-#{Process.pid}.sock" + server = UNIXServer.new(filepath) + + # Ensure that we close the server and delete the socket file when this + # process exits. + at_exit do + server.close + File.unlink(filepath) + end - File.write( - connection_filepath, - JSON.fast_generate(path: server.local_address.unix_path) - ) -end + # Return the connection information. + { path: server.local_address.unix_path } + end # This is the actual listening thread that will be acting as our server. We have # to start it in another thread in order to properly trap the signals in this @@ -161,4 +158,5 @@ end end +File.write(connection_filepath, JSON.fast_generate(connection_information)) listener.join diff --git a/yarn.lock b/yarn.lock index 203b4121..4fb99fc8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,157 +10,155 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: - "@babel/highlight" "^7.16.7" + "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" - integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== +"@babel/compat-data@^7.19.3": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747" + integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.10.tgz#74ef0fbf56b7dfc3f198fc2d927f4f03e12f4b05" - integrity sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA== + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" + integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== dependencies: "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" - "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-module-transforms" "^7.17.7" - "@babel/helpers" "^7.17.9" - "@babel/parser" "^7.17.10" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.10" - "@babel/types" "^7.17.10" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.3" + "@babel/helper-compilation-targets" "^7.19.3" + "@babel/helper-module-transforms" "^7.19.0" + "@babel/helpers" "^7.19.0" + "@babel/parser" "^7.19.3" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.3" + "@babel/types" "^7.19.3" 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/generator@^7.17.10", "@babel/generator@^7.7.2": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189" - integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== +"@babel/generator@^7.19.3", "@babel/generator@^7.19.4", "@babel/generator@^7.7.2": + version "7.19.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.5.tgz#da3f4b301c8086717eee9cab14da91b1fa5dcca7" + integrity sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg== dependencies: - "@babel/types" "^7.17.10" - "@jridgewell/gen-mapping" "^0.1.0" + "@babel/types" "^7.19.4" + "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe" - integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ== +"@babel/helper-compilation-targets@^7.19.3": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca" + integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.20.2" + "@babel/compat-data" "^7.19.3" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - -"@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-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + 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-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== dependencies: - "@babel/types" "^7.16.7" + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" -"@babel/helper-module-transforms@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" - integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== 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.17.3" - "@babel/types" "^7.17.0" - -"@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.8.0": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-plugin-utils@^7.18.6": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" - integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== + "@babel/types" "^7.18.6" -"@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-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" + integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@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.8.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" + integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== + +"@babel/helper-simple-access@^7.18.6": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz#be553f4951ac6352df2567f7daa19a0ee15668e7" + integrity sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg== + dependencies: + "@babel/types" "^7.19.4" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== dependencies: - "@babel/types" "^7.17.0" + "@babel/types" "^7.18.6" -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helpers@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.9.tgz#b2af120821bfbe44f9907b1826e168e819375a1a" - integrity sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q== +"@babel/helpers@^7.19.0": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.4.tgz#42154945f87b8148df7203a25c31ba9a73be46c5" + integrity sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw== dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.9" - "@babel/types" "^7.17.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.4" + "@babel/types" "^7.19.4" -"@babel/highlight@^7.16.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" - integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" - integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3", "@babel/parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.4.tgz#03c4339d2b8971eb3beca5252bafd9b9f79db3dc" + integrity sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -254,43 +252,44 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.10.tgz#80031e6042cad6a95ed753f672ebd23c30933195" - integrity sha512-xJefea1DWXW09pW4Tm9bjwVlPDyYA2it3fWlmEjpYz6alPvTUjL0EOzNzI/FEOyI3r4/J7uVH5UqKgl1TQ5hqQ== - dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - -"@babel/template@^7.16.7", "@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/traverse@^7.17.10", "@babel/traverse@^7.17.3", "@babel/traverse@^7.17.9", "@babel/traverse@^7.7.2": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" - integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" - "@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.17.10" - "@babel/types" "^7.17.10" + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" + integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/template@^7.18.10", "@babel/template@^7.3.3": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" + +"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.3", "@babel/traverse@^7.19.4", "@babel/traverse@^7.7.2": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.4.tgz#f117820e18b1e59448a6c1fa9d0ff08f7ac459a8" + integrity sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.4" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.19.4" + "@babel/types" "^7.19.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.17.10", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" - integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" + integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -314,9 +313,9 @@ strip-json-comments "^3.1.1" "@humanwhocodes/config-array@^0.10.5": - version "0.10.5" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.5.tgz#bb679745224745fff1e9a41961c1d45a49f81c04" - integrity sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug== + version "0.10.7" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.7.tgz#6d53769fd0c222767e6452e8ebda825c22e9f0dc" + integrity sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -348,28 +347,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.0.tgz#e906bdbfc83baf79590f05b515dad900b3b71fed" - integrity sha512-Xz1Wu+ZZxcB3RS8U3HdkFxlRJ7kLXI/by9X7d2/gvseIWPwYu/c1EsYy77cB5iyyHGOy3whS2HycjcuzIF4Jow== +"@jest/console@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.1.tgz#5f2c62dcdd5ce66e94b6d6729e021758bceea090" + integrity sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.2.0" - jest-util "^29.2.0" + jest-message-util "^29.2.1" + jest-util "^29.2.1" slash "^3.0.0" -"@jest/core@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.0.tgz#beed57c552be65d4e4ab2f4161d0abe8ea6bf3a8" - integrity sha512-+gyJ3bX+kGEW/eqt/0kI7fLjqiFr3AN8O+rlEl1fYRf7D8h4Sj4tBGo9YOSirvWgvemoH2EPRya35bgvcPFzHQ== - dependencies: - "@jest/console" "^29.2.0" - "@jest/reporters" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" +"@jest/core@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.1.tgz#30af794ebd73bfb87cd8ba36718738dfe38b772e" + integrity sha512-kuLKYqnqgerXkBUwlHVxeSuhSnd+JMnMCLfU98bpacBSfWEJPegytDh3P2m15/JHzet32hGGld4KR4OzMb6/Tg== + dependencies: + "@jest/console" "^29.2.1" + "@jest/reporters" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -377,80 +376,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.2.0" - jest-config "^29.2.0" - jest-haste-map "^29.2.0" - jest-message-util "^29.2.0" + jest-config "^29.2.1" + jest-haste-map "^29.2.1" + jest-message-util "^29.2.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.0" - jest-resolve-dependencies "^29.2.0" - jest-runner "^29.2.0" - jest-runtime "^29.2.0" - jest-snapshot "^29.2.0" - jest-util "^29.2.0" - jest-validate "^29.2.0" - jest-watcher "^29.2.0" + jest-resolve "^29.2.1" + jest-resolve-dependencies "^29.2.1" + jest-runner "^29.2.1" + jest-runtime "^29.2.1" + jest-snapshot "^29.2.1" + jest-util "^29.2.1" + jest-validate "^29.2.1" + jest-watcher "^29.2.1" micromatch "^4.0.4" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.0.tgz#7e5604e4ead098572056a962a970f3d79379fbd8" - integrity sha512-foaVv1QVPB31Mno3LlL58PxEQQOLZd9zQfCpyQQCQIpUAtdFP1INBjkphxrCfKT13VxpA0z5jFGIkmZk0DAg2Q== +"@jest/environment@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.1.tgz#acb1994fbd5ad02819a1a34a923c531e6923b665" + integrity sha512-EutqA7T/X6zFjw6mAWRHND+ZkTPklmIEWCNbmwX6uCmOrFrWaLbDZjA+gePHJx6fFMMRvNfjXcvzXEtz54KPlg== dependencies: - "@jest/fake-timers" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/fake-timers" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.0" + jest-mock "^29.2.1" -"@jest/expect-utils@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.0.tgz#3c0c472115d98211e7e0a0a8fa00719bf081987f" - integrity sha512-nz2IDF7nb1qmj9hx8Ja3MFab2q9Ml8QbOaaeJNyX5JQJHU8QUvEDiMctmhGEkk3Kzr8w8vAqz4hPk/ogJSrUhg== +"@jest/expect-utils@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.1.tgz#eae61c90f2066540f60d23b8f254f03b7869b22f" + integrity sha512-yr4aHNg5Z1CjKby5ozm7sKjgBlCOorlAoFcvrOQ/4rbZRfgZQdnmh7cth192PYIgiPZo2bBXvqdOApnAMWFJZg== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.0.tgz#25316d2ae930e7bb9df96cce7521053d377c4c0d" - integrity sha512-+3lxcYL9e0xPJGOR33utxxejn+Mulz40kY0oy0FVsmIESW87NZDJ7B1ovaIqeX0xIgPX4laS5SGlqD2uSoBMcw== +"@jest/expect@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.1.tgz#8d99be3886ebfcffd6cabb2b46602a301b976ffe" + integrity sha512-o14R2t2tHHHudwji43UKkzmmH49xfF5T++FQBK2tl88qwuBWQOcx7fNUYl+mA/9TPNAN0FkQ3usnpyS8FUwsvQ== dependencies: - expect "^29.2.0" - jest-snapshot "^29.2.0" + expect "^29.2.1" + jest-snapshot "^29.2.1" -"@jest/fake-timers@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.0.tgz#e43635c1bd73b23886e80ca12307092ef2ee1929" - integrity sha512-mX0V0uQsgeSLTt0yTqanAhhpeUKMGd2uq+PSLAfO40h72bvfNNQ7pIEl9vIwNMFxRih1ENveEjSBsLjxGGDPSw== +"@jest/fake-timers@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.1.tgz#786d60e8cb60ca70c9f913cb49fcc77610c072bb" + integrity sha512-KWil+8fef7Uj/P/PTZlPKk1Pw117wAmr71VWFV8ZDtRtkwmTG8oY4IRf0Ss44J2y5CYRy8d/zLOhxyoGRENjvA== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.2.0" - jest-mock "^29.2.0" - jest-util "^29.2.0" + jest-message-util "^29.2.1" + jest-mock "^29.2.1" + jest-util "^29.2.1" -"@jest/globals@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.0.tgz#5cfc41c028efaf511624ba086d64113d5a8a92b3" - integrity sha512-JQxtEVNWiai1p3PIzAJZSyEqQdAJGvNKvinZDPfu0mhiYEVx6E+PiBuDWj1sVUW8hzu+R3DVqaWC9K2xcLRIAA== +"@jest/globals@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.1.tgz#6933beb8b4e43b990409a19c462fde7b71210e63" + integrity sha512-Z4EejYPP1OPVq2abk1+9urAwJqkgw5jB2UJGlPjb5ZwzPQF8WLMcigKEfFzZb2OHhEVPP0RZD0/DbVTY1R6iQA== dependencies: - "@jest/environment" "^29.2.0" - "@jest/expect" "^29.2.0" - "@jest/types" "^29.2.0" - jest-mock "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/expect" "^29.2.1" + "@jest/types" "^29.2.1" + jest-mock "^29.2.1" -"@jest/reporters@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.0.tgz#24cac16d997ec91a9c615db2621805ee485689e0" - integrity sha512-BXoAJatxTZ18U0cwD7C8qBo8V6vef8AXYRBZdhqE5DF9CmpqmhMfw9c7OUvYqMTnBBK9A0NgXGO4Lc9EJzdHvw== +"@jest/reporters@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.1.tgz#599e4376823751fdda50f2ca97243e013da10c4d" + integrity sha512-sCsfUKM/yIF4nNed3e/rIgVIS58EiASGMDEPWqItfLZ9UO1ALW2ASDNJzdWkxEt0T8o2Ztj619G0KKrvK+McAw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/console" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -463,9 +462,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.2.0" - jest-util "^29.2.0" - jest-worker "^29.2.0" + jest-message-util "^29.2.1" + jest-util "^29.2.1" + jest-worker "^29.2.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -487,51 +486,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.0.tgz#3dcc7123b8f0fb5ba1f650ce17af45cce91a0323" - integrity sha512-l76EPJ6QqtzsCLS4aimJqWO53pxZ82o3aE+Brcmo1HJ/phb9+MR7gPhyDdN6VSGaLJCRVJBZgWEhAEz+qON0Fw== +"@jest/test-result@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.1.tgz#f42dbf7b9ae465d0a93eee6131473b8bb3bd2edb" + integrity sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA== dependencies: - "@jest/console" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/console" "^29.2.1" + "@jest/types" "^29.2.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.0.tgz#acd875533f7ad01cb22da59ff4047de18e9d64da" - integrity sha512-NCnjZcGnVdva6IDqF7TCuFsXs2F1tohiNF9sasSJNzD7VfN5ic9XgcS/oPDalGiPLxCmGKj4kewqqrKAqBACcQ== +"@jest/test-sequencer@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.1.tgz#cafd2c5f3528c70bd4cc243800459ac366e480cc" + integrity sha512-O/pnk0/xGj3lxPVNwB6HREJ7AYvUdyP2xo/s14/9Dtf091HoOeyIhWLKQE/4HzB8lNQBMo6J5mg0bHz/uCWK7w== dependencies: - "@jest/test-result" "^29.2.0" + "@jest/test-result" "^29.2.1" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" + jest-haste-map "^29.2.1" slash "^3.0.0" -"@jest/transform@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.0.tgz#1c55ca549f64810351df999265a29f8ead51be15" - integrity sha512-NXMujGHy+B4DAj4dGnVPD0SIXlR2Z/N8Gp9h3mF66kcIRult1WWqY3/CEIrJcKviNWaFPYhZjCG2L3fteWzcUw== +"@jest/transform@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.1.tgz#f3d8154edd19cdbcaf1d6646bd8f4ff7812318a2" + integrity sha512-xup+iEuaIRSQabQaeqxaQyN0vg1Dctrp9oTObQsNf3sZEowTIa5cANYuoyi8Tqhg4GCqEVLTf18KW7ii0UeFVA== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" + jest-haste-map "^29.2.1" jest-regex-util "^29.2.0" - jest-util "^29.2.0" + jest-util "^29.2.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.0.tgz#c0d1ef8bc1e4f4b358e7877e34157371e7881b0b" - integrity sha512-mfgpQz4Z2xGo37m6KD8xEpKelaVzvYVRijmLPePn9pxgaPEtX+SqIyPNzzoeCPXKYbB4L/wYSgXDL8o3Gop78Q== +"@jest/types@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" + integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -548,44 +547,37 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" - integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== - -"@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/sourcemap-codec@^1.4.10": - version "1.4.13" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" - integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== - -"@jridgewell/trace-mapping@^0.3.12": - version "0.3.14" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" - integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: - "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/trace-mapping@^0.3.15": - version "0.3.15" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" - integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.0", "@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/trace-mapping@^0.3.9": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" - integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -609,9 +601,9 @@ fastq "^1.6.0" "@sinclair/typebox@^0.24.1": - version "0.24.19" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.19.tgz#5297278e0d8a1aea084685a3216074910ac6c113" - integrity sha512-gHJu8cdYTD5p4UqmQHrxaWrtb/jkH5imLXzuBypWhKzNkW0qfmgz+w1xaJccWVuJta1YYUdlDiPHXRTR4Ku0MQ== + version "0.24.47" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.47.tgz#530b67163714356f93e82bdb871e7db4b7bc564e" + integrity sha512-J4Xw0xYK4h7eC34MNOPQi6IkNxGRck6n4VJpWDzXIFVTW8I/D43Gf+NfWz/v/7NHlzWOPd3+T4PJ4OqklQ2u7A== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -654,9 +646,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.17.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.17.1.tgz#1a0e73e8c28c7e832656db372b779bfd2ef37314" - integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== + version "7.18.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" + integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== dependencies: "@babel/types" "^7.3.0" @@ -692,14 +684,14 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "17.0.32" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.32.tgz#51d59d7a90ef2d0ae961791e0900cad2393a0149" - integrity sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw== + version "18.11.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.2.tgz#c59b7641832531264fda3f1ba610362dc9a7dfc8" + integrity sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw== "@types/prettier@^2.1.5": - version "2.6.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.6.0.tgz#efcbd41937f9ae7434c714ab698604822d890759" - integrity sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw== + version "2.7.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" + integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== "@types/stack-utils@^2.0.0": version "2.0.1" @@ -712,9 +704,9 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@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== + version "17.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" + integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== dependencies: "@types/yargs-parser" "*" @@ -804,12 +796,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.0.tgz#088624f037da90e69a06073305276cbd111d68a8" - integrity sha512-c8FkrW1chgcbyBqOo7jFGpQYfVnb43JqjQGV+C2r94k2rZJOukYOZ6+csAqKE4ms+PHc+yevnONxs27jQIxylw== +babel-jest@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.1.tgz#213c47e28072de11bdb98c9d29b89f2ab99664f1" + integrity sha512-gQJwArok0mqoREiCYhXKWOgUhElJj9DpnssW6GL8dG7ARYqHEhrM9fmPHTjdqEGRVXZAd6+imo3/Vwa8TjLcsw== dependencies: - "@jest/transform" "^29.2.0" + "@jest/transform" "^29.2.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -884,16 +876,15 @@ braces@^3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.20.2: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== +browserslist@^4.21.3: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" + node-releases "^2.0.6" + update-browserslist-db "^1.0.9" bser@2.1.1: version "2.1.1" @@ -922,10 +913,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001332: - version "1.0.30001340" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001340.tgz#029a2f8bfc025d4820fafbfaa6259fd7778340c7" - integrity sha512-jUNz+a9blQTQVu4uFcn17uAD8IDizPzQkIKh3LCJfg9BkyIqExYYdyc/ZSlWUSKb8iYiXxKsxbv4zYSvkqjrxw== +caniuse-lite@^1.0.30001400: + version "1.0.30001422" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz#f2d7c6202c49a8359e6e35add894d88ef93edba1" + integrity sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog== chalk@^2.0.0: version "2.4.2" @@ -958,28 +949,28 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== ci-info@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.1.tgz#58331f6f472a25fe3a50a351ae3052936c2c7f32" - integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg== + version "3.5.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.5.0.tgz#bfac2a29263de4c829d806b1ab478e35091e171f" + integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw== 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== -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== +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" wrap-ansi "^7.0.0" co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== collect-v8-coverage@^1.0.0: version "1.0.1" @@ -1003,7 +994,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -1013,14 +1004,12 @@ color-name@~1.1.4: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" @@ -1041,7 +1030,7 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== deep-is@^0.1.3: version "0.1.4" @@ -1077,10 +1066,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -electron-to-chromium@^1.4.118: - version "1.4.137" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" - integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== +electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== emittery@^0.10.2: version "0.10.2" @@ -1114,7 +1103,7 @@ escalade@^3.1.1: 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" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^2.0.0: version "2.0.0" @@ -1271,18 +1260,18 @@ execa@^5.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= + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.0.tgz#b90c6df52be7abfd9f206f273fbcf8b33d8f332d" - integrity sha512-03ClF3GWwUqd9Grgkr9ZSdaCJGMRA69PQ8jT7o+Bx100VlGiAFf9/8oIm9Qve7ZVJhuJxFftqFhviZJRxxNfvg== +expect@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.1.tgz#25752d0df92d3daa5188dc8804de1f30759658cf" + integrity sha512-BJtA754Fba0YWRWHgjKUMTA3ltWarKgITXHQnbZ2mTxTXC4yMQlR0FI7HkB3fJYkhWBf4qjNiqvg3LDtXCcVRQ== dependencies: - "@jest/expect-utils" "^29.2.0" + "@jest/expect-utils" "^29.2.1" jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.0" - jest-message-util "^29.2.0" - jest-util "^29.2.0" + jest-matcher-utils "^29.2.1" + jest-message-util "^29.2.1" + jest-util "^29.2.1" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1290,9 +1279,9 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -1308,7 +1297,7 @@ fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: 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= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: version "1.13.0" @@ -1318,9 +1307,9 @@ fastq@^1.6.0: 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== + 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" @@ -1363,14 +1352,14 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^2.3.2: version "2.3.2" @@ -1424,14 +1413,14 @@ glob-parent@^6.0.1: is-glob "^4.0.3" glob@^7.1.3, glob@^7.1.4: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" @@ -1441,9 +1430,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.15.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== dependencies: type-fest "^0.20.2" @@ -1472,7 +1461,7 @@ grapheme-splitter@^1.0.4: has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" @@ -1530,12 +1519,12 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -1548,19 +1537,19 @@ inherits@2: is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-core-module@^2.8.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -1592,7 +1581,7 @@ is-stream@^2.0.0: isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" @@ -1600,9 +1589,9 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz#31d18bdd127f825dd02ea7bfdfd906f8ab840e9f" - integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" @@ -1629,9 +1618,9 @@ istanbul-lib-source-maps@^4.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== + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -1644,86 +1633,86 @@ jest-changed-files@^29.2.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.0.tgz#692ddf3b12a5ae6326f2f37b9d176c68777fcf4c" - integrity sha512-bpJRMe+VtvYlF3q8JNx+/cAo4FYvNCiR5s7Z0Scf8aC+KJ2ineSjZKtw1cIZbythlplkiro0My8nc65pfCqJ3A== +jest-circus@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.1.tgz#1385353d9bca6acf58f916068bbeffcfc95bef02" + integrity sha512-W+ZQQ5ln4Db2UZNM4NJIeasnhCdDhSuYW4eLgNAUi0XiSSpF634Kc5wiPvGiHvTgXMFVn1ZgWIijqhi9+kLNLg== dependencies: - "@jest/environment" "^29.2.0" - "@jest/expect" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/expect" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.2.0" - jest-matcher-utils "^29.2.0" - jest-message-util "^29.2.0" - jest-runtime "^29.2.0" - jest-snapshot "^29.2.0" - jest-util "^29.2.0" + jest-each "^29.2.1" + jest-matcher-utils "^29.2.1" + jest-message-util "^29.2.1" + jest-runtime "^29.2.1" + jest-snapshot "^29.2.1" + jest-util "^29.2.1" p-limit "^3.1.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.0.tgz#c6ca40889d6671c38b1cf9119d3b653809f31a3a" - integrity sha512-/581TzbXeO+5kbtSlhXEthGiVJCC8AP0jgT0iZINAAMW+tTFj2uWU7z+HNUH5yIYdHV7AvRr0fWLrmHJGIruHg== +jest-cli@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.1.tgz#fbfa90b87b27a04e1041cc9d33ee80f32e2f2528" + integrity sha512-UIMD5aNqvPKpdlJSaeUAoLfxsh9TZvOkaMETx5qXnkboc317bcbb0eLHbIj8sFBHdcJAIAM+IRKnIU7Wi61MBw== dependencies: - "@jest/core" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/core" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.2.0" - jest-util "^29.2.0" - jest-validate "^29.2.0" + jest-config "^29.2.1" + jest-util "^29.2.1" + jest-validate "^29.2.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.0.tgz#8823f35255f696444a882721e624d7ad352e208b" - integrity sha512-IkdCsrHIoxDPZAyFcdtQrCQ3uftLqns6Joj0tlbxiAQW4k/zTXmIygqWBmPNxO9FbFkDrhtYZiLHXjaJh9rS+Q== +jest-config@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.1.tgz#2182af014d6c73978208626335db5134803dd183" + integrity sha512-EV5F1tQYW/quZV2br2o88hnYEeRzG53Dfi6rSG3TZBuzGQ6luhQBux/RLlU5QrJjCdq3LXxRRM8F1LP6DN1ycA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.2.0" - "@jest/types" "^29.2.0" - babel-jest "^29.2.0" + "@jest/test-sequencer" "^29.2.1" + "@jest/types" "^29.2.1" + babel-jest "^29.2.1" 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.2.0" - jest-environment-node "^29.2.0" + jest-circus "^29.2.1" + jest-environment-node "^29.2.1" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.2.0" - jest-runner "^29.2.0" - jest-util "^29.2.0" - jest-validate "^29.2.0" + jest-resolve "^29.2.1" + jest-runner "^29.2.1" + jest-util "^29.2.1" + jest-validate "^29.2.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.0.tgz#b1e11ac1a1401fc4792ef8ba406b48f1ae7d2bc5" - integrity sha512-GsH07qQL+/D/GxlnU+sSg9GL3fBOcuTlmtr3qr2pnkiODCwubNN2/7slW4m3CvxDsEus/VEOfQKRFLyXsUlnZw== +jest-diff@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" + integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== dependencies: chalk "^4.0.0" diff-sequences "^29.2.0" jest-get-type "^29.2.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" jest-docblock@^29.2.0: version "29.2.0" @@ -1732,94 +1721,94 @@ jest-docblock@^29.2.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.0.tgz#0f89c1233d65f22c7dba265ccd319611f1d662de" - integrity sha512-h4LeC3L/R7jIMfTdYowevPIssvcPYQ7Qzs+pCSYsJgPztIizXwKmnfhZXBA4WVqdmvMcpmseYEXb67JT7IJ2eg== +jest-each@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.1.tgz#6b0a88ee85c2ba27b571a6010c2e0c674f5c9b29" + integrity sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" chalk "^4.0.0" jest-get-type "^29.2.0" - jest-util "^29.2.0" - pretty-format "^29.2.0" + jest-util "^29.2.1" + pretty-format "^29.2.1" -jest-environment-node@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.0.tgz#49c39d4f9df64fc74da3725cbcaeee6da01a6dd6" - integrity sha512-b4qQGVStPMvtZG97Ac0rvnmSIjCZturFU7MQRMp4JDFl7zoaDLTtXmFjFP1tNmi9te6kR8d+Htbv3nYeoaIz6g== +jest-environment-node@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.1.tgz#f90311d0f0e8ef720349f83c97a076e403f90665" + integrity sha512-PulFKwEMz6nTAdLUwglFKei3b/LixwlRiqTN6nvPE1JtrLtlnpd6LXnFI1NFHYJGlTmIWilMP2n9jEtPPKX50g== dependencies: - "@jest/environment" "^29.2.0" - "@jest/fake-timers" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/fake-timers" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.0" - jest-util "^29.2.0" + jest-mock "^29.2.1" + jest-util "^29.2.1" jest-get-type@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== -jest-haste-map@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.0.tgz#2410f2ec93958e0bd894818de6c8056eb1b4d6fc" - integrity sha512-qu9lGFi7qJ8v37egS1phZZUJYiMyWnKwu83NlNT1qs50TbedIX2hFl+9ztsJ7U/ENaHwk1/Bs8fqOIQsScIRwg== +jest-haste-map@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699" + integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.2.0" - jest-worker "^29.2.0" + jest-util "^29.2.1" + jest-worker "^29.2.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.0.tgz#7c0eace293cf05a130a09beb1b9318ecc2f77692" - integrity sha512-FXT9sCFdct42+oOqGIr/9kmUw3RbhvpkwidCBT5ySHHoWNGd3c9n7HXpFKjEz9UnUITRCGdn0q2s6Sxrq36kwg== +jest-leak-detector@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz#ec551686b7d512ec875616c2c3534298b1ffe2fc" + integrity sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug== dependencies: jest-get-type "^29.2.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" -jest-matcher-utils@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.0.tgz#d1d73add0e0efb0e316a50f296977505dc053e02" - integrity sha512-FcEfKZ4vm28yCdBsvC69EkrEhcfex+IYlRctNJXsRG9+WC3WxgBNORnECIgqUtj7o/h1d8o7xB/dFUiLi4bqtw== +jest-matcher-utils@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.1.tgz#2bf876c5f891b33786aadf5d65d5da5970744122" + integrity sha512-hUTBh7H/Mnb6GTpihbLh8uF5rjAMdekfW/oZNXUMAXi7bbmym2HiRpzgqf/zzkjgejMrVAkPdVSQj+32enlUww== dependencies: chalk "^4.0.0" - jest-diff "^29.2.0" + jest-diff "^29.2.1" jest-get-type "^29.2.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" -jest-message-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.0.tgz#cbd43fd9a20a8facd4267ac37556bc5c9a525ec0" - integrity sha512-arBfk5yMFMTnMB22GyG601xGSGthA02vWSewPaxoFo0F9wBqDOyxccPbCcYu8uibw3kduSHXdCOd1PsLSgdomg== +jest-message-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" + integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.2.0" + pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.0.tgz#3531012881178f59f4b5fd1e243acc329d08d6a1" - integrity sha512-aiWGR0P8ivssIO17xkehLGFtCcef2ZwQFNPwEer1jQLHxPctDlIg3Hs6QMq1KpPz5dkCcgM7mwGif4a9IPznlg== +jest-mock@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.1.tgz#a0d361cffcb28184fa9c5443adbf591fa5759775" + integrity sha512-NDphaY/GqyQpTfnTZiTqqpMaw4Z0I7XnB7yBgrT6IwYrLGxpOhrejYr4ANY4YvO2sEGdd8Tx/6D0+WLQy7/qDA== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-util "^29.2.0" + jest-util "^29.2.1" jest-pnp-resolver@^1.2.2: version "1.2.2" @@ -1831,88 +1820,88 @@ jest-regex-util@^29.2.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.0.tgz#a127b7d6b7df69d4eaf2c7c99f652f17ba0fed71" - integrity sha512-Cd0Z39sDntEnfR9PoUdFHUAGDvtKI0/7Wt73l3lt03A3yQ+A6Qi3XmBuqGjdFl2QbXaPa937oLhilG612P8HGQ== +jest-resolve-dependencies@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.1.tgz#8d717dd41dc615fef1d412d395ea3deccfb1b9fa" + integrity sha512-o3mUGX2j08usj1jIAIE8KmUVpqVAn54k80kI27ldbZf2oJn6eghhB6DvJxjrcH40va9CQgWTfU5f2Ag/MoUqgQ== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.2.0" + jest-snapshot "^29.2.1" -jest-resolve@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.0.tgz#cb9f9770164382785cd68598a9fb0b7e4bb95a9f" - integrity sha512-f5c0ljNg2guDBCC7wi92vAhNuA0BtAG5vkY7Fob0c7sUMU1g87mTXqRmjrVFe2XvdwP5m5T/e5KJsCKu9hRvBA== +jest-resolve@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.1.tgz#a4d2f76db88aeb6ec5f5453c9a40b52483d17799" + integrity sha512-1dJTW76Z9622Viq4yRcwBuEXuzGtE9B2kdl05RC8Om/lAzac9uEgC+M8Q5osVidbuBPmxm8wSrcItYhca2ZAtQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.0" + jest-haste-map "^29.2.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.2.0" - jest-validate "^29.2.0" + jest-util "^29.2.1" + jest-validate "^29.2.1" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.0.tgz#d621e67a2d59d5bc302eca1f5348615ce166712c" - integrity sha512-VPBrCwl9fM2mc5yk6yZhNrgXzRJMD5jfLmntkMLlrVq4hQPWbRK998iJlR+DOGCO04TC9PPYLntOJ001Vnf28g== - dependencies: - "@jest/console" "^29.2.0" - "@jest/environment" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" +jest-runner@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.1.tgz#885afe64661cb2f51f84c1b97afb713d1093c124" + integrity sha512-PojFI+uVhQ4u4YZKCN/a3yU0/l/pJJXhq1sW3JpCp8CyvGBYGddRFPKZ1WihApusxqWRTHjBJmGyPWv6Av2lWA== + dependencies: + "@jest/console" "^29.2.1" + "@jest/environment" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.2.0" - jest-haste-map "^29.2.0" - jest-leak-detector "^29.2.0" - jest-message-util "^29.2.0" - jest-resolve "^29.2.0" - jest-runtime "^29.2.0" - jest-util "^29.2.0" - jest-watcher "^29.2.0" - jest-worker "^29.2.0" + jest-environment-node "^29.2.1" + jest-haste-map "^29.2.1" + jest-leak-detector "^29.2.1" + jest-message-util "^29.2.1" + jest-resolve "^29.2.1" + jest-runtime "^29.2.1" + jest-util "^29.2.1" + jest-watcher "^29.2.1" + jest-worker "^29.2.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.0.tgz#6b10d9539c1f7af32d06fccd7d16b6c9996c9cb2" - integrity sha512-+GDmzCrswQF+mvI0upTYMe/OPYnlRRNLLDHM9AFLp2y7zxWoDoYgb8DL3WwJ8d9m743AzrnvBV9JQHi/0ed7dg== +jest-runtime@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.1.tgz#62e3a23c33710ae4d9c3304dda851a5fb225b574" + integrity sha512-PSQ880OoIW9y8E6/jjhGn3eQNgNc6ndMzCZaKqy357bv7FqCfSyYepu3yDC6Sp1Vkt+GhP2M/PVgldS2uZSFZg== dependencies: - "@jest/environment" "^29.2.0" - "@jest/fake-timers" "^29.2.0" - "@jest/globals" "^29.2.0" + "@jest/environment" "^29.2.1" + "@jest/fake-timers" "^29.2.1" + "@jest/globals" "^29.2.1" "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.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.2.0" - jest-message-util "^29.2.0" - jest-mock "^29.2.0" + jest-haste-map "^29.2.1" + jest-message-util "^29.2.1" + jest-mock "^29.2.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.0" - jest-snapshot "^29.2.0" - jest-util "^29.2.0" + jest-resolve "^29.2.1" + jest-snapshot "^29.2.1" + jest-util "^29.2.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.0.tgz#fb3d4e1d9df579f37d7c60072877ee99376b6090" - integrity sha512-YCKrOR0PLRXROmww73fHO9oeY4tL+LPQXWR3yml1+hKbQDR8j1VUrVzB65hKSJJgxBOr1vWx+hmz2by8JjAU5w== +jest-snapshot@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.1.tgz#f3843b3099c8fec7e6218dea18cc506f10ea5d30" + integrity sha512-KZdLD7iEz5M4ZYd+ezZ/kk73z+DtNbk/yJ4Qx7408Vb0CCuclJIZPa/HmIwSsCfIlOBNcYTKufr7x/Yv47oYlg== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1920,87 +1909,87 @@ jest-snapshot@^29.2.0: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.2.0" - "@jest/transform" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/expect-utils" "^29.2.1" + "@jest/transform" "^29.2.1" + "@jest/types" "^29.2.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.2.0" + expect "^29.2.1" graceful-fs "^4.2.9" - jest-diff "^29.2.0" + jest-diff "^29.2.1" jest-get-type "^29.2.0" - jest-haste-map "^29.2.0" - jest-matcher-utils "^29.2.0" - jest-message-util "^29.2.0" - jest-util "^29.2.0" + jest-haste-map "^29.2.1" + jest-matcher-utils "^29.2.1" + jest-message-util "^29.2.1" + jest-util "^29.2.1" natural-compare "^1.4.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" semver "^7.3.5" -jest-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.0.tgz#797935697e83a5722aeba401ed6cd01264295566" - integrity sha512-8M1dx12ujkBbnhwytrezWY0Ut79hbflwodE+qZKjxSRz5qt4xDp6dQQJaOCFvCmE0QJqp9KyEK33lpPNjnhevw== +jest-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" + integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.0.tgz#e40faf33759365c12ead6a45165349d660d09ba4" - integrity sha512-4Vl51bPNeFeDok9aJiOnrC6tqJbOp4iMCYlewoC2ZzYJZ5+6pfr3KObAdx5wP8auHcg2MRaguiqj5OdScZa72g== +jest-validate@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.1.tgz#db814ce12c4c7e4746044922762e56eb177d066c" + integrity sha512-DZVX5msG6J6DL5vUUw+++6LEkXUsPwB5R7fsfM7BXdz2Ipr0Ib046ak+8egrwAR++pvSM/5laxLK977ieIGxkQ== dependencies: - "@jest/types" "^29.2.0" + "@jest/types" "^29.2.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.2.0" + pretty-format "^29.2.1" -jest-watcher@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.0.tgz#d0c58ff76d3dd22fff79f3f9cbeadaa749d2ca6e" - integrity sha512-bRh0JdUeN+cl9XfK7tMnXLm4Mv70hG2SZlqbkFe5CTs7oeCkbwlGBk/mEfEJ63mrxZ8LPbnfaMpfSmkhEQBEGA== +jest-watcher@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.1.tgz#1cb91f8aa9e77b1332af139944ad65e51430d7c3" + integrity sha512-7jFaHUaRq50l4w/f6RuY713bvI5XskMmjWCE54NGYcY74fLkShS8LucXJke1QfGnwDSCoIqGnGGGKPwdaBYz2Q== dependencies: - "@jest/test-result" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^29.2.0" + jest-util "^29.2.1" string-length "^4.0.1" -jest-worker@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.0.tgz#b2bd1a81fc7a1ae79a500b05f5feb0d1c0b1a19e" - integrity sha512-mluOlMbRX1H59vGVzPcVg2ALfCausbBpxC8a2KWOzInhYHZibbHH8CB0C1JkmkpfurrkOYgF7FPmypuom1OM9A== +jest-worker@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1" + integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg== dependencies: "@types/node" "*" - jest-util "^29.2.0" + jest-util "^29.2.1" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.0.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.0.tgz#e7997bc603f31e04edbbe87dd24cf6e7c432abac" - integrity sha512-6krPemKUXCEu5Fh3j6ZVoLMjpTQVm0OCU+7f3K/9gllX8wNIE6NSCQ6s0q2RDoiKLRaQlVRHyscjSPRPqCI0Fg== + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.1.tgz#352ec0b81a0e436691d546d984cd7d8f72ffd26a" + integrity sha512-K0N+7rx+fv3Us3KhuwRSJt55MMpZPs9Q3WSO/spRZSnsalX8yEYOTQ1PiSN7OvqzoRX4JEUXCbOJRlP4n8m5LA== dependencies: - "@jest/core" "^29.2.0" - "@jest/types" "^29.2.0" + "@jest/core" "^29.2.1" + "@jest/types" "^29.2.1" import-local "^3.0.2" - jest-cli "^29.2.0" + jest-cli "^29.2.1" js-sdsl@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6" - integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw== + version "4.1.5" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a" + integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q== js-tokens@^4.0.0: version "4.0.0" @@ -2040,7 +2029,7 @@ json-schema-traverse@^0.4.1: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json5@^2.2.1: version "2.2.1" @@ -2133,7 +2122,7 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -2164,17 +2153,17 @@ multimatch@^4.0.0: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" - integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== normalize-path@^3.0.0: version "3.0.0" @@ -2191,7 +2180,7 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -2272,7 +2261,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" @@ -2321,10 +2310,10 @@ prettier@>=3.0.0-alpha.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.2.tgz#b2e7698f8feb420e2e4347e19e9b7535d8188977" integrity sha512-GTYhS1pykp0vIoV8ySOvBxc/SFAoot2rOir/QCh1KQXWYdrS9q/k73uKbwXPuUDMlcwZAasuyI0Mg7PZ1p/qRQ== -pretty-format@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.0.tgz#1d4ea56fb46079b44efd9ed59c14f70f2950a61b" - integrity sha512-QCSUFdwOi924g24czhOH5eTkXxUCqlLGZBRCySlwDYHIXRJkdGyjJc9nZaqhlFBZws8dq5Dvk0lCilsmlfsPxw== +pretty-format@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" + integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" @@ -2369,9 +2358,9 @@ queue-microtask@^1.2.2: integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 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== + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== regexpp@^3.2.0: version "3.2.0" @@ -2381,7 +2370,7 @@ regexpp@^3.2.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== resolve-cwd@^3.0.0: version "3.0.0" @@ -2406,11 +2395,11 @@ resolve.exports@^1.1.0: integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== resolve@^1.20.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -2433,20 +2422,15 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@^7.3.5: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" @@ -2493,7 +2477,7 @@ source-map@^0.6.0, source-map@^0.6.1: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== stack-utils@^2.0.3: version "2.0.5" @@ -2579,7 +2563,7 @@ test-exclude@^6.0.0: 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= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== tmpl@1.0.5: version "1.0.5" @@ -2589,7 +2573,7 @@ tmpl@1.0.5: to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" @@ -2620,6 +2604,14 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -2667,12 +2659,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== + 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" @@ -2688,16 +2680,16 @@ yallist@^4.0.0: 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== + 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.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.0.tgz#2706c5431f8c119002a2b106fc9f58b9bb9097a3" - integrity sha512-3sLxVhbAB5OC8qvVRebCLWuouhwh/rswsiDYx3WGxajUk/l4G20SKfrKKFeNIHboUFt2JFgv2yfn+5cgOr/t5A== + version "17.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c" + integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" From 123b7aea59d3502707bdbfcd9598ac7fbe28fd2b Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 19 Oct 2022 13:17:37 -0400 Subject: [PATCH 135/262] Do not kill the process when the test runner exits --- .github/workflows/main.yml | 27 ++++----------------------- src/parse.js | 37 +++++++++++++++++++------------------ src/server.rb | 6 +++--- test/js/globalSetup.js | 22 ++++++++++++---------- test/js/globalTeardown.js | 15 ++++++++++++--- 5 files changed, 50 insertions(+), 57 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 19603cab..34c59f58 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,6 +2,7 @@ name: Main on: - push - pull_request + jobs: ci: name: CI @@ -17,15 +18,13 @@ jobs: - "3.0" - "3.1" runs-on: ${{ matrix.platform }} - env: - PLUGIN_RUBY_CI: true steps: - uses: actions/checkout@main - uses: ruby/setup-ruby@v1 with: bundler-cache: true ruby-version: ${{ matrix.ruby }} - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v3 with: node-version: 18.x cache: yarn @@ -33,34 +32,18 @@ jobs: - run: yarn test - run: bundle exec rake test - windows: - name: Windows - runs-on: windows-latest - env: - PLUGIN_RUBY_CI: true - steps: - - uses: actions/checkout@main - - uses: ruby/setup-ruby@v1 - with: - bundler-cache: true - ruby-version: '3.1' - - run: timeout -k 2 2 bundle exec ruby src/server.rb --plugins= file.txt || ls - - run: cat file.txt - lint: name: Lint runs-on: ubuntu-latest - env: - PLUGIN_RUBY_CI: true steps: - uses: actions/checkout@main - uses: ruby/setup-ruby@v1 with: bundler-cache: true ruby-version: "3.0" - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x cache: yarn - run: yarn install --frozen-lockfile - run: yarn checkFormat @@ -79,8 +62,6 @@ jobs: # - 2.x # - 3.x # runs-on: ${{ matrix.platform }} - # env: - # PLUGIN_RUBY_CI: true # steps: # - uses: actions/checkout@main # - uses: ruby/setup-ruby@v1 diff --git a/src/parse.js b/src/parse.js index 97543038..b829186a 100644 --- a/src/parse.js +++ b/src/parse.js @@ -64,7 +64,7 @@ function getPlugins(opts) { // Create a file that will act as a communication mechanism, spawn a parser // server with that filepath as an argument, then wait for the file to be // created that will contain the connection information. -export async function spawnServer(opts) { +export async function spawnServer(opts, killOnExit = true) { const tmpdir = os.tmpdir(); let serverFilepath = url.fileURLToPath( new URL("./server.rb", import.meta.url) @@ -95,25 +95,25 @@ export async function spawnServer(opts) { server.unref(); - process.on("exit", () => { - if (fs.existsSync(filepath)) { - fs.unlinkSync(filepath); - } - - try { - if (server.pid) { - // Kill the server process if it's still running. If we're on windows - // we're going to use the process ID number. If we're not, we're going - // to use the negative process ID to indicate the group. - const pid = process.platform === "win32" ? server.pid : -server.pid; - process.kill(pid); + if (killOnExit) { + process.on("exit", () => { + if (fs.existsSync(filepath)) { + fs.unlinkSync(filepath); } - } catch (error) { - if (process.env.PLUGIN_RUBY_CI) { - throw new Error(`Failed to kill the parser server: ${error}`); + + try { + if (server.pid) { + // Kill the server process if it's still running. If we're on windows + // we're going to use the process ID number. If we're not, we're going + // to use the negative process ID to indicate the group. + const pid = process.platform === "win32" ? server.pid : -server.pid; + process.kill(pid); + } + } catch (error) { + // If there's an error killing the process, we're going to ignore it. } - } - }); + }); + } return new Promise((resolve, reject) => { const timeout = setTimeout( @@ -132,6 +132,7 @@ export async function spawnServer(opts) { if (fs.existsSync(filepath)) { resolve({ serverPID: server.pid, + connectionFilepath: filepath, connectionOptions: JSON.parse( fs.readFileSync(filepath).toString("utf-8") ) diff --git a/src/server.rb b/src/server.rb index f3c1336e..e0191853 100644 --- a/src/server.rb +++ b/src/server.rb @@ -29,9 +29,9 @@ connection_information = if Gem.win_platform? - # If we're on windows, we're going to start up a TCP server. The 0 here means - # to bind to some available port. - server = TCPServer.new("0.0.0.0", 0) + # If we're on windows, we're going to start up a TCP server. The 0 here + # means to bind to some available port. + server = TCPServer.new(0) address = server.local_address # Ensure that we close the server when this process exits. diff --git a/test/js/globalSetup.js b/test/js/globalSetup.js index f9e3dc49..768f2d82 100644 --- a/test/js/globalSetup.js +++ b/test/js/globalSetup.js @@ -7,21 +7,23 @@ import { spawnServer } from "../../src/parse.js"; async function globalSetup() { // Set a RUBY_VERSION environment variable because certain tests will only run // for certain versions of Ruby. - process.env.RUBY_VERSION = spawnSync("ruby", [ - "--disable-gems", - "-e", - "puts RUBY_VERSION" - ]) + const args = ["--disable-gems", "-e", "puts RUBY_VERSION"]; + process.env.RUBY_VERSION = spawnSync("ruby", args) .stdout.toString("utf-8") .trim(); - const { serverPID, connectionOptions } = await spawnServer({ - rubyPlugins: "", - rubySingleQuote: false, - trailingComma: "none" - }); + const { serverPID, connectionFilepath, connectionOptions } = + await spawnServer( + { + rubyPlugins: "", + rubySingleQuote: false, + trailingComma: "none" + }, + false + ); process.env.PRETTIER_RUBY_PID = serverPID; + process.env.PRETTIER_RUBY_FILE = connectionFilepath; process.env.PRETTIER_RUBY_HOST = JSON.stringify(connectionOptions); } diff --git a/test/js/globalTeardown.js b/test/js/globalTeardown.js index bcf486c7..c51948b9 100644 --- a/test/js/globalTeardown.js +++ b/test/js/globalTeardown.js @@ -1,16 +1,25 @@ +import fs from "fs"; + // If a parse server was successfully spawned, then its process ID will be in // the PRETTIER_RUBY_PID environment variable. At the end of the test suite we // should send a kill signal to it. function globalTeardown() { const serverPID = process.env.PRETTIER_RUBY_PID; + const connectionFilepath = process.env.PRETTIER_RUBY_FILE; if (serverPID) { try { - process.kill(parseInt(serverPID, 10), "SIGINT"); - } catch (e) { - throw new Error("Failed to kill the parser process in globalTeardown."); + const pid = process.platform === "win32" ? serverPID : -serverPID; + process.kill(pid, "SIGINT"); + } catch (error) { + console.error("Failed to kill the parser process in globalTeardown."); + throw error; } } + + if (fs.existsSync(connectionFilepath)) { + fs.unlinkSync(connectionFilepath); + } } export default globalTeardown; From ee5c084f3e19a38d760bcee274923592ffb89941 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 19 Oct 2022 14:25:32 -0400 Subject: [PATCH 136/262] Increase default timeout --- src/parse.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/parse.js b/src/parse.js index b829186a..1f02abdd 100644 --- a/src/parse.js +++ b/src/parse.js @@ -121,11 +121,11 @@ export async function spawnServer(opts, killOnExit = true) { clearInterval(interval); reject( new Error( - "Failed to get connection options from parse server in time. If this happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment variable beyond 5000." + "Failed to get connection options from parse server in time. If this happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment variable beyond 10000." ) ); }, - parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "5000", 10) + parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "10000", 10) ); const interval = setInterval(() => { From 984ec59b8aad9b528738c99e71172d3f25b06f7a Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 19 Oct 2022 14:26:37 -0400 Subject: [PATCH 137/262] Simplify github actions workflow --- .github/workflows/auto-merge.yml | 22 +++++++++++++ .github/workflows/automerge.yml | 54 -------------------------------- .github/workflows/main.yml | 19 ----------- 3 files changed, 22 insertions(+), 73 deletions(-) create mode 100644 .github/workflows/auto-merge.yml delete mode 100644 .github/workflows/automerge.yml diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml new file mode 100644 index 00000000..9b28abf4 --- /dev/null +++ b/.github/workflows/auto-merge.yml @@ -0,0 +1,22 @@ +name: Dependabot auto-merge +on: pull_request + +permissions: + contents: write + pull-requests: write + +jobs: + dependabot: + runs-on: ubuntu-latest + if: ${{ github.actor == 'dependabot[bot]' }} + steps: + - name: Dependabot metadata + id: metadata + uses: dependabot/fetch-metadata@v1.3.3 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + - name: Enable auto-merge for Dependabot PRs + run: gh pr merge --auto --merge "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml deleted file mode 100644 index c18c8ca4..00000000 --- a/.github/workflows/automerge.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Auto Merge pull requests - -# read-write repo token -# access to secrets -on: - workflow_run: - workflows: ["Main"] - types: - - completed - -jobs: - automerge: - runs-on: ubuntu-latest - # Only run if workflow completed successfully in a pull request made by dependabot - if: > - github.event.workflow_run.event == 'pull_request' && - github.event.workflow_run.conclusion == 'success' && - github.event.sender.login == 'dependabot[bot]' - steps: - - name: "Download artifact" - uses: actions/github-script@v3 - with: - # Artifact unzip code based on code in - # https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ - script: | - var artifacts = await github.actions.listWorkflowRunArtifacts({ - owner: context.repo.owner, - repo: context.repo.repo, - run_id: ${{github.event.workflow_run.id }}, - }); - var matchArtifact = artifacts.data.artifacts.filter((artifact) => { - return artifact.name == "save-pr-info" - })[0]; - var download = await github.actions.downloadArtifact({ - owner: context.repo.owner, - repo: context.repo.repo, - artifact_id: matchArtifact.id, - archive_format: 'zip', - }); - var fs = require('fs'); - fs.writeFileSync('${{github.workspace}}/save-pr-info.zip', Buffer.from(download.data)); - - run: unzip save-pr-info.zip - - name: "Merge pull request" - uses: actions/github-script@v3 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - var fs = require('fs'); - var issue_number = Number(fs.readFileSync('./PULL_REQUEST_NUMBER')); - await github.pulls.merge({ - owner: context.payload.repository.owner.login, - repo: context.payload.repository.name, - pull_number: issue_number - }) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 34c59f58..d3d95106 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -108,22 +108,3 @@ jobs: - run: gem build -o prettier.gem - run: gem unpack prettier.gem - run: prettier/exe/rbprettier --help - - # Saves pull request details for later workflow runs which can run in - # a privileged environment - save-pr-info: - name: Save PR info - needs: - - ci - - lint - runs-on: ubuntu-latest - if: github.event_name == 'pull_request' - steps: - - name: Save PR number - run: | - mkdir -p ./save-pr-info - echo ${{ github.event.number }} > ./save-pr-info/PULL_REQUEST_NUMBER - - uses: actions/upload-artifact@v2 - with: - name: save-pr-info - path: save-pr-info/ From 2a1e2c8c08ff520d5fa844c80a3317d06b787eb3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Oct 2022 12:02:58 +0000 Subject: [PATCH 138/262] Bump prettier from 3.0.0-alpha.2 to 3.0.0-alpha.3 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0-alpha.2 to 3.0.0-alpha.3. - [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.0.0-alpha.2...3.0.0-alpha.3) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4fb99fc8..4704e388 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2306,9 +2306,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@>=3.0.0-alpha.2: - version "3.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.2.tgz#b2e7698f8feb420e2e4347e19e9b7535d8188977" - integrity sha512-GTYhS1pykp0vIoV8ySOvBxc/SFAoot2rOir/QCh1KQXWYdrS9q/k73uKbwXPuUDMlcwZAasuyI0Mg7PZ1p/qRQ== + version "3.0.0-alpha.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.3.tgz#21c35c12792dc0e1d04dd00efe0976f383928f58" + integrity sha512-gYWrMcU3iMwG+PSPU2KnprIKslFDW+mslyA8DCrCASO9z1+rEog82WzoYtP7Kh7QglVepKjl94iJFfRPTens2A== pretty-format@^29.2.1: version "29.2.1" From 714d55972f1c1f1e644868fe77e210fb6d4be77e Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 20 Oct 2022 09:40:46 -0400 Subject: [PATCH 139/262] Remove no longer relevant doc script --- bin/doc.js | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100755 bin/doc.js diff --git a/bin/doc.js b/bin/doc.js deleted file mode 100755 index 857147f5..00000000 --- a/bin/doc.js +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env node - -import { existsSync, readFileSync } from "fs"; -import { __debug } from "prettier"; -import plugin from "../src/plugin.js"; - -const code = existsSync(process.argv[2]) - ? readFileSync(process.argv[2], "utf-8") - : process.argv.slice(2).join(" ").replace(/\\n/g, "\n"); - -const doc = __debug.printToDoc(code, { parser: "ruby", plugins: [plugin] }); -console.log(__debug.formatDoc(doc)); From 0634e566fe67d7770e50544b19ca79a434213f92 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 20 Oct 2022 09:48:32 -0400 Subject: [PATCH 140/262] A couple of stylistic fixes, consolidate parse.js and plugin.js --- src/parse.js | 193 --------------------------------------- src/plugin.js | 200 +++++++++++++++++++++++++++++++++++++++-- test/js/globalSetup.js | 2 +- 3 files changed, 195 insertions(+), 200 deletions(-) delete mode 100644 src/parse.js diff --git a/src/parse.js b/src/parse.js deleted file mode 100644 index 1f02abdd..00000000 --- a/src/parse.js +++ /dev/null @@ -1,193 +0,0 @@ -import { spawn } from "child_process"; -import fs from "fs"; -import net from "net"; -import os from "os"; -import path from "path"; -import process from "process"; -import url from "url"; - -// In order to properly parse ruby code, we need to tell the ruby process to -// parse using UTF-8. Unfortunately, the way that you accomplish this looks -// differently depending on your platform. -/* istanbul ignore next */ -function getLang() { - const { env, platform } = process; - const envValue = env.LC_ALL || env.LC_CTYPE || env.LANG; - - // If an env var is set for the locale that already includes UTF-8 in the - // name, then assume we can go with that. - if (envValue && envValue.includes("UTF-8")) { - return envValue; - } - - // Otherwise, we're going to guess which encoding to use based on the system. - // This is probably not the best approach in the world, as you could be on - // linux and not have C.UTF-8, but in that case you're probably passing an env - // var for it. This object below represents all of the possible values of - // process.platform per: - // https://nodejs.org/api/process.html#process_process_platform - return { - aix: "C.UTF-8", - android: "C.UTF-8", - cygwin: "C.UTF-8", - darwin: "en_US.UTF-8", - freebsd: "C.UTF-8", - haiku: "C.UTF-8", - linux: "C.UTF-8", - netbsd: "C.UTF-8", - openbsd: "C.UTF-8", - sunos: "C.UTF-8", - win32: ".UTF-8" - }[platform]; -} - -// Return the list of plugins that should be passed to the server process. -function getPlugins(opts) { - const plugins = new Set(); - - const rubyPlugins = opts.rubyPlugins.trim(); - if (rubyPlugins.length > 0) { - rubyPlugins.split(",").forEach((plugin) => plugins.add(plugin.trim())); - } - - if (opts.rubySingleQuote) { - plugins.add("plugin/single_quotes"); - } - - if (opts.trailingComma !== "none") { - plugins.add("plugin/trailing_comma"); - } - - return Array.from(plugins); -} - -// Create a file that will act as a communication mechanism, spawn a parser -// server with that filepath as an argument, then wait for the file to be -// created that will contain the connection information. -export async function spawnServer(opts, killOnExit = true) { - const tmpdir = os.tmpdir(); - let serverFilepath = url.fileURLToPath( - new URL("./server.rb", import.meta.url) - ); - - // If we're in a yarn Plug'n'Play environment, then the relative paths being - // used by the parser server are not going to work with its virtual file - // system. - if (process.versions.pnp) { - if (url.fileURLToPath(new URL(".", import.meta.url)).includes(".zip")) { - // TODO: wait for prettier to get support back for pnp - } - } - - const filepath = path.join( - tmpdir, - `prettier-ruby-parser-${process.pid}.info` - ); - const server = spawn( - "ruby", - [serverFilepath, `--plugins=${getPlugins(opts).join(",")}`, filepath], - { - env: Object.assign({}, process.env, { LANG: getLang() }), - stdio: "ignore", - detached: true - } - ); - - server.unref(); - - if (killOnExit) { - process.on("exit", () => { - if (fs.existsSync(filepath)) { - fs.unlinkSync(filepath); - } - - try { - if (server.pid) { - // Kill the server process if it's still running. If we're on windows - // we're going to use the process ID number. If we're not, we're going - // to use the negative process ID to indicate the group. - const pid = process.platform === "win32" ? server.pid : -server.pid; - process.kill(pid); - } - } catch (error) { - // If there's an error killing the process, we're going to ignore it. - } - }); - } - - return new Promise((resolve, reject) => { - const timeout = setTimeout( - () => { - clearInterval(interval); - reject( - new Error( - "Failed to get connection options from parse server in time. If this happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment variable beyond 10000." - ) - ); - }, - parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "10000", 10) - ); - - const interval = setInterval(() => { - if (fs.existsSync(filepath)) { - resolve({ - serverPID: server.pid, - connectionFilepath: filepath, - connectionOptions: JSON.parse( - fs.readFileSync(filepath).toString("utf-8") - ) - }); - - clearTimeout(timeout); - clearInterval(interval); - } - }, 100); - }); -} - -let connectionOptions; -if (process.env.PRETTIER_RUBY_HOST) { - connectionOptions = JSON.parse(process.env.PRETTIER_RUBY_HOST); -} - -// Formats and sends a request to the parser server. We use netcat (or something -// like it) here since Prettier requires the results of `parse` to be -// synchronous and Node.js does not offer a mechanism for synchronous socket -// requests. -export async function parse(parser, source, opts) { - if (!connectionOptions) { - const spawnedServer = await spawnServer(opts); - connectionOptions = spawnedServer.connectionOptions; - } - - return new Promise((resolve, reject) => { - const socket = new net.Socket(); - - socket.on("error", reject); - socket.on("data", (data) => { - const response = JSON.parse(data.toString("utf-8")); - - if (response.error) { - const error = new Error(response.error); - if (response.loc) { - error.loc = response.loc; - } - - reject(error); - } - - resolve(response); - }); - - socket.connect(connectionOptions, () => { - socket.end( - JSON.stringify({ - parser, - source, - maxwidth: opts.printWidth, - tabwidth: opts.tabWidth - }) - ); - }); - }); -} diff --git a/src/plugin.js b/src/plugin.js index 5e368171..0fbb7dbb 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -1,10 +1,198 @@ -import { parse } from "./parse.js"; +import { spawn } from "child_process"; +import fs from "fs"; +import net from "net"; +import os from "os"; +import path from "path"; +import process from "process"; +import url from "url"; -/* - * metadata mostly pulled from linguist and rubocop: - * https://github.com/github/linguist/blob/master/lib/linguist/languages.yml - * https://github.com/rubocop/rubocop/blob/master/spec/rubocop/target_finder_spec.rb - */ +// In order to properly parse ruby code, we need to tell the ruby process to +// parse using UTF-8. Unfortunately, the way that you accomplish this looks +// differently depending on your platform. +function getLang() { + const { env, platform } = process; + const envValue = env.LC_ALL || env.LC_CTYPE || env.LANG; + + // If an env var is set for the locale that already includes UTF-8 in the + // name, then assume we can go with that. + if (envValue && envValue.includes("UTF-8")) { + return envValue; + } + + // Otherwise, we're going to guess which encoding to use based on the system. + // This is probably not the best approach in the world, as you could be on + // linux and not have C.UTF-8, but in that case you're probably passing an env + // var for it. This object below represents all of the possible values of + // process.platform per: + // https://nodejs.org/api/process.html#process_process_platform + return { + aix: "C.UTF-8", + android: "C.UTF-8", + cygwin: "C.UTF-8", + darwin: "en_US.UTF-8", + freebsd: "C.UTF-8", + haiku: "C.UTF-8", + linux: "C.UTF-8", + netbsd: "C.UTF-8", + openbsd: "C.UTF-8", + sunos: "C.UTF-8", + win32: ".UTF-8" + }[platform]; +} + +// Return the list of plugins that should be passed to the server process. +function getPlugins(opts) { + const plugins = new Set(); + + const rubyPlugins = opts.rubyPlugins.trim(); + if (rubyPlugins.length > 0) { + rubyPlugins.split(",").forEach((plugin) => plugins.add(plugin.trim())); + } + + if (opts.rubySingleQuote) { + plugins.add("plugin/single_quotes"); + } + + if (opts.trailingComma !== "none") { + plugins.add("plugin/trailing_comma"); + } + + return Array.from(plugins); +} + +// Create a file that will act as a communication mechanism, spawn a parser +// server with that filepath as an argument, then wait for the file to be +// created that will contain the connection information. +export async function spawnServer(opts, killOnExit = true) { + const tmpdir = os.tmpdir(); + + // First, get a filepath that points to the server script. If we're running + // under normal circumstances, we can just use a path relative to the + // import.meta.url value. + const serverURL = new URL("./server.rb", import.meta.url); + let serverFilepath = url.fileURLToPath(serverURL); + + // If we're in a yarn Plug'n'Play environment, then the relative paths being + // used by the parser server are not going to work with its virtual file + // system. So instead we need to copy the server script to a temporary + // directory. + if (process.versions.pnp) { + if (url.fileURLToPath(new URL(".", import.meta.url)).includes(".zip")) { + // TODO: wait for prettier to get support back for pnp + } + } + + const filepath = path.join(tmpdir, `prettier-ruby-parser-${process.pid}.txt`); + const server = spawn( + "ruby", + [serverFilepath, `--plugins=${getPlugins(opts).join(",")}`, filepath], + { + env: Object.assign({}, process.env, { LANG: getLang() }), + stdio: "ignore", + detached: true + } + ); + + server.unref(); + + if (killOnExit) { + process.on("exit", () => { + if (fs.existsSync(filepath)) { + fs.unlinkSync(filepath); + } + + try { + if (server.pid) { + // Kill the server process if it's still running. If we're on windows + // we're going to use the process ID number. If we're not, we're going + // to use the negative process ID to indicate the group. + const pid = process.platform === "win32" ? server.pid : -server.pid; + process.kill(pid); + } + } catch (error) { + // If there's an error killing the process, we're going to ignore it. + } + }); + } + + return new Promise((resolve, reject) => { + const timeout = setTimeout( + () => { + const message = + "Failed to get connection options from parse server in time. If this happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment variable beyond 10000."; + + clearInterval(interval); + reject(new Error(message)); + }, + parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "10000", 10) + ); + + const interval = setInterval(() => { + if (fs.existsSync(filepath)) { + const connectionJSON = fs.readFileSync(filepath).toString("utf-8"); + resolve({ + serverPID: server.pid, + connectionFilepath: filepath, + connectionOptions: JSON.parse(connectionJSON) + }); + + clearTimeout(timeout); + clearInterval(interval); + } + }, 100); + }); +} + +let connectionOptions; +if (process.env.PRETTIER_RUBY_HOST) { + connectionOptions = JSON.parse(process.env.PRETTIER_RUBY_HOST); +} + +// Formats and sends a request to the parser server. We use netcat (or something +// like it) here since Prettier requires the results of `parse` to be +// synchronous and Node.js does not offer a mechanism for synchronous socket +// requests. +async function parse(parser, source, opts) { + if (!connectionOptions) { + const spawnedServer = await spawnServer(opts); + connectionOptions = spawnedServer.connectionOptions; + } + + return new Promise((resolve, reject) => { + const socket = new net.Socket(); + + socket.on("error", reject); + socket.on("data", (data) => { + const response = JSON.parse(data.toString("utf-8")); + + if (response.error) { + const error = new Error(response.error); + if (response.loc) { + error.loc = response.loc; + } + + reject(error); + } + + resolve(response); + }); + + socket.connect(connectionOptions, () => { + socket.end( + JSON.stringify({ + parser, + source, + maxwidth: opts.printWidth, + tabwidth: opts.tabWidth + }) + ); + }); + }); +} + +// Metadata mostly pulled from linguist and rubocop: +// https://github.com/github/linguist/blob/master/lib/linguist/languages.yml +// https://github.com/rubocop/rubocop/blob/master/spec/rubocop/target_finder_spec.rb const plugin = { languages: [ { diff --git a/test/js/globalSetup.js b/test/js/globalSetup.js index 768f2d82..72c9be34 100644 --- a/test/js/globalSetup.js +++ b/test/js/globalSetup.js @@ -1,5 +1,5 @@ import { spawnSync } from "child_process"; -import { spawnServer } from "../../src/parse.js"; +import { spawnServer } from "../../src/plugin.js"; // This is somewhat similar to the spawnServer function in parseSync but // slightly different in that it logs its information into environment variables From ec41304be517291b2d44752da849e1389aad673e Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 20 Oct 2022 09:49:44 -0400 Subject: [PATCH 141/262] Ignore .gem files in npmignore --- .npmignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.npmignore b/.npmignore index bd042760..7a1a86d7 100644 --- a/.npmignore +++ b/.npmignore @@ -5,9 +5,9 @@ /node_modules/ /lib/ /pkg/ -/playground/ /test/ /vendor/ +/*.gem /.* /Gemfile* From cea3932d29d699ee79786bd3aa432e9a6d518e3f Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 20 Oct 2022 09:54:12 -0400 Subject: [PATCH 142/262] Update various community docs --- .github/ISSUE_TEMPLATE/bug.md | 18 --- .github/ISSUE_TEMPLATE/formatting.md | 30 ----- CONTRIBUTING.md | 183 --------------------------- README.md | 6 +- prettier.gemspec | 10 +- 5 files changed, 9 insertions(+), 238 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug.md delete mode 100644 .github/ISSUE_TEMPLATE/formatting.md delete mode 100644 CONTRIBUTING.md diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md deleted file mode 100644 index 6b958779..00000000 --- a/.github/ISSUE_TEMPLATE/bug.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -name: 🐛 Bug -about: Issues with prettier crashing ---- - -## Metadata - -- Operating system: Ubuntu -- Ruby version: latest -- Node version: latest -- `@prettier/plugin-ruby` or `prettier` gem version: latest -- `syntax_tree` version: latest - -## Input - -```ruby -# Code snippet -``` diff --git a/.github/ISSUE_TEMPLATE/formatting.md b/.github/ISSUE_TEMPLATE/formatting.md deleted file mode 100644 index 45318417..00000000 --- a/.github/ISSUE_TEMPLATE/formatting.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: ✨ Formatting -about: Issues for ugly or incorrect code ---- - -## Metadata - -- Operating system: Ubuntu -- Ruby version: latest -- Node version: latest -- `@prettier/plugin-ruby` or `prettier` gem version: latest -- `syntax_tree` version: latest - -## Input - -```ruby -# Code snippet -``` - -## Current output - -```ruby -# Code snippet -``` - -## Expected output - -```ruby -# Code snippet -``` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 64f0fade..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,183 +0,0 @@ -# Contributing - -Thanks so much for your interest in contributing! This page provides background on how prettier and this plugin work, links for understanding each step that prettier executes, various helpful utilities for analyzing the tree structures being manipulated, and frequently asked questions. - -Armed with the knowledge below, we would love to see your contribution! Please open an issue or a pull request at https://github.com/prettier/plugin-ruby. - -- [How it works](#how-it-works) - - [Text to AST](#text-to-ast) - - [AST to Doc](#ast-to-doc) - - [Doc to text](#doc-to-text) -- [FAQ](#faq) -- [Useful links](#useful-links) - - [Ruby](#ruby) - - [Ripper](#ripper) - - [Prettier](#prettier) -- [Useful commands](#useful-commands) -- [Testing](#testing) - -## How it works - -In order to get printed, the code goes through a couple of transformations. The first is taking the entire file as text and parsing it into an abstract syntax tree (AST). The second is taking the AST and transforming it into prettier's intermediate representation, internally referred to as Docs. The final is taking the Doc nodes and converting them back into plain text, taking into account printing rules like max line length. Each of those steps is details below. - -### Text to AST - -When the prettier process first spins up, it examines which files it's going to print and selects an appropriate plugin for each one. Once selected, it runs that plugin's `parse` function, seen [here](src/ruby/parser.js). For the case of the Ruby plugin, that entails spawning a Ruby process that runs [parser.rb](src/ruby/parser.rb) with the input code preloaded on stdin. - -`parser.rb` will read the text off of stdin and then feed it to a new `Ripper` instance, which is a Ruby standard library recursive-descent parser. Briefly, the way that `Ripper` works is by tokenizing the input and then matching those tokens against a grammar to form s-expressions. To extend `Ripper`, you overwrite the methods that control how those s-expressions are formed, e.g., to modify the s-expression that is formed when `Ripper` encounters a string literal, you would override the `#on_string_literal` method. Below is an example for seeing that in action. - -Let's assume you have the following code: - -```ruby -1 + 1 -``` - -First, `Ripper` will tokenize: - - -```ruby -require 'ripper' - -pp Ripper.lex('1 + 1') - -=begin -[[[1, 0], :on_int, "1", EXPR_END], - [[1, 1], :on_sp, " ", EXPR_END], - [[1, 2], :on_op, "+", EXPR_BEG], - [[1, 3], :on_sp, " ", EXPR_BEG], - [[1, 4], :on_int, "1", EXPR_END]] -=end -``` - -You can see it has location metadata (row and column), the token type, the value associated with that token type, and the lexer state when that token was encountered. Then, it will convert those tokens into s-expressions: - - -```ruby -require 'ripper' - -pp Ripper.sexp_raw('1 + 1') - -=begin -[:program, - [:stmts_add, - [:stmts_new], - [:binary, [:@int, "1", [1, 0]], :+, [:@int, "1", [1, 4]]]]] -=end -``` - -As you can see above, the resulting s-expressions will call the following methods in order on the instantiated `Ripper` instance: `on_int`, `on_int`, `on_stmts_new`, `on_binary`, `on_stmts_add`, `on_program`. You can hook into any part of this process by overriding any of those methods (we override all of them). - -Now that the text has been transformed into an AST that we can work with, `parser.rb` will serialize the result to JSON, write it back to stdout, and exit. The `parse` function will then parse that JSON by reading off the child process once it has exited, and return that value back to prettier. - -### AST to Doc - -Once prettier has a working AST, it will take it and call the selected plugin's [`printNode` function](src/ruby/printer.js), whose purpose is to convert that AST into prettier's intermediate representation called Docs. It does this by handing the print function a `FastPath` object that keeps track of the state of the printing as it goes, and allows accessing various parts of the AST quickly. - -Effectively, it walks the AST in the reverse direction from the way `Ripper` built it (top-down instead of bottom-up). The first node that gets passed into the `print` function is the `program` node as that's always on top. Then it is the `program` node's responsibility to recursively call print on its child nodes as it best sees fit. - -As the nodes are printing themselves and their children, they're additionally building up a second AST. That AST is built using the `builder` commands from prettier core, described [here](https://github.com/prettier/prettier/blob/main/commands.md). As an example, below is how a `binary` node (like the one representing the `1 + 1` above) would handle printing itself: - -```javascript -import prettier from "prettier"; -const { group, indent, line } = prettier.doc.builders; - -const printBinary = (path, opts, print) => - group([ - [path.call(print, "body", 0), " "], - path.getValue().body[1], - indent([line, path.call(print, "body", 2)]) - ]); -``` - -Recall that the `binary` node looks like this: - -``` -[:binary, [:@int, "1", [1, 0]], :+, [:@int, "1", [1, 4]]] -``` - -This means that there is a node in the `0` position of the array that represents the left-hand operand, and a node in the `2` position of the array that represents the right-hand operand. The operator is represented as a string literal in the `1` position of the array. - -So, the `printBinary` function is going to use the following `prettier` builders to build up the intermediate represention: - -- `group` - marks places where `prettier` could split text if the line gets too long; if the max line length is hit, `prettier` will break apart the outermost `group` node first -- `indent` - increases the current print indent for the contents of the node if the parent node is broken, e.g., if the `binary` node is too long to fit on one line, it will indent the right-hand operand -- `line` - puts a space if the group is not broken, otherwise puts a newline - -Once every node has been printed like the `binary` node above, the `print` node returns the intermediate representation to `prettier`. - -### Doc to text - -At this point, this is where `prettier`'s printer takes over. Because the remainder of the process is language-agnostic and `prettier` knows how to handle its own `Doc` representation, the Ruby plugin no longer has a job to do. `prettier` will walk its own `Doc` nodes and print them out according to the rules established by the structure. - -## FAQ - -Below are a couple of questions frequently asked about the prettier Ruby plugin. - -### Why Ripper over the other available Ruby parsers? - -I've been asked this question a lot, and there are a lot of reasons for this: - -1. Ripper is stdlib, and when the node process running prettier spawns the Ruby process performing the parsing, it's a lot easier to just require ripper than to worry about inconsistent environments having gems installed in myriad places. -2. Ripper is fast, which is nice as we need that to give the developer a good experience. -3. It was originally written in Ripper. Changing the parser at this point would entail an entire rewrite of the system, as the project is inextricably tied to the AST. - -### Why are the Ruby options distinct from the JavaScript options? - -In order to support all preferences, the Ruby options need to be distinct from the JavaScript options, otherwise you would not be able to, for example, have single quotes in Ruby and double quotes in JavaScript. They also indicate somewhat different things. In JavaScript, nothing changes when you use single versus double quotes, whereas in Ruby single and doubles quotes change interpolation behavior. - -### What versions of Ruby are supported? - -We support all Ruby versions that are under security maintenance or better (https://www.ruby-lang.org/en/downloads/branches/). This means at the moment we support back to Ruby 2.5. This is not to say that prettier can't parse and print code that was written while running earlier versions of Ruby, it's just that the Ruby process running prettier (whatever `ruby` resolves to when the process runs) must be >= 2.5. - -### Do you support ERB files (.html.erb, .js.erb, etc.)? - -At the moment, prettier doesn't have baked-in support for template languages. The way it is accomplished in prettier core is to extend each of the individual parsers to have special placeholder AST nodes that then switch the printer over to the necessarily language. This is certainly possible to support ERB, but the work is still being investigated. See [this issue](https://github.com/prettier/plugin-ruby/issues/371) for more detail. - -## Useful links - -For further understanding, below is a list of helpful resources. - -### Ruby - -Links contained within the Ruby source that are relevant to this plugin. - -- [parse.y](https://github.com/ruby/ruby/blob/trunk/parse.y) - the parser generator within Ruby that gives you the names of the nodes as well as their structure -- [test_parser_events.rb](https://github.com/ruby/ruby/blob/trunk/test/ripper/test_parser_events.rb) - the parser test file that gives you code examples of each kind of node - -### Ripper - -Links relating to `ripper` and how it parses Ruby source. - -- [Ripper preview](https://ripper-preview.herokuapp.com) - a visualization of `ripper` and how it parses Ruby source -- [How ripper parses variables](https://rmosolgo.github.io/blog/2018/05/21/how-ripper-parses-variables/) - blog post neatly explaining how `ripper` parses variables -- [Ripper events](https://rmosolgo.github.io/ripper_events/) - documentation for each type of `ripper` node - -### Prettier - -Links relating to `prettier` and its plugins. - -- [Prettier plugin documentation](https://prettier.io/docs/en/plugins.html) - documentation around `prettier`'s plugin system -- [Builder commands](https://github.com/prettier/prettier/blob/main/commands.md) - the functions used to build the `prettier` IR -- [Writing a Prettier plugin](https://medium.com/@fvictorio/how-to-write-a-plugin-for-prettier-a0d98c845e70) - a nice tutorial on how to build a `prettier` plugin - -## Useful commands - -While developing, we've built a couple of small utilities for debugging the `prettier` printing process. To use them, first run `yarn` and `bundle` to install dependencies. - -- `bin/print.js [file|source]` - outputs the printed source of a Ruby file after running it through `prettier` - -## Testing - -There are two kinds of tests contained within this repository. - -The first are JavaScript tests (run with `jest`) that test the formatting against preconfigured fixtures to protect against regressions. They live in [test/js](test/js). To run them, run: - -``` -$ yarn test -``` - -The second are Ruby tests (run with `minitest`) that test the gem the wraps the `prettier` plugin as well as testing the various metadata attached to the AST nodes that `ripper` generates. They live in [test/rb](test/rb). To run them, run: - -``` -$ bundle exec rake -``` diff --git a/README.md b/README.md index 4d3d8b51..6d71f2d1 100644 --- a/README.md +++ b/README.md @@ -205,9 +205,11 @@ Refer to [this issue](https://github.com/prettier/plugin-ruby/issues/113#issueco ## Contributing -Check out our [contributing guide](CONTRIBUTING.md). Bug reports and pull requests are welcome on GitHub at https://github.com/prettier/plugin-ruby. +Thanks so much for your interest in contributing! You can contribute in many ways, including: -You can support `prettier/plugin-ruby` [on OpenCollective](https://opencollective.com/prettier-ruby/contribute). Your organization's logo will show up here with a link to your website. +* Contributing code to fix any bugs on [GitHub](https://github.com/prettier/plugin-ruby). +* Reporting issues on [GitHub](https://github.com/prettier/plugin-ruby/issues/new). +* Supporting `prettier/plugin-ruby` on [OpenCollective](https://opencollective.com/prettier-ruby/contribute). Your organization's logo will show up here with a link to your website. diff --git a/prettier.gemspec b/prettier.gemspec index bae2dabf..5cc3cf5a 100644 --- a/prettier.gemspec +++ b/prettier.gemspec @@ -5,12 +5,12 @@ package = JSON.parse(File.read(File.join(__dir__, "package.json"))) Gem::Specification.new do |spec| spec.name = "prettier" - spec.version = package["version"] - spec.authors = [package["author"]] + spec.version = package.fetch("version") + spec.authors = [package.fetch("author")] - spec.summary = package["description"] - spec.homepage = package["homepage"] - spec.license = package["license"] + spec.summary = package.fetch("description") + spec.homepage = package.fetch("homepage") + spec.license = package.fetch("license") spec.files = Dir.chdir(__dir__) do From cbbd3ff3dc5fee26bd55c53d3d2159978d48ed38 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 20 Oct 2022 10:03:29 -0400 Subject: [PATCH 143/262] Update README --- README.md | 55 ++++++------------------------------------------------- 1 file changed, 6 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 6d71f2d1..28ddd8a3 100644 --- a/README.md +++ b/README.md @@ -68,43 +68,13 @@ end ## Getting started -To run `prettier` with the Ruby plugin, you're going to need [`ruby`](https://www.ruby-lang.org/en/documentation/installation/) (version `2.7.3` or newer) and [`node`](https://nodejs.org/en/download/) (version `8.3` or newer). If you're integrating with a project that is not already using `prettier`, you should use the Ruby gem. Otherwise you can use the `npm` package directly. +The `@prettier/plugin-ruby` plugin for `prettier` is a small wrapper around the [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) gem that provides a Ruby formatter for `prettier`. It does this by keeping a Ruby server running in that background that `prettier` can communicate with when it needs to format a Ruby file. This means that in order to function, you will need to have both the requisite `node` and `ruby` dependencies installed. Because of this configuration, there are a couple of ways that you can get setup to use this plugin. -Note that currently the editor integrations work best with the `npm` package, as most of the major editor plugins expect a `node_modules` directory. You can get them to work with the Ruby gem, but it requires manually configuring the paths. +* If you're already using `prettier` in your project to format other files in your project and want to install this as a plugin, you can install it using `npm`. +* If you're not using `prettier` yet in your project, then we recommend using the [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) gem directly instead of using this plugin. +* Note that this plugin also ships a gem named `prettier` which is a wrapper around the `prettier` CLI and includes this plugin by default, but _we no longer recommend its use_. If you're using that gem, you should migrate to using [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) instead. -This plugin currently supports formatting the following kinds of files: - -- All varieties of Ruby source files (e.g., `*.rb`, `*.gemspec`, `Gemfile`, etc.) -- [RBS type language](https://github.com/ruby/rbs) files - requires having the `rbs` gem in your gem path -- [HAML template language](https://haml.info/) files - requires having the `haml` gem in your gem path - -### Ruby gem - -Add this line to your application's Gemfile: - -```ruby -gem "prettier" -``` - -And then execute: - -```bash -bundle -``` - -Or install it yourself as: - -```bash -gem install prettier -``` - -The `rbprettier` executable is now installed and ready for use: - -```bash -bundle exec rbprettier --write '**/*' -``` - -### `npm` package +To run `prettier` with the Ruby plugin as an `npm` package, you're going to need [`ruby`](https://www.ruby-lang.org/en/documentation/installation/) (version `2.7` or newer) and [`node`](https://nodejs.org/en/download/) (version `16` or newer). If you're using the `npm` CLI, then add the plugin by: @@ -164,20 +134,7 @@ Sometimes you want to leave your formatting in place and have `prettier` not for ### Usage with RuboCop -RuboCop and Prettier for Ruby serve different purposes, but there is overlap -with some of RuboCop's functionality. - -Prettier provides a RuboCop configuration file to disable the rules which clash. -To enable, add the following config at the top of your project's `.rubocop.yml`: - -#### Ruby gem - -```yaml -inherit_gem: - prettier: rubocop.yml -``` - -#### `npm` package +RuboCop and Prettier for Ruby serve different purposes, but there is overlap with some of RuboCop's functionality. Prettier provides a RuboCop configuration file to disable the rules which would clash. To enable this file, add the following configuration at the top of your project's `.rubocop.yml`: ```yaml inherit_from: From 26a362c61ef6ecb23193c673b26beacac56c27a0 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Sat, 22 Oct 2022 15:31:14 -0400 Subject: [PATCH 144/262] Formatting for README --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 28ddd8a3..483a13c9 100644 --- a/README.md +++ b/README.md @@ -70,9 +70,9 @@ end The `@prettier/plugin-ruby` plugin for `prettier` is a small wrapper around the [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) gem that provides a Ruby formatter for `prettier`. It does this by keeping a Ruby server running in that background that `prettier` can communicate with when it needs to format a Ruby file. This means that in order to function, you will need to have both the requisite `node` and `ruby` dependencies installed. Because of this configuration, there are a couple of ways that you can get setup to use this plugin. -* If you're already using `prettier` in your project to format other files in your project and want to install this as a plugin, you can install it using `npm`. -* If you're not using `prettier` yet in your project, then we recommend using the [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) gem directly instead of using this plugin. -* Note that this plugin also ships a gem named `prettier` which is a wrapper around the `prettier` CLI and includes this plugin by default, but _we no longer recommend its use_. If you're using that gem, you should migrate to using [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) instead. +- If you're already using `prettier` in your project to format other files in your project and want to install this as a plugin, you can install it using `npm`. +- If you're not using `prettier` yet in your project, then we recommend using the [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) gem directly instead of using this plugin. +- Note that this plugin also ships a gem named `prettier` which is a wrapper around the `prettier` CLI and includes this plugin by default, but _we no longer recommend its use_. If you're using that gem, you should migrate to using [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree) instead. To run `prettier` with the Ruby plugin as an `npm` package, you're going to need [`ruby`](https://www.ruby-lang.org/en/documentation/installation/) (version `2.7` or newer) and [`node`](https://nodejs.org/en/download/) (version `16` or newer). @@ -164,9 +164,9 @@ Refer to [this issue](https://github.com/prettier/plugin-ruby/issues/113#issueco Thanks so much for your interest in contributing! You can contribute in many ways, including: -* Contributing code to fix any bugs on [GitHub](https://github.com/prettier/plugin-ruby). -* Reporting issues on [GitHub](https://github.com/prettier/plugin-ruby/issues/new). -* Supporting `prettier/plugin-ruby` on [OpenCollective](https://opencollective.com/prettier-ruby/contribute). Your organization's logo will show up here with a link to your website. +- Contributing code to fix any bugs on [GitHub](https://github.com/prettier/plugin-ruby). +- Reporting issues on [GitHub](https://github.com/prettier/plugin-ruby/issues/new). +- Supporting `prettier/plugin-ruby` on [OpenCollective](https://opencollective.com/prettier-ruby/contribute). Your organization's logo will show up here with a link to your website. From d924bf389850573bf11f99af96180e3d180ef903 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Oct 2022 12:01:10 +0000 Subject: [PATCH 145/262] Bump eslint from 8.25.0 to 8.26.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.25.0 to 8.26.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.25.0...v8.26.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 81 ++++++++++++++----------------------------------------- 1 file changed, 20 insertions(+), 61 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4704e388..187857f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -312,10 +312,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.10.5": - version "0.10.7" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.7.tgz#6d53769fd0c222767e6452e8ebda825c22e9f0dc" - integrity sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w== +"@humanwhocodes/config-array@^0.11.6": + version "0.11.6" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.6.tgz#6a51d603a3aaf8d4cf45b42b3f2ac9318a4adc4b" + integrity sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -587,12 +587,12 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@2.0.5": version "2.0.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -1052,13 +1052,6 @@ diff-sequences@^29.2.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -1146,13 +1139,14 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.25.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.25.0.tgz#00eb962f50962165d0c4ee3327708315eaa8058b" - integrity sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A== + version "8.26.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.26.0.tgz#2bcc8836e6c424c4ac26a5674a70d44d84f2181d" + integrity sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg== dependencies: "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.10.5" + "@humanwhocodes/config-array" "^0.11.6" "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -1168,14 +1162,14 @@ eslint@^8.15.0: fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" - glob-parent "^6.0.1" + glob-parent "^6.0.2" globals "^13.15.0" - globby "^11.1.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" + is-path-inside "^3.0.3" js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" @@ -1278,17 +1272,6 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - 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" @@ -1398,14 +1381,7 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.1: +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -1436,18 +1412,6 @@ globals@^13.15.0: dependencies: type-fest "^0.20.2" -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" @@ -1561,7 +1525,7 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -1573,6 +1537,11 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -2104,11 +2073,6 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - micromatch@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -2273,11 +2237,6 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" From c2be0f89d18a299d93f6f40e74883af95fc46907 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Oct 2022 12:01:09 +0000 Subject: [PATCH 146/262] Bump jest from 29.2.1 to 29.2.2 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.2.1 to 29.2.2. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.2.2/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 332 +++++++++++++++++++++++++++--------------------------- 1 file changed, 166 insertions(+), 166 deletions(-) diff --git a/yarn.lock b/yarn.lock index 187857f0..444b8ede 100644 --- a/yarn.lock +++ b/yarn.lock @@ -359,15 +359,15 @@ jest-util "^29.2.1" slash "^3.0.0" -"@jest/core@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.1.tgz#30af794ebd73bfb87cd8ba36718738dfe38b772e" - integrity sha512-kuLKYqnqgerXkBUwlHVxeSuhSnd+JMnMCLfU98bpacBSfWEJPegytDh3P2m15/JHzet32hGGld4KR4OzMb6/Tg== +"@jest/core@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.2.tgz#207aa8973d9de8769f9518732bc5f781efc3ffa7" + integrity sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A== dependencies: "@jest/console" "^29.2.1" - "@jest/reporters" "^29.2.1" + "@jest/reporters" "^29.2.2" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" @@ -376,79 +376,79 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.2.0" - jest-config "^29.2.1" + jest-config "^29.2.2" jest-haste-map "^29.2.1" jest-message-util "^29.2.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.1" - jest-resolve-dependencies "^29.2.1" - jest-runner "^29.2.1" - jest-runtime "^29.2.1" - jest-snapshot "^29.2.1" + jest-resolve "^29.2.2" + jest-resolve-dependencies "^29.2.2" + jest-runner "^29.2.2" + jest-runtime "^29.2.2" + jest-snapshot "^29.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" - jest-watcher "^29.2.1" + jest-validate "^29.2.2" + jest-watcher "^29.2.2" micromatch "^4.0.4" pretty-format "^29.2.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.1.tgz#acb1994fbd5ad02819a1a34a923c531e6923b665" - integrity sha512-EutqA7T/X6zFjw6mAWRHND+ZkTPklmIEWCNbmwX6uCmOrFrWaLbDZjA+gePHJx6fFMMRvNfjXcvzXEtz54KPlg== +"@jest/environment@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.2.tgz#481e729048d42e87d04842c38aa4d09c507f53b0" + integrity sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A== dependencies: - "@jest/fake-timers" "^29.2.1" + "@jest/fake-timers" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.1" + jest-mock "^29.2.2" -"@jest/expect-utils@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.1.tgz#eae61c90f2066540f60d23b8f254f03b7869b22f" - integrity sha512-yr4aHNg5Z1CjKby5ozm7sKjgBlCOorlAoFcvrOQ/4rbZRfgZQdnmh7cth192PYIgiPZo2bBXvqdOApnAMWFJZg== +"@jest/expect-utils@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665" + integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.1.tgz#8d99be3886ebfcffd6cabb2b46602a301b976ffe" - integrity sha512-o14R2t2tHHHudwji43UKkzmmH49xfF5T++FQBK2tl88qwuBWQOcx7fNUYl+mA/9TPNAN0FkQ3usnpyS8FUwsvQ== +"@jest/expect@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.2.tgz#81edbd33afbde7795ca07ff6b4753d15205032e4" + integrity sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg== dependencies: - expect "^29.2.1" - jest-snapshot "^29.2.1" + expect "^29.2.2" + jest-snapshot "^29.2.2" -"@jest/fake-timers@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.1.tgz#786d60e8cb60ca70c9f913cb49fcc77610c072bb" - integrity sha512-KWil+8fef7Uj/P/PTZlPKk1Pw117wAmr71VWFV8ZDtRtkwmTG8oY4IRf0Ss44J2y5CYRy8d/zLOhxyoGRENjvA== +"@jest/fake-timers@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.2.tgz#d8332e6e3cfa99cde4bc87d04a17d6b699deb340" + integrity sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA== dependencies: "@jest/types" "^29.2.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" jest-message-util "^29.2.1" - jest-mock "^29.2.1" + jest-mock "^29.2.2" jest-util "^29.2.1" -"@jest/globals@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.1.tgz#6933beb8b4e43b990409a19c462fde7b71210e63" - integrity sha512-Z4EejYPP1OPVq2abk1+9urAwJqkgw5jB2UJGlPjb5ZwzPQF8WLMcigKEfFzZb2OHhEVPP0RZD0/DbVTY1R6iQA== +"@jest/globals@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.2.tgz#205ff1e795aa774301c2c0ba0be182558471b845" + integrity sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw== dependencies: - "@jest/environment" "^29.2.1" - "@jest/expect" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/expect" "^29.2.2" "@jest/types" "^29.2.1" - jest-mock "^29.2.1" + jest-mock "^29.2.2" -"@jest/reporters@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.1.tgz#599e4376823751fdda50f2ca97243e013da10c4d" - integrity sha512-sCsfUKM/yIF4nNed3e/rIgVIS58EiASGMDEPWqItfLZ9UO1ALW2ASDNJzdWkxEt0T8o2Ztj619G0KKrvK+McAw== +"@jest/reporters@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.2.tgz#69b395f79c3a97ce969ce05ccf1a482e5d6de290" + integrity sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@jest/console" "^29.2.1" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" @@ -496,20 +496,20 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.1.tgz#cafd2c5f3528c70bd4cc243800459ac366e480cc" - integrity sha512-O/pnk0/xGj3lxPVNwB6HREJ7AYvUdyP2xo/s14/9Dtf091HoOeyIhWLKQE/4HzB8lNQBMo6J5mg0bHz/uCWK7w== +"@jest/test-sequencer@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.2.tgz#4ac7487b237e517a1f55e7866fb5553f6e0168b9" + integrity sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw== dependencies: "@jest/test-result" "^29.2.1" graceful-fs "^4.2.9" jest-haste-map "^29.2.1" slash "^3.0.0" -"@jest/transform@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.1.tgz#f3d8154edd19cdbcaf1d6646bd8f4ff7812318a2" - integrity sha512-xup+iEuaIRSQabQaeqxaQyN0vg1Dctrp9oTObQsNf3sZEowTIa5cANYuoyi8Tqhg4GCqEVLTf18KW7ii0UeFVA== +"@jest/transform@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6" + integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg== dependencies: "@babel/core" "^7.11.6" "@jest/types" "^29.2.1" @@ -796,12 +796,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.1.tgz#213c47e28072de11bdb98c9d29b89f2ab99664f1" - integrity sha512-gQJwArok0mqoREiCYhXKWOgUhElJj9DpnssW6GL8dG7ARYqHEhrM9fmPHTjdqEGRVXZAd6+imo3/Vwa8TjLcsw== +babel-jest@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5" + integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w== dependencies: - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -1064,10 +1064,10 @@ electron-to-chromium@^1.4.251: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== emoji-regex@^8.0.0: version "8.0.0" @@ -1256,14 +1256,14 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.1.tgz#25752d0df92d3daa5188dc8804de1f30759658cf" - integrity sha512-BJtA754Fba0YWRWHgjKUMTA3ltWarKgITXHQnbZ2mTxTXC4yMQlR0FI7HkB3fJYkhWBf4qjNiqvg3LDtXCcVRQ== +expect@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106" + integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw== dependencies: - "@jest/expect-utils" "^29.2.1" + "@jest/expect-utils" "^29.2.2" jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.1" + jest-matcher-utils "^29.2.2" jest-message-util "^29.2.1" jest-util "^29.2.1" @@ -1602,13 +1602,13 @@ jest-changed-files@^29.2.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.1.tgz#1385353d9bca6acf58f916068bbeffcfc95bef02" - integrity sha512-W+ZQQ5ln4Db2UZNM4NJIeasnhCdDhSuYW4eLgNAUi0XiSSpF634Kc5wiPvGiHvTgXMFVn1ZgWIijqhi9+kLNLg== +jest-circus@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.2.tgz#1dc4d35fd49bf5e64d3cc505fb2db396237a6dfa" + integrity sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw== dependencies: - "@jest/environment" "^29.2.1" - "@jest/expect" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/expect" "^29.2.2" "@jest/test-result" "^29.2.1" "@jest/types" "^29.2.1" "@types/node" "*" @@ -1617,56 +1617,56 @@ jest-circus@^29.2.1: dedent "^0.7.0" is-generator-fn "^2.0.0" jest-each "^29.2.1" - jest-matcher-utils "^29.2.1" + jest-matcher-utils "^29.2.2" jest-message-util "^29.2.1" - jest-runtime "^29.2.1" - jest-snapshot "^29.2.1" + jest-runtime "^29.2.2" + jest-snapshot "^29.2.2" jest-util "^29.2.1" p-limit "^3.1.0" pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.1.tgz#fbfa90b87b27a04e1041cc9d33ee80f32e2f2528" - integrity sha512-UIMD5aNqvPKpdlJSaeUAoLfxsh9TZvOkaMETx5qXnkboc317bcbb0eLHbIj8sFBHdcJAIAM+IRKnIU7Wi61MBw== +jest-cli@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.2.tgz#feaf0aa57d327e80d4f2f18d5f8cd2e77cac5371" + integrity sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg== dependencies: - "@jest/core" "^29.2.1" + "@jest/core" "^29.2.2" "@jest/test-result" "^29.2.1" "@jest/types" "^29.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.2.1" + jest-config "^29.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" + jest-validate "^29.2.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.1.tgz#2182af014d6c73978208626335db5134803dd183" - integrity sha512-EV5F1tQYW/quZV2br2o88hnYEeRzG53Dfi6rSG3TZBuzGQ6luhQBux/RLlU5QrJjCdq3LXxRRM8F1LP6DN1ycA== +jest-config@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.2.tgz#bf98623a46454d644630c1f0de8bba3f495c2d59" + integrity sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.2.1" + "@jest/test-sequencer" "^29.2.2" "@jest/types" "^29.2.1" - babel-jest "^29.2.1" + babel-jest "^29.2.2" 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.2.1" - jest-environment-node "^29.2.1" + jest-circus "^29.2.2" + jest-environment-node "^29.2.2" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.2.1" - jest-runner "^29.2.1" + jest-resolve "^29.2.2" + jest-runner "^29.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" + jest-validate "^29.2.2" micromatch "^4.0.4" parse-json "^5.2.0" pretty-format "^29.2.1" @@ -1701,16 +1701,16 @@ jest-each@^29.2.1: jest-util "^29.2.1" pretty-format "^29.2.1" -jest-environment-node@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.1.tgz#f90311d0f0e8ef720349f83c97a076e403f90665" - integrity sha512-PulFKwEMz6nTAdLUwglFKei3b/LixwlRiqTN6nvPE1JtrLtlnpd6LXnFI1NFHYJGlTmIWilMP2n9jEtPPKX50g== +jest-environment-node@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.2.tgz#a64b272773870c3a947cd338c25fd34938390bc2" + integrity sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw== dependencies: - "@jest/environment" "^29.2.1" - "@jest/fake-timers" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.1" + jest-mock "^29.2.2" jest-util "^29.2.1" jest-get-type@^29.2.0: @@ -1745,10 +1745,10 @@ jest-leak-detector@^29.2.1: jest-get-type "^29.2.0" pretty-format "^29.2.1" -jest-matcher-utils@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.1.tgz#2bf876c5f891b33786aadf5d65d5da5970744122" - integrity sha512-hUTBh7H/Mnb6GTpihbLh8uF5rjAMdekfW/oZNXUMAXi7bbmym2HiRpzgqf/zzkjgejMrVAkPdVSQj+32enlUww== +jest-matcher-utils@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c" + integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw== dependencies: chalk "^4.0.0" jest-diff "^29.2.1" @@ -1770,10 +1770,10 @@ jest-message-util@^29.2.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.1.tgz#a0d361cffcb28184fa9c5443adbf591fa5759775" - integrity sha512-NDphaY/GqyQpTfnTZiTqqpMaw4Z0I7XnB7yBgrT6IwYrLGxpOhrejYr4ANY4YvO2sEGdd8Tx/6D0+WLQy7/qDA== +jest-mock@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.2.tgz#9045618b3f9d27074bbcf2d55bdca6a5e2e8bca7" + integrity sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ== dependencies: "@jest/types" "^29.2.1" "@types/node" "*" @@ -1789,67 +1789,67 @@ jest-regex-util@^29.2.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.1.tgz#8d717dd41dc615fef1d412d395ea3deccfb1b9fa" - integrity sha512-o3mUGX2j08usj1jIAIE8KmUVpqVAn54k80kI27ldbZf2oJn6eghhB6DvJxjrcH40va9CQgWTfU5f2Ag/MoUqgQ== +jest-resolve-dependencies@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.2.tgz#1f444766f37a25f1490b5137408b6ff746a05d64" + integrity sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.2.1" + jest-snapshot "^29.2.2" -jest-resolve@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.1.tgz#a4d2f76db88aeb6ec5f5453c9a40b52483d17799" - integrity sha512-1dJTW76Z9622Viq4yRcwBuEXuzGtE9B2kdl05RC8Om/lAzac9uEgC+M8Q5osVidbuBPmxm8wSrcItYhca2ZAtQ== +jest-resolve@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.2.tgz#ad6436053b0638b41e12bbddde2b66e1397b35b5" + integrity sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" jest-haste-map "^29.2.1" jest-pnp-resolver "^1.2.2" jest-util "^29.2.1" - jest-validate "^29.2.1" + jest-validate "^29.2.2" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.1.tgz#885afe64661cb2f51f84c1b97afb713d1093c124" - integrity sha512-PojFI+uVhQ4u4YZKCN/a3yU0/l/pJJXhq1sW3JpCp8CyvGBYGddRFPKZ1WihApusxqWRTHjBJmGyPWv6Av2lWA== +jest-runner@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.2.tgz#6b5302ed15eba8bf05e6b14d40f1e8d469564da3" + integrity sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg== dependencies: "@jest/console" "^29.2.1" - "@jest/environment" "^29.2.1" + "@jest/environment" "^29.2.2" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" - emittery "^0.10.2" + emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.2.1" + jest-environment-node "^29.2.2" jest-haste-map "^29.2.1" jest-leak-detector "^29.2.1" jest-message-util "^29.2.1" - jest-resolve "^29.2.1" - jest-runtime "^29.2.1" + jest-resolve "^29.2.2" + jest-runtime "^29.2.2" jest-util "^29.2.1" - jest-watcher "^29.2.1" + jest-watcher "^29.2.2" jest-worker "^29.2.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.1.tgz#62e3a23c33710ae4d9c3304dda851a5fb225b574" - integrity sha512-PSQ880OoIW9y8E6/jjhGn3eQNgNc6ndMzCZaKqy357bv7FqCfSyYepu3yDC6Sp1Vkt+GhP2M/PVgldS2uZSFZg== +jest-runtime@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.2.tgz#4068ee82423769a481460efd21d45a8efaa5c179" + integrity sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA== dependencies: - "@jest/environment" "^29.2.1" - "@jest/fake-timers" "^29.2.1" - "@jest/globals" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" + "@jest/globals" "^29.2.2" "@jest/source-map" "^29.2.0" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" @@ -1859,18 +1859,18 @@ jest-runtime@^29.2.1: graceful-fs "^4.2.9" jest-haste-map "^29.2.1" jest-message-util "^29.2.1" - jest-mock "^29.2.1" + jest-mock "^29.2.2" jest-regex-util "^29.2.0" - jest-resolve "^29.2.1" - jest-snapshot "^29.2.1" + jest-resolve "^29.2.2" + jest-snapshot "^29.2.2" jest-util "^29.2.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.1.tgz#f3843b3099c8fec7e6218dea18cc506f10ea5d30" - integrity sha512-KZdLD7iEz5M4ZYd+ezZ/kk73z+DtNbk/yJ4Qx7408Vb0CCuclJIZPa/HmIwSsCfIlOBNcYTKufr7x/Yv47oYlg== +jest-snapshot@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.2.tgz#1016ce60297b77382386bad561107174604690c2" + integrity sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1878,19 +1878,19 @@ jest-snapshot@^29.2.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.2.1" - "@jest/transform" "^29.2.1" + "@jest/expect-utils" "^29.2.2" + "@jest/transform" "^29.2.2" "@jest/types" "^29.2.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.2.1" + expect "^29.2.2" graceful-fs "^4.2.9" jest-diff "^29.2.1" jest-get-type "^29.2.0" jest-haste-map "^29.2.1" - jest-matcher-utils "^29.2.1" + jest-matcher-utils "^29.2.2" jest-message-util "^29.2.1" jest-util "^29.2.1" natural-compare "^1.4.0" @@ -1909,10 +1909,10 @@ jest-util@^29.2.1: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.1.tgz#db814ce12c4c7e4746044922762e56eb177d066c" - integrity sha512-DZVX5msG6J6DL5vUUw+++6LEkXUsPwB5R7fsfM7BXdz2Ipr0Ib046ak+8egrwAR++pvSM/5laxLK977ieIGxkQ== +jest-validate@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.2.tgz#e43ce1931292dfc052562a11bc681af3805eadce" + integrity sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA== dependencies: "@jest/types" "^29.2.1" camelcase "^6.2.0" @@ -1921,17 +1921,17 @@ jest-validate@^29.2.1: leven "^3.1.0" pretty-format "^29.2.1" -jest-watcher@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.1.tgz#1cb91f8aa9e77b1332af139944ad65e51430d7c3" - integrity sha512-7jFaHUaRq50l4w/f6RuY713bvI5XskMmjWCE54NGYcY74fLkShS8LucXJke1QfGnwDSCoIqGnGGGKPwdaBYz2Q== +jest-watcher@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.2.tgz#7093d4ea8177e0a0da87681a9e7b09a258b9daf7" + integrity sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w== dependencies: "@jest/test-result" "^29.2.1" "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - emittery "^0.10.2" + emittery "^0.13.1" jest-util "^29.2.1" string-length "^4.0.1" @@ -1946,14 +1946,14 @@ jest-worker@^29.2.1: supports-color "^8.0.0" jest@^29.0.0: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.1.tgz#352ec0b81a0e436691d546d984cd7d8f72ffd26a" - integrity sha512-K0N+7rx+fv3Us3KhuwRSJt55MMpZPs9Q3WSO/spRZSnsalX8yEYOTQ1PiSN7OvqzoRX4JEUXCbOJRlP4n8m5LA== + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.2.tgz#24da83cbbce514718acd698926b7679109630476" + integrity sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ== dependencies: - "@jest/core" "^29.2.1" + "@jest/core" "^29.2.2" "@jest/types" "^29.2.1" import-local "^3.0.2" - jest-cli "^29.2.1" + jest-cli "^29.2.2" js-sdsl@^4.1.4: version "4.1.5" From 7cc3ca879baaa5b822c4510a231a990bfcf26c1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Oct 2022 12:01:34 +0000 Subject: [PATCH 147/262] Bump prettier from 3.0.0-alpha.3 to 3.0.0-alpha.4 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0-alpha.3 to 3.0.0-alpha.4. - [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.0.0-alpha.3...3.0.0-alpha.4) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 444b8ede..ad2c5cf6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2265,9 +2265,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@>=3.0.0-alpha.2: - version "3.0.0-alpha.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.3.tgz#21c35c12792dc0e1d04dd00efe0976f383928f58" - integrity sha512-gYWrMcU3iMwG+PSPU2KnprIKslFDW+mslyA8DCrCASO9z1+rEog82WzoYtP7Kh7QglVepKjl94iJFfRPTens2A== + version "3.0.0-alpha.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.4.tgz#eee71d6b520b970f44e4045f2dc772bf6f80815f" + integrity sha512-+KeqJv4E5kaRsDRgSx9IeVygLKGHRmcoPvRJvPFp3bC1mw8opsva555gGb8TaJzUiHXoLZcus1EX+nlHPda7Pw== pretty-format@^29.2.1: version "29.2.1" From 715747fd45741da72b1a727538263703d35e18fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Nov 2022 12:01:11 +0000 Subject: [PATCH 148/262] Bump eslint from 8.26.0 to 8.27.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.26.0 to 8.27.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.26.0...v8.27.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index ad2c5cf6..9aa6beeb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1139,9 +1139,9 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.26.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.26.0.tgz#2bcc8836e6c424c4ac26a5674a70d44d84f2181d" - integrity sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg== + version "8.27.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.27.0.tgz#d547e2f7239994ad1faa4bb5d84e5d809db7cf64" + integrity sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ== dependencies: "@eslint/eslintrc" "^1.3.3" "@humanwhocodes/config-array" "^0.11.6" From bb09b33c0d8150670b4bdf084a30be8f75d3dc9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 12:04:22 +0000 Subject: [PATCH 149/262] Bump husky from 8.0.1 to 8.0.2 Bumps [husky](https://github.com/typicode/husky) from 8.0.1 to 8.0.2. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v8.0.1...v8.0.2) --- updated-dependencies: - dependency-name: husky dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9aa6beeb..aeb4010e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1455,9 +1455,9 @@ human-signals@^2.1.0: integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== husky@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" - integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== + version "8.0.2" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.2.tgz#5816a60db02650f1f22c8b69b928fd6bcd77a236" + integrity sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg== ignore@^5.1.4, ignore@^5.2.0: version "5.2.0" From 87d4b37d42c3433f61f02991f1e6a44fe123cb07 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 12:05:38 +0000 Subject: [PATCH 150/262] Bump jest from 29.2.2 to 29.3.0 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.2.2 to 29.3.0. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.3.0/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 311 +++++++++++++++++++++++++++--------------------------- 1 file changed, 158 insertions(+), 153 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9aa6beeb..996d2df6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -359,15 +359,15 @@ jest-util "^29.2.1" slash "^3.0.0" -"@jest/core@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.2.tgz#207aa8973d9de8769f9518732bc5f781efc3ffa7" - integrity sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A== +"@jest/core@^29.3.0": + version "29.3.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.0.tgz#7042d3fd673b51d89d6f6bf8b9f85fb65573629e" + integrity sha512-5DyNvV8452bwqcYyXHCYaAD8UrTiWosrhBY+rc0MBMyXyDzcIL+w5gdlCYhlHbNsHoWnf4nUbRmg++LWfWVtMQ== dependencies: "@jest/console" "^29.2.1" - "@jest/reporters" "^29.2.2" + "@jest/reporters" "^29.3.0" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.2" + "@jest/transform" "^29.3.0" "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" @@ -376,15 +376,15 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.2.0" - jest-config "^29.2.2" - jest-haste-map "^29.2.1" + jest-config "^29.3.0" + jest-haste-map "^29.3.0" jest-message-util "^29.2.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.2" - jest-resolve-dependencies "^29.2.2" - jest-runner "^29.2.2" - jest-runtime "^29.2.2" - jest-snapshot "^29.2.2" + jest-resolve "^29.3.0" + jest-resolve-dependencies "^29.3.0" + jest-runner "^29.3.0" + jest-runtime "^29.3.0" + jest-snapshot "^29.3.0" jest-util "^29.2.1" jest-validate "^29.2.2" jest-watcher "^29.2.2" @@ -393,15 +393,15 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.2.tgz#481e729048d42e87d04842c38aa4d09c507f53b0" - integrity sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A== +"@jest/environment@^29.3.0": + version "29.3.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.0.tgz#e7bfe22531813f86040feb75c046faab32fd534d" + integrity sha512-8wgn3br51bx+7rgC8FOKmAD62Q39iswdiy5/p6acoekp/9Bb/IQbh3zydOrnGp74LwStSrKgpQSKBlOKlAQq0g== dependencies: - "@jest/fake-timers" "^29.2.2" + "@jest/fake-timers" "^29.3.0" "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.2" + jest-mock "^29.3.0" "@jest/expect-utils@^29.2.2": version "29.2.2" @@ -410,45 +410,45 @@ dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.2.tgz#81edbd33afbde7795ca07ff6b4753d15205032e4" - integrity sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg== +"@jest/expect@^29.3.0": + version "29.3.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.0.tgz#06907ffc02541c8d5186e8324765a72f391f3125" + integrity sha512-Lz/3x4Se5g6nBuLjTO+xE8D4OXY9fFmosZPwkXXZUJUsp9r9seN81cJa54wOGr1QjCQnhngMqclblhM4X/hcCg== dependencies: - expect "^29.2.2" - jest-snapshot "^29.2.2" + expect "^29.3.0" + jest-snapshot "^29.3.0" -"@jest/fake-timers@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.2.tgz#d8332e6e3cfa99cde4bc87d04a17d6b699deb340" - integrity sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA== +"@jest/fake-timers@^29.3.0": + version "29.3.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.0.tgz#ffa74e5b2937676849866cac79cac6a742697f00" + integrity sha512-SzmWtN6Rld+xebMRGuWeMGhytc7qHnYfFk1Zd/1QavQWsFOmA9SgtvGHCBue1wXQhdDMaSIm1aPGj2Zmyrr1Zg== dependencies: "@jest/types" "^29.2.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" jest-message-util "^29.2.1" - jest-mock "^29.2.2" + jest-mock "^29.3.0" jest-util "^29.2.1" -"@jest/globals@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.2.tgz#205ff1e795aa774301c2c0ba0be182558471b845" - integrity sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw== +"@jest/globals@^29.3.0": + version "29.3.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.0.tgz#f58c14d727fd7d02d7851bc03fc0445eefa2dbe2" + integrity sha512-okYDVzYNrt/4ysR8XnX6u0I1bGG4kmfdXtUu7kwWHZ9OP13RCjmphgve0tfOrNluwksWvOPYS1f/HOrFTHLygQ== dependencies: - "@jest/environment" "^29.2.2" - "@jest/expect" "^29.2.2" + "@jest/environment" "^29.3.0" + "@jest/expect" "^29.3.0" "@jest/types" "^29.2.1" - jest-mock "^29.2.2" + jest-mock "^29.3.0" -"@jest/reporters@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.2.tgz#69b395f79c3a97ce969ce05ccf1a482e5d6de290" - integrity sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA== +"@jest/reporters@^29.3.0": + version "29.3.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.0.tgz#e5e2af97d7754510393d7c04084744841cce2eaf" + integrity sha512-MV76tB3Kd80vcv2yMDZfQpMkwkHaY9hlvVhCtHXkVRCWwN+SX3EOmCdX8pT/X4Xh+NusA7l2Rc3yhx4q5p3+Fg== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@jest/console" "^29.2.1" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.2" + "@jest/transform" "^29.3.0" "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" @@ -464,7 +464,7 @@ istanbul-reports "^3.1.3" jest-message-util "^29.2.1" jest-util "^29.2.1" - jest-worker "^29.2.1" + jest-worker "^29.3.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -496,30 +496,30 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.2.tgz#4ac7487b237e517a1f55e7866fb5553f6e0168b9" - integrity sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw== +"@jest/test-sequencer@^29.3.0": + version "29.3.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.0.tgz#0c2198fe482c26d763abbcb183992ae769bb7978" + integrity sha512-XQlTP/S6Yf6NKV0Mt4oopFKyDxiEkDMD7hIFcCTeltKQszE0Z+LI5KLukwNW6Qxr1YzaZ/s6PlKJusiCLJNTcw== dependencies: "@jest/test-result" "^29.2.1" graceful-fs "^4.2.9" - jest-haste-map "^29.2.1" + jest-haste-map "^29.3.0" slash "^3.0.0" -"@jest/transform@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6" - integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg== +"@jest/transform@^29.3.0": + version "29.3.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.0.tgz#7f71c9596d5bad1613a3a5eb26729dd84fc71a5a" + integrity sha512-4T8h61ItCakAlJkdYa7XVWP3r39QldlCeOSNmRpiJisi5PrrlzwZdpJDIH13ZZjh+MlSPQ2cq8YbUs3TuH+tRA== dependencies: "@babel/core" "^7.11.6" "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" - convert-source-map "^1.4.0" + convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.1" + jest-haste-map "^29.3.0" jest-regex-util "^29.2.0" jest-util "^29.2.1" micromatch "^4.0.4" @@ -796,12 +796,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5" - integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w== +babel-jest@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.0.tgz#31fd7ef97dd6a77ddd1b4ab1f8cf77c29e20bb5c" + integrity sha512-LzQWdGm6hUugVeyGpIKI/T4SVT+PgAA5WFPqBDbneK7C/PqfckNb0tc4KvcKXq/PLA1yY6wTvB8Bc/REQdUxFg== dependencies: - "@jest/transform" "^29.2.2" + "@jest/transform" "^29.3.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -1006,11 +1006,16 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-source-map@^2.0.0: + version "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== + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -1256,10 +1261,10 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106" - integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw== +expect@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.0.tgz#2dad3a73ac837dd8074ff91d25cf1614c3e91504" + integrity sha512-bms139btnQNZh4uxCPmzbWz46YOjtEpYIZ847OfY9GCeSBEfzedHWH0CkdR20Sy+XBs8/FI2lFJPZiuH0NGv+w== dependencies: "@jest/expect-utils" "^29.2.2" jest-get-type "^29.2.0" @@ -1602,13 +1607,13 @@ jest-changed-files@^29.2.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.2.tgz#1dc4d35fd49bf5e64d3cc505fb2db396237a6dfa" - integrity sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw== +jest-circus@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.0.tgz#997354276d24706e14549cab98ac2995d63c92fd" + integrity sha512-xL1cmbUGBGy923KBZpZ2LRKspHlIhrltrwGaefJ677HXCPY5rTF758BtweamBype2ogcSEK/oqcp1SmYZ/ATig== dependencies: - "@jest/environment" "^29.2.2" - "@jest/expect" "^29.2.2" + "@jest/environment" "^29.3.0" + "@jest/expect" "^29.3.0" "@jest/test-result" "^29.2.1" "@jest/types" "^29.2.1" "@types/node" "*" @@ -1619,52 +1624,52 @@ jest-circus@^29.2.2: jest-each "^29.2.1" jest-matcher-utils "^29.2.2" jest-message-util "^29.2.1" - jest-runtime "^29.2.2" - jest-snapshot "^29.2.2" + jest-runtime "^29.3.0" + jest-snapshot "^29.3.0" jest-util "^29.2.1" p-limit "^3.1.0" pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.2.tgz#feaf0aa57d327e80d4f2f18d5f8cd2e77cac5371" - integrity sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg== +jest-cli@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.0.tgz#7ca1913f6088570ae58bbb312d70500e00120d41" + integrity sha512-rDb9iasZvqTkgrlwzVGemR5i20T0/XN1ug46Ch2vxTRa0zS5PHaVXQXYzYbuLFHs1xpc+XsB9xPfEkkwbnLJBg== dependencies: - "@jest/core" "^29.2.2" + "@jest/core" "^29.3.0" "@jest/test-result" "^29.2.1" "@jest/types" "^29.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.2.2" + jest-config "^29.3.0" jest-util "^29.2.1" jest-validate "^29.2.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.2.tgz#bf98623a46454d644630c1f0de8bba3f495c2d59" - integrity sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw== +jest-config@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.0.tgz#4b30188390636106414ea6b43aa6b2fb30d1a54d" + integrity sha512-sTSDs/M+//njznsytxiBxwfDnSWRb6OqiNSlO/B2iw1HUaa1YLsdWmV4AWLXss1XKzv1F0yVK+kA4XOhZ0I1qQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.2.2" + "@jest/test-sequencer" "^29.3.0" "@jest/types" "^29.2.1" - babel-jest "^29.2.2" + babel-jest "^29.3.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.2.2" - jest-environment-node "^29.2.2" + jest-circus "^29.3.0" + jest-environment-node "^29.3.0" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.2.2" - jest-runner "^29.2.2" + jest-resolve "^29.3.0" + jest-runner "^29.3.0" jest-util "^29.2.1" jest-validate "^29.2.2" micromatch "^4.0.4" @@ -1701,16 +1706,16 @@ jest-each@^29.2.1: jest-util "^29.2.1" pretty-format "^29.2.1" -jest-environment-node@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.2.tgz#a64b272773870c3a947cd338c25fd34938390bc2" - integrity sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw== +jest-environment-node@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.0.tgz#aed95a8e566d80f9f8564fba01ca5caa9d0aa59a" + integrity sha512-oikVE5pyiBUMrqi7J/kFGd1zeT14+EnJulyqzopDNijLX13ygwjiOF/GVpVKSGyBrrAwSkaj/ohEQJCcjkCtOA== dependencies: - "@jest/environment" "^29.2.2" - "@jest/fake-timers" "^29.2.2" + "@jest/environment" "^29.3.0" + "@jest/fake-timers" "^29.3.0" "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.2.2" + jest-mock "^29.3.0" jest-util "^29.2.1" jest-get-type@^29.2.0: @@ -1718,10 +1723,10 @@ jest-get-type@^29.2.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== -jest-haste-map@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699" - integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA== +jest-haste-map@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.0.tgz#9786f501ed6ab1c7adc35d3f83c1c21ed4172c77" + integrity sha512-ugdLIreycMRRg3+6AjiExECmuFI2D9PS+BmNU7eGvBt3fzVMKybb9USAZXN6kw4Q6Mn8DSK+7OFCloY2rN820Q== dependencies: "@jest/types" "^29.2.1" "@types/graceful-fs" "^4.1.3" @@ -1731,7 +1736,7 @@ jest-haste-map@^29.2.1: graceful-fs "^4.2.9" jest-regex-util "^29.2.0" jest-util "^29.2.1" - jest-worker "^29.2.1" + jest-worker "^29.3.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -1770,10 +1775,10 @@ jest-message-util@^29.2.1: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.2.tgz#9045618b3f9d27074bbcf2d55bdca6a5e2e8bca7" - integrity sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ== +jest-mock@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.0.tgz#aa6f1d5118fd4b9d007df782e0624e6efab6d33d" + integrity sha512-BRKfsAaeP3pTWeog+1D0ILeJF96SzB6y3k0JDxY63kssxiUy9nDLHmNUoVkBGILjMbpHULhbzVTsb3harPXuUQ== dependencies: "@jest/types" "^29.2.1" "@types/node" "*" @@ -1789,22 +1794,22 @@ jest-regex-util@^29.2.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.2.tgz#1f444766f37a25f1490b5137408b6ff746a05d64" - integrity sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ== +jest-resolve-dependencies@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.0.tgz#9a2c3389d1a4cce95445f7c34b0b25f44fff9fad" + integrity sha512-ykSbDbWmIaHprOBig57AExw7i6Fj0y69M6baiAd75Ivx1UMQt4wsM6A+SNqIhycV6Zy8XV3L40Ac3HYSrDSq7w== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.2.2" + jest-snapshot "^29.3.0" -jest-resolve@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.2.tgz#ad6436053b0638b41e12bbddde2b66e1397b35b5" - integrity sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA== +jest-resolve@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.0.tgz#038711e9af86f4b4f55a407db14310bc57a8beb4" + integrity sha512-xH6C6loDlOWEWHdCgioLDlbpmsolNdNsV/UR35ChuK217x0ttHuhyEPdh5wa6CTQ/Eq4OGW2/EZTlh0ay5aojQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.1" + jest-haste-map "^29.3.0" jest-pnp-resolver "^1.2.2" jest-util "^29.2.1" jest-validate "^29.2.2" @@ -1812,44 +1817,44 @@ jest-resolve@^29.2.2: resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.2.tgz#6b5302ed15eba8bf05e6b14d40f1e8d469564da3" - integrity sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg== +jest-runner@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.0.tgz#fc255482594c1536a34e2b41f610355c4f3d2ee6" + integrity sha512-E/ROzAVj7gy44FvIe+Tbz0xGWG1sa8WLkhUg/hsXHewPC0Z48kqWySdfYRtXkB7RmMn4OcWE+hIBfsRAMVV+sQ== dependencies: "@jest/console" "^29.2.1" - "@jest/environment" "^29.2.2" + "@jest/environment" "^29.3.0" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.2" + "@jest/transform" "^29.3.0" "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.2.2" - jest-haste-map "^29.2.1" + jest-environment-node "^29.3.0" + jest-haste-map "^29.3.0" jest-leak-detector "^29.2.1" jest-message-util "^29.2.1" - jest-resolve "^29.2.2" - jest-runtime "^29.2.2" + jest-resolve "^29.3.0" + jest-runtime "^29.3.0" jest-util "^29.2.1" jest-watcher "^29.2.2" - jest-worker "^29.2.1" + jest-worker "^29.3.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.2.tgz#4068ee82423769a481460efd21d45a8efaa5c179" - integrity sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA== +jest-runtime@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.0.tgz#e44f838f469ab1f6b524178bae6233697748eb27" + integrity sha512-ufgX/hbpa7MLnjWRW82T5mVF73FBk3W38dGCLPXWtYZ5Zr1ZFh8QnaAtITKJt0p3kGXR8ZqlIjadSiBTk/QJ/A== dependencies: - "@jest/environment" "^29.2.2" - "@jest/fake-timers" "^29.2.2" - "@jest/globals" "^29.2.2" + "@jest/environment" "^29.3.0" + "@jest/fake-timers" "^29.3.0" + "@jest/globals" "^29.3.0" "@jest/source-map" "^29.2.0" "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.2" + "@jest/transform" "^29.3.0" "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" @@ -1857,20 +1862,20 @@ jest-runtime@^29.2.2: collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.2.1" + jest-haste-map "^29.3.0" jest-message-util "^29.2.1" - jest-mock "^29.2.2" + jest-mock "^29.3.0" jest-regex-util "^29.2.0" - jest-resolve "^29.2.2" - jest-snapshot "^29.2.2" + jest-resolve "^29.3.0" + jest-snapshot "^29.3.0" jest-util "^29.2.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.2.tgz#1016ce60297b77382386bad561107174604690c2" - integrity sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA== +jest-snapshot@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.0.tgz#e319cb98cf36640194717fb37a9bd048a3e448f8" + integrity sha512-+4mX3T8XI3ABbZFzBd/AM74mfwOb6gMpYVFNTc0Cgg2F2fGYvHii8D6jWWka99a3wyNFmni3ov8meEVTF8n13Q== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1879,17 +1884,17 @@ jest-snapshot@^29.2.2: "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" "@jest/expect-utils" "^29.2.2" - "@jest/transform" "^29.2.2" + "@jest/transform" "^29.3.0" "@jest/types" "^29.2.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.2.2" + expect "^29.3.0" graceful-fs "^4.2.9" jest-diff "^29.2.1" jest-get-type "^29.2.0" - jest-haste-map "^29.2.1" + jest-haste-map "^29.3.0" jest-matcher-utils "^29.2.2" jest-message-util "^29.2.1" jest-util "^29.2.1" @@ -1935,10 +1940,10 @@ jest-watcher@^29.2.2: jest-util "^29.2.1" string-length "^4.0.1" -jest-worker@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1" - integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg== +jest-worker@^29.3.0: + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.0.tgz#240a1cd731c7d6645e8bcc37a3d584f122afb44a" + integrity sha512-rP8LYClB5NCWW0p8GdQT9vRmZNrDmjypklEYZuGCIU5iNviVWCZK5MILS3rQwD0FY1u96bY7b+KoU17DdZy6Ww== dependencies: "@types/node" "*" jest-util "^29.2.1" @@ -1946,14 +1951,14 @@ jest-worker@^29.2.1: supports-color "^8.0.0" jest@^29.0.0: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.2.tgz#24da83cbbce514718acd698926b7679109630476" - integrity sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ== + version "29.3.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.0.tgz#edb9ef5b308e90e1c717c8accc04b28f133ac66d" + integrity sha512-lWmHtOcJSjR6FYRw+4oo7456QUe6LN73Lw6HLwOWKTPLcyQF60cMh0EoIHi67dV74SY5tw/kL+jYC+Ji43ScUg== dependencies: - "@jest/core" "^29.2.2" + "@jest/core" "^29.3.0" "@jest/types" "^29.2.1" import-local "^3.0.2" - jest-cli "^29.2.2" + jest-cli "^29.3.0" js-sdsl@^4.1.4: version "4.1.5" From 32e3750549c63d8990d6bca318639227f564006c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Nov 2022 12:01:25 +0000 Subject: [PATCH 151/262] Bump jest from 29.3.0 to 29.3.1 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.3.0 to 29.3.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.3.1/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 592 +++++++++++++++++++++++++++--------------------------- 1 file changed, 296 insertions(+), 296 deletions(-) diff --git a/yarn.lock b/yarn.lock index b7f2b6e7..d6f6b9a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -347,28 +347,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.1.tgz#5f2c62dcdd5ce66e94b6d6729e021758bceea090" - integrity sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw== +"@jest/console@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583" + integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.2.1" - jest-util "^29.2.1" + jest-message-util "^29.3.1" + jest-util "^29.3.1" slash "^3.0.0" -"@jest/core@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.0.tgz#7042d3fd673b51d89d6f6bf8b9f85fb65573629e" - integrity sha512-5DyNvV8452bwqcYyXHCYaAD8UrTiWosrhBY+rc0MBMyXyDzcIL+w5gdlCYhlHbNsHoWnf4nUbRmg++LWfWVtMQ== +"@jest/core@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1" + integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw== dependencies: - "@jest/console" "^29.2.1" - "@jest/reporters" "^29.3.0" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.3.0" - "@jest/types" "^29.2.1" + "@jest/console" "^29.3.1" + "@jest/reporters" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -376,80 +376,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.2.0" - jest-config "^29.3.0" - jest-haste-map "^29.3.0" - jest-message-util "^29.2.1" + jest-config "^29.3.1" + jest-haste-map "^29.3.1" + jest-message-util "^29.3.1" jest-regex-util "^29.2.0" - jest-resolve "^29.3.0" - jest-resolve-dependencies "^29.3.0" - jest-runner "^29.3.0" - jest-runtime "^29.3.0" - jest-snapshot "^29.3.0" - jest-util "^29.2.1" - jest-validate "^29.2.2" - jest-watcher "^29.2.2" + jest-resolve "^29.3.1" + jest-resolve-dependencies "^29.3.1" + jest-runner "^29.3.1" + jest-runtime "^29.3.1" + jest-snapshot "^29.3.1" + jest-util "^29.3.1" + jest-validate "^29.3.1" + jest-watcher "^29.3.1" micromatch "^4.0.4" - pretty-format "^29.2.1" + pretty-format "^29.3.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.0.tgz#e7bfe22531813f86040feb75c046faab32fd534d" - integrity sha512-8wgn3br51bx+7rgC8FOKmAD62Q39iswdiy5/p6acoekp/9Bb/IQbh3zydOrnGp74LwStSrKgpQSKBlOKlAQq0g== +"@jest/environment@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6" + integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== dependencies: - "@jest/fake-timers" "^29.3.0" - "@jest/types" "^29.2.1" + "@jest/fake-timers" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" - jest-mock "^29.3.0" + jest-mock "^29.3.1" -"@jest/expect-utils@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665" - integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg== +"@jest/expect-utils@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" + integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.0.tgz#06907ffc02541c8d5186e8324765a72f391f3125" - integrity sha512-Lz/3x4Se5g6nBuLjTO+xE8D4OXY9fFmosZPwkXXZUJUsp9r9seN81cJa54wOGr1QjCQnhngMqclblhM4X/hcCg== +"@jest/expect@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd" + integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== dependencies: - expect "^29.3.0" - jest-snapshot "^29.3.0" + expect "^29.3.1" + jest-snapshot "^29.3.1" -"@jest/fake-timers@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.0.tgz#ffa74e5b2937676849866cac79cac6a742697f00" - integrity sha512-SzmWtN6Rld+xebMRGuWeMGhytc7qHnYfFk1Zd/1QavQWsFOmA9SgtvGHCBue1wXQhdDMaSIm1aPGj2Zmyrr1Zg== +"@jest/fake-timers@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67" + integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.2.1" - jest-mock "^29.3.0" - jest-util "^29.2.1" + jest-message-util "^29.3.1" + jest-mock "^29.3.1" + jest-util "^29.3.1" -"@jest/globals@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.0.tgz#f58c14d727fd7d02d7851bc03fc0445eefa2dbe2" - integrity sha512-okYDVzYNrt/4ysR8XnX6u0I1bGG4kmfdXtUu7kwWHZ9OP13RCjmphgve0tfOrNluwksWvOPYS1f/HOrFTHLygQ== +"@jest/globals@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6" + integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== dependencies: - "@jest/environment" "^29.3.0" - "@jest/expect" "^29.3.0" - "@jest/types" "^29.2.1" - jest-mock "^29.3.0" + "@jest/environment" "^29.3.1" + "@jest/expect" "^29.3.1" + "@jest/types" "^29.3.1" + jest-mock "^29.3.1" -"@jest/reporters@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.0.tgz#e5e2af97d7754510393d7c04084744841cce2eaf" - integrity sha512-MV76tB3Kd80vcv2yMDZfQpMkwkHaY9hlvVhCtHXkVRCWwN+SX3EOmCdX8pT/X4Xh+NusA7l2Rc3yhx4q5p3+Fg== +"@jest/reporters@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310" + integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.2.1" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.3.0" - "@jest/types" "^29.2.1" + "@jest/console" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -462,9 +462,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.2.1" - jest-util "^29.2.1" - jest-worker "^29.3.0" + jest-message-util "^29.3.1" + jest-util "^29.3.1" + jest-worker "^29.3.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -486,51 +486,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.1.tgz#f42dbf7b9ae465d0a93eee6131473b8bb3bd2edb" - integrity sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA== +"@jest/test-result@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50" + integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw== dependencies: - "@jest/console" "^29.2.1" - "@jest/types" "^29.2.1" + "@jest/console" "^29.3.1" + "@jest/types" "^29.3.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.0.tgz#0c2198fe482c26d763abbcb183992ae769bb7978" - integrity sha512-XQlTP/S6Yf6NKV0Mt4oopFKyDxiEkDMD7hIFcCTeltKQszE0Z+LI5KLukwNW6Qxr1YzaZ/s6PlKJusiCLJNTcw== +"@jest/test-sequencer@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d" + integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA== dependencies: - "@jest/test-result" "^29.2.1" + "@jest/test-result" "^29.3.1" graceful-fs "^4.2.9" - jest-haste-map "^29.3.0" + jest-haste-map "^29.3.1" slash "^3.0.0" -"@jest/transform@^29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.0.tgz#7f71c9596d5bad1613a3a5eb26729dd84fc71a5a" - integrity sha512-4T8h61ItCakAlJkdYa7XVWP3r39QldlCeOSNmRpiJisi5PrrlzwZdpJDIH13ZZjh+MlSPQ2cq8YbUs3TuH+tRA== +"@jest/transform@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d" + integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@jridgewell/trace-mapping" "^0.3.15" 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 "^29.3.0" + jest-haste-map "^29.3.1" jest-regex-util "^29.2.0" - jest-util "^29.2.1" + jest-util "^29.3.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" - integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== +"@jest/types@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" + integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -796,12 +796,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.0.tgz#31fd7ef97dd6a77ddd1b4ab1f8cf77c29e20bb5c" - integrity sha512-LzQWdGm6hUugVeyGpIKI/T4SVT+PgAA5WFPqBDbneK7C/PqfckNb0tc4KvcKXq/PLA1yY6wTvB8Bc/REQdUxFg== +babel-jest@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44" + integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA== dependencies: - "@jest/transform" "^29.3.0" + "@jest/transform" "^29.3.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -1052,10 +1052,10 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" - integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== +diff-sequences@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e" + integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ== doctrine@^3.0.0: version "3.0.0" @@ -1261,16 +1261,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.0.tgz#2dad3a73ac837dd8074ff91d25cf1614c3e91504" - integrity sha512-bms139btnQNZh4uxCPmzbWz46YOjtEpYIZ847OfY9GCeSBEfzedHWH0CkdR20Sy+XBs8/FI2lFJPZiuH0NGv+w== +expect@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" + integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== dependencies: - "@jest/expect-utils" "^29.2.2" + "@jest/expect-utils" "^29.3.1" jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.2" - jest-message-util "^29.2.1" - jest-util "^29.2.1" + jest-matcher-utils "^29.3.1" + jest-message-util "^29.3.1" + jest-util "^29.3.1" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1607,86 +1607,86 @@ jest-changed-files@^29.2.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.0.tgz#997354276d24706e14549cab98ac2995d63c92fd" - integrity sha512-xL1cmbUGBGy923KBZpZ2LRKspHlIhrltrwGaefJ677HXCPY5rTF758BtweamBype2ogcSEK/oqcp1SmYZ/ATig== +jest-circus@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a" + integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg== dependencies: - "@jest/environment" "^29.3.0" - "@jest/expect" "^29.3.0" - "@jest/test-result" "^29.2.1" - "@jest/types" "^29.2.1" + "@jest/environment" "^29.3.1" + "@jest/expect" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.2.1" - jest-matcher-utils "^29.2.2" - jest-message-util "^29.2.1" - jest-runtime "^29.3.0" - jest-snapshot "^29.3.0" - jest-util "^29.2.1" + jest-each "^29.3.1" + jest-matcher-utils "^29.3.1" + jest-message-util "^29.3.1" + jest-runtime "^29.3.1" + jest-snapshot "^29.3.1" + jest-util "^29.3.1" p-limit "^3.1.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.0.tgz#7ca1913f6088570ae58bbb312d70500e00120d41" - integrity sha512-rDb9iasZvqTkgrlwzVGemR5i20T0/XN1ug46Ch2vxTRa0zS5PHaVXQXYzYbuLFHs1xpc+XsB9xPfEkkwbnLJBg== +jest-cli@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d" + integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ== dependencies: - "@jest/core" "^29.3.0" - "@jest/test-result" "^29.2.1" - "@jest/types" "^29.2.1" + "@jest/core" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/types" "^29.3.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.3.0" - jest-util "^29.2.1" - jest-validate "^29.2.2" + jest-config "^29.3.1" + jest-util "^29.3.1" + jest-validate "^29.3.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.0.tgz#4b30188390636106414ea6b43aa6b2fb30d1a54d" - integrity sha512-sTSDs/M+//njznsytxiBxwfDnSWRb6OqiNSlO/B2iw1HUaa1YLsdWmV4AWLXss1XKzv1F0yVK+kA4XOhZ0I1qQ== +jest-config@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6" + integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.3.0" - "@jest/types" "^29.2.1" - babel-jest "^29.3.0" + "@jest/test-sequencer" "^29.3.1" + "@jest/types" "^29.3.1" + babel-jest "^29.3.1" 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.3.0" - jest-environment-node "^29.3.0" + jest-circus "^29.3.1" + jest-environment-node "^29.3.1" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.3.0" - jest-runner "^29.3.0" - jest-util "^29.2.1" - jest-validate "^29.2.2" + jest-resolve "^29.3.1" + jest-runner "^29.3.1" + jest-util "^29.3.1" + jest-validate "^29.3.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" - integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== +jest-diff@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" + integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== dependencies: chalk "^4.0.0" - diff-sequences "^29.2.0" + diff-sequences "^29.3.1" jest-get-type "^29.2.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" jest-docblock@^29.2.0: version "29.2.0" @@ -1695,94 +1695,94 @@ jest-docblock@^29.2.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.1.tgz#6b0a88ee85c2ba27b571a6010c2e0c674f5c9b29" - integrity sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw== +jest-each@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132" + integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" chalk "^4.0.0" jest-get-type "^29.2.0" - jest-util "^29.2.1" - pretty-format "^29.2.1" + jest-util "^29.3.1" + pretty-format "^29.3.1" -jest-environment-node@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.0.tgz#aed95a8e566d80f9f8564fba01ca5caa9d0aa59a" - integrity sha512-oikVE5pyiBUMrqi7J/kFGd1zeT14+EnJulyqzopDNijLX13ygwjiOF/GVpVKSGyBrrAwSkaj/ohEQJCcjkCtOA== +jest-environment-node@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74" + integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag== dependencies: - "@jest/environment" "^29.3.0" - "@jest/fake-timers" "^29.3.0" - "@jest/types" "^29.2.1" + "@jest/environment" "^29.3.1" + "@jest/fake-timers" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" - jest-mock "^29.3.0" - jest-util "^29.2.1" + jest-mock "^29.3.1" + jest-util "^29.3.1" jest-get-type@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== -jest-haste-map@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.0.tgz#9786f501ed6ab1c7adc35d3f83c1c21ed4172c77" - integrity sha512-ugdLIreycMRRg3+6AjiExECmuFI2D9PS+BmNU7eGvBt3fzVMKybb9USAZXN6kw4Q6Mn8DSK+7OFCloY2rN820Q== +jest-haste-map@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843" + integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.2.1" - jest-worker "^29.3.0" + jest-util "^29.3.1" + jest-worker "^29.3.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz#ec551686b7d512ec875616c2c3534298b1ffe2fc" - integrity sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug== +jest-leak-detector@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518" + integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA== dependencies: jest-get-type "^29.2.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" -jest-matcher-utils@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c" - integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw== +jest-matcher-utils@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" + integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== dependencies: chalk "^4.0.0" - jest-diff "^29.2.1" + jest-diff "^29.3.1" jest-get-type "^29.2.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" -jest-message-util@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" - integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw== +jest-message-util@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" + integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.2.1" + pretty-format "^29.3.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.0.tgz#aa6f1d5118fd4b9d007df782e0624e6efab6d33d" - integrity sha512-BRKfsAaeP3pTWeog+1D0ILeJF96SzB6y3k0JDxY63kssxiUy9nDLHmNUoVkBGILjMbpHULhbzVTsb3harPXuUQ== +jest-mock@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" + integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@types/node" "*" - jest-util "^29.2.1" + jest-util "^29.3.1" jest-pnp-resolver@^1.2.2: version "1.2.2" @@ -1794,88 +1794,88 @@ jest-regex-util@^29.2.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.0.tgz#9a2c3389d1a4cce95445f7c34b0b25f44fff9fad" - integrity sha512-ykSbDbWmIaHprOBig57AExw7i6Fj0y69M6baiAd75Ivx1UMQt4wsM6A+SNqIhycV6Zy8XV3L40Ac3HYSrDSq7w== +jest-resolve-dependencies@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf" + integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.3.0" + jest-snapshot "^29.3.1" -jest-resolve@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.0.tgz#038711e9af86f4b4f55a407db14310bc57a8beb4" - integrity sha512-xH6C6loDlOWEWHdCgioLDlbpmsolNdNsV/UR35ChuK217x0ttHuhyEPdh5wa6CTQ/Eq4OGW2/EZTlh0ay5aojQ== +jest-resolve@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7" + integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.0" + jest-haste-map "^29.3.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.2.1" - jest-validate "^29.2.2" + jest-util "^29.3.1" + jest-validate "^29.3.1" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.0.tgz#fc255482594c1536a34e2b41f610355c4f3d2ee6" - integrity sha512-E/ROzAVj7gy44FvIe+Tbz0xGWG1sa8WLkhUg/hsXHewPC0Z48kqWySdfYRtXkB7RmMn4OcWE+hIBfsRAMVV+sQ== +jest-runner@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d" + integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA== dependencies: - "@jest/console" "^29.2.1" - "@jest/environment" "^29.3.0" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.3.0" - "@jest/types" "^29.2.1" + "@jest/console" "^29.3.1" + "@jest/environment" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.3.0" - jest-haste-map "^29.3.0" - jest-leak-detector "^29.2.1" - jest-message-util "^29.2.1" - jest-resolve "^29.3.0" - jest-runtime "^29.3.0" - jest-util "^29.2.1" - jest-watcher "^29.2.2" - jest-worker "^29.3.0" + jest-environment-node "^29.3.1" + jest-haste-map "^29.3.1" + jest-leak-detector "^29.3.1" + jest-message-util "^29.3.1" + jest-resolve "^29.3.1" + jest-runtime "^29.3.1" + jest-util "^29.3.1" + jest-watcher "^29.3.1" + jest-worker "^29.3.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.0.tgz#e44f838f469ab1f6b524178bae6233697748eb27" - integrity sha512-ufgX/hbpa7MLnjWRW82T5mVF73FBk3W38dGCLPXWtYZ5Zr1ZFh8QnaAtITKJt0p3kGXR8ZqlIjadSiBTk/QJ/A== +jest-runtime@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a" + integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A== dependencies: - "@jest/environment" "^29.3.0" - "@jest/fake-timers" "^29.3.0" - "@jest/globals" "^29.3.0" + "@jest/environment" "^29.3.1" + "@jest/fake-timers" "^29.3.1" + "@jest/globals" "^29.3.1" "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.3.0" - "@jest/types" "^29.2.1" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.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.3.0" - jest-message-util "^29.2.1" - jest-mock "^29.3.0" + jest-haste-map "^29.3.1" + jest-message-util "^29.3.1" + jest-mock "^29.3.1" jest-regex-util "^29.2.0" - jest-resolve "^29.3.0" - jest-snapshot "^29.3.0" - jest-util "^29.2.1" + jest-resolve "^29.3.1" + jest-snapshot "^29.3.1" + jest-util "^29.3.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.0.tgz#e319cb98cf36640194717fb37a9bd048a3e448f8" - integrity sha512-+4mX3T8XI3ABbZFzBd/AM74mfwOb6gMpYVFNTc0Cgg2F2fGYvHii8D6jWWka99a3wyNFmni3ov8meEVTF8n13Q== +jest-snapshot@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e" + integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1883,82 +1883,82 @@ jest-snapshot@^29.3.0: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.2.2" - "@jest/transform" "^29.3.0" - "@jest/types" "^29.2.1" + "@jest/expect-utils" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.3.0" + expect "^29.3.1" graceful-fs "^4.2.9" - jest-diff "^29.2.1" + jest-diff "^29.3.1" jest-get-type "^29.2.0" - jest-haste-map "^29.3.0" - jest-matcher-utils "^29.2.2" - jest-message-util "^29.2.1" - jest-util "^29.2.1" + jest-haste-map "^29.3.1" + jest-matcher-utils "^29.3.1" + jest-message-util "^29.3.1" + jest-util "^29.3.1" natural-compare "^1.4.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" semver "^7.3.5" -jest-util@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" - integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== +jest-util@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" + integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.2.tgz#e43ce1931292dfc052562a11bc681af3805eadce" - integrity sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA== +jest-validate@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a" + integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" -jest-watcher@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.2.tgz#7093d4ea8177e0a0da87681a9e7b09a258b9daf7" - integrity sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w== +jest-watcher@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a" + integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg== dependencies: - "@jest/test-result" "^29.2.1" - "@jest/types" "^29.2.1" + "@jest/test-result" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.2.1" + jest-util "^29.3.1" string-length "^4.0.1" -jest-worker@^29.3.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.0.tgz#240a1cd731c7d6645e8bcc37a3d584f122afb44a" - integrity sha512-rP8LYClB5NCWW0p8GdQT9vRmZNrDmjypklEYZuGCIU5iNviVWCZK5MILS3rQwD0FY1u96bY7b+KoU17DdZy6Ww== +jest-worker@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b" + integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== dependencies: "@types/node" "*" - jest-util "^29.2.1" + jest-util "^29.3.1" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.0.0: - version "29.3.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.0.tgz#edb9ef5b308e90e1c717c8accc04b28f133ac66d" - integrity sha512-lWmHtOcJSjR6FYRw+4oo7456QUe6LN73Lw6HLwOWKTPLcyQF60cMh0EoIHi67dV74SY5tw/kL+jYC+Ji43ScUg== + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122" + integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA== dependencies: - "@jest/core" "^29.3.0" - "@jest/types" "^29.2.1" + "@jest/core" "^29.3.1" + "@jest/types" "^29.3.1" import-local "^3.0.2" - jest-cli "^29.3.0" + jest-cli "^29.3.1" js-sdsl@^4.1.4: version "4.1.5" @@ -2274,10 +2274,10 @@ prettier@>=3.0.0-alpha.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.4.tgz#eee71d6b520b970f44e4045f2dc772bf6f80815f" integrity sha512-+KeqJv4E5kaRsDRgSx9IeVygLKGHRmcoPvRJvPFp3bC1mw8opsva555gGb8TaJzUiHXoLZcus1EX+nlHPda7Pw== -pretty-format@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" - integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== +pretty-format@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" + integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" From 1408576a9b221e68cc306c2a7d1fb9a3374c08ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Nov 2022 12:01:40 +0000 Subject: [PATCH 152/262] Bump eslint from 8.27.0 to 8.28.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.27.0 to 8.28.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.27.0...v8.28.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d6f6b9a1..3926841d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1144,9 +1144,9 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.27.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.27.0.tgz#d547e2f7239994ad1faa4bb5d84e5d809db7cf64" - integrity sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ== + version "8.28.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.28.0.tgz#81a680732634677cc890134bcdd9fdfea8e63d6e" + integrity sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ== dependencies: "@eslint/eslintrc" "^1.3.3" "@humanwhocodes/config-array" "^0.11.6" From 3042501f98be3123671d24d373b040748224076b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Dec 2022 12:00:35 +0000 Subject: [PATCH 153/262] Bump eslint from 8.28.0 to 8.29.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.28.0 to 8.29.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.28.0...v8.29.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3926841d..94dd2115 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1144,9 +1144,9 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.28.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.28.0.tgz#81a680732634677cc890134bcdd9fdfea8e63d6e" - integrity sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ== + version "8.29.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.29.0.tgz#d74a88a20fb44d59c51851625bc4ee8d0ec43f87" + integrity sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg== dependencies: "@eslint/eslintrc" "^1.3.3" "@humanwhocodes/config-array" "^0.11.6" From 88dc5723b9b38625bd49d06124399a0631d7ed98 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Dec 2022 12:00:35 +0000 Subject: [PATCH 154/262] Bump eslint from 8.29.0 to 8.30.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.29.0 to 8.30.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.29.0...v8.30.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/yarn.lock b/yarn.lock index 94dd2115..9f235e9c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -297,29 +297,29 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" - integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== +"@eslint/eslintrc@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.0.tgz#8ec64e0df3e7a1971ee1ff5158da87389f167a63" + integrity sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.4.0" - globals "^13.15.0" + globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.11.6": - version "0.11.6" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.6.tgz#6a51d603a3aaf8d4cf45b42b3f2ac9318a4adc4b" - integrity sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg== +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" - minimatch "^3.0.4" + minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" @@ -1144,12 +1144,12 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.29.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.29.0.tgz#d74a88a20fb44d59c51851625bc4ee8d0ec43f87" - integrity sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg== + version "8.30.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.30.0.tgz#83a506125d089eef7c5b5910eeea824273a33f50" + integrity sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ== dependencies: - "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.11.6" + "@eslint/eslintrc" "^1.4.0" + "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" @@ -1168,7 +1168,7 @@ eslint@^8.15.0: file-entry-cache "^6.0.1" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.15.0" + globals "^13.19.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" @@ -1410,10 +1410,10 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.15.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== +globals@^13.19.0: + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== dependencies: type-fest "^0.20.2" @@ -2091,7 +2091,7 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== From 8f212a9ccfe3301d386a4d736055d21755033f2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Jan 2023 12:00:34 +0000 Subject: [PATCH 155/262] Bump eslint from 8.30.0 to 8.31.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.30.0 to 8.31.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.30.0...v8.31.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9f235e9c..bb1647ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -297,10 +297,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.0.tgz#8ec64e0df3e7a1971ee1ff5158da87389f167a63" - integrity sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A== +"@eslint/eslintrc@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1144,11 +1144,11 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.15.0: - version "8.30.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.30.0.tgz#83a506125d089eef7c5b5910eeea824273a33f50" - integrity sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ== + version "8.31.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524" + integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA== dependencies: - "@eslint/eslintrc" "^1.4.0" + "@eslint/eslintrc" "^1.4.1" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" From 9b3c42cec2b181b709ed9edc71b142548ea130ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Jan 2023 12:01:30 +0000 Subject: [PATCH 156/262] Bump json5 from 2.2.1 to 2.2.3 Bumps [json5](https://github.com/json5/json5) from 2.2.1 to 2.2.3. - [Release notes](https://github.com/json5/json5/releases) - [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md) - [Commits](https://github.com/json5/json5/compare/v2.2.1...v2.2.3) --- updated-dependencies: - dependency-name: json5 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index bb1647ff..2fb5d460 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2006,9 +2006,9 @@ json-stable-stringify-without-jsonify@^1.0.1: integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== kleur@^3.0.3: version "3.0.3" From 6d0a39114276223bbc9eaa223429b2d7763909b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Jan 2023 12:00:36 +0000 Subject: [PATCH 157/262] Bump husky from 8.0.2 to 8.0.3 Bumps [husky](https://github.com/typicode/husky) from 8.0.2 to 8.0.3. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v8.0.2...v8.0.3) --- updated-dependencies: - dependency-name: husky dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2fb5d460..5f2afa1f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1460,9 +1460,9 @@ human-signals@^2.1.0: integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== husky@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.2.tgz#5816a60db02650f1f22c8b69b928fd6bcd77a236" - integrity sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg== + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== ignore@^5.1.4, ignore@^5.2.0: version "5.2.0" From 62e1ff038e5095883b2b5605d595b076760e64e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Jan 2023 12:00:43 +0000 Subject: [PATCH 158/262] Bump eslint-config-prettier from 8.5.0 to 8.6.0 Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.5.0 to 8.6.0. - [Release notes](https://github.com/prettier/eslint-config-prettier/releases) - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.5.0...v8.6.0) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2fb5d460..515ab3cb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1114,9 +1114,9 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^8.0.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== + version "8.6.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" + integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== eslint-scope@^7.1.1: version "7.1.1" From a28cbd62eca2ffe0e6f06fce42c7231a0ccdc68c Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 3 Jan 2023 22:36:41 -0500 Subject: [PATCH 159/262] Add a workflow for GitHub Actions dependabot --- .github/dependabot.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f7068438..29fe4b24 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,3 +8,7 @@ updates: directory: "/" schedule: interval: "daily" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" From 68633a40fc8203586705ef0452cddd852b25e807 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 3 Jan 2023 22:37:40 -0500 Subject: [PATCH 160/262] Fix up README badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 483a13c9..c27eeee0 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Gitter - GitHub Actions + GitHub Actions NPM Version From 626733e3867c714f47d82fa97e45407881e6514f Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 3 Jan 2023 22:39:43 -0500 Subject: [PATCH 161/262] Remove more tests from stree --- test/js/ruby/nodes/blocks.test.js | 15 --------------- test/js/ruby/nodes/method.test.js | 4 ---- 2 files changed, 19 deletions(-) diff --git a/test/js/ruby/nodes/blocks.test.js b/test/js/ruby/nodes/blocks.test.js index 9eec551a..8d4c9d8f 100644 --- a/test/js/ruby/nodes/blocks.test.js +++ b/test/js/ruby/nodes/blocks.test.js @@ -127,21 +127,6 @@ describe("blocks", () => { }); }); - // from ruby test/ruby/test_call.rb - test("inline do end", () => { - return expect(`assert_nil(("a".sub! "b" do end&.foo {}))`).toChangeFormat( - ruby(` - assert_nil( - ( - "a".sub! "b" do - end&.foo do - end - ) - ) - `) - ); - }); - test("excessed_comma nodes", () => { return expect("proc { |x,| }").toMatchFormat(); }); diff --git a/test/js/ruby/nodes/method.test.js b/test/js/ruby/nodes/method.test.js index 9651ac3e..a011fc70 100644 --- a/test/js/ruby/nodes/method.test.js +++ b/test/js/ruby/nodes/method.test.js @@ -170,10 +170,6 @@ describe("method", () => { return expect("def foo = bar").toMatchFormat(); }); - test("single-line methods with empty params", () => { - return expect("def foo() = bar").toChangeFormat("def foo = bar"); - }); - test("single-line methods with params", () => { return expect("def foo(name) = bar").toMatchFormat(); }); From 5caf2f4dc2707e7c7de6ec33b811cc795e074cc5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Jan 2023 03:40:17 +0000 Subject: [PATCH 162/262] Bump dependabot/fetch-metadata from 1.3.3 to 1.3.5 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.3.3 to 1.3.5. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.3.3...v1.3.5) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index 9b28abf4..514ac27a 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v1.3.3 + uses: dependabot/fetch-metadata@v1.3.5 with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Enable auto-merge for Dependabot PRs From 6b5d7d73d2870e3140b50f9616a8cb6a50db728b Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 3 Jan 2023 22:42:00 -0500 Subject: [PATCH 163/262] Update deps --- yarn.lock | 281 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 147 insertions(+), 134 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6ad97077..8df6eb3e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,49 +17,50 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.19.3": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747" - integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw== +"@babel/compat-data@^7.20.5": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" + integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" - integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f" + integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" - "@babel/helper-compilation-targets" "^7.19.3" - "@babel/helper-module-transforms" "^7.19.0" - "@babel/helpers" "^7.19.0" - "@babel/parser" "^7.19.3" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.3" - "@babel/types" "^7.19.3" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.7" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" 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/generator@^7.19.3", "@babel/generator@^7.19.4", "@babel/generator@^7.7.2": - version "7.19.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.5.tgz#da3f4b301c8086717eee9cab14da91b1fa5dcca7" - integrity sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg== +"@babel/generator@^7.20.7", "@babel/generator@^7.7.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" + integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== dependencies: - "@babel/types" "^7.19.4" + "@babel/types" "^7.20.7" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca" - integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== +"@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== dependencies: - "@babel/compat-data" "^7.19.3" + "@babel/compat-data" "^7.20.5" "@babel/helper-validator-option" "^7.18.6" browserslist "^4.21.3" + lru-cache "^5.1.1" semver "^6.3.0" "@babel/helper-environment-visitor@^7.18.9": @@ -89,31 +90,31 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" - integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== +"@babel/helper-module-transforms@^7.20.7": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" + integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" -"@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.8.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" - integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== +"@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.19.0", "@babel/helper-plugin-utils@^7.8.0": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== -"@babel/helper-simple-access@^7.18.6": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz#be553f4951ac6352df2567f7daa19a0ee15668e7" - integrity sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg== +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== dependencies: - "@babel/types" "^7.19.4" + "@babel/types" "^7.20.2" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" @@ -137,14 +138,14 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/helpers@^7.19.0": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.4.tgz#42154945f87b8148df7203a25c31ba9a73be46c5" - integrity sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw== +"@babel/helpers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" + integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.4" - "@babel/types" "^7.19.4" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" "@babel/highlight@^7.18.6": version "7.18.6" @@ -155,10 +156,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3", "@babel/parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.4.tgz#03c4339d2b8971eb3beca5252bafd9b9f79db3dc" - integrity sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" + integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -252,41 +253,41 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" - integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" + integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" -"@babel/template@^7.18.10", "@babel/template@^7.3.3": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" -"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.3", "@babel/traverse@^7.19.4", "@babel/traverse@^7.7.2": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.4.tgz#f117820e18b1e59448a6c1fa9d0ff08f7ac459a8" - integrity sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g== +"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.10.tgz#2bf98239597fcec12f842756f186a9dde6d09230" + integrity sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.4" + "@babel/generator" "^7.20.7" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.4" - "@babel/types" "^7.19.4" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.19.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" - integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -601,14 +602,14 @@ fastq "^1.6.0" "@sinclair/typebox@^0.24.1": - version "0.24.47" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.47.tgz#530b67163714356f93e82bdb871e7db4b7bc564e" - integrity sha512-J4Xw0xYK4h7eC34MNOPQi6IkNxGRck6n4VJpWDzXIFVTW8I/D43Gf+NfWz/v/7NHlzWOPd3+T4PJ4OqklQ2u7A== + version "0.24.51" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" + integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== "@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== dependencies: type-detect "4.0.8" @@ -620,9 +621,9 @@ "@sinonjs/commons" "^1.7.0" "@types/babel__core@^7.1.14": - version "7.1.19" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== + version "7.1.20" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" + integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -646,9 +647,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== + version "7.18.3" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" + integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== dependencies: "@babel/types" "^7.3.0" @@ -684,14 +685,14 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "18.11.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.2.tgz#c59b7641832531264fda3f1ba610362dc9a7dfc8" - integrity sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw== + version "18.11.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== "@types/prettier@^2.1.5": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" - integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== + version "2.7.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" + integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== "@types/stack-utils@^2.0.0": version "2.0.1" @@ -704,9 +705,9 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.8": - version "17.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" - integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== + version "17.0.19" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.19.tgz#8dbecdc9ab48bee0cb74f6e3327de3fa0d0c98ae" + integrity sha512-cAx3qamwaYX9R0fzOIZAlFpo4A+1uBVCxqpKz9D26uTF4srRXaGTTsikQmaotCtNdbhzyUH7ft6p9ktz9s6UNQ== dependencies: "@types/yargs-parser" "*" @@ -716,9 +717,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" @@ -762,9 +763,9 @@ ansi-styles@^5.0.0: 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== + 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" @@ -914,9 +915,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001400: - version "1.0.30001422" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz#f2d7c6202c49a8359e6e35add894d88ef93edba1" - integrity sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog== + version "1.0.30001441" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e" + integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg== chalk@^2.0.0: version "2.4.2" @@ -949,9 +950,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== ci-info@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.5.0.tgz#bfac2a29263de4c829d806b1ab478e35091e171f" - integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw== + version "3.7.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f" + integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w== cjs-module-lexer@^1.0.0: version "1.2.2" @@ -1189,9 +1190,9 @@ eslint@^8.15.0: text-table "^0.2.0" espree@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" - integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== + version "9.4.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" + integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" @@ -1288,9 +1289,9 @@ fast-levenshtein@^2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" @@ -1465,9 +1466,9 @@ husky@^8.0.1: integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== ignore@^5.1.4, ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" @@ -1785,9 +1786,9 @@ jest-mock@^29.3.1: jest-util "^29.3.1" 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== + 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@^29.2.0: version "29.2.0" @@ -1961,9 +1962,9 @@ jest@^29.0.0: jest-cli "^29.3.1" js-sdsl@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a" - integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q== + version "4.2.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" + integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== js-tokens@^4.0.0: version "4.0.0" @@ -2052,6 +2053,13 @@ 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@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -2130,9 +2138,9 @@ node-int64@^0.4.0: integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + version "2.0.8" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" + integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== normalize-path@^3.0.0: version "3.0.0" @@ -2444,9 +2452,9 @@ sprintf-js@~1.0.2: integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== 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== + 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" @@ -2638,20 +2646,25 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "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: +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.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c" - integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g== + version "17.6.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" + integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== dependencies: cliui "^8.0.1" escalade "^3.1.1" @@ -2659,7 +2672,7 @@ yargs@^17.3.1: require-directory "^2.1.1" string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^21.0.0" + yargs-parser "^21.1.1" yocto-queue@^0.1.0: version "0.1.0" From 197801b18bbc1a3cca03df46a7e46c871f4640a2 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 26 Jan 2023 10:41:59 -0500 Subject: [PATCH 164/262] Bump deps --- package.json | 4 +- test/js/ruby/nodes/method.test.js | 4 - yarn.lock | 777 +++++++++++++++--------------- 3 files changed, 391 insertions(+), 394 deletions(-) diff --git a/package.json b/package.json index d2f552f3..17ac6d29 100644 --- a/package.json +++ b/package.json @@ -23,10 +23,10 @@ "prettier": ">=3.0.0-alpha.2" }, "devDependencies": { - "eslint": "^8.15.0", + "eslint": "^8.32.0", "eslint-config-prettier": "^8.0.0", "husky": "^8.0.1", - "jest": "^29.0.0", + "jest": "^29.4.1", "pretty-quick": "^3.1.2" }, "eslintConfig": { diff --git a/test/js/ruby/nodes/method.test.js b/test/js/ruby/nodes/method.test.js index a011fc70..5195e29f 100644 --- a/test/js/ruby/nodes/method.test.js +++ b/test/js/ruby/nodes/method.test.js @@ -190,10 +190,6 @@ describe("method", () => { }); describe("method calls", () => { - test("empty parens", () => { - return expect("foo()").toChangeFormat("foo"); - }); - test("single args", () => { return expect("foo(1)").toMatchFormat(); }); diff --git a/yarn.lock b/yarn.lock index 8df6eb3e..749ade7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,24 +23,24 @@ integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f" - integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw== + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" + integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" "@babel/generator" "^7.20.7" "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.11" "@babel/helpers" "^7.20.7" "@babel/parser" "^7.20.7" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" + "@babel/traverse" "^7.20.12" "@babel/types" "^7.20.7" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.1" + json5 "^2.2.2" semver "^6.3.0" "@babel/generator@^7.20.7", "@babel/generator@^7.7.2": @@ -90,7 +90,7 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.20.7": +"@babel/helper-module-transforms@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== @@ -139,12 +139,12 @@ integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== "@babel/helpers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" - integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" + integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== dependencies: "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" + "@babel/traverse" "^7.20.13" "@babel/types" "^7.20.7" "@babel/highlight@^7.18.6": @@ -156,10 +156,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": - 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.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.13.tgz#ddf1eb5a813588d2fb1692b70c6fce75b945c088" + integrity sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -268,10 +268,10 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": - version "7.20.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.10.tgz#2bf98239597fcec12f842756f186a9dde6d09230" - integrity sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg== +"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.7.2": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" + integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== dependencies: "@babel/code-frame" "^7.18.6" "@babel/generator" "^7.20.7" @@ -279,7 +279,7 @@ "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.7" + "@babel/parser" "^7.20.13" "@babel/types" "^7.20.7" debug "^4.1.0" globals "^11.1.0" @@ -348,109 +348,109 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583" - integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg== +"@jest/console@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.1.tgz#cbc31d73f6329f693b3d34b365124de797704fff" + integrity sha512-m+XpwKSi3PPM9znm5NGS8bBReeAJJpSkL1OuFCqaMaJL2YX9YXLkkI+MBchMPwu+ZuM2rynL51sgfkQteQ1CKQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" slash "^3.0.0" -"@jest/core@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1" - integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw== - dependencies: - "@jest/console" "^29.3.1" - "@jest/reporters" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" +"@jest/core@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.1.tgz#91371179b5959951e211dfaeea4277a01dcca14f" + integrity sha512-RXFTohpBqpaTebNdg5l3I5yadnKo9zLBajMT0I38D0tDhreVBYv3fA8kywthI00sWxPztWLD3yjiUkewwu/wKA== + dependencies: + "@jest/console" "^29.4.1" + "@jest/reporters" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@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.2.0" - jest-config "^29.3.1" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" + jest-changed-files "^29.4.0" + jest-config "^29.4.1" + jest-haste-map "^29.4.1" + jest-message-util "^29.4.1" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-resolve-dependencies "^29.3.1" - jest-runner "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" - jest-watcher "^29.3.1" + jest-resolve "^29.4.1" + jest-resolve-dependencies "^29.4.1" + jest-runner "^29.4.1" + jest-runtime "^29.4.1" + jest-snapshot "^29.4.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" + jest-watcher "^29.4.1" micromatch "^4.0.4" - pretty-format "^29.3.1" + pretty-format "^29.4.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6" - integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== +"@jest/environment@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.1.tgz#52d232a85cdc995b407a940c89c86568f5a88ffe" + integrity sha512-pJ14dHGSQke7Q3mkL/UZR9ZtTOxqskZaC91NzamEH4dlKRt42W+maRBXiw/LWkdJe+P0f/zDR37+SPMplMRlPg== dependencies: - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/fake-timers" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" - jest-mock "^29.3.1" + jest-mock "^29.4.1" -"@jest/expect-utils@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" - integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== +"@jest/expect-utils@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.1.tgz#105b9f3e2c48101f09cae2f0a4d79a1b3a419cbb" + integrity sha512-w6YJMn5DlzmxjO00i9wu2YSozUYRBhIoJ6nQwpMYcBMtiqMGJm1QBzOf6DDgRao8dbtpDoaqLg6iiQTvv0UHhQ== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd" - integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== +"@jest/expect@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.1.tgz#3338fa20f547bb6e550c4be37d6f82711cc13c38" + integrity sha512-ZxKJP5DTUNF2XkpJeZIzvnzF1KkfrhEF6Rz0HGG69fHl6Bgx5/GoU3XyaeFYEjuuKSOOsbqD/k72wFvFxc3iTw== dependencies: - expect "^29.3.1" - jest-snapshot "^29.3.1" + expect "^29.4.1" + jest-snapshot "^29.4.1" -"@jest/fake-timers@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67" - integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== +"@jest/fake-timers@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.1.tgz#7b673131e8ea2a2045858f08241cace5d518b42b" + integrity sha512-/1joI6rfHFmmm39JxNfmNAO3Nwm6Y0VoL5fJDy7H1AtWrD1CgRtqJbN9Ld6rhAkGO76qqp4cwhhxJ9o9kYjQMw== dependencies: - "@jest/types" "^29.3.1" - "@sinonjs/fake-timers" "^9.1.2" + "@jest/types" "^29.4.1" + "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-message-util "^29.4.1" + jest-mock "^29.4.1" + jest-util "^29.4.1" -"@jest/globals@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6" - integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== +"@jest/globals@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.1.tgz#3cd78c5567ab0249f09fbd81bf9f37a7328f4713" + integrity sha512-znoK2EuFytbHH0ZSf2mQK2K1xtIgmaw4Da21R2C/NE/+NnItm5mPEFQmn8gmF3f0rfOlmZ3Y3bIf7bFj7DHxAA== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/types" "^29.3.1" - jest-mock "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/expect" "^29.4.1" + "@jest/types" "^29.4.1" + jest-mock "^29.4.1" -"@jest/reporters@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310" - integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA== +"@jest/reporters@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.1.tgz#50d509c08575c75e3cd2176d72ec3786419d5e04" + integrity sha512-AISY5xpt2Xpxj9R6y0RF1+O6GRy9JsGa8+vK23Lmzdy1AYcpQn5ItX79wJSsTmfzPKSAcsY1LNt/8Y5Xe5LOSg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -463,20 +463,20 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - jest-worker "^29.3.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" + jest-worker "^29.4.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== +"@jest/schemas@^29.4.0": + version "29.4.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.0.tgz#0d6ad358f295cc1deca0b643e6b4c86ebd539f17" + integrity sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ== dependencies: - "@sinclair/typebox" "^0.24.1" + "@sinclair/typebox" "^0.25.16" "@jest/source-map@^29.2.0": version "29.2.0" @@ -487,53 +487,53 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50" - integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw== +"@jest/test-result@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.1.tgz#997f19695e13b34779ceb3c288a416bd26c3238d" + integrity sha512-WRt29Lwt+hEgfN8QDrXqXGgCTidq1rLyFqmZ4lmJOpVArC8daXrZWkWjiaijQvgd3aOUj2fM8INclKHsQW9YyQ== dependencies: - "@jest/console" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.1" + "@jest/types" "^29.4.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d" - integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA== +"@jest/test-sequencer@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.1.tgz#f7a006ec7058b194a10cf833c88282ef86d578fd" + integrity sha512-v5qLBNSsM0eHzWLXsQ5fiB65xi49A3ILPSFQKPXzGL4Vyux0DPZAIN7NAFJa9b4BiTDP9MBF/Zqc/QA1vuiJ0w== dependencies: - "@jest/test-result" "^29.3.1" + "@jest/test-result" "^29.4.1" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.1" slash "^3.0.0" -"@jest/transform@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d" - integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== +"@jest/transform@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.1.tgz#e4f517841bb795c7dcdee1ba896275e2c2d26d4a" + integrity sha512-5w6YJrVAtiAgr0phzKjYd83UPbCXsBRTeYI4BXokv9Er9CcrH9hfXL/crCvP2d2nGOcovPUnlYiLPFLZrkG5Hg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@jridgewell/trace-mapping" "^0.3.15" 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 "^29.3.1" + jest-haste-map "^29.4.1" jest-regex-util "^29.2.0" - jest-util "^29.3.1" + jest-util "^29.4.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" - write-file-atomic "^4.0.1" + write-file-atomic "^5.0.0" -"@jest/types@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" - integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== +"@jest/types@^29.4.1": + version "29.4.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.1.tgz#f9f83d0916f50696661da72766132729dcb82ecb" + integrity sha512-zbrAXDUOnpJ+FMST2rV7QZOgec8rskg2zv8g2ajeqitp4tvZiyqTCYXANrKsM+ryj5o+LI+ZN2EgU9drrkiwSA== dependencies: - "@jest/schemas" "^29.0.0" + "@jest/schemas" "^29.4.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -601,32 +601,32 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== +"@sinclair/typebox@^0.25.16": + version "0.25.21" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" + integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== -"@sinonjs/commons@^1.7.0": - version "1.8.6" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" - integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== +"@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" -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== +"@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== dependencies: - "@sinonjs/commons" "^1.7.0" + "@sinonjs/commons" "^2.0.0" "@types/babel__core@^7.1.14": - version "7.1.20" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" - integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" + integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== 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" "*" @@ -654,9 +654,9 @@ "@babel/types" "^7.3.0" "@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== + version "4.1.6" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" + integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== dependencies: "@types/node" "*" @@ -705,9 +705,9 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.8": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.19.tgz#8dbecdc9ab48bee0cb74f6e3327de3fa0d0c98ae" - integrity sha512-cAx3qamwaYX9R0fzOIZAlFpo4A+1uBVCxqpKz9D26uTF4srRXaGTTsikQmaotCtNdbhzyUH7ft6p9ktz9s6UNQ== + version "17.0.20" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.20.tgz#107f0fcc13bd4a524e352b41c49fe88aab5c54d5" + integrity sha512-eknWrTHofQuPk2iuqDm1waA7V6xPlbgBoaaXEgYkClhLOnB0TtbW+srJaOToAgawPxPlHQzwypFA2bhZaUGP5A== dependencies: "@types/yargs-parser" "*" @@ -717,9 +717,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^8.8.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" @@ -797,15 +797,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44" - integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA== +babel-jest@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.1.tgz#01fa167e27470b35c2d4a1b841d9586b1764da19" + integrity sha512-xBZa/pLSsF/1sNpkgsiT3CmY7zV1kAsZ9OxxtrFqYucnOuRftXAfcJqcDVyOPeN4lttWTwhLdu0T9f8uvoPEUg== dependencies: - "@jest/transform" "^29.3.1" + "@jest/transform" "^29.4.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.2.0" + babel-preset-jest "^29.4.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -821,10 +821,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" - integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== +babel-plugin-jest-hoist@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.0.tgz#3fd3dfcedf645932df6d0c9fc3d9a704dd860248" + integrity sha512-a/sZRLQJEmsmejQ2rPEUe35nO1+C9dc9O1gplH1SXmJxveQSRUYdBk8yGZG/VOUuZs1u2aHZJusEGoRMbhhwCg== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -849,12 +849,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" - integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== +babel-preset-jest@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.0.tgz#c2b03c548b02dea0a18ae21d5759c136f9251ee4" + integrity sha512-fUB9vZflUSM3dO/6M2TCAepTzvA4VkOvl67PjErcrQMGt9Eve7uazaeyCZ2th3UtI7ljpiBJES0F7A1vBRsLZA== dependencies: - babel-plugin-jest-hoist "^29.2.0" + babel-plugin-jest-hoist "^29.4.0" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -915,9 +915,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001400: - version "1.0.30001441" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e" - integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg== + version "1.0.30001448" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz#ca7550b1587c92a392a2b377cd9c508b3b4395bf" + integrity sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA== chalk@^2.0.0: version "2.4.2" @@ -1144,10 +1144,10 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.15.0: - version "8.31.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524" - integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA== +eslint@^8.32.0: + version "8.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.32.0.tgz#d9690056bb6f1a302bd991e7090f5b68fbaea861" + integrity sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ== dependencies: "@eslint/eslintrc" "^1.4.1" "@humanwhocodes/config-array" "^0.11.8" @@ -1262,16 +1262,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" - integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== +expect@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.1.tgz#58cfeea9cbf479b64ed081fd1e074ac8beb5a1fe" + integrity sha512-OKrGESHOaMxK3b6zxIq9SOW8kEXztKff/Dvg88j4xIJxur1hspEbedVkR3GpHe5LO+WB2Qw7OWN0RMTdp6as5A== dependencies: - "@jest/expect-utils" "^29.3.1" + "@jest/expect-utils" "^29.4.1" jest-get-type "^29.2.0" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-matcher-utils "^29.4.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1600,94 +1600,94 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" - integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== +jest-changed-files@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.0.tgz#ac2498bcd394228f7eddcadcf928b3583bf2779d" + integrity sha512-rnI1oPxgFghoz32Y8eZsGJMjW54UlqT17ycQeCEktcxxwqqKdlj9afl8LNeO0Pbu+h2JQHThQP0BzS67eTRx4w== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a" - integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg== +jest-circus@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.1.tgz#ff1b63eb04c3b111cefea9489e8dbadd23ce49bd" + integrity sha512-v02NuL5crMNY4CGPHBEflLzl4v91NFb85a+dH9a1pUNx6Xjggrd8l9pPy4LZ1VYNRXlb+f65+7O/MSIbLir6pA== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/expect" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + jest-each "^29.4.1" + jest-matcher-utils "^29.4.1" + jest-message-util "^29.4.1" + jest-runtime "^29.4.1" + jest-snapshot "^29.4.1" + jest-util "^29.4.1" p-limit "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d" - integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ== +jest-cli@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.1.tgz#7abef96944f300feb9b76f68b1eb2d68774fe553" + integrity sha512-jz7GDIhtxQ37M+9dlbv5K+/FVcIo1O/b1sX3cJgzlQUf/3VG25nvuWzlDC4F1FLLzUThJeWLu8I7JF9eWpuURQ== dependencies: - "@jest/core" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/core" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/types" "^29.4.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-config "^29.4.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6" - integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg== +jest-config@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.1.tgz#e62670c6c980ec21d75941806ec4d0c0c6402728" + integrity sha512-g7p3q4NuXiM4hrS4XFATTkd+2z0Ml2RhFmFPM8c3WyKwVDNszbl4E7cV7WIx1YZeqqCtqbtTtZhGZWJlJqngzg== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.3.1" - "@jest/types" "^29.3.1" - babel-jest "^29.3.1" + "@jest/test-sequencer" "^29.4.1" + "@jest/types" "^29.4.1" + babel-jest "^29.4.1" 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.3.1" - jest-environment-node "^29.3.1" + jest-circus "^29.4.1" + jest-environment-node "^29.4.1" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-runner "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-resolve "^29.4.1" + jest-runner "^29.4.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" - integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== +jest-diff@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.1.tgz#9a6dc715037e1fa7a8a44554e7d272088c4029bd" + integrity sha512-uazdl2g331iY56CEyfbNA0Ut7Mn2ulAG5vUaEHXycf1L6IPyuImIxSz4F0VYBKi7LYIuxOwTZzK3wh5jHzASMw== dependencies: chalk "^4.0.0" diff-sequences "^29.3.1" jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" jest-docblock@^29.2.0: version "29.2.0" @@ -1696,94 +1696,94 @@ jest-docblock@^29.2.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132" - integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA== +jest-each@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.1.tgz#05ce9979e7486dbd0f5d41895f49ccfdd0afce01" + integrity sha512-QlYFiX3llJMWUV0BtWht/esGEz9w+0i7BHwODKCze7YzZzizgExB9MOfiivF/vVT0GSQ8wXLhvHXh3x2fVD4QQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" chalk "^4.0.0" jest-get-type "^29.2.0" - jest-util "^29.3.1" - pretty-format "^29.3.1" + jest-util "^29.4.1" + pretty-format "^29.4.1" -jest-environment-node@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74" - integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag== +jest-environment-node@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.1.tgz#22550b7d0f8f0b16228639c9f88ca04bbf3c1974" + integrity sha512-x/H2kdVgxSkxWAIlIh9MfMuBa0hZySmfsC5lCsWmWr6tZySP44ediRKDUiNggX/eHLH7Cd5ZN10Rw+XF5tXsqg== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/fake-timers" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-mock "^29.4.1" + jest-util "^29.4.1" jest-get-type@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== -jest-haste-map@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843" - integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== +jest-haste-map@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.1.tgz#b0579dc82d94b40ed9041af56ad25c2f80bedaeb" + integrity sha512-imTjcgfVVTvg02khXL11NNLTx9ZaofbAWhilrMg/G8dIkp+HYCswhxf0xxJwBkfhWb3e8dwbjuWburvxmcr58w== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.3.1" - jest-worker "^29.3.1" + jest-util "^29.4.1" + jest-worker "^29.4.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518" - integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA== +jest-leak-detector@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.1.tgz#632186c546e084da2b490b7496fee1a1c9929637" + integrity sha512-akpZv7TPyGMnH2RimOCgy+hPmWZf55EyFUvymQ4LMsQP8xSPlZumCPtXGoDhFNhUE2039RApZkTQDKU79p/FiQ== dependencies: jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" -jest-matcher-utils@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" - integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== +jest-matcher-utils@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.1.tgz#73d834e305909c3b43285fbc76f78bf0ad7e1954" + integrity sha512-k5h0u8V4nAEy6lSACepxL/rw78FLDkBnXhZVgFneVpnJONhb2DhZj/Gv4eNe+1XqQ5IhgUcqj745UwH0HJmMnA== dependencies: chalk "^4.0.0" - jest-diff "^29.3.1" + jest-diff "^29.4.1" jest-get-type "^29.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" -jest-message-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" - integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== +jest-message-util@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.1.tgz#522623aa1df9a36ebfdffb06495c7d9d19e8a845" + integrity sha512-H4/I0cXUaLeCw6FM+i4AwCnOwHRgitdaUFOdm49022YD5nfyr8C/DrbXOBEyJaj+w/y0gGJ57klssOaUiLLQGQ== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.3.1" + pretty-format "^29.4.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" - integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== +jest-mock@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.1.tgz#a218a2abf45c99c501d4665207748a6b9e29afbd" + integrity sha512-MwA4hQ7zBOcgVCVnsM8TzaFLVUD/pFWTfbkY953Y81L5ret3GFRZtmPmRFAjKQSdCKoJvvqOu6Bvfpqlwwb0dQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@types/node" "*" - jest-util "^29.3.1" + jest-util "^29.4.1" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -1795,88 +1795,89 @@ jest-regex-util@^29.2.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf" - integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA== +jest-resolve-dependencies@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.1.tgz#02420a2e055da105e5fca8218c471d8b9553c904" + integrity sha512-Y3QG3M1ncAMxfjbYgtqNXC5B595zmB6e//p/qpA/58JkQXu/IpLDoLeOa8YoYfsSglBKQQzNUqtfGJJT/qLmJg== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.3.1" + jest-snapshot "^29.4.1" -jest-resolve@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7" - integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw== +jest-resolve@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.1.tgz#4c6bf71a07b8f0b79c5fdf4f2a2cf47317694c5e" + integrity sha512-j/ZFNV2lm9IJ2wmlq1uYK0Y/1PiyDq9g4HEGsNTNr3viRbJdV+8Lf1SXIiLZXFvyiisu0qUyIXGBnw+OKWkJwQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-util "^29.4.1" + jest-validate "^29.4.1" resolve "^1.20.0" - resolve.exports "^1.1.0" + resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d" - integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA== - dependencies: - "@jest/console" "^29.3.1" - "@jest/environment" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" +jest-runner@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.1.tgz#57460d9ebb0eea2e27eeddca1816cf8537469661" + integrity sha512-8d6XXXi7GtHmsHrnaqBKWxjKb166Eyj/ksSaUYdcBK09VbjPwIgWov1VwSmtupCIz8q1Xv4Qkzt/BTo3ZqiCeg== + dependencies: + "@jest/console" "^29.4.1" + "@jest/environment" "^29.4.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.3.1" - jest-haste-map "^29.3.1" - jest-leak-detector "^29.3.1" - jest-message-util "^29.3.1" - jest-resolve "^29.3.1" - jest-runtime "^29.3.1" - jest-util "^29.3.1" - jest-watcher "^29.3.1" - jest-worker "^29.3.1" + jest-environment-node "^29.4.1" + jest-haste-map "^29.4.1" + jest-leak-detector "^29.4.1" + jest-message-util "^29.4.1" + jest-resolve "^29.4.1" + jest-runtime "^29.4.1" + jest-util "^29.4.1" + jest-watcher "^29.4.1" + jest-worker "^29.4.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a" - integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A== +jest-runtime@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.1.tgz#9a50f9c69d3a391690897c01b0bfa8dc5dd45808" + integrity sha512-UXTMU9uKu2GjYwTtoAw5rn4STxWw/nadOfW7v1sx6LaJYa3V/iymdCLQM6xy3+7C6mY8GfX22vKpgxY171UIoA== dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/globals" "^29.3.1" + "@jest/environment" "^29.4.1" + "@jest/fake-timers" "^29.4.1" + "@jest/globals" "^29.4.1" "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/test-result" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.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.3.1" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" + jest-haste-map "^29.4.1" + jest-message-util "^29.4.1" + jest-mock "^29.4.1" jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + jest-resolve "^29.4.1" + jest-snapshot "^29.4.1" + jest-util "^29.4.1" + semver "^7.3.5" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e" - integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== +jest-snapshot@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.1.tgz#5692210b3690c94f19317913d4082b123bd83dd9" + integrity sha512-l4iV8EjGgQWVz3ee/LR9sULDk2pCkqb71bjvlqn+qp90lFwpnulHj4ZBT8nm1hA1C5wowXLc7MGnw321u0tsYA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1884,87 +1885,87 @@ jest-snapshot@^29.3.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/expect-utils" "^29.4.1" + "@jest/transform" "^29.4.1" + "@jest/types" "^29.4.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.3.1" + expect "^29.4.1" graceful-fs "^4.2.9" - jest-diff "^29.3.1" + jest-diff "^29.4.1" jest-get-type "^29.2.0" - jest-haste-map "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-haste-map "^29.4.1" + jest-matcher-utils "^29.4.1" + jest-message-util "^29.4.1" + jest-util "^29.4.1" natural-compare "^1.4.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" semver "^7.3.5" -jest-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" - integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== +jest-util@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.1.tgz#2eeed98ff4563b441b5a656ed1a786e3abc3e4c4" + integrity sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a" - integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g== +jest-validate@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.1.tgz#0d5174510415083ec329d4f981bf6779211f17e9" + integrity sha512-qNZXcZQdIQx4SfUB/atWnI4/I2HUvhz8ajOSYUu40CSmf9U5emil8EDHgE7M+3j9/pavtk3knlZBDsgFvv/SWw== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.4.1" -jest-watcher@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a" - integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg== +jest-watcher@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.1.tgz#6e3e2486918bd778849d4d6e67fd77b814f3e6ed" + integrity sha512-vFOzflGFs27nU6h8dpnVRER3O2rFtL+VMEwnG0H3KLHcllLsU8y9DchSh0AL/Rg5nN1/wSiQ+P4ByMGpuybaVw== dependencies: - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/test-result" "^29.4.1" + "@jest/types" "^29.4.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.3.1" + jest-util "^29.4.1" string-length "^4.0.1" -jest-worker@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b" - integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== +jest-worker@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.1.tgz#7cb4a99a38975679600305650f86f4807460aab1" + integrity sha512-O9doU/S1EBe+yp/mstQ0VpPwpv0Clgn68TkNwGxL6/usX/KUW9Arnn4ag8C3jc6qHcXznhsT5Na1liYzAsuAbQ== dependencies: "@types/node" "*" - jest-util "^29.3.1" + jest-util "^29.4.1" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.0.0: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122" - integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA== +jest@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.1.tgz#bb34baca8e05901b49c02c62f1183a6182ea1785" + integrity sha512-cknimw7gAXPDOmj0QqztlxVtBVCw2lYY9CeIE5N6kD+kET1H4H79HSNISJmijb1HF+qk+G+ploJgiDi5k/fRlg== dependencies: - "@jest/core" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/core" "^29.4.1" + "@jest/types" "^29.4.1" import-local "^3.0.2" - jest-cli "^29.3.1" + jest-cli "^29.4.1" js-sdsl@^4.1.4: - version "4.2.0" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" - integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== + version "4.3.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" + integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== js-tokens@^4.0.0: version "4.0.0" @@ -2006,7 +2007,7 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json5@^2.2.1: +json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -2282,12 +2283,12 @@ prettier@>=3.0.0-alpha.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.4.tgz#eee71d6b520b970f44e4045f2dc772bf6f80815f" integrity sha512-+KeqJv4E5kaRsDRgSx9IeVygLKGHRmcoPvRJvPFp3bC1mw8opsva555gGb8TaJzUiHXoLZcus1EX+nlHPda7Pw== -pretty-format@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" - integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== +pretty-format@^29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.1.tgz#0da99b532559097b8254298da7c75a0785b1751c" + integrity sha512-dt/Z761JUVsrIKaY215o1xQJBGlSmTx/h4cSqXqjHLnU1+Kt+mavVE7UgqJJO5ukx5HjSswHfmXz4LjS2oIJfg== dependencies: - "@jest/schemas" "^29.0.0" + "@jest/schemas" "^29.4.0" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -2320,9 +2321,9 @@ pump@^3.0.0: once "^1.3.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== + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== queue-microtask@^1.2.2: version "1.2.3" @@ -2361,10 +2362,10 @@ 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@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== +resolve.exports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e" + integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg== resolve@^1.20.0: version "1.22.1" @@ -2633,10 +2634,10 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^4.0.1: - 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== +write-file-atomic@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.0.tgz#54303f117e109bf3d540261125c8ea5a7320fab0" + integrity sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w== dependencies: imurmurhash "^0.1.4" signal-exit "^3.0.7" From c4d06f8e10f00cc5f10bf1572cf27598a3b60874 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Jan 2023 15:42:38 +0000 Subject: [PATCH 165/262] Bump dependabot/fetch-metadata from 1.3.5 to 1.3.6 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.3.5 to 1.3.6. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.3.5...v1.3.6) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index 514ac27a..e54c9100 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v1.3.5 + uses: dependabot/fetch-metadata@v1.3.6 with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Enable auto-merge for Dependabot PRs From 80fd2d1006064bda0b526ec2603ab6ffcc57a720 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 12:00:44 +0000 Subject: [PATCH 166/262] Bump eslint from 8.32.0 to 8.33.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.32.0 to 8.33.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.32.0...v8.33.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 749ade7f..a476d698 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1145,9 +1145,9 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.32.0: - version "8.32.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.32.0.tgz#d9690056bb6f1a302bd991e7090f5b68fbaea861" - integrity sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ== + version "8.33.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7" + integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA== dependencies: "@eslint/eslintrc" "^1.4.1" "@humanwhocodes/config-array" "^0.11.8" From 3541a4c80d819a1396a2714279da5674c0278f23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 12:00:40 +0000 Subject: [PATCH 167/262] Bump jest from 29.4.1 to 29.4.2 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.4.1 to 29.4.2. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.4.2/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 716 +++++++++++++++++++++++++++--------------------------- 1 file changed, 358 insertions(+), 358 deletions(-) diff --git a/yarn.lock b/yarn.lock index a476d698..cb7e01c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -348,109 +348,109 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.1.tgz#cbc31d73f6329f693b3d34b365124de797704fff" - integrity sha512-m+XpwKSi3PPM9znm5NGS8bBReeAJJpSkL1OuFCqaMaJL2YX9YXLkkI+MBchMPwu+ZuM2rynL51sgfkQteQ1CKQ== +"@jest/console@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.2.tgz#f78374905c2454764152904a344a2d5226b0ef09" + integrity sha512-0I/rEJwMpV9iwi9cDEnT71a5nNGK9lj8Z4+1pRAU2x/thVXCDnaTGrvxyK+cAqZTFVFCiR+hfVrP4l2m+dCmQg== dependencies: - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.4.1" - jest-util "^29.4.1" + jest-message-util "^29.4.2" + jest-util "^29.4.2" slash "^3.0.0" -"@jest/core@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.1.tgz#91371179b5959951e211dfaeea4277a01dcca14f" - integrity sha512-RXFTohpBqpaTebNdg5l3I5yadnKo9zLBajMT0I38D0tDhreVBYv3fA8kywthI00sWxPztWLD3yjiUkewwu/wKA== +"@jest/core@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.2.tgz#6e999b67bdc2df9d96ba9b142465bda71ee472c2" + integrity sha512-KGuoQah0P3vGNlaS/l9/wQENZGNKGoWb+OPxh3gz+YzG7/XExvYu34MzikRndQCdM2S0tzExN4+FL37i6gZmCQ== dependencies: - "@jest/console" "^29.4.1" - "@jest/reporters" "^29.4.1" - "@jest/test-result" "^29.4.1" - "@jest/transform" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/console" "^29.4.2" + "@jest/reporters" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/transform" "^29.4.2" + "@jest/types" "^29.4.2" "@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.4.0" - jest-config "^29.4.1" - jest-haste-map "^29.4.1" - jest-message-util "^29.4.1" - jest-regex-util "^29.2.0" - jest-resolve "^29.4.1" - jest-resolve-dependencies "^29.4.1" - jest-runner "^29.4.1" - jest-runtime "^29.4.1" - jest-snapshot "^29.4.1" - jest-util "^29.4.1" - jest-validate "^29.4.1" - jest-watcher "^29.4.1" + jest-changed-files "^29.4.2" + jest-config "^29.4.2" + jest-haste-map "^29.4.2" + jest-message-util "^29.4.2" + jest-regex-util "^29.4.2" + jest-resolve "^29.4.2" + jest-resolve-dependencies "^29.4.2" + jest-runner "^29.4.2" + jest-runtime "^29.4.2" + jest-snapshot "^29.4.2" + jest-util "^29.4.2" + jest-validate "^29.4.2" + jest-watcher "^29.4.2" micromatch "^4.0.4" - pretty-format "^29.4.1" + pretty-format "^29.4.2" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.1.tgz#52d232a85cdc995b407a940c89c86568f5a88ffe" - integrity sha512-pJ14dHGSQke7Q3mkL/UZR9ZtTOxqskZaC91NzamEH4dlKRt42W+maRBXiw/LWkdJe+P0f/zDR37+SPMplMRlPg== +"@jest/environment@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.2.tgz#ee92c316ee2fbdf0bcd9d2db0ef42d64fea26b56" + integrity sha512-JKs3VUtse0vQfCaFGJRX1bir9yBdtasxziSyu+pIiEllAQOe4oQhdCYIf3+Lx+nGglFktSKToBnRJfD5QKp+NQ== dependencies: - "@jest/fake-timers" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/fake-timers" "^29.4.2" + "@jest/types" "^29.4.2" "@types/node" "*" - jest-mock "^29.4.1" + jest-mock "^29.4.2" -"@jest/expect-utils@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.1.tgz#105b9f3e2c48101f09cae2f0a4d79a1b3a419cbb" - integrity sha512-w6YJMn5DlzmxjO00i9wu2YSozUYRBhIoJ6nQwpMYcBMtiqMGJm1QBzOf6DDgRao8dbtpDoaqLg6iiQTvv0UHhQ== +"@jest/expect-utils@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.2.tgz#cd0065dfdd8e8a182aa350cc121db97b5eed7b3f" + integrity sha512-Dd3ilDJpBnqa0GiPN7QrudVs0cczMMHtehSo2CSTjm3zdHx0RcpmhFNVEltuEFeqfLIyWKFI224FsMSQ/nsJQA== dependencies: - jest-get-type "^29.2.0" + jest-get-type "^29.4.2" -"@jest/expect@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.1.tgz#3338fa20f547bb6e550c4be37d6f82711cc13c38" - integrity sha512-ZxKJP5DTUNF2XkpJeZIzvnzF1KkfrhEF6Rz0HGG69fHl6Bgx5/GoU3XyaeFYEjuuKSOOsbqD/k72wFvFxc3iTw== +"@jest/expect@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.2.tgz#2d4a6a41b29380957c5094de19259f87f194578b" + integrity sha512-NUAeZVApzyaeLjfWIV/64zXjA2SS+NuUPHpAlO7IwVMGd5Vf9szTl9KEDlxY3B4liwLO31os88tYNHl6cpjtKQ== dependencies: - expect "^29.4.1" - jest-snapshot "^29.4.1" + expect "^29.4.2" + jest-snapshot "^29.4.2" -"@jest/fake-timers@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.1.tgz#7b673131e8ea2a2045858f08241cace5d518b42b" - integrity sha512-/1joI6rfHFmmm39JxNfmNAO3Nwm6Y0VoL5fJDy7H1AtWrD1CgRtqJbN9Ld6rhAkGO76qqp4cwhhxJ9o9kYjQMw== +"@jest/fake-timers@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.2.tgz#af43ee1a5720b987d0348f80df98f2cb17d45cd0" + integrity sha512-Ny1u0Wg6kCsHFWq7A/rW/tMhIedq2siiyHyLpHCmIhP7WmcAmd2cx95P+0xtTZlj5ZbJxIRQi4OPydZZUoiSQQ== dependencies: - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.4.1" - jest-mock "^29.4.1" - jest-util "^29.4.1" + jest-message-util "^29.4.2" + jest-mock "^29.4.2" + jest-util "^29.4.2" -"@jest/globals@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.1.tgz#3cd78c5567ab0249f09fbd81bf9f37a7328f4713" - integrity sha512-znoK2EuFytbHH0ZSf2mQK2K1xtIgmaw4Da21R2C/NE/+NnItm5mPEFQmn8gmF3f0rfOlmZ3Y3bIf7bFj7DHxAA== +"@jest/globals@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.2.tgz#73f85f5db0e17642258b25fd0b9fc89ddedb50eb" + integrity sha512-zCk70YGPzKnz/I9BNFDPlK+EuJLk21ur/NozVh6JVM86/YYZtZHqxFFQ62O9MWq7uf3vIZnvNA0BzzrtxD9iyg== dependencies: - "@jest/environment" "^29.4.1" - "@jest/expect" "^29.4.1" - "@jest/types" "^29.4.1" - jest-mock "^29.4.1" + "@jest/environment" "^29.4.2" + "@jest/expect" "^29.4.2" + "@jest/types" "^29.4.2" + jest-mock "^29.4.2" -"@jest/reporters@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.1.tgz#50d509c08575c75e3cd2176d72ec3786419d5e04" - integrity sha512-AISY5xpt2Xpxj9R6y0RF1+O6GRy9JsGa8+vK23Lmzdy1AYcpQn5ItX79wJSsTmfzPKSAcsY1LNt/8Y5Xe5LOSg== +"@jest/reporters@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.2.tgz#6abfa923941daae0acc76a18830ee9e79a22042d" + integrity sha512-10yw6YQe75zCgYcXgEND9kw3UZZH5tJeLzWv4vTk/2mrS1aY50A37F+XT2hPO5OqQFFnUWizXD8k1BMiATNfUw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.4.1" - "@jest/test-result" "^29.4.1" - "@jest/transform" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/console" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/transform" "^29.4.2" + "@jest/types" "^29.4.2" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -463,77 +463,77 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.4.1" - jest-util "^29.4.1" - jest-worker "^29.4.1" + jest-message-util "^29.4.2" + jest-util "^29.4.2" + jest-worker "^29.4.2" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.4.0": - version "29.4.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.0.tgz#0d6ad358f295cc1deca0b643e6b4c86ebd539f17" - integrity sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ== +"@jest/schemas@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.2.tgz#cf7cfe97c5649f518452b176c47ed07486270fc1" + integrity sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g== dependencies: "@sinclair/typebox" "^0.25.16" -"@jest/source-map@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744" - integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ== +"@jest/source-map@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.2.tgz#f9815d59e25cd3d6828e41489cd239271018d153" + integrity sha512-tIoqV5ZNgYI9XCKXMqbYe5JbumcvyTgNN+V5QW4My033lanijvCD0D4PI9tBw4pRTqWOc00/7X3KVvUh+qnF4Q== dependencies: "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.1.tgz#997f19695e13b34779ceb3c288a416bd26c3238d" - integrity sha512-WRt29Lwt+hEgfN8QDrXqXGgCTidq1rLyFqmZ4lmJOpVArC8daXrZWkWjiaijQvgd3aOUj2fM8INclKHsQW9YyQ== +"@jest/test-result@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.2.tgz#34b0ba069f2e3072261e4884c8fb6bd15ed6fb8d" + integrity sha512-HZsC3shhiHVvMtP+i55MGR5bPcc3obCFbA5bzIOb8pCjwBZf11cZliJncCgaVUbC5yoQNuGqCkC0Q3t6EItxZA== dependencies: - "@jest/console" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/console" "^29.4.2" + "@jest/types" "^29.4.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.1.tgz#f7a006ec7058b194a10cf833c88282ef86d578fd" - integrity sha512-v5qLBNSsM0eHzWLXsQ5fiB65xi49A3ILPSFQKPXzGL4Vyux0DPZAIN7NAFJa9b4BiTDP9MBF/Zqc/QA1vuiJ0w== +"@jest/test-sequencer@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.2.tgz#8b48e5bc4af80b42edacaf2a733d4f295edf28fb" + integrity sha512-9Z2cVsD6CcObIVrWigHp2McRJhvCxL27xHtrZFgNC1RwnoSpDx6fZo8QYjJmziFlW9/hr78/3sxF54S8B6v8rg== dependencies: - "@jest/test-result" "^29.4.1" + "@jest/test-result" "^29.4.2" graceful-fs "^4.2.9" - jest-haste-map "^29.4.1" + jest-haste-map "^29.4.2" slash "^3.0.0" -"@jest/transform@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.1.tgz#e4f517841bb795c7dcdee1ba896275e2c2d26d4a" - integrity sha512-5w6YJrVAtiAgr0phzKjYd83UPbCXsBRTeYI4BXokv9Er9CcrH9hfXL/crCvP2d2nGOcovPUnlYiLPFLZrkG5Hg== +"@jest/transform@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.2.tgz#b24b72dbab4c8675433a80e222d6a8ef4656fb81" + integrity sha512-kf1v5iTJHn7p9RbOsBuc/lcwyPtJaZJt5885C98omWz79NIeD3PfoiiaPSu7JyCyFzNOIzKhmMhQLUhlTL9BvQ== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" "@jridgewell/trace-mapping" "^0.3.15" 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 "^29.4.1" - jest-regex-util "^29.2.0" - jest-util "^29.4.1" + jest-haste-map "^29.4.2" + jest-regex-util "^29.4.2" + jest-util "^29.4.2" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" - write-file-atomic "^5.0.0" + write-file-atomic "^4.0.2" -"@jest/types@^29.4.1": - version "29.4.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.1.tgz#f9f83d0916f50696661da72766132729dcb82ecb" - integrity sha512-zbrAXDUOnpJ+FMST2rV7QZOgec8rskg2zv8g2ajeqitp4tvZiyqTCYXANrKsM+ryj5o+LI+ZN2EgU9drrkiwSA== +"@jest/types@^29.4.2": + version "29.4.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.2.tgz#8f724a414b1246b2bfd56ca5225d9e1f39540d82" + integrity sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw== dependencies: - "@jest/schemas" "^29.4.0" + "@jest/schemas" "^29.4.2" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -797,15 +797,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.1.tgz#01fa167e27470b35c2d4a1b841d9586b1764da19" - integrity sha512-xBZa/pLSsF/1sNpkgsiT3CmY7zV1kAsZ9OxxtrFqYucnOuRftXAfcJqcDVyOPeN4lttWTwhLdu0T9f8uvoPEUg== +babel-jest@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.2.tgz#b17b9f64be288040877cbe2649f91ac3b63b2ba6" + integrity sha512-vcghSqhtowXPG84posYkkkzcZsdayFkubUgbE3/1tuGbX7AQtwCkkNA/wIbB0BMjuCPoqTkiDyKN7Ty7d3uwNQ== dependencies: - "@jest/transform" "^29.4.1" + "@jest/transform" "^29.4.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.4.0" + babel-preset-jest "^29.4.2" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -821,10 +821,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.0.tgz#3fd3dfcedf645932df6d0c9fc3d9a704dd860248" - integrity sha512-a/sZRLQJEmsmejQ2rPEUe35nO1+C9dc9O1gplH1SXmJxveQSRUYdBk8yGZG/VOUuZs1u2aHZJusEGoRMbhhwCg== +babel-plugin-jest-hoist@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.2.tgz#22aa43e255230f02371ffef1cac7eedef58f60bc" + integrity sha512-5HZRCfMeWypFEonRbEkwWXtNS1sQK159LhRVyRuLzyfVBxDy/34Tr/rg4YVi0SScSJ4fqeaR/OIeceJ/LaQ0pQ== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -849,12 +849,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.0.tgz#c2b03c548b02dea0a18ae21d5759c136f9251ee4" - integrity sha512-fUB9vZflUSM3dO/6M2TCAepTzvA4VkOvl67PjErcrQMGt9Eve7uazaeyCZ2th3UtI7ljpiBJES0F7A1vBRsLZA== +babel-preset-jest@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.2.tgz#f0b20c6a79a9f155515e72a2d4f537fe002a4e38" + integrity sha512-ecWdaLY/8JyfUDr0oELBMpj3R5I1L6ZqG+kRJmwqfHtLWuPrJStR0LUkvUhfykJWTsXXMnohsayN/twltBbDrQ== dependencies: - babel-plugin-jest-hoist "^29.4.0" + babel-plugin-jest-hoist "^29.4.2" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1053,10 +1053,10 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e" - integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ== +diff-sequences@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.2.tgz#711fe6bd8a5869fe2539cee4a5152425ff671fda" + integrity sha512-R6P0Y6PrsH3n4hUXxL3nns0rbRk6Q33js3ygJBeEpbzLzgcNuJ61+u0RXasFpTKISw99TxUzFnumSnRLsjhLaw== doctrine@^3.0.0: version "3.0.0" @@ -1262,16 +1262,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.1.tgz#58cfeea9cbf479b64ed081fd1e074ac8beb5a1fe" - integrity sha512-OKrGESHOaMxK3b6zxIq9SOW8kEXztKff/Dvg88j4xIJxur1hspEbedVkR3GpHe5LO+WB2Qw7OWN0RMTdp6as5A== +expect@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.2.tgz#2ae34eb88de797c64a1541ad0f1e2ea8a7a7b492" + integrity sha512-+JHYg9O3hd3RlICG90OPVjRkPBoiUH7PxvDVMnRiaq1g6JUgZStX514erMl0v2Dc5SkfVbm7ztqbd6qHHPn+mQ== dependencies: - "@jest/expect-utils" "^29.4.1" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.4.1" - jest-message-util "^29.4.1" - jest-util "^29.4.1" + "@jest/expect-utils" "^29.4.2" + jest-get-type "^29.4.2" + jest-matcher-utils "^29.4.2" + jest-message-util "^29.4.2" + jest-util "^29.4.2" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1600,284 +1600,284 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.0.tgz#ac2498bcd394228f7eddcadcf928b3583bf2779d" - integrity sha512-rnI1oPxgFghoz32Y8eZsGJMjW54UlqT17ycQeCEktcxxwqqKdlj9afl8LNeO0Pbu+h2JQHThQP0BzS67eTRx4w== +jest-changed-files@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.2.tgz#bee1fafc8b620d6251423d1978a0080546bc4376" + integrity sha512-Qdd+AXdqD16PQa+VsWJpxR3kN0JyOCX1iugQfx5nUgAsI4gwsKviXkpclxOK9ZnwaY2IQVHz+771eAvqeOlfuw== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.1.tgz#ff1b63eb04c3b111cefea9489e8dbadd23ce49bd" - integrity sha512-v02NuL5crMNY4CGPHBEflLzl4v91NFb85a+dH9a1pUNx6Xjggrd8l9pPy4LZ1VYNRXlb+f65+7O/MSIbLir6pA== +jest-circus@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.2.tgz#2d00c04baefd0ee2a277014cd494d4b5970663ed" + integrity sha512-wW3ztp6a2P5c1yOc1Cfrt5ozJ7neWmqeXm/4SYiqcSriyisgq63bwFj1NuRdSR5iqS0CMEYwSZd89ZA47W9zUg== dependencies: - "@jest/environment" "^29.4.1" - "@jest/expect" "^29.4.1" - "@jest/test-result" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/environment" "^29.4.2" + "@jest/expect" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/types" "^29.4.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.4.1" - jest-matcher-utils "^29.4.1" - jest-message-util "^29.4.1" - jest-runtime "^29.4.1" - jest-snapshot "^29.4.1" - jest-util "^29.4.1" + jest-each "^29.4.2" + jest-matcher-utils "^29.4.2" + jest-message-util "^29.4.2" + jest-runtime "^29.4.2" + jest-snapshot "^29.4.2" + jest-util "^29.4.2" p-limit "^3.1.0" - pretty-format "^29.4.1" + pretty-format "^29.4.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.1.tgz#7abef96944f300feb9b76f68b1eb2d68774fe553" - integrity sha512-jz7GDIhtxQ37M+9dlbv5K+/FVcIo1O/b1sX3cJgzlQUf/3VG25nvuWzlDC4F1FLLzUThJeWLu8I7JF9eWpuURQ== +jest-cli@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.2.tgz#94a2f913a0a7a49d11bee98ad88bf48baae941f4" + integrity sha512-b+eGUtXq/K2v7SH3QcJvFvaUaCDS1/YAZBYz0m28Q/Ppyr+1qNaHmVYikOrbHVbZqYQs2IeI3p76uy6BWbXq8Q== dependencies: - "@jest/core" "^29.4.1" - "@jest/test-result" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/core" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/types" "^29.4.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.4.1" - jest-util "^29.4.1" - jest-validate "^29.4.1" + jest-config "^29.4.2" + jest-util "^29.4.2" + jest-validate "^29.4.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.1.tgz#e62670c6c980ec21d75941806ec4d0c0c6402728" - integrity sha512-g7p3q4NuXiM4hrS4XFATTkd+2z0Ml2RhFmFPM8c3WyKwVDNszbl4E7cV7WIx1YZeqqCtqbtTtZhGZWJlJqngzg== +jest-config@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.2.tgz#15386dd9ed2f7059516915515f786b8836a98f07" + integrity sha512-919CtnXic52YM0zW4C1QxjG6aNueX1kBGthuMtvFtRTAxhKfJmiXC9qwHmi6o2josjbDz8QlWyY55F1SIVmCWA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.4.1" - "@jest/types" "^29.4.1" - babel-jest "^29.4.1" + "@jest/test-sequencer" "^29.4.2" + "@jest/types" "^29.4.2" + babel-jest "^29.4.2" 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.4.1" - jest-environment-node "^29.4.1" - jest-get-type "^29.2.0" - jest-regex-util "^29.2.0" - jest-resolve "^29.4.1" - jest-runner "^29.4.1" - jest-util "^29.4.1" - jest-validate "^29.4.1" + jest-circus "^29.4.2" + jest-environment-node "^29.4.2" + jest-get-type "^29.4.2" + jest-regex-util "^29.4.2" + jest-resolve "^29.4.2" + jest-runner "^29.4.2" + jest-util "^29.4.2" + jest-validate "^29.4.2" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.4.1" + pretty-format "^29.4.2" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.1.tgz#9a6dc715037e1fa7a8a44554e7d272088c4029bd" - integrity sha512-uazdl2g331iY56CEyfbNA0Ut7Mn2ulAG5vUaEHXycf1L6IPyuImIxSz4F0VYBKi7LYIuxOwTZzK3wh5jHzASMw== +jest-diff@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.2.tgz#b88502d5dc02d97f6512d73c37da8b36f49b4871" + integrity sha512-EK8DSajVtnjx9sa1BkjZq3mqChm2Cd8rIzdXkQMA8e0wuXq53ypz6s5o5V8HRZkoEt2ywJ3eeNWFKWeYr8HK4g== dependencies: chalk "^4.0.0" - diff-sequences "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.4.1" + diff-sequences "^29.4.2" + jest-get-type "^29.4.2" + pretty-format "^29.4.2" -jest-docblock@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82" - integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A== +jest-docblock@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.2.tgz#c78a95eedf9a24c0a6cc16cf2abdc4b8b0f2531b" + integrity sha512-dV2JdahgClL34Y5vLrAHde3nF3yo2jKRH+GIYJuCpfqwEJZcikzeafVTGAjbOfKPG17ez9iWXwUYp7yefeCRag== dependencies: detect-newline "^3.0.0" -jest-each@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.1.tgz#05ce9979e7486dbd0f5d41895f49ccfdd0afce01" - integrity sha512-QlYFiX3llJMWUV0BtWht/esGEz9w+0i7BHwODKCze7YzZzizgExB9MOfiivF/vVT0GSQ8wXLhvHXh3x2fVD4QQ== +jest-each@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.2.tgz#e1347aff1303f4c35470827a62c029d389c5d44a" + integrity sha512-trvKZb0JYiCndc55V1Yh0Luqi7AsAdDWpV+mKT/5vkpnnFQfuQACV72IoRV161aAr6kAVIBpmYzwhBzm34vQkA== dependencies: - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" chalk "^4.0.0" - jest-get-type "^29.2.0" - jest-util "^29.4.1" - pretty-format "^29.4.1" - -jest-environment-node@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.1.tgz#22550b7d0f8f0b16228639c9f88ca04bbf3c1974" - integrity sha512-x/H2kdVgxSkxWAIlIh9MfMuBa0hZySmfsC5lCsWmWr6tZySP44ediRKDUiNggX/eHLH7Cd5ZN10Rw+XF5tXsqg== - dependencies: - "@jest/environment" "^29.4.1" - "@jest/fake-timers" "^29.4.1" - "@jest/types" "^29.4.1" + jest-get-type "^29.4.2" + jest-util "^29.4.2" + pretty-format "^29.4.2" + +jest-environment-node@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.2.tgz#0eab835b41e25fd0c1a72f62665fc8db08762ad2" + integrity sha512-MLPrqUcOnNBc8zTOfqBbxtoa8/Ee8tZ7UFW7hRDQSUT+NGsvS96wlbHGTf+EFAT9KC3VNb7fWEM6oyvmxtE/9w== + dependencies: + "@jest/environment" "^29.4.2" + "@jest/fake-timers" "^29.4.2" + "@jest/types" "^29.4.2" "@types/node" "*" - jest-mock "^29.4.1" - jest-util "^29.4.1" + jest-mock "^29.4.2" + jest-util "^29.4.2" -jest-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== +jest-get-type@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.2.tgz#7cb63f154bca8d8f57364d01614477d466fa43fe" + integrity sha512-vERN30V5i2N6lqlFu4ljdTqQAgrkTFMC9xaIIfOPYBw04pufjXRty5RuXBiB1d72tGbURa/UgoiHB90ruOSivg== -jest-haste-map@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.1.tgz#b0579dc82d94b40ed9041af56ad25c2f80bedaeb" - integrity sha512-imTjcgfVVTvg02khXL11NNLTx9ZaofbAWhilrMg/G8dIkp+HYCswhxf0xxJwBkfhWb3e8dwbjuWburvxmcr58w== +jest-haste-map@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.2.tgz#9112df3f5121e643f1b2dcbaa86ab11b0b90b49a" + integrity sha512-WkUgo26LN5UHPknkezrBzr7lUtV1OpGsp+NfXbBwHztsFruS3gz+AMTTBcEklvi8uPzpISzYjdKXYZQJXBnfvw== dependencies: - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.2.0" - jest-util "^29.4.1" - jest-worker "^29.4.1" + jest-regex-util "^29.4.2" + jest-util "^29.4.2" + jest-worker "^29.4.2" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.1.tgz#632186c546e084da2b490b7496fee1a1c9929637" - integrity sha512-akpZv7TPyGMnH2RimOCgy+hPmWZf55EyFUvymQ4LMsQP8xSPlZumCPtXGoDhFNhUE2039RApZkTQDKU79p/FiQ== +jest-leak-detector@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.2.tgz#8f05c6680e0cb46a1d577c0d3da9793bed3ea97b" + integrity sha512-Wa62HuRJmWXtX9F00nUpWlrbaH5axeYCdyRsOs/+Rb1Vb6+qWTlB5rKwCCRKtorM7owNwKsyJ8NRDUcZ8ghYUA== dependencies: - jest-get-type "^29.2.0" - pretty-format "^29.4.1" + jest-get-type "^29.4.2" + pretty-format "^29.4.2" -jest-matcher-utils@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.1.tgz#73d834e305909c3b43285fbc76f78bf0ad7e1954" - integrity sha512-k5h0u8V4nAEy6lSACepxL/rw78FLDkBnXhZVgFneVpnJONhb2DhZj/Gv4eNe+1XqQ5IhgUcqj745UwH0HJmMnA== +jest-matcher-utils@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.2.tgz#08d0bf5abf242e3834bec92c7ef5071732839e85" + integrity sha512-EZaAQy2je6Uqkrm6frnxBIdaWtSYFoR8SVb2sNLAtldswlR/29JAgx+hy67llT3+hXBaLB0zAm5UfeqerioZyg== dependencies: chalk "^4.0.0" - jest-diff "^29.4.1" - jest-get-type "^29.2.0" - pretty-format "^29.4.1" + jest-diff "^29.4.2" + jest-get-type "^29.4.2" + pretty-format "^29.4.2" -jest-message-util@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.1.tgz#522623aa1df9a36ebfdffb06495c7d9d19e8a845" - integrity sha512-H4/I0cXUaLeCw6FM+i4AwCnOwHRgitdaUFOdm49022YD5nfyr8C/DrbXOBEyJaj+w/y0gGJ57klssOaUiLLQGQ== +jest-message-util@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.2.tgz#309a2924eae6ca67cf7f25781a2af1902deee717" + integrity sha512-SElcuN4s6PNKpOEtTInjOAA8QvItu0iugkXqhYyguRvQoXapg5gN+9RQxLAkakChZA7Y26j6yUCsFWN+hlKD6g== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.4.1" + pretty-format "^29.4.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.1.tgz#a218a2abf45c99c501d4665207748a6b9e29afbd" - integrity sha512-MwA4hQ7zBOcgVCVnsM8TzaFLVUD/pFWTfbkY953Y81L5ret3GFRZtmPmRFAjKQSdCKoJvvqOu6Bvfpqlwwb0dQ== +jest-mock@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.2.tgz#e1054be66fb3e975d26d4528fcde6979e4759de8" + integrity sha512-x1FSd4Gvx2yIahdaIKoBjwji6XpboDunSJ95RpntGrYulI1ByuYQCKN/P7hvk09JB74IonU3IPLdkutEWYt++g== dependencies: - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" "@types/node" "*" - jest-util "^29.4.1" + jest-util "^29.4.2" jest-pnp-resolver@^1.2.2: 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@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" - integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== +jest-regex-util@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.2.tgz#19187cca35d301f8126cf7a021dd4dcb7b58a1ca" + integrity sha512-XYZXOqUl1y31H6VLMrrUL1ZhXuiymLKPz0BO1kEeR5xER9Tv86RZrjTm74g5l9bPJQXA/hyLdaVPN/sdqfteig== -jest-resolve-dependencies@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.1.tgz#02420a2e055da105e5fca8218c471d8b9553c904" - integrity sha512-Y3QG3M1ncAMxfjbYgtqNXC5B595zmB6e//p/qpA/58JkQXu/IpLDoLeOa8YoYfsSglBKQQzNUqtfGJJT/qLmJg== +jest-resolve-dependencies@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.2.tgz#6359db606f5967b68ca8bbe9dbc07a4306c12bf7" + integrity sha512-6pL4ptFw62rjdrPk7rRpzJYgcRqRZNsZTF1VxVTZMishbO6ObyWvX57yHOaNGgKoADtAHRFYdHQUEvYMJATbDg== dependencies: - jest-regex-util "^29.2.0" - jest-snapshot "^29.4.1" + jest-regex-util "^29.4.2" + jest-snapshot "^29.4.2" -jest-resolve@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.1.tgz#4c6bf71a07b8f0b79c5fdf4f2a2cf47317694c5e" - integrity sha512-j/ZFNV2lm9IJ2wmlq1uYK0Y/1PiyDq9g4HEGsNTNr3viRbJdV+8Lf1SXIiLZXFvyiisu0qUyIXGBnw+OKWkJwQ== +jest-resolve@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.2.tgz#8831f449671d08d161fe493003f61dc9b55b808e" + integrity sha512-RtKWW0mbR3I4UdkOrW7552IFGLYQ5AF9YrzD0FnIOkDu0rAMlA5/Y1+r7lhCAP4nXSBTaE7ueeqj6IOwZpgoqw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.1" + jest-haste-map "^29.4.2" jest-pnp-resolver "^1.2.2" - jest-util "^29.4.1" - jest-validate "^29.4.1" + jest-util "^29.4.2" + jest-validate "^29.4.2" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.1.tgz#57460d9ebb0eea2e27eeddca1816cf8537469661" - integrity sha512-8d6XXXi7GtHmsHrnaqBKWxjKb166Eyj/ksSaUYdcBK09VbjPwIgWov1VwSmtupCIz8q1Xv4Qkzt/BTo3ZqiCeg== +jest-runner@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.2.tgz#2bcecf72303369df4ef1e6e983c22a89870d5125" + integrity sha512-wqwt0drm7JGjwdH+x1XgAl+TFPH7poowMguPQINYxaukCqlczAcNLJiK+OLxUxQAEWMdy+e6nHZlFHO5s7EuRg== dependencies: - "@jest/console" "^29.4.1" - "@jest/environment" "^29.4.1" - "@jest/test-result" "^29.4.1" - "@jest/transform" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/console" "^29.4.2" + "@jest/environment" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/transform" "^29.4.2" + "@jest/types" "^29.4.2" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.2.0" - jest-environment-node "^29.4.1" - jest-haste-map "^29.4.1" - jest-leak-detector "^29.4.1" - jest-message-util "^29.4.1" - jest-resolve "^29.4.1" - jest-runtime "^29.4.1" - jest-util "^29.4.1" - jest-watcher "^29.4.1" - jest-worker "^29.4.1" + jest-docblock "^29.4.2" + jest-environment-node "^29.4.2" + jest-haste-map "^29.4.2" + jest-leak-detector "^29.4.2" + jest-message-util "^29.4.2" + jest-resolve "^29.4.2" + jest-runtime "^29.4.2" + jest-util "^29.4.2" + jest-watcher "^29.4.2" + jest-worker "^29.4.2" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.1.tgz#9a50f9c69d3a391690897c01b0bfa8dc5dd45808" - integrity sha512-UXTMU9uKu2GjYwTtoAw5rn4STxWw/nadOfW7v1sx6LaJYa3V/iymdCLQM6xy3+7C6mY8GfX22vKpgxY171UIoA== - dependencies: - "@jest/environment" "^29.4.1" - "@jest/fake-timers" "^29.4.1" - "@jest/globals" "^29.4.1" - "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.4.1" - "@jest/transform" "^29.4.1" - "@jest/types" "^29.4.1" +jest-runtime@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.2.tgz#d86b764c5b95d76cb26ed1f32644e99de5d5c134" + integrity sha512-3fque9vtpLzGuxT9eZqhxi+9EylKK/ESfhClv4P7Y9sqJPs58LjVhTt8jaMp/pRO38agll1CkSu9z9ieTQeRrw== + dependencies: + "@jest/environment" "^29.4.2" + "@jest/fake-timers" "^29.4.2" + "@jest/globals" "^29.4.2" + "@jest/source-map" "^29.4.2" + "@jest/test-result" "^29.4.2" + "@jest/transform" "^29.4.2" + "@jest/types" "^29.4.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 "^29.4.1" - jest-message-util "^29.4.1" - jest-mock "^29.4.1" - jest-regex-util "^29.2.0" - jest-resolve "^29.4.1" - jest-snapshot "^29.4.1" - jest-util "^29.4.1" + jest-haste-map "^29.4.2" + jest-message-util "^29.4.2" + jest-mock "^29.4.2" + jest-regex-util "^29.4.2" + jest-resolve "^29.4.2" + jest-snapshot "^29.4.2" + jest-util "^29.4.2" semver "^7.3.5" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.1.tgz#5692210b3690c94f19317913d4082b123bd83dd9" - integrity sha512-l4iV8EjGgQWVz3ee/LR9sULDk2pCkqb71bjvlqn+qp90lFwpnulHj4ZBT8nm1hA1C5wowXLc7MGnw321u0tsYA== +jest-snapshot@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.2.tgz#ba1fb9abb279fd2c85109ff1757bc56b503bbb3a" + integrity sha512-PdfubrSNN5KwroyMH158R23tWcAXJyx4pvSvWls1dHoLCaUhGul9rsL3uVjtqzRpkxlkMavQjGuWG1newPgmkw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1885,82 +1885,82 @@ jest-snapshot@^29.4.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.4.1" - "@jest/transform" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/expect-utils" "^29.4.2" + "@jest/transform" "^29.4.2" + "@jest/types" "^29.4.2" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.4.1" + expect "^29.4.2" graceful-fs "^4.2.9" - jest-diff "^29.4.1" - jest-get-type "^29.2.0" - jest-haste-map "^29.4.1" - jest-matcher-utils "^29.4.1" - jest-message-util "^29.4.1" - jest-util "^29.4.1" + jest-diff "^29.4.2" + jest-get-type "^29.4.2" + jest-haste-map "^29.4.2" + jest-matcher-utils "^29.4.2" + jest-message-util "^29.4.2" + jest-util "^29.4.2" natural-compare "^1.4.0" - pretty-format "^29.4.1" + pretty-format "^29.4.2" semver "^7.3.5" -jest-util@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.1.tgz#2eeed98ff4563b441b5a656ed1a786e3abc3e4c4" - integrity sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ== +jest-util@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.2.tgz#3db8580b295df453a97de4a1b42dd2578dabd2c2" + integrity sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g== dependencies: - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.1.tgz#0d5174510415083ec329d4f981bf6779211f17e9" - integrity sha512-qNZXcZQdIQx4SfUB/atWnI4/I2HUvhz8ajOSYUu40CSmf9U5emil8EDHgE7M+3j9/pavtk3knlZBDsgFvv/SWw== +jest-validate@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.2.tgz#3b3f8c4910ab9a3442d2512e2175df6b3f77b915" + integrity sha512-tto7YKGPJyFbhcKhIDFq8B5od+eVWD/ySZ9Tvcp/NGCvYA4RQbuzhbwYWtIjMT5W5zA2W0eBJwu4HVw34d5G6Q== dependencies: - "@jest/types" "^29.4.1" + "@jest/types" "^29.4.2" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.2.0" + jest-get-type "^29.4.2" leven "^3.1.0" - pretty-format "^29.4.1" + pretty-format "^29.4.2" -jest-watcher@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.1.tgz#6e3e2486918bd778849d4d6e67fd77b814f3e6ed" - integrity sha512-vFOzflGFs27nU6h8dpnVRER3O2rFtL+VMEwnG0H3KLHcllLsU8y9DchSh0AL/Rg5nN1/wSiQ+P4ByMGpuybaVw== +jest-watcher@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.2.tgz#09c0f4c9a9c7c0807fcefb1445b821c6f7953b7c" + integrity sha512-onddLujSoGiMJt+tKutehIidABa175i/Ays+QvKxCqBwp7fvxP3ZhKsrIdOodt71dKxqk4sc0LN41mWLGIK44w== dependencies: - "@jest/test-result" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/test-result" "^29.4.2" + "@jest/types" "^29.4.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.4.1" + jest-util "^29.4.2" string-length "^4.0.1" -jest-worker@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.1.tgz#7cb4a99a38975679600305650f86f4807460aab1" - integrity sha512-O9doU/S1EBe+yp/mstQ0VpPwpv0Clgn68TkNwGxL6/usX/KUW9Arnn4ag8C3jc6qHcXznhsT5Na1liYzAsuAbQ== +jest-worker@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.2.tgz#d9b2c3bafc69311d84d94e7fb45677fc8976296f" + integrity sha512-VIuZA2hZmFyRbchsUCHEehoSf2HEl0YVF8SDJqtPnKorAaBuh42V8QsLnde0XP5F6TyCynGPEGgBOn3Fc+wZGw== dependencies: "@types/node" "*" - jest-util "^29.4.1" + jest-util "^29.4.2" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.1.tgz#bb34baca8e05901b49c02c62f1183a6182ea1785" - integrity sha512-cknimw7gAXPDOmj0QqztlxVtBVCw2lYY9CeIE5N6kD+kET1H4H79HSNISJmijb1HF+qk+G+ploJgiDi5k/fRlg== + version "29.4.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.2.tgz#4c2127d03a71dc187f386156ef155dbf323fb7be" + integrity sha512-+5hLd260vNIHu+7ZgMIooSpKl7Jp5pHKb51e73AJU3owd5dEo/RfVwHbA/na3C/eozrt3hJOLGf96c7EWwIAzg== dependencies: - "@jest/core" "^29.4.1" - "@jest/types" "^29.4.1" + "@jest/core" "^29.4.2" + "@jest/types" "^29.4.2" import-local "^3.0.2" - jest-cli "^29.4.1" + jest-cli "^29.4.2" js-sdsl@^4.1.4: version "4.3.0" @@ -2283,12 +2283,12 @@ prettier@>=3.0.0-alpha.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.4.tgz#eee71d6b520b970f44e4045f2dc772bf6f80815f" integrity sha512-+KeqJv4E5kaRsDRgSx9IeVygLKGHRmcoPvRJvPFp3bC1mw8opsva555gGb8TaJzUiHXoLZcus1EX+nlHPda7Pw== -pretty-format@^29.4.1: - version "29.4.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.1.tgz#0da99b532559097b8254298da7c75a0785b1751c" - integrity sha512-dt/Z761JUVsrIKaY215o1xQJBGlSmTx/h4cSqXqjHLnU1+Kt+mavVE7UgqJJO5ukx5HjSswHfmXz4LjS2oIJfg== +pretty-format@^29.4.2: + version "29.4.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.2.tgz#64bf5ccc0d718c03027d94ac957bdd32b3fb2401" + integrity sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg== dependencies: - "@jest/schemas" "^29.4.0" + "@jest/schemas" "^29.4.2" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -2634,10 +2634,10 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.0.tgz#54303f117e109bf3d540261125c8ea5a7320fab0" - integrity sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w== +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" From 77c36f6c2fc5c5435cff2c2338ddfde309160523 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 12:56:48 +0000 Subject: [PATCH 168/262] Bump eslint from 8.33.0 to 8.34.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.33.0 to 8.34.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.33.0...v8.34.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index cb7e01c0..5ba38cf2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1145,9 +1145,9 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.32.0: - version "8.33.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7" - integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA== + version "8.34.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.34.0.tgz#fe0ab0ef478104c1f9ebc5537e303d25a8fb22d6" + integrity sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg== dependencies: "@eslint/eslintrc" "^1.4.1" "@humanwhocodes/config-array" "^0.11.8" From 9667377e3d0c32ec619325b75d788f475bdb6203 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Feb 2023 12:56:45 +0000 Subject: [PATCH 169/262] Bump jest from 29.4.2 to 29.4.3 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.4.2 to 29.4.3. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.4.3/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 707 +++++++++++++++++++++++++++--------------------------- 1 file changed, 353 insertions(+), 354 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5ba38cf2..1280c554 100644 --- a/yarn.lock +++ b/yarn.lock @@ -348,109 +348,109 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.2.tgz#f78374905c2454764152904a344a2d5226b0ef09" - integrity sha512-0I/rEJwMpV9iwi9cDEnT71a5nNGK9lj8Z4+1pRAU2x/thVXCDnaTGrvxyK+cAqZTFVFCiR+hfVrP4l2m+dCmQg== +"@jest/console@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.3.tgz#1f25a99f7f860e4c46423b5b1038262466fadde1" + integrity sha512-W/o/34+wQuXlgqlPYTansOSiBnuxrTv61dEVkA6HNmpcgHLUjfaUbdqt6oVvOzaawwo9IdW9QOtMgQ1ScSZC4A== dependencies: - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.4.2" - jest-util "^29.4.2" + jest-message-util "^29.4.3" + jest-util "^29.4.3" slash "^3.0.0" -"@jest/core@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.2.tgz#6e999b67bdc2df9d96ba9b142465bda71ee472c2" - integrity sha512-KGuoQah0P3vGNlaS/l9/wQENZGNKGoWb+OPxh3gz+YzG7/XExvYu34MzikRndQCdM2S0tzExN4+FL37i6gZmCQ== +"@jest/core@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.3.tgz#829dd65bffdb490de5b0f69e97de8e3b5eadd94b" + integrity sha512-56QvBq60fS4SPZCuM7T+7scNrkGIe7Mr6PVIXUpu48ouvRaWOFqRPV91eifvFM0ay2HmfswXiGf97NGUN5KofQ== dependencies: - "@jest/console" "^29.4.2" - "@jest/reporters" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/transform" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/console" "^29.4.3" + "@jest/reporters" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.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.4.2" - jest-config "^29.4.2" - jest-haste-map "^29.4.2" - jest-message-util "^29.4.2" - jest-regex-util "^29.4.2" - jest-resolve "^29.4.2" - jest-resolve-dependencies "^29.4.2" - jest-runner "^29.4.2" - jest-runtime "^29.4.2" - jest-snapshot "^29.4.2" - jest-util "^29.4.2" - jest-validate "^29.4.2" - jest-watcher "^29.4.2" + jest-changed-files "^29.4.3" + jest-config "^29.4.3" + jest-haste-map "^29.4.3" + jest-message-util "^29.4.3" + jest-regex-util "^29.4.3" + jest-resolve "^29.4.3" + jest-resolve-dependencies "^29.4.3" + jest-runner "^29.4.3" + jest-runtime "^29.4.3" + jest-snapshot "^29.4.3" + jest-util "^29.4.3" + jest-validate "^29.4.3" + jest-watcher "^29.4.3" micromatch "^4.0.4" - pretty-format "^29.4.2" + pretty-format "^29.4.3" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.2.tgz#ee92c316ee2fbdf0bcd9d2db0ef42d64fea26b56" - integrity sha512-JKs3VUtse0vQfCaFGJRX1bir9yBdtasxziSyu+pIiEllAQOe4oQhdCYIf3+Lx+nGglFktSKToBnRJfD5QKp+NQ== +"@jest/environment@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.3.tgz#9fe2f3169c3b33815dc4bd3960a064a83eba6548" + integrity sha512-dq5S6408IxIa+lr54zeqce+QgI+CJT4nmmA+1yzFgtcsGK8c/EyiUb9XQOgz3BMKrRDfKseeOaxj2eO8LlD3lA== dependencies: - "@jest/fake-timers" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/fake-timers" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" - jest-mock "^29.4.2" + jest-mock "^29.4.3" -"@jest/expect-utils@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.2.tgz#cd0065dfdd8e8a182aa350cc121db97b5eed7b3f" - integrity sha512-Dd3ilDJpBnqa0GiPN7QrudVs0cczMMHtehSo2CSTjm3zdHx0RcpmhFNVEltuEFeqfLIyWKFI224FsMSQ/nsJQA== +"@jest/expect-utils@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.3.tgz#95ce4df62952f071bcd618225ac7c47eaa81431e" + integrity sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ== dependencies: - jest-get-type "^29.4.2" + jest-get-type "^29.4.3" -"@jest/expect@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.2.tgz#2d4a6a41b29380957c5094de19259f87f194578b" - integrity sha512-NUAeZVApzyaeLjfWIV/64zXjA2SS+NuUPHpAlO7IwVMGd5Vf9szTl9KEDlxY3B4liwLO31os88tYNHl6cpjtKQ== +"@jest/expect@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.3.tgz#d31a28492e45a6bcd0f204a81f783fe717045c6e" + integrity sha512-iktRU/YsxEtumI9zsPctYUk7ptpC+AVLLk1Ax3AsA4g1C+8OOnKDkIQBDHtD5hA/+VtgMd5AWI5gNlcAlt2vxQ== dependencies: - expect "^29.4.2" - jest-snapshot "^29.4.2" + expect "^29.4.3" + jest-snapshot "^29.4.3" -"@jest/fake-timers@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.2.tgz#af43ee1a5720b987d0348f80df98f2cb17d45cd0" - integrity sha512-Ny1u0Wg6kCsHFWq7A/rW/tMhIedq2siiyHyLpHCmIhP7WmcAmd2cx95P+0xtTZlj5ZbJxIRQi4OPydZZUoiSQQ== +"@jest/fake-timers@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.3.tgz#31e982638c60fa657d310d4b9d24e023064027b0" + integrity sha512-4Hote2MGcCTWSD2gwl0dwbCpBRHhE6olYEuTj8FMowdg3oQWNKr2YuxenPQYZ7+PfqPY1k98wKDU4Z+Hvd4Tiw== dependencies: - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.4.2" - jest-mock "^29.4.2" - jest-util "^29.4.2" + jest-message-util "^29.4.3" + jest-mock "^29.4.3" + jest-util "^29.4.3" -"@jest/globals@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.2.tgz#73f85f5db0e17642258b25fd0b9fc89ddedb50eb" - integrity sha512-zCk70YGPzKnz/I9BNFDPlK+EuJLk21ur/NozVh6JVM86/YYZtZHqxFFQ62O9MWq7uf3vIZnvNA0BzzrtxD9iyg== +"@jest/globals@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.3.tgz#63a2c4200d11bc6d46f12bbe25b07f771fce9279" + integrity sha512-8BQ/5EzfOLG7AaMcDh7yFCbfRLtsc+09E1RQmRBI4D6QQk4m6NSK/MXo+3bJrBN0yU8A2/VIcqhvsOLFmziioA== dependencies: - "@jest/environment" "^29.4.2" - "@jest/expect" "^29.4.2" - "@jest/types" "^29.4.2" - jest-mock "^29.4.2" + "@jest/environment" "^29.4.3" + "@jest/expect" "^29.4.3" + "@jest/types" "^29.4.3" + jest-mock "^29.4.3" -"@jest/reporters@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.2.tgz#6abfa923941daae0acc76a18830ee9e79a22042d" - integrity sha512-10yw6YQe75zCgYcXgEND9kw3UZZH5tJeLzWv4vTk/2mrS1aY50A37F+XT2hPO5OqQFFnUWizXD8k1BMiATNfUw== +"@jest/reporters@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.3.tgz#0a68a0c0f20554760cc2e5443177a0018969e353" + integrity sha512-sr2I7BmOjJhyqj9ANC6CTLsL4emMoka7HkQpcoMRlhCbQJjz2zsRzw0BDPiPyEFDXAbxKgGFYuQZiSJ1Y6YoTg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/transform" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/console" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -463,77 +463,77 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.4.2" - jest-util "^29.4.2" - jest-worker "^29.4.2" + jest-message-util "^29.4.3" + jest-util "^29.4.3" + jest-worker "^29.4.3" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.2.tgz#cf7cfe97c5649f518452b176c47ed07486270fc1" - integrity sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g== +"@jest/schemas@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" + integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== dependencies: "@sinclair/typebox" "^0.25.16" -"@jest/source-map@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.2.tgz#f9815d59e25cd3d6828e41489cd239271018d153" - integrity sha512-tIoqV5ZNgYI9XCKXMqbYe5JbumcvyTgNN+V5QW4My033lanijvCD0D4PI9tBw4pRTqWOc00/7X3KVvUh+qnF4Q== +"@jest/source-map@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" + integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== dependencies: "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.2.tgz#34b0ba069f2e3072261e4884c8fb6bd15ed6fb8d" - integrity sha512-HZsC3shhiHVvMtP+i55MGR5bPcc3obCFbA5bzIOb8pCjwBZf11cZliJncCgaVUbC5yoQNuGqCkC0Q3t6EItxZA== +"@jest/test-result@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.3.tgz#e13d973d16c8c7cc0c597082d5f3b9e7f796ccb8" + integrity sha512-Oi4u9NfBolMq9MASPwuWTlC5WvmNRwI4S8YrQg5R5Gi47DYlBe3sh7ILTqi/LGrK1XUE4XY9KZcQJTH1WJCLLA== dependencies: - "@jest/console" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/console" "^29.4.3" + "@jest/types" "^29.4.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.2.tgz#8b48e5bc4af80b42edacaf2a733d4f295edf28fb" - integrity sha512-9Z2cVsD6CcObIVrWigHp2McRJhvCxL27xHtrZFgNC1RwnoSpDx6fZo8QYjJmziFlW9/hr78/3sxF54S8B6v8rg== +"@jest/test-sequencer@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.3.tgz#0862e876a22993385a0f3e7ea1cc126f208a2898" + integrity sha512-yi/t2nES4GB4G0mjLc0RInCq/cNr9dNwJxcGg8sslajua5Kb4kmozAc+qPLzplhBgfw1vLItbjyHzUN92UXicw== dependencies: - "@jest/test-result" "^29.4.2" + "@jest/test-result" "^29.4.3" graceful-fs "^4.2.9" - jest-haste-map "^29.4.2" + jest-haste-map "^29.4.3" slash "^3.0.0" -"@jest/transform@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.2.tgz#b24b72dbab4c8675433a80e222d6a8ef4656fb81" - integrity sha512-kf1v5iTJHn7p9RbOsBuc/lcwyPtJaZJt5885C98omWz79NIeD3PfoiiaPSu7JyCyFzNOIzKhmMhQLUhlTL9BvQ== +"@jest/transform@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.3.tgz#f7d17eac9cb5bb2e1222ea199c7c7e0835e0c037" + integrity sha512-8u0+fBGWolDshsFgPQJESkDa72da/EVwvL+II0trN2DR66wMwiQ9/CihaGfHdlLGFzbBZwMykFtxuwFdZqlKwg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" "@jridgewell/trace-mapping" "^0.3.15" 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 "^29.4.2" - jest-regex-util "^29.4.2" - jest-util "^29.4.2" + jest-haste-map "^29.4.3" + jest-regex-util "^29.4.3" + jest-util "^29.4.3" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.4.2": - version "29.4.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.2.tgz#8f724a414b1246b2bfd56ca5225d9e1f39540d82" - integrity sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw== +"@jest/types@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f" + integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA== dependencies: - "@jest/schemas" "^29.4.2" + "@jest/schemas" "^29.4.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -797,15 +797,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.2.tgz#b17b9f64be288040877cbe2649f91ac3b63b2ba6" - integrity sha512-vcghSqhtowXPG84posYkkkzcZsdayFkubUgbE3/1tuGbX7AQtwCkkNA/wIbB0BMjuCPoqTkiDyKN7Ty7d3uwNQ== +babel-jest@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.3.tgz#478b84d430972b277ad67dd631be94abea676792" + integrity sha512-o45Wyn32svZE+LnMVWv/Z4x0SwtLbh4FyGcYtR20kIWd+rdrDZ9Fzq8Ml3MYLD+mZvEdzCjZsCnYZ2jpJyQ+Nw== dependencies: - "@jest/transform" "^29.4.2" + "@jest/transform" "^29.4.3" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.4.2" + babel-preset-jest "^29.4.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -821,10 +821,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.2.tgz#22aa43e255230f02371ffef1cac7eedef58f60bc" - integrity sha512-5HZRCfMeWypFEonRbEkwWXtNS1sQK159LhRVyRuLzyfVBxDy/34Tr/rg4YVi0SScSJ4fqeaR/OIeceJ/LaQ0pQ== +babel-plugin-jest-hoist@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.3.tgz#ad1dfb5d31940957e00410ef7d9b2aa94b216101" + integrity sha512-mB6q2q3oahKphy5V7CpnNqZOCkxxZ9aokf1eh82Dy3jQmg4xvM1tGrh5y6BQUJh4a3Pj9+eLfwvAZ7VNKg7H8Q== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -849,12 +849,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.2.tgz#f0b20c6a79a9f155515e72a2d4f537fe002a4e38" - integrity sha512-ecWdaLY/8JyfUDr0oELBMpj3R5I1L6ZqG+kRJmwqfHtLWuPrJStR0LUkvUhfykJWTsXXMnohsayN/twltBbDrQ== +babel-preset-jest@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.3.tgz#bb926b66ae253b69c6e3ef87511b8bb5c53c5b52" + integrity sha512-gWx6COtSuma6n9bw+8/F+2PCXrIgxV/D1TJFnp6OyBK2cxPWg0K9p/sriNYeifKjpUkMViWQ09DSWtzJQRETsw== dependencies: - babel-plugin-jest-hoist "^29.4.2" + babel-plugin-jest-hoist "^29.4.3" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1053,10 +1053,10 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.2.tgz#711fe6bd8a5869fe2539cee4a5152425ff671fda" - integrity sha512-R6P0Y6PrsH3n4hUXxL3nns0rbRk6Q33js3ygJBeEpbzLzgcNuJ61+u0RXasFpTKISw99TxUzFnumSnRLsjhLaw== +diff-sequences@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" + integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== doctrine@^3.0.0: version "3.0.0" @@ -1262,16 +1262,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.2.tgz#2ae34eb88de797c64a1541ad0f1e2ea8a7a7b492" - integrity sha512-+JHYg9O3hd3RlICG90OPVjRkPBoiUH7PxvDVMnRiaq1g6JUgZStX514erMl0v2Dc5SkfVbm7ztqbd6qHHPn+mQ== +expect@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.3.tgz#5e47757316df744fe3b8926c3ae8a3ebdafff7fe" + integrity sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg== dependencies: - "@jest/expect-utils" "^29.4.2" - jest-get-type "^29.4.2" - jest-matcher-utils "^29.4.2" - jest-message-util "^29.4.2" - jest-util "^29.4.2" + "@jest/expect-utils" "^29.4.3" + jest-get-type "^29.4.3" + jest-matcher-utils "^29.4.3" + jest-message-util "^29.4.3" + jest-util "^29.4.3" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1600,284 +1600,283 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.2.tgz#bee1fafc8b620d6251423d1978a0080546bc4376" - integrity sha512-Qdd+AXdqD16PQa+VsWJpxR3kN0JyOCX1iugQfx5nUgAsI4gwsKviXkpclxOK9ZnwaY2IQVHz+771eAvqeOlfuw== +jest-changed-files@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.3.tgz#7961fe32536b9b6d5c28dfa0abcfab31abcf50a7" + integrity sha512-Vn5cLuWuwmi2GNNbokPOEcvrXGSGrqVnPEZV7rC6P7ck07Dyw9RFnvWglnupSh+hGys0ajGtw/bc2ZgweljQoQ== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.2.tgz#2d00c04baefd0ee2a277014cd494d4b5970663ed" - integrity sha512-wW3ztp6a2P5c1yOc1Cfrt5ozJ7neWmqeXm/4SYiqcSriyisgq63bwFj1NuRdSR5iqS0CMEYwSZd89ZA47W9zUg== +jest-circus@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.3.tgz#fff7be1cf5f06224dd36a857d52a9efeb005ba04" + integrity sha512-Vw/bVvcexmdJ7MLmgdT3ZjkJ3LKu8IlpefYokxiqoZy6OCQ2VAm6Vk3t/qHiAGUXbdbJKJWnc8gH3ypTbB/OBw== dependencies: - "@jest/environment" "^29.4.2" - "@jest/expect" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/environment" "^29.4.3" + "@jest/expect" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.4.2" - jest-matcher-utils "^29.4.2" - jest-message-util "^29.4.2" - jest-runtime "^29.4.2" - jest-snapshot "^29.4.2" - jest-util "^29.4.2" + jest-each "^29.4.3" + jest-matcher-utils "^29.4.3" + jest-message-util "^29.4.3" + jest-runtime "^29.4.3" + jest-snapshot "^29.4.3" + jest-util "^29.4.3" p-limit "^3.1.0" - pretty-format "^29.4.2" + pretty-format "^29.4.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.2.tgz#94a2f913a0a7a49d11bee98ad88bf48baae941f4" - integrity sha512-b+eGUtXq/K2v7SH3QcJvFvaUaCDS1/YAZBYz0m28Q/Ppyr+1qNaHmVYikOrbHVbZqYQs2IeI3p76uy6BWbXq8Q== +jest-cli@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.3.tgz#fe31fdd0c90c765f392b8b7c97e4845071cd2163" + integrity sha512-PiiAPuFNfWWolCE6t3ZrDXQc6OsAuM3/tVW0u27UWc1KE+n/HSn5dSE6B2juqN7WP+PP0jAcnKtGmI4u8GMYCg== dependencies: - "@jest/core" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/core" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/types" "^29.4.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.4.2" - jest-util "^29.4.2" - jest-validate "^29.4.2" + jest-config "^29.4.3" + jest-util "^29.4.3" + jest-validate "^29.4.3" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.2.tgz#15386dd9ed2f7059516915515f786b8836a98f07" - integrity sha512-919CtnXic52YM0zW4C1QxjG6aNueX1kBGthuMtvFtRTAxhKfJmiXC9qwHmi6o2josjbDz8QlWyY55F1SIVmCWA== +jest-config@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.3.tgz#fca9cdfe6298ae6d04beef1624064d455347c978" + integrity sha512-eCIpqhGnIjdUCXGtLhz4gdDoxKSWXKjzNcc5r+0S1GKOp2fwOipx5mRcwa9GB/ArsxJ1jlj2lmlD9bZAsBxaWQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.4.2" - "@jest/types" "^29.4.2" - babel-jest "^29.4.2" + "@jest/test-sequencer" "^29.4.3" + "@jest/types" "^29.4.3" + babel-jest "^29.4.3" 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.4.2" - jest-environment-node "^29.4.2" - jest-get-type "^29.4.2" - jest-regex-util "^29.4.2" - jest-resolve "^29.4.2" - jest-runner "^29.4.2" - jest-util "^29.4.2" - jest-validate "^29.4.2" + jest-circus "^29.4.3" + jest-environment-node "^29.4.3" + jest-get-type "^29.4.3" + jest-regex-util "^29.4.3" + jest-resolve "^29.4.3" + jest-runner "^29.4.3" + jest-util "^29.4.3" + jest-validate "^29.4.3" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.4.2" + pretty-format "^29.4.3" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.2.tgz#b88502d5dc02d97f6512d73c37da8b36f49b4871" - integrity sha512-EK8DSajVtnjx9sa1BkjZq3mqChm2Cd8rIzdXkQMA8e0wuXq53ypz6s5o5V8HRZkoEt2ywJ3eeNWFKWeYr8HK4g== +jest-diff@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.3.tgz#42f4eb34d0bf8c0fb08b0501069b87e8e84df347" + integrity sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA== dependencies: chalk "^4.0.0" - diff-sequences "^29.4.2" - jest-get-type "^29.4.2" - pretty-format "^29.4.2" + diff-sequences "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.4.3" -jest-docblock@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.2.tgz#c78a95eedf9a24c0a6cc16cf2abdc4b8b0f2531b" - integrity sha512-dV2JdahgClL34Y5vLrAHde3nF3yo2jKRH+GIYJuCpfqwEJZcikzeafVTGAjbOfKPG17ez9iWXwUYp7yefeCRag== +jest-docblock@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" + integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== dependencies: detect-newline "^3.0.0" -jest-each@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.2.tgz#e1347aff1303f4c35470827a62c029d389c5d44a" - integrity sha512-trvKZb0JYiCndc55V1Yh0Luqi7AsAdDWpV+mKT/5vkpnnFQfuQACV72IoRV161aAr6kAVIBpmYzwhBzm34vQkA== +jest-each@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.3.tgz#a434c199a2f6151c5e3dc80b2d54586bdaa72819" + integrity sha512-1ElHNAnKcbJb/b+L+7j0/w7bDvljw4gTv1wL9fYOczeJrbTbkMGQ5iQPFJ3eFQH19VPTx1IyfePdqSpePKss7Q== dependencies: - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" chalk "^4.0.0" - jest-get-type "^29.4.2" - jest-util "^29.4.2" - pretty-format "^29.4.2" - -jest-environment-node@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.2.tgz#0eab835b41e25fd0c1a72f62665fc8db08762ad2" - integrity sha512-MLPrqUcOnNBc8zTOfqBbxtoa8/Ee8tZ7UFW7hRDQSUT+NGsvS96wlbHGTf+EFAT9KC3VNb7fWEM6oyvmxtE/9w== - dependencies: - "@jest/environment" "^29.4.2" - "@jest/fake-timers" "^29.4.2" - "@jest/types" "^29.4.2" + jest-get-type "^29.4.3" + jest-util "^29.4.3" + pretty-format "^29.4.3" + +jest-environment-node@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.3.tgz#579c4132af478befc1889ddc43c2413a9cdbe014" + integrity sha512-gAiEnSKF104fsGDXNkwk49jD/0N0Bqu2K9+aMQXA6avzsA9H3Fiv1PW2D+gzbOSR705bWd2wJZRFEFpV0tXISg== + dependencies: + "@jest/environment" "^29.4.3" + "@jest/fake-timers" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" - jest-mock "^29.4.2" - jest-util "^29.4.2" + jest-mock "^29.4.3" + jest-util "^29.4.3" -jest-get-type@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.2.tgz#7cb63f154bca8d8f57364d01614477d466fa43fe" - integrity sha512-vERN30V5i2N6lqlFu4ljdTqQAgrkTFMC9xaIIfOPYBw04pufjXRty5RuXBiB1d72tGbURa/UgoiHB90ruOSivg== +jest-get-type@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" + integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.2.tgz#9112df3f5121e643f1b2dcbaa86ab11b0b90b49a" - integrity sha512-WkUgo26LN5UHPknkezrBzr7lUtV1OpGsp+NfXbBwHztsFruS3gz+AMTTBcEklvi8uPzpISzYjdKXYZQJXBnfvw== +jest-haste-map@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.3.tgz#085a44283269e7ace0645c63a57af0d2af6942e2" + integrity sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ== dependencies: - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.4.2" - jest-util "^29.4.2" - jest-worker "^29.4.2" + jest-regex-util "^29.4.3" + jest-util "^29.4.3" + jest-worker "^29.4.3" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.2.tgz#8f05c6680e0cb46a1d577c0d3da9793bed3ea97b" - integrity sha512-Wa62HuRJmWXtX9F00nUpWlrbaH5axeYCdyRsOs/+Rb1Vb6+qWTlB5rKwCCRKtorM7owNwKsyJ8NRDUcZ8ghYUA== +jest-leak-detector@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.3.tgz#2b35191d6b35aa0256e63a9b79b0f949249cf23a" + integrity sha512-9yw4VC1v2NspMMeV3daQ1yXPNxMgCzwq9BocCwYrRgXe4uaEJPAN0ZK37nFBhcy3cUwEVstFecFLaTHpF7NiGA== dependencies: - jest-get-type "^29.4.2" - pretty-format "^29.4.2" + jest-get-type "^29.4.3" + pretty-format "^29.4.3" -jest-matcher-utils@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.2.tgz#08d0bf5abf242e3834bec92c7ef5071732839e85" - integrity sha512-EZaAQy2je6Uqkrm6frnxBIdaWtSYFoR8SVb2sNLAtldswlR/29JAgx+hy67llT3+hXBaLB0zAm5UfeqerioZyg== +jest-matcher-utils@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz#ea68ebc0568aebea4c4213b99f169ff786df96a0" + integrity sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg== dependencies: chalk "^4.0.0" - jest-diff "^29.4.2" - jest-get-type "^29.4.2" - pretty-format "^29.4.2" + jest-diff "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.4.3" -jest-message-util@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.2.tgz#309a2924eae6ca67cf7f25781a2af1902deee717" - integrity sha512-SElcuN4s6PNKpOEtTInjOAA8QvItu0iugkXqhYyguRvQoXapg5gN+9RQxLAkakChZA7Y26j6yUCsFWN+hlKD6g== +jest-message-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.3.tgz#65b5280c0fdc9419503b49d4f48d4999d481cb5b" + integrity sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.4.2" + pretty-format "^29.4.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.2.tgz#e1054be66fb3e975d26d4528fcde6979e4759de8" - integrity sha512-x1FSd4Gvx2yIahdaIKoBjwji6XpboDunSJ95RpntGrYulI1ByuYQCKN/P7hvk09JB74IonU3IPLdkutEWYt++g== +jest-mock@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.3.tgz#23d84a20a74cdfff0510fdbeefb841ed57b0fe7e" + integrity sha512-LjFgMg+xed9BdkPMyIJh+r3KeHt1klXPJYBULXVVAkbTaaKjPX1o1uVCAZADMEp/kOxGTwy/Ot8XbvgItOrHEg== dependencies: - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" "@types/node" "*" - jest-util "^29.4.2" + jest-util "^29.4.3" jest-pnp-resolver@^1.2.2: 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@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.2.tgz#19187cca35d301f8126cf7a021dd4dcb7b58a1ca" - integrity sha512-XYZXOqUl1y31H6VLMrrUL1ZhXuiymLKPz0BO1kEeR5xER9Tv86RZrjTm74g5l9bPJQXA/hyLdaVPN/sdqfteig== +jest-regex-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" + integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve-dependencies@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.2.tgz#6359db606f5967b68ca8bbe9dbc07a4306c12bf7" - integrity sha512-6pL4ptFw62rjdrPk7rRpzJYgcRqRZNsZTF1VxVTZMishbO6ObyWvX57yHOaNGgKoADtAHRFYdHQUEvYMJATbDg== +jest-resolve-dependencies@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.3.tgz#9ad7f23839a6d88cef91416bda9393a6e9fd1da5" + integrity sha512-uvKMZAQ3nmXLH7O8WAOhS5l0iWyT3WmnJBdmIHiV5tBbdaDZ1wqtNX04FONGoaFvSOSHBJxnwAVnSn1WHdGVaw== dependencies: - jest-regex-util "^29.4.2" - jest-snapshot "^29.4.2" + jest-regex-util "^29.4.3" + jest-snapshot "^29.4.3" -jest-resolve@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.2.tgz#8831f449671d08d161fe493003f61dc9b55b808e" - integrity sha512-RtKWW0mbR3I4UdkOrW7552IFGLYQ5AF9YrzD0FnIOkDu0rAMlA5/Y1+r7lhCAP4nXSBTaE7ueeqj6IOwZpgoqw== +jest-resolve@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.3.tgz#3c5b5c984fa8a763edf9b3639700e1c7900538e2" + integrity sha512-GPokE1tzguRyT7dkxBim4wSx6E45S3bOQ7ZdKEG+Qj0Oac9+6AwJPCk0TZh5Vu0xzeX4afpb+eDmgbmZFFwpOw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.2" + jest-haste-map "^29.4.3" jest-pnp-resolver "^1.2.2" - jest-util "^29.4.2" - jest-validate "^29.4.2" + jest-util "^29.4.3" + jest-validate "^29.4.3" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.2.tgz#2bcecf72303369df4ef1e6e983c22a89870d5125" - integrity sha512-wqwt0drm7JGjwdH+x1XgAl+TFPH7poowMguPQINYxaukCqlczAcNLJiK+OLxUxQAEWMdy+e6nHZlFHO5s7EuRg== +jest-runner@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.3.tgz#68dc82c68645eda12bea42b5beece6527d7c1e5e" + integrity sha512-GWPTEiGmtHZv1KKeWlTX9SIFuK19uLXlRQU43ceOQ2hIfA5yPEJC7AMkvFKpdCHx6pNEdOD+2+8zbniEi3v3gA== dependencies: - "@jest/console" "^29.4.2" - "@jest/environment" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/transform" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/console" "^29.4.3" + "@jest/environment" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.4.2" - jest-environment-node "^29.4.2" - jest-haste-map "^29.4.2" - jest-leak-detector "^29.4.2" - jest-message-util "^29.4.2" - jest-resolve "^29.4.2" - jest-runtime "^29.4.2" - jest-util "^29.4.2" - jest-watcher "^29.4.2" - jest-worker "^29.4.2" + jest-docblock "^29.4.3" + jest-environment-node "^29.4.3" + jest-haste-map "^29.4.3" + jest-leak-detector "^29.4.3" + jest-message-util "^29.4.3" + jest-resolve "^29.4.3" + jest-runtime "^29.4.3" + jest-util "^29.4.3" + jest-watcher "^29.4.3" + jest-worker "^29.4.3" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.2.tgz#d86b764c5b95d76cb26ed1f32644e99de5d5c134" - integrity sha512-3fque9vtpLzGuxT9eZqhxi+9EylKK/ESfhClv4P7Y9sqJPs58LjVhTt8jaMp/pRO38agll1CkSu9z9ieTQeRrw== - dependencies: - "@jest/environment" "^29.4.2" - "@jest/fake-timers" "^29.4.2" - "@jest/globals" "^29.4.2" - "@jest/source-map" "^29.4.2" - "@jest/test-result" "^29.4.2" - "@jest/transform" "^29.4.2" - "@jest/types" "^29.4.2" +jest-runtime@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.3.tgz#f25db9874dcf35a3ab27fdaabca426666cc745bf" + integrity sha512-F5bHvxSH+LvLV24vVB3L8K467dt3y3dio6V3W89dUz9nzvTpqd/HcT9zfYKL2aZPvD63vQFgLvaUX/UpUhrP6Q== + dependencies: + "@jest/environment" "^29.4.3" + "@jest/fake-timers" "^29.4.3" + "@jest/globals" "^29.4.3" + "@jest/source-map" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@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.4.2" - jest-message-util "^29.4.2" - jest-mock "^29.4.2" - jest-regex-util "^29.4.2" - jest-resolve "^29.4.2" - jest-snapshot "^29.4.2" - jest-util "^29.4.2" - semver "^7.3.5" + jest-haste-map "^29.4.3" + jest-message-util "^29.4.3" + jest-mock "^29.4.3" + jest-regex-util "^29.4.3" + jest-resolve "^29.4.3" + jest-snapshot "^29.4.3" + jest-util "^29.4.3" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.2.tgz#ba1fb9abb279fd2c85109ff1757bc56b503bbb3a" - integrity sha512-PdfubrSNN5KwroyMH158R23tWcAXJyx4pvSvWls1dHoLCaUhGul9rsL3uVjtqzRpkxlkMavQjGuWG1newPgmkw== +jest-snapshot@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.3.tgz#183d309371450d9c4a3de7567ed2151eb0e91145" + integrity sha512-NGlsqL0jLPDW91dz304QTM/SNO99lpcSYYAjNiX0Ou+sSGgkanKBcSjCfp/pqmiiO1nQaOyLp6XQddAzRcx3Xw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1885,82 +1884,82 @@ jest-snapshot@^29.4.2: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.4.2" - "@jest/transform" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/expect-utils" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.4.2" + expect "^29.4.3" graceful-fs "^4.2.9" - jest-diff "^29.4.2" - jest-get-type "^29.4.2" - jest-haste-map "^29.4.2" - jest-matcher-utils "^29.4.2" - jest-message-util "^29.4.2" - jest-util "^29.4.2" + jest-diff "^29.4.3" + jest-get-type "^29.4.3" + jest-haste-map "^29.4.3" + jest-matcher-utils "^29.4.3" + jest-message-util "^29.4.3" + jest-util "^29.4.3" natural-compare "^1.4.0" - pretty-format "^29.4.2" + pretty-format "^29.4.3" semver "^7.3.5" -jest-util@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.2.tgz#3db8580b295df453a97de4a1b42dd2578dabd2c2" - integrity sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g== +jest-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496" + integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q== dependencies: - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.2.tgz#3b3f8c4910ab9a3442d2512e2175df6b3f77b915" - integrity sha512-tto7YKGPJyFbhcKhIDFq8B5od+eVWD/ySZ9Tvcp/NGCvYA4RQbuzhbwYWtIjMT5W5zA2W0eBJwu4HVw34d5G6Q== +jest-validate@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.3.tgz#a13849dec4f9e95446a7080ad5758f58fa88642f" + integrity sha512-J3u5v7aPQoXPzaar6GndAVhdQcZr/3osWSgTeKg5v574I9ybX/dTyH0AJFb5XgXIB7faVhf+rS7t4p3lL9qFaw== dependencies: - "@jest/types" "^29.4.2" + "@jest/types" "^29.4.3" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.4.2" + jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.4.2" + pretty-format "^29.4.3" -jest-watcher@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.2.tgz#09c0f4c9a9c7c0807fcefb1445b821c6f7953b7c" - integrity sha512-onddLujSoGiMJt+tKutehIidABa175i/Ays+QvKxCqBwp7fvxP3ZhKsrIdOodt71dKxqk4sc0LN41mWLGIK44w== +jest-watcher@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.3.tgz#e503baa774f0c2f8f3c8db98a22ebf885f19c384" + integrity sha512-zwlXH3DN3iksoIZNk73etl1HzKyi5FuQdYLnkQKm5BW4n8HpoG59xSwpVdFrnh60iRRaRBGw0gcymIxjJENPcA== dependencies: - "@jest/test-result" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/test-result" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.4.2" + jest-util "^29.4.3" string-length "^4.0.1" -jest-worker@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.2.tgz#d9b2c3bafc69311d84d94e7fb45677fc8976296f" - integrity sha512-VIuZA2hZmFyRbchsUCHEehoSf2HEl0YVF8SDJqtPnKorAaBuh42V8QsLnde0XP5F6TyCynGPEGgBOn3Fc+wZGw== +jest-worker@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.3.tgz#9a4023e1ea1d306034237c7133d7da4240e8934e" + integrity sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA== dependencies: "@types/node" "*" - jest-util "^29.4.2" + jest-util "^29.4.3" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.4.1: - version "29.4.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.2.tgz#4c2127d03a71dc187f386156ef155dbf323fb7be" - integrity sha512-+5hLd260vNIHu+7ZgMIooSpKl7Jp5pHKb51e73AJU3owd5dEo/RfVwHbA/na3C/eozrt3hJOLGf96c7EWwIAzg== + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.3.tgz#1b8be541666c6feb99990fd98adac4737e6e6386" + integrity sha512-XvK65feuEFGZT8OO0fB/QAQS+LGHvQpaadkH5p47/j3Ocqq3xf2pK9R+G0GzgfuhXVxEv76qCOOcMb5efLk6PA== dependencies: - "@jest/core" "^29.4.2" - "@jest/types" "^29.4.2" + "@jest/core" "^29.4.3" + "@jest/types" "^29.4.3" import-local "^3.0.2" - jest-cli "^29.4.2" + jest-cli "^29.4.3" js-sdsl@^4.1.4: version "4.3.0" @@ -2283,12 +2282,12 @@ prettier@>=3.0.0-alpha.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.4.tgz#eee71d6b520b970f44e4045f2dc772bf6f80815f" integrity sha512-+KeqJv4E5kaRsDRgSx9IeVygLKGHRmcoPvRJvPFp3bC1mw8opsva555gGb8TaJzUiHXoLZcus1EX+nlHPda7Pw== -pretty-format@^29.4.2: - version "29.4.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.2.tgz#64bf5ccc0d718c03027d94ac957bdd32b3fb2401" - integrity sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg== +pretty-format@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c" + integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA== dependencies: - "@jest/schemas" "^29.4.2" + "@jest/schemas" "^29.4.3" ansi-styles "^5.0.0" react-is "^18.0.0" From 00615f56f1a58fa75c1e0fa247e2083a5a829656 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 7 Mar 2023 10:18:19 -0500 Subject: [PATCH 170/262] Bump deps --- package.json | 8 +- yarn.lock | 884 ++++++++++++++++++++++++++------------------------- 2 files changed, 452 insertions(+), 440 deletions(-) diff --git a/package.json b/package.json index 17ac6d29..8da5b9a6 100644 --- a/package.json +++ b/package.json @@ -20,13 +20,13 @@ }, "homepage": "https://github.com/prettier/plugin-ruby#readme", "dependencies": { - "prettier": ">=3.0.0-alpha.2" + "prettier": ">=3.0.0-alpha.6" }, "devDependencies": { - "eslint": "^8.32.0", - "eslint-config-prettier": "^8.0.0", + "eslint": "^8.35.0", + "eslint-config-prettier": "^8.7.0", "husky": "^8.0.1", - "jest": "^29.4.1", + "jest": "^29.5.0", "pretty-quick": "^3.1.2" }, "eslintConfig": { diff --git a/yarn.lock b/yarn.lock index 1280c554..188d364e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.1.0": +"@ampproject/remapping@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== @@ -18,38 +18,39 @@ "@babel/highlight" "^7.18.6" "@babel/compat-data@^7.20.5": - version "7.20.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" - integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" + integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" - integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13" + integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA== dependencies: - "@ampproject/remapping" "^2.1.0" + "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" + "@babel/generator" "^7.21.0" "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" + "@babel/helper-module-transforms" "^7.21.0" + "@babel/helpers" "^7.21.0" + "@babel/parser" "^7.21.0" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.12" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.2" semver "^6.3.0" -"@babel/generator@^7.20.7", "@babel/generator@^7.7.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" - integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== +"@babel/generator@^7.21.0", "@babel/generator@^7.21.1", "@babel/generator@^7.7.2": + version "7.21.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd" + integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.21.0" "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" "@babel/helper-compilation-targets@^7.20.7": @@ -68,13 +69,13 @@ 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-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== +"@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" @@ -90,10 +91,10 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" - integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== +"@babel/helper-module-transforms@^7.21.0": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" + integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" @@ -101,8 +102,8 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.19.1" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.10" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.2" + "@babel/types" "^7.21.2" "@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.19.0", "@babel/helper-plugin-utils@^7.8.0": version "7.20.2" @@ -134,18 +135,18 @@ integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== "@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" + integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== -"@babel/helpers@^7.20.7": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" - integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== +"@babel/helpers@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" + integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== dependencies: "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.13" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" "@babel/highlight@^7.18.6": version "7.18.6" @@ -156,10 +157,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.13.tgz#ddf1eb5a813588d2fb1692b70c6fce75b945c088" - integrity sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0", "@babel/parser@^7.21.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3" + integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -259,7 +260,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": +"@babel/template@^7.20.7", "@babel/template@^7.3.3": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== @@ -268,26 +269,26 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.7.2": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" - integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== +"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.7.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75" + integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" + "@babel/generator" "^7.21.1" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" + "@babel/helper-function-name" "^7.21.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.13" - "@babel/types" "^7.20.7" + "@babel/parser" "^7.21.2" + "@babel/types" "^7.21.2" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" - integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1" + integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -298,10 +299,10 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" - integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== +"@eslint/eslintrc@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff" + integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -313,6 +314,11 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/js@8.35.0": + version "8.35.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7" + integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw== + "@humanwhocodes/config-array@^0.11.8": version "0.11.8" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" @@ -348,109 +354,109 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.3.tgz#1f25a99f7f860e4c46423b5b1038262466fadde1" - integrity sha512-W/o/34+wQuXlgqlPYTansOSiBnuxrTv61dEVkA6HNmpcgHLUjfaUbdqt6oVvOzaawwo9IdW9QOtMgQ1ScSZC4A== +"@jest/console@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57" + integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.4.3" - jest-util "^29.4.3" + jest-message-util "^29.5.0" + jest-util "^29.5.0" slash "^3.0.0" -"@jest/core@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.3.tgz#829dd65bffdb490de5b0f69e97de8e3b5eadd94b" - integrity sha512-56QvBq60fS4SPZCuM7T+7scNrkGIe7Mr6PVIXUpu48ouvRaWOFqRPV91eifvFM0ay2HmfswXiGf97NGUN5KofQ== - dependencies: - "@jest/console" "^29.4.3" - "@jest/reporters" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" +"@jest/core@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" + integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== + dependencies: + "@jest/console" "^29.5.0" + "@jest/reporters" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@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.4.3" - jest-config "^29.4.3" - jest-haste-map "^29.4.3" - jest-message-util "^29.4.3" + jest-changed-files "^29.5.0" + jest-config "^29.5.0" + jest-haste-map "^29.5.0" + jest-message-util "^29.5.0" jest-regex-util "^29.4.3" - jest-resolve "^29.4.3" - jest-resolve-dependencies "^29.4.3" - jest-runner "^29.4.3" - jest-runtime "^29.4.3" - jest-snapshot "^29.4.3" - jest-util "^29.4.3" - jest-validate "^29.4.3" - jest-watcher "^29.4.3" + jest-resolve "^29.5.0" + jest-resolve-dependencies "^29.5.0" + jest-runner "^29.5.0" + jest-runtime "^29.5.0" + jest-snapshot "^29.5.0" + jest-util "^29.5.0" + jest-validate "^29.5.0" + jest-watcher "^29.5.0" micromatch "^4.0.4" - pretty-format "^29.4.3" + pretty-format "^29.5.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.3.tgz#9fe2f3169c3b33815dc4bd3960a064a83eba6548" - integrity sha512-dq5S6408IxIa+lr54zeqce+QgI+CJT4nmmA+1yzFgtcsGK8c/EyiUb9XQOgz3BMKrRDfKseeOaxj2eO8LlD3lA== +"@jest/environment@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" + integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== dependencies: - "@jest/fake-timers" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/fake-timers" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" - jest-mock "^29.4.3" + jest-mock "^29.5.0" -"@jest/expect-utils@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.3.tgz#95ce4df62952f071bcd618225ac7c47eaa81431e" - integrity sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ== +"@jest/expect-utils@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" + integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.3.tgz#d31a28492e45a6bcd0f204a81f783fe717045c6e" - integrity sha512-iktRU/YsxEtumI9zsPctYUk7ptpC+AVLLk1Ax3AsA4g1C+8OOnKDkIQBDHtD5hA/+VtgMd5AWI5gNlcAlt2vxQ== +"@jest/expect@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" + integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== dependencies: - expect "^29.4.3" - jest-snapshot "^29.4.3" + expect "^29.5.0" + jest-snapshot "^29.5.0" -"@jest/fake-timers@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.3.tgz#31e982638c60fa657d310d4b9d24e023064027b0" - integrity sha512-4Hote2MGcCTWSD2gwl0dwbCpBRHhE6olYEuTj8FMowdg3oQWNKr2YuxenPQYZ7+PfqPY1k98wKDU4Z+Hvd4Tiw== +"@jest/fake-timers@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" + integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.4.3" - jest-mock "^29.4.3" - jest-util "^29.4.3" + jest-message-util "^29.5.0" + jest-mock "^29.5.0" + jest-util "^29.5.0" -"@jest/globals@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.3.tgz#63a2c4200d11bc6d46f12bbe25b07f771fce9279" - integrity sha512-8BQ/5EzfOLG7AaMcDh7yFCbfRLtsc+09E1RQmRBI4D6QQk4m6NSK/MXo+3bJrBN0yU8A2/VIcqhvsOLFmziioA== +"@jest/globals@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" + integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== dependencies: - "@jest/environment" "^29.4.3" - "@jest/expect" "^29.4.3" - "@jest/types" "^29.4.3" - jest-mock "^29.4.3" + "@jest/environment" "^29.5.0" + "@jest/expect" "^29.5.0" + "@jest/types" "^29.5.0" + jest-mock "^29.5.0" -"@jest/reporters@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.3.tgz#0a68a0c0f20554760cc2e5443177a0018969e353" - integrity sha512-sr2I7BmOjJhyqj9ANC6CTLsL4emMoka7HkQpcoMRlhCbQJjz2zsRzw0BDPiPyEFDXAbxKgGFYuQZiSJ1Y6YoTg== +"@jest/reporters@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" + integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/console" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -463,9 +469,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.4.3" - jest-util "^29.4.3" - jest-worker "^29.4.3" + jest-message-util "^29.5.0" + jest-util "^29.5.0" + jest-worker "^29.5.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -487,51 +493,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.3.tgz#e13d973d16c8c7cc0c597082d5f3b9e7f796ccb8" - integrity sha512-Oi4u9NfBolMq9MASPwuWTlC5WvmNRwI4S8YrQg5R5Gi47DYlBe3sh7ILTqi/LGrK1XUE4XY9KZcQJTH1WJCLLA== +"@jest/test-result@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408" + integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== dependencies: - "@jest/console" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/console" "^29.5.0" + "@jest/types" "^29.5.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.3.tgz#0862e876a22993385a0f3e7ea1cc126f208a2898" - integrity sha512-yi/t2nES4GB4G0mjLc0RInCq/cNr9dNwJxcGg8sslajua5Kb4kmozAc+qPLzplhBgfw1vLItbjyHzUN92UXicw== +"@jest/test-sequencer@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" + integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ== dependencies: - "@jest/test-result" "^29.4.3" + "@jest/test-result" "^29.5.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.3" + jest-haste-map "^29.5.0" slash "^3.0.0" -"@jest/transform@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.3.tgz#f7d17eac9cb5bb2e1222ea199c7c7e0835e0c037" - integrity sha512-8u0+fBGWolDshsFgPQJESkDa72da/EVwvL+II0trN2DR66wMwiQ9/CihaGfHdlLGFzbBZwMykFtxuwFdZqlKwg== +"@jest/transform@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" + integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@jridgewell/trace-mapping" "^0.3.15" 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 "^29.4.3" + jest-haste-map "^29.5.0" jest-regex-util "^29.4.3" - jest-util "^29.4.3" + jest-util "^29.5.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f" - integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA== +"@jest/types@^29.5.0": + version "29.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" + integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== dependencies: "@jest/schemas" "^29.4.3" "@types/istanbul-lib-coverage" "^2.0.0" @@ -572,7 +578,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -602,9 +608,9 @@ fastq "^1.6.0" "@sinclair/typebox@^0.25.16": - version "0.25.21" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272" - integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g== + version "0.25.24" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" + integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== "@sinonjs/commons@^2.0.0": version "2.0.0" @@ -685,9 +691,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "18.11.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" - integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== + version "18.14.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.6.tgz#ae1973dd2b1eeb1825695bb11ebfb746d27e3e93" + integrity sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA== "@types/prettier@^2.1.5": version "2.7.2" @@ -705,9 +711,9 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.8": - version "17.0.20" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.20.tgz#107f0fcc13bd4a524e352b41c49fe88aab5c54d5" - integrity sha512-eknWrTHofQuPk2iuqDm1waA7V6xPlbgBoaaXEgYkClhLOnB0TtbW+srJaOToAgawPxPlHQzwypFA2bhZaUGP5A== + version "17.0.22" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.22.tgz#7dd37697691b5f17d020f3c63e7a45971ff71e9a" + integrity sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g== dependencies: "@types/yargs-parser" "*" @@ -797,15 +803,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.3.tgz#478b84d430972b277ad67dd631be94abea676792" - integrity sha512-o45Wyn32svZE+LnMVWv/Z4x0SwtLbh4FyGcYtR20kIWd+rdrDZ9Fzq8Ml3MYLD+mZvEdzCjZsCnYZ2jpJyQ+Nw== +babel-jest@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" + integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q== dependencies: - "@jest/transform" "^29.4.3" + "@jest/transform" "^29.5.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.4.3" + babel-preset-jest "^29.5.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -821,10 +827,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.3.tgz#ad1dfb5d31940957e00410ef7d9b2aa94b216101" - integrity sha512-mB6q2q3oahKphy5V7CpnNqZOCkxxZ9aokf1eh82Dy3jQmg4xvM1tGrh5y6BQUJh4a3Pj9+eLfwvAZ7VNKg7H8Q== +babel-plugin-jest-hoist@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" + integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -849,12 +855,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.3.tgz#bb926b66ae253b69c6e3ef87511b8bb5c53c5b52" - integrity sha512-gWx6COtSuma6n9bw+8/F+2PCXrIgxV/D1TJFnp6OyBK2cxPWg0K9p/sriNYeifKjpUkMViWQ09DSWtzJQRETsw== +babel-preset-jest@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" + integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== dependencies: - babel-plugin-jest-hoist "^29.4.3" + babel-plugin-jest-hoist "^29.5.0" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -878,14 +884,14 @@ braces@^3.0.2: fill-range "^7.0.1" browserslist@^4.21.3: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + version "4.21.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" bser@2.1.1: version "2.1.1" @@ -914,10 +920,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001400: - version "1.0.30001448" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz#ca7550b1587c92a392a2b377cd9c508b3b4395bf" - integrity sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA== +caniuse-lite@^1.0.30001449: + version "1.0.30001462" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz#b2e801e37536d453731286857c8520d3dcee15fe" + integrity sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw== chalk@^2.0.0: version "2.4.2" @@ -950,9 +956,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== ci-info@^3.2.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f" - integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w== + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== cjs-module-lexer@^1.0.0: version "1.2.2" @@ -1044,9 +1050,9 @@ deep-is@^0.1.3: integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + version "4.3.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" + integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== detect-newline@^3.0.0: version "3.1.0" @@ -1065,10 +1071,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== +electron-to-chromium@^1.4.284: + version "1.4.322" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.322.tgz#e0afa1d115b66c1d47869db40d8f2f3729cecc16" + integrity sha512-KovjizNC9XB7dno/2GjxX8VS0SlfPpCjtyoKft+bCO+UfD8bFy16hY4Sh9s0h9BDxbRH2U0zX5VBjpM1LTcNlg== emittery@^0.13.1: version "0.13.1" @@ -1114,10 +1120,10 @@ 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== -eslint-config-prettier@^8.0.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" - integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== +eslint-config-prettier@^8.7.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.7.0.tgz#f1cc58a8afebc50980bd53475451df146c13182d" + integrity sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA== eslint-scope@^7.1.1: version "7.1.1" @@ -1144,12 +1150,13 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.32.0: - version "8.34.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.34.0.tgz#fe0ab0ef478104c1f9ebc5537e303d25a8fb22d6" - integrity sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg== +eslint@^8.35.0: + version "8.35.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323" + integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw== dependencies: - "@eslint/eslintrc" "^1.4.1" + "@eslint/eslintrc" "^2.0.0" + "@eslint/js" "8.35.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -1163,7 +1170,7 @@ eslint@^8.32.0: eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" espree "^9.4.0" - esquery "^1.4.0" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" @@ -1203,10 +1210,10 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -1262,16 +1269,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.3.tgz#5e47757316df744fe3b8926c3ae8a3ebdafff7fe" - integrity sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg== +expect@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" + integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== dependencies: - "@jest/expect-utils" "^29.4.3" + "@jest/expect-utils" "^29.5.0" jest-get-type "^29.4.3" - jest-matcher-utils "^29.4.3" - jest-message-util "^29.4.3" - jest-util "^29.4.3" + jest-matcher-utils "^29.5.0" + jest-message-util "^29.5.0" + jest-util "^29.5.0" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1412,9 +1419,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.19.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" - integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" @@ -1600,94 +1607,95 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.3.tgz#7961fe32536b9b6d5c28dfa0abcfab31abcf50a7" - integrity sha512-Vn5cLuWuwmi2GNNbokPOEcvrXGSGrqVnPEZV7rC6P7ck07Dyw9RFnvWglnupSh+hGys0ajGtw/bc2ZgweljQoQ== +jest-changed-files@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" + integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.3.tgz#fff7be1cf5f06224dd36a857d52a9efeb005ba04" - integrity sha512-Vw/bVvcexmdJ7MLmgdT3ZjkJ3LKu8IlpefYokxiqoZy6OCQ2VAm6Vk3t/qHiAGUXbdbJKJWnc8gH3ypTbB/OBw== +jest-circus@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" + integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA== dependencies: - "@jest/environment" "^29.4.3" - "@jest/expect" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/environment" "^29.5.0" + "@jest/expect" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.4.3" - jest-matcher-utils "^29.4.3" - jest-message-util "^29.4.3" - jest-runtime "^29.4.3" - jest-snapshot "^29.4.3" - jest-util "^29.4.3" + jest-each "^29.5.0" + jest-matcher-utils "^29.5.0" + jest-message-util "^29.5.0" + jest-runtime "^29.5.0" + jest-snapshot "^29.5.0" + jest-util "^29.5.0" p-limit "^3.1.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" + pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.3.tgz#fe31fdd0c90c765f392b8b7c97e4845071cd2163" - integrity sha512-PiiAPuFNfWWolCE6t3ZrDXQc6OsAuM3/tVW0u27UWc1KE+n/HSn5dSE6B2juqN7WP+PP0jAcnKtGmI4u8GMYCg== +jest-cli@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" + integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== dependencies: - "@jest/core" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/core" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.4.3" - jest-util "^29.4.3" - jest-validate "^29.4.3" + jest-config "^29.5.0" + jest-util "^29.5.0" + jest-validate "^29.5.0" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.3.tgz#fca9cdfe6298ae6d04beef1624064d455347c978" - integrity sha512-eCIpqhGnIjdUCXGtLhz4gdDoxKSWXKjzNcc5r+0S1GKOp2fwOipx5mRcwa9GB/ArsxJ1jlj2lmlD9bZAsBxaWQ== +jest-config@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" + integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.4.3" - "@jest/types" "^29.4.3" - babel-jest "^29.4.3" + "@jest/test-sequencer" "^29.5.0" + "@jest/types" "^29.5.0" + babel-jest "^29.5.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.4.3" - jest-environment-node "^29.4.3" + jest-circus "^29.5.0" + jest-environment-node "^29.5.0" jest-get-type "^29.4.3" jest-regex-util "^29.4.3" - jest-resolve "^29.4.3" - jest-runner "^29.4.3" - jest-util "^29.4.3" - jest-validate "^29.4.3" + jest-resolve "^29.5.0" + jest-runner "^29.5.0" + jest-util "^29.5.0" + jest-validate "^29.5.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.3.tgz#42f4eb34d0bf8c0fb08b0501069b87e8e84df347" - integrity sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA== +jest-diff@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" + integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== dependencies: chalk "^4.0.0" diff-sequences "^29.4.3" jest-get-type "^29.4.3" - pretty-format "^29.4.3" + pretty-format "^29.5.0" jest-docblock@^29.4.3: version "29.4.3" @@ -1696,94 +1704,94 @@ jest-docblock@^29.4.3: dependencies: detect-newline "^3.0.0" -jest-each@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.3.tgz#a434c199a2f6151c5e3dc80b2d54586bdaa72819" - integrity sha512-1ElHNAnKcbJb/b+L+7j0/w7bDvljw4gTv1wL9fYOczeJrbTbkMGQ5iQPFJ3eFQH19VPTx1IyfePdqSpePKss7Q== +jest-each@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" + integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" chalk "^4.0.0" jest-get-type "^29.4.3" - jest-util "^29.4.3" - pretty-format "^29.4.3" + jest-util "^29.5.0" + pretty-format "^29.5.0" -jest-environment-node@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.3.tgz#579c4132af478befc1889ddc43c2413a9cdbe014" - integrity sha512-gAiEnSKF104fsGDXNkwk49jD/0N0Bqu2K9+aMQXA6avzsA9H3Fiv1PW2D+gzbOSR705bWd2wJZRFEFpV0tXISg== +jest-environment-node@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" + integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw== dependencies: - "@jest/environment" "^29.4.3" - "@jest/fake-timers" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/environment" "^29.5.0" + "@jest/fake-timers" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" - jest-mock "^29.4.3" - jest-util "^29.4.3" + jest-mock "^29.5.0" + jest-util "^29.5.0" jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.3.tgz#085a44283269e7ace0645c63a57af0d2af6942e2" - integrity sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ== +jest-haste-map@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" + integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.4.3" - jest-util "^29.4.3" - jest-worker "^29.4.3" + jest-util "^29.5.0" + jest-worker "^29.5.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.3.tgz#2b35191d6b35aa0256e63a9b79b0f949249cf23a" - integrity sha512-9yw4VC1v2NspMMeV3daQ1yXPNxMgCzwq9BocCwYrRgXe4uaEJPAN0ZK37nFBhcy3cUwEVstFecFLaTHpF7NiGA== +jest-leak-detector@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" + integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow== dependencies: jest-get-type "^29.4.3" - pretty-format "^29.4.3" + pretty-format "^29.5.0" -jest-matcher-utils@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz#ea68ebc0568aebea4c4213b99f169ff786df96a0" - integrity sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg== +jest-matcher-utils@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" + integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== dependencies: chalk "^4.0.0" - jest-diff "^29.4.3" + jest-diff "^29.5.0" jest-get-type "^29.4.3" - pretty-format "^29.4.3" + pretty-format "^29.5.0" -jest-message-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.3.tgz#65b5280c0fdc9419503b49d4f48d4999d481cb5b" - integrity sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw== +jest-message-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" + integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.4.3" + pretty-format "^29.5.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.3.tgz#23d84a20a74cdfff0510fdbeefb841ed57b0fe7e" - integrity sha512-LjFgMg+xed9BdkPMyIJh+r3KeHt1klXPJYBULXVVAkbTaaKjPX1o1uVCAZADMEp/kOxGTwy/Ot8XbvgItOrHEg== +jest-mock@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" + integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@types/node" "*" - jest-util "^29.4.3" + jest-util "^29.5.0" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -1795,88 +1803,88 @@ jest-regex-util@^29.4.3: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve-dependencies@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.3.tgz#9ad7f23839a6d88cef91416bda9393a6e9fd1da5" - integrity sha512-uvKMZAQ3nmXLH7O8WAOhS5l0iWyT3WmnJBdmIHiV5tBbdaDZ1wqtNX04FONGoaFvSOSHBJxnwAVnSn1WHdGVaw== +jest-resolve-dependencies@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" + integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg== dependencies: jest-regex-util "^29.4.3" - jest-snapshot "^29.4.3" + jest-snapshot "^29.5.0" -jest-resolve@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.3.tgz#3c5b5c984fa8a763edf9b3639700e1c7900538e2" - integrity sha512-GPokE1tzguRyT7dkxBim4wSx6E45S3bOQ7ZdKEG+Qj0Oac9+6AwJPCk0TZh5Vu0xzeX4afpb+eDmgbmZFFwpOw== +jest-resolve@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" + integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.4.3" + jest-haste-map "^29.5.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.4.3" - jest-validate "^29.4.3" + jest-util "^29.5.0" + jest-validate "^29.5.0" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.3.tgz#68dc82c68645eda12bea42b5beece6527d7c1e5e" - integrity sha512-GWPTEiGmtHZv1KKeWlTX9SIFuK19uLXlRQU43ceOQ2hIfA5yPEJC7AMkvFKpdCHx6pNEdOD+2+8zbniEi3v3gA== - dependencies: - "@jest/console" "^29.4.3" - "@jest/environment" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" +jest-runner@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" + integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ== + dependencies: + "@jest/console" "^29.5.0" + "@jest/environment" "^29.5.0" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.4.3" - jest-environment-node "^29.4.3" - jest-haste-map "^29.4.3" - jest-leak-detector "^29.4.3" - jest-message-util "^29.4.3" - jest-resolve "^29.4.3" - jest-runtime "^29.4.3" - jest-util "^29.4.3" - jest-watcher "^29.4.3" - jest-worker "^29.4.3" + jest-environment-node "^29.5.0" + jest-haste-map "^29.5.0" + jest-leak-detector "^29.5.0" + jest-message-util "^29.5.0" + jest-resolve "^29.5.0" + jest-runtime "^29.5.0" + jest-util "^29.5.0" + jest-watcher "^29.5.0" + jest-worker "^29.5.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.3.tgz#f25db9874dcf35a3ab27fdaabca426666cc745bf" - integrity sha512-F5bHvxSH+LvLV24vVB3L8K467dt3y3dio6V3W89dUz9nzvTpqd/HcT9zfYKL2aZPvD63vQFgLvaUX/UpUhrP6Q== +jest-runtime@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420" + integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw== dependencies: - "@jest/environment" "^29.4.3" - "@jest/fake-timers" "^29.4.3" - "@jest/globals" "^29.4.3" + "@jest/environment" "^29.5.0" + "@jest/fake-timers" "^29.5.0" + "@jest/globals" "^29.5.0" "@jest/source-map" "^29.4.3" - "@jest/test-result" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/test-result" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@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.4.3" - jest-message-util "^29.4.3" - jest-mock "^29.4.3" + jest-haste-map "^29.5.0" + jest-message-util "^29.5.0" + jest-mock "^29.5.0" jest-regex-util "^29.4.3" - jest-resolve "^29.4.3" - jest-snapshot "^29.4.3" - jest-util "^29.4.3" + jest-resolve "^29.5.0" + jest-snapshot "^29.5.0" + jest-util "^29.5.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.3.tgz#183d309371450d9c4a3de7567ed2151eb0e91145" - integrity sha512-NGlsqL0jLPDW91dz304QTM/SNO99lpcSYYAjNiX0Ou+sSGgkanKBcSjCfp/pqmiiO1nQaOyLp6XQddAzRcx3Xw== +jest-snapshot@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" + integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -1884,82 +1892,81 @@ jest-snapshot@^29.4.3: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.4.3" - "@jest/transform" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/expect-utils" "^29.5.0" + "@jest/transform" "^29.5.0" + "@jest/types" "^29.5.0" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.4.3" + expect "^29.5.0" graceful-fs "^4.2.9" - jest-diff "^29.4.3" + jest-diff "^29.5.0" jest-get-type "^29.4.3" - jest-haste-map "^29.4.3" - jest-matcher-utils "^29.4.3" - jest-message-util "^29.4.3" - jest-util "^29.4.3" + jest-matcher-utils "^29.5.0" + jest-message-util "^29.5.0" + jest-util "^29.5.0" natural-compare "^1.4.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" semver "^7.3.5" -jest-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496" - integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q== +jest-util@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" + integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.3.tgz#a13849dec4f9e95446a7080ad5758f58fa88642f" - integrity sha512-J3u5v7aPQoXPzaar6GndAVhdQcZr/3osWSgTeKg5v574I9ybX/dTyH0AJFb5XgXIB7faVhf+rS7t4p3lL9qFaw== +jest-validate@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" + integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== dependencies: - "@jest/types" "^29.4.3" + "@jest/types" "^29.5.0" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.4.3" + pretty-format "^29.5.0" -jest-watcher@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.3.tgz#e503baa774f0c2f8f3c8db98a22ebf885f19c384" - integrity sha512-zwlXH3DN3iksoIZNk73etl1HzKyi5FuQdYLnkQKm5BW4n8HpoG59xSwpVdFrnh60iRRaRBGw0gcymIxjJENPcA== +jest-watcher@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363" + integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA== dependencies: - "@jest/test-result" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/test-result" "^29.5.0" + "@jest/types" "^29.5.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.4.3" + jest-util "^29.5.0" string-length "^4.0.1" -jest-worker@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.3.tgz#9a4023e1ea1d306034237c7133d7da4240e8934e" - integrity sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA== +jest-worker@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" + integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== dependencies: "@types/node" "*" - jest-util "^29.4.3" + jest-util "^29.5.0" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.4.1: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.3.tgz#1b8be541666c6feb99990fd98adac4737e6e6386" - integrity sha512-XvK65feuEFGZT8OO0fB/QAQS+LGHvQpaadkH5p47/j3Ocqq3xf2pK9R+G0GzgfuhXVxEv76qCOOcMb5efLk6PA== +jest@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" + integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ== dependencies: - "@jest/core" "^29.4.3" - "@jest/types" "^29.4.3" + "@jest/core" "^29.5.0" + "@jest/types" "^29.5.0" import-local "^3.0.2" - jest-cli "^29.4.3" + jest-cli "^29.5.0" js-sdsl@^4.1.4: version "4.3.0" @@ -2137,10 +2144,10 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.6: - version "2.0.8" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" - integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== +node-releases@^2.0.8: + version "2.0.10" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" + integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== normalize-path@^3.0.0: version "3.0.0" @@ -2277,15 +2284,15 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@>=3.0.0-alpha.2: - version "3.0.0-alpha.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.4.tgz#eee71d6b520b970f44e4045f2dc772bf6f80815f" - integrity sha512-+KeqJv4E5kaRsDRgSx9IeVygLKGHRmcoPvRJvPFp3bC1mw8opsva555gGb8TaJzUiHXoLZcus1EX+nlHPda7Pw== +prettier@>=3.0.0-alpha.6: + version "3.0.0-alpha.6" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.6.tgz#c562f9f54966aff792c6920e6a29fbffd1ae07b6" + integrity sha512-AdbQSZ6Oo+iy9Ekzmsgno05P1uX2vqPkjOMJqRfP8hTe+m6iDw4Nt7bPFpWZ/HYCU+3f0P5U0o2ghxQwwkLH7A== -pretty-format@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c" - integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA== +pretty-format@^29.5.0: + version "29.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" + integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== dependencies: "@jest/schemas" "^29.4.3" ansi-styles "^5.0.0" @@ -2324,6 +2331,11 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +pure-rand@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.0.tgz#701996ceefa253507923a0e864c17ab421c04a7c" + integrity sha512-rLSBxJjP+4DQOgcJAx6RZHT2he2pkhQdSnofG5VWyVl6GRq/K02ISOuOLcsMOrtKDIJb8JN2zm3FFzWNbezdPw== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -2362,9 +2374,9 @@ resolve-from@^5.0.0: integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve.exports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e" - integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.1.tgz#cee884cd4e3f355660e501fa3276b27d7ffe5a20" + integrity sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw== resolve@^1.20.0: version "1.22.1" @@ -2576,7 +2588,7 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -update-browserslist-db@^1.0.9: +update-browserslist-db@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== @@ -2592,9 +2604,9 @@ uri-js@^4.2.2: punycode "^2.1.0" v8-to-istanbul@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" - integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== + version "9.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" + integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" @@ -2662,9 +2674,9 @@ yargs-parser@^21.1.1: integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.3.1: - version "17.6.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== + version "17.7.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" + integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== dependencies: cliui "^8.0.1" escalade "^3.1.1" From 7fb4df3d0d3b1e733b56b82ac22f00847389124c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Mar 2023 15:24:33 +0000 Subject: [PATCH 171/262] Bump actions/setup-node from 2 to 3 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2 to 3. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d3d95106..bfb14f96 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -69,7 +69,7 @@ jobs: # bundler-cache: true # ruby-version: "3.1" # - run: gem install syntax_tree syntax_tree-haml syntax_tree-rbs - # - uses: actions/setup-node@v2 + # - uses: actions/setup-node@v3 # with: # node-version: 18.x # cache: yarn @@ -100,7 +100,7 @@ jobs: with: bundler-cache: true ruby-version: "3.1" - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v3 with: node-version: 16.x cache: yarn From 5e74dd1cc9608d2cf4085428008edac7ab0a2f51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 12:56:40 +0000 Subject: [PATCH 172/262] Bump eslint from 8.35.0 to 8.36.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.35.0 to 8.36.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.35.0...v8.36.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 73 ++++++++++++++++++++++++++----------------------------- 1 file changed, 34 insertions(+), 39 deletions(-) diff --git a/yarn.lock b/yarn.lock index 188d364e..d4d9bbfc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -299,14 +299,26 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@eslint/eslintrc@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff" - integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A== +"@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" + integrity sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403" + integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ== + +"@eslint/eslintrc@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz#7888fe7ec8f21bc26d646dbd2c11cd776e21192d" + integrity sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.4.0" + espree "^9.5.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -314,10 +326,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7" - integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw== +"@eslint/js@8.36.0": + version "8.36.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.36.0.tgz#9837f768c03a1e4a30bd304a64fb8844f0e72efe" + integrity sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -1133,30 +1145,20 @@ eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - eslint-visitor-keys@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.35.0: - version "8.35.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323" - integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw== - dependencies: - "@eslint/eslintrc" "^2.0.0" - "@eslint/js" "8.35.0" + version "8.36.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.36.0.tgz#1bd72202200a5492f91803b113fb8a83b11285cf" + integrity sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.4.0" + "@eslint/eslintrc" "^2.0.1" + "@eslint/js" "8.36.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -1167,9 +1169,8 @@ eslint@^8.35.0: doctrine "^3.0.0" escape-string-regexp "^4.0.0" eslint-scope "^7.1.1" - eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.4.0" + espree "^9.5.0" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -1191,15 +1192,14 @@ eslint@^8.35.0: minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.1" - regexpp "^3.2.0" strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.4.0: - version "9.4.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" - integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== +espree@^9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.0.tgz#3646d4e3f58907464edba852fa047e6a27bdf113" + integrity sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" @@ -2346,11 +2346,6 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" From cbab69665b55126901e097a9bd11aeb7fd39fdcd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 13:49:54 +0000 Subject: [PATCH 173/262] Bump eslint-config-prettier from 8.7.0 to 8.8.0 Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.7.0 to 8.8.0. - [Release notes](https://github.com/prettier/eslint-config-prettier/releases) - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.7.0...v8.8.0) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d4d9bbfc..ac377901 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1133,9 +1133,9 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.7.0.tgz#f1cc58a8afebc50980bd53475451df146c13182d" - integrity sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA== + version "8.8.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" + integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== eslint-scope@^7.1.1: version "7.1.1" From 61ef8d9fc63c7d79a8e12522d31d599823981c64 Mon Sep 17 00:00:00 2001 From: David Alejandro <15317732+davidalejandroaguilar@users.noreply.github.com> Date: Fri, 24 Mar 2023 15:29:01 -0700 Subject: [PATCH 174/262] Support passing a custom Ruby executable path via `rubyExecutablePath` option --- README.md | 6 ++++++ src/plugin.js | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c27eeee0..c8615c5e 100644 --- a/README.md +++ b/README.md @@ -160,6 +160,12 @@ For [supported editor integrations](https://github.com/prettier/prettier/blob/ma Refer to [this issue](https://github.com/prettier/plugin-ruby/issues/113#issuecomment-783426539) if you're having difficulties. +Additional options: + +| Options | Default | Description | +| ----------------- | --------------------- | :-----: | +|`rubyExecutablePath`|`"ruby"`|Allows you to configure your Ruby executable path.| + ## Contributing Thanks so much for your interest in contributing! You can contribute in many ways, including: diff --git a/src/plugin.js b/src/plugin.js index 0fbb7dbb..0df039bf 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -84,7 +84,7 @@ export async function spawnServer(opts, killOnExit = true) { const filepath = path.join(tmpdir, `prettier-ruby-parser-${process.pid}.txt`); const server = spawn( - "ruby", + opts.rubyExecutablePath, [serverFilepath, `--plugins=${getPlugins(opts).join(",")}`, filepath], { env: Object.assign({}, process.env, { LANG: getLang() }), @@ -345,7 +345,7 @@ const plugin = { type: "string", category: "Ruby", default: "", - description: "The comma-separated list of plugins to require", + description: "The comma-separated list of plugins to require.", since: "3.1.0" }, rubySingleQuote: { @@ -355,6 +355,13 @@ const plugin = { description: "When double quotes are not necessary for interpolation, prefers the use of single quotes for string literals.", since: "1.0.0" + }, + rubyExecutablePath: { + type: "string", + category: "Ruby", + default: "ruby", + description: "The path to the Ruby executable to use to run the formatter.", + since: "3.3.0" } }, defaultOptions: { From bb99ef3a43d1286bbe8807ef13293e6f6785f425 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 12:56:46 +0000 Subject: [PATCH 175/262] Bump eslint from 8.36.0 to 8.37.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.36.0 to 8.37.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.36.0...v8.37.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/yarn.lock b/yarn.lock index ac377901..5f958ab5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -311,14 +311,14 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403" integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ== -"@eslint/eslintrc@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz#7888fe7ec8f21bc26d646dbd2c11cd776e21192d" - integrity sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw== +"@eslint/eslintrc@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz#01575e38707add677cf73ca1589abba8da899a02" + integrity sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.5.0" + espree "^9.5.1" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -326,10 +326,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.36.0": - version "8.36.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.36.0.tgz#9837f768c03a1e4a30bd304a64fb8844f0e72efe" - integrity sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg== +"@eslint/js@8.37.0": + version "8.37.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.37.0.tgz#cf1b5fa24217fe007f6487a26d765274925efa7d" + integrity sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -1145,20 +1145,20 @@ eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" + integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== eslint@^8.35.0: - version "8.36.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.36.0.tgz#1bd72202200a5492f91803b113fb8a83b11285cf" - integrity sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw== + version "8.37.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.37.0.tgz#1f660ef2ce49a0bfdec0b0d698e0b8b627287412" + integrity sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.1" - "@eslint/js" "8.36.0" + "@eslint/eslintrc" "^2.0.2" + "@eslint/js" "8.37.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -1169,8 +1169,8 @@ eslint@^8.35.0: doctrine "^3.0.0" escape-string-regexp "^4.0.0" eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.5.0" + eslint-visitor-keys "^3.4.0" + espree "^9.5.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -1196,14 +1196,14 @@ eslint@^8.35.0: strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.5.0: - version "9.5.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.0.tgz#3646d4e3f58907464edba852fa047e6a27bdf113" - integrity sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw== +espree@^9.5.1: + version "9.5.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" + integrity sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" + eslint-visitor-keys "^3.4.0" esprima@^4.0.0: version "4.0.1" From 7f188d7ae0a00f65847bac9a1f547e527724b8d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Apr 2023 12:56:44 +0000 Subject: [PATCH 176/262] Bump eslint from 8.37.0 to 8.38.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.37.0 to 8.38.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.37.0...v8.38.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5f958ab5..63827b03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -326,10 +326,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.37.0": - version "8.37.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.37.0.tgz#cf1b5fa24217fe007f6487a26d765274925efa7d" - integrity sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A== +"@eslint/js@8.38.0": + version "8.38.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.38.0.tgz#73a8a0d8aa8a8e6fe270431c5e72ae91b5337892" + integrity sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -1151,14 +1151,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== eslint@^8.35.0: - version "8.37.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.37.0.tgz#1f660ef2ce49a0bfdec0b0d698e0b8b627287412" - integrity sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw== + version "8.38.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.38.0.tgz#a62c6f36e548a5574dd35728ac3c6209bd1e2f1a" + integrity sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" "@eslint/eslintrc" "^2.0.2" - "@eslint/js" "8.37.0" + "@eslint/js" "8.38.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" From d40d4f3ed683f699d8addd0fe6125ae21de0dd25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Apr 2023 13:03:24 +0000 Subject: [PATCH 177/262] Bump dependabot/fetch-metadata from 1.3.6 to 1.4.0 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.3.6 to 1.4.0. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.3.6...v1.4.0) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index e54c9100..85e9fdb7 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v1.3.6 + uses: dependabot/fetch-metadata@v1.4.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Enable auto-merge for Dependabot PRs From cfb433e67899208007f405a834386371c34e0d5a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Apr 2023 12:56:44 +0000 Subject: [PATCH 178/262] Bump eslint from 8.38.0 to 8.39.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.38.0 to 8.39.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.38.0...v8.39.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index 63827b03..681db70b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -326,10 +326,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.38.0": - version "8.38.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.38.0.tgz#73a8a0d8aa8a8e6fe270431c5e72ae91b5337892" - integrity sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g== +"@eslint/js@8.39.0": + version "8.39.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.39.0.tgz#58b536bcc843f4cd1e02a7e6171da5c040f4d44b" + integrity sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -1137,10 +1137,10 @@ eslint-config-prettier@^8.7.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== +eslint-scope@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" + integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -1151,14 +1151,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== eslint@^8.35.0: - version "8.38.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.38.0.tgz#a62c6f36e548a5574dd35728ac3c6209bd1e2f1a" - integrity sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg== + version "8.39.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.39.0.tgz#7fd20a295ef92d43809e914b70c39fd5a23cf3f1" + integrity sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" "@eslint/eslintrc" "^2.0.2" - "@eslint/js" "8.38.0" + "@eslint/js" "8.39.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -1168,7 +1168,7 @@ eslint@^8.35.0: debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" + eslint-scope "^7.2.0" eslint-visitor-keys "^3.4.0" espree "^9.5.1" esquery "^1.4.2" From 7e009f0110e5e913e5b16206c72fb305ab2d1896 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Apr 2023 12:56:58 +0000 Subject: [PATCH 179/262] Bump prettier from 3.0.0-alpha.6 to 3.0.0-alpha.10 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0-alpha.6 to 3.0.0-alpha.10. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/commits) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 63827b03..95e62541 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2285,9 +2285,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@>=3.0.0-alpha.6: - version "3.0.0-alpha.6" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.6.tgz#c562f9f54966aff792c6920e6a29fbffd1ae07b6" - integrity sha512-AdbQSZ6Oo+iy9Ekzmsgno05P1uX2vqPkjOMJqRfP8hTe+m6iDw4Nt7bPFpWZ/HYCU+3f0P5U0o2ghxQwwkLH7A== + version "3.0.0-alpha.10" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.10.tgz#70f3d4a5cec61c7d7cc3576da020f799d9428b44" + integrity sha512-/mlmcS2qsidHpkGef6WZ+N9AtYmT80+pJHvolUNsydJbJCJNj+aXtSJoK77BZ0aLMpLWxs577EN9o6JXvEMfUA== pretty-format@^29.5.0: version "29.5.0" From fc7127204a734da39168cc7ddb7f6046ec9d0572 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 12:56:42 +0000 Subject: [PATCH 180/262] Bump prettier from 3.0.0-alpha.10 to 3.0.0-alpha.11 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0-alpha.10 to 3.0.0-alpha.11. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/commits) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 36277de9..8c7968fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2285,9 +2285,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@>=3.0.0-alpha.6: - version "3.0.0-alpha.10" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.10.tgz#70f3d4a5cec61c7d7cc3576da020f799d9428b44" - integrity sha512-/mlmcS2qsidHpkGef6WZ+N9AtYmT80+pJHvolUNsydJbJCJNj+aXtSJoK77BZ0aLMpLWxs577EN9o6JXvEMfUA== + version "3.0.0-alpha.11" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.11.tgz#fb6f9c7b4495fcc8c70b6633de885bf38b8585af" + integrity sha512-/x61/kcsjjU8kUEDKnn8PtqRzMXROg68KbUOtRC09oOQ3Vs6Bjwz7tabF98xu/K/RP/jZzWIvxphWr881DaokQ== pretty-format@^29.5.0: version "29.5.0" From 420a827a7f81567b2f913cffef74dd79c188b464 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 May 2023 12:56:43 +0000 Subject: [PATCH 181/262] Bump eslint from 8.39.0 to 8.40.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.39.0 to 8.40.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.39.0...v8.40.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8c7968fc..3233d417 100644 --- a/yarn.lock +++ b/yarn.lock @@ -311,14 +311,14 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403" integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ== -"@eslint/eslintrc@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.2.tgz#01575e38707add677cf73ca1589abba8da899a02" - integrity sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ== +"@eslint/eslintrc@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" + integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.5.1" + espree "^9.5.2" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -326,10 +326,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.39.0": - version "8.39.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.39.0.tgz#58b536bcc843f4cd1e02a7e6171da5c040f4d44b" - integrity sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng== +"@eslint/js@8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.40.0.tgz#3ba73359e11f5a7bd3e407f70b3528abfae69cec" + integrity sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -1145,20 +1145,20 @@ eslint-scope@^7.2.0: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz#c7f0f956124ce677047ddbc192a68f999454dedc" - integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" + integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== eslint@^8.35.0: - version "8.39.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.39.0.tgz#7fd20a295ef92d43809e914b70c39fd5a23cf3f1" - integrity sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og== + version "8.40.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.40.0.tgz#a564cd0099f38542c4e9a2f630fa45bf33bc42a4" + integrity sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.2" - "@eslint/js" "8.39.0" + "@eslint/eslintrc" "^2.0.3" + "@eslint/js" "8.40.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -1169,8 +1169,8 @@ eslint@^8.35.0: doctrine "^3.0.0" escape-string-regexp "^4.0.0" eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.0" - espree "^9.5.1" + eslint-visitor-keys "^3.4.1" + espree "^9.5.2" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -1196,14 +1196,14 @@ eslint@^8.35.0: strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.5.1: - version "9.5.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.1.tgz#4f26a4d5f18905bf4f2e0bd99002aab807e96dd4" - integrity sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg== +espree@^9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" + integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.0" + eslint-visitor-keys "^3.4.1" esprima@^4.0.0: version "4.0.1" From bd8e324e10a458f0213e1b56e147f7186405e7b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 May 2023 12:56:42 +0000 Subject: [PATCH 182/262] Bump eslint from 8.40.0 to 8.41.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.40.0 to 8.41.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.40.0...v8.41.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3233d417..56494d89 100644 --- a/yarn.lock +++ b/yarn.lock @@ -326,10 +326,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.40.0": - version "8.40.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.40.0.tgz#3ba73359e11f5a7bd3e407f70b3528abfae69cec" - integrity sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA== +"@eslint/js@8.41.0": + version "8.41.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.41.0.tgz#080321c3b68253522f7646b55b577dd99d2950b3" + integrity sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA== "@humanwhocodes/config-array@^0.11.8": version "0.11.8" @@ -1151,14 +1151,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== eslint@^8.35.0: - version "8.40.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.40.0.tgz#a564cd0099f38542c4e9a2f630fa45bf33bc42a4" - integrity sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ== + version "8.41.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.41.0.tgz#3062ca73363b4714b16dbc1e60f035e6134b6f1c" + integrity sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.40.0" + "@eslint/js" "8.41.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -1178,13 +1178,12 @@ eslint@^8.35.0: find-up "^5.0.0" glob-parent "^6.0.2" globals "^13.19.0" - grapheme-splitter "^1.0.4" + graphemer "^1.4.0" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -1430,10 +1429,10 @@ graceful-fs@^4.2.9: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== has-flag@^3.0.0: version "3.0.0" @@ -1968,11 +1967,6 @@ jest@^29.5.0: import-local "^3.0.2" jest-cli "^29.5.0" -js-sdsl@^4.1.4: - version "4.3.0" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" - integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" From 4fa5f7dcca674a1559705109fd76feed3dd3771c Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 22 May 2023 17:30:45 -0400 Subject: [PATCH 183/262] Include even more details in changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10ec685b..13a6d763 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,7 +59,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a - [#1198](https://github.com/prettier/plugin-ruby/issues/1198) - pas-f, kddnewton - Fix crashes on JRuby with do blocks. - [#1131](https://github.com/prettier/plugin-ruby/issues/1131) - hyrious, kddnewton - Ensure zombie processes are not left around when the server exits. - [#1206](https://github.com/prettier/plugin-ruby/pull/1206) - kddnewton - Switch back to plain JavaScript for development. -- [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - Switch over to using Syntax Tree for the backend. +- [#1190](https://github.com/prettier/plugin-ruby/pull/1190) - kddnewton - Switch over to using Syntax Tree for the backend. This now requires that users install the necessary gems. ### Removed From a5b406dd5c081edb4069caecd82b9d01ff9f339b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 May 2023 13:02:02 +0000 Subject: [PATCH 184/262] Bump dependabot/fetch-metadata from 1.4.0 to 1.5.0 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.4.0 to 1.5.0. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.4.0...v1.5.0) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index 85e9fdb7..d56afdfb 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v1.4.0 + uses: dependabot/fetch-metadata@v1.5.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Enable auto-merge for Dependabot PRs From 39a10270e357e54796657a891d07c73439771f7e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 May 2023 13:03:26 +0000 Subject: [PATCH 185/262] Bump dependabot/fetch-metadata from 1.5.0 to 1.5.1 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.5.0 to 1.5.1. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.5.0...v1.5.1) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .github/workflows/auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index d56afdfb..57830be5 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v1.5.0 + uses: dependabot/fetch-metadata@v1.5.1 with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Enable auto-merge for Dependabot PRs From 9e29849d65cefc976c3e2b4ab88c16d11869ea1a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 May 2023 12:56:43 +0000 Subject: [PATCH 186/262] Bump prettier from 3.0.0-alpha.11 to 3.0.0-alpha.12 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0-alpha.11 to 3.0.0-alpha.12. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/commits) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 56494d89..c25e1659 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2279,9 +2279,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@>=3.0.0-alpha.6: - version "3.0.0-alpha.11" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.11.tgz#fb6f9c7b4495fcc8c70b6633de885bf38b8585af" - integrity sha512-/x61/kcsjjU8kUEDKnn8PtqRzMXROg68KbUOtRC09oOQ3Vs6Bjwz7tabF98xu/K/RP/jZzWIvxphWr881DaokQ== + version "3.0.0-alpha.12" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.12.tgz#c38228f277e870298b6d95e579e54ea500487505" + integrity sha512-QCCLoJ+ttw/DV6zLiHJDZdC7sZ23fk3gCulQmjU6AuA/Uk8o6qbzM4afyEDIM94xhj7MEGDtKYo+ZFpxwjmSEg== pretty-format@^29.5.0: version "29.5.0" From 39995fc7573f062729ac98a258357db48e0923b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Jun 2023 12:56:35 +0000 Subject: [PATCH 187/262] Bump eslint from 8.41.0 to 8.42.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.41.0 to 8.42.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.41.0...v8.42.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index c25e1659..7eb914fa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -326,15 +326,15 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.41.0": - version "8.41.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.41.0.tgz#080321c3b68253522f7646b55b577dd99d2950b3" - integrity sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA== +"@eslint/js@8.42.0": + version "8.42.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" + integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== -"@humanwhocodes/config-array@^0.11.8": - version "0.11.8" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" - integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== +"@humanwhocodes/config-array@^0.11.10": + version "0.11.10" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" + integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -1151,15 +1151,15 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== eslint@^8.35.0: - version "8.41.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.41.0.tgz#3062ca73363b4714b16dbc1e60f035e6134b6f1c" - integrity sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q== + version "8.42.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" + integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.41.0" - "@humanwhocodes/config-array" "^0.11.8" + "@eslint/js" "8.42.0" + "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" From c23ca9ba98390009bc50585533d6858d38ea7b6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Jun 2023 12:56:44 +0000 Subject: [PATCH 188/262] Bump eslint from 8.42.0 to 8.43.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.42.0 to 8.43.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.42.0...v8.43.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7eb914fa..9ec23840 100644 --- a/yarn.lock +++ b/yarn.lock @@ -326,10 +326,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.42.0": - version "8.42.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" - integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== +"@eslint/js@8.43.0": + version "8.43.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.43.0.tgz#559ca3d9ddbd6bf907ad524320a0d14b85586af0" + integrity sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg== "@humanwhocodes/config-array@^0.11.10": version "0.11.10" @@ -1151,14 +1151,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== eslint@^8.35.0: - version "8.42.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" - integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== + version "8.43.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.43.0.tgz#3e8c6066a57097adfd9d390b8fc93075f257a094" + integrity sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.42.0" + "@eslint/js" "8.43.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" From c683165db68c51f9b514c4418656e9f31609560c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Jun 2023 13:03:14 +0000 Subject: [PATCH 189/262] Bump dependabot/fetch-metadata from 1.5.1 to 1.6.0 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.5.1 to 1.6.0. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.5.1...v1.6.0) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index 57830be5..8ca265e0 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v1.5.1 + uses: dependabot/fetch-metadata@v1.6.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Enable auto-merge for Dependabot PRs From fb812a3037b3cc431a3199dea32a024c2b246690 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 12:01:45 +0000 Subject: [PATCH 190/262] Bump eslint from 8.43.0 to 8.44.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.43.0 to 8.44.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.43.0...v8.44.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 70 +++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9ec23840..2fe03826 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + "@ampproject/remapping@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" @@ -311,14 +316,14 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403" integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ== -"@eslint/eslintrc@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" - integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== +"@eslint/eslintrc@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" + integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.5.2" + espree "^9.6.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -326,10 +331,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.43.0": - version "8.43.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.43.0.tgz#559ca3d9ddbd6bf907ad524320a0d14b85586af0" - integrity sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg== +"@eslint/js@8.44.0": + version "8.44.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" + integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== "@humanwhocodes/config-array@^0.11.10": version "0.11.10" @@ -734,10 +739,10 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.9.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" + integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" @@ -1151,14 +1156,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== eslint@^8.35.0: - version "8.43.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.43.0.tgz#3e8c6066a57097adfd9d390b8fc93075f257a094" - integrity sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q== + version "8.44.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.44.0.tgz#51246e3889b259bbcd1d7d736a0c10add4f0e500" + integrity sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.43.0" + "@eslint/eslintrc" "^2.1.0" + "@eslint/js" "8.44.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -1170,7 +1175,7 @@ eslint@^8.35.0: escape-string-regexp "^4.0.0" eslint-scope "^7.2.0" eslint-visitor-keys "^3.4.1" - espree "^9.5.2" + espree "^9.6.0" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -1190,17 +1195,17 @@ eslint@^8.35.0: lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" + optionator "^0.9.3" strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== +espree@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" + integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== dependencies: - acorn "^8.8.0" + acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" @@ -2169,17 +2174,17 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" p-limit@^2.2.0: version "2.3.0" @@ -2615,11 +2620,6 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" From 8d77df50da6432cfb748dbe7078790547c40c8a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Jul 2023 12:46:07 +0000 Subject: [PATCH 191/262] Bump prettier from 3.0.0-alpha.12 to 3.0.0 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0-alpha.12 to 3.0.0. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/commits/3.0.0) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2fe03826..c2770d94 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2284,9 +2284,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@>=3.0.0-alpha.6: - version "3.0.0-alpha.12" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.12.tgz#c38228f277e870298b6d95e579e54ea500487505" - integrity sha512-QCCLoJ+ttw/DV6zLiHJDZdC7sZ23fk3gCulQmjU6AuA/Uk8o6qbzM4afyEDIM94xhj7MEGDtKYo+ZFpxwjmSEg== + version "3.0.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" + integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== pretty-format@^29.5.0: version "29.5.0" From 1bf93eb88205116ecdc5755e5b3ef136d59997be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Jul 2023 12:46:19 +0000 Subject: [PATCH 192/262] Bump jest from 29.5.0 to 29.6.0 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.5.0 to 29.6.0. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.6.0/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 649 +++++++++++++++++++++++++++--------------------------- 1 file changed, 328 insertions(+), 321 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2fe03826..1f3febf3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -274,7 +274,7 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2": version "7.21.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75" integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw== @@ -371,28 +371,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57" - integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== +"@jest/console@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.0.tgz#ad0ae19e56e3ca34f620bab7b3e0bb7e3e655275" + integrity sha512-anb6L1yg7uPQpytNVA5skRaXy3BmrsU8icRhTVNbWdjYWDDfy8M1Kq5HIVRpYoABdbpqsc5Dr+jtu4+qWRQBiQ== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.0" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.6.0" + jest-util "^29.6.0" slash "^3.0.0" -"@jest/core@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" - integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== - dependencies: - "@jest/console" "^29.5.0" - "@jest/reporters" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" +"@jest/core@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.0.tgz#a71da7b99777ff4a3d534bd2529358872909905f" + integrity sha512-5dbMHfY/5R9m8NbgmB3JlxQqooZ/ooPSOiwEQZZ+HODwJTbIu37seVcZNBK29aMdXtjvTRB3f6LCvkKq+r8uQA== + dependencies: + "@jest/console" "^29.6.0" + "@jest/reporters" "^29.6.0" + "@jest/test-result" "^29.6.0" + "@jest/transform" "^29.6.0" + "@jest/types" "^29.6.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -400,81 +400,81 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.5.0" - jest-config "^29.5.0" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" + jest-config "^29.6.0" + jest-haste-map "^29.6.0" + jest-message-util "^29.6.0" jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-resolve-dependencies "^29.5.0" - jest-runner "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" - jest-watcher "^29.5.0" + jest-resolve "^29.6.0" + jest-resolve-dependencies "^29.6.0" + jest-runner "^29.6.0" + jest-runtime "^29.6.0" + jest-snapshot "^29.6.0" + jest-util "^29.6.0" + jest-validate "^29.6.0" + jest-watcher "^29.6.0" micromatch "^4.0.4" - pretty-format "^29.5.0" + pretty-format "^29.6.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" - integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== +"@jest/environment@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.0.tgz#a873d228159cbba812505f7d13e2d1a2d04a577a" + integrity sha512-bUZLYUxYlUIsslBbxII0fq0kr1+friI3Gty+cRLmocGB1jdcAHs7FS8QdCDqedE8q4DZE1g/AJHH6OJZBLGGsg== dependencies: - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/fake-timers" "^29.6.0" + "@jest/types" "^29.6.0" "@types/node" "*" - jest-mock "^29.5.0" + jest-mock "^29.6.0" -"@jest/expect-utils@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" - integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== +"@jest/expect-utils@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.0.tgz#14596ba728d61b0cf70f7d5c8fb88b8a82ea9def" + integrity sha512-LLSQQN7oypMSETKoPWpsWYVKJd9LQWmSDDAc4hUQ4JocVC7LAMy9R3ZMhlnLwbcFvQORZnZR7HM893Px6cJhvA== dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" - integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== +"@jest/expect@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.0.tgz#2a25759ec696bc03d3e5cfeba5a26732431f844f" + integrity sha512-a7pISPW28Q3c0/pLwz4mQ6tbAI+hc8/0CJp9ix6e9U4dQ6TiHQX82CT5DV5BMWaw8bFH4E6zsfZxXdn6Ka23Bw== dependencies: - expect "^29.5.0" - jest-snapshot "^29.5.0" + expect "^29.6.0" + jest-snapshot "^29.6.0" -"@jest/fake-timers@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" - integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg== +"@jest/fake-timers@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.0.tgz#9751cbabc86a39a1e6827cfcbabeba0207a63c97" + integrity sha512-nuCU46AsZoskthWSDS2Aj6LARgyNcp5Fjx2qxsO/fPl1Wp1CJ+dBDqs0OkEcJK8FBeV/MbjH5efe79M2sHcV+A== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.0" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.6.0" + jest-mock "^29.6.0" + jest-util "^29.6.0" -"@jest/globals@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" - integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== +"@jest/globals@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.0.tgz#e1603da83f69ed1a75e272d15da34a6a2fca1e24" + integrity sha512-IQQ3hZ2D/hwEwXSMv5GbfhzdH0nTQR3KPYxnuW6gYWbd6+7/zgMz7Okn6EgBbNtJNONq03k5EKA6HqGyzRbpeg== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/types" "^29.5.0" - jest-mock "^29.5.0" + "@jest/environment" "^29.6.0" + "@jest/expect" "^29.6.0" + "@jest/types" "^29.6.0" + jest-mock "^29.6.0" -"@jest/reporters@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" - integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== +"@jest/reporters@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.0.tgz#09e6d47b3d9b69172cbc344d4cb8954966a7a466" + integrity sha512-dWEq4HI0VvHcAD6XTtyBKKARLytyyWPIy1SvGOcU91106MfvHPdxZgupFwVHd8TFpZPpA3SebYjtwS5BUS76Rw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/console" "^29.6.0" + "@jest/test-result" "^29.6.0" + "@jest/transform" "^29.6.0" + "@jest/types" "^29.6.0" + "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -486,77 +486,77 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.5.0" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-message-util "^29.6.0" + jest-util "^29.6.0" + jest-worker "^29.6.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" - integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== +"@jest/schemas@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" + integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== dependencies: - "@sinclair/typebox" "^0.25.16" + "@sinclair/typebox" "^0.27.8" -"@jest/source-map@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" - integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== +"@jest/source-map@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.0.tgz#bd34a05b5737cb1a99d43e1957020ac8e5b9ddb1" + integrity sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA== dependencies: - "@jridgewell/trace-mapping" "^0.3.15" + "@jridgewell/trace-mapping" "^0.3.18" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408" - integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== +"@jest/test-result@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.0.tgz#03bd32d3bb696eff5affecf918468bc633fc32d5" + integrity sha512-9qLb7xITeyWhM4yatn2muqfomuoCTOhv0QV9i7XiIyYi3QLfnvPv5NeJp5u0PZeutAOROMLKakOkmoAisOr3YQ== dependencies: - "@jest/console" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.6.0" + "@jest/types" "^29.6.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" - integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ== +"@jest/test-sequencer@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.0.tgz#30a70e2dcc7dcf1e0f1170b97384883ce0a7d6e5" + integrity sha512-HYCS3LKRQotKWj2mnA3AN13PPevYZu8MJKm12lzYojpJNnn6kI/3PWmr1At/e3tUu+FHQDiOyaDVuR4EV3ezBw== dependencies: - "@jest/test-result" "^29.5.0" + "@jest/test-result" "^29.6.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.6.0" slash "^3.0.0" -"@jest/transform@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" - integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== +"@jest/transform@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.0.tgz#dcbb37e35412310073e633816fd7dbc11773596d" + integrity sha512-bhP/KxPo3e322FJ0nKAcb6WVK76ZYyQd1lWygJzoSqP8SYMSLdxHqP4wnPTI4WvbB8PKPDV30y5y7Tya4RHOBA== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/types" "^29.6.0" + "@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 "^29.5.0" + jest-haste-map "^29.6.0" jest-regex-util "^29.4.3" - jest-util "^29.5.0" + jest-util "^29.6.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" - integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== +"@jest/types@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.0.tgz#717646103c5715394d78c011a08b3cbb83d738e8" + integrity sha512-8XCgL9JhqbJTFnMRjEAO+TuW251+MoMd5BSzLiE3vvzpQ8RlBxy8NoyNkDhs3K3OL3HeVinlOl9or5p7GTeOLg== dependencies: - "@jest/schemas" "^29.4.3" + "@jest/schemas" "^29.6.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -595,7 +595,7 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -603,6 +603,14 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jridgewell/trace-mapping@^0.3.18": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + "@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" @@ -624,10 +632,10 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@sinclair/typebox@^0.25.16": - version "0.25.24" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" - integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== +"@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== "@sinonjs/commons@^2.0.0": version "2.0.0" @@ -820,12 +828,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" - integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q== +babel-jest@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.0.tgz#f97962732a729ca5cb26f610250c0cb4577bf3f8" + integrity sha512-Jj8Bq2yKsk11XLk06Nm8SdvYkAcecH+GuhxB8DnK5SncjHnJ88TQjSnGgE7jpajpnSvz9DZ6X8hXrDkD/6/TPQ== dependencies: - "@jest/transform" "^29.5.0" + "@jest/transform" "^29.6.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.5.0" @@ -1273,16 +1281,17 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" - integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== +expect@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.0.tgz#a0c114e91d8b6e9fcfb2d830411958699125bd23" + integrity sha512-AV+HaBtnDJ2YEUhPPo25HyUHBLaetM+y/Dq6pEC8VPQyt1dK+k8MfGkMy46djy2bddcqESc1kl4/K1uLWSfk9g== dependencies: - "@jest/expect-utils" "^29.5.0" + "@jest/expect-utils" "^29.6.0" + "@types/node" "*" jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-matcher-utils "^29.6.0" + jest-message-util "^29.6.0" + jest-util "^29.6.0" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1619,87 +1628,87 @@ jest-changed-files@^29.5.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" - integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA== +jest-circus@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.0.tgz#aa6369bd10aecc8ec68298bd14cf43ac4370958a" + integrity sha512-LtG45qEKhse2Ws5zNR4DnZATReLGQXzBZGZnJ0DU37p6d4wDhu41vvczCQ3Ou+llR6CRYDBshsubV7H4jZvIkw== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.6.0" + "@jest/expect" "^29.6.0" + "@jest/test-result" "^29.6.0" + "@jest/types" "^29.6.0" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.5.0" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-each "^29.6.0" + jest-matcher-utils "^29.6.0" + jest-message-util "^29.6.0" + jest-runtime "^29.6.0" + jest-snapshot "^29.6.0" + jest-util "^29.6.0" p-limit "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.6.0" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" - integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== +jest-cli@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.0.tgz#a885e3d5a0b12ba520f61f8496bb0c9c2ff97896" + integrity sha512-WvZIaanK/abkw6s01924DQ2QLwM5Q4Y4iPbSDb9Zg6smyXGqqcPQ7ft9X8D7B0jICz312eSzM6UlQNxuZJBrMw== dependencies: - "@jest/core" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.6.0" + "@jest/test-result" "^29.6.0" + "@jest/types" "^29.6.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-config "^29.6.0" + jest-util "^29.6.0" + jest-validate "^29.6.0" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" - integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA== +jest-config@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.0.tgz#0bca14b634919519a298a56c0ed1d200b9f0fa31" + integrity sha512-fKA4jM91PDqWVkMpb1FVKxIuhg3hC6hgaen57cr1rRZkR96dCatvJZsk3ik7/GNu9ERj9wgAspOmyvkFoGsZhA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.5.0" - "@jest/types" "^29.5.0" - babel-jest "^29.5.0" + "@jest/test-sequencer" "^29.6.0" + "@jest/types" "^29.6.0" + babel-jest "^29.6.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.5.0" - jest-environment-node "^29.5.0" + jest-circus "^29.6.0" + jest-environment-node "^29.6.0" jest-get-type "^29.4.3" jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-runner "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-resolve "^29.6.0" + jest-runner "^29.6.0" + jest-util "^29.6.0" + jest-validate "^29.6.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.5.0" + pretty-format "^29.6.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" - integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== +jest-diff@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.0.tgz#9fe219a2f73a62ed6ac1c1a58e4965dc66836c4b" + integrity sha512-ZRm7cd2m9YyZ0N3iMyuo1iUiprxQ/MFpYWXzEEj7hjzL3WnDffKW8192XBDcrAI8j7hnrM1wed3bL/oEnYF/8w== dependencies: chalk "^4.0.0" diff-sequences "^29.4.3" jest-get-type "^29.4.3" - pretty-format "^29.5.0" + pretty-format "^29.6.0" jest-docblock@^29.4.3: version "29.4.3" @@ -1708,94 +1717,94 @@ jest-docblock@^29.4.3: dependencies: detect-newline "^3.0.0" -jest-each@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" - integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA== +jest-each@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.0.tgz#320637063b518a51e42b38a0186255e6e5978fe7" + integrity sha512-d0Jem4RBAlFUyV6JSXPSHVUpNo5RleSj+iJEy1G3+ZCrzHDjWs/1jUfrbnJKHdJdAx5BCEce/Ju379WqHhQk4w== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.0" chalk "^4.0.0" jest-get-type "^29.4.3" - jest-util "^29.5.0" - pretty-format "^29.5.0" + jest-util "^29.6.0" + pretty-format "^29.6.0" -jest-environment-node@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" - integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw== +jest-environment-node@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.0.tgz#634c3027afaa6f4211516348c59642d74b126a1b" + integrity sha512-BOf5Q2/nFCdBOnyBM5c5/6DbdQYgc+0gyUQ8l8qhUAB8O7pM+4QJXIXJsRZJaxd5SHV6y5VArTVhOfogoqcP8Q== dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.6.0" + "@jest/fake-timers" "^29.6.0" + "@jest/types" "^29.6.0" "@types/node" "*" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-mock "^29.6.0" + jest-util "^29.6.0" jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" - integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== +jest-haste-map@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.0.tgz#5f3e6292bc45f596de48835489ddac409748b15a" + integrity sha512-dY1DKufptj7hcJSuhpqlYPGcnN3XjlOy/g0jinpRTMsbb40ivZHiuIPzeminOZkrek8C+oDxC54ILGO3vMLojg== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.0" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.4.3" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-util "^29.6.0" + jest-worker "^29.6.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" - integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow== +jest-leak-detector@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.0.tgz#9b96d275622739b4436ee7e91b3f3d386471105c" + integrity sha512-JdV6EZOPxHR1gd6ccxjNowuROkT2jtGU5G/g58RcJX1xe5mrtLj0g6/ZkyMoXF4cs+tTkHMFX6pcIrB1QPQwCw== dependencies: jest-get-type "^29.4.3" - pretty-format "^29.5.0" + pretty-format "^29.6.0" -jest-matcher-utils@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" - integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== +jest-matcher-utils@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.0.tgz#4465344800591022a5239f529857c053da6a9d5c" + integrity sha512-oSlqfGN+sbkB2Q5um/zL7z80w84FEAcLKzXBZIPyRk2F2Srg1ubhrHVKW68JCvb2+xKzAeGw35b+6gciS24PHw== dependencies: chalk "^4.0.0" - jest-diff "^29.5.0" + jest-diff "^29.6.0" jest-get-type "^29.4.3" - pretty-format "^29.5.0" + pretty-format "^29.6.0" -jest-message-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" - integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== +jest-message-util@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.0.tgz#b23c1f787fcc226c49489fd53018100c2f434fe6" + integrity sha512-mkCp56cETbpoNtsaeWVy6SKzk228mMi9FPHSObaRIhbR2Ujw9PqjW/yqVHD2tN1bHbC8ol6h3UEo7dOPmIYwIA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.0" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.5.0" + pretty-format "^29.6.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" - integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== +jest-mock@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.0.tgz#4643fe35a3f20ef9a71f2a61f037a2ff05702d55" + integrity sha512-2Pb7R2w24Q0aUVn+2/vdRDL6CqGqpheDZy7zrXav8FotOpSGw/4bS2hyVoKHMEx4xzOn6EyCAGwc5czWxXeN7w== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.0" "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.6.0" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -1807,170 +1816,168 @@ jest-regex-util@^29.4.3: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve-dependencies@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" - integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg== +jest-resolve-dependencies@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.0.tgz#772a315ebf2556c3c0ced98f268d2f931efab8a5" + integrity sha512-eOfPog9K3hJdJk/3i6O6bQhXS+3uXhMDkLJGX+xmMPp7T1d/zdcFofbDnHgNoEkhD/mSimC5IagLEP7lpLLu/A== dependencies: jest-regex-util "^29.4.3" - jest-snapshot "^29.5.0" + jest-snapshot "^29.6.0" -jest-resolve@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" - integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w== +jest-resolve@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.0.tgz#e7ffd4ebfd03d0ef442eba00611b5a5ea18996b5" + integrity sha512-+hrpY4LzAONoZA/rvB6rnZLkOSA6UgJLpdCWrOZNSgGxWMumzRLu7dLUSCabAHzoHIDQ9qXfr3th1zYNJ0E8sQ== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.6.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-util "^29.6.0" + jest-validate "^29.6.0" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" - integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ== - dependencies: - "@jest/console" "^29.5.0" - "@jest/environment" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" +jest-runner@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.0.tgz#7d8680b80c92c6fb94b9960714cd7004de7ef948" + integrity sha512-4fZuGV2lOxS2BiqEG9/AI8E6O+jo+QZjMVcgi1x5E6aDql0Gd/EFIbUQ0pSS09y8cya1vJB/qC2xsE468jqtSg== + dependencies: + "@jest/console" "^29.6.0" + "@jest/environment" "^29.6.0" + "@jest/test-result" "^29.6.0" + "@jest/transform" "^29.6.0" + "@jest/types" "^29.6.0" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.4.3" - jest-environment-node "^29.5.0" - jest-haste-map "^29.5.0" - jest-leak-detector "^29.5.0" - jest-message-util "^29.5.0" - jest-resolve "^29.5.0" - jest-runtime "^29.5.0" - jest-util "^29.5.0" - jest-watcher "^29.5.0" - jest-worker "^29.5.0" + jest-environment-node "^29.6.0" + jest-haste-map "^29.6.0" + jest-leak-detector "^29.6.0" + jest-message-util "^29.6.0" + jest-resolve "^29.6.0" + jest-runtime "^29.6.0" + jest-util "^29.6.0" + jest-watcher "^29.6.0" + jest-worker "^29.6.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420" - integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw== - dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/globals" "^29.5.0" - "@jest/source-map" "^29.4.3" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" +jest-runtime@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.0.tgz#0f6d98b40625c620c6fa1f075c3b0ca95daa8f1c" + integrity sha512-5FavYo3EeXLHIvnJf+r7Cj0buePAbe4mzRB9oeVxDS0uVmouSBjWeGgyRjZkw7ArxOoZI8gO6f8SGMJ2HFlwwg== + dependencies: + "@jest/environment" "^29.6.0" + "@jest/fake-timers" "^29.6.0" + "@jest/globals" "^29.6.0" + "@jest/source-map" "^29.6.0" + "@jest/test-result" "^29.6.0" + "@jest/transform" "^29.6.0" + "@jest/types" "^29.6.0" "@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.5.0" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" + jest-haste-map "^29.6.0" + jest-message-util "^29.6.0" + jest-mock "^29.6.0" jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-resolve "^29.6.0" + jest-snapshot "^29.6.0" + jest-util "^29.6.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" - integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g== +jest-snapshot@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.0.tgz#a8653fe098f1c39ab37c94f8b1370f606b5618a9" + integrity sha512-H3kUE9NwWDEDoutcOSS921IqdlkdjgnMdj1oMyxAHNflscdLc9dB8OudZHV6kj4OHJxbMxL8CdI5DlwYrs4wQg== 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/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/babel__traverse" "^7.0.6" + "@jest/expect-utils" "^29.6.0" + "@jest/transform" "^29.6.0" + "@jest/types" "^29.6.0" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.5.0" + expect "^29.6.0" graceful-fs "^4.2.9" - jest-diff "^29.5.0" + jest-diff "^29.6.0" jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-matcher-utils "^29.6.0" + jest-message-util "^29.6.0" + jest-util "^29.6.0" natural-compare "^1.4.0" - pretty-format "^29.5.0" - semver "^7.3.5" + pretty-format "^29.6.0" + semver "^7.5.3" -jest-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" - integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== +jest-util@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.0.tgz#4071050c5d70f5d4d48105e8883773f3a6b94f8d" + integrity sha512-S0USx9YwcvEm4pQ5suisVm/RVxBmi0GFR7ocJhIeaCuW5AXnAnffXbaVKvIFodyZNOc9ygzVtTxmBf40HsHXaA== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.0" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" - integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== +jest-validate@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.0.tgz#6a7416a1df4fe90896db566b83d6b4c9485c402c" + integrity sha512-MLTrAJsb1+W7svbeZ+A7pAnyXMaQrjvPDKCy7OlfsfB6TMVc69v7WjUWfiR6r3snULFWZASiKgvNVDuATta1dg== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.0" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.6.0" -jest-watcher@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363" - integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA== +jest-watcher@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.0.tgz#77df9ffcdfc70406fdd577020c1e4d62de5a0299" + integrity sha512-LdsQqFNX60mRdRRe+zsELnYRH1yX6KL+ukbh+u6WSQeTheZZe1TlLJNKRQiZ7e0VbvMkywmMWL/KV35noOJCcw== dependencies: - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/test-result" "^29.6.0" + "@jest/types" "^29.6.0" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.5.0" + jest-util "^29.6.0" string-length "^4.0.1" -jest-worker@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" - integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== +jest-worker@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.0.tgz#e0c40226d073fdb8f0dfe87d7f90f8fd987d8ba3" + integrity sha512-oiQHH1SnKmZIwwPnpOrXTq4kHBk3lKGY/07DpnH0sAu+x7J8rXlbLDROZsU6vy9GwB0hPiZeZpu6YlJ48QoKcA== dependencies: "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.6.0" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" - integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ== + version "29.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.0.tgz#dbc8136e6d933177487e2427187e07ebf9db8ce4" + integrity sha512-do1J9gGrQ68E4UfMz/4OM71p9qCqQxu32N/9ZfeYFSSlx0uUOuxeyZxtJZNaUTW12ZA11ERhmBjBhy1Ho96R4g== dependencies: - "@jest/core" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.6.0" + "@jest/types" "^29.6.0" import-local "^3.0.2" - jest-cli "^29.5.0" + jest-cli "^29.6.0" js-tokens@^4.0.0: version "4.0.0" @@ -2288,12 +2295,12 @@ prettier@>=3.0.0-alpha.6: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0-alpha.12.tgz#c38228f277e870298b6d95e579e54ea500487505" integrity sha512-QCCLoJ+ttw/DV6zLiHJDZdC7sZ23fk3gCulQmjU6AuA/Uk8o6qbzM4afyEDIM94xhj7MEGDtKYo+ZFpxwjmSEg== -pretty-format@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" - integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== +pretty-format@^29.6.0: + version "29.6.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.0.tgz#c90c8f145187fe73240662527a513599c16f3b97" + integrity sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ== dependencies: - "@jest/schemas" "^29.4.3" + "@jest/schemas" "^29.6.0" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -2405,10 +2412,10 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.5: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== +semver@^7.5.3: + version "7.5.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" + integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== dependencies: lru-cache "^6.0.0" From 47a68f24437c10ed42bc73931676e02f73143045 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 6 Jul 2023 10:10:04 -0400 Subject: [PATCH 193/262] Bump deps --- package.json | 2 +- yarn.lock | 560 +++++++++++++++++++++++++-------------------------- 2 files changed, 278 insertions(+), 284 deletions(-) diff --git a/package.json b/package.json index 8da5b9a6..095b528b 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "homepage": "https://github.com/prettier/plugin-ruby#readme", "dependencies": { - "prettier": ">=3.0.0-alpha.6" + "prettier": ">=3.0.0" }, "devDependencies": { "eslint": "^8.35.0", diff --git a/yarn.lock b/yarn.lock index 3712c48d..a8312ad8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,164 +8,164 @@ integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@ampproject/remapping@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== dependencies: - "@babel/highlight" "^7.18.6" + "@babel/highlight" "^7.22.5" -"@babel/compat-data@^7.20.5": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" - integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== +"@babel/compat-data@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.6.tgz#15606a20341de59ba02cd2fcc5086fcbe73bf544" + integrity sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13" - integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA== + version "7.22.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.8.tgz#386470abe884302db9c82e8e5e87be9e46c86785" + integrity sha512-75+KxFB4CZqYRXjx4NlR4J7yGvKumBuZTmV4NV6v09dVXXkuYVYLT68N6HCzLvfJ+fWCxQsntNzKwwIXL4bHnw== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.0" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.21.0" - "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.0" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.7" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-module-transforms" "^7.22.5" + "@babel/helpers" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.8" + "@babel/types" "^7.22.5" + "@nicolo-ribaudo/semver-v6" "^6.3.3" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.2" - semver "^6.3.0" -"@babel/generator@^7.21.0", "@babel/generator@^7.21.1", "@babel/generator@^7.7.2": - version "7.21.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd" - integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA== +"@babel/generator@^7.22.7", "@babel/generator@^7.7.2": + version "7.22.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" + integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== dependencies: - "@babel/types" "^7.21.0" + "@babel/types" "^7.22.5" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" - integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== +"@babel/helper-compilation-targets@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz#e30d61abe9480aa5a83232eb31c111be922d2e52" + integrity sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA== dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" + "@babel/compat-data" "^7.22.6" + "@babel/helper-validator-option" "^7.22.5" + "@nicolo-ribaudo/semver-v6" "^6.3.3" + browserslist "^4.21.9" lru-cache "^5.1.1" - semver "^6.3.0" -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - 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-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.21.0": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" - integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.2" - "@babel/types" "^7.21.2" - -"@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.19.0", "@babel/helper-plugin-utils@^7.8.0": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== - dependencies: - "@babel/types" "^7.20.2" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" - integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" - integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== - -"@babel/helper-validator-option@^7.18.6": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" - integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== - -"@babel/helpers@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" - integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" +"@babel/helper-environment-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== + +"@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== + dependencies: + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" + +"@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== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-transforms@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" + integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.5" + "@babel/types" "^7.22.5" + +"@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.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-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-split-export-declaration@^7.22.5", "@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": + 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-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + +"@babel/helper-validator-option@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" + integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== + +"@babel/helpers@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" + integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== + dependencies: + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.6" + "@babel/types" "^7.22.5" + +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0", "@babel/parser@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3" - integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": + version "7.22.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" + integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -203,11 +203,11 @@ "@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== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -259,44 +259,44 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" - integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/template@^7.20.7", "@babel/template@^7.3.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75" - integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.1" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.2" - "@babel/types" "^7.21.2" + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" + integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/template@^7.22.5", "@babel/template@^7.3.3": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" + integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/traverse@^7.22.5", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": + version "7.22.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" + integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.7" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/types" "^7.22.5" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.21.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1" - integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" + integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -305,16 +305,16 @@ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@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" - integrity sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403" - integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" + integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== "@eslint/eslintrc@^2.1.0": version "2.1.0" @@ -563,18 +563,10 @@ "@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" - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -585,25 +577,22 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": +"@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/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" - integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.18": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": version "0.3.18" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== @@ -611,6 +600,11 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@nicolo-ribaudo/semver-v6@^6.3.3": + version "6.3.3" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" + integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== + "@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" @@ -637,24 +631,24 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== -"@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== +"@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== 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== + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== dependencies: - "@sinonjs/commons" "^2.0.0" + "@sinonjs/commons" "^3.0.0" "@types/babel__core@^7.1.14": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" - integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" + integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -678,11 +672,11 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.3" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" - integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== + version "7.20.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" + integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== dependencies: - "@babel/types" "^7.3.0" + "@babel/types" "^7.20.7" "@types/graceful-fs@^4.1.3": version "4.1.6" @@ -716,14 +710,14 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "18.14.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.6.tgz#ae1973dd2b1eeb1825695bb11ebfb746d27e3e93" - integrity sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA== + version "20.4.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.0.tgz#01d637d1891e419bc85763b46f42809cd2d5addb" + integrity sha512-jfT7iTf/4kOQ9S7CHV9BIyRaQqHu67mOjsIQBC3BKZvzvUB6zLxEwJ6sBE3ozcvP8kF6Uk5PXN0Q+c0dfhGX0g== "@types/prettier@^2.1.5": - version "2.7.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" - integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/stack-utils@^2.0.0": version "2.0.1" @@ -736,9 +730,9 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.8": - version "17.0.22" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.22.tgz#7dd37697691b5f17d020f3c63e7a45971ff71e9a" - integrity sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g== + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" + integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== dependencies: "@types/yargs-parser" "*" @@ -748,9 +742,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn@^8.9.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" - integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== ajv@^6.10.0, ajv@^6.12.4: version "6.12.6" @@ -908,15 +902,15 @@ braces@^3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.21.3: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== +browserslist@^4.21.9: + version "4.21.9" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" + integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" + caniuse-lite "^1.0.30001503" + electron-to-chromium "^1.4.431" + node-releases "^2.0.12" + update-browserslist-db "^1.0.11" bser@2.1.1: version "2.1.1" @@ -945,10 +939,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001449: - version "1.0.30001462" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz#b2e801e37536d453731286857c8520d3dcee15fe" - integrity sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw== +caniuse-lite@^1.0.30001503: + version "1.0.30001512" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001512.tgz#7450843fb581c39f290305a83523c7a9ef0d4cb4" + integrity sha512-2S9nK0G/mE+jasCUsMPlARhRCts1ebcp2Ji8Y8PWi4NDE1iRdLCnEPHkEfeBrGC45L4isBx5ur3IQ6yTE2mRZw== chalk@^2.0.0: version "2.4.2" @@ -986,9 +980,9 @@ ci-info@^3.2.0: integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== 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== + version "1.2.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== cliui@^8.0.1: version "8.0.1" @@ -1005,9 +999,9 @@ co@^4.6.0: integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== 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== + 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" @@ -1075,9 +1069,9 @@ deep-is@^0.1.3: integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: - version "4.3.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" - integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== + 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== detect-newline@^3.0.0: version "3.1.0" @@ -1096,10 +1090,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -electron-to-chromium@^1.4.284: - version "1.4.322" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.322.tgz#e0afa1d115b66c1d47869db40d8f2f3729cecc16" - integrity sha512-KovjizNC9XB7dno/2GjxX8VS0SlfPpCjtyoKft+bCO+UfD8bFy16hY4Sh9s0h9BDxbRH2U0zX5VBjpM1LTcNlg== +electron-to-chromium@^1.4.431: + version "1.4.451" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.451.tgz#12b63ee5c82cbbc7b4ddd91e90f5a0dfc10de26e" + integrity sha512-YYbXHIBxAHe3KWvGOJOuWa6f3tgow44rBW+QAuwVp2DvGqNZeE//K2MowNdWS7XE8li5cgQDrX1LdBr41LufkA== emittery@^0.13.1: version "0.13.1" @@ -1439,9 +1433,9 @@ globals@^13.19.0: type-fest "^0.20.2" graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + 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" @@ -1529,10 +1523,10 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" - integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== +is-core-module@^2.11.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" + integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== dependencies: has "^1.0.3" @@ -2150,10 +2144,10 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== +node-releases@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" + integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== normalize-path@^3.0.0: version "3.0.0" @@ -2274,9 +2268,9 @@ picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== pkg-dir@^4.2.0: version "4.2.0" @@ -2290,7 +2284,7 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@>=3.0.0-alpha.6: +prettier@>=3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== @@ -2338,9 +2332,9 @@ punycode@^2.1.0: integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== pure-rand@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.0.tgz#701996ceefa253507923a0e864c17ab421c04a7c" - integrity sha512-rLSBxJjP+4DQOgcJAx6RZHT2he2pkhQdSnofG5VWyVl6GRq/K02ISOuOLcsMOrtKDIJb8JN2zm3FFzWNbezdPw== + version "6.0.2" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306" + integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ== queue-microtask@^1.2.2: version "1.2.3" @@ -2375,16 +2369,16 @@ resolve-from@^5.0.0: 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== + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== resolve@^1.20.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== dependencies: - is-core-module "^2.9.0" + is-core-module "^2.11.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -2589,10 +2583,10 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -2670,9 +2664,9 @@ yargs-parser@^21.1.1: integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.3.1: - version "17.7.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" - integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" escalade "^3.1.1" From c87329b6f04bddb6889d578f429b076aefebfaa3 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 6 Jul 2023 10:13:41 -0400 Subject: [PATCH 194/262] Specify default --- README.md | 23 +++++++++-------------- src/plugin.js | 29 +++++++++-------------------- 2 files changed, 18 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index c8615c5e..44ebaab9 100644 --- a/README.md +++ b/README.md @@ -104,14 +104,15 @@ The `prettier` executable is now installed and ready for use: Below are the options (from [`src/plugin.js`](src/plugin.js)) that `@prettier/plugin-ruby` currently supports: -| API Option | CLI Option | Default | Description | -| ----------------- | --------------------- | :-----: | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | -| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | -| `rubyPlugins` | `--ruby-plugins` | `""` | The comma-separated list of plugins to require. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | -| `rubySingleQuote` | `--ruby-single-quote` | `false` | Whether or not to default to single quotes for Ruby code. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | -| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | -| `trailingComma` | `--trailing-comma` | `es5` | Almost same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#trailing-commas)). Will be on for any value except `none`. | +| API Option | CLI Option | Default | Description | +| -------------------- | --------------------- | :------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| `printWidth` | `--print-width` | `80` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#print-width)). | +| `requirePragma` | `--require-pragma` | `false` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#require-pragma)). | +| `rubyExecutablePath` | `"ruby"` | Allows you to configure your Ruby executable path. | +| `rubyPlugins` | `--ruby-plugins` | `""` | The comma-separated list of plugins to require. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | +| `rubySingleQuote` | `--ruby-single-quote` | `false` | Whether or not to default to single quotes for Ruby code. See [Syntax Tree](https://github.com/ruby-syntax-tree/syntax_tree#plugins). | +| `tabWidth` | `--tab-width` | `2` | Same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#tab-width)). | +| `trailingComma` | `--trailing-comma` | `es5` | Almost same as in Prettier ([see prettier docs](https://prettier.io/docs/en/options.html#trailing-commas)). Will be on for any value except `none`. | Any of these can be added to your existing [prettier configuration file](https://prettier.io/docs/en/configuration.html). For example: @@ -160,12 +161,6 @@ For [supported editor integrations](https://github.com/prettier/prettier/blob/ma Refer to [this issue](https://github.com/prettier/plugin-ruby/issues/113#issuecomment-783426539) if you're having difficulties. -Additional options: - -| Options | Default | Description | -| ----------------- | --------------------- | :-----: | -|`rubyExecutablePath`|`"ruby"`|Allows you to configure your Ruby executable path.| - ## Contributing Thanks so much for your interest in contributing! You can contribute in many ways, including: diff --git a/src/plugin.js b/src/plugin.js index 0df039bf..f2b4744e 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -65,27 +65,15 @@ function getPlugins(opts) { // created that will contain the connection information. export async function spawnServer(opts, killOnExit = true) { const tmpdir = os.tmpdir(); - - // First, get a filepath that points to the server script. If we're running - // under normal circumstances, we can just use a path relative to the - // import.meta.url value. - const serverURL = new URL("./server.rb", import.meta.url); - let serverFilepath = url.fileURLToPath(serverURL); - - // If we're in a yarn Plug'n'Play environment, then the relative paths being - // used by the parser server are not going to work with its virtual file - // system. So instead we need to copy the server script to a temporary - // directory. - if (process.versions.pnp) { - if (url.fileURLToPath(new URL(".", import.meta.url)).includes(".zip")) { - // TODO: wait for prettier to get support back for pnp - } - } - const filepath = path.join(tmpdir, `prettier-ruby-parser-${process.pid}.txt`); + const server = spawn( - opts.rubyExecutablePath, - [serverFilepath, `--plugins=${getPlugins(opts).join(",")}`, filepath], + opts.rubyExecutablePath || "ruby", + [ + url.fileURLToPath(new URL("./server.rb", import.meta.url)), + `--plugins=${getPlugins(opts).join(",")}`, + filepath + ], { env: Object.assign({}, process.env, { LANG: getLang() }), stdio: "ignore", @@ -360,7 +348,8 @@ const plugin = { type: "string", category: "Ruby", default: "ruby", - description: "The path to the Ruby executable to use to run the formatter.", + description: + "The path to the Ruby executable to use to run the formatter.", since: "3.3.0" } }, From ea7348778a04c85ee0c7f1bbe3bc50ad5660d3c4 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 6 Jul 2023 10:32:14 -0400 Subject: [PATCH 195/262] Provide better errors on missing gems --- src/plugin.js | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/plugin.js b/src/plugin.js index f2b4744e..5d31a7df 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -76,7 +76,7 @@ export async function spawnServer(opts, killOnExit = true) { ], { env: Object.assign({}, process.env, { LANG: getLang() }), - stdio: "ignore", + stdio: ["ignore", "ignore", "inherit"], detached: true } ); @@ -104,17 +104,6 @@ export async function spawnServer(opts, killOnExit = true) { } return new Promise((resolve, reject) => { - const timeout = setTimeout( - () => { - const message = - "Failed to get connection options from parse server in time. If this happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment variable beyond 10000."; - - clearInterval(interval); - reject(new Error(message)); - }, - parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "10000", 10) - ); - const interval = setInterval(() => { if (fs.existsSync(filepath)) { const connectionJSON = fs.readFileSync(filepath).toString("utf-8"); @@ -124,10 +113,25 @@ export async function spawnServer(opts, killOnExit = true) { connectionOptions: JSON.parse(connectionJSON) }); + clearTimeout(timeout); + clearInterval(interval); + } else if (server.exitCode) { + reject(new Error("Failed to start parse server.")); clearTimeout(timeout); clearInterval(interval); } }, 100); + + const timeout = setTimeout( + () => { + const message = + "Failed to get connection options from parse server in time. If this happens repeatedly, try increasing the PRETTIER_RUBY_TIMEOUT_MS environment variable beyond 10000."; + + clearInterval(interval); + reject(new Error(message)); + }, + parseInt(process.env.PRETTIER_RUBY_TIMEOUT_MS || "10000", 10) + ); }); } From 605e0194d459a3257c5ff8d209ac4359cb9d42a2 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 6 Jul 2023 10:41:52 -0400 Subject: [PATCH 196/262] Bump to v4.0.0 --- CHANGELOG.md | 15 ++++++++++++++- package.json | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 13a6d763..05786ca4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,18 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [4.0.0] - 2023-07-06 + +### Added + +- [#1283](https://github.com/prettier/plugin-ruby/pull/1283) - oriolgual - Use `process.execPath` instead of `"node"`. +- [#1358](https://github.com/prettier/plugin-ruby/pull/1358) - davidalejandroaguilar - Add the `rubyExecutablePath` option. +- [#1359](https://github.com/prettier/plugin-ruby/pull/1359) - kddnewton - Inherit stderr from the parser process in order to provide better error messages when failing to spawn parser server. This will put out missing gem errors, for example. + +### Changed + +- [#1360](https://github.com/prettier/plugin-ruby/pull/1360) - kddnewton - Require prettier v3.0.0+. + ## [3.2.2] - 2022-09-20 ### Changed @@ -1267,7 +1279,8 @@ would previously result in `array[]`, but now prints properly. - Initial release 🎉 -[unreleased]: https://github.com/prettier/plugin-ruby/compare/v3.2.2...HEAD +[unreleased]: https://github.com/prettier/plugin-ruby/compare/v4.0.0...HEAD +[4.0.0]: https://github.com/prettier/plugin-ruby/compare/v3.2.2...v4.0.0 [3.2.2]: https://github.com/prettier/plugin-ruby/compare/v3.2.1...v3.2.2 [3.2.1]: https://github.com/prettier/plugin-ruby/compare/v3.2.0...v3.2.1 [3.2.0]: https://github.com/prettier/plugin-ruby/compare/v3.1.2...v3.2.0 diff --git a/package.json b/package.json index 095b528b..d2b550fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "3.2.2", + "version": "4.0.0", "description": "prettier plugin for the Ruby programming language", "type": "module", "main": "src/plugin.js", From abbc69243c126adcb1262639639ef84a4c453904 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jul 2023 12:55:26 +0000 Subject: [PATCH 197/262] Bump jest from 29.6.0 to 29.6.1 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.6.0 to 29.6.1. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.6.1/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 584 +++++++++++++++++++++++++++--------------------------- 1 file changed, 292 insertions(+), 292 deletions(-) diff --git a/yarn.lock b/yarn.lock index a8312ad8..a1c0fbb1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -371,28 +371,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.0.tgz#ad0ae19e56e3ca34f620bab7b3e0bb7e3e655275" - integrity sha512-anb6L1yg7uPQpytNVA5skRaXy3BmrsU8icRhTVNbWdjYWDDfy8M1Kq5HIVRpYoABdbpqsc5Dr+jtu4+qWRQBiQ== +"@jest/console@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.1.tgz#b48ba7b9c34b51483e6d590f46e5837f1ab5f639" + integrity sha512-Aj772AYgwTSr5w8qnyoJ0eDYvN6bMsH3ORH1ivMotrInHLKdUz6BDlaEXHdM6kODaBIkNIyQGzsMvRdOv7VG7Q== dependencies: - "@jest/types" "^29.6.0" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.6.0" - jest-util "^29.6.0" + jest-message-util "^29.6.1" + jest-util "^29.6.1" slash "^3.0.0" -"@jest/core@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.0.tgz#a71da7b99777ff4a3d534bd2529358872909905f" - integrity sha512-5dbMHfY/5R9m8NbgmB3JlxQqooZ/ooPSOiwEQZZ+HODwJTbIu37seVcZNBK29aMdXtjvTRB3f6LCvkKq+r8uQA== - dependencies: - "@jest/console" "^29.6.0" - "@jest/reporters" "^29.6.0" - "@jest/test-result" "^29.6.0" - "@jest/transform" "^29.6.0" - "@jest/types" "^29.6.0" +"@jest/core@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.1.tgz#fac0d9ddf320490c93356ba201451825231e95f6" + integrity sha512-CcowHypRSm5oYQ1obz1wfvkjZZ2qoQlrKKvlfPwh5jUXVU12TWr2qMeH8chLMuTFzHh5a1g2yaqlqDICbr+ukQ== + dependencies: + "@jest/console" "^29.6.1" + "@jest/reporters" "^29.6.1" + "@jest/test-result" "^29.6.1" + "@jest/transform" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -400,80 +400,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.5.0" - jest-config "^29.6.0" - jest-haste-map "^29.6.0" - jest-message-util "^29.6.0" + jest-config "^29.6.1" + jest-haste-map "^29.6.1" + jest-message-util "^29.6.1" jest-regex-util "^29.4.3" - jest-resolve "^29.6.0" - jest-resolve-dependencies "^29.6.0" - jest-runner "^29.6.0" - jest-runtime "^29.6.0" - jest-snapshot "^29.6.0" - jest-util "^29.6.0" - jest-validate "^29.6.0" - jest-watcher "^29.6.0" + jest-resolve "^29.6.1" + jest-resolve-dependencies "^29.6.1" + jest-runner "^29.6.1" + jest-runtime "^29.6.1" + jest-snapshot "^29.6.1" + jest-util "^29.6.1" + jest-validate "^29.6.1" + jest-watcher "^29.6.1" micromatch "^4.0.4" - pretty-format "^29.6.0" + pretty-format "^29.6.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.0.tgz#a873d228159cbba812505f7d13e2d1a2d04a577a" - integrity sha512-bUZLYUxYlUIsslBbxII0fq0kr1+friI3Gty+cRLmocGB1jdcAHs7FS8QdCDqedE8q4DZE1g/AJHH6OJZBLGGsg== +"@jest/environment@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.1.tgz#ee358fff2f68168394b4a50f18c68278a21fe82f" + integrity sha512-RMMXx4ws+Gbvw3DfLSuo2cfQlK7IwGbpuEWXCqyYDcqYTI+9Ju3a5hDnXaxjNsa6uKh9PQF2v+qg+RLe63tz5A== dependencies: - "@jest/fake-timers" "^29.6.0" - "@jest/types" "^29.6.0" + "@jest/fake-timers" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" - jest-mock "^29.6.0" + jest-mock "^29.6.1" -"@jest/expect-utils@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.0.tgz#14596ba728d61b0cf70f7d5c8fb88b8a82ea9def" - integrity sha512-LLSQQN7oypMSETKoPWpsWYVKJd9LQWmSDDAc4hUQ4JocVC7LAMy9R3ZMhlnLwbcFvQORZnZR7HM893Px6cJhvA== +"@jest/expect-utils@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.1.tgz#ab83b27a15cdd203fe5f68230ea22767d5c3acc5" + integrity sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw== dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.0.tgz#2a25759ec696bc03d3e5cfeba5a26732431f844f" - integrity sha512-a7pISPW28Q3c0/pLwz4mQ6tbAI+hc8/0CJp9ix6e9U4dQ6TiHQX82CT5DV5BMWaw8bFH4E6zsfZxXdn6Ka23Bw== +"@jest/expect@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.1.tgz#fef18265188f6a97601f1ea0a2912d81a85b4657" + integrity sha512-N5xlPrAYaRNyFgVf2s9Uyyvr795jnB6rObuPx4QFvNJz8aAjpZUDfO4bh5G/xuplMID8PrnuF1+SfSyDxhsgYg== dependencies: - expect "^29.6.0" - jest-snapshot "^29.6.0" + expect "^29.6.1" + jest-snapshot "^29.6.1" -"@jest/fake-timers@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.0.tgz#9751cbabc86a39a1e6827cfcbabeba0207a63c97" - integrity sha512-nuCU46AsZoskthWSDS2Aj6LARgyNcp5Fjx2qxsO/fPl1Wp1CJ+dBDqs0OkEcJK8FBeV/MbjH5efe79M2sHcV+A== +"@jest/fake-timers@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.1.tgz#c773efddbc61e1d2efcccac008139f621de57c69" + integrity sha512-RdgHgbXyosCDMVYmj7lLpUwXA4c69vcNzhrt69dJJdf8azUrpRh3ckFCaTPNjsEeRi27Cig0oKDGxy5j7hOgHg== dependencies: - "@jest/types" "^29.6.0" + "@jest/types" "^29.6.1" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.6.0" - jest-mock "^29.6.0" - jest-util "^29.6.0" + jest-message-util "^29.6.1" + jest-mock "^29.6.1" + jest-util "^29.6.1" -"@jest/globals@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.0.tgz#e1603da83f69ed1a75e272d15da34a6a2fca1e24" - integrity sha512-IQQ3hZ2D/hwEwXSMv5GbfhzdH0nTQR3KPYxnuW6gYWbd6+7/zgMz7Okn6EgBbNtJNONq03k5EKA6HqGyzRbpeg== +"@jest/globals@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.1.tgz#c8a8923e05efd757308082cc22893d82b8aa138f" + integrity sha512-2VjpaGy78JY9n9370H8zGRCFbYVWwjY6RdDMhoJHa1sYfwe6XM/azGN0SjY8kk7BOZApIejQ1BFPyH7FPG0w3A== dependencies: - "@jest/environment" "^29.6.0" - "@jest/expect" "^29.6.0" - "@jest/types" "^29.6.0" - jest-mock "^29.6.0" + "@jest/environment" "^29.6.1" + "@jest/expect" "^29.6.1" + "@jest/types" "^29.6.1" + jest-mock "^29.6.1" -"@jest/reporters@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.0.tgz#09e6d47b3d9b69172cbc344d4cb8954966a7a466" - integrity sha512-dWEq4HI0VvHcAD6XTtyBKKARLytyyWPIy1SvGOcU91106MfvHPdxZgupFwVHd8TFpZPpA3SebYjtwS5BUS76Rw== +"@jest/reporters@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.1.tgz#3325a89c9ead3cf97ad93df3a427549d16179863" + integrity sha512-9zuaI9QKr9JnoZtFQlw4GREQbxgmNYXU6QuWtmuODvk5nvPUeBYapVR/VYMyi2WSx3jXTLJTJji8rN6+Cm4+FA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.6.0" - "@jest/test-result" "^29.6.0" - "@jest/transform" "^29.6.0" - "@jest/types" "^29.6.0" + "@jest/console" "^29.6.1" + "@jest/test-result" "^29.6.1" + "@jest/transform" "^29.6.1" + "@jest/types" "^29.6.1" "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" @@ -486,9 +486,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.6.0" - jest-util "^29.6.0" - jest-worker "^29.6.0" + jest-message-util "^29.6.1" + jest-util "^29.6.1" + jest-worker "^29.6.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -510,51 +510,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.0.tgz#03bd32d3bb696eff5affecf918468bc633fc32d5" - integrity sha512-9qLb7xITeyWhM4yatn2muqfomuoCTOhv0QV9i7XiIyYi3QLfnvPv5NeJp5u0PZeutAOROMLKakOkmoAisOr3YQ== +"@jest/test-result@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.1.tgz#850e565a3f58ee8ca6ec424db00cb0f2d83c36ba" + integrity sha512-Ynr13ZRcpX6INak0TPUukU8GWRfm/vAytE3JbJNGAvINySWYdfE7dGZMbk36oVuK4CigpbhMn8eg1dixZ7ZJOw== dependencies: - "@jest/console" "^29.6.0" - "@jest/types" "^29.6.0" + "@jest/console" "^29.6.1" + "@jest/types" "^29.6.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.0.tgz#30a70e2dcc7dcf1e0f1170b97384883ce0a7d6e5" - integrity sha512-HYCS3LKRQotKWj2mnA3AN13PPevYZu8MJKm12lzYojpJNnn6kI/3PWmr1At/e3tUu+FHQDiOyaDVuR4EV3ezBw== +"@jest/test-sequencer@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.1.tgz#e3e582ee074dd24ea9687d7d1aaf05ee3a9b068e" + integrity sha512-oBkC36PCDf/wb6dWeQIhaviU0l5u6VCsXa119yqdUosYAt7/FbQU2M2UoziO3igj/HBDEgp57ONQ3fm0v9uyyg== dependencies: - "@jest/test-result" "^29.6.0" + "@jest/test-result" "^29.6.1" graceful-fs "^4.2.9" - jest-haste-map "^29.6.0" + jest-haste-map "^29.6.1" slash "^3.0.0" -"@jest/transform@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.0.tgz#dcbb37e35412310073e633816fd7dbc11773596d" - integrity sha512-bhP/KxPo3e322FJ0nKAcb6WVK76ZYyQd1lWygJzoSqP8SYMSLdxHqP4wnPTI4WvbB8PKPDV30y5y7Tya4RHOBA== +"@jest/transform@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.1.tgz#acb5606019a197cb99beda3c05404b851f441c92" + integrity sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.6.0" + "@jest/types" "^29.6.1" "@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 "^29.6.0" + jest-haste-map "^29.6.1" jest-regex-util "^29.4.3" - jest-util "^29.6.0" + jest-util "^29.6.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.0.tgz#717646103c5715394d78c011a08b3cbb83d738e8" - integrity sha512-8XCgL9JhqbJTFnMRjEAO+TuW251+MoMd5BSzLiE3vvzpQ8RlBxy8NoyNkDhs3K3OL3HeVinlOl9or5p7GTeOLg== +"@jest/types@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.1.tgz#ae79080278acff0a6af5eb49d063385aaa897bf2" + integrity sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw== dependencies: "@jest/schemas" "^29.6.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -822,12 +822,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.0.tgz#f97962732a729ca5cb26f610250c0cb4577bf3f8" - integrity sha512-Jj8Bq2yKsk11XLk06Nm8SdvYkAcecH+GuhxB8DnK5SncjHnJ88TQjSnGgE7jpajpnSvz9DZ6X8hXrDkD/6/TPQ== +babel-jest@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.1.tgz#a7141ad1ed5ec50238f3cd36127636823111233a" + integrity sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A== dependencies: - "@jest/transform" "^29.6.0" + "@jest/transform" "^29.6.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.5.0" @@ -1275,17 +1275,17 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.0.tgz#a0c114e91d8b6e9fcfb2d830411958699125bd23" - integrity sha512-AV+HaBtnDJ2YEUhPPo25HyUHBLaetM+y/Dq6pEC8VPQyt1dK+k8MfGkMy46djy2bddcqESc1kl4/K1uLWSfk9g== +expect@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.1.tgz#64dd1c8f75e2c0b209418f2b8d36a07921adfdf1" + integrity sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g== dependencies: - "@jest/expect-utils" "^29.6.0" + "@jest/expect-utils" "^29.6.1" "@types/node" "*" jest-get-type "^29.4.3" - jest-matcher-utils "^29.6.0" - jest-message-util "^29.6.0" - jest-util "^29.6.0" + jest-matcher-utils "^29.6.1" + jest-message-util "^29.6.1" + jest-util "^29.6.1" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1622,87 +1622,87 @@ jest-changed-files@^29.5.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.0.tgz#aa6369bd10aecc8ec68298bd14cf43ac4370958a" - integrity sha512-LtG45qEKhse2Ws5zNR4DnZATReLGQXzBZGZnJ0DU37p6d4wDhu41vvczCQ3Ou+llR6CRYDBshsubV7H4jZvIkw== +jest-circus@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.1.tgz#861dab37e71a89907d1c0fabc54a0019738ed824" + integrity sha512-tPbYLEiBU4MYAL2XoZme/bgfUeotpDBd81lgHLCbDZZFaGmECk0b+/xejPFtmiBP87GgP/y4jplcRpbH+fgCzQ== dependencies: - "@jest/environment" "^29.6.0" - "@jest/expect" "^29.6.0" - "@jest/test-result" "^29.6.0" - "@jest/types" "^29.6.0" + "@jest/environment" "^29.6.1" + "@jest/expect" "^29.6.1" + "@jest/test-result" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.6.0" - jest-matcher-utils "^29.6.0" - jest-message-util "^29.6.0" - jest-runtime "^29.6.0" - jest-snapshot "^29.6.0" - jest-util "^29.6.0" + jest-each "^29.6.1" + jest-matcher-utils "^29.6.1" + jest-message-util "^29.6.1" + jest-runtime "^29.6.1" + jest-snapshot "^29.6.1" + jest-util "^29.6.1" p-limit "^3.1.0" - pretty-format "^29.6.0" + pretty-format "^29.6.1" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.0.tgz#a885e3d5a0b12ba520f61f8496bb0c9c2ff97896" - integrity sha512-WvZIaanK/abkw6s01924DQ2QLwM5Q4Y4iPbSDb9Zg6smyXGqqcPQ7ft9X8D7B0jICz312eSzM6UlQNxuZJBrMw== +jest-cli@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.1.tgz#99d9afa7449538221c71f358f0fdd3e9c6e89f72" + integrity sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing== dependencies: - "@jest/core" "^29.6.0" - "@jest/test-result" "^29.6.0" - "@jest/types" "^29.6.0" + "@jest/core" "^29.6.1" + "@jest/test-result" "^29.6.1" + "@jest/types" "^29.6.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.6.0" - jest-util "^29.6.0" - jest-validate "^29.6.0" + jest-config "^29.6.1" + jest-util "^29.6.1" + jest-validate "^29.6.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.0.tgz#0bca14b634919519a298a56c0ed1d200b9f0fa31" - integrity sha512-fKA4jM91PDqWVkMpb1FVKxIuhg3hC6hgaen57cr1rRZkR96dCatvJZsk3ik7/GNu9ERj9wgAspOmyvkFoGsZhA== +jest-config@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.1.tgz#d785344509065d53a238224c6cdc0ed8e2f2f0dd" + integrity sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.6.0" - "@jest/types" "^29.6.0" - babel-jest "^29.6.0" + "@jest/test-sequencer" "^29.6.1" + "@jest/types" "^29.6.1" + babel-jest "^29.6.1" 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.6.0" - jest-environment-node "^29.6.0" + jest-circus "^29.6.1" + jest-environment-node "^29.6.1" jest-get-type "^29.4.3" jest-regex-util "^29.4.3" - jest-resolve "^29.6.0" - jest-runner "^29.6.0" - jest-util "^29.6.0" - jest-validate "^29.6.0" + jest-resolve "^29.6.1" + jest-runner "^29.6.1" + jest-util "^29.6.1" + jest-validate "^29.6.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.6.0" + pretty-format "^29.6.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.0.tgz#9fe219a2f73a62ed6ac1c1a58e4965dc66836c4b" - integrity sha512-ZRm7cd2m9YyZ0N3iMyuo1iUiprxQ/MFpYWXzEEj7hjzL3WnDffKW8192XBDcrAI8j7hnrM1wed3bL/oEnYF/8w== +jest-diff@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.1.tgz#13df6db0a89ee6ad93c747c75c85c70ba941e545" + integrity sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg== dependencies: chalk "^4.0.0" diff-sequences "^29.4.3" jest-get-type "^29.4.3" - pretty-format "^29.6.0" + pretty-format "^29.6.1" jest-docblock@^29.4.3: version "29.4.3" @@ -1711,94 +1711,94 @@ jest-docblock@^29.4.3: dependencies: detect-newline "^3.0.0" -jest-each@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.0.tgz#320637063b518a51e42b38a0186255e6e5978fe7" - integrity sha512-d0Jem4RBAlFUyV6JSXPSHVUpNo5RleSj+iJEy1G3+ZCrzHDjWs/1jUfrbnJKHdJdAx5BCEce/Ju379WqHhQk4w== +jest-each@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.1.tgz#975058e5b8f55c6780beab8b6ab214921815c89c" + integrity sha512-n5eoj5eiTHpKQCAVcNTT7DRqeUmJ01hsAL0Q1SMiBHcBcvTKDELixQOGMCpqhbIuTcfC4kMfSnpmDqRgRJcLNQ== dependencies: - "@jest/types" "^29.6.0" + "@jest/types" "^29.6.1" chalk "^4.0.0" jest-get-type "^29.4.3" - jest-util "^29.6.0" - pretty-format "^29.6.0" + jest-util "^29.6.1" + pretty-format "^29.6.1" -jest-environment-node@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.0.tgz#634c3027afaa6f4211516348c59642d74b126a1b" - integrity sha512-BOf5Q2/nFCdBOnyBM5c5/6DbdQYgc+0gyUQ8l8qhUAB8O7pM+4QJXIXJsRZJaxd5SHV6y5VArTVhOfogoqcP8Q== +jest-environment-node@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.1.tgz#08a122dece39e58bc388da815a2166c58b4abec6" + integrity sha512-ZNIfAiE+foBog24W+2caIldl4Irh8Lx1PUhg/GZ0odM1d/h2qORAsejiFc7zb+SEmYPn1yDZzEDSU5PmDkmVLQ== dependencies: - "@jest/environment" "^29.6.0" - "@jest/fake-timers" "^29.6.0" - "@jest/types" "^29.6.0" + "@jest/environment" "^29.6.1" + "@jest/fake-timers" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" - jest-mock "^29.6.0" - jest-util "^29.6.0" + jest-mock "^29.6.1" + jest-util "^29.6.1" jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.0.tgz#5f3e6292bc45f596de48835489ddac409748b15a" - integrity sha512-dY1DKufptj7hcJSuhpqlYPGcnN3XjlOy/g0jinpRTMsbb40ivZHiuIPzeminOZkrek8C+oDxC54ILGO3vMLojg== +jest-haste-map@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.1.tgz#62655c7a1c1b349a3206441330fb2dbdb4b63803" + integrity sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig== dependencies: - "@jest/types" "^29.6.0" + "@jest/types" "^29.6.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.4.3" - jest-util "^29.6.0" - jest-worker "^29.6.0" + jest-util "^29.6.1" + jest-worker "^29.6.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.0.tgz#9b96d275622739b4436ee7e91b3f3d386471105c" - integrity sha512-JdV6EZOPxHR1gd6ccxjNowuROkT2jtGU5G/g58RcJX1xe5mrtLj0g6/ZkyMoXF4cs+tTkHMFX6pcIrB1QPQwCw== +jest-leak-detector@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.1.tgz#66a902c81318e66e694df7d096a95466cb962f8e" + integrity sha512-OrxMNyZirpOEwkF3UHnIkAiZbtkBWiye+hhBweCHkVbCgyEy71Mwbb5zgeTNYWJBi1qgDVfPC1IwO9dVEeTLwQ== dependencies: jest-get-type "^29.4.3" - pretty-format "^29.6.0" + pretty-format "^29.6.1" -jest-matcher-utils@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.0.tgz#4465344800591022a5239f529857c053da6a9d5c" - integrity sha512-oSlqfGN+sbkB2Q5um/zL7z80w84FEAcLKzXBZIPyRk2F2Srg1ubhrHVKW68JCvb2+xKzAeGw35b+6gciS24PHw== +jest-matcher-utils@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.1.tgz#6c60075d84655d6300c5d5128f46531848160b53" + integrity sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA== dependencies: chalk "^4.0.0" - jest-diff "^29.6.0" + jest-diff "^29.6.1" jest-get-type "^29.4.3" - pretty-format "^29.6.0" + pretty-format "^29.6.1" -jest-message-util@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.0.tgz#b23c1f787fcc226c49489fd53018100c2f434fe6" - integrity sha512-mkCp56cETbpoNtsaeWVy6SKzk228mMi9FPHSObaRIhbR2Ujw9PqjW/yqVHD2tN1bHbC8ol6h3UEo7dOPmIYwIA== +jest-message-util@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.1.tgz#d0b21d87f117e1b9e165e24f245befd2ff34ff8d" + integrity sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.0" + "@jest/types" "^29.6.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.6.0" + pretty-format "^29.6.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.0.tgz#4643fe35a3f20ef9a71f2a61f037a2ff05702d55" - integrity sha512-2Pb7R2w24Q0aUVn+2/vdRDL6CqGqpheDZy7zrXav8FotOpSGw/4bS2hyVoKHMEx4xzOn6EyCAGwc5czWxXeN7w== +jest-mock@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.1.tgz#049ee26aea8cbf54c764af649070910607316517" + integrity sha512-brovyV9HBkjXAEdRooaTQK42n8usKoSRR3gihzUpYeV/vwqgSoNfrksO7UfSACnPmxasO/8TmHM3w9Hp3G1dgw== dependencies: - "@jest/types" "^29.6.0" + "@jest/types" "^29.6.1" "@types/node" "*" - jest-util "^29.6.0" + jest-util "^29.6.1" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -1810,168 +1810,168 @@ jest-regex-util@^29.4.3: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve-dependencies@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.0.tgz#772a315ebf2556c3c0ced98f268d2f931efab8a5" - integrity sha512-eOfPog9K3hJdJk/3i6O6bQhXS+3uXhMDkLJGX+xmMPp7T1d/zdcFofbDnHgNoEkhD/mSimC5IagLEP7lpLLu/A== +jest-resolve-dependencies@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.1.tgz#b85b06670f987a62515bbf625d54a499e3d708f5" + integrity sha512-BbFvxLXtcldaFOhNMXmHRWx1nXQO5LoXiKSGQcA1LxxirYceZT6ch8KTE1bK3X31TNG/JbkI7OkS/ABexVahiw== dependencies: jest-regex-util "^29.4.3" - jest-snapshot "^29.6.0" + jest-snapshot "^29.6.1" -jest-resolve@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.0.tgz#e7ffd4ebfd03d0ef442eba00611b5a5ea18996b5" - integrity sha512-+hrpY4LzAONoZA/rvB6rnZLkOSA6UgJLpdCWrOZNSgGxWMumzRLu7dLUSCabAHzoHIDQ9qXfr3th1zYNJ0E8sQ== +jest-resolve@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.1.tgz#4c3324b993a85e300add2f8609f51b80ddea39ee" + integrity sha512-AeRkyS8g37UyJiP9w3mmI/VXU/q8l/IH52vj/cDAyScDcemRbSBhfX/NMYIGilQgSVwsjxrCHf3XJu4f+lxCMg== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.0" + jest-haste-map "^29.6.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.6.0" - jest-validate "^29.6.0" + jest-util "^29.6.1" + jest-validate "^29.6.1" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.0.tgz#7d8680b80c92c6fb94b9960714cd7004de7ef948" - integrity sha512-4fZuGV2lOxS2BiqEG9/AI8E6O+jo+QZjMVcgi1x5E6aDql0Gd/EFIbUQ0pSS09y8cya1vJB/qC2xsE468jqtSg== - dependencies: - "@jest/console" "^29.6.0" - "@jest/environment" "^29.6.0" - "@jest/test-result" "^29.6.0" - "@jest/transform" "^29.6.0" - "@jest/types" "^29.6.0" +jest-runner@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.1.tgz#54557087e7972d345540d622ab5bfc3d8f34688c" + integrity sha512-tw0wb2Q9yhjAQ2w8rHRDxteryyIck7gIzQE4Reu3JuOBpGp96xWgF0nY8MDdejzrLCZKDcp8JlZrBN/EtkQvPQ== + dependencies: + "@jest/console" "^29.6.1" + "@jest/environment" "^29.6.1" + "@jest/test-result" "^29.6.1" + "@jest/transform" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.4.3" - jest-environment-node "^29.6.0" - jest-haste-map "^29.6.0" - jest-leak-detector "^29.6.0" - jest-message-util "^29.6.0" - jest-resolve "^29.6.0" - jest-runtime "^29.6.0" - jest-util "^29.6.0" - jest-watcher "^29.6.0" - jest-worker "^29.6.0" + jest-environment-node "^29.6.1" + jest-haste-map "^29.6.1" + jest-leak-detector "^29.6.1" + jest-message-util "^29.6.1" + jest-resolve "^29.6.1" + jest-runtime "^29.6.1" + jest-util "^29.6.1" + jest-watcher "^29.6.1" + jest-worker "^29.6.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.0.tgz#0f6d98b40625c620c6fa1f075c3b0ca95daa8f1c" - integrity sha512-5FavYo3EeXLHIvnJf+r7Cj0buePAbe4mzRB9oeVxDS0uVmouSBjWeGgyRjZkw7ArxOoZI8gO6f8SGMJ2HFlwwg== +jest-runtime@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.1.tgz#8a0fc9274ef277f3d70ba19d238e64334958a0dc" + integrity sha512-D6/AYOA+Lhs5e5il8+5pSLemjtJezUr+8zx+Sn8xlmOux3XOqx4d8l/2udBea8CRPqqrzhsKUsN/gBDE/IcaPQ== dependencies: - "@jest/environment" "^29.6.0" - "@jest/fake-timers" "^29.6.0" - "@jest/globals" "^29.6.0" + "@jest/environment" "^29.6.1" + "@jest/fake-timers" "^29.6.1" + "@jest/globals" "^29.6.1" "@jest/source-map" "^29.6.0" - "@jest/test-result" "^29.6.0" - "@jest/transform" "^29.6.0" - "@jest/types" "^29.6.0" + "@jest/test-result" "^29.6.1" + "@jest/transform" "^29.6.1" + "@jest/types" "^29.6.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.6.0" - jest-message-util "^29.6.0" - jest-mock "^29.6.0" + jest-haste-map "^29.6.1" + jest-message-util "^29.6.1" + jest-mock "^29.6.1" jest-regex-util "^29.4.3" - jest-resolve "^29.6.0" - jest-snapshot "^29.6.0" - jest-util "^29.6.0" + jest-resolve "^29.6.1" + jest-snapshot "^29.6.1" + jest-util "^29.6.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.0.tgz#a8653fe098f1c39ab37c94f8b1370f606b5618a9" - integrity sha512-H3kUE9NwWDEDoutcOSS921IqdlkdjgnMdj1oMyxAHNflscdLc9dB8OudZHV6kj4OHJxbMxL8CdI5DlwYrs4wQg== +jest-snapshot@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.1.tgz#0d083cb7de716d5d5cdbe80d598ed2fbafac0239" + integrity sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A== 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.6.0" - "@jest/transform" "^29.6.0" - "@jest/types" "^29.6.0" + "@jest/expect-utils" "^29.6.1" + "@jest/transform" "^29.6.1" + "@jest/types" "^29.6.1" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.6.0" + expect "^29.6.1" graceful-fs "^4.2.9" - jest-diff "^29.6.0" + jest-diff "^29.6.1" jest-get-type "^29.4.3" - jest-matcher-utils "^29.6.0" - jest-message-util "^29.6.0" - jest-util "^29.6.0" + jest-matcher-utils "^29.6.1" + jest-message-util "^29.6.1" + jest-util "^29.6.1" natural-compare "^1.4.0" - pretty-format "^29.6.0" + pretty-format "^29.6.1" semver "^7.5.3" -jest-util@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.0.tgz#4071050c5d70f5d4d48105e8883773f3a6b94f8d" - integrity sha512-S0USx9YwcvEm4pQ5suisVm/RVxBmi0GFR7ocJhIeaCuW5AXnAnffXbaVKvIFodyZNOc9ygzVtTxmBf40HsHXaA== +jest-util@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.1.tgz#c9e29a87a6edbf1e39e6dee2b4689b8a146679cb" + integrity sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg== dependencies: - "@jest/types" "^29.6.0" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.0.tgz#6a7416a1df4fe90896db566b83d6b4c9485c402c" - integrity sha512-MLTrAJsb1+W7svbeZ+A7pAnyXMaQrjvPDKCy7OlfsfB6TMVc69v7WjUWfiR6r3snULFWZASiKgvNVDuATta1dg== +jest-validate@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.1.tgz#765e684af6e2c86dce950aebefbbcd4546d69f7b" + integrity sha512-r3Ds69/0KCN4vx4sYAbGL1EVpZ7MSS0vLmd3gV78O+NAx3PDQQukRU5hNHPXlyqCgFY8XUk7EuTMLugh0KzahA== dependencies: - "@jest/types" "^29.6.0" + "@jest/types" "^29.6.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.6.0" + pretty-format "^29.6.1" -jest-watcher@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.0.tgz#77df9ffcdfc70406fdd577020c1e4d62de5a0299" - integrity sha512-LdsQqFNX60mRdRRe+zsELnYRH1yX6KL+ukbh+u6WSQeTheZZe1TlLJNKRQiZ7e0VbvMkywmMWL/KV35noOJCcw== +jest-watcher@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.1.tgz#7c0c43ddd52418af134c551c92c9ea31e5ec942e" + integrity sha512-d4wpjWTS7HEZPaaj8m36QiaP856JthRZkrgcIY/7ISoUWPIillrXM23WPboZVLbiwZBt4/qn2Jke84Sla6JhFA== dependencies: - "@jest/test-result" "^29.6.0" - "@jest/types" "^29.6.0" + "@jest/test-result" "^29.6.1" + "@jest/types" "^29.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.6.0" + jest-util "^29.6.1" string-length "^4.0.1" -jest-worker@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.0.tgz#e0c40226d073fdb8f0dfe87d7f90f8fd987d8ba3" - integrity sha512-oiQHH1SnKmZIwwPnpOrXTq4kHBk3lKGY/07DpnH0sAu+x7J8rXlbLDROZsU6vy9GwB0hPiZeZpu6YlJ48QoKcA== +jest-worker@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.1.tgz#64b015f0e985ef3a8ad049b61fe92b3db74a5319" + integrity sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA== dependencies: "@types/node" "*" - jest-util "^29.6.0" + jest-util "^29.6.1" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.5.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.0.tgz#dbc8136e6d933177487e2427187e07ebf9db8ce4" - integrity sha512-do1J9gGrQ68E4UfMz/4OM71p9qCqQxu32N/9ZfeYFSSlx0uUOuxeyZxtJZNaUTW12ZA11ERhmBjBhy1Ho96R4g== + version "29.6.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.1.tgz#74be1cb719c3abe439f2d94aeb18e6540a5b02ad" + integrity sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw== dependencies: - "@jest/core" "^29.6.0" - "@jest/types" "^29.6.0" + "@jest/core" "^29.6.1" + "@jest/types" "^29.6.1" import-local "^3.0.2" - jest-cli "^29.6.0" + jest-cli "^29.6.1" js-tokens@^4.0.0: version "4.0.0" @@ -2289,10 +2289,10 @@ prettier@>=3.0.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== -pretty-format@^29.6.0: - version "29.6.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.0.tgz#c90c8f145187fe73240662527a513599c16f3b97" - integrity sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ== +pretty-format@^29.6.1: + version "29.6.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.1.tgz#ec838c288850b7c4f9090b867c2d4f4edbfb0f3e" + integrity sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog== dependencies: "@jest/schemas" "^29.6.0" ansi-styles "^5.0.0" From bd96fafffc4881340c8bb2b6d219611d5b3f605e Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Sat, 8 Jul 2023 12:31:38 -0400 Subject: [PATCH 198/262] Make sure to read all data from response socket --- src/plugin.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/plugin.js b/src/plugin.js index 5d31a7df..22459cad 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -140,10 +140,7 @@ if (process.env.PRETTIER_RUBY_HOST) { connectionOptions = JSON.parse(process.env.PRETTIER_RUBY_HOST); } -// Formats and sends a request to the parser server. We use netcat (or something -// like it) here since Prettier requires the results of `parse` to be -// synchronous and Node.js does not offer a mechanism for synchronous socket -// requests. +// Formats and sends an asynchronous request to the parser server. async function parse(parser, source, opts) { if (!connectionOptions) { const spawnedServer = await spawnServer(opts); @@ -152,10 +149,18 @@ async function parse(parser, source, opts) { return new Promise((resolve, reject) => { const socket = new net.Socket(); + let chunks = ""; + + socket.on("error", (error) => { + reject(error); + }); - socket.on("error", reject); socket.on("data", (data) => { - const response = JSON.parse(data.toString("utf-8")); + chunks += data.toString("utf-8"); + }); + + socket.on("end", () => { + const response = JSON.parse(chunks); if (response.error) { const error = new Error(response.error); From 08d74a2f9c19fe0370dca9465f0aab3c741eb764 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Sat, 8 Jul 2023 12:35:58 -0400 Subject: [PATCH 199/262] Bump to version 4.0.1 --- .github/workflows/main.yml | 48 +++----------------------------------- CHANGELOG.md | 9 ++++++- package.json | 2 +- 3 files changed, 12 insertions(+), 47 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bfb14f96..62292d9f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,9 +14,9 @@ jobs: - ubuntu-latest - windows-latest ruby: - - "2.7" - "3.0" - "3.1" + - "3.2" runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@main @@ -49,48 +49,6 @@ jobs: - run: yarn checkFormat - run: yarn lint - # smoketest: - # name: Yarn PnP smoke test - # strategy: - # fail-fast: false - # matrix: - # platform: - # - macos-latest - # - ubuntu-latest - # - windows-latest - # yarn: - # - 2.x - # - 3.x - # runs-on: ${{ matrix.platform }} - # steps: - # - uses: actions/checkout@main - # - uses: ruby/setup-ruby@v1 - # with: - # bundler-cache: true - # ruby-version: "3.1" - # - run: gem install syntax_tree syntax_tree-haml syntax_tree-rbs - # - uses: actions/setup-node@v3 - # with: - # node-version: 18.x - # cache: yarn - # - run: yarn install --frozen-lockfile - # - run: yarn pack - # # Windows runners don't have /tmp, let's make sure it exists - # - run: mkdir -p /tmp - # - run: mv prettier-plugin-ruby-*.tgz /tmp/prettier-plugin-ruby.tgz - # - run: mkdir /tmp/smoketest - # - name: Smoke test - # run: | - # cd /tmp/smoketest - # echo '{ "name": "smoketest", "type": "module", "license": "MIT" }' > package.json - # yarn set version berry # workaround for https://github.com/yarnpkg/berry/issues/3180 - # yarn set version ${{ matrix.yarn }} - # yarn add prettier@next @prettier/plugin-ruby@file:/tmp/prettier-plugin-ruby.tgz - # npx rimraf .yarn/unplugged # Make sure Yarn didn't unplug anything; this will deliberately break if it did - # echo '{ "plugins": ["@prettier/plugin-ruby"] }' > .prettierrc.json - # echo 'def add(a, b) ; a + b ; end' > smoketest.rb - # yarn run prettier -w smoketest.rb && ruby -c smoketest.rb - gem: name: Gem runs-on: ubuntu-latest @@ -99,10 +57,10 @@ jobs: - uses: ruby/setup-ruby@v1 with: bundler-cache: true - ruby-version: "3.1" + ruby-version: "3.2" - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x cache: yarn - run: yarn install --frozen-lockfile - run: gem build -o prettier.gem diff --git a/CHANGELOG.md b/CHANGELOG.md index 05786ca4..8b777b0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [4.0.1] - 2023-07-08 + +### Changed + +- [#1363](https://github.com/prettier/plugin-ruby/pull/1363) - mscrivo, kddnewton - Ensure all data is read from socket before attempting to parse to JSON. + ## [4.0.0] - 2023-07-06 ### Added @@ -1279,7 +1285,8 @@ would previously result in `array[]`, but now prints properly. - Initial release 🎉 -[unreleased]: https://github.com/prettier/plugin-ruby/compare/v4.0.0...HEAD +[unreleased]: https://github.com/prettier/plugin-ruby/compare/v4.0.1...HEAD +[4.0.1]: https://github.com/prettier/plugin-ruby/compare/v4.0.0...v4.0.1 [4.0.0]: https://github.com/prettier/plugin-ruby/compare/v3.2.2...v4.0.0 [3.2.2]: https://github.com/prettier/plugin-ruby/compare/v3.2.1...v3.2.2 [3.2.1]: https://github.com/prettier/plugin-ruby/compare/v3.2.0...v3.2.1 diff --git a/package.json b/package.json index d2b550fa..2cf48c9d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "4.0.0", + "version": "4.0.1", "description": "prettier plugin for the Ruby programming language", "type": "module", "main": "src/plugin.js", From 3c968a4c3bdc0c5263b93465c2ff05ea21173449 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jul 2023 00:57:55 +0000 Subject: [PATCH 200/262] Bump semver from 6.3.0 to 6.3.1 Bumps [semver](https://github.com/npm/node-semver) from 6.3.0 to 6.3.1. - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/v6.3.1/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v6.3.0...v6.3.1) --- updated-dependencies: - dependency-name: semver dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index a1c0fbb1..19f2949b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2402,14 +2402,14 @@ run-parallel@^1.1.9: queue-microtask "^1.2.2" semver@^6.0.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.5.3: - version "7.5.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" - integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" From 27de9a88d3990a8084d1947c438ea4b0fc75317d Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 14 Jul 2023 11:34:01 -0400 Subject: [PATCH 201/262] Specify prettier as a peer dependency --- package.json | 5 +-- yarn.lock | 92 ++++++++++++++++++++++++---------------------------- 2 files changed, 45 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index 2cf48c9d..2cf27772 100644 --- a/package.json +++ b/package.json @@ -19,14 +19,15 @@ "url": "https://github.com/prettier/plugin-ruby/issues" }, "homepage": "https://github.com/prettier/plugin-ruby#readme", - "dependencies": { - "prettier": ">=3.0.0" + "peerDependencies": { + "prettier": "^3.0.0" }, "devDependencies": { "eslint": "^8.35.0", "eslint-config-prettier": "^8.7.0", "husky": "^8.0.1", "jest": "^29.5.0", + "prettier": "^3.0.0", "pretty-quick": "^3.1.2" }, "eslintConfig": { diff --git a/yarn.lock b/yarn.lock index 19f2949b..4d964f9d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,52 +22,52 @@ dependencies: "@babel/highlight" "^7.22.5" -"@babel/compat-data@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.6.tgz#15606a20341de59ba02cd2fcc5086fcbe73bf544" - integrity sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg== +"@babel/compat-data@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" + integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.8.tgz#386470abe884302db9c82e8e5e87be9e46c86785" - integrity sha512-75+KxFB4CZqYRXjx4NlR4J7yGvKumBuZTmV4NV6v09dVXXkuYVYLT68N6HCzLvfJ+fWCxQsntNzKwwIXL4bHnw== + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" + integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-module-transforms" "^7.22.5" + "@babel/generator" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-module-transforms" "^7.22.9" "@babel/helpers" "^7.22.6" "@babel/parser" "^7.22.7" "@babel/template" "^7.22.5" "@babel/traverse" "^7.22.8" "@babel/types" "^7.22.5" - "@nicolo-ribaudo/semver-v6" "^6.3.3" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.2" + semver "^6.3.1" -"@babel/generator@^7.22.7", "@babel/generator@^7.7.2": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" - integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== +"@babel/generator@^7.22.7", "@babel/generator@^7.22.9", "@babel/generator@^7.7.2": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" + integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== dependencies: "@babel/types" "^7.22.5" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz#e30d61abe9480aa5a83232eb31c111be922d2e52" - integrity sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA== +"@babel/helper-compilation-targets@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" + integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== dependencies: - "@babel/compat-data" "^7.22.6" + "@babel/compat-data" "^7.22.9" "@babel/helper-validator-option" "^7.22.5" - "@nicolo-ribaudo/semver-v6" "^6.3.3" browserslist "^4.21.9" lru-cache "^5.1.1" + semver "^6.3.1" "@babel/helper-environment-visitor@^7.22.5": version "7.22.5" @@ -96,19 +96,16 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-transforms@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz#0f65daa0716961b6e96b164034e737f60a80d2ef" - integrity sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw== +"@babel/helper-module-transforms@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" + integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== dependencies: "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-module-imports" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" "@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.22.5", "@babel/helper-plugin-utils@^7.8.0": version "7.22.5" @@ -122,7 +119,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-split-export-declaration@^7.22.5", "@babel/helper-split-export-declaration@^7.22.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== @@ -274,7 +271,7 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/traverse@^7.22.5", "@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": +"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": version "7.22.8" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== @@ -600,11 +597,6 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@nicolo-ribaudo/semver-v6@^6.3.3": - version "6.3.3" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" - integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== - "@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" @@ -710,9 +702,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "20.4.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.0.tgz#01d637d1891e419bc85763b46f42809cd2d5addb" - integrity sha512-jfT7iTf/4kOQ9S7CHV9BIyRaQqHu67mOjsIQBC3BKZvzvUB6zLxEwJ6sBE3ozcvP8kF6Uk5PXN0Q+c0dfhGX0g== + version "20.4.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.2.tgz#129cc9ae69f93824f92fac653eebfb4812ab4af9" + integrity sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw== "@types/prettier@^2.1.5": version "2.7.3" @@ -940,9 +932,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001503: - version "1.0.30001512" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001512.tgz#7450843fb581c39f290305a83523c7a9ef0d4cb4" - integrity sha512-2S9nK0G/mE+jasCUsMPlARhRCts1ebcp2Ji8Y8PWi4NDE1iRdLCnEPHkEfeBrGC45L4isBx5ur3IQ6yTE2mRZw== + version "1.0.30001515" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz#418aefeed9d024cd3129bfae0ccc782d4cb8f12b" + integrity sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA== chalk@^2.0.0: version "2.4.2" @@ -1091,9 +1083,9 @@ doctrine@^3.0.0: esutils "^2.0.2" electron-to-chromium@^1.4.431: - version "1.4.451" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.451.tgz#12b63ee5c82cbbc7b4ddd91e90f5a0dfc10de26e" - integrity sha512-YYbXHIBxAHe3KWvGOJOuWa6f3tgow44rBW+QAuwVp2DvGqNZeE//K2MowNdWS7XE8li5cgQDrX1LdBr41LufkA== + version "1.4.460" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.460.tgz#f360a5059c039c4a5fb4dfa99680ad8129dd9f84" + integrity sha512-kKiHnbrHME7z8E6AYaw0ehyxY5+hdaRmeUbjBO22LZMdqTYCO29EvF0T1cQ3pJ1RN5fyMcHl1Lmcsdt9WWJpJQ== emittery@^0.13.1: version "0.13.1" @@ -2145,9 +2137,9 @@ node-int64@^0.4.0: integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-releases@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" - integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== + 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== normalize-path@^3.0.0: version "3.0.0" @@ -2284,7 +2276,7 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@>=3.0.0: +prettier@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== @@ -2401,7 +2393,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -semver@^6.0.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== From e0f322b80cfff1a9ea743b5e814d36549f3bcf02 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 14 Jul 2023 11:38:40 -0400 Subject: [PATCH 202/262] Bump to version 4.0.2 --- CHANGELOG.md | 9 ++++++++- package.json | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b777b0c..86272b3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [4.0.2] - 2023-07-14 + +### Changed + +- [#1367](https://github.com/prettier/plugin-ruby/pull/1367) - kddnewton - Specify `prettier` as a peer dependency and not a runtime dependency. + ## [4.0.1] - 2023-07-08 ### Changed @@ -1285,7 +1291,8 @@ would previously result in `array[]`, but now prints properly. - Initial release 🎉 -[unreleased]: https://github.com/prettier/plugin-ruby/compare/v4.0.1...HEAD +[unreleased]: https://github.com/prettier/plugin-ruby/compare/v4.0.2...HEAD +[4.0.2]: https://github.com/prettier/plugin-ruby/compare/v4.0.1...v4.0.2 [4.0.1]: https://github.com/prettier/plugin-ruby/compare/v4.0.0...v4.0.1 [4.0.0]: https://github.com/prettier/plugin-ruby/compare/v3.2.2...v4.0.0 [3.2.2]: https://github.com/prettier/plugin-ruby/compare/v3.2.1...v3.2.2 diff --git a/package.json b/package.json index 2cf27772..a2862f8f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "4.0.1", + "version": "4.0.2", "description": "prettier plugin for the Ruby programming language", "type": "module", "main": "src/plugin.js", From 96745b1eee36cdf58b13868497b8ee16acb00b63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 12:37:22 +0000 Subject: [PATCH 203/262] Bump eslint from 8.44.0 to 8.45.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.44.0 to 8.45.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.44.0...v8.45.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4d964f9d..3ed82be5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1150,9 +1150,9 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== eslint@^8.35.0: - version "8.44.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.44.0.tgz#51246e3889b259bbcd1d7d736a0c10add4f0e500" - integrity sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A== + version "8.45.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78" + integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.4.0" @@ -1179,7 +1179,6 @@ eslint@^8.35.0: globals "^13.19.0" graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" @@ -1191,7 +1190,6 @@ eslint@^8.35.0: natural-compare "^1.4.0" optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" espree@^9.6.0: @@ -1476,7 +1474,7 @@ ignore@^5.1.4, ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -2491,7 +2489,7 @@ 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-json-comments@^3.1.0, strip-json-comments@^3.1.1: +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" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== From 49a6c4abc6911e79e254d2ff1abf39ac52b80118 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Thu, 20 Jul 2023 09:43:15 -0400 Subject: [PATCH 204/262] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44ebaab9..7349d98f 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ gem install bundler prettier_print syntax_tree syntax_tree-haml syntax_tree-rbs The `prettier` executable is now installed and ready for use: ```bash -./node_modules/.bin/prettier --write '**/*' +./node_modules/.bin/prettier --plugin=@prettier/plugin-ruby --write '**/*' ``` ## Configuration From fac6fc72c10849456c53d40f933aa7c841c65199 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jul 2023 12:46:13 +0000 Subject: [PATCH 205/262] Bump jest from 29.6.1 to 29.6.2 Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.6.1 to 29.6.2. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/commits/v29.6.2/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 542 +++++++++++++++++++++++++++--------------------------- 1 file changed, 268 insertions(+), 274 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3ed82be5..a12b6d08 100644 --- a/yarn.lock +++ b/yarn.lock @@ -368,27 +368,27 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.1.tgz#b48ba7b9c34b51483e6d590f46e5837f1ab5f639" - integrity sha512-Aj772AYgwTSr5w8qnyoJ0eDYvN6bMsH3ORH1ivMotrInHLKdUz6BDlaEXHdM6kODaBIkNIyQGzsMvRdOv7VG7Q== +"@jest/console@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.2.tgz#bf1d4101347c23e07c029a1b1ae07d550f5cc541" + integrity sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w== dependencies: "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.6.1" - jest-util "^29.6.1" + jest-message-util "^29.6.2" + jest-util "^29.6.2" slash "^3.0.0" -"@jest/core@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.1.tgz#fac0d9ddf320490c93356ba201451825231e95f6" - integrity sha512-CcowHypRSm5oYQ1obz1wfvkjZZ2qoQlrKKvlfPwh5jUXVU12TWr2qMeH8chLMuTFzHh5a1g2yaqlqDICbr+ukQ== +"@jest/core@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.2.tgz#6f2d1dbe8aa0265fcd4fb8082ae1952f148209c8" + integrity sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg== dependencies: - "@jest/console" "^29.6.1" - "@jest/reporters" "^29.6.1" - "@jest/test-result" "^29.6.1" - "@jest/transform" "^29.6.1" + "@jest/console" "^29.6.2" + "@jest/reporters" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" "@jest/types" "^29.6.1" "@types/node" "*" ansi-escapes "^4.2.1" @@ -397,79 +397,79 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.5.0" - jest-config "^29.6.1" - jest-haste-map "^29.6.1" - jest-message-util "^29.6.1" + jest-config "^29.6.2" + jest-haste-map "^29.6.2" + jest-message-util "^29.6.2" jest-regex-util "^29.4.3" - jest-resolve "^29.6.1" - jest-resolve-dependencies "^29.6.1" - jest-runner "^29.6.1" - jest-runtime "^29.6.1" - jest-snapshot "^29.6.1" - jest-util "^29.6.1" - jest-validate "^29.6.1" - jest-watcher "^29.6.1" + jest-resolve "^29.6.2" + jest-resolve-dependencies "^29.6.2" + jest-runner "^29.6.2" + jest-runtime "^29.6.2" + jest-snapshot "^29.6.2" + jest-util "^29.6.2" + jest-validate "^29.6.2" + jest-watcher "^29.6.2" micromatch "^4.0.4" - pretty-format "^29.6.1" + pretty-format "^29.6.2" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.1.tgz#ee358fff2f68168394b4a50f18c68278a21fe82f" - integrity sha512-RMMXx4ws+Gbvw3DfLSuo2cfQlK7IwGbpuEWXCqyYDcqYTI+9Ju3a5hDnXaxjNsa6uKh9PQF2v+qg+RLe63tz5A== +"@jest/environment@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.2.tgz#794c0f769d85e7553439d107d3f43186dc6874a9" + integrity sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q== dependencies: - "@jest/fake-timers" "^29.6.1" + "@jest/fake-timers" "^29.6.2" "@jest/types" "^29.6.1" "@types/node" "*" - jest-mock "^29.6.1" + jest-mock "^29.6.2" -"@jest/expect-utils@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.1.tgz#ab83b27a15cdd203fe5f68230ea22767d5c3acc5" - integrity sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw== +"@jest/expect-utils@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.2.tgz#1b97f290d0185d264dd9fdec7567a14a38a90534" + integrity sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg== dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.1.tgz#fef18265188f6a97601f1ea0a2912d81a85b4657" - integrity sha512-N5xlPrAYaRNyFgVf2s9Uyyvr795jnB6rObuPx4QFvNJz8aAjpZUDfO4bh5G/xuplMID8PrnuF1+SfSyDxhsgYg== +"@jest/expect@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.2.tgz#5a2ad58bb345165d9ce0a1845bbf873c480a4b28" + integrity sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg== dependencies: - expect "^29.6.1" - jest-snapshot "^29.6.1" + expect "^29.6.2" + jest-snapshot "^29.6.2" -"@jest/fake-timers@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.1.tgz#c773efddbc61e1d2efcccac008139f621de57c69" - integrity sha512-RdgHgbXyosCDMVYmj7lLpUwXA4c69vcNzhrt69dJJdf8azUrpRh3ckFCaTPNjsEeRi27Cig0oKDGxy5j7hOgHg== +"@jest/fake-timers@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.2.tgz#fe9d43c5e4b1b901168fe6f46f861b3e652a2df4" + integrity sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA== dependencies: "@jest/types" "^29.6.1" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.6.1" - jest-mock "^29.6.1" - jest-util "^29.6.1" + jest-message-util "^29.6.2" + jest-mock "^29.6.2" + jest-util "^29.6.2" -"@jest/globals@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.1.tgz#c8a8923e05efd757308082cc22893d82b8aa138f" - integrity sha512-2VjpaGy78JY9n9370H8zGRCFbYVWwjY6RdDMhoJHa1sYfwe6XM/azGN0SjY8kk7BOZApIejQ1BFPyH7FPG0w3A== +"@jest/globals@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.2.tgz#74af81b9249122cc46f1eb25793617eec69bf21a" + integrity sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw== dependencies: - "@jest/environment" "^29.6.1" - "@jest/expect" "^29.6.1" + "@jest/environment" "^29.6.2" + "@jest/expect" "^29.6.2" "@jest/types" "^29.6.1" - jest-mock "^29.6.1" + jest-mock "^29.6.2" -"@jest/reporters@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.1.tgz#3325a89c9ead3cf97ad93df3a427549d16179863" - integrity sha512-9zuaI9QKr9JnoZtFQlw4GREQbxgmNYXU6QuWtmuODvk5nvPUeBYapVR/VYMyi2WSx3jXTLJTJji8rN6+Cm4+FA== +"@jest/reporters@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.2.tgz#524afe1d76da33d31309c2c4a2c8062d0c48780a" + integrity sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.6.1" - "@jest/test-result" "^29.6.1" - "@jest/transform" "^29.6.1" + "@jest/console" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" "@jest/types" "^29.6.1" "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" @@ -483,9 +483,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.6.1" - jest-util "^29.6.1" - jest-worker "^29.6.1" + jest-message-util "^29.6.2" + jest-util "^29.6.2" + jest-worker "^29.6.2" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -507,30 +507,30 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.1.tgz#850e565a3f58ee8ca6ec424db00cb0f2d83c36ba" - integrity sha512-Ynr13ZRcpX6INak0TPUukU8GWRfm/vAytE3JbJNGAvINySWYdfE7dGZMbk36oVuK4CigpbhMn8eg1dixZ7ZJOw== +"@jest/test-result@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.2.tgz#fdd11583cd1608e4db3114e8f0cce277bf7a32ed" + integrity sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw== dependencies: - "@jest/console" "^29.6.1" + "@jest/console" "^29.6.2" "@jest/types" "^29.6.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.1.tgz#e3e582ee074dd24ea9687d7d1aaf05ee3a9b068e" - integrity sha512-oBkC36PCDf/wb6dWeQIhaviU0l5u6VCsXa119yqdUosYAt7/FbQU2M2UoziO3igj/HBDEgp57ONQ3fm0v9uyyg== +"@jest/test-sequencer@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.2.tgz#585eff07a68dd75225a7eacf319780cb9f6b9bf4" + integrity sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw== dependencies: - "@jest/test-result" "^29.6.1" + "@jest/test-result" "^29.6.2" graceful-fs "^4.2.9" - jest-haste-map "^29.6.1" + jest-haste-map "^29.6.2" slash "^3.0.0" -"@jest/transform@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.1.tgz#acb5606019a197cb99beda3c05404b851f441c92" - integrity sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg== +"@jest/transform@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.2.tgz#522901ebbb211af08835bc3bcdf765ab778094e3" + integrity sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg== dependencies: "@babel/core" "^7.11.6" "@jest/types" "^29.6.1" @@ -540,9 +540,9 @@ convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.1" + jest-haste-map "^29.6.2" jest-regex-util "^29.4.3" - jest-util "^29.6.1" + jest-util "^29.6.2" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -706,11 +706,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.2.tgz#129cc9ae69f93824f92fac653eebfb4812ab4af9" integrity sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw== -"@types/prettier@^2.1.5": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== - "@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" @@ -814,12 +809,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.1.tgz#a7141ad1ed5ec50238f3cd36127636823111233a" - integrity sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A== +babel-jest@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.2.tgz#cada0a59e07f5acaeb11cbae7e3ba92aec9c1126" + integrity sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A== dependencies: - "@jest/transform" "^29.6.1" + "@jest/transform" "^29.6.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.5.0" @@ -1050,10 +1045,10 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: dependencies: ms "2.1.2" -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== +dedent@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.2.0.tgz#32039cd75c035f684e01c4a07cb88c0ecbeb57be" + integrity sha512-i4tcg0ClgvMUSxwHpt+NHQ01ZJmAkl6eBvDNrSZG9e+oLRTCSHv0wpr/Bzjpf6CwKeIHGevE1M34Y1Axdms5VQ== deep-is@^0.1.3: version "0.1.4" @@ -1265,17 +1260,17 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.1.tgz#64dd1c8f75e2c0b209418f2b8d36a07921adfdf1" - integrity sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g== +expect@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.2.tgz#7b08e83eba18ddc4a2cf62b5f2d1918f5cd84521" + integrity sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA== dependencies: - "@jest/expect-utils" "^29.6.1" + "@jest/expect-utils" "^29.6.2" "@types/node" "*" jest-get-type "^29.4.3" - jest-matcher-utils "^29.6.1" - jest-message-util "^29.6.1" - jest-util "^29.6.1" + jest-matcher-utils "^29.6.2" + jest-message-util "^29.6.2" + jest-util "^29.6.2" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1612,87 +1607,87 @@ jest-changed-files@^29.5.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.1.tgz#861dab37e71a89907d1c0fabc54a0019738ed824" - integrity sha512-tPbYLEiBU4MYAL2XoZme/bgfUeotpDBd81lgHLCbDZZFaGmECk0b+/xejPFtmiBP87GgP/y4jplcRpbH+fgCzQ== +jest-circus@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.2.tgz#1e6ffca60151ac66cad63fce34f443f6b5bb4258" + integrity sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw== dependencies: - "@jest/environment" "^29.6.1" - "@jest/expect" "^29.6.1" - "@jest/test-result" "^29.6.1" + "@jest/environment" "^29.6.2" + "@jest/expect" "^29.6.2" + "@jest/test-result" "^29.6.2" "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - dedent "^0.7.0" + dedent "^1.0.0" is-generator-fn "^2.0.0" - jest-each "^29.6.1" - jest-matcher-utils "^29.6.1" - jest-message-util "^29.6.1" - jest-runtime "^29.6.1" - jest-snapshot "^29.6.1" - jest-util "^29.6.1" + jest-each "^29.6.2" + jest-matcher-utils "^29.6.2" + jest-message-util "^29.6.2" + jest-runtime "^29.6.2" + jest-snapshot "^29.6.2" + jest-util "^29.6.2" p-limit "^3.1.0" - pretty-format "^29.6.1" + pretty-format "^29.6.2" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.1.tgz#99d9afa7449538221c71f358f0fdd3e9c6e89f72" - integrity sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing== +jest-cli@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.2.tgz#edb381763398d1a292cd1b636a98bfa5644b8fda" + integrity sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q== dependencies: - "@jest/core" "^29.6.1" - "@jest/test-result" "^29.6.1" + "@jest/core" "^29.6.2" + "@jest/test-result" "^29.6.2" "@jest/types" "^29.6.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.6.1" - jest-util "^29.6.1" - jest-validate "^29.6.1" + jest-config "^29.6.2" + jest-util "^29.6.2" + jest-validate "^29.6.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.1.tgz#d785344509065d53a238224c6cdc0ed8e2f2f0dd" - integrity sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ== +jest-config@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.2.tgz#c68723f06b31ca5e63030686e604727d406cd7c3" + integrity sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.6.1" + "@jest/test-sequencer" "^29.6.2" "@jest/types" "^29.6.1" - babel-jest "^29.6.1" + babel-jest "^29.6.2" 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.6.1" - jest-environment-node "^29.6.1" + jest-circus "^29.6.2" + jest-environment-node "^29.6.2" jest-get-type "^29.4.3" jest-regex-util "^29.4.3" - jest-resolve "^29.6.1" - jest-runner "^29.6.1" - jest-util "^29.6.1" - jest-validate "^29.6.1" + jest-resolve "^29.6.2" + jest-runner "^29.6.2" + jest-util "^29.6.2" + jest-validate "^29.6.2" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.6.1" + pretty-format "^29.6.2" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.1.tgz#13df6db0a89ee6ad93c747c75c85c70ba941e545" - integrity sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg== +jest-diff@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.2.tgz#c36001e5543e82a0805051d3ceac32e6825c1c46" + integrity sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA== dependencies: chalk "^4.0.0" diff-sequences "^29.4.3" jest-get-type "^29.4.3" - pretty-format "^29.6.1" + pretty-format "^29.6.2" jest-docblock@^29.4.3: version "29.4.3" @@ -1701,38 +1696,38 @@ jest-docblock@^29.4.3: dependencies: detect-newline "^3.0.0" -jest-each@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.1.tgz#975058e5b8f55c6780beab8b6ab214921815c89c" - integrity sha512-n5eoj5eiTHpKQCAVcNTT7DRqeUmJ01hsAL0Q1SMiBHcBcvTKDELixQOGMCpqhbIuTcfC4kMfSnpmDqRgRJcLNQ== +jest-each@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.2.tgz#c9e4b340bcbe838c73adf46b76817b15712d02ce" + integrity sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw== dependencies: "@jest/types" "^29.6.1" chalk "^4.0.0" jest-get-type "^29.4.3" - jest-util "^29.6.1" - pretty-format "^29.6.1" + jest-util "^29.6.2" + pretty-format "^29.6.2" -jest-environment-node@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.1.tgz#08a122dece39e58bc388da815a2166c58b4abec6" - integrity sha512-ZNIfAiE+foBog24W+2caIldl4Irh8Lx1PUhg/GZ0odM1d/h2qORAsejiFc7zb+SEmYPn1yDZzEDSU5PmDkmVLQ== +jest-environment-node@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.2.tgz#a9ea2cabff39b08eca14ccb32c8ceb924c8bb1ad" + integrity sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ== dependencies: - "@jest/environment" "^29.6.1" - "@jest/fake-timers" "^29.6.1" + "@jest/environment" "^29.6.2" + "@jest/fake-timers" "^29.6.2" "@jest/types" "^29.6.1" "@types/node" "*" - jest-mock "^29.6.1" - jest-util "^29.6.1" + jest-mock "^29.6.2" + jest-util "^29.6.2" jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.1.tgz#62655c7a1c1b349a3206441330fb2dbdb4b63803" - integrity sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig== +jest-haste-map@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.2.tgz#298c25ea5255cfad8b723179d4295cf3a50a70d1" + integrity sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA== dependencies: "@jest/types" "^29.6.1" "@types/graceful-fs" "^4.1.3" @@ -1741,35 +1736,35 @@ jest-haste-map@^29.6.1: fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.4.3" - jest-util "^29.6.1" - jest-worker "^29.6.1" + jest-util "^29.6.2" + jest-worker "^29.6.2" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.1.tgz#66a902c81318e66e694df7d096a95466cb962f8e" - integrity sha512-OrxMNyZirpOEwkF3UHnIkAiZbtkBWiye+hhBweCHkVbCgyEy71Mwbb5zgeTNYWJBi1qgDVfPC1IwO9dVEeTLwQ== +jest-leak-detector@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.2.tgz#e2b307fee78cab091c37858a98c7e1d73cdf5b38" + integrity sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ== dependencies: jest-get-type "^29.4.3" - pretty-format "^29.6.1" + pretty-format "^29.6.2" -jest-matcher-utils@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.1.tgz#6c60075d84655d6300c5d5128f46531848160b53" - integrity sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA== +jest-matcher-utils@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.2.tgz#39de0be2baca7a64eacb27291f0bd834fea3a535" + integrity sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ== dependencies: chalk "^4.0.0" - jest-diff "^29.6.1" + jest-diff "^29.6.2" jest-get-type "^29.4.3" - pretty-format "^29.6.1" + pretty-format "^29.6.2" -jest-message-util@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.1.tgz#d0b21d87f117e1b9e165e24f245befd2ff34ff8d" - integrity sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ== +jest-message-util@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.2.tgz#af7adc2209c552f3f5ae31e77cf0a261f23dc2bb" + integrity sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ== dependencies: "@babel/code-frame" "^7.12.13" "@jest/types" "^29.6.1" @@ -1777,18 +1772,18 @@ jest-message-util@^29.6.1: chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.6.1" + pretty-format "^29.6.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.1.tgz#049ee26aea8cbf54c764af649070910607316517" - integrity sha512-brovyV9HBkjXAEdRooaTQK42n8usKoSRR3gihzUpYeV/vwqgSoNfrksO7UfSACnPmxasO/8TmHM3w9Hp3G1dgw== +jest-mock@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.2.tgz#ef9c9b4d38c34a2ad61010a021866dad41ce5e00" + integrity sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg== dependencies: "@jest/types" "^29.6.1" "@types/node" "*" - jest-util "^29.6.1" + jest-util "^29.6.2" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -1800,67 +1795,67 @@ jest-regex-util@^29.4.3: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve-dependencies@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.1.tgz#b85b06670f987a62515bbf625d54a499e3d708f5" - integrity sha512-BbFvxLXtcldaFOhNMXmHRWx1nXQO5LoXiKSGQcA1LxxirYceZT6ch8KTE1bK3X31TNG/JbkI7OkS/ABexVahiw== +jest-resolve-dependencies@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.2.tgz#36435269b6672c256bcc85fb384872c134cc4cf2" + integrity sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w== dependencies: jest-regex-util "^29.4.3" - jest-snapshot "^29.6.1" + jest-snapshot "^29.6.2" -jest-resolve@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.1.tgz#4c3324b993a85e300add2f8609f51b80ddea39ee" - integrity sha512-AeRkyS8g37UyJiP9w3mmI/VXU/q8l/IH52vj/cDAyScDcemRbSBhfX/NMYIGilQgSVwsjxrCHf3XJu4f+lxCMg== +jest-resolve@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.2.tgz#f18405fe4b50159b7b6d85e81f6a524d22afb838" + integrity sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.1" + jest-haste-map "^29.6.2" jest-pnp-resolver "^1.2.2" - jest-util "^29.6.1" - jest-validate "^29.6.1" + jest-util "^29.6.2" + jest-validate "^29.6.2" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.1.tgz#54557087e7972d345540d622ab5bfc3d8f34688c" - integrity sha512-tw0wb2Q9yhjAQ2w8rHRDxteryyIck7gIzQE4Reu3JuOBpGp96xWgF0nY8MDdejzrLCZKDcp8JlZrBN/EtkQvPQ== +jest-runner@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.2.tgz#89e8e32a8fef24781a7c4c49cd1cb6358ac7fc01" + integrity sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w== dependencies: - "@jest/console" "^29.6.1" - "@jest/environment" "^29.6.1" - "@jest/test-result" "^29.6.1" - "@jest/transform" "^29.6.1" + "@jest/console" "^29.6.2" + "@jest/environment" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.4.3" - jest-environment-node "^29.6.1" - jest-haste-map "^29.6.1" - jest-leak-detector "^29.6.1" - jest-message-util "^29.6.1" - jest-resolve "^29.6.1" - jest-runtime "^29.6.1" - jest-util "^29.6.1" - jest-watcher "^29.6.1" - jest-worker "^29.6.1" + jest-environment-node "^29.6.2" + jest-haste-map "^29.6.2" + jest-leak-detector "^29.6.2" + jest-message-util "^29.6.2" + jest-resolve "^29.6.2" + jest-runtime "^29.6.2" + jest-util "^29.6.2" + jest-watcher "^29.6.2" + jest-worker "^29.6.2" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.1.tgz#8a0fc9274ef277f3d70ba19d238e64334958a0dc" - integrity sha512-D6/AYOA+Lhs5e5il8+5pSLemjtJezUr+8zx+Sn8xlmOux3XOqx4d8l/2udBea8CRPqqrzhsKUsN/gBDE/IcaPQ== +jest-runtime@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.2.tgz#692f25e387f982e89ab83270e684a9786248e545" + integrity sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg== dependencies: - "@jest/environment" "^29.6.1" - "@jest/fake-timers" "^29.6.1" - "@jest/globals" "^29.6.1" + "@jest/environment" "^29.6.2" + "@jest/fake-timers" "^29.6.2" + "@jest/globals" "^29.6.2" "@jest/source-map" "^29.6.0" - "@jest/test-result" "^29.6.1" - "@jest/transform" "^29.6.1" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" @@ -1868,47 +1863,46 @@ jest-runtime@^29.6.1: collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.6.1" - jest-message-util "^29.6.1" - jest-mock "^29.6.1" + jest-haste-map "^29.6.2" + jest-message-util "^29.6.2" + jest-mock "^29.6.2" jest-regex-util "^29.4.3" - jest-resolve "^29.6.1" - jest-snapshot "^29.6.1" - jest-util "^29.6.1" + jest-resolve "^29.6.2" + jest-snapshot "^29.6.2" + jest-util "^29.6.2" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.1.tgz#0d083cb7de716d5d5cdbe80d598ed2fbafac0239" - integrity sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A== +jest-snapshot@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.2.tgz#9b431b561a83f2bdfe041e1cab8a6becdb01af9c" + integrity sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA== 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.6.1" - "@jest/transform" "^29.6.1" + "@jest/expect-utils" "^29.6.2" + "@jest/transform" "^29.6.2" "@jest/types" "^29.6.1" - "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.6.1" + expect "^29.6.2" graceful-fs "^4.2.9" - jest-diff "^29.6.1" + jest-diff "^29.6.2" jest-get-type "^29.4.3" - jest-matcher-utils "^29.6.1" - jest-message-util "^29.6.1" - jest-util "^29.6.1" + jest-matcher-utils "^29.6.2" + jest-message-util "^29.6.2" + jest-util "^29.6.2" natural-compare "^1.4.0" - pretty-format "^29.6.1" + pretty-format "^29.6.2" semver "^7.5.3" -jest-util@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.1.tgz#c9e29a87a6edbf1e39e6dee2b4689b8a146679cb" - integrity sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg== +jest-util@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.2.tgz#8a052df8fff2eebe446769fd88814521a517664d" + integrity sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w== dependencies: "@jest/types" "^29.6.1" "@types/node" "*" @@ -1917,51 +1911,51 @@ jest-util@^29.6.1: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.1.tgz#765e684af6e2c86dce950aebefbbcd4546d69f7b" - integrity sha512-r3Ds69/0KCN4vx4sYAbGL1EVpZ7MSS0vLmd3gV78O+NAx3PDQQukRU5hNHPXlyqCgFY8XUk7EuTMLugh0KzahA== +jest-validate@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.2.tgz#25d972af35b2415b83b1373baf1a47bb266c1082" + integrity sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg== dependencies: "@jest/types" "^29.6.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.6.1" + pretty-format "^29.6.2" -jest-watcher@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.1.tgz#7c0c43ddd52418af134c551c92c9ea31e5ec942e" - integrity sha512-d4wpjWTS7HEZPaaj8m36QiaP856JthRZkrgcIY/7ISoUWPIillrXM23WPboZVLbiwZBt4/qn2Jke84Sla6JhFA== +jest-watcher@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.2.tgz#77c224674f0620d9f6643c4cfca186d8893ca088" + integrity sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA== dependencies: - "@jest/test-result" "^29.6.1" + "@jest/test-result" "^29.6.2" "@jest/types" "^29.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.6.1" + jest-util "^29.6.2" string-length "^4.0.1" -jest-worker@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.1.tgz#64b015f0e985ef3a8ad049b61fe92b3db74a5319" - integrity sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA== +jest-worker@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.2.tgz#682fbc4b6856ad0aa122a5403c6d048b83f3fb44" + integrity sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ== dependencies: "@types/node" "*" - jest-util "^29.6.1" + jest-util "^29.6.2" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.5.0: - version "29.6.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.1.tgz#74be1cb719c3abe439f2d94aeb18e6540a5b02ad" - integrity sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw== + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.2.tgz#3bd55b9fd46a161b2edbdf5f1d1bd0d1eab76c42" + integrity sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg== dependencies: - "@jest/core" "^29.6.1" + "@jest/core" "^29.6.2" "@jest/types" "^29.6.1" import-local "^3.0.2" - jest-cli "^29.6.1" + jest-cli "^29.6.2" js-tokens@^4.0.0: version "4.0.0" @@ -2279,10 +2273,10 @@ prettier@^3.0.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== -pretty-format@^29.6.1: - version "29.6.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.1.tgz#ec838c288850b7c4f9090b867c2d4f4edbfb0f3e" - integrity sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog== +pretty-format@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.2.tgz#3d5829261a8a4d89d8b9769064b29c50ed486a47" + integrity sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg== dependencies: "@jest/schemas" "^29.6.0" ansi-styles "^5.0.0" From 326589a9f65115f2fd07944972495f09137a13c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jul 2023 12:46:20 +0000 Subject: [PATCH 206/262] Bump eslint-config-prettier from 8.8.0 to 8.9.0 Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.8.0 to 8.9.0. - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.8.0...v8.9.0) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3ed82be5..829cc511 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1132,9 +1132,9 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^8.7.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== + version "8.9.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.9.0.tgz#094b6254b2804b0544f7cee535f802b6d29ee10b" + integrity sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA== eslint-scope@^7.2.0: version "7.2.0" From 1b0e68d3e9a102e82ef4bba2c4d1084c20204025 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 12:11:08 +0000 Subject: [PATCH 207/262] Bump eslint from 8.45.0 to 8.46.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.45.0 to 8.46.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.45.0...v8.46.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 70 +++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9ca0dbe0..eda088a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -308,15 +308,15 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== +"@eslint-community/regexpp@^4.6.1": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" + integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" - integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== +"@eslint/eslintrc@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.1.tgz#18d635e24ad35f7276e8a49d135c7d3ca6a46f93" + integrity sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -328,10 +328,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.44.0": - version "8.44.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" - integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== +"@eslint/js@^8.46.0": + version "8.46.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.46.0.tgz#3f7802972e8b6fe3f88ed1aabc74ec596c456db6" + integrity sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA== "@humanwhocodes/config-array@^0.11.10": version "0.11.10" @@ -733,7 +733,7 @@ acorn@^8.9.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== -ajv@^6.10.0, ajv@^6.12.4: +ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1131,40 +1131,40 @@ eslint-config-prettier@^8.7.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.9.0.tgz#094b6254b2804b0544f7cee535f802b6d29ee10b" integrity sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA== -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz#8c2095440eca8c933bedcadf16fefa44dbe9ba5f" + integrity sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw== eslint@^8.35.0: - version "8.45.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78" - integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== + version "8.46.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.46.0.tgz#a06a0ff6974e53e643acc42d1dcf2e7f797b3552" + integrity sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.1.0" - "@eslint/js" "8.44.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.1" + "@eslint/js" "^8.46.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.6.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.2" + espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -1187,10 +1187,10 @@ eslint@^8.35.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" - integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" acorn-jsx "^5.3.2" From 9228ef3fc12207a6f21257313822690c972e42c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Aug 2023 12:18:22 +0000 Subject: [PATCH 208/262] Bump eslint-config-prettier from 8.9.0 to 8.10.0 Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.9.0 to 8.10.0. - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.9.0...v8.10.0) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index eda088a8..8a55f935 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1127,9 +1127,9 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^8.7.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.9.0.tgz#094b6254b2804b0544f7cee535f802b6d29ee10b" - integrity sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA== + version "8.10.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" + integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== eslint-scope@^7.2.2: version "7.2.2" From 60c82c67bd063167454dbc6c7691f9fd921966e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Aug 2023 12:18:36 +0000 Subject: [PATCH 209/262] Bump prettier from 3.0.0 to 3.0.1 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.0 to 3.0.1. - [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.0.0...3.0.1) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index eda088a8..f4d0a75c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2269,9 +2269,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" - integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== + version "3.0.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.1.tgz#65271fc9320ce4913c57747a70ce635b30beaa40" + integrity sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ== pretty-format@^29.6.2: version "29.6.2" From 1a550f711d6875de55fa7e16ab2a5016d36306e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 12:53:13 +0000 Subject: [PATCH 210/262] Bump eslint-config-prettier from 8.10.0 to 9.0.0 Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.10.0 to 9.0.0. - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.10.0...v9.0.0) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a2862f8f..d09fde8c 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "devDependencies": { "eslint": "^8.35.0", - "eslint-config-prettier": "^8.7.0", + "eslint-config-prettier": "^9.0.0", "husky": "^8.0.1", "jest": "^29.5.0", "prettier": "^3.0.0", diff --git a/yarn.lock b/yarn.lock index 27191e9c..8b384143 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1126,10 +1126,10 @@ 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== -eslint-config-prettier@^8.7.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" - integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== +eslint-config-prettier@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" + integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== eslint-scope@^7.2.2: version "7.2.2" From bd7dee53f72501851c8b2453c8429389978b79ab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 12:54:50 +0000 Subject: [PATCH 211/262] Bump eslint from 8.46.0 to 8.47.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.46.0 to 8.47.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.46.0...v8.47.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8b384143..c05f282f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -313,10 +313,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.1.tgz#18d635e24ad35f7276e8a49d135c7d3ca6a46f93" - integrity sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA== +"@eslint/eslintrc@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" + integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -328,10 +328,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@^8.46.0": - version "8.46.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.46.0.tgz#3f7802972e8b6fe3f88ed1aabc74ec596c456db6" - integrity sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA== +"@eslint/js@^8.47.0": + version "8.47.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.47.0.tgz#5478fdf443ff8158f9de171c704ae45308696c7d" + integrity sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og== "@humanwhocodes/config-array@^0.11.10": version "0.11.10" @@ -1139,20 +1139,20 @@ eslint-scope@^7.2.2: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz#8c2095440eca8c933bedcadf16fefa44dbe9ba5f" - integrity sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + 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.35.0: - version "8.46.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.46.0.tgz#a06a0ff6974e53e643acc42d1dcf2e7f797b3552" - integrity sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg== + version "8.47.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.47.0.tgz#c95f9b935463fb4fad7005e626c7621052e90806" + integrity sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.1" - "@eslint/js" "^8.46.0" + "@eslint/eslintrc" "^2.1.2" + "@eslint/js" "^8.47.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -1163,7 +1163,7 @@ eslint@^8.35.0: doctrine "^3.0.0" escape-string-regexp "^4.0.0" eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.2" + eslint-visitor-keys "^3.4.3" espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" From 1ce5d6b50d087a75cf074e842677a7f070a67dce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 12:31:15 +0000 Subject: [PATCH 212/262] Bump prettier from 3.0.1 to 3.0.2 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.1 to 3.0.2. - [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.0.1...3.0.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c05f282f..4d161a8d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2269,9 +2269,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.1.tgz#65271fc9320ce4913c57747a70ce635b30beaa40" - integrity sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ== + version "3.0.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.2.tgz#78fcecd6d870551aa5547437cdae39d4701dca5b" + integrity sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ== pretty-format@^29.6.2: version "29.6.2" From 02e89e1c0b4f7ae9bd3fa8d6d40127cd94f2a381 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Aug 2023 12:01:52 +0000 Subject: [PATCH 213/262] Bump jest from 29.6.2 to 29.6.3 Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 29.6.2 to 29.6.3. - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v29.6.3/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 723 +++++++++++++++++++++++++++--------------------------- 1 file changed, 367 insertions(+), 356 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4d161a8d..750fe14c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -368,109 +368,109 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.2.tgz#bf1d4101347c23e07c029a1b1ae07d550f5cc541" - integrity sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w== +"@jest/console@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.3.tgz#55ad945087c27e380d6d9fcbb85181ed802543f3" + integrity sha512-ukZbHAdDH4ktZIOKvWs1juAXhiVAdvCyM8zv4S/7Ii3vJSDvMW5k+wOVGMQmHLHUFw3Ko63ZQNy7NI6PSlsD5w== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.6.2" - jest-util "^29.6.2" + jest-message-util "^29.6.3" + jest-util "^29.6.3" slash "^3.0.0" -"@jest/core@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.2.tgz#6f2d1dbe8aa0265fcd4fb8082ae1952f148209c8" - integrity sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg== +"@jest/core@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.3.tgz#bccee53680762e1bdef2a0038f123cc8d7ba4ab8" + integrity sha512-skV1XrfNxfagmjRUrk2FyN5/2YwIzdWVVBa/orUfbLvQUANXxERq2pTvY0I+FinWHjDKB2HRmpveUiph4X0TJw== dependencies: - "@jest/console" "^29.6.2" - "@jest/reporters" "^29.6.2" - "@jest/test-result" "^29.6.2" - "@jest/transform" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/console" "^29.6.3" + "@jest/reporters" "^29.6.3" + "@jest/test-result" "^29.6.3" + "@jest/transform" "^29.6.3" + "@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.5.0" - jest-config "^29.6.2" - jest-haste-map "^29.6.2" - jest-message-util "^29.6.2" - jest-regex-util "^29.4.3" - jest-resolve "^29.6.2" - jest-resolve-dependencies "^29.6.2" - jest-runner "^29.6.2" - jest-runtime "^29.6.2" - jest-snapshot "^29.6.2" - jest-util "^29.6.2" - jest-validate "^29.6.2" - jest-watcher "^29.6.2" + jest-changed-files "^29.6.3" + jest-config "^29.6.3" + jest-haste-map "^29.6.3" + jest-message-util "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.6.3" + jest-resolve-dependencies "^29.6.3" + jest-runner "^29.6.3" + jest-runtime "^29.6.3" + jest-snapshot "^29.6.3" + jest-util "^29.6.3" + jest-validate "^29.6.3" + jest-watcher "^29.6.3" micromatch "^4.0.4" - pretty-format "^29.6.2" + pretty-format "^29.6.3" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.2.tgz#794c0f769d85e7553439d107d3f43186dc6874a9" - integrity sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q== +"@jest/environment@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.3.tgz#bb02535c729393a0345b8d2c5eef94d34f7b35a3" + integrity sha512-u/u3cCztYCfgBiGHsamqP5x+XvucftOGPbf5RJQxfpeC1y4AL8pCjKvPDA3oCmdhZYPgk5AE0VOD/flweR69WA== dependencies: - "@jest/fake-timers" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/fake-timers" "^29.6.3" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.6.2" + jest-mock "^29.6.3" -"@jest/expect-utils@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.2.tgz#1b97f290d0185d264dd9fdec7567a14a38a90534" - integrity sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg== +"@jest/expect-utils@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.3.tgz#5ef1a9689fdaa348da837c8be8d1219f56940ea3" + integrity sha512-nvOEW4YoqRKD9HBJ9OJ6przvIvP9qilp5nAn1462P5ZlL/MM9SgPEZFyjTGPfs7QkocdUsJa6KjHhyRn4ueItA== dependencies: - jest-get-type "^29.4.3" + jest-get-type "^29.6.3" -"@jest/expect@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.2.tgz#5a2ad58bb345165d9ce0a1845bbf873c480a4b28" - integrity sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg== +"@jest/expect@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.3.tgz#d54e1e7134982166f62653add0d4b8262dd72db9" + integrity sha512-Ic08XbI2jlg6rECy+CGwk/8NDa6VE7UmIG6++9OTPAMnQmNGY28hu69Nf629CWv6T7YMODLbONxDFKdmQeI9FA== dependencies: - expect "^29.6.2" - jest-snapshot "^29.6.2" + expect "^29.6.3" + jest-snapshot "^29.6.3" -"@jest/fake-timers@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.2.tgz#fe9d43c5e4b1b901168fe6f46f861b3e652a2df4" - integrity sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA== +"@jest/fake-timers@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.3.tgz#7e780b05b14ad59dca68bdc188f6cf085552a0e8" + integrity sha512-pa1wmqvbj6eX0nMvOM2VDAWvJOI5A/Mk3l8O7n7EsAh71sMZblaKO9iT4GjIj0LwwK3CP/Jp1ypEV0x3m89RvA== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.6.2" - jest-mock "^29.6.2" - jest-util "^29.6.2" + jest-message-util "^29.6.3" + jest-mock "^29.6.3" + jest-util "^29.6.3" -"@jest/globals@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.2.tgz#74af81b9249122cc46f1eb25793617eec69bf21a" - integrity sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw== +"@jest/globals@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.3.tgz#fe9e302bc20683ba8feb683b8804e38a9913b783" + integrity sha512-RB+uI+CZMHntzlnOPlll5x/jgRff3LEPl/td/jzMXiIgR0iIhKq9qm1HLU+EC52NuoVy/1swit/sDGjVn4bc6A== dependencies: - "@jest/environment" "^29.6.2" - "@jest/expect" "^29.6.2" - "@jest/types" "^29.6.1" - jest-mock "^29.6.2" + "@jest/environment" "^29.6.3" + "@jest/expect" "^29.6.3" + "@jest/types" "^29.6.3" + jest-mock "^29.6.3" -"@jest/reporters@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.2.tgz#524afe1d76da33d31309c2c4a2c8062d0c48780a" - integrity sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw== +"@jest/reporters@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.3.tgz#e5071915d74f43e0f49982fa518ca3283a9f4c5a" + integrity sha512-kGz59zMi0GkVjD2CJeYWG9k6cvj7eBqt9aDAqo2rcCLRTYlvQ62Gu/n+tOmJMBHGjzeijjuCENjzTyYBgrtLUw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.6.2" - "@jest/test-result" "^29.6.2" - "@jest/transform" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/console" "^29.6.3" + "@jest/test-result" "^29.6.3" + "@jest/transform" "^29.6.3" + "@jest/types" "^29.6.3" "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" @@ -479,81 +479,81 @@ glob "^7.1.3" graceful-fs "^4.2.9" istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" + istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.6.2" - jest-util "^29.6.2" - jest-worker "^29.6.2" + jest-message-util "^29.6.3" + jest-util "^29.6.3" + jest-worker "^29.6.3" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" - integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== +"@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== dependencies: "@sinclair/typebox" "^0.27.8" -"@jest/source-map@^29.6.0": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.0.tgz#bd34a05b5737cb1a99d43e1957020ac8e5b9ddb1" - integrity sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA== +"@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@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.2.tgz#fdd11583cd1608e4db3114e8f0cce277bf7a32ed" - integrity sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw== +"@jest/test-result@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.3.tgz#1da4c6749c16a71c108644624d9cd0d17206aa2b" + integrity sha512-k7ZZaNvOSMBHPZYiy0kuiaFoyansR5QnTwDux1EjK3kD5iWpRVyJIJ0RAIV39SThafchuW59vra7F8mdy5Hfgw== dependencies: - "@jest/console" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/console" "^29.6.3" + "@jest/types" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.2.tgz#585eff07a68dd75225a7eacf319780cb9f6b9bf4" - integrity sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw== +"@jest/test-sequencer@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.3.tgz#e59f422bc3786d79fac504c16979a5f1b999a932" + integrity sha512-/SmijaAU2TY9ComFGIYa6Z+fmKqQMnqs2Nmwb0P/Z/tROdZ7M0iruES1EaaU9PBf8o9uED5xzaJ3YPFEIcDgAg== dependencies: - "@jest/test-result" "^29.6.2" + "@jest/test-result" "^29.6.3" graceful-fs "^4.2.9" - jest-haste-map "^29.6.2" + jest-haste-map "^29.6.3" slash "^3.0.0" -"@jest/transform@^29.6.2": - version "29.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.2.tgz#522901ebbb211af08835bc3bcdf765ab778094e3" - integrity sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg== +"@jest/transform@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.3.tgz#e8e376f56fffe827b529bf03a9881e58d152c14b" + integrity sha512-dPIc3DsvMZ/S8ut4L2ViCj265mKO0owB0wfzBv2oGzL9pQ+iRvJewHqLBmsGb7XFb5UotWIEtvY5A/lnylaIoQ== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@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 "^29.6.2" - jest-regex-util "^29.4.3" - jest-util "^29.6.2" + jest-haste-map "^29.6.3" + jest-regex-util "^29.6.3" + jest-util "^29.6.3" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.6.1": - version "29.6.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.1.tgz#ae79080278acff0a6af5eb49d063385aaa897bf2" - integrity sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw== +"@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== dependencies: - "@jest/schemas" "^29.6.0" + "@jest/schemas" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -809,15 +809,15 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.2.tgz#cada0a59e07f5acaeb11cbae7e3ba92aec9c1126" - integrity sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A== +babel-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.3.tgz#e62f6c38f3ec8c147244168ee18ef0b919f10348" + integrity sha512-1Ne93zZZEy5XmTa4Q+W5+zxBrDpExX8E3iy+xJJ+24ewlfo/T3qHfQJCzi/MMVFmBQDNxtRR/Gfd2dwb/0yrQw== dependencies: - "@jest/transform" "^29.6.2" + "@jest/transform" "^29.6.3" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.5.0" + babel-preset-jest "^29.6.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -833,10 +833,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a" - integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w== +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== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -861,12 +861,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2" - integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg== +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== dependencies: - babel-plugin-jest-hoist "^29.5.0" + babel-plugin-jest-hoist "^29.6.3" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1065,10 +1065,10 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" - integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== +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== doctrine@^3.0.0: version "3.0.0" @@ -1260,17 +1260,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.2.tgz#7b08e83eba18ddc4a2cf62b5f2d1918f5cd84521" - integrity sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA== +expect@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.3.tgz#e74b57c35a81fd93ece6b570e371309c53dc4f54" + integrity sha512-x1vY4LlEMWUYVZQrFi4ZANXFwqYbJ/JNQspLVvzhW2BNY28aNcXMQH6imBbt+RBf5sVRTodYHXtSP/TLEU0Dxw== dependencies: - "@jest/expect-utils" "^29.6.2" - "@types/node" "*" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.6.2" - jest-message-util "^29.6.2" - jest-util "^29.6.2" + "@jest/expect-utils" "^29.6.3" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.6.3" + jest-message-util "^29.6.3" + jest-util "^29.6.3" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1562,7 +1561,7 @@ 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, istanbul-lib-instrument@^5.1.0: +istanbul-lib-instrument@^5.0.4: version "5.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== @@ -1573,6 +1572,17 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: 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" + integrity sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + 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" @@ -1599,363 +1609,364 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e" - integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag== +jest-changed-files@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.6.3.tgz#97cfdc93f74fb8af2a1acb0b78f836f1fb40c449" + integrity sha512-G5wDnElqLa4/c66ma5PG9eRjE342lIbF6SUnTJi26C3J28Fv2TVY2rOyKB9YGbSA5ogwevgmxc4j4aVjrEK6Yg== dependencies: execa "^5.0.0" + jest-util "^29.6.3" p-limit "^3.1.0" -jest-circus@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.2.tgz#1e6ffca60151ac66cad63fce34f443f6b5bb4258" - integrity sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw== +jest-circus@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.3.tgz#c5ac37758bb9e78fd78ebd655ed1d28b220d6fd3" + integrity sha512-p0R5YqZEMnOpHqHLWRSjm2z/0p6RNsrNE/GRRT3eli8QGOAozj6Ys/3Tv+Ej+IfltJoSPwcQ6/hOCRkNlxLLCw== dependencies: - "@jest/environment" "^29.6.2" - "@jest/expect" "^29.6.2" - "@jest/test-result" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/environment" "^29.6.3" + "@jest/expect" "^29.6.3" + "@jest/test-result" "^29.6.3" + "@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.6.2" - jest-matcher-utils "^29.6.2" - jest-message-util "^29.6.2" - jest-runtime "^29.6.2" - jest-snapshot "^29.6.2" - jest-util "^29.6.2" + jest-each "^29.6.3" + jest-matcher-utils "^29.6.3" + jest-message-util "^29.6.3" + jest-runtime "^29.6.3" + jest-snapshot "^29.6.3" + jest-util "^29.6.3" p-limit "^3.1.0" - pretty-format "^29.6.2" + pretty-format "^29.6.3" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.2.tgz#edb381763398d1a292cd1b636a98bfa5644b8fda" - integrity sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q== +jest-cli@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.3.tgz#1e6520106e9d7443a481ebe07ffed46e1568a51f" + integrity sha512-KuPdXUPXQIf0t6DvmG8MV4QyhcjR1a6ruKl3YL7aGn/AQ8JkROwFkWzEpDIpt11Qy188dHbRm8WjwMsV/4nmnQ== dependencies: - "@jest/core" "^29.6.2" - "@jest/test-result" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/core" "^29.6.3" + "@jest/test-result" "^29.6.3" + "@jest/types" "^29.6.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.6.2" - jest-util "^29.6.2" - jest-validate "^29.6.2" + jest-config "^29.6.3" + jest-util "^29.6.3" + jest-validate "^29.6.3" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.2.tgz#c68723f06b31ca5e63030686e604727d406cd7c3" - integrity sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw== +jest-config@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.3.tgz#2d1490005a28291806022f7f95ec3debf55eaaf7" + integrity sha512-nb9bOq2aEqogbyL4F9mLkAeQGAgNt7Uz6U59YtQDIxFPiL7Ejgq0YIrp78oyEHD6H4CIV/k7mFrK7eFDzUJ69w== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.6.2" - "@jest/types" "^29.6.1" - babel-jest "^29.6.2" + "@jest/test-sequencer" "^29.6.3" + "@jest/types" "^29.6.3" + babel-jest "^29.6.3" 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.6.2" - jest-environment-node "^29.6.2" - jest-get-type "^29.4.3" - jest-regex-util "^29.4.3" - jest-resolve "^29.6.2" - jest-runner "^29.6.2" - jest-util "^29.6.2" - jest-validate "^29.6.2" + jest-circus "^29.6.3" + jest-environment-node "^29.6.3" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.6.3" + jest-runner "^29.6.3" + jest-util "^29.6.3" + jest-validate "^29.6.3" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.6.2" + pretty-format "^29.6.3" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.2.tgz#c36001e5543e82a0805051d3ceac32e6825c1c46" - integrity sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA== +jest-diff@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.3.tgz#365c6b037ea8e67d2f2af68bc018fc18d44311f0" + integrity sha512-3sw+AdWnwH9sSNohMRKA7JiYUJSRr/WS6+sEFfBuhxU5V5GlEVKfvUn8JuMHE0wqKowemR1C2aHy8VtXbaV8dQ== dependencies: chalk "^4.0.0" - diff-sequences "^29.4.3" - jest-get-type "^29.4.3" - pretty-format "^29.6.2" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.6.3" -jest-docblock@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" - integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== +jest-docblock@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.6.3.tgz#293dca5188846c9f7c0c2b1bb33e5b11f21645f2" + integrity sha512-2+H+GOTQBEm2+qFSQ7Ma+BvyV+waiIFxmZF5LdpBsAEjWX8QYjSCa4FrkIYtbfXUJJJnFCYrOtt6TZ+IAiTjBQ== dependencies: detect-newline "^3.0.0" -jest-each@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.2.tgz#c9e4b340bcbe838c73adf46b76817b15712d02ce" - integrity sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw== +jest-each@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.3.tgz#1956f14f5f0cb8ae0b2e7cabc10bb03ec817c142" + integrity sha512-KoXfJ42k8cqbkfshW7sSHcdfnv5agDdHCPA87ZBdmHP+zJstTJc0ttQaJ/x7zK6noAL76hOuTIJ6ZkQRS5dcyg== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" chalk "^4.0.0" - jest-get-type "^29.4.3" - jest-util "^29.6.2" - pretty-format "^29.6.2" - -jest-environment-node@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.2.tgz#a9ea2cabff39b08eca14ccb32c8ceb924c8bb1ad" - integrity sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ== - dependencies: - "@jest/environment" "^29.6.2" - "@jest/fake-timers" "^29.6.2" - "@jest/types" "^29.6.1" + jest-get-type "^29.6.3" + jest-util "^29.6.3" + pretty-format "^29.6.3" + +jest-environment-node@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.3.tgz#72217a00db2c26755406241c70ad73c334917e28" + integrity sha512-PKl7upfPJXMYbWpD+60o4HP86KvFO2c9dZ+Zr6wUzsG5xcPx/65o3ArNgHW5M0RFvLYdW4/aieR4JSooD0a2ew== + dependencies: + "@jest/environment" "^29.6.3" + "@jest/fake-timers" "^29.6.3" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.6.2" - jest-util "^29.6.2" + jest-mock "^29.6.3" + jest-util "^29.6.3" -jest-get-type@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" - integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== +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-haste-map@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.2.tgz#298c25ea5255cfad8b723179d4295cf3a50a70d1" - integrity sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA== +jest-haste-map@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.3.tgz#a53ac35a137fd32d932039aab29d02a9dab30689" + integrity sha512-GecR5YavfjkhOytEFHAeI6aWWG3f/cOKNB1YJvj/B76xAmeVjy4zJUYobGF030cRmKaO1FBw3V8CZZ6KVh9ZSw== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.4.3" - jest-util "^29.6.2" - jest-worker "^29.6.2" + jest-regex-util "^29.6.3" + jest-util "^29.6.3" + jest-worker "^29.6.3" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.2.tgz#e2b307fee78cab091c37858a98c7e1d73cdf5b38" - integrity sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ== +jest-leak-detector@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.3.tgz#b9661bc3aec8874e59aff361fa0c6d7cd507ea01" + integrity sha512-0kfbESIHXYdhAdpLsW7xdwmYhLf1BRu4AA118/OxFm0Ho1b2RcTmO4oF6aAMaxpxdxnJ3zve2rgwzNBD4Zbm7Q== dependencies: - jest-get-type "^29.4.3" - pretty-format "^29.6.2" + jest-get-type "^29.6.3" + pretty-format "^29.6.3" -jest-matcher-utils@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.2.tgz#39de0be2baca7a64eacb27291f0bd834fea3a535" - integrity sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ== +jest-matcher-utils@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.3.tgz#a7574092b635d96a38fa0a22d015fb596b9c2efc" + integrity sha512-6ZrMYINZdwduSt5Xu18/n49O1IgXdjsfG7NEZaQws9k69eTKWKcVbJBw/MZsjOZe2sSyJFmuzh8042XWwl54Zg== dependencies: chalk "^4.0.0" - jest-diff "^29.6.2" - jest-get-type "^29.4.3" - pretty-format "^29.6.2" + jest-diff "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.6.3" -jest-message-util@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.2.tgz#af7adc2209c552f3f5ae31e77cf0a261f23dc2bb" - integrity sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ== +jest-message-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.3.tgz#bce16050d86801b165f20cfde34dc01d3cf85fbf" + integrity sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.1" + "@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.6.2" + pretty-format "^29.6.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.2.tgz#ef9c9b4d38c34a2ad61010a021866dad41ce5e00" - integrity sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg== +jest-mock@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.3.tgz#433f3fd528c8ec5a76860177484940628bdf5e0a" + integrity sha512-Z7Gs/mOyTSR4yPsaZ72a/MtuK6RnC3JYqWONe48oLaoEcYwEDxqvbXz85G4SJrm2Z5Ar9zp6MiHF4AlFlRM4Pg== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/node" "*" - jest-util "^29.6.2" + jest-util "^29.6.3" jest-pnp-resolver@^1.2.2: 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@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" - integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== +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.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.2.tgz#36435269b6672c256bcc85fb384872c134cc4cf2" - integrity sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w== +jest-resolve-dependencies@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.3.tgz#fc58ac08f9ed992b10d5cfb0bbb1d89b98508ff3" + integrity sha512-iah5nhSPTwtUV7yzpTc9xGg8gP3Ch2VNsuFMsKoCkNCrQSbFtx5KRPemmPJ32AUhTSDqJXB6djPN6zAaUGV53g== dependencies: - jest-regex-util "^29.4.3" - jest-snapshot "^29.6.2" + jest-regex-util "^29.6.3" + jest-snapshot "^29.6.3" -jest-resolve@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.2.tgz#f18405fe4b50159b7b6d85e81f6a524d22afb838" - integrity sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw== +jest-resolve@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.3.tgz#e3114e1514973c8f1607387c3042f4d2926f2d60" + integrity sha512-WMXwxhvzDeA/J+9jz1i8ZKGmbw/n+s988EiUvRI4egM+eTn31Hb5v10Re3slG3/qxntkBt2/6GkQVDGu6Bwyhw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.2" + jest-haste-map "^29.6.3" jest-pnp-resolver "^1.2.2" - jest-util "^29.6.2" - jest-validate "^29.6.2" + jest-util "^29.6.3" + jest-validate "^29.6.3" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.2.tgz#89e8e32a8fef24781a7c4c49cd1cb6358ac7fc01" - integrity sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w== +jest-runner@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.3.tgz#162b1a549c4728265e716d75533b65b4c77e6b22" + integrity sha512-E4zsMhQnjhirFPhDTJgoLMWUrVCDij/KGzWlbslDHGuO8Hl2pVUfOiygMzVZtZq+BzmlqwEr7LYmW+WFLlmX8w== dependencies: - "@jest/console" "^29.6.2" - "@jest/environment" "^29.6.2" - "@jest/test-result" "^29.6.2" - "@jest/transform" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/console" "^29.6.3" + "@jest/environment" "^29.6.3" + "@jest/test-result" "^29.6.3" + "@jest/transform" "^29.6.3" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.4.3" - jest-environment-node "^29.6.2" - jest-haste-map "^29.6.2" - jest-leak-detector "^29.6.2" - jest-message-util "^29.6.2" - jest-resolve "^29.6.2" - jest-runtime "^29.6.2" - jest-util "^29.6.2" - jest-watcher "^29.6.2" - jest-worker "^29.6.2" + jest-docblock "^29.6.3" + jest-environment-node "^29.6.3" + jest-haste-map "^29.6.3" + jest-leak-detector "^29.6.3" + jest-message-util "^29.6.3" + jest-resolve "^29.6.3" + jest-runtime "^29.6.3" + jest-util "^29.6.3" + jest-watcher "^29.6.3" + jest-worker "^29.6.3" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.2.tgz#692f25e387f982e89ab83270e684a9786248e545" - integrity sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg== - dependencies: - "@jest/environment" "^29.6.2" - "@jest/fake-timers" "^29.6.2" - "@jest/globals" "^29.6.2" - "@jest/source-map" "^29.6.0" - "@jest/test-result" "^29.6.2" - "@jest/transform" "^29.6.2" - "@jest/types" "^29.6.1" +jest-runtime@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.3.tgz#8bfa29447808419a7b5bed13beb0447a90344c65" + integrity sha512-VM0Z3a9xaqizGpEKwCOIhImkrINYzxgwk8oQAvrmAiXX8LNrJrRjyva30RkuRY0ETAotHLlUcd2moviCA1hgsQ== + dependencies: + "@jest/environment" "^29.6.3" + "@jest/fake-timers" "^29.6.3" + "@jest/globals" "^29.6.3" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.6.3" + "@jest/transform" "^29.6.3" + "@jest/types" "^29.6.3" "@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.6.2" - jest-message-util "^29.6.2" - jest-mock "^29.6.2" - jest-regex-util "^29.4.3" - jest-resolve "^29.6.2" - jest-snapshot "^29.6.2" - jest-util "^29.6.2" + jest-haste-map "^29.6.3" + jest-message-util "^29.6.3" + jest-mock "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.6.3" + jest-snapshot "^29.6.3" + jest-util "^29.6.3" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.2.tgz#9b431b561a83f2bdfe041e1cab8a6becdb01af9c" - integrity sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA== +jest-snapshot@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.3.tgz#2435b50881f7bffdc1a66e66c64a2602c8086281" + integrity sha512-66Iu7H1ojiveQMGFnKecHIZPPPBjZwfQEnF6wxqpxGf57sV3YSUtAb5/sTKM5TPa3OndyxZp1wxHFbmgVhc53w== 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.6.2" - "@jest/transform" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/expect-utils" "^29.6.3" + "@jest/transform" "^29.6.3" + "@jest/types" "^29.6.3" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.6.2" + expect "^29.6.3" graceful-fs "^4.2.9" - jest-diff "^29.6.2" - jest-get-type "^29.4.3" - jest-matcher-utils "^29.6.2" - jest-message-util "^29.6.2" - jest-util "^29.6.2" + jest-diff "^29.6.3" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.6.3" + jest-message-util "^29.6.3" + jest-util "^29.6.3" natural-compare "^1.4.0" - pretty-format "^29.6.2" + pretty-format "^29.6.3" semver "^7.5.3" -jest-util@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.2.tgz#8a052df8fff2eebe446769fd88814521a517664d" - integrity sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w== +jest-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.3.tgz#e15c3eac8716440d1ed076f09bc63ace1aebca63" + integrity sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.2.tgz#25d972af35b2415b83b1373baf1a47bb266c1082" - integrity sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg== +jest-validate@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.3.tgz#a75fca774cfb1c5758c70d035d30a1f9c2784b4d" + integrity sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg== dependencies: - "@jest/types" "^29.6.1" + "@jest/types" "^29.6.3" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.4.3" + jest-get-type "^29.6.3" leven "^3.1.0" - pretty-format "^29.6.2" + pretty-format "^29.6.3" -jest-watcher@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.2.tgz#77c224674f0620d9f6643c4cfca186d8893ca088" - integrity sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA== +jest-watcher@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.3.tgz#f5089852fc5f57ba1d956ec02d80cf2f6f34156d" + integrity sha512-NgpFjZ2U2MKusjidbi4Oiu7tfs+nrgdIxIEVROvH1cFmOei9Uj25lwkMsakqLnH/s0nEcvxO1ck77FiRlcnpZg== dependencies: - "@jest/test-result" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/test-result" "^29.6.3" + "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.6.2" + jest-util "^29.6.3" string-length "^4.0.1" -jest-worker@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.2.tgz#682fbc4b6856ad0aa122a5403c6d048b83f3fb44" - integrity sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ== +jest-worker@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.3.tgz#7b1a47bbb6559f3c0882d16595938590e63915d5" + integrity sha512-wacANXecZ/GbQakpf2CClrqrlwsYYDSXFd4fIGdL+dXpM2GWoJ+6bhQ7vR3TKi3+gkSfBkjy1/khH/WrYS4Q6g== dependencies: "@types/node" "*" - jest-util "^29.6.2" + jest-util "^29.6.3" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.5.0: - version "29.6.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.2.tgz#3bd55b9fd46a161b2edbdf5f1d1bd0d1eab76c42" - integrity sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg== + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.3.tgz#118cf081d440d31b21989f61bfcd8b7797ca6a01" + integrity sha512-alueLuoPCDNHFcFGmgETR4KpQ+0ff3qVaiJwxQM4B5sC0CvXcgg4PEi7xrDkxuItDmdz/FVc7SSit4KEu8GRvw== dependencies: - "@jest/core" "^29.6.2" - "@jest/types" "^29.6.1" + "@jest/core" "^29.6.3" + "@jest/types" "^29.6.3" import-local "^3.0.2" - jest-cli "^29.6.2" + jest-cli "^29.6.3" js-tokens@^4.0.0: version "4.0.0" @@ -2273,12 +2284,12 @@ prettier@^3.0.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.2.tgz#78fcecd6d870551aa5547437cdae39d4701dca5b" integrity sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ== -pretty-format@^29.6.2: - version "29.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.2.tgz#3d5829261a8a4d89d8b9769064b29c50ed486a47" - integrity sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg== +pretty-format@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.3.tgz#d432bb4f1ca6f9463410c3fb25a0ba88e594ace7" + integrity sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw== dependencies: - "@jest/schemas" "^29.6.0" + "@jest/schemas" "^29.6.3" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -2390,7 +2401,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.5.3: +semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== From 3b77f9815e829926ba777b4b638fd23fdb0c82ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Aug 2023 12:38:08 +0000 Subject: [PATCH 214/262] Bump jest from 29.6.3 to 29.6.4 Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 29.6.3 to 29.6.4. - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v29.6.4/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 372 +++++++++++++++++++++++++++--------------------------- 1 file changed, 186 insertions(+), 186 deletions(-) diff --git a/yarn.lock b/yarn.lock index 750fe14c..160f83aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -368,10 +368,10 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.3.tgz#55ad945087c27e380d6d9fcbb85181ed802543f3" - integrity sha512-ukZbHAdDH4ktZIOKvWs1juAXhiVAdvCyM8zv4S/7Ii3vJSDvMW5k+wOVGMQmHLHUFw3Ko63ZQNy7NI6PSlsD5w== +"@jest/console@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.4.tgz#a7e2d84516301f986bba0dd55af9d5fe37f46527" + integrity sha512-wNK6gC0Ha9QeEPSkeJedQuTQqxZYnDPuDcDhVuVatRvMkL4D0VTvFVZj+Yuh6caG2aOfzkUZ36KtCmLNtR02hw== dependencies: "@jest/types" "^29.6.3" "@types/node" "*" @@ -380,15 +380,15 @@ jest-util "^29.6.3" slash "^3.0.0" -"@jest/core@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.3.tgz#bccee53680762e1bdef2a0038f123cc8d7ba4ab8" - integrity sha512-skV1XrfNxfagmjRUrk2FyN5/2YwIzdWVVBa/orUfbLvQUANXxERq2pTvY0I+FinWHjDKB2HRmpveUiph4X0TJw== +"@jest/core@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.4.tgz#265ebee05ec1ff3567757e7a327155c8d6bdb126" + integrity sha512-U/vq5ccNTSVgYH7mHnodHmCffGWHJnz/E1BEWlLuK5pM4FZmGfBn/nrJGLjUsSmyx3otCeqc1T31F4y08AMDLg== dependencies: - "@jest/console" "^29.6.3" - "@jest/reporters" "^29.6.3" - "@jest/test-result" "^29.6.3" - "@jest/transform" "^29.6.3" + "@jest/console" "^29.6.4" + "@jest/reporters" "^29.6.4" + "@jest/test-result" "^29.6.4" + "@jest/transform" "^29.6.4" "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" @@ -397,52 +397,52 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.6.3" - jest-config "^29.6.3" - jest-haste-map "^29.6.3" + jest-config "^29.6.4" + jest-haste-map "^29.6.4" jest-message-util "^29.6.3" jest-regex-util "^29.6.3" - jest-resolve "^29.6.3" - jest-resolve-dependencies "^29.6.3" - jest-runner "^29.6.3" - jest-runtime "^29.6.3" - jest-snapshot "^29.6.3" + jest-resolve "^29.6.4" + jest-resolve-dependencies "^29.6.4" + jest-runner "^29.6.4" + jest-runtime "^29.6.4" + jest-snapshot "^29.6.4" jest-util "^29.6.3" jest-validate "^29.6.3" - jest-watcher "^29.6.3" + jest-watcher "^29.6.4" micromatch "^4.0.4" pretty-format "^29.6.3" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.3.tgz#bb02535c729393a0345b8d2c5eef94d34f7b35a3" - integrity sha512-u/u3cCztYCfgBiGHsamqP5x+XvucftOGPbf5RJQxfpeC1y4AL8pCjKvPDA3oCmdhZYPgk5AE0VOD/flweR69WA== +"@jest/environment@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.4.tgz#78ec2c9f8c8829a37616934ff4fea0c028c79f4f" + integrity sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ== dependencies: - "@jest/fake-timers" "^29.6.3" + "@jest/fake-timers" "^29.6.4" "@jest/types" "^29.6.3" "@types/node" "*" jest-mock "^29.6.3" -"@jest/expect-utils@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.3.tgz#5ef1a9689fdaa348da837c8be8d1219f56940ea3" - integrity sha512-nvOEW4YoqRKD9HBJ9OJ6przvIvP9qilp5nAn1462P5ZlL/MM9SgPEZFyjTGPfs7QkocdUsJa6KjHhyRn4ueItA== +"@jest/expect-utils@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.4.tgz#17c7dfe6cec106441f218b0aff4b295f98346679" + integrity sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg== dependencies: jest-get-type "^29.6.3" -"@jest/expect@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.3.tgz#d54e1e7134982166f62653add0d4b8262dd72db9" - integrity sha512-Ic08XbI2jlg6rECy+CGwk/8NDa6VE7UmIG6++9OTPAMnQmNGY28hu69Nf629CWv6T7YMODLbONxDFKdmQeI9FA== +"@jest/expect@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.4.tgz#1d6ae17dc68d906776198389427ab7ce6179dba6" + integrity sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA== dependencies: - expect "^29.6.3" - jest-snapshot "^29.6.3" + expect "^29.6.4" + jest-snapshot "^29.6.4" -"@jest/fake-timers@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.3.tgz#7e780b05b14ad59dca68bdc188f6cf085552a0e8" - integrity sha512-pa1wmqvbj6eX0nMvOM2VDAWvJOI5A/Mk3l8O7n7EsAh71sMZblaKO9iT4GjIj0LwwK3CP/Jp1ypEV0x3m89RvA== +"@jest/fake-timers@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.4.tgz#45a27f093c43d5d989362a3e7a8c70c83188b4f6" + integrity sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw== dependencies: "@jest/types" "^29.6.3" "@sinonjs/fake-timers" "^10.0.2" @@ -451,25 +451,25 @@ jest-mock "^29.6.3" jest-util "^29.6.3" -"@jest/globals@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.3.tgz#fe9e302bc20683ba8feb683b8804e38a9913b783" - integrity sha512-RB+uI+CZMHntzlnOPlll5x/jgRff3LEPl/td/jzMXiIgR0iIhKq9qm1HLU+EC52NuoVy/1swit/sDGjVn4bc6A== +"@jest/globals@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.4.tgz#4f04f58731b062b44ef23036b79bdb31f40c7f63" + integrity sha512-wVIn5bdtjlChhXAzVXavcY/3PEjf4VqM174BM3eGL5kMxLiZD5CLnbmkEyA1Dwh9q8XjP6E8RwjBsY/iCWrWsA== dependencies: - "@jest/environment" "^29.6.3" - "@jest/expect" "^29.6.3" + "@jest/environment" "^29.6.4" + "@jest/expect" "^29.6.4" "@jest/types" "^29.6.3" jest-mock "^29.6.3" -"@jest/reporters@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.3.tgz#e5071915d74f43e0f49982fa518ca3283a9f4c5a" - integrity sha512-kGz59zMi0GkVjD2CJeYWG9k6cvj7eBqt9aDAqo2rcCLRTYlvQ62Gu/n+tOmJMBHGjzeijjuCENjzTyYBgrtLUw== +"@jest/reporters@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.4.tgz#9d6350c8a2761ece91f7946e97ab0dabc06deab7" + integrity sha512-sxUjWxm7QdchdrD3NfWKrL8FBsortZeibSJv4XLjESOOjSUOkjQcb0ZHJwfhEGIvBvTluTzfG2yZWZhkrXJu8g== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.6.3" - "@jest/test-result" "^29.6.3" - "@jest/transform" "^29.6.3" + "@jest/console" "^29.6.4" + "@jest/test-result" "^29.6.4" + "@jest/transform" "^29.6.4" "@jest/types" "^29.6.3" "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" @@ -485,7 +485,7 @@ istanbul-reports "^3.1.3" jest-message-util "^29.6.3" jest-util "^29.6.3" - jest-worker "^29.6.3" + jest-worker "^29.6.4" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -507,30 +507,30 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.3.tgz#1da4c6749c16a71c108644624d9cd0d17206aa2b" - integrity sha512-k7ZZaNvOSMBHPZYiy0kuiaFoyansR5QnTwDux1EjK3kD5iWpRVyJIJ0RAIV39SThafchuW59vra7F8mdy5Hfgw== +"@jest/test-result@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.4.tgz#adf5c79f6e1fb7405ad13d67d9e2b6ff54b54c6b" + integrity sha512-uQ1C0AUEN90/dsyEirgMLlouROgSY+Wc/JanVVk0OiUKa5UFh7sJpMEM3aoUBAz2BRNvUJ8j3d294WFuRxSyOQ== dependencies: - "@jest/console" "^29.6.3" + "@jest/console" "^29.6.4" "@jest/types" "^29.6.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.3.tgz#e59f422bc3786d79fac504c16979a5f1b999a932" - integrity sha512-/SmijaAU2TY9ComFGIYa6Z+fmKqQMnqs2Nmwb0P/Z/tROdZ7M0iruES1EaaU9PBf8o9uED5xzaJ3YPFEIcDgAg== +"@jest/test-sequencer@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.4.tgz#86aef66aaa22b181307ed06c26c82802fb836d7b" + integrity sha512-E84M6LbpcRq3fT4ckfKs9ryVanwkaIB0Ws9bw3/yP4seRLg/VaCZ/LgW0MCq5wwk4/iP/qnilD41aj2fsw2RMg== dependencies: - "@jest/test-result" "^29.6.3" + "@jest/test-result" "^29.6.4" graceful-fs "^4.2.9" - jest-haste-map "^29.6.3" + jest-haste-map "^29.6.4" slash "^3.0.0" -"@jest/transform@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.3.tgz#e8e376f56fffe827b529bf03a9881e58d152c14b" - integrity sha512-dPIc3DsvMZ/S8ut4L2ViCj265mKO0owB0wfzBv2oGzL9pQ+iRvJewHqLBmsGb7XFb5UotWIEtvY5A/lnylaIoQ== +"@jest/transform@^29.6.4": + version "29.6.4" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.4.tgz#a6bc799ef597c5d85b2e65a11fd96b6b239bab5a" + integrity sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA== dependencies: "@babel/core" "^7.11.6" "@jest/types" "^29.6.3" @@ -540,7 +540,7 @@ convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.3" + jest-haste-map "^29.6.4" jest-regex-util "^29.6.3" jest-util "^29.6.3" micromatch "^4.0.4" @@ -809,12 +809,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.3.tgz#e62f6c38f3ec8c147244168ee18ef0b919f10348" - integrity sha512-1Ne93zZZEy5XmTa4Q+W5+zxBrDpExX8E3iy+xJJ+24ewlfo/T3qHfQJCzi/MMVFmBQDNxtRR/Gfd2dwb/0yrQw== +babel-jest@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.4.tgz#98dbc45d1c93319c82a8ab4a478b670655dd2585" + integrity sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw== dependencies: - "@jest/transform" "^29.6.3" + "@jest/transform" "^29.6.4" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.6.3" @@ -1260,14 +1260,14 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.3.tgz#e74b57c35a81fd93ece6b570e371309c53dc4f54" - integrity sha512-x1vY4LlEMWUYVZQrFi4ZANXFwqYbJ/JNQspLVvzhW2BNY28aNcXMQH6imBbt+RBf5sVRTodYHXtSP/TLEU0Dxw== +expect@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.4.tgz#a6e6f66d4613717859b2fe3da98a739437b6f4b8" + integrity sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA== dependencies: - "@jest/expect-utils" "^29.6.3" + "@jest/expect-utils" "^29.6.4" jest-get-type "^29.6.3" - jest-matcher-utils "^29.6.3" + jest-matcher-utils "^29.6.4" jest-message-util "^29.6.3" jest-util "^29.6.3" @@ -1618,14 +1618,14 @@ jest-changed-files@^29.6.3: jest-util "^29.6.3" p-limit "^3.1.0" -jest-circus@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.3.tgz#c5ac37758bb9e78fd78ebd655ed1d28b220d6fd3" - integrity sha512-p0R5YqZEMnOpHqHLWRSjm2z/0p6RNsrNE/GRRT3eli8QGOAozj6Ys/3Tv+Ej+IfltJoSPwcQ6/hOCRkNlxLLCw== +jest-circus@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.4.tgz#f074c8d795e0cc0f2ebf0705086b1be6a9a8722f" + integrity sha512-YXNrRyntVUgDfZbjXWBMPslX1mQ8MrSG0oM/Y06j9EYubODIyHWP8hMUbjbZ19M3M+zamqEur7O80HODwACoJw== dependencies: - "@jest/environment" "^29.6.3" - "@jest/expect" "^29.6.3" - "@jest/test-result" "^29.6.3" + "@jest/environment" "^29.6.4" + "@jest/expect" "^29.6.4" + "@jest/test-result" "^29.6.4" "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" @@ -1633,10 +1633,10 @@ jest-circus@^29.6.3: dedent "^1.0.0" is-generator-fn "^2.0.0" jest-each "^29.6.3" - jest-matcher-utils "^29.6.3" + jest-matcher-utils "^29.6.4" jest-message-util "^29.6.3" - jest-runtime "^29.6.3" - jest-snapshot "^29.6.3" + jest-runtime "^29.6.4" + jest-snapshot "^29.6.4" jest-util "^29.6.3" p-limit "^3.1.0" pretty-format "^29.6.3" @@ -1644,44 +1644,44 @@ jest-circus@^29.6.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.3.tgz#1e6520106e9d7443a481ebe07ffed46e1568a51f" - integrity sha512-KuPdXUPXQIf0t6DvmG8MV4QyhcjR1a6ruKl3YL7aGn/AQ8JkROwFkWzEpDIpt11Qy188dHbRm8WjwMsV/4nmnQ== +jest-cli@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.4.tgz#ad52f2dfa1b0291de7ec7f8d7c81ac435521ede0" + integrity sha512-+uMCQ7oizMmh8ZwRfZzKIEszFY9ksjjEQnTEMTaL7fYiL3Kw4XhqT9bYh+A4DQKUb67hZn2KbtEnDuHvcgK4pQ== dependencies: - "@jest/core" "^29.6.3" - "@jest/test-result" "^29.6.3" + "@jest/core" "^29.6.4" + "@jest/test-result" "^29.6.4" "@jest/types" "^29.6.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.6.3" + jest-config "^29.6.4" jest-util "^29.6.3" jest-validate "^29.6.3" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.3.tgz#2d1490005a28291806022f7f95ec3debf55eaaf7" - integrity sha512-nb9bOq2aEqogbyL4F9mLkAeQGAgNt7Uz6U59YtQDIxFPiL7Ejgq0YIrp78oyEHD6H4CIV/k7mFrK7eFDzUJ69w== +jest-config@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.4.tgz#eff958ee41d4e1ee7a6106d02b74ad9fc427d79e" + integrity sha512-JWohr3i9m2cVpBumQFv2akMEnFEPVOh+9L2xIBJhJ0zOaci2ZXuKJj0tgMKQCBZAKA09H049IR4HVS/43Qb19A== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.6.3" + "@jest/test-sequencer" "^29.6.4" "@jest/types" "^29.6.3" - babel-jest "^29.6.3" + babel-jest "^29.6.4" 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.6.3" - jest-environment-node "^29.6.3" + jest-circus "^29.6.4" + jest-environment-node "^29.6.4" jest-get-type "^29.6.3" jest-regex-util "^29.6.3" - jest-resolve "^29.6.3" - jest-runner "^29.6.3" + jest-resolve "^29.6.4" + jest-runner "^29.6.4" jest-util "^29.6.3" jest-validate "^29.6.3" micromatch "^4.0.4" @@ -1690,10 +1690,10 @@ jest-config@^29.6.3: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.3.tgz#365c6b037ea8e67d2f2af68bc018fc18d44311f0" - integrity sha512-3sw+AdWnwH9sSNohMRKA7JiYUJSRr/WS6+sEFfBuhxU5V5GlEVKfvUn8JuMHE0wqKowemR1C2aHy8VtXbaV8dQ== +jest-diff@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.4.tgz#85aaa6c92a79ae8cd9a54ebae8d5b6d9a513314a" + integrity sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw== dependencies: chalk "^4.0.0" diff-sequences "^29.6.3" @@ -1718,13 +1718,13 @@ jest-each@^29.6.3: jest-util "^29.6.3" pretty-format "^29.6.3" -jest-environment-node@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.3.tgz#72217a00db2c26755406241c70ad73c334917e28" - integrity sha512-PKl7upfPJXMYbWpD+60o4HP86KvFO2c9dZ+Zr6wUzsG5xcPx/65o3ArNgHW5M0RFvLYdW4/aieR4JSooD0a2ew== +jest-environment-node@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.4.tgz#4ce311549afd815d3cafb49e60a1e4b25f06d29f" + integrity sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ== dependencies: - "@jest/environment" "^29.6.3" - "@jest/fake-timers" "^29.6.3" + "@jest/environment" "^29.6.4" + "@jest/fake-timers" "^29.6.4" "@jest/types" "^29.6.3" "@types/node" "*" jest-mock "^29.6.3" @@ -1735,10 +1735,10 @@ jest-get-type@^29.6.3: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== -jest-haste-map@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.3.tgz#a53ac35a137fd32d932039aab29d02a9dab30689" - integrity sha512-GecR5YavfjkhOytEFHAeI6aWWG3f/cOKNB1YJvj/B76xAmeVjy4zJUYobGF030cRmKaO1FBw3V8CZZ6KVh9ZSw== +jest-haste-map@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.4.tgz#97143ce833829157ea7025204b08f9ace609b96a" + integrity sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog== dependencies: "@jest/types" "^29.6.3" "@types/graceful-fs" "^4.1.3" @@ -1748,7 +1748,7 @@ jest-haste-map@^29.6.3: graceful-fs "^4.2.9" jest-regex-util "^29.6.3" jest-util "^29.6.3" - jest-worker "^29.6.3" + jest-worker "^29.6.4" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: @@ -1762,13 +1762,13 @@ jest-leak-detector@^29.6.3: jest-get-type "^29.6.3" pretty-format "^29.6.3" -jest-matcher-utils@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.3.tgz#a7574092b635d96a38fa0a22d015fb596b9c2efc" - integrity sha512-6ZrMYINZdwduSt5Xu18/n49O1IgXdjsfG7NEZaQws9k69eTKWKcVbJBw/MZsjOZe2sSyJFmuzh8042XWwl54Zg== +jest-matcher-utils@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz#327db7ababea49455df3b23e5d6109fe0c709d24" + integrity sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ== dependencies: chalk "^4.0.0" - jest-diff "^29.6.3" + jest-diff "^29.6.4" jest-get-type "^29.6.3" pretty-format "^29.6.3" @@ -1806,22 +1806,22 @@ jest-regex-util@^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.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.3.tgz#fc58ac08f9ed992b10d5cfb0bbb1d89b98508ff3" - integrity sha512-iah5nhSPTwtUV7yzpTc9xGg8gP3Ch2VNsuFMsKoCkNCrQSbFtx5KRPemmPJ32AUhTSDqJXB6djPN6zAaUGV53g== +jest-resolve-dependencies@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.4.tgz#20156b33c7eacbb6bb77aeba4bed0eab4a3f8734" + integrity sha512-7+6eAmr1ZBF3vOAJVsfLj1QdqeXG+WYhidfLHBRZqGN24MFRIiKG20ItpLw2qRAsW/D2ZUUmCNf6irUr/v6KHA== dependencies: jest-regex-util "^29.6.3" - jest-snapshot "^29.6.3" + jest-snapshot "^29.6.4" -jest-resolve@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.3.tgz#e3114e1514973c8f1607387c3042f4d2926f2d60" - integrity sha512-WMXwxhvzDeA/J+9jz1i8ZKGmbw/n+s988EiUvRI4egM+eTn31Hb5v10Re3slG3/qxntkBt2/6GkQVDGu6Bwyhw== +jest-resolve@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.4.tgz#e34cb06f2178b429c38455d98d1a07572ac9faa3" + integrity sha512-fPRq+0vcxsuGlG0O3gyoqGTAxasagOxEuyoxHeyxaZbc9QNek0AmJWSkhjlMG+mTsj+8knc/mWb3fXlRNVih7Q== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.3" + jest-haste-map "^29.6.4" jest-pnp-resolver "^1.2.2" jest-util "^29.6.3" jest-validate "^29.6.3" @@ -1829,44 +1829,44 @@ jest-resolve@^29.6.3: resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.3.tgz#162b1a549c4728265e716d75533b65b4c77e6b22" - integrity sha512-E4zsMhQnjhirFPhDTJgoLMWUrVCDij/KGzWlbslDHGuO8Hl2pVUfOiygMzVZtZq+BzmlqwEr7LYmW+WFLlmX8w== +jest-runner@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.4.tgz#b3b8ccb85970fde0fae40c73ee11eb75adccfacf" + integrity sha512-SDaLrMmtVlQYDuG0iSPYLycG8P9jLI+fRm8AF/xPKhYDB2g6xDWjXBrR5M8gEWsK6KVFlebpZ4QsrxdyIX1Jaw== dependencies: - "@jest/console" "^29.6.3" - "@jest/environment" "^29.6.3" - "@jest/test-result" "^29.6.3" - "@jest/transform" "^29.6.3" + "@jest/console" "^29.6.4" + "@jest/environment" "^29.6.4" + "@jest/test-result" "^29.6.4" + "@jest/transform" "^29.6.4" "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.6.3" - jest-environment-node "^29.6.3" - jest-haste-map "^29.6.3" + jest-environment-node "^29.6.4" + jest-haste-map "^29.6.4" jest-leak-detector "^29.6.3" jest-message-util "^29.6.3" - jest-resolve "^29.6.3" - jest-runtime "^29.6.3" + jest-resolve "^29.6.4" + jest-runtime "^29.6.4" jest-util "^29.6.3" - jest-watcher "^29.6.3" - jest-worker "^29.6.3" + jest-watcher "^29.6.4" + jest-worker "^29.6.4" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.3.tgz#8bfa29447808419a7b5bed13beb0447a90344c65" - integrity sha512-VM0Z3a9xaqizGpEKwCOIhImkrINYzxgwk8oQAvrmAiXX8LNrJrRjyva30RkuRY0ETAotHLlUcd2moviCA1hgsQ== +jest-runtime@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.4.tgz#b0bc495c9b6b12a0a7042ac34ca9bb85f8cd0ded" + integrity sha512-s/QxMBLvmwLdchKEjcLfwzP7h+jsHvNEtxGP5P+Fl1FMaJX2jMiIqe4rJw4tFprzCwuSvVUo9bn0uj4gNRXsbA== dependencies: - "@jest/environment" "^29.6.3" - "@jest/fake-timers" "^29.6.3" - "@jest/globals" "^29.6.3" + "@jest/environment" "^29.6.4" + "@jest/fake-timers" "^29.6.4" + "@jest/globals" "^29.6.4" "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.6.3" - "@jest/transform" "^29.6.3" + "@jest/test-result" "^29.6.4" + "@jest/transform" "^29.6.4" "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" @@ -1874,36 +1874,36 @@ jest-runtime@^29.6.3: collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.6.3" + jest-haste-map "^29.6.4" jest-message-util "^29.6.3" jest-mock "^29.6.3" jest-regex-util "^29.6.3" - jest-resolve "^29.6.3" - jest-snapshot "^29.6.3" + jest-resolve "^29.6.4" + jest-snapshot "^29.6.4" jest-util "^29.6.3" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.3.tgz#2435b50881f7bffdc1a66e66c64a2602c8086281" - integrity sha512-66Iu7H1ojiveQMGFnKecHIZPPPBjZwfQEnF6wxqpxGf57sV3YSUtAb5/sTKM5TPa3OndyxZp1wxHFbmgVhc53w== +jest-snapshot@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.4.tgz#9833eb6b66ff1541c7fd8ceaa42d541f407b4876" + integrity sha512-VC1N8ED7+4uboUKGIDsbvNAZb6LakgIPgAF4RSpF13dN6YaMokfRqO+BaqK4zIh6X3JffgwbzuGqDEjHm/MrvA== 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.6.3" - "@jest/transform" "^29.6.3" + "@jest/expect-utils" "^29.6.4" + "@jest/transform" "^29.6.4" "@jest/types" "^29.6.3" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.6.3" + expect "^29.6.4" graceful-fs "^4.2.9" - jest-diff "^29.6.3" + jest-diff "^29.6.4" jest-get-type "^29.6.3" - jest-matcher-utils "^29.6.3" + jest-matcher-utils "^29.6.4" jest-message-util "^29.6.3" jest-util "^29.6.3" natural-compare "^1.4.0" @@ -1934,12 +1934,12 @@ jest-validate@^29.6.3: leven "^3.1.0" pretty-format "^29.6.3" -jest-watcher@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.3.tgz#f5089852fc5f57ba1d956ec02d80cf2f6f34156d" - integrity sha512-NgpFjZ2U2MKusjidbi4Oiu7tfs+nrgdIxIEVROvH1cFmOei9Uj25lwkMsakqLnH/s0nEcvxO1ck77FiRlcnpZg== +jest-watcher@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.4.tgz#633eb515ae284aa67fd6831f1c9d1b534cf0e0ba" + integrity sha512-oqUWvx6+On04ShsT00Ir9T4/FvBeEh2M9PTubgITPxDa739p4hoQweWPRGyYeaojgT0xTpZKF0Y/rSY1UgMxvQ== dependencies: - "@jest/test-result" "^29.6.3" + "@jest/test-result" "^29.6.4" "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" @@ -1948,10 +1948,10 @@ jest-watcher@^29.6.3: jest-util "^29.6.3" string-length "^4.0.1" -jest-worker@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.3.tgz#7b1a47bbb6559f3c0882d16595938590e63915d5" - integrity sha512-wacANXecZ/GbQakpf2CClrqrlwsYYDSXFd4fIGdL+dXpM2GWoJ+6bhQ7vR3TKi3+gkSfBkjy1/khH/WrYS4Q6g== +jest-worker@^29.6.4: + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.4.tgz#f34279f4afc33c872b470d4af21b281ac616abd3" + integrity sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q== dependencies: "@types/node" "*" jest-util "^29.6.3" @@ -1959,14 +1959,14 @@ jest-worker@^29.6.3: supports-color "^8.0.0" jest@^29.5.0: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.3.tgz#118cf081d440d31b21989f61bfcd8b7797ca6a01" - integrity sha512-alueLuoPCDNHFcFGmgETR4KpQ+0ff3qVaiJwxQM4B5sC0CvXcgg4PEi7xrDkxuItDmdz/FVc7SSit4KEu8GRvw== + version "29.6.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.4.tgz#7c48e67a445ba264b778253b5d78d4ebc9d0a622" + integrity sha512-tEFhVQFF/bzoYV1YuGyzLPZ6vlPrdfvDmmAxudA1dLEuiztqg2Rkx20vkKY32xiDROcD2KXlgZ7Cu8RPeEHRKw== dependencies: - "@jest/core" "^29.6.3" + "@jest/core" "^29.6.4" "@jest/types" "^29.6.3" import-local "^3.0.2" - jest-cli "^29.6.3" + jest-cli "^29.6.4" js-tokens@^4.0.0: version "4.0.0" From 0b16f1c1afd72b8c7e9f67ed7a453a4446cce640 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Aug 2023 12:31:08 +0000 Subject: [PATCH 215/262] Bump eslint from 8.47.0 to 8.48.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.47.0 to 8.48.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.47.0...v8.48.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 160f83aa..862c950e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -328,10 +328,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@^8.47.0": - version "8.47.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.47.0.tgz#5478fdf443ff8158f9de171c704ae45308696c7d" - integrity sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og== +"@eslint/js@8.48.0": + version "8.48.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" + integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== "@humanwhocodes/config-array@^0.11.10": version "0.11.10" @@ -1145,14 +1145,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.35.0: - version "8.47.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.47.0.tgz#c95f9b935463fb4fad7005e626c7621052e90806" - integrity sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q== + version "8.48.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" + integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "^8.47.0" + "@eslint/js" "8.48.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" From 8e0ff99a8fa4b25b47b113a6a7bd33b148124524 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Aug 2023 12:38:16 +0000 Subject: [PATCH 216/262] Bump prettier from 3.0.2 to 3.0.3 Bumps [prettier](https://github.com/prettier/prettier) from 3.0.2 to 3.0.3. - [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.0.2...3.0.3) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 862c950e..9db7fd9e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2280,9 +2280,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.2.tgz#78fcecd6d870551aa5547437cdae39d4701dca5b" - integrity sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ== + 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== pretty-format@^29.6.3: version "29.6.3" From d4e6b447bb48009a609f99730efeca88a31dcb8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 12:23:25 +0000 Subject: [PATCH 217/262] Bump eslint from 8.48.0 to 8.49.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.48.0 to 8.49.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.48.0...v8.49.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9db7fd9e..1c5503a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -328,15 +328,15 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.48.0": - version "8.48.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb" - integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw== +"@eslint/js@8.49.0": + version "8.49.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.49.0.tgz#86f79756004a97fa4df866835093f1df3d03c333" + integrity sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w== -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== +"@humanwhocodes/config-array@^0.11.11": + version "0.11.11" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" + integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -1145,15 +1145,15 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.35.0: - version "8.48.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155" - integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg== + version "8.49.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.49.0.tgz#09d80a89bdb4edee2efcf6964623af1054bf6d42" + integrity sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.48.0" - "@humanwhocodes/config-array" "^0.11.10" + "@eslint/js" "8.49.0" + "@humanwhocodes/config-array" "^0.11.11" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.12.4" From df3cc4cdbc8ffc2eb14dc5e1c6fca51856b74a8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Sep 2023 12:22:03 +0000 Subject: [PATCH 218/262] Bump jest from 29.6.4 to 29.7.0 Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 29.6.4 to 29.7.0. - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v29.7.0/packages/jest) --- updated-dependencies: - dependency-name: jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 564 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 288 insertions(+), 276 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1c5503a2..e2efc5e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -368,27 +368,27 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.4.tgz#a7e2d84516301f986bba0dd55af9d5fe37f46527" - integrity sha512-wNK6gC0Ha9QeEPSkeJedQuTQqxZYnDPuDcDhVuVatRvMkL4D0VTvFVZj+Yuh6caG2aOfzkUZ36KtCmLNtR02hw== +"@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" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.6.3" - jest-util "^29.6.3" + jest-message-util "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" -"@jest/core@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.4.tgz#265ebee05ec1ff3567757e7a327155c8d6bdb126" - integrity sha512-U/vq5ccNTSVgYH7mHnodHmCffGWHJnz/E1BEWlLuK5pM4FZmGfBn/nrJGLjUsSmyx3otCeqc1T31F4y08AMDLg== +"@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.6.4" - "@jest/reporters" "^29.6.4" - "@jest/test-result" "^29.6.4" - "@jest/transform" "^29.6.4" + "@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" @@ -396,80 +396,80 @@ ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.6.3" - jest-config "^29.6.4" - jest-haste-map "^29.6.4" - jest-message-util "^29.6.3" + 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.6.4" - jest-resolve-dependencies "^29.6.4" - jest-runner "^29.6.4" - jest-runtime "^29.6.4" - jest-snapshot "^29.6.4" - jest-util "^29.6.3" - jest-validate "^29.6.3" - jest-watcher "^29.6.4" + 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.6.3" + pretty-format "^29.7.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.4.tgz#78ec2c9f8c8829a37616934ff4fea0c028c79f4f" - integrity sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ== +"@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== dependencies: - "@jest/fake-timers" "^29.6.4" + "@jest/fake-timers" "^29.7.0" "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.6.3" + jest-mock "^29.7.0" -"@jest/expect-utils@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.4.tgz#17c7dfe6cec106441f218b0aff4b295f98346679" - integrity sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg== +"@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/expect@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.4.tgz#1d6ae17dc68d906776198389427ab7ce6179dba6" - integrity sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA== +"@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== dependencies: - expect "^29.6.4" - jest-snapshot "^29.6.4" + expect "^29.7.0" + jest-snapshot "^29.7.0" -"@jest/fake-timers@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.4.tgz#45a27f093c43d5d989362a3e7a8c70c83188b4f6" - integrity sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw== +"@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== dependencies: "@jest/types" "^29.6.3" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.6.3" - jest-mock "^29.6.3" - jest-util "^29.6.3" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" -"@jest/globals@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.4.tgz#4f04f58731b062b44ef23036b79bdb31f40c7f63" - integrity sha512-wVIn5bdtjlChhXAzVXavcY/3PEjf4VqM174BM3eGL5kMxLiZD5CLnbmkEyA1Dwh9q8XjP6E8RwjBsY/iCWrWsA== +"@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.6.4" - "@jest/expect" "^29.6.4" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" "@jest/types" "^29.6.3" - jest-mock "^29.6.3" + jest-mock "^29.7.0" -"@jest/reporters@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.4.tgz#9d6350c8a2761ece91f7946e97ab0dabc06deab7" - integrity sha512-sxUjWxm7QdchdrD3NfWKrL8FBsortZeibSJv4XLjESOOjSUOkjQcb0ZHJwfhEGIvBvTluTzfG2yZWZhkrXJu8g== +"@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== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.6.4" - "@jest/test-result" "^29.6.4" - "@jest/transform" "^29.6.4" + "@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" "@types/node" "*" @@ -483,9 +483,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.6.3" - jest-util "^29.6.3" - jest-worker "^29.6.4" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -507,30 +507,30 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.4.tgz#adf5c79f6e1fb7405ad13d67d9e2b6ff54b54c6b" - integrity sha512-uQ1C0AUEN90/dsyEirgMLlouROgSY+Wc/JanVVk0OiUKa5UFh7sJpMEM3aoUBAz2BRNvUJ8j3d294WFuRxSyOQ== +"@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.6.4" + "@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.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.4.tgz#86aef66aaa22b181307ed06c26c82802fb836d7b" - integrity sha512-E84M6LbpcRq3fT4ckfKs9ryVanwkaIB0Ws9bw3/yP4seRLg/VaCZ/LgW0MCq5wwk4/iP/qnilD41aj2fsw2RMg== +"@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.6.4" + "@jest/test-result" "^29.7.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.4" + jest-haste-map "^29.7.0" slash "^3.0.0" -"@jest/transform@^29.6.4": - version "29.6.4" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.4.tgz#a6bc799ef597c5d85b2e65a11fd96b6b239bab5a" - integrity sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA== +"@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== dependencies: "@babel/core" "^7.11.6" "@jest/types" "^29.6.3" @@ -540,9 +540,9 @@ convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.4" + jest-haste-map "^29.7.0" jest-regex-util "^29.6.3" - jest-util "^29.6.3" + jest-util "^29.7.0" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -809,12 +809,12 @@ arrify@^2.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== -babel-jest@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.4.tgz#98dbc45d1c93319c82a8ab4a478b670655dd2585" - integrity sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw== +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.6.4" + "@jest/transform" "^29.7.0" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.6.3" @@ -1029,6 +1029,19 @@ 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== +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== + 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" + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -1260,16 +1273,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.4.tgz#a6e6f66d4613717859b2fe3da98a739437b6f4b8" - integrity sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA== +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.6.4" + "@jest/expect-utils" "^29.7.0" jest-get-type "^29.6.3" - jest-matcher-utils "^29.6.4" - jest-message-util "^29.6.3" - jest-util "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -1609,136 +1622,135 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.6.3.tgz#97cfdc93f74fb8af2a1acb0b78f836f1fb40c449" - integrity sha512-G5wDnElqLa4/c66ma5PG9eRjE342lIbF6SUnTJi26C3J28Fv2TVY2rOyKB9YGbSA5ogwevgmxc4j4aVjrEK6Yg== +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.6.3" + jest-util "^29.7.0" p-limit "^3.1.0" -jest-circus@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.4.tgz#f074c8d795e0cc0f2ebf0705086b1be6a9a8722f" - integrity sha512-YXNrRyntVUgDfZbjXWBMPslX1mQ8MrSG0oM/Y06j9EYubODIyHWP8hMUbjbZ19M3M+zamqEur7O80HODwACoJw== +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.6.4" - "@jest/expect" "^29.6.4" - "@jest/test-result" "^29.6.4" + "@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.6.3" - jest-matcher-utils "^29.6.4" - jest-message-util "^29.6.3" - jest-runtime "^29.6.4" - jest-snapshot "^29.6.4" - jest-util "^29.6.3" + 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.6.3" + pretty-format "^29.7.0" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.4.tgz#ad52f2dfa1b0291de7ec7f8d7c81ac435521ede0" - integrity sha512-+uMCQ7oizMmh8ZwRfZzKIEszFY9ksjjEQnTEMTaL7fYiL3Kw4XhqT9bYh+A4DQKUb67hZn2KbtEnDuHvcgK4pQ== +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.6.4" - "@jest/test-result" "^29.6.4" + "@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" - graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.6.4" - jest-util "^29.6.3" - jest-validate "^29.6.3" - prompts "^2.0.1" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" yargs "^17.3.1" -jest-config@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.4.tgz#eff958ee41d4e1ee7a6106d02b74ad9fc427d79e" - integrity sha512-JWohr3i9m2cVpBumQFv2akMEnFEPVOh+9L2xIBJhJ0zOaci2ZXuKJj0tgMKQCBZAKA09H049IR4HVS/43Qb19A== +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.6.4" + "@jest/test-sequencer" "^29.7.0" "@jest/types" "^29.6.3" - babel-jest "^29.6.4" + 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.6.4" - jest-environment-node "^29.6.4" + 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.6.4" - jest-runner "^29.6.4" - jest-util "^29.6.3" - jest-validate "^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.6.3" + pretty-format "^29.7.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.4.tgz#85aaa6c92a79ae8cd9a54ebae8d5b6d9a513314a" - integrity sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw== +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== dependencies: chalk "^4.0.0" diff-sequences "^29.6.3" jest-get-type "^29.6.3" - pretty-format "^29.6.3" + pretty-format "^29.7.0" -jest-docblock@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.6.3.tgz#293dca5188846c9f7c0c2b1bb33e5b11f21645f2" - integrity sha512-2+H+GOTQBEm2+qFSQ7Ma+BvyV+waiIFxmZF5LdpBsAEjWX8QYjSCa4FrkIYtbfXUJJJnFCYrOtt6TZ+IAiTjBQ== +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== dependencies: detect-newline "^3.0.0" -jest-each@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.3.tgz#1956f14f5f0cb8ae0b2e7cabc10bb03ec817c142" - integrity sha512-KoXfJ42k8cqbkfshW7sSHcdfnv5agDdHCPA87ZBdmHP+zJstTJc0ttQaJ/x7zK6noAL76hOuTIJ6ZkQRS5dcyg== +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== dependencies: "@jest/types" "^29.6.3" chalk "^4.0.0" jest-get-type "^29.6.3" - jest-util "^29.6.3" - pretty-format "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" -jest-environment-node@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.4.tgz#4ce311549afd815d3cafb49e60a1e4b25f06d29f" - integrity sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ== +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.6.4" - "@jest/fake-timers" "^29.6.4" + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" "@jest/types" "^29.6.3" "@types/node" "*" - jest-mock "^29.6.3" - jest-util "^29.6.3" + jest-mock "^29.7.0" + jest-util "^29.7.0" 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-haste-map@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.4.tgz#97143ce833829157ea7025204b08f9ace609b96a" - integrity sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog== +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== dependencies: "@jest/types" "^29.6.3" "@types/graceful-fs" "^4.1.3" @@ -1747,35 +1759,35 @@ jest-haste-map@^29.6.4: fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.6.3" - jest-util "^29.6.3" - jest-worker "^29.6.4" + jest-util "^29.7.0" + jest-worker "^29.7.0" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.3.tgz#b9661bc3aec8874e59aff361fa0c6d7cd507ea01" - integrity sha512-0kfbESIHXYdhAdpLsW7xdwmYhLf1BRu4AA118/OxFm0Ho1b2RcTmO4oF6aAMaxpxdxnJ3zve2rgwzNBD4Zbm7Q== +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.6.3" + pretty-format "^29.7.0" -jest-matcher-utils@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.4.tgz#327db7ababea49455df3b23e5d6109fe0c709d24" - integrity sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ== +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.6.4" + jest-diff "^29.7.0" jest-get-type "^29.6.3" - pretty-format "^29.6.3" + pretty-format "^29.7.0" -jest-message-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.3.tgz#bce16050d86801b165f20cfde34dc01d3cf85fbf" - integrity sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA== +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" @@ -1783,18 +1795,18 @@ jest-message-util@^29.6.3: chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.6.3" + pretty-format "^29.7.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.3.tgz#433f3fd528c8ec5a76860177484940628bdf5e0a" - integrity sha512-Z7Gs/mOyTSR4yPsaZ72a/MtuK6RnC3JYqWONe48oLaoEcYwEDxqvbXz85G4SJrm2Z5Ar9zp6MiHF4AlFlRM4Pg== +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.6.3" + jest-util "^29.7.0" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -1806,67 +1818,67 @@ jest-regex-util@^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.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.4.tgz#20156b33c7eacbb6bb77aeba4bed0eab4a3f8734" - integrity sha512-7+6eAmr1ZBF3vOAJVsfLj1QdqeXG+WYhidfLHBRZqGN24MFRIiKG20ItpLw2qRAsW/D2ZUUmCNf6irUr/v6KHA== +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.6.4" + jest-snapshot "^29.7.0" -jest-resolve@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.4.tgz#e34cb06f2178b429c38455d98d1a07572ac9faa3" - integrity sha512-fPRq+0vcxsuGlG0O3gyoqGTAxasagOxEuyoxHeyxaZbc9QNek0AmJWSkhjlMG+mTsj+8knc/mWb3fXlRNVih7Q== +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.6.4" + jest-haste-map "^29.7.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.6.3" - jest-validate "^29.6.3" + jest-util "^29.7.0" + jest-validate "^29.7.0" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.4.tgz#b3b8ccb85970fde0fae40c73ee11eb75adccfacf" - integrity sha512-SDaLrMmtVlQYDuG0iSPYLycG8P9jLI+fRm8AF/xPKhYDB2g6xDWjXBrR5M8gEWsK6KVFlebpZ4QsrxdyIX1Jaw== +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.6.4" - "@jest/environment" "^29.6.4" - "@jest/test-result" "^29.6.4" - "@jest/transform" "^29.6.4" + "@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" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.6.3" - jest-environment-node "^29.6.4" - jest-haste-map "^29.6.4" - jest-leak-detector "^29.6.3" - jest-message-util "^29.6.3" - jest-resolve "^29.6.4" - jest-runtime "^29.6.4" - jest-util "^29.6.3" - jest-watcher "^29.6.4" - jest-worker "^29.6.4" + 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" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.4.tgz#b0bc495c9b6b12a0a7042ac34ca9bb85f8cd0ded" - integrity sha512-s/QxMBLvmwLdchKEjcLfwzP7h+jsHvNEtxGP5P+Fl1FMaJX2jMiIqe4rJw4tFprzCwuSvVUo9bn0uj4gNRXsbA== +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.6.4" - "@jest/fake-timers" "^29.6.4" - "@jest/globals" "^29.6.4" + "@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.6.4" - "@jest/transform" "^29.6.4" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" @@ -1874,46 +1886,46 @@ jest-runtime@^29.6.4: collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.6.4" - jest-message-util "^29.6.3" - jest-mock "^29.6.3" + 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.6.4" - jest-snapshot "^29.6.4" - jest-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.4.tgz#9833eb6b66ff1541c7fd8ceaa42d541f407b4876" - integrity sha512-VC1N8ED7+4uboUKGIDsbvNAZb6LakgIPgAF4RSpF13dN6YaMokfRqO+BaqK4zIh6X3JffgwbzuGqDEjHm/MrvA== +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.6.4" - "@jest/transform" "^29.6.4" + "@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.6.4" + expect "^29.7.0" graceful-fs "^4.2.9" - jest-diff "^29.6.4" + jest-diff "^29.7.0" jest-get-type "^29.6.3" - jest-matcher-utils "^29.6.4" - jest-message-util "^29.6.3" - jest-util "^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.6.3" + pretty-format "^29.7.0" semver "^7.5.3" -jest-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.3.tgz#e15c3eac8716440d1ed076f09bc63ace1aebca63" - integrity sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA== +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" "@types/node" "*" @@ -1922,51 +1934,51 @@ jest-util@^29.6.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.3.tgz#a75fca774cfb1c5758c70d035d30a1f9c2784b4d" - integrity sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg== +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" leven "^3.1.0" - pretty-format "^29.6.3" + pretty-format "^29.7.0" -jest-watcher@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.4.tgz#633eb515ae284aa67fd6831f1c9d1b534cf0e0ba" - integrity sha512-oqUWvx6+On04ShsT00Ir9T4/FvBeEh2M9PTubgITPxDa739p4hoQweWPRGyYeaojgT0xTpZKF0Y/rSY1UgMxvQ== +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== dependencies: - "@jest/test-result" "^29.6.4" + "@jest/test-result" "^29.7.0" "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.6.3" + jest-util "^29.7.0" string-length "^4.0.1" -jest-worker@^29.6.4: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.4.tgz#f34279f4afc33c872b470d4af21b281ac616abd3" - integrity sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q== +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== dependencies: "@types/node" "*" - jest-util "^29.6.3" + jest-util "^29.7.0" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.5.0: - version "29.6.4" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.4.tgz#7c48e67a445ba264b778253b5d78d4ebc9d0a622" - integrity sha512-tEFhVQFF/bzoYV1YuGyzLPZ6vlPrdfvDmmAxudA1dLEuiztqg2Rkx20vkKY32xiDROcD2KXlgZ7Cu8RPeEHRKw== + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== dependencies: - "@jest/core" "^29.6.4" + "@jest/core" "^29.7.0" "@jest/types" "^29.6.3" import-local "^3.0.2" - jest-cli "^29.6.4" + jest-cli "^29.7.0" js-tokens@^4.0.0: version "4.0.0" @@ -2284,10 +2296,10 @@ prettier@^3.0.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== -pretty-format@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.3.tgz#d432bb4f1ca6f9463410c3fb25a0ba88e594ace7" - integrity sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw== +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" From a7c1089bc1dd18f0d1cdfd242e5022596514b8ff Mon Sep 17 00:00:00 2001 From: Michael Moen Date: Thu, 5 Oct 2023 10:37:49 -0500 Subject: [PATCH 219/262] Update README for Prettier v3 --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 7349d98f..b4512a99 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,17 @@ The `prettier` executable is now installed and ready for use: ./node_modules/.bin/prettier --plugin=@prettier/plugin-ruby --write '**/*' ``` +### Using Prettier >= 3.0 + +You need to tell Prettier to use the plugin, add the following to your existing [prettier configuration +file](https://prettier.io/docs/en/configuration.html). + +```json +{ + "plugins": ["@prettier/plugin-ruby"], +} +``` + ## Configuration Below are the options (from [`src/plugin.js`](src/plugin.js)) that `@prettier/plugin-ruby` currently supports: From 9dd336027440cc955b4a4b02cef2d470b1710da9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Oct 2023 12:17:42 +0000 Subject: [PATCH 220/262] Bump eslint from 8.49.0 to 8.51.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.49.0 to 8.51.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.49.0...v8.51.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index e2efc5e7..63b633fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -328,10 +328,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.49.0": - version "8.49.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.49.0.tgz#86f79756004a97fa4df866835093f1df3d03c333" - integrity sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w== +"@eslint/js@8.51.0": + version "8.51.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.51.0.tgz#6d419c240cfb2b66da37df230f7e7eef801c32fa" + integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== "@humanwhocodes/config-array@^0.11.11": version "0.11.11" @@ -1158,14 +1158,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.35.0: - version "8.49.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.49.0.tgz#09d80a89bdb4edee2efcf6964623af1054bf6d42" - integrity sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ== + version "8.51.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.51.0.tgz#4a82dae60d209ac89a5cff1604fea978ba4950f3" + integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.49.0" + "@eslint/js" "8.51.0" "@humanwhocodes/config-array" "^0.11.11" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" From f776be9156061b76e70416bb6bb6d5ef79a2ce83 Mon Sep 17 00:00:00 2001 From: Heiko Rabe Date: Sun, 19 Nov 2023 12:28:07 +0100 Subject: [PATCH 221/262] Support shimmed ruby versions --- src/plugin.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugin.js b/src/plugin.js index 22459cad..3ae4de7b 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -75,6 +75,7 @@ export async function spawnServer(opts, killOnExit = true) { filepath ], { + cwd: path.dirname(opts.filepath), env: Object.assign({}, process.env, { LANG: getLang() }), stdio: ["ignore", "ignore", "inherit"], detached: true From b01581ffa5f73ae3de1f59655d27959103d1d973 Mon Sep 17 00:00:00 2001 From: Heiko Rabe Date: Mon, 20 Nov 2023 08:30:58 +0100 Subject: [PATCH 222/262] Prettify README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b4512a99..a0db67ff 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ file](https://prettier.io/docs/en/configuration.html). ```json { - "plugins": ["@prettier/plugin-ruby"], + "plugins": ["@prettier/plugin-ruby"] } ``` From 18c286c734dc465109f2f770d84e8fb54f368af7 Mon Sep 17 00:00:00 2001 From: Heiko Rabe Date: Mon, 20 Nov 2023 08:41:12 +0100 Subject: [PATCH 223/262] Fix file path --- src/plugin.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugin.js b/src/plugin.js index 3ae4de7b..808c1cb6 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -67,6 +67,8 @@ export async function spawnServer(opts, killOnExit = true) { const tmpdir = os.tmpdir(); const filepath = path.join(tmpdir, `prettier-ruby-parser-${process.pid}.txt`); + const currentDir = opts.filepath || process.cwd(); + const server = spawn( opts.rubyExecutablePath || "ruby", [ @@ -75,7 +77,7 @@ export async function spawnServer(opts, killOnExit = true) { filepath ], { - cwd: path.dirname(opts.filepath), + cwd: path.dirname(currentDir), env: Object.assign({}, process.env, { LANG: getLang() }), stdio: ["ignore", "ignore", "inherit"], detached: true From a6025fd08632c55c6a93f24d7a2d9a3a0b32492e Mon Sep 17 00:00:00 2001 From: Heiko Rabe Date: Mon, 20 Nov 2023 08:41:32 +0100 Subject: [PATCH 224/262] Repair tests --- test/js/ruby/nodes/lambda.test.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/js/ruby/nodes/lambda.test.js b/test/js/ruby/nodes/lambda.test.js index c42e34b6..a1f9dc3c 100644 --- a/test/js/ruby/nodes/lambda.test.js +++ b/test/js/ruby/nodes/lambda.test.js @@ -36,9 +36,9 @@ describe("lambda", () => { return expect(`command :foo, -> { ${long} }`).toChangeFormat( ruby(` command :foo, - -> { + -> do ${long} - } + end `) ); }); @@ -51,9 +51,9 @@ describe("lambda", () => { return expect(`command.call :foo, -> { ${long} }`).toChangeFormat( ruby(` command.call :foo, - -> { + -> do ${long} - } + end `) ); }); @@ -62,9 +62,9 @@ describe("lambda", () => { return expect(`command :foo, bar: -> { ${long} }`).toChangeFormat( ruby(` command :foo, - bar: -> { + bar: -> do ${long} - } + end `) ); }); @@ -79,9 +79,9 @@ describe("lambda", () => { ${long}, a${long}, aa${long} - ) { + ) do true - } + end `) ); }); From 5b860436ced483b6139431a689a990042b79f4ca Mon Sep 17 00:00:00 2001 From: Heiko Rabe Date: Mon, 20 Nov 2023 08:46:05 +0100 Subject: [PATCH 225/262] Rename const --- src/plugin.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugin.js b/src/plugin.js index 808c1cb6..d6931207 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -67,7 +67,7 @@ export async function spawnServer(opts, killOnExit = true) { const tmpdir = os.tmpdir(); const filepath = path.join(tmpdir, `prettier-ruby-parser-${process.pid}.txt`); - const currentDir = opts.filepath || process.cwd(); + const currentFile = opts.filepath || process.cwd(); const server = spawn( opts.rubyExecutablePath || "ruby", @@ -77,7 +77,7 @@ export async function spawnServer(opts, killOnExit = true) { filepath ], { - cwd: path.dirname(currentDir), + cwd: path.dirname(currentFile), env: Object.assign({}, process.env, { LANG: getLang() }), stdio: ["ignore", "ignore", "inherit"], detached: true From 4643d2ed11459833e11a61520d91c92ac638b341 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 20 Nov 2023 13:38:25 -0500 Subject: [PATCH 226/262] Bump to latest --- package.json | 4 +- test/js/ruby/nodes/lambda.test.js | 16 ++++---- yarn.lock | 62 +++++++++++++++++-------------- 3 files changed, 44 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index d09fde8c..538fef64 100644 --- a/package.json +++ b/package.json @@ -23,11 +23,11 @@ "prettier": "^3.0.0" }, "devDependencies": { - "eslint": "^8.35.0", + "eslint": "^8.54.0", "eslint-config-prettier": "^9.0.0", "husky": "^8.0.1", "jest": "^29.5.0", - "prettier": "^3.0.0", + "prettier": "^3.1.0", "pretty-quick": "^3.1.2" }, "eslintConfig": { diff --git a/test/js/ruby/nodes/lambda.test.js b/test/js/ruby/nodes/lambda.test.js index c42e34b6..a1f9dc3c 100644 --- a/test/js/ruby/nodes/lambda.test.js +++ b/test/js/ruby/nodes/lambda.test.js @@ -36,9 +36,9 @@ describe("lambda", () => { return expect(`command :foo, -> { ${long} }`).toChangeFormat( ruby(` command :foo, - -> { + -> do ${long} - } + end `) ); }); @@ -51,9 +51,9 @@ describe("lambda", () => { return expect(`command.call :foo, -> { ${long} }`).toChangeFormat( ruby(` command.call :foo, - -> { + -> do ${long} - } + end `) ); }); @@ -62,9 +62,9 @@ describe("lambda", () => { return expect(`command :foo, bar: -> { ${long} }`).toChangeFormat( ruby(` command :foo, - bar: -> { + bar: -> do ${long} - } + end `) ); }); @@ -79,9 +79,9 @@ describe("lambda", () => { ${long}, a${long}, aa${long} - ) { + ) do true - } + end `) ); }); diff --git a/yarn.lock b/yarn.lock index 63b633fd..ca626fa9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -313,10 +313,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== +"@eslint/eslintrc@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" + integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -328,17 +328,17 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.51.0": - version "8.51.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.51.0.tgz#6d419c240cfb2b66da37df230f7e7eef801c32fa" - integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== +"@eslint/js@8.54.0": + version "8.54.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" + integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== -"@humanwhocodes/config-array@^0.11.11": - version "0.11.11" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" - integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== +"@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" "^1.2.1" + "@humanwhocodes/object-schema" "^2.0.1" debug "^4.1.1" minimatch "^3.0.5" @@ -347,10 +347,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@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== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -723,6 +723,11 @@ dependencies: "@types/yargs-parser" "*" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1157,18 +1162,19 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, 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.35.0: - version "8.51.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.51.0.tgz#4a82dae60d209ac89a5cff1604fea978ba4950f3" - integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== +eslint@^8.54.0: + version "8.54.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" + integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.51.0" - "@humanwhocodes/config-array" "^0.11.11" + "@eslint/eslintrc" "^2.1.3" + "@eslint/js" "8.54.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -2291,10 +2297,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^3.0.0: - 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== +prettier@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" + integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== pretty-format@^29.7.0: version "29.7.0" From a31fcbecac8de9bdcee16afcf01aee127e467b67 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 20 Nov 2023 13:40:02 -0500 Subject: [PATCH 227/262] Fix up README.md formatting --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b4512a99..a0db67ff 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ file](https://prettier.io/docs/en/configuration.html). ```json { - "plugins": ["@prettier/plugin-ruby"], + "plugins": ["@prettier/plugin-ruby"] } ``` From a0fd31cfbdb70f41c7fc4e3c4ef60dbd7e0652cc Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 20 Nov 2023 13:40:32 -0500 Subject: [PATCH 228/262] Update node versions in main.yml --- .github/workflows/main.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 62292d9f..7c247608 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,9 +24,9 @@ jobs: with: bundler-cache: true ruby-version: ${{ matrix.ruby }} - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: 18.x + node-version: 20.x cache: yarn - run: yarn install --frozen-lockfile - run: yarn test @@ -41,9 +41,9 @@ jobs: with: bundler-cache: true ruby-version: "3.0" - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: 18.x + node-version: 20.x cache: yarn - run: yarn install --frozen-lockfile - run: yarn checkFormat @@ -58,9 +58,9 @@ jobs: with: bundler-cache: true ruby-version: "3.2" - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: 18.x + node-version: 20.x cache: yarn - run: yarn install --frozen-lockfile - run: gem build -o prettier.gem From cd4a0dc889f7664422b95538330f37dccc0ee001 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 20 Nov 2023 13:41:25 -0500 Subject: [PATCH 229/262] Update to latest yarn.lock --- yarn.lock | 555 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 283 insertions(+), 272 deletions(-) diff --git a/yarn.lock b/yarn.lock index ca626fa9..34ff2bdd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,72 +15,73 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" + integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== dependencies: - "@babel/highlight" "^7.22.5" + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" "@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" + integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" + integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.3" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.3" + "@babel/types" "^7.23.3" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" + json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.22.7", "@babel/generator@^7.22.9", "@babel/generator@^7.7.2": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== +"@babel/generator@^7.23.3", "@babel/generator@^7.23.4", "@babel/generator@^7.7.2": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" + integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.23.4" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== +"@babel/helper-compilation-targets@^7.22.15": + 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== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" browserslist "^4.21.9" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== +"@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.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== +"@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.5" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" @@ -89,23 +90,23 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== +"@babel/helper-module-imports@^7.22.15": + 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.5" + "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== +"@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.5" - "@babel/helper-module-imports" "^7.22.5" + "@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.5" + "@babel/helper-validator-identifier" "^7.22.20" "@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.22.5", "@babel/helper-plugin-utils@^7.8.0": version "7.22.5" @@ -126,43 +127,43 @@ 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-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== - -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== - dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" - -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" +"@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.22.20": + version "7.22.20" + 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/helpers@^7.23.2": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.4.tgz#7d2cfb969aa43222032193accd7329851facf3c1" + integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.4" + "@babel/types" "^7.23.4" + +"@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/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.3", "@babel/parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" + integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -200,9 +201,9 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -256,44 +257,44 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" - integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/template@^7.22.5", "@babel/template@^7.3.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== +"@babel/template@^7.22.15", "@babel/template@^7.3.3": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" -"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== +"@babel/traverse@^7.23.3", "@babel/traverse@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" + integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/code-frame" "^7.23.4" + "@babel/generator" "^7.23.4" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" + "@babel/parser" "^7.23.4" + "@babel/types" "^7.23.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4", "@babel/types@^7.3.3": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" + integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -309,9 +310,9 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.6.1": - version "4.6.2" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" - integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== "@eslint/eslintrc@^2.1.3": version "2.1.3" @@ -569,33 +570,28 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + 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.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/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10": +"@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/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -638,9 +634,9 @@ "@sinonjs/commons" "^3.0.0" "@types/babel__core@^7.1.14": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" - integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== + version "7.20.4" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.4.tgz#26a87347e6c6f753b3668398e34496d6d9ac6ac0" + integrity sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg== dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -649,50 +645,50 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + version "7.6.7" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" + integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" - integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== + version "7.20.4" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" + integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== dependencies: "@babel/types" "^7.20.7" "@types/graceful-fs@^4.1.3": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@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== + 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" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== 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== + 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" "*" @@ -702,24 +698,26 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "20.4.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.2.tgz#129cc9ae69f93824f92fac653eebfb4812ab4af9" - integrity sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw== + version "20.9.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.2.tgz#002815c8e87fe0c9369121c78b52e800fadc0ac6" + integrity sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg== + dependencies: + undici-types "~5.26.4" "@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== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^17.0.8": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + version "17.0.31" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.31.tgz#8fd0089803fd55d8a285895a18b88cb71a99683c" + integrity sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg== dependencies: "@types/yargs-parser" "*" @@ -734,9 +732,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 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== + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== ajv@^6.12.4: version "6.12.6" @@ -895,14 +893,14 @@ braces@^3.0.2: fill-range "^7.0.1" browserslist@^4.21.9: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" + node-releases "^2.0.13" + update-browserslist-db "^1.0.13" bser@2.1.1: version "2.1.1" @@ -931,12 +929,12 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001503: - version "1.0.30001515" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz#418aefeed9d024cd3129bfae0ccc782d4cb8f12b" - integrity sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA== +caniuse-lite@^1.0.30001541: + version "1.0.30001563" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz#aa68a64188903e98f36eb9c56e48fba0c1fe2a32" + integrity sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw== -chalk@^2.0.0: +chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -967,9 +965,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== ci-info@^3.2.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: version "1.2.3" @@ -1024,11 +1022,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" @@ -1064,9 +1057,9 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: ms "2.1.2" dedent@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.2.0.tgz#32039cd75c035f684e01c4a07cb88c0ecbeb57be" - integrity sha512-i4tcg0ClgvMUSxwHpt+NHQ01ZJmAkl6eBvDNrSZG9e+oLRTCSHv0wpr/Bzjpf6CwKeIHGevE1M34Y1Axdms5VQ== + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== deep-is@^0.1.3: version "0.1.4" @@ -1095,10 +1088,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -electron-to-chromium@^1.4.431: - version "1.4.460" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.460.tgz#f360a5059c039c4a5fb4dfa99680ad8129dd9f84" - integrity sha512-kKiHnbrHME7z8E6AYaw0ehyxY5+hdaRmeUbjBO22LZMdqTYCO29EvF0T1cQ3pJ1RN5fyMcHl1Lmcsdt9WWJpJQ== +electron-to-chromium@^1.4.535: + version "1.4.588" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz#d553f3c008e73488fb181fdf2601fdb0b1ffbb78" + integrity sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w== emittery@^0.13.1: version "0.13.1" @@ -1350,17 +1343,18 @@ find-up@^5.0.0: path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - flatted "^3.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== fs.realpath@^1.0.0: version "1.0.0" @@ -1368,14 +1362,14 @@ fs.realpath@^1.0.0: 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== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" @@ -1429,9 +1423,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" @@ -1455,12 +1449,12 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +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== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" html-escaper@^2.0.0: version "2.0.2" @@ -1483,9 +1477,9 @@ husky@^8.0.1: integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== ignore@^5.1.4, ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== import-fresh@^3.2.1: version "3.3.0" @@ -1526,12 +1520,12 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-core-module@^2.11.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== +is-core-module@^2.13.0: + 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: - has "^1.0.3" + hasown "^2.0.0" is-extglob@^2.1.1: version "2.1.1" @@ -1576,9 +1570,9 @@ isexe@^2.0.0: integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "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== + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== istanbul-lib-instrument@^5.0.4: version "5.2.1" @@ -1592,9 +1586,9 @@ istanbul-lib-instrument@^5.0.4: 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" - integrity sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw== + version "6.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" + integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" @@ -1603,12 +1597,12 @@ istanbul-lib-instrument@^6.0.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" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" + make-dir "^4.0.0" supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: @@ -1621,9 +1615,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + 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" @@ -2011,6 +2005,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + 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" @@ -2026,11 +2025,18 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json5@^2.2.2: +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== +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -2087,12 +2093,12 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== dependencies: - semver "^6.0.0" + semver "^7.5.3" makeerror@1.0.12: version "1.0.12" @@ -2157,7 +2163,7 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.12: +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== @@ -2340,14 +2346,14 @@ pump@^3.0.0: once "^1.3.1" punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pure-rand@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306" - integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ== + version "6.0.4" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" + integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== queue-microtask@^1.2.2: version "1.2.3" @@ -2387,11 +2393,11 @@ resolve.exports@^2.0.0: integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== resolve@^1.20.0: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: - is-core-module "^2.11.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -2414,7 +2420,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: +semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -2596,10 +2602,15 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -2612,13 +2623,13 @@ uri-js@^4.2.2: punycode "^2.1.0" v8-to-istanbul@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" - integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA== + version "9.1.3" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz#ea456604101cd18005ac2cae3cdd1aa058a6306b" + integrity sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" + convert-source-map "^2.0.0" walker@^1.0.8: version "1.0.8" From 376b9274e77baa17372e7a35811d75299c87c59f Mon Sep 17 00:00:00 2001 From: Mike Chlipala Date: Fri, 17 Nov 2023 09:14:27 -0800 Subject: [PATCH 230/262] Require haml/rbs dependencies on demand --- src/server.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server.rb b/src/server.rb index e0191853..3429a82d 100644 --- a/src/server.rb +++ b/src/server.rb @@ -4,10 +4,7 @@ require "json" require "socket" -require "prettier_print" require "syntax_tree" -require "syntax_tree/haml" -require "syntax_tree/rbs" # First, require all of the plugins that the user specified. ARGV.shift[/^--plugins=(.*)$/, 1] @@ -100,6 +97,7 @@ formatter.flush formatter.output.join when "rbs" + require "syntax_tree/rbs" formatter = SyntaxTree::RBS::Formatter.new( source, @@ -112,6 +110,8 @@ formatter.flush formatter.output.join when "haml" + require "syntax_tree/haml" + require "prettier_print" formatter = if defined?(SyntaxTree::Haml::Format::Formatter) SyntaxTree::Haml::Format::Formatter.new( From ebd90e53be839211125c86461556873bc2d48692 Mon Sep 17 00:00:00 2001 From: Mike Chlipala Date: Mon, 20 Nov 2023 12:22:26 -0800 Subject: [PATCH 231/262] Require optional dependencies once, rescue LoadErrors --- src/server.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/server.rb b/src/server.rb index 3429a82d..f091db06 100644 --- a/src/server.rb +++ b/src/server.rb @@ -6,6 +6,18 @@ require "syntax_tree" +# Optional dependencies +%W[ + syntax_tree/rbs + syntax_tree/haml + prettier_print +].each do |dep| + begin + require dep + rescue LoadError + end +end + # First, require all of the plugins that the user specified. ARGV.shift[/^--plugins=(.*)$/, 1] .split(",") @@ -97,7 +109,6 @@ formatter.flush formatter.output.join when "rbs" - require "syntax_tree/rbs" formatter = SyntaxTree::RBS::Formatter.new( source, @@ -110,8 +121,6 @@ formatter.flush formatter.output.join when "haml" - require "syntax_tree/haml" - require "prettier_print" formatter = if defined?(SyntaxTree::Haml::Format::Formatter) SyntaxTree::Haml::Format::Formatter.new( From 34da38e46cc6ea3641395aa5e9299c4b84febe16 Mon Sep 17 00:00:00 2001 From: Mike Chlipala Date: Mon, 20 Nov 2023 17:55:15 -0800 Subject: [PATCH 232/262] Run prettier on src/server.rb --- src/server.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/server.rb b/src/server.rb index f091db06..d5876cf7 100644 --- a/src/server.rb +++ b/src/server.rb @@ -7,11 +7,7 @@ require "syntax_tree" # Optional dependencies -%W[ - syntax_tree/rbs - syntax_tree/haml - prettier_print -].each do |dep| +%W[syntax_tree/rbs syntax_tree/haml prettier_print].each do |dep| begin require dep rescue LoadError From dc6b48dbce394180903f037be188fa7405de869d Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 20 Nov 2023 13:38:25 -0500 Subject: [PATCH 233/262] Bump to latest --- package.json | 4 ++-- yarn.lock | 62 ++++++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index d09fde8c..538fef64 100644 --- a/package.json +++ b/package.json @@ -23,11 +23,11 @@ "prettier": "^3.0.0" }, "devDependencies": { - "eslint": "^8.35.0", + "eslint": "^8.54.0", "eslint-config-prettier": "^9.0.0", "husky": "^8.0.1", "jest": "^29.5.0", - "prettier": "^3.0.0", + "prettier": "^3.1.0", "pretty-quick": "^3.1.2" }, "eslintConfig": { diff --git a/yarn.lock b/yarn.lock index 63b633fd..ca626fa9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -313,10 +313,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== +"@eslint/eslintrc@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" + integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -328,17 +328,17 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.51.0": - version "8.51.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.51.0.tgz#6d419c240cfb2b66da37df230f7e7eef801c32fa" - integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== +"@eslint/js@8.54.0": + version "8.54.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" + integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== -"@humanwhocodes/config-array@^0.11.11": - version "0.11.11" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" - integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== +"@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" "^1.2.1" + "@humanwhocodes/object-schema" "^2.0.1" debug "^4.1.1" minimatch "^3.0.5" @@ -347,10 +347,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@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== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -723,6 +723,11 @@ dependencies: "@types/yargs-parser" "*" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1157,18 +1162,19 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, 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.35.0: - version "8.51.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.51.0.tgz#4a82dae60d209ac89a5cff1604fea978ba4950f3" - integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== +eslint@^8.54.0: + version "8.54.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" + integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.51.0" - "@humanwhocodes/config-array" "^0.11.11" + "@eslint/eslintrc" "^2.1.3" + "@eslint/js" "8.54.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -2291,10 +2297,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^3.0.0: - 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== +prettier@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" + integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== pretty-format@^29.7.0: version "29.7.0" From ea96a3f903417793c5f47f460f2f6cf656c230b5 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 20 Nov 2023 13:40:32 -0500 Subject: [PATCH 234/262] Update node versions in main.yml --- .github/workflows/main.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 62292d9f..7c247608 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,9 +24,9 @@ jobs: with: bundler-cache: true ruby-version: ${{ matrix.ruby }} - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: 18.x + node-version: 20.x cache: yarn - run: yarn install --frozen-lockfile - run: yarn test @@ -41,9 +41,9 @@ jobs: with: bundler-cache: true ruby-version: "3.0" - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: 18.x + node-version: 20.x cache: yarn - run: yarn install --frozen-lockfile - run: yarn checkFormat @@ -58,9 +58,9 @@ jobs: with: bundler-cache: true ruby-version: "3.2" - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: 18.x + node-version: 20.x cache: yarn - run: yarn install --frozen-lockfile - run: gem build -o prettier.gem From 79d96d9feafc1f8e186a04260e66bee0df68e4ed Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 20 Nov 2023 13:41:25 -0500 Subject: [PATCH 235/262] Update to latest yarn.lock --- yarn.lock | 555 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 283 insertions(+), 272 deletions(-) diff --git a/yarn.lock b/yarn.lock index ca626fa9..34ff2bdd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,72 +15,73 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" + integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== dependencies: - "@babel/highlight" "^7.22.5" + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" "@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" + integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" + integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.3" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.3" + "@babel/types" "^7.23.3" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" + json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.22.7", "@babel/generator@^7.22.9", "@babel/generator@^7.7.2": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== +"@babel/generator@^7.23.3", "@babel/generator@^7.23.4", "@babel/generator@^7.7.2": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" + integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.23.4" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== +"@babel/helper-compilation-targets@^7.22.15": + 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== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" browserslist "^4.21.9" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== +"@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.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== +"@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.5" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" @@ -89,23 +90,23 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== +"@babel/helper-module-imports@^7.22.15": + 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.5" + "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== +"@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.5" - "@babel/helper-module-imports" "^7.22.5" + "@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.5" + "@babel/helper-validator-identifier" "^7.22.20" "@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.22.5", "@babel/helper-plugin-utils@^7.8.0": version "7.22.5" @@ -126,43 +127,43 @@ 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-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== - -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== - dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" - -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" +"@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.22.20": + version "7.22.20" + 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/helpers@^7.23.2": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.4.tgz#7d2cfb969aa43222032193accd7329851facf3c1" + integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.4" + "@babel/types" "^7.23.4" + +"@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/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.3", "@babel/parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" + integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -200,9 +201,9 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -256,44 +257,44 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272" - integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/template@^7.22.5", "@babel/template@^7.3.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== +"@babel/template@^7.22.15", "@babel/template@^7.3.3": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" -"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== +"@babel/traverse@^7.23.3", "@babel/traverse@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" + integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" + "@babel/code-frame" "^7.23.4" + "@babel/generator" "^7.23.4" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" + "@babel/parser" "^7.23.4" + "@babel/types" "^7.23.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4", "@babel/types@^7.3.3": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" + integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -309,9 +310,9 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.6.1": - version "4.6.2" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" - integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== "@eslint/eslintrc@^2.1.3": version "2.1.3" @@ -569,33 +570,28 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + 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.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/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10": +"@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/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -638,9 +634,9 @@ "@sinonjs/commons" "^3.0.0" "@types/babel__core@^7.1.14": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" - integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== + version "7.20.4" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.4.tgz#26a87347e6c6f753b3668398e34496d6d9ac6ac0" + integrity sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg== dependencies: "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" @@ -649,50 +645,50 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + version "7.6.7" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" + integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" - integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== + version "7.20.4" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" + integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== dependencies: "@babel/types" "^7.20.7" "@types/graceful-fs@^4.1.3": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@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== + 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" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== 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== + 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" "*" @@ -702,24 +698,26 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@*": - version "20.4.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.2.tgz#129cc9ae69f93824f92fac653eebfb4812ab4af9" - integrity sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw== + version "20.9.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.2.tgz#002815c8e87fe0c9369121c78b52e800fadc0ac6" + integrity sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg== + dependencies: + undici-types "~5.26.4" "@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== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^17.0.8": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + version "17.0.31" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.31.tgz#8fd0089803fd55d8a285895a18b88cb71a99683c" + integrity sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg== dependencies: "@types/yargs-parser" "*" @@ -734,9 +732,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 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== + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== ajv@^6.12.4: version "6.12.6" @@ -895,14 +893,14 @@ braces@^3.0.2: fill-range "^7.0.1" browserslist@^4.21.9: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" + node-releases "^2.0.13" + update-browserslist-db "^1.0.13" bser@2.1.1: version "2.1.1" @@ -931,12 +929,12 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001503: - version "1.0.30001515" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz#418aefeed9d024cd3129bfae0ccc782d4cb8f12b" - integrity sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA== +caniuse-lite@^1.0.30001541: + version "1.0.30001563" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz#aa68a64188903e98f36eb9c56e48fba0c1fe2a32" + integrity sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw== -chalk@^2.0.0: +chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -967,9 +965,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== ci-info@^3.2.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: version "1.2.3" @@ -1024,11 +1022,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" @@ -1064,9 +1057,9 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: ms "2.1.2" dedent@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.2.0.tgz#32039cd75c035f684e01c4a07cb88c0ecbeb57be" - integrity sha512-i4tcg0ClgvMUSxwHpt+NHQ01ZJmAkl6eBvDNrSZG9e+oLRTCSHv0wpr/Bzjpf6CwKeIHGevE1M34Y1Axdms5VQ== + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== deep-is@^0.1.3: version "0.1.4" @@ -1095,10 +1088,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -electron-to-chromium@^1.4.431: - version "1.4.460" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.460.tgz#f360a5059c039c4a5fb4dfa99680ad8129dd9f84" - integrity sha512-kKiHnbrHME7z8E6AYaw0ehyxY5+hdaRmeUbjBO22LZMdqTYCO29EvF0T1cQ3pJ1RN5fyMcHl1Lmcsdt9WWJpJQ== +electron-to-chromium@^1.4.535: + version "1.4.588" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz#d553f3c008e73488fb181fdf2601fdb0b1ffbb78" + integrity sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w== emittery@^0.13.1: version "0.13.1" @@ -1350,17 +1343,18 @@ find-up@^5.0.0: path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - flatted "^3.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== fs.realpath@^1.0.0: version "1.0.0" @@ -1368,14 +1362,14 @@ fs.realpath@^1.0.0: 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== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" @@ -1429,9 +1423,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" @@ -1455,12 +1449,12 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== +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== dependencies: - function-bind "^1.1.1" + function-bind "^1.1.2" html-escaper@^2.0.0: version "2.0.2" @@ -1483,9 +1477,9 @@ husky@^8.0.1: integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== ignore@^5.1.4, ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== import-fresh@^3.2.1: version "3.3.0" @@ -1526,12 +1520,12 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-core-module@^2.11.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== +is-core-module@^2.13.0: + 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: - has "^1.0.3" + hasown "^2.0.0" is-extglob@^2.1.1: version "2.1.1" @@ -1576,9 +1570,9 @@ isexe@^2.0.0: integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "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== + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== istanbul-lib-instrument@^5.0.4: version "5.2.1" @@ -1592,9 +1586,9 @@ istanbul-lib-instrument@^5.0.4: 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" - integrity sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw== + version "6.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" + integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" @@ -1603,12 +1597,12 @@ istanbul-lib-instrument@^6.0.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" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" + make-dir "^4.0.0" supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: @@ -1621,9 +1615,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + 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" @@ -2011,6 +2005,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + 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" @@ -2026,11 +2025,18 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json5@^2.2.2: +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== +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -2087,12 +2093,12 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== dependencies: - semver "^6.0.0" + semver "^7.5.3" makeerror@1.0.12: version "1.0.12" @@ -2157,7 +2163,7 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.12: +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== @@ -2340,14 +2346,14 @@ pump@^3.0.0: once "^1.3.1" punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pure-rand@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.2.tgz#a9c2ddcae9b68d736a8163036f088a2781c8b306" - integrity sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ== + version "6.0.4" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" + integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== queue-microtask@^1.2.2: version "1.2.3" @@ -2387,11 +2393,11 @@ resolve.exports@^2.0.0: integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== resolve@^1.20.0: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: - is-core-module "^2.11.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -2414,7 +2420,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: +semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -2596,10 +2602,15 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -2612,13 +2623,13 @@ uri-js@^4.2.2: punycode "^2.1.0" v8-to-istanbul@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" - integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA== + version "9.1.3" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz#ea456604101cd18005ac2cae3cdd1aa058a6306b" + integrity sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" + convert-source-map "^2.0.0" walker@^1.0.8: version "1.0.8" From 7a628f3e1847131a7ebc9d31059b06deb91d5517 Mon Sep 17 00:00:00 2001 From: Mike Chlipala Date: Fri, 17 Nov 2023 09:14:27 -0800 Subject: [PATCH 236/262] Require haml/rbs dependencies on demand --- src/server.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server.rb b/src/server.rb index e0191853..3429a82d 100644 --- a/src/server.rb +++ b/src/server.rb @@ -4,10 +4,7 @@ require "json" require "socket" -require "prettier_print" require "syntax_tree" -require "syntax_tree/haml" -require "syntax_tree/rbs" # First, require all of the plugins that the user specified. ARGV.shift[/^--plugins=(.*)$/, 1] @@ -100,6 +97,7 @@ formatter.flush formatter.output.join when "rbs" + require "syntax_tree/rbs" formatter = SyntaxTree::RBS::Formatter.new( source, @@ -112,6 +110,8 @@ formatter.flush formatter.output.join when "haml" + require "syntax_tree/haml" + require "prettier_print" formatter = if defined?(SyntaxTree::Haml::Format::Formatter) SyntaxTree::Haml::Format::Formatter.new( From c14fdfbc263841a7802ac9453f8df2e24e01631d Mon Sep 17 00:00:00 2001 From: Mike Chlipala Date: Mon, 20 Nov 2023 12:22:26 -0800 Subject: [PATCH 237/262] Require optional dependencies once, rescue LoadErrors --- src/server.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/server.rb b/src/server.rb index 3429a82d..f091db06 100644 --- a/src/server.rb +++ b/src/server.rb @@ -6,6 +6,18 @@ require "syntax_tree" +# Optional dependencies +%W[ + syntax_tree/rbs + syntax_tree/haml + prettier_print +].each do |dep| + begin + require dep + rescue LoadError + end +end + # First, require all of the plugins that the user specified. ARGV.shift[/^--plugins=(.*)$/, 1] .split(",") @@ -97,7 +109,6 @@ formatter.flush formatter.output.join when "rbs" - require "syntax_tree/rbs" formatter = SyntaxTree::RBS::Formatter.new( source, @@ -110,8 +121,6 @@ formatter.flush formatter.output.join when "haml" - require "syntax_tree/haml" - require "prettier_print" formatter = if defined?(SyntaxTree::Haml::Format::Formatter) SyntaxTree::Haml::Format::Formatter.new( From eef9ade169fcc155e18be4c524178cbabc853479 Mon Sep 17 00:00:00 2001 From: Mike Chlipala Date: Mon, 20 Nov 2023 17:55:15 -0800 Subject: [PATCH 238/262] Run prettier on src/server.rb --- src/server.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/server.rb b/src/server.rb index f091db06..d5876cf7 100644 --- a/src/server.rb +++ b/src/server.rb @@ -7,11 +7,7 @@ require "syntax_tree" # Optional dependencies -%W[ - syntax_tree/rbs - syntax_tree/haml - prettier_print -].each do |dep| +%W[syntax_tree/rbs syntax_tree/haml prettier_print].each do |dep| begin require dep rescue LoadError From 8e47f17c7f62800393fa006eb0130d5279c4ca76 Mon Sep 17 00:00:00 2001 From: Heiko Rabe Date: Thu, 23 Nov 2023 09:01:38 +0100 Subject: [PATCH 239/262] Use default options if no file given --- src/plugin.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/plugin.js b/src/plugin.js index d6931207..4c993a9b 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -67,7 +67,14 @@ export async function spawnServer(opts, killOnExit = true) { const tmpdir = os.tmpdir(); const filepath = path.join(tmpdir, `prettier-ruby-parser-${process.pid}.txt`); - const currentFile = opts.filepath || process.cwd(); + const default_options = { + env: Object.assign({}, process.env, { LANG: getLang() }), + stdio: ["ignore", "ignore", "inherit"], + detached: true + }; + const options = opts.filepath + ? { cwd: path.dirname(opts.filepath), ...default_options } + : default_options; const server = spawn( opts.rubyExecutablePath || "ruby", @@ -76,12 +83,7 @@ export async function spawnServer(opts, killOnExit = true) { `--plugins=${getPlugins(opts).join(",")}`, filepath ], - { - cwd: path.dirname(currentFile), - env: Object.assign({}, process.env, { LANG: getLang() }), - stdio: ["ignore", "ignore", "inherit"], - detached: true - } + options, ); server.unref(); From 0645077826a6d95f7ef0fa5cdc259f20f728fdfd Mon Sep 17 00:00:00 2001 From: Heiko Rabe Date: Thu, 23 Nov 2023 09:23:59 +0100 Subject: [PATCH 240/262] Prettify code --- src/plugin.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugin.js b/src/plugin.js index 4c993a9b..3309940c 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -74,7 +74,7 @@ export async function spawnServer(opts, killOnExit = true) { }; const options = opts.filepath ? { cwd: path.dirname(opts.filepath), ...default_options } - : default_options; + : default_options; const server = spawn( opts.rubyExecutablePath || "ruby", @@ -83,7 +83,7 @@ export async function spawnServer(opts, killOnExit = true) { `--plugins=${getPlugins(opts).join(",")}`, filepath ], - options, + options ); server.unref(); From b281b238eeaac40d5ac445bb72e0fcbfe18e792f Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Mon, 27 Nov 2023 21:58:32 -0500 Subject: [PATCH 241/262] Bump to version 4.0.3 --- CHANGELOG.md | 10 +++++++++- package.json | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86272b3f..c1766346 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [4.0.3] - 2023-11-27 + +### Changed + +- [#1406](https://github.com/prettier/plugin-ruby/pull/1406) - mikesea - Support running without the RBS or Haml plugins loaded. +- [#1407](https://github.com/prettier/plugin-ruby/pull/1407) - hrabe - Support shimmed Ruby versions. + ## [4.0.2] - 2023-07-14 ### Changed @@ -1291,7 +1298,8 @@ would previously result in `array[]`, but now prints properly. - Initial release 🎉 -[unreleased]: https://github.com/prettier/plugin-ruby/compare/v4.0.2...HEAD +[unreleased]: https://github.com/prettier/plugin-ruby/compare/v4.0.3...HEAD +[4.0.3]: https://github.com/prettier/plugin-ruby/compare/v4.0.2...v4.0.3 [4.0.2]: https://github.com/prettier/plugin-ruby/compare/v4.0.1...v4.0.2 [4.0.1]: https://github.com/prettier/plugin-ruby/compare/v4.0.0...v4.0.1 [4.0.0]: https://github.com/prettier/plugin-ruby/compare/v3.2.2...v4.0.0 diff --git a/package.json b/package.json index 538fef64..64c169ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "4.0.2", + "version": "4.0.3", "description": "prettier plugin for the Ruby programming language", "type": "module", "main": "src/plugin.js", From e93f618f71228a02ecd7288a7a23f1784c6d59c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 12:21:47 +0000 Subject: [PATCH 242/262] Bump eslint-config-prettier from 9.0.0 to 9.1.0 Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 9.0.0 to 9.1.0. - [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-config-prettier/compare/v9.0.0...v9.1.0) --- updated-dependencies: - dependency-name: eslint-config-prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 34ff2bdd..1ebebbb9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1138,9 +1138,9 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" - integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-scope@^7.2.2: version "7.2.2" From d2e00276575ebae4f97e762ac8f07526197a7116 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 12:22:08 +0000 Subject: [PATCH 243/262] Bump eslint from 8.54.0 to 8.55.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.54.0 to 8.55.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.54.0...v8.55.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index 34ff2bdd..204a5e74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -314,10 +314,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" - integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -329,10 +329,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.54.0": - version "8.54.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" - integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== +"@eslint/js@8.55.0": + version "8.55.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6" + integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA== "@humanwhocodes/config-array@^0.11.13": version "0.11.13" @@ -1156,14 +1156,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.54.0: - version "8.54.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" - integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== + version "8.55.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8" + integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.3" - "@eslint/js" "8.54.0" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.55.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" From 27d8763f0f1376e1ee15add52ef5344e47f7dde0 Mon Sep 17 00:00:00 2001 From: Heiko Rabe Date: Mon, 11 Dec 2023 10:03:00 +0100 Subject: [PATCH 244/262] Change cwd detection for mono-repos --- src/plugin.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/plugin.js b/src/plugin.js index 3309940c..71d2030b 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -5,6 +5,7 @@ import os from "os"; import path from "path"; import process from "process"; import url from "url"; +import { resolveConfigFile } from "prettier"; // In order to properly parse ruby code, we need to tell the ruby process to // parse using UTF-8. Unfortunately, the way that you accomplish this looks @@ -67,14 +68,16 @@ export async function spawnServer(opts, killOnExit = true) { const tmpdir = os.tmpdir(); const filepath = path.join(tmpdir, `prettier-ruby-parser-${process.pid}.txt`); - const default_options = { + const options = { env: Object.assign({}, process.env, { LANG: getLang() }), stdio: ["ignore", "ignore", "inherit"], detached: true }; - const options = opts.filepath - ? { cwd: path.dirname(opts.filepath), ...default_options } - : default_options; + + if (opts.filepath) { + const prettierConfig = await resolveConfigFile(opts.filepath); + options.cwd = path.dirname(prettierConfig); + } const server = spawn( opts.rubyExecutablePath || "ruby", From 4a0ea381153fa67b11d183ce37ae6fbda7a254d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 12:49:39 +0000 Subject: [PATCH 245/262] Bump prettier from 3.1.0 to 3.1.1 Bumps [prettier](https://github.com/prettier/prettier) from 3.1.0 to 3.1.1. - [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.1.0...3.1.1) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 85f62a9d..08caba3c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2304,9 +2304,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" - integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== + version "3.1.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" + integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== pretty-format@^29.7.0: version "29.7.0" From cc22600256c87aa507149cdbcfc1bab57314ab10 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 12 Dec 2023 14:16:15 -0500 Subject: [PATCH 246/262] Bump to version 4.0.4 --- CHANGELOG.md | 9 ++++++++- package.json | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1766346..0e310a26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a ## [Unreleased] +## [4.0.4] - 2023-12-12 + +### Changed + +- [#1413](https://github.com/prettier/plugin-ruby/pull/1413) - hrabe - Fix the cwd detection for mono-repos. + ## [4.0.3] - 2023-11-27 ### Changed @@ -1298,7 +1304,8 @@ would previously result in `array[]`, but now prints properly. - Initial release 🎉 -[unreleased]: https://github.com/prettier/plugin-ruby/compare/v4.0.3...HEAD +[unreleased]: https://github.com/prettier/plugin-ruby/compare/v4.0.4...HEAD +[4.0.4]: https://github.com/prettier/plugin-ruby/compare/v4.0.3...v4.0.4 [4.0.3]: https://github.com/prettier/plugin-ruby/compare/v4.0.2...v4.0.3 [4.0.2]: https://github.com/prettier/plugin-ruby/compare/v4.0.1...v4.0.2 [4.0.1]: https://github.com/prettier/plugin-ruby/compare/v4.0.0...v4.0.1 diff --git a/package.json b/package.json index 64c169ce..2365fb63 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@prettier/plugin-ruby", - "version": "4.0.3", + "version": "4.0.4", "description": "prettier plugin for the Ruby programming language", "type": "module", "main": "src/plugin.js", From 35d37477150bb2b1dc38ee0b11bae9e8ac2f196d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 12:43:09 +0000 Subject: [PATCH 247/262] Bump eslint from 8.55.0 to 8.56.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.55.0 to 8.56.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.55.0...v8.56.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 08caba3c..2d9ed742 100644 --- a/yarn.lock +++ b/yarn.lock @@ -329,10 +329,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.55.0": - version "8.55.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6" - integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA== +"@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" @@ -1156,14 +1156,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.54.0: - version "8.55.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8" - integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA== + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.55.0" + "@eslint/js" "8.56.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" From 2f01fa152480f18659eaa5e358dbacdf7d73ae31 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 12:13:55 +0000 Subject: [PATCH 248/262] Bump prettier from 3.1.1 to 3.2.2 Bumps [prettier](https://github.com/prettier/prettier) from 3.1.1 to 3.2.2. - [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.1.1...3.2.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2d9ed742..5e54c8ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2304,9 +2304,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" - integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== + version "3.2.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.2.tgz#96e580f7ca9c96090ad054616c0c4597e2844b65" + integrity sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A== pretty-format@^29.7.0: version "29.7.0" From e5e0b32a00a0bdcb2d8f18dda0dff0229429f57e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 12:03:14 +0000 Subject: [PATCH 249/262] Bump pretty-quick from 3.1.3 to 4.0.0 Bumps [pretty-quick](https://github.com/prettier/pretty-quick) from 3.1.3 to 4.0.0. - [Release notes](https://github.com/prettier/pretty-quick/releases) - [Changelog](https://github.com/prettier/pretty-quick/blob/master/CHANGELOG.md) - [Commits](https://github.com/prettier/pretty-quick/compare/v3.1.3...v4.0.0) --- updated-dependencies: - dependency-name: pretty-quick dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 128 ++++++++++++--------------------------------------- 2 files changed, 30 insertions(+), 100 deletions(-) diff --git a/package.json b/package.json index 2365fb63..84aad63b 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "husky": "^8.0.1", "jest": "^29.5.0", "prettier": "^3.1.0", - "pretty-quick": "^3.1.2" + "pretty-quick": "^4.0.0" }, "eslintConfig": { "extends": [ diff --git a/yarn.lock b/yarn.lock index 5e54c8ad..792e0033 100644 --- a/yarn.lock +++ b/yarn.lock @@ -692,11 +692,6 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/minimatch@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - "@types/node@*": version "20.9.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.2.tgz#002815c8e87fe0c9369121c78b52e800fadc0ac6" @@ -797,21 +792,6 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-differ@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" - integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - babel-jest@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" @@ -943,14 +923,6 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -1040,7 +1012,7 @@ create-jest@^29.7.0: jest-util "^29.7.0" prompts "^2.0.1" -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1103,13 +1075,6 @@ 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== -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -1237,22 +1202,7 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -execa@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" - integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -execa@^5.0.0: +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== @@ -1386,13 +1336,6 @@ 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@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -1461,11 +1404,6 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -1476,7 +1414,7 @@ husky@^8.0.1: resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== -ignore@^5.1.4, ignore@^5.2.0: +ignore@^5.2.0, ignore@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== @@ -2132,7 +2070,7 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -mri@^1.1.5: +mri@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== @@ -2142,17 +2080,6 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -multimatch@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" - integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== - dependencies: - "@types/minimatch" "^3.0.3" - array-differ "^3.0.0" - array-union "^2.1.0" - arrify "^2.0.1" - minimatch "^3.0.4" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -2173,21 +2100,21 @@ normalize-path@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -2286,6 +2213,11 @@ picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516" + integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag== + pirates@^4.0.4: version "4.0.6" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" @@ -2317,17 +2249,18 @@ pretty-format@^29.7.0: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-quick@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-3.1.3.tgz#15281108c0ddf446675157ca40240099157b638e" - integrity sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA== +pretty-quick@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-4.0.0.tgz#ea5cce85a5804bfbec7327b0e064509155d03f39" + integrity sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ== dependencies: - chalk "^3.0.0" - execa "^4.0.0" - find-up "^4.1.0" - ignore "^5.1.4" - mri "^1.1.5" - multimatch "^4.0.0" + execa "^5.1.1" + find-up "^5.0.0" + ignore "^5.3.0" + mri "^1.2.0" + picocolors "^1.0.0" + picomatch "^3.0.1" + tslib "^2.6.2" prompts@^2.0.1: version "2.4.2" @@ -2337,14 +2270,6 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - punycode@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" @@ -2444,7 +2369,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -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== @@ -2580,6 +2505,11 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +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== + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" From 051eb729ff7c18be158fe81406e95e59379074fc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 12:03:35 +0000 Subject: [PATCH 250/262] Bump prettier from 3.2.2 to 3.2.4 Bumps [prettier](https://github.com/prettier/prettier) from 3.2.2 to 3.2.4. - [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.2...3.2.4) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5e54c8ad..0d7f2617 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2304,9 +2304,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.1.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.2.tgz#96e580f7ca9c96090ad054616c0c4597e2844b65" - integrity sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A== + version "3.2.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.4.tgz#4723cadeac2ce7c9227de758e5ff9b14e075f283" + integrity sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ== pretty-format@^29.7.0: version "29.7.0" From c0002010a9f29fca80322e46ad577fa1e479a120 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 12:26:09 +0000 Subject: [PATCH 251/262] Bump husky from 8.0.3 to 9.0.2 Bumps [husky](https://github.com/typicode/husky) from 8.0.3 to 9.0.2. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v8.0.3...v9.0.2) --- updated-dependencies: - dependency-name: husky dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 84aad63b..be058865 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "devDependencies": { "eslint": "^8.54.0", "eslint-config-prettier": "^9.0.0", - "husky": "^8.0.1", + "husky": "^9.0.2", "jest": "^29.5.0", "prettier": "^3.1.0", "pretty-quick": "^4.0.0" diff --git a/yarn.lock b/yarn.lock index e6a5329b..ceca9002 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1409,10 +1409,10 @@ 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== -husky@^8.0.1: - version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== +husky@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.2.tgz#7ac26cb63719e91a159991039187b35e7358557e" + integrity sha512-0yR5R3OPjl8bYApi6T4QMOAwhtLhBjdYIVg5S6zSzIO8DIvQMh/b7Q8jW3WLbHLHtzpwiyMLBNB4R0Eb6x5+AA== ignore@^5.2.0, ignore@^5.3.0: version "5.3.0" From 8d729909c8b4b135adc0b0e74a7f85dfcb6c73f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Jan 2024 12:57:03 +0000 Subject: [PATCH 252/262] Bump husky from 9.0.2 to 9.0.6 Bumps [husky](https://github.com/typicode/husky) from 9.0.2 to 9.0.6. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v9.0.2...v9.0.6) --- updated-dependencies: - dependency-name: husky dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index ceca9002..4029ead0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1410,9 +1410,9 @@ human-signals@^2.1.0: integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== husky@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.2.tgz#7ac26cb63719e91a159991039187b35e7358557e" - integrity sha512-0yR5R3OPjl8bYApi6T4QMOAwhtLhBjdYIVg5S6zSzIO8DIvQMh/b7Q8jW3WLbHLHtzpwiyMLBNB4R0Eb6x5+AA== + version "9.0.6" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.6.tgz#cee0245d60480b12279cf492ec6cfc1aeb7fa759" + integrity sha512-EEuw/rfTiMjOfuL7pGO/i9otg1u36TXxqjIA6D9qxVjd/UXoDOsLor/BSFf5hTK50shwzCU3aVVwdXDp/lp7RA== ignore@^5.2.0, ignore@^5.3.0: version "5.3.0" From be21af84263798122e981f46b254f0ffab9a5536 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 12:13:18 +0000 Subject: [PATCH 253/262] Bump husky from 9.0.6 to 9.0.7 Bumps [husky](https://github.com/typicode/husky) from 9.0.6 to 9.0.7. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v9.0.6...v9.0.7) --- updated-dependencies: - dependency-name: husky dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4029ead0..63bcc0ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1410,9 +1410,9 @@ human-signals@^2.1.0: integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== husky@^9.0.2: - version "9.0.6" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.6.tgz#cee0245d60480b12279cf492ec6cfc1aeb7fa759" - integrity sha512-EEuw/rfTiMjOfuL7pGO/i9otg1u36TXxqjIA6D9qxVjd/UXoDOsLor/BSFf5hTK50shwzCU3aVVwdXDp/lp7RA== + version "9.0.7" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.7.tgz#047f24ec1b6c681206af714b4217c13ee97fff20" + integrity sha512-vWdusw+y12DUEeoZqW1kplOFqk3tedGV8qlga8/SF6a3lOiWLqGZZQvfWvY0fQYdfiRi/u1DFNpudTSV9l1aCg== ignore@^5.2.0, ignore@^5.3.0: version "5.3.0" From 63d3818744cf205fb07c6f30a1030cfaa731ee4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 12:03:32 +0000 Subject: [PATCH 254/262] Bump husky from 9.0.7 to 9.0.10 Bumps [husky](https://github.com/typicode/husky) from 9.0.7 to 9.0.10. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v9.0.7...v9.0.10) --- updated-dependencies: - dependency-name: husky dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 63bcc0ca..f2f900e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1410,9 +1410,9 @@ human-signals@^2.1.0: integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== husky@^9.0.2: - version "9.0.7" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.7.tgz#047f24ec1b6c681206af714b4217c13ee97fff20" - integrity sha512-vWdusw+y12DUEeoZqW1kplOFqk3tedGV8qlga8/SF6a3lOiWLqGZZQvfWvY0fQYdfiRi/u1DFNpudTSV9l1aCg== + version "9.0.10" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.10.tgz#ddca8908deb5f244e9286865ebc80b54387672c2" + integrity sha512-TQGNknoiy6bURzIO77pPRu+XHi6zI7T93rX+QnJsoYFf3xdjKOur+IlfqzJGMHIK/wXrLg+GsvMs8Op7vI2jVA== ignore@^5.2.0, ignore@^5.3.0: version "5.3.0" From 38981a6fe4fac81c96897708e4bbb6f0d3d5d7dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 12:48:26 +0000 Subject: [PATCH 255/262] Bump prettier from 3.2.4 to 3.2.5 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] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f2f900e7..301c5acf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2236,9 +2236,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.1.0: - 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@^29.7.0: version "29.7.0" From e93dcad0919511abc88aafbd89c3b9bdfc256374 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 12:37:24 +0000 Subject: [PATCH 256/262] Bump husky from 9.0.10 to 9.0.11 Bumps [husky](https://github.com/typicode/husky) from 9.0.10 to 9.0.11. - [Release notes](https://github.com/typicode/husky/releases) - [Commits](https://github.com/typicode/husky/compare/v9.0.10...v9.0.11) --- updated-dependencies: - dependency-name: husky dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 301c5acf..f409acec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1410,9 +1410,9 @@ human-signals@^2.1.0: integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== husky@^9.0.2: - version "9.0.10" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.10.tgz#ddca8908deb5f244e9286865ebc80b54387672c2" - integrity sha512-TQGNknoiy6bURzIO77pPRu+XHi6zI7T93rX+QnJsoYFf3xdjKOur+IlfqzJGMHIK/wXrLg+GsvMs8Op7vI2jVA== + version "9.0.11" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.11.tgz#fc91df4c756050de41b3e478b2158b87c1e79af9" + integrity sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw== ignore@^5.2.0, ignore@^5.3.0: version "5.3.0" From 5bd1d7b5219149b3569c60b9c1ea0508fa3c369b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 12:11:35 +0000 Subject: [PATCH 257/262] Bump eslint from 8.56.0 to 8.57.0 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] --- yarn.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/yarn.lock b/yarn.lock index f409acec..8570438c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -329,18 +329,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": @@ -348,10 +348,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" @@ -1021,7 +1021,7 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.2: +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== @@ -1121,15 +1121,15 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.54.0: - version "8.56.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" - integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== + 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 a39e277c300afeaab39ef89238687d9cb32671b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 12:08:24 +0000 Subject: [PATCH 258/262] Bump dependabot/fetch-metadata from 1.6.0 to 2.0.0 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 1.6.0 to 2.0.0. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v1.6.0...v2.0.0) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index 8ca265e0..44908aae 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v1.6.0 + uses: dependabot/fetch-metadata@v2.0.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Enable auto-merge for Dependabot PRs From 6e472faa795228f0a9821f78739ae2a1a03de0ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 12:30:53 +0000 Subject: [PATCH 259/262] Bump eslint from 8.57.0 to 9.0.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.57.0 to 9.0.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.57.0...v9.0.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 156 +++++++++++++++++++++------------------------------ 2 files changed, 66 insertions(+), 92 deletions(-) diff --git a/package.json b/package.json index be058865..aa7ea32a 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "prettier": "^3.0.0" }, "devDependencies": { - "eslint": "^8.54.0", + "eslint": "^9.0.0", "eslint-config-prettier": "^9.0.0", "husky": "^9.0.2", "jest": "^29.5.0", diff --git a/yarn.lock b/yarn.lock index 8570438c..5099b6c1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -314,32 +314,32 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== +"@eslint/eslintrc@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.0.2.tgz#36180f8e85bf34d2fe3ccc2261e8e204a411ab4e" + integrity sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" + espree "^10.0.1" + globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.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== +"@eslint/js@9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.0.0.tgz#1a9e4b4c96d8c7886e0110ed310a0135144a1691" + integrity sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ== -"@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== +"@humanwhocodes/config-array@^0.12.3": + version "0.12.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.12.3.tgz#a6216d90f81a30bedd1d4b5d799b47241f318072" + integrity sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g== dependencies: - "@humanwhocodes/object-schema" "^2.0.2" + "@humanwhocodes/object-schema" "^2.0.3" debug "^4.3.1" minimatch "^3.0.5" @@ -348,10 +348,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@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== +"@humanwhocodes/object-schema@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -716,20 +716,15 @@ dependencies: "@types/yargs-parser" "*" -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - 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@^8.9.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== +acorn@^8.11.3: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== ajv@^6.12.4: version "6.12.6" @@ -1053,13 +1048,6 @@ diff-sequences@^29.6.3: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - electron-to-chromium@^1.4.535: version "1.4.588" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz#d553f3c008e73488fb181fdf2601fdb0b1ffbb78" @@ -1107,54 +1095,55 @@ eslint-config-prettier@^9.0.0: resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-scope@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.1.tgz#a9601e4b81a0b9171657c343fb13111688963cfc" + integrity sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.3.0: version "3.4.3" 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.54.0: - version "8.57.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== +eslint-visitor-keys@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" + integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== + +eslint@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.0.0.tgz#6270548758e390343f78c8afd030566d86927d40" + integrity sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" + "@eslint/eslintrc" "^3.0.2" + "@eslint/js" "9.0.0" + "@humanwhocodes/config-array" "^0.12.3" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" - doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" + eslint-scope "^8.0.1" + eslint-visitor-keys "^4.0.0" + espree "^10.0.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" + file-entry-cache "^8.0.0" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.19.0" graphemer "^1.4.0" ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" @@ -1164,14 +1153,14 @@ eslint@^8.54.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== +espree@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.0.1.tgz#600e60404157412751ba4a6f3a2ee1a42433139f" + integrity sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww== dependencies: - acorn "^8.9.0" + acorn "^8.11.3" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" + eslint-visitor-keys "^4.0.0" esprima@^4.0.0: version "4.0.1" @@ -1262,12 +1251,12 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: - flat-cache "^3.0.4" + flat-cache "^4.0.0" fill-range@^7.0.1: version "7.0.1" @@ -1292,14 +1281,13 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" + keyv "^4.5.4" flatted@^3.2.9: version "3.2.9" @@ -1365,12 +1353,10 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== - dependencies: - type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== graceful-fs@^4.2.9: version "4.2.11" @@ -1968,7 +1954,7 @@ json5@^2.2.3: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -keyv@^4.5.3: +keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -2331,13 +2317,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -2522,11 +2501,6 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" From 036c37377cdedde3575127caeb00df755db370d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 12:23:45 +0000 Subject: [PATCH 260/262] Bump eslint from 9.0.0 to 9.1.0 Bumps [eslint](https://github.com/eslint/eslint) from 9.0.0 to 9.1.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/v9.0.0...v9.1.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- yarn.lock | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5099b6c1..6ca2f41f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -329,15 +329,15 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.0.0.tgz#1a9e4b4c96d8c7886e0110ed310a0135144a1691" - integrity sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ== +"@eslint/js@9.1.1": + version "9.1.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.1.1.tgz#eb0f82461d12779bbafc1b5045cde3143d350a8a" + integrity sha512-5WoDz3Y19Bg2BnErkZTp0en+c/i9PvgFS7MBe1+m60HjFr0hrphlAGp4yzI7pxpt4xShln4ZyYp4neJm8hmOkQ== -"@humanwhocodes/config-array@^0.12.3": - version "0.12.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.12.3.tgz#a6216d90f81a30bedd1d4b5d799b47241f318072" - integrity sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g== +"@humanwhocodes/config-array@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" + integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== dependencies: "@humanwhocodes/object-schema" "^2.0.3" debug "^4.3.1" @@ -353,6 +353,11 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@humanwhocodes/retry@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.2.3.tgz#c9aa036d1afa643f1250e83150f39efb3a15a631" + integrity sha512-X38nUbachlb01YMlvPFojKoiXq+LzZvuSce70KPMPdeM1Rj03k4dR7lDslhbqXn3Ang4EU3+EAmwEAsbrjHW3g== + "@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" @@ -1114,16 +1119,17 @@ eslint-visitor-keys@^4.0.0: integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== eslint@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.0.0.tgz#6270548758e390343f78c8afd030566d86927d40" - integrity sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q== + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.1.0.tgz#262625f6b0921f7550f128a0098d05ecaad989c6" + integrity sha512-1TCBecGFQtItia2o39P7Z4BK1X7ByNPxAiWJvwiyTGcOwYnTiiASgMpNA6a+beu8cFPhEDWvPf6mIlYUJv6sgA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" "@eslint/eslintrc" "^3.0.2" - "@eslint/js" "9.0.0" - "@humanwhocodes/config-array" "^0.12.3" + "@eslint/js" "9.1.1" + "@humanwhocodes/config-array" "^0.13.0" "@humanwhocodes/module-importer" "^1.0.1" + "@humanwhocodes/retry" "^0.2.3" "@nodelib/fs.walk" "^1.2.8" ajv "^6.12.4" chalk "^4.0.0" @@ -1139,7 +1145,6 @@ eslint@^9.0.0: file-entry-cache "^8.0.0" find-up "^5.0.0" glob-parent "^6.0.2" - graphemer "^1.4.0" ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" @@ -1363,11 +1368,6 @@ graceful-fs@^4.2.9: 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" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" From 36fdf965bd820605b5e6986dcf265764b6858509 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 12:08:24 +0000 Subject: [PATCH 261/262] Bump eslint from 9.1.0 to 9.1.1 Bumps [eslint](https://github.com/eslint/eslint) from 9.1.0 to 9.1.1. - [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/v9.1.0...v9.1.1) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6ca2f41f..908dd2ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1119,9 +1119,9 @@ eslint-visitor-keys@^4.0.0: integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== eslint@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.1.0.tgz#262625f6b0921f7550f128a0098d05ecaad989c6" - integrity sha512-1TCBecGFQtItia2o39P7Z4BK1X7ByNPxAiWJvwiyTGcOwYnTiiASgMpNA6a+beu8cFPhEDWvPf6mIlYUJv6sgA== + version "9.1.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.1.1.tgz#39ec657ccd12813cb4a1dab2f9229dcc6e468271" + integrity sha512-b4cRQ0BeZcSEzPpY2PjFY70VbO32K7BStTGtBsnIGdTSEEQzBi8hPBcGQmTG2zUvFr9uLe0TK42bw8YszuHEqg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" From 91d6bd92b79fc1cbbb7794f77837254bd8b35a32 Mon Sep 17 00:00:00 2001 From: fisker Date: Fri, 7 Mar 2025 02:00:18 +0800 Subject: [PATCH 262/262] Fix ESLint config --- .eslintignore | 1 - eslint.config.js | 21 ++++ package.json | 33 ++--- yarn.lock | 320 ++++++++++++++++++++++++++--------------------- 4 files changed, 208 insertions(+), 167 deletions(-) delete mode 100644 .eslintignore create mode 100644 eslint.config.js diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 7053dc17..00000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -/coverage/ diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..5f507d16 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,21 @@ +import eslintJs from "@eslint/js"; +import eslintConfigPrettier from "eslint-config-prettier"; +import globals from "globals"; + +export default [ + eslintJs.configs.recommended, + eslintConfigPrettier, + { + languageOptions: { + globals: { + ...globals.builtin, + ...globals.jest, + ...globals.node + } + }, + rules: { + "no-unused-vars": "off" + } + }, + { ignores: ["coverage"] } +]; diff --git a/package.json b/package.json index aa7ea32a..69dea870 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "type": "module", "main": "src/plugin.js", "scripts": { - "checkFormat": "prettier --check '**/*'", + "checkFormat": "prettier . --check", "lint": "eslint --cache .", "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js" }, @@ -23,29 +23,14 @@ "prettier": "^3.0.0" }, "devDependencies": { - "eslint": "^9.0.0", - "eslint-config-prettier": "^9.0.0", - "husky": "^9.0.2", - "jest": "^29.5.0", - "prettier": "^3.1.0", - "pretty-quick": "^4.0.0" - }, - "eslintConfig": { - "extends": [ - "eslint:recommended", - "prettier" - ], - "env": { - "jest": true, - "node": true - }, - "parserOptions": { - "ecmaVersion": 2020, - "sourceType": "module" - }, - "rules": { - "no-undef": "off" - } + "@eslint/js": "^9.21.0", + "eslint": "^9.21.0", + "eslint-config-prettier": "^10.0.2", + "globals": "^16.0.0", + "husky": "^9.1.7", + "jest": "^29.7.0", + "prettier": "^3.5.3", + "pretty-quick": "^4.1.1" }, "jest": { "globalSetup": "./test/js/globalSetup.js", diff --git a/yarn.lock b/yarn.lock index 908dd2ce..dd883b5b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -309,15 +309,31 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== +"@eslint-community/regexpp@^4.12.1": + version "4.12.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== -"@eslint/eslintrc@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.0.2.tgz#36180f8e85bf34d2fe3ccc2261e8e204a411ab4e" - integrity sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg== +"@eslint/config-array@^0.19.2": + version "0.19.2" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.2.tgz#3060b809e111abfc97adb0bb1172778b90cb46aa" + integrity sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w== + dependencies: + "@eslint/object-schema" "^2.1.6" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/core@^0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.12.0.tgz#5f960c3d57728be9f6c65bd84aa6aa613078798e" + integrity sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg== + dependencies: + "@types/json-schema" "^7.0.15" + +"@eslint/eslintrc@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.0.tgz#96a558f45842989cca7ea1ecd785ad5491193846" + integrity sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -329,34 +345,51 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.1.1": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.1.1.tgz#eb0f82461d12779bbafc1b5045cde3143d350a8a" - integrity sha512-5WoDz3Y19Bg2BnErkZTp0en+c/i9PvgFS7MBe1+m60HjFr0hrphlAGp4yzI7pxpt4xShln4ZyYp4neJm8hmOkQ== +"@eslint/js@9.21.0", "@eslint/js@^9.21.0": + version "9.21.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.21.0.tgz#4303ef4e07226d87c395b8fad5278763e9c15c08" + integrity sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw== -"@humanwhocodes/config-array@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" - integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== +"@eslint/object-schema@^2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f" + integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== + +"@eslint/plugin-kit@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz#9901d52c136fb8f375906a73dcc382646c3b6a27" + integrity sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g== dependencies: - "@humanwhocodes/object-schema" "^2.0.3" - debug "^4.3.1" - minimatch "^3.0.5" + "@eslint/core" "^0.12.0" + levn "^0.4.1" + +"@humanfs/core@^0.19.1": + version "0.19.1" + resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" + integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== + +"@humanfs/node@^0.16.6": + version "0.16.6" + resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e" + integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== + dependencies: + "@humanfs/core" "^0.19.1" + "@humanwhocodes/retry" "^0.3.0" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@humanwhocodes/retry@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" + integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== -"@humanwhocodes/retry@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.2.3.tgz#c9aa036d1afa643f1250e83150f39efb3a15a631" - integrity sha512-X38nUbachlb01YMlvPFojKoiXq+LzZvuSce70KPMPdeM1Rj03k4dR7lDslhbqXn3Ang4EU3+EAmwEAsbrjHW3g== +"@humanwhocodes/retry@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.2.tgz#1860473de7dfa1546767448f333db80cb0ff2161" + integrity sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -598,27 +631,6 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@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" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -671,6 +683,11 @@ dependencies: "@babel/types" "^7.20.7" +"@types/estree@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + "@types/graceful-fs@^4.1.3": version "4.1.9" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" @@ -697,6 +714,11 @@ dependencies: "@types/istanbul-lib-report" "*" +"@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + "@types/node@*": version "20.9.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.2.tgz#002815c8e87fe0c9369121c78b52e800fadc0ac6" @@ -731,6 +753,11 @@ acorn@^8.11.3: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@^8.14.0: + version "8.14.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" + integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== + ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -1012,7 +1039,7 @@ create-jest@^29.7.0: jest-util "^29.7.0" prompts "^2.0.1" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1021,6 +1048,15 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +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" + 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" @@ -1095,15 +1131,15 @@ 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== -eslint-config-prettier@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== +eslint-config-prettier@^10.0.2: + version "10.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.0.2.tgz#47444de8aa104ce82c2f91ad2a5e96b62c01e20d" + integrity sha512-1105/17ZIMjmCOJOPNfVdbXafLCLj3hPmkmB7dLgt7XsQ/zkxSuDerE/xgO3RxoHysR1N1whmquY0lSn2O0VLg== -eslint-scope@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.1.tgz#a9601e4b81a0b9171657c343fb13111688963cfc" - integrity sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og== +eslint-scope@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" + integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -1118,28 +1154,37 @@ eslint-visitor-keys@^4.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== -eslint@^9.0.0: - version "9.1.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.1.1.tgz#39ec657ccd12813cb4a1dab2f9229dcc6e468271" - integrity sha512-b4cRQ0BeZcSEzPpY2PjFY70VbO32K7BStTGtBsnIGdTSEEQzBi8hPBcGQmTG2zUvFr9uLe0TK42bw8YszuHEqg== +eslint-visitor-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" + integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== + +eslint@^9.21.0: + version "9.21.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.21.0.tgz#b1c9c16f5153ff219791f627b94ab8f11f811591" + integrity sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^3.0.2" - "@eslint/js" "9.1.1" - "@humanwhocodes/config-array" "^0.13.0" + "@eslint-community/regexpp" "^4.12.1" + "@eslint/config-array" "^0.19.2" + "@eslint/core" "^0.12.0" + "@eslint/eslintrc" "^3.3.0" + "@eslint/js" "9.21.0" + "@eslint/plugin-kit" "^0.2.7" + "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.2.3" - "@nodelib/fs.walk" "^1.2.8" + "@humanwhocodes/retry" "^0.4.2" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" - cross-spawn "^7.0.2" + cross-spawn "^7.0.6" debug "^4.3.2" escape-string-regexp "^4.0.0" - eslint-scope "^8.0.1" - eslint-visitor-keys "^4.0.0" - espree "^10.0.1" - esquery "^1.4.2" + eslint-scope "^8.2.0" + eslint-visitor-keys "^4.2.0" + espree "^10.3.0" + esquery "^1.5.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^8.0.0" @@ -1148,15 +1193,11 @@ eslint@^9.0.0: ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - is-path-inside "^3.0.3" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" espree@^10.0.1: version "10.0.1" @@ -1167,15 +1208,24 @@ espree@^10.0.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^4.0.0" +espree@^10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" + integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== + dependencies: + acorn "^8.14.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^4.2.0" + 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== -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== +esquery@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== dependencies: estraverse "^5.1.0" @@ -1196,7 +1246,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: +execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -1242,13 +1292,6 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - fb-watchman@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" @@ -1363,6 +1406,11 @@ globals@^14.0.0: resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== +globals@^16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-16.0.0.tgz#3d7684652c5c4fbd086ec82f9448214da49382d8" + integrity sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A== + graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" @@ -1395,16 +1443,21 @@ 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== -husky@^9.0.2: - version "9.0.11" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.11.tgz#fc91df4c756050de41b3e478b2158b87c1e79af9" - integrity sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw== +husky@^9.1.7: + version "9.1.7" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d" + integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== -ignore@^5.2.0, ignore@^5.3.0: +ignore@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== +ignore@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.3.tgz#397ef9315dfe0595671eefe8b633fec6943ab733" + integrity sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA== + import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -1478,11 +1531,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" @@ -1894,7 +1942,7 @@ jest-worker@^29.7.0: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.5.0: +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== @@ -2049,7 +2097,7 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -2194,15 +2242,20 @@ 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.1: - 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.6" @@ -2221,10 +2274,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" - integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== +prettier@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" + integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== pretty-format@^29.7.0: version "29.7.0" @@ -2235,18 +2288,18 @@ pretty-format@^29.7.0: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-quick@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-4.0.0.tgz#ea5cce85a5804bfbec7327b0e064509155d03f39" - integrity sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ== +pretty-quick@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-4.1.1.tgz#8a0c883e4beeb0eddbe7eda50d7b1251d4f72968" + integrity sha512-9Ud0l/CspNTmyIdYac9X7Inb3o8fuUsw+1zJFvCGn+at0t1UwUcUdo2RSZ41gcmfLv1fxgWQxWEfItR7CBwugg== dependencies: - execa "^5.1.1" find-up "^5.0.0" - ignore "^5.3.0" + ignore "^7.0.3" mri "^1.2.0" - picocolors "^1.0.0" - picomatch "^3.0.1" - tslib "^2.6.2" + picocolors "^1.1.1" + picomatch "^4.0.2" + tinyexec "^0.3.2" + tslib "^2.8.1" prompts@^2.0.1: version "2.4.2" @@ -2266,11 +2319,6 @@ pure-rand@^6.0.0: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - react-is@^18.0.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" @@ -2312,18 +2360,6 @@ resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" @@ -2462,10 +2498,10 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.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 sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +tinyexec@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2" + integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA== tmpl@1.0.5: version "1.0.5" @@ -2484,10 +2520,10 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -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== +tslib@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0"