From cfa216981564524fb3271a96a7a9a7491f50d37b Mon Sep 17 00:00:00 2001 From: xobotyi Date: Wed, 18 Dec 2024 00:34:35 +0100 Subject: [PATCH 01/13] chore: upgrade yarn and husky --- .github/workflows/ci-cd.yml | 3 - .gitignore | 9 + .husky/commit-msg | 5 +- .yarnrc.yml | 1 + package.json | 15 +- yarn.lock | 25281 +++++++++++++++++++--------------- 6 files changed, 14276 insertions(+), 11038 deletions(-) create mode 100644 .yarnrc.yml diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 1426e191..3957d2e0 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -9,9 +9,6 @@ on: - master workflow_dispatch: -env: - HUSKY: 0 - jobs: lint: name: "Lint" diff --git a/.gitignore b/.gitignore index a346c66a..f6a84ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,12 @@ node_modules /coverage /src/**/*.js /src/**/*.d.ts + +yarn-error.log +.yarn/* +!.yarn/cache +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions diff --git a/.husky/commit-msg b/.husky/commit-msg index 14aeed6b..e232fe61 100755 --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,10 +1,7 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - if [ "$CI" = "true" ] then # disable commitlint for CI environments exit 0 else - echo "Exists" + yarn commitlint --edit fi diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 00000000..3186f3f0 --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/package.json b/package.json index 38555e5a..962a525d 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,9 @@ "node": ">=18.0.0" }, "scripts": { - "prepare": "husky", + "postinstall": "husky", + "prepack": "pinst --disable", + "postpack": "pinst --enable", "commit": "git-cz", "build": "yarn build:clean && tsc --version && tsc", "build:clean": "yarn rimraf -g ./src/**/*.js ./src/**/*.d.ts", @@ -62,7 +64,7 @@ ] }, "dependencies": { - "@react-hookz/deep-equal": "^1.0.4" + "@react-hookz/deep-equal": "^3.0.1" }, "peerDependencies": { "js-cookie": "^3.0.5", @@ -81,7 +83,7 @@ "@commitlint/cz-commitlint": "^19.5.0", "@jamesacarr/jest-reporter-github-actions": "^0.0.4", "@react-hookz/eslint-config": "^2.1.5", - "@react-hookz/eslint-formatter-gha": "^1.0.1", + "@react-hookz/eslint-formatter-gha": "^3.0.2", "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", "@semantic-release/github": "^11.0.0", @@ -98,7 +100,7 @@ "concurrently": "^9.0.1", "eslint": "^8.57.0", "eslint-plugin-prettier": "^5.1.3", - "husky": "^9.0.11", + "husky": "^9.1.7", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "js-cookie": "^3.0.5", @@ -110,8 +112,7 @@ "semantic-release": "^23.0.2", "ts-jest": "^29.1.2", "ts-node": "^10.9.2", - "typescript": "^5.3.3", - "yarn": "^1.22.21" + "typescript": "^5.3.3" }, - "packageManager": "yarn@1.22.22" + "packageManager": "yarn@4.5.3" } diff --git a/yarn.lock b/yarn.lock index 6f543f97..fa349a6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,11024 +1,14257 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@actions/core@^1.2.6", "@actions/core@^1.9.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.11.1.tgz#ae683aac5112438021588030efb53b1adb86f172" - integrity sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A== - dependencies: - "@actions/exec" "^1.1.1" - "@actions/http-client" "^2.0.1" - -"@actions/exec@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.1.tgz#2e43f28c54022537172819a7cf886c844221a611" - integrity sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w== - dependencies: - "@actions/io" "^1.0.1" - -"@actions/http-client@^2.0.1": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.3.tgz#31fc0b25c0e665754ed39a9f19a8611fc6dab674" - integrity sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA== - dependencies: - tunnel "^0.0.6" - undici "^5.25.4" - -"@actions/io@^1.0.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.3.tgz#4cdb6254da7962b07473ff5c335f3da485d94d71" - integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q== - -"@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" - integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== - dependencies: - "@babel/helper-validator-identifier" "^7.25.9" - js-tokens "^4.0.0" - picocolors "^1.0.0" - -"@babel/compat-data@^7.25.9": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.2.tgz#278b6b13664557de95b8f35b90d96785850bb56e" - integrity sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg== - -"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@^7.7.5": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.0.tgz#d78b6023cc8f3114ccf049eb219613f74a747b40" - integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.26.0" - "@babel/generator" "^7.26.0" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-module-transforms" "^7.26.0" - "@babel/helpers" "^7.26.0" - "@babel/parser" "^7.26.0" - "@babel/template" "^7.25.9" - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.26.0" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.25.9", "@babel/generator@^7.26.0", "@babel/generator@^7.7.2": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.2.tgz#87b75813bec87916210e5e01939a4c823d6bb74f" - integrity sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw== - dependencies: - "@babel/parser" "^7.26.2" - "@babel/types" "^7.26.0" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^3.0.2" - -"@babel/helper-compilation-targets@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz#55af025ce365be3cdc0c1c1e56c6af617ce88875" - integrity sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ== - dependencies: - "@babel/compat-data" "^7.25.9" - "@babel/helper-validator-option" "^7.25.9" - browserslist "^4.24.0" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-module-imports@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" - integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== - dependencies: - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/helper-module-transforms@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" - integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== - dependencies: - "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - "@babel/traverse" "^7.25.9" - -"@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.25.9", "@babel/helper-plugin-utils@^7.8.0": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz#9cbdd63a9443a2c92a725cca7ebca12cc8dd9f46" - integrity sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw== - -"@babel/helper-string-parser@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" - integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== - -"@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" - integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== - -"@babel/helper-validator-option@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" - integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== - -"@babel/helpers@^7.26.0": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.0.tgz#30e621f1eba5aa45fe6f4868d2e9154d884119a4" - integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== - dependencies: - "@babel/template" "^7.25.9" - "@babel/types" "^7.26.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.2": - version "7.26.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.2.tgz#fd7b6f487cfea09889557ef5d4eeb9ff9a5abd11" - integrity sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ== - dependencies: - "@babel/types" "^7.26.0" - -"@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" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-import-attributes@^7.24.7": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" - integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.7.2": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290" - integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399" - integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ== - dependencies: - "@babel/helper-plugin-utils" "^7.25.9" - -"@babel/runtime@^7.12.5": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" - integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.25.9", "@babel/template@^7.3.3": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.9.tgz#ecb62d81a8a6f5dc5fe8abfc3901fc52ddf15016" - integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== - dependencies: - "@babel/code-frame" "^7.25.9" - "@babel/parser" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/traverse@^7.25.9": - version "7.25.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.9.tgz#a50f8fe49e7f69f53de5bea7e413cd35c5e13c84" - integrity sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw== - dependencies: - "@babel/code-frame" "^7.25.9" - "@babel/generator" "^7.25.9" - "@babel/parser" "^7.25.9" - "@babel/template" "^7.25.9" - "@babel/types" "^7.25.9" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.3.3": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff" - integrity sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA== - dependencies: - "@babel/helper-string-parser" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@cnakazawa/watch@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" - integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== - dependencies: - exec-sh "^0.3.2" - minimist "^1.2.0" - -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - -"@commitlint/cli@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-19.5.0.tgz#a6e2f7f8397ddf9abd5ee5870e30a1bf51b7be2b" - integrity sha512-gaGqSliGwB86MDmAAKAtV9SV1SHdmN8pnGq4EJU4+hLisQ7IFfx4jvU4s+pk6tl0+9bv6yT+CaZkufOinkSJIQ== - dependencies: - "@commitlint/format" "^19.5.0" - "@commitlint/lint" "^19.5.0" - "@commitlint/load" "^19.5.0" - "@commitlint/read" "^19.5.0" - "@commitlint/types" "^19.5.0" - tinyexec "^0.3.0" - yargs "^17.0.0" - -"@commitlint/config-conventional@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-19.5.0.tgz#f838cdaed0e0e223cdc2e865f055d474a49fe18c" - integrity sha512-OBhdtJyHNPryZKg0fFpZNOBM1ZDbntMvqMuSmpfyP86XSfwzGw4CaoYRG4RutUPg0BTK07VMRIkNJT6wi2zthg== - dependencies: - "@commitlint/types" "^19.5.0" - conventional-changelog-conventionalcommits "^7.0.2" - -"@commitlint/config-validator@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-19.5.0.tgz#f0a4eda2109fc716ef01bb8831af9b02e3a1e568" - integrity sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw== - dependencies: - "@commitlint/types" "^19.5.0" - ajv "^8.11.0" - -"@commitlint/cz-commitlint@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/cz-commitlint/-/cz-commitlint-19.5.0.tgz#3ebf0aca0727d49581c378076606663603e74ce9" - integrity sha512-PNfIC54J3lDVIBJTo7A1RMp1kdOYkGcUz27VG0NP/DzFKLspXcQm13RnKc16BjFNCJGLC7iaXjucrfrKHOqorQ== - dependencies: - "@commitlint/ensure" "^19.5.0" - "@commitlint/load" "^19.5.0" - "@commitlint/types" "^19.5.0" - chalk "^5.3.0" - lodash.isplainobject "^4.0.6" - word-wrap "^1.2.5" - -"@commitlint/ensure@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-19.5.0.tgz#b087374a6a0a0140e5925a82901d234885d9f6dd" - integrity sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg== - dependencies: - "@commitlint/types" "^19.5.0" - lodash.camelcase "^4.3.0" - lodash.kebabcase "^4.1.1" - lodash.snakecase "^4.1.1" - lodash.startcase "^4.4.0" - lodash.upperfirst "^4.3.1" - -"@commitlint/execute-rule@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz#c13da8c03ea0379f30856111e27d57518e25b8a2" - integrity sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg== - -"@commitlint/format@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-19.5.0.tgz#d879db2d97d70ae622397839fb8603d56e85a250" - integrity sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A== - dependencies: - "@commitlint/types" "^19.5.0" - chalk "^5.3.0" - -"@commitlint/is-ignored@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-19.5.0.tgz#f8b7f365887acc1e3bdb31b17117bb435585dddf" - integrity sha512-0XQ7Llsf9iL/ANtwyZ6G0NGp5Y3EQ8eDQSxv/SRcfJ0awlBY4tHFAvwWbw66FVUaWICH7iE5en+FD9TQsokZ5w== - dependencies: - "@commitlint/types" "^19.5.0" - semver "^7.6.0" - -"@commitlint/lint@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-19.5.0.tgz#f4e162e7857a1c0694b20b92527704897558ff70" - integrity sha512-cAAQwJcRtiBxQWO0eprrAbOurtJz8U6MgYqLz+p9kLElirzSCc0vGMcyCaA1O7AqBuxo11l1XsY3FhOFowLAAg== - dependencies: - "@commitlint/is-ignored" "^19.5.0" - "@commitlint/parse" "^19.5.0" - "@commitlint/rules" "^19.5.0" - "@commitlint/types" "^19.5.0" - -"@commitlint/load@>6.1.1", "@commitlint/load@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-19.5.0.tgz#67f90a294894d1f99b930b6152bed2df44a81794" - integrity sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA== - dependencies: - "@commitlint/config-validator" "^19.5.0" - "@commitlint/execute-rule" "^19.5.0" - "@commitlint/resolve-extends" "^19.5.0" - "@commitlint/types" "^19.5.0" - chalk "^5.3.0" - cosmiconfig "^9.0.0" - cosmiconfig-typescript-loader "^5.0.0" - lodash.isplainobject "^4.0.6" - lodash.merge "^4.6.2" - lodash.uniq "^4.5.0" - -"@commitlint/message@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-19.5.0.tgz#c062d9a1d2b3302c3a8cac25d6d1125ea9c019b2" - integrity sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ== - -"@commitlint/parse@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-19.5.0.tgz#b450dad9b5a95ac5ba472d6d0fdab822dce946fc" - integrity sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw== - dependencies: - "@commitlint/types" "^19.5.0" - conventional-changelog-angular "^7.0.0" - conventional-commits-parser "^5.0.0" - -"@commitlint/read@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-19.5.0.tgz#601f9f1afe69852b0f28aa81cd455b40979fad6b" - integrity sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ== - dependencies: - "@commitlint/top-level" "^19.5.0" - "@commitlint/types" "^19.5.0" - git-raw-commits "^4.0.0" - minimist "^1.2.8" - tinyexec "^0.3.0" - -"@commitlint/resolve-extends@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz#f3ec33e12d10df90cae0bfad8e593431fb61b18e" - integrity sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA== - dependencies: - "@commitlint/config-validator" "^19.5.0" - "@commitlint/types" "^19.5.0" - global-directory "^4.0.1" - import-meta-resolve "^4.0.0" - lodash.mergewith "^4.6.2" - resolve-from "^5.0.0" - -"@commitlint/rules@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-19.5.0.tgz#2a72ab506d49d7f33eda56f0ae072a3479429e74" - integrity sha512-hDW5TPyf/h1/EufSHEKSp6Hs+YVsDMHazfJ2azIk9tHPXS6UqSz1dIRs1gpqS3eMXgtkT7JH6TW4IShdqOwhAw== - dependencies: - "@commitlint/ensure" "^19.5.0" - "@commitlint/message" "^19.5.0" - "@commitlint/to-lines" "^19.5.0" - "@commitlint/types" "^19.5.0" - -"@commitlint/to-lines@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-19.5.0.tgz#e4b7f34f09064568c96a74de4f1fc9f466c4d472" - integrity sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ== - -"@commitlint/top-level@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-19.5.0.tgz#0017ffe39b5ba3611a1debd62efe28803601a14f" - integrity sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng== - dependencies: - find-up "^7.0.0" - -"@commitlint/types@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-19.5.0.tgz#c5084d1231d4dd50e40bdb656ee7601f691400b3" - integrity sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg== - dependencies: - "@types/conventional-commits-parser" "^5.0.0" - chalk "^5.3.0" - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" - integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/regexpp@^4.11.0", "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.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@^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" - espree "^9.6.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" - -"@eslint/js@8.57.1": - version "8.57.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" - integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== - -"@fastify/busboy@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" - integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== - -"@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" - minimatch "^3.0.5" - -"@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== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@isaacs/fs-minipass@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz#2d59ae3ab4b38fb4270bfa23d30f8e2e86c7fe32" - integrity sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w== - dependencies: - minipass "^7.0.4" - -"@isaacs/string-locale-compare@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" - integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== - -"@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" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jamesacarr/jest-reporter-github-actions@^0.0.4": - version "0.0.4" - resolved "https://registry.yarnpkg.com/@jamesacarr/jest-reporter-github-actions/-/jest-reporter-github-actions-0.0.4.tgz#471684cdacffaa78766c20653634797d356d3b40" - integrity sha512-2lfpqWt19PAAVgHNUPQEvqDMQfdiDpyFPDol7FgrKoZ9x7/GrUmpXGQZNdhFAssDdG7hJFd4yoLfUrkZEKl29g== - dependencies: - "@actions/core" "^1.2.6" - "@jest/reporters" "^26.6.2" - -"@jest/console@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" - integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" - slash "^3.0.0" - -"@jest/console@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" - integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - -"@jest/core@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" - integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== - dependencies: - "@jest/console" "^29.7.0" - "@jest/reporters" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.7.0" - jest-config "^29.7.0" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-resolve-dependencies "^29.7.0" - jest-runner "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - jest-watcher "^29.7.0" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/create-cache-key-function@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz#793be38148fab78e65f40ae30c36785f4ad859f0" - integrity sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA== - dependencies: - "@jest/types" "^29.6.3" - -"@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.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - -"@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.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.7.0" - jest-snapshot "^29.7.0" - -"@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.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/globals@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" - integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/types" "^29.6.3" - jest-mock "^29.7.0" - -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" - -"@jest/reporters@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" - integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^6.0.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - 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" - v8-to-istanbul "^9.0.1" - -"@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.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@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" - integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== - dependencies: - "@jest/console" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-result@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" - integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== - dependencies: - "@jest/console" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" - integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== - dependencies: - "@jest/test-result" "^29.7.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - slash "^3.0.0" - -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@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.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== - dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== - -"@jridgewell/trace-mapping@0.3.9": - 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" - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@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", "@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" - -"@nolyfill/is-core-module@1.0.39": - version "1.0.39" - resolved "https://registry.yarnpkg.com/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz#3dc35ba0f1e66b403c00b39344f870298ebb1c8e" - integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA== - -"@npmcli/agent@^2.0.0": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.2.tgz#967604918e62f620a648c7975461c9c9e74fc5d5" - integrity sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og== - dependencies: - agent-base "^7.1.0" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.1" - lru-cache "^10.0.1" - socks-proxy-agent "^8.0.3" - -"@npmcli/agent@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-3.0.0.tgz#1685b1fbd4a1b7bb4f930cbb68ce801edfe7aa44" - integrity sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q== - dependencies: - agent-base "^7.1.0" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.1" - lru-cache "^10.0.1" - socks-proxy-agent "^8.0.3" - -"@npmcli/arborist@^8.0.0": - version "8.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-8.0.0.tgz#681af823ac8ca067404dee57e0f91a3d27d6ef0a" - integrity sha512-APDXxtXGSftyXibl0dZ3CuZYmmVnkiN3+gkqwXshY4GKC2rof2+Lg0sGuj6H1p2YfBAKd7PRwuMVhu6Pf/nQ/A== - dependencies: - "@isaacs/string-locale-compare" "^1.1.0" - "@npmcli/fs" "^4.0.0" - "@npmcli/installed-package-contents" "^3.0.0" - "@npmcli/map-workspaces" "^4.0.1" - "@npmcli/metavuln-calculator" "^8.0.0" - "@npmcli/name-from-folder" "^3.0.0" - "@npmcli/node-gyp" "^4.0.0" - "@npmcli/package-json" "^6.0.1" - "@npmcli/query" "^4.0.0" - "@npmcli/redact" "^3.0.0" - "@npmcli/run-script" "^9.0.1" - bin-links "^5.0.0" - cacache "^19.0.1" - common-ancestor-path "^1.0.1" - hosted-git-info "^8.0.0" - json-parse-even-better-errors "^4.0.0" - json-stringify-nice "^1.1.4" - lru-cache "^10.2.2" - minimatch "^9.0.4" - nopt "^8.0.0" - npm-install-checks "^7.1.0" - npm-package-arg "^12.0.0" - npm-pick-manifest "^10.0.0" - npm-registry-fetch "^18.0.1" - pacote "^19.0.0" - parse-conflict-json "^4.0.0" - proc-log "^5.0.0" - proggy "^3.0.0" - promise-all-reject-late "^1.0.0" - promise-call-limit "^3.0.1" - read-package-json-fast "^4.0.0" - semver "^7.3.7" - ssri "^12.0.0" - treeverse "^3.0.0" - walk-up-path "^3.0.1" - -"@npmcli/config@^8.0.0": - version "8.3.4" - resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-8.3.4.tgz#e2712c2215bb2659f39718b23bf7401f9ac1da59" - integrity sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw== - dependencies: - "@npmcli/map-workspaces" "^3.0.2" - "@npmcli/package-json" "^5.1.1" - ci-info "^4.0.0" - ini "^4.1.2" - nopt "^7.2.1" - proc-log "^4.2.0" - semver "^7.3.5" - walk-up-path "^3.0.1" - -"@npmcli/config@^9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-9.0.0.tgz#bd810a1e9e23fcfad800e40d6c2c8b8f4f4318e1" - integrity sha512-P5Vi16Y+c8E0prGIzX112ug7XxqfaPFUVW/oXAV+2VsxplKZEnJozqZ0xnK8V8w/SEsBf+TXhUihrEIAU4CA5Q== - dependencies: - "@npmcli/map-workspaces" "^4.0.1" - "@npmcli/package-json" "^6.0.1" - ci-info "^4.0.0" - ini "^5.0.0" - nopt "^8.0.0" - proc-log "^5.0.0" - semver "^7.3.5" - walk-up-path "^3.0.1" - -"@npmcli/fs@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.1.tgz#59cdaa5adca95d135fc00f2bb53f5771575ce726" - integrity sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg== - dependencies: - semver "^7.3.5" - -"@npmcli/fs@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-4.0.0.tgz#a1eb1aeddefd2a4a347eca0fab30bc62c0e1c0f2" - integrity sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q== - dependencies: - semver "^7.3.5" - -"@npmcli/git@^5.0.0": - version "5.0.8" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.8.tgz#8ba3ff8724192d9ccb2735a2aa5380a992c5d3d1" - integrity sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ== - dependencies: - "@npmcli/promise-spawn" "^7.0.0" - ini "^4.1.3" - lru-cache "^10.0.1" - npm-pick-manifest "^9.0.0" - proc-log "^4.0.0" - promise-inflight "^1.0.1" - promise-retry "^2.0.1" - semver "^7.3.5" - which "^4.0.0" - -"@npmcli/git@^6.0.0", "@npmcli/git@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-6.0.1.tgz#9ee894a35c2082d0b41883e267ff140aece457d5" - integrity sha512-BBWMMxeQzalmKadyimwb2/VVQyJB01PH0HhVSNLHNBDZN/M/h/02P6f8fxedIiFhpMj11SO9Ep5tKTBE7zL2nw== - dependencies: - "@npmcli/promise-spawn" "^8.0.0" - ini "^5.0.0" - lru-cache "^10.0.1" - npm-pick-manifest "^10.0.0" - proc-log "^5.0.0" - promise-inflight "^1.0.1" - promise-retry "^2.0.1" - semver "^7.3.5" - which "^5.0.0" - -"@npmcli/installed-package-contents@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz#2c1170ff4f70f68af125e2842e1853a93223e4d1" - integrity sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q== - dependencies: - npm-bundled "^4.0.0" - npm-normalize-package-bin "^4.0.0" - -"@npmcli/map-workspaces@^3.0.2": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz#27dc06c20c35ef01e45a08909cab9cb3da08cea6" - integrity sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA== - dependencies: - "@npmcli/name-from-folder" "^2.0.0" - glob "^10.2.2" - minimatch "^9.0.0" - read-package-json-fast "^3.0.0" - -"@npmcli/map-workspaces@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-4.0.1.tgz#ff1a7d6f643264617c0769ac0f36e507743d5a81" - integrity sha512-g5H8ljH7Z+4T1ASsfcL09gZl4YGw6M4GbjzPt6HgE+pCRSKC4nlNc4nY75zshi88eEHcdoh3Q8XgWFkGKoVOPw== - dependencies: - "@npmcli/name-from-folder" "^3.0.0" - "@npmcli/package-json" "^6.0.0" - glob "^10.2.2" - minimatch "^9.0.0" - -"@npmcli/metavuln-calculator@^8.0.0": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-8.0.1.tgz#c14307a1f0e43524e7ae833d1787c2e0425a9f44" - integrity sha512-WXlJx9cz3CfHSt9W9Opi1PTFc4WZLFomm5O8wekxQZmkyljrBRwATwDxfC9iOXJwYVmfiW1C1dUe0W2aN0UrSg== - dependencies: - cacache "^19.0.0" - json-parse-even-better-errors "^4.0.0" - pacote "^20.0.0" - proc-log "^5.0.0" - semver "^7.3.5" - -"@npmcli/name-from-folder@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" - integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== - -"@npmcli/name-from-folder@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-3.0.0.tgz#ed49b18d16b954149f31240e16630cfec511cd57" - integrity sha512-61cDL8LUc9y80fXn+lir+iVt8IS0xHqEKwPu/5jCjxQTVoSCmkXvw4vbMrzAMtmghz3/AkiBjhHkDKUH+kf7kA== - -"@npmcli/node-gyp@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz#01f900bae62f0f27f9a5a127b40d443ddfb9d4c6" - integrity sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA== - -"@npmcli/package-json@^5.1.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.2.1.tgz#df69477b1023b81ff8503f2b9db4db4faea567ed" - integrity sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ== - dependencies: - "@npmcli/git" "^5.0.0" - glob "^10.2.2" - hosted-git-info "^7.0.0" - json-parse-even-better-errors "^3.0.0" - normalize-package-data "^6.0.0" - proc-log "^4.0.0" - semver "^7.5.3" - -"@npmcli/package-json@^6.0.0", "@npmcli/package-json@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-6.0.1.tgz#550a8eb3e0ae9ad8577cb7a3f2d677a04a3bcee9" - integrity sha512-YW6PZ99sc1Q4DINEY2td5z9Z3rwbbsx7CyCnOc7UXUUdePXh5gPi1UeaoQVmKQMVbIU7aOwX2l1OG5ZfjgGi5g== - dependencies: - "@npmcli/git" "^6.0.0" - glob "^10.2.2" - hosted-git-info "^8.0.0" - json-parse-even-better-errors "^4.0.0" - normalize-package-data "^7.0.0" - proc-log "^5.0.0" - semver "^7.5.3" - -"@npmcli/promise-spawn@^7.0.0": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz#1d53d34ffeb5d151bfa8ec661bcccda8bbdfd532" - integrity sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ== - dependencies: - which "^4.0.0" - -"@npmcli/promise-spawn@^8.0.0", "@npmcli/promise-spawn@^8.0.1": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-8.0.2.tgz#053688f8bc2b4ecc036d2d52c691fd82af58ea5e" - integrity sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ== - dependencies: - which "^5.0.0" - -"@npmcli/query@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-4.0.0.tgz#7a2470254f5a12a1499d2296a7343043c7847568" - integrity sha512-3pPbese0fbCiFJ/7/X1GBgxAKYFE8sxBddA7GtuRmOgNseH4YbGsXJ807Ig3AEwNITjDUISHglvy89cyDJnAwA== - dependencies: - postcss-selector-parser "^6.1.2" - -"@npmcli/redact@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/redact/-/redact-3.0.0.tgz#ab3b6413355be7f3c02e87c36c2b0c2f9773fce4" - integrity sha512-/1uFzjVcfzqrgCeGW7+SZ4hv0qLWmKXVzFahZGJ6QuJBj6Myt9s17+JL86i76NV9YSnJRcGXJYQbAU0rn1YTCQ== - -"@npmcli/run-script@^9.0.0", "@npmcli/run-script@^9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-9.0.1.tgz#f90a0cf4f4e8f42d66669d3af568c5036859b654" - integrity sha512-q9C0uHrb6B6cm3qXVM32UmpqTKuFGbtP23O2K5sLvPMz2hilKd0ptqGXSpuunOuOmPQb/aT5F/kCXFc1P2gO/A== - dependencies: - "@npmcli/node-gyp" "^4.0.0" - "@npmcli/package-json" "^6.0.0" - "@npmcli/promise-spawn" "^8.0.0" - node-gyp "^10.0.0" - proc-log "^5.0.0" - which "^5.0.0" - -"@octokit/auth-token@^5.0.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-5.1.1.tgz#3bbfe905111332a17f72d80bd0b51a3e2fa2cf07" - integrity sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA== - -"@octokit/core@^6.0.0": - version "6.1.2" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-6.1.2.tgz#20442d0a97c411612da206411e356014d1d1bd17" - integrity sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg== - dependencies: - "@octokit/auth-token" "^5.0.0" - "@octokit/graphql" "^8.0.0" - "@octokit/request" "^9.0.0" - "@octokit/request-error" "^6.0.1" - "@octokit/types" "^13.0.0" - before-after-hook "^3.0.2" - universal-user-agent "^7.0.0" - -"@octokit/endpoint@^10.0.0": - version "10.1.1" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-10.1.1.tgz#1a9694e7aef6aa9d854dc78dd062945945869bcc" - integrity sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q== - dependencies: - "@octokit/types" "^13.0.0" - universal-user-agent "^7.0.2" - -"@octokit/graphql@^8.0.0": - version "8.1.1" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-8.1.1.tgz#3cacab5f2e55d91c733e3bf481d3a3f8a5f639c4" - integrity sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg== - dependencies: - "@octokit/request" "^9.0.0" - "@octokit/types" "^13.0.0" - universal-user-agent "^7.0.0" - -"@octokit/openapi-types@^22.2.0": - version "22.2.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-22.2.0.tgz#75aa7dcd440821d99def6a60b5f014207ae4968e" - integrity sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg== - -"@octokit/plugin-paginate-rest@^11.0.0": - version "11.3.5" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.5.tgz#a1929b3ba3dc7b63bc73bb6d3c7a3faf2a9c7649" - integrity sha512-cgwIRtKrpwhLoBi0CUNuY83DPGRMaWVjqVI/bGKsLJ4PzyWZNaEmhHroI2xlrVXkk6nFv0IsZpOp+ZWSWUS2AQ== - dependencies: - "@octokit/types" "^13.6.0" - -"@octokit/plugin-retry@^7.0.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-retry/-/plugin-retry-7.1.2.tgz#242e2d19a72a50b5113bb25d7d2c622ce0373fa0" - integrity sha512-XOWnPpH2kJ5VTwozsxGurw+svB2e61aWlmk5EVIYZPwFK5F9h4cyPyj9CIKRyMXMHSwpIsI3mPOdpMmrRhe7UQ== - dependencies: - "@octokit/request-error" "^6.0.0" - "@octokit/types" "^13.0.0" - bottleneck "^2.15.3" - -"@octokit/plugin-throttling@^9.0.0": - version "9.3.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-9.3.2.tgz#cc05180e45e769d6726c5faed157e9ad3b6ab8c0" - integrity sha512-FqpvcTpIWFpMMwIeSoypoJXysSAQ3R+ALJhXXSG1HTP3YZOIeLmcNcimKaXxTcws+Sh6yoRl13SJ5r8sXc1Fhw== - dependencies: - "@octokit/types" "^13.0.0" - bottleneck "^2.15.3" - -"@octokit/request-error@^6.0.0", "@octokit/request-error@^6.0.1": - version "6.1.5" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-6.1.5.tgz#907099e341c4e6179db623a0328d678024f54653" - integrity sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ== - dependencies: - "@octokit/types" "^13.0.0" - -"@octokit/request@^9.0.0": - version "9.1.3" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-9.1.3.tgz#42b693bc06238f43af3c037ebfd35621c6457838" - integrity sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA== - dependencies: - "@octokit/endpoint" "^10.0.0" - "@octokit/request-error" "^6.0.1" - "@octokit/types" "^13.1.0" - universal-user-agent "^7.0.2" - -"@octokit/types@^13.0.0", "@octokit/types@^13.1.0", "@octokit/types@^13.6.0": - version "13.6.1" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-13.6.1.tgz#432fc6c0aaae54318e5b2d3e15c22ac97fc9b15f" - integrity sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g== - dependencies: - "@octokit/openapi-types" "^22.2.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== - -"@pnpm/config.env-replace@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" - integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== - -"@pnpm/network.ca-file@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" - integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== - dependencies: - graceful-fs "4.2.10" - -"@pnpm/npm-conf@^2.1.0": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz#bb375a571a0bd63ab0a23bece33033c683e9b6b0" - integrity sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw== - dependencies: - "@pnpm/config.env-replace" "^1.1.0" - "@pnpm/network.ca-file" "^1.0.1" - config-chain "^1.1.11" - -"@react-hookz/deep-equal@^1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@react-hookz/deep-equal/-/deep-equal-1.0.4.tgz#68a71f36cbc88724b3ce6f4036183778b6e7f282" - integrity sha512-N56fTrAPUDz/R423pag+n6TXWbvlBZDtTehaGFjK0InmN+V2OFWLE/WmORhmn6Ce7dlwH5+tQN1LJFw3ngTJVg== - -"@react-hookz/eslint-config@^2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@react-hookz/eslint-config/-/eslint-config-2.1.5.tgz#6a6c403315b49671099b4449d9ddaab492468a83" - integrity sha512-w32VPgAWNK0LBxGPPuHaJ0CMncfqETOVbSLF6pjoVCrNjlYSPxO5IG6piO9yrkJeCaTX96PVaYg2igOBseVaDg== - dependencies: - "@typescript-eslint/eslint-plugin" "^6.20.0" - "@typescript-eslint/parser" "^6.20.0" - eslint-config-prettier "^9.1.0" - eslint-config-xo "^0.43.1" - eslint-config-xo-react "^0.27.0" - eslint-config-xo-typescript "^1.0.1" - eslint-import-resolver-typescript "^3.6.1" - eslint-plugin-eslint-comments "^3.2.0" - eslint-plugin-import "^2.29.1" - eslint-plugin-jest "^27.6.3" - eslint-plugin-mdx "^3.1.5" - eslint-plugin-n "^16.6.2" - eslint-plugin-no-use-extend-native "^0.5.0" - eslint-plugin-promise "^6.1.1" - eslint-plugin-react "^7.33.2" - eslint-plugin-react-hooks "^4.6.0" - eslint-plugin-unicorn "^50.0.1" - -"@react-hookz/eslint-formatter-gha@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@react-hookz/eslint-formatter-gha/-/eslint-formatter-gha-1.0.1.tgz#1cbd0a398a8b6b738388af430933e699ad29c6fc" - integrity sha512-3fQWSevZuFDExH276MnSW0Q+OZU/tArOlSJhM2nYm81ALn1horXXAsDjVdFX5WQVn5+oF1D95VBUwEW6ABs5DQ== - dependencies: - "@actions/core" "^1.9.1" - -"@rtsao/scc@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" - integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== - -"@sec-ant/readable-stream@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz#60de891bb126abfdc5410fdc6166aca065f10a0c" - integrity sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg== - -"@semantic-release/changelog@^6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@semantic-release/changelog/-/changelog-6.0.3.tgz#6195630ecbeccad174461de727d5f975abc23eeb" - integrity sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag== - dependencies: - "@semantic-release/error" "^3.0.0" - aggregate-error "^3.0.0" - fs-extra "^11.0.0" - lodash "^4.17.4" - -"@semantic-release/commit-analyzer@^12.0.0": - version "12.0.0" - resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-12.0.0.tgz#7219b05ab79a4303c99fc9cd0413d68881599270" - integrity sha512-qG+md5gdes+xa8zP7lIo1fWE17zRdO8yMCaxh9lyL65TQleoSv8WHHOqRURfghTytUh+NpkSyBprQ5hrkxOKVQ== - dependencies: - conventional-changelog-angular "^7.0.0" - conventional-commits-filter "^4.0.0" - conventional-commits-parser "^5.0.0" - debug "^4.0.0" - import-from-esm "^1.0.3" - lodash-es "^4.17.21" - micromatch "^4.0.2" - -"@semantic-release/error@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-3.0.0.tgz#30a3b97bbb5844d695eb22f9d3aa40f6a92770c2" - integrity sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw== - -"@semantic-release/error@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-4.0.0.tgz#692810288239637f74396976a9340fbc0aa9f6f9" - integrity sha512-mgdxrHTLOjOddRVYIYDo0fR3/v61GNN1YGkfbrjuIKg/uMgCd+Qzo3UAXJ+woLQQpos4pl5Esuw5A7AoNlzjUQ== - -"@semantic-release/git@^10.0.1": - version "10.0.1" - resolved "https://registry.yarnpkg.com/@semantic-release/git/-/git-10.0.1.tgz#c646e55d67fae623875bf3a06a634dd434904498" - integrity sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w== - dependencies: - "@semantic-release/error" "^3.0.0" - aggregate-error "^3.0.0" - debug "^4.0.0" - dir-glob "^3.0.0" - execa "^5.0.0" - lodash "^4.17.4" - micromatch "^4.0.0" - p-reduce "^2.0.0" - -"@semantic-release/github@^10.0.0": - version "10.3.5" - resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-10.3.5.tgz#112b6ee41fe78356359aa7ba9a1e98b68c8640fc" - integrity sha512-svvRglGmvqvxjmDgkXhrjf0lC88oZowFhOfifTldbgX9Dzj0inEtMLaC+3/MkDEmxmaQjWmF5Q/0CMIvPNSVdQ== - dependencies: - "@octokit/core" "^6.0.0" - "@octokit/plugin-paginate-rest" "^11.0.0" - "@octokit/plugin-retry" "^7.0.0" - "@octokit/plugin-throttling" "^9.0.0" - "@semantic-release/error" "^4.0.0" - aggregate-error "^5.0.0" - debug "^4.3.4" - dir-glob "^3.0.1" - globby "^14.0.0" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.0" - issue-parser "^7.0.0" - lodash-es "^4.17.21" - mime "^4.0.0" - p-filter "^4.0.0" - url-join "^5.0.0" - -"@semantic-release/github@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-11.0.0.tgz#1cbfed43b96282994a1c480a204179b89b73a387" - integrity sha512-Uon6G6gJD8U1JNvPm7X0j46yxNRJ8Ui6SgK4Zw5Ktu8RgjEft3BGn+l/RX1TTzhhO3/uUcKuqM+/9/ETFxWS/Q== - dependencies: - "@octokit/core" "^6.0.0" - "@octokit/plugin-paginate-rest" "^11.0.0" - "@octokit/plugin-retry" "^7.0.0" - "@octokit/plugin-throttling" "^9.0.0" - "@semantic-release/error" "^4.0.0" - aggregate-error "^5.0.0" - debug "^4.3.4" - dir-glob "^3.0.1" - globby "^14.0.0" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.0" - issue-parser "^7.0.0" - lodash-es "^4.17.21" - mime "^4.0.0" - p-filter "^4.0.0" - url-join "^5.0.0" - -"@semantic-release/npm@^12.0.0": - version "12.0.1" - resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-12.0.1.tgz#ffb47906de95f8dade8fe0480df0a08dbe1b80c9" - integrity sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw== - dependencies: - "@semantic-release/error" "^4.0.0" - aggregate-error "^5.0.0" - execa "^9.0.0" - fs-extra "^11.0.0" - lodash-es "^4.17.21" - nerf-dart "^1.0.0" - normalize-url "^8.0.0" - npm "^10.5.0" - rc "^1.2.8" - read-pkg "^9.0.0" - registry-auth-token "^5.0.0" - semver "^7.1.2" - tempy "^3.0.0" - -"@semantic-release/release-notes-generator@^13.0.0": - version "13.0.0" - resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-13.0.0.tgz#9fb312c234742e2716c09d669d5d786a4daad465" - integrity sha512-LEeZWb340keMYuREMyxrODPXJJ0JOL8D/mCl74B4LdzbxhtXV2LrPN2QBEcGJrlQhoqLO0RhxQb6masHytKw+A== - dependencies: - conventional-changelog-angular "^7.0.0" - conventional-changelog-writer "^7.0.0" - conventional-commits-filter "^4.0.0" - conventional-commits-parser "^5.0.0" - debug "^4.0.0" - get-stream "^7.0.0" - import-from-esm "^1.0.3" - into-stream "^7.0.0" - lodash-es "^4.17.21" - read-pkg-up "^11.0.0" - -"@sigstore/bundle@^2.3.2": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.3.2.tgz#ad4dbb95d665405fd4a7a02c8a073dbd01e4e95e" - integrity sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA== - dependencies: - "@sigstore/protobuf-specs" "^0.3.2" - -"@sigstore/bundle@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-3.0.0.tgz#ffffc750436c6eb8330ead1ca65bc892f893a7c5" - integrity sha512-XDUYX56iMPAn/cdgh/DTJxz5RWmqKV4pwvUAEKEWJl+HzKdCd/24wUa9JYNMlDSCb7SUHAdtksxYX779Nne/Zg== - dependencies: - "@sigstore/protobuf-specs" "^0.3.2" - -"@sigstore/core@^1.0.0", "@sigstore/core@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-1.1.0.tgz#5583d8f7ffe599fa0a89f2bf289301a5af262380" - integrity sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg== - -"@sigstore/core@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-2.0.0.tgz#f888a8e4c8fdaa27848514a281920b6fd8eca955" - integrity sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg== - -"@sigstore/protobuf-specs@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz#5becf88e494a920f548d0163e2978f81b44b7d6f" - integrity sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw== - -"@sigstore/sign@^2.3.2": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.3.2.tgz#d3d01e56d03af96fd5c3a9b9897516b1233fc1c4" - integrity sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA== - dependencies: - "@sigstore/bundle" "^2.3.2" - "@sigstore/core" "^1.0.0" - "@sigstore/protobuf-specs" "^0.3.2" - make-fetch-happen "^13.0.1" - proc-log "^4.2.0" - promise-retry "^2.0.1" - -"@sigstore/sign@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-3.0.0.tgz#70752aaa54dfeafa0b0fbe1f58ebe9fe3d621f8f" - integrity sha512-UjhDMQOkyDoktpXoc5YPJpJK6IooF2gayAr5LvXI4EL7O0vd58okgfRcxuaH+YTdhvb5aa1Q9f+WJ0c2sVuYIw== - dependencies: - "@sigstore/bundle" "^3.0.0" - "@sigstore/core" "^2.0.0" - "@sigstore/protobuf-specs" "^0.3.2" - make-fetch-happen "^14.0.1" - proc-log "^5.0.0" - promise-retry "^2.0.1" - -"@sigstore/tuf@^2.3.4": - version "2.3.4" - resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.4.tgz#da1d2a20144f3b87c0172920cbc8dcc7851ca27c" - integrity sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw== - dependencies: - "@sigstore/protobuf-specs" "^0.3.2" - tuf-js "^2.2.1" - -"@sigstore/tuf@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-3.0.0.tgz#5f657e3052e93cb09e1735ee7f52b7938351278d" - integrity sha512-9Xxy/8U5OFJu7s+OsHzI96IX/OzjF/zj0BSSaWhgJgTqtlBhQIV2xdrQI5qxLD7+CWWDepadnXAxzaZ3u9cvRw== - dependencies: - "@sigstore/protobuf-specs" "^0.3.2" - tuf-js "^3.0.1" - -"@sigstore/verify@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-1.2.1.tgz#c7e60241b432890dcb8bd8322427f6062ef819e1" - integrity sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g== - dependencies: - "@sigstore/bundle" "^2.3.2" - "@sigstore/core" "^1.1.0" - "@sigstore/protobuf-specs" "^0.3.2" - -"@sigstore/verify@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-2.0.0.tgz#4ad96e9234b71b57622c3c446b63bad805351030" - integrity sha512-Ggtq2GsJuxFNUvQzLoXqRwS4ceRfLAJnrIHUDrzAD0GgnOhwujJkKkxM/s5Bako07c3WtAs/sZo5PJq7VHjeDg== - dependencies: - "@sigstore/bundle" "^3.0.0" - "@sigstore/core" "^2.0.0" - "@sigstore/protobuf-specs" "^0.3.2" - -"@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== - -"@sindresorhus/is@^4.6.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - -"@sindresorhus/merge-streams@^2.1.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958" - integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg== - -"@sindresorhus/merge-streams@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz#abb11d99aeb6d27f1b563c38147a72d50058e339" - integrity sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ== - -"@sinonjs/commons@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" - integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.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" "^3.0.0" - -"@swc/core-darwin-arm64@1.7.42": - version "1.7.42" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.42.tgz#a3c59cb3e487f660ca87d6b78e81b2d7193bada9" - integrity sha512-fWhaCs2+8GDRIcjExVDEIfbptVrxDqG8oHkESnXgymmvqTWzWei5SOnPNMS8Q+MYsn/b++Y2bDxkcwmq35Bvxg== - -"@swc/core-darwin-x64@1.7.42": - version "1.7.42" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.7.42.tgz#a4ce0e1ff52a238b6b00e2f73428474a65fa2f7c" - integrity sha512-ZaVHD2bijrlkCyD7NDzLmSK849Jgcx+6DdL4x1dScoz1slJ8GTvLtEu0JOUaaScQwA+cVlhmrmlmi9ssjbRLGQ== - -"@swc/core-linux-arm-gnueabihf@1.7.42": - version "1.7.42" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.42.tgz#cb70c3f26e020ebf1efecbde508936a6e90cdcf9" - integrity sha512-iF0BJj7hVTbY/vmbvyzVTh/0W80+Q4fbOYschdUM3Bsud39TA+lSaPOefOHywkNH58EQ1z3EAxYcJOWNES7GFQ== - -"@swc/core-linux-arm64-gnu@1.7.42": - version "1.7.42" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.42.tgz#93a18284c29788ec2ce7fb0ef821b864a6df122e" - integrity sha512-xGu8j+DOLYTLkVmsfZPJbNPW1EkiWgSucT0nOlz77bLxImukt/0+HVm2hOwHSKuArQ8C3cjahAMY3b/s4VH2ww== - -"@swc/core-linux-arm64-musl@1.7.42": - version "1.7.42" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.42.tgz#c1346dbaf75c72704b0ab7d0cb9db2f1fa060f24" - integrity sha512-qtW3JNO7i1yHEko59xxz+jY38+tYmB96JGzj6XzygMbYJYZDYbrOpXQvKbMGNG3YeTDan7Fp2jD0dlKf7NgDPA== - -"@swc/core-linux-x64-gnu@1.7.42": - version "1.7.42" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.42.tgz#a3c09eaf389030f1317c48511914de9aee6b85fb" - integrity sha512-F9WY1TN+hhhtiEzZjRQziNLt36M5YprMeOBHjsLVNqwgflzleSI7ulgnlQECS8c8zESaXj3ksGduAoJYtPC1cA== - -"@swc/core-linux-x64-musl@1.7.42": - version "1.7.42" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.42.tgz#99a5c4f1e2ec41707dd5c263c286704856527ecd" - integrity sha512-7YMdOaYKLMQ8JGfnmRDwidpLFs/6ka+80zekeM0iCVO48yLrJR36G0QGXzMjKsXI0BPhq+mboZRRENK4JfQnEA== - -"@swc/core-win32-arm64-msvc@1.7.42": - version "1.7.42" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.42.tgz#6803ff002a931604b31260052841a1bf94707fda" - integrity sha512-C5CYWaIZEyqPl5W/EwcJ/mLBJFHVoUEa/IwWi0b4q2fCXcSCktQGwKXOQ+d67GneiZoiq0HasgcdMmMpGS9YRQ== - -"@swc/core-win32-ia32-msvc@1.7.42": - version "1.7.42" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.42.tgz#9379dece3fd5089daf8d0defdbce3b981909a563" - integrity sha512-3j47seZ5pO62mbrqvPe1iwhe2BXnM5q7iB+n2xgA38PCGYt0mnaJafqmpCXm/uYZOCMqSNynaoOWCMMZm4sqtA== - -"@swc/core-win32-x64-msvc@1.7.42": - version "1.7.42" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.42.tgz#f779952389ad91145d71455da6165a779adaa9e0" - integrity sha512-FXl9MdeUogZLGDcLr6QIRdDVkpG0dkN4MLM4dwQ5kcAk+XfKPrQibX6M2kcfhsCx+jtBqtK7hRFReRXPWJZGbA== - -"@swc/core@^1.4.2": - version "1.7.42" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.7.42.tgz#8053e2ede08207d67b3ffef38c1c3d2befeb8848" - integrity sha512-iQrRk3SKndQZ4ptJv1rzeQSiCYQIhMjiO97QXOlCcCoaazOLKPnLnXzU4Kv0FuBFyYfG2FE94BoR0XI2BN02qw== - dependencies: - "@swc/counter" "^0.1.3" - "@swc/types" "^0.1.13" - optionalDependencies: - "@swc/core-darwin-arm64" "1.7.42" - "@swc/core-darwin-x64" "1.7.42" - "@swc/core-linux-arm-gnueabihf" "1.7.42" - "@swc/core-linux-arm64-gnu" "1.7.42" - "@swc/core-linux-arm64-musl" "1.7.42" - "@swc/core-linux-x64-gnu" "1.7.42" - "@swc/core-linux-x64-musl" "1.7.42" - "@swc/core-win32-arm64-msvc" "1.7.42" - "@swc/core-win32-ia32-msvc" "1.7.42" - "@swc/core-win32-x64-msvc" "1.7.42" - -"@swc/counter@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" - integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== - -"@swc/jest@^0.2.36": - version "0.2.37" - resolved "https://registry.yarnpkg.com/@swc/jest/-/jest-0.2.37.tgz#9c2aaf22c87682aa968016e3e4843d1a25cae6bd" - integrity sha512-CR2BHhmXKGxTiFr21DYPRHQunLkX3mNIFGFkxBGji6r9uyIR5zftTOVYj1e0sFNMV2H7mf/+vpaglqaryBtqfQ== - dependencies: - "@jest/create-cache-key-function" "^29.7.0" - "@swc/counter" "^0.1.3" - jsonc-parser "^3.2.0" - -"@swc/types@^0.1.13": - version "0.1.13" - resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.13.tgz#441734f8bfa6e9e738f1c68e98be6da282ecc7db" - integrity sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q== - dependencies: - "@swc/counter" "^0.1.3" - -"@testing-library/react-hooks@^8.0.1": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-8.0.1.tgz#0924bbd5b55e0c0c0502d1754657ada66947ca12" - integrity sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g== - dependencies: - "@babel/runtime" "^7.12.5" - react-error-boundary "^3.1.0" - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - -"@tsconfig/node10@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" - integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@tufjs/canonical-json@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" - integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== - -"@tufjs/models@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.1.tgz#e429714e753b6c2469af3212e7f320a6973c2812" - integrity sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg== - dependencies: - "@tufjs/canonical-json" "2.0.0" - minimatch "^9.0.4" - -"@tufjs/models@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-3.0.1.tgz#5aebb782ebb9e06f071ae7831c1f35b462b0319c" - integrity sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA== - dependencies: - "@tufjs/canonical-json" "2.0.0" - minimatch "^9.0.5" - -"@types/acorn@^4.0.0": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" - integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== - dependencies: - "@types/estree" "*" - -"@types/babel__core@^7.1.14": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" - integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.8" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" - integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - 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.6" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" - integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== - dependencies: - "@babel/types" "^7.20.7" - -"@types/concat-stream@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-2.0.3.tgz#1f5c2ad26525716c181191f7ed53408f78eb758e" - integrity sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ== - dependencies: - "@types/node" "*" - -"@types/conventional-commits-parser@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#8c9d23e0b415b24b91626d07017303755d542dc8" - integrity sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ== - dependencies: - "@types/node" "*" - -"@types/debug@^4.0.0": - version "4.1.12" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" - integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== - dependencies: - "@types/ms" "*" - -"@types/estree-jsx@^1.0.0": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.5.tgz#858a88ea20f34fe65111f005a689fa1ebf70dc18" - integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg== - dependencies: - "@types/estree" "*" - -"@types/estree@*", "@types/estree@^1.0.0": - 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.2", "@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" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" - -"@types/hast@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" - integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== - dependencies: - "@types/unist" "*" - -"@types/is-empty@^1.0.0": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/is-empty/-/is-empty-1.2.3.tgz#a2d55ea8a5ec57bf61e411ba2a9e5132fe4f0899" - integrity sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw== - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - 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.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.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^29.5.12": - version "29.5.14" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.14.tgz#2b910912fa1d6856cadcd0c1f95af7df1d6049e5" - integrity sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - -"@types/js-cookie@^3.0.6": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-3.0.6.tgz#a04ca19e877687bd449f5ad37d33b104b71fdf95" - integrity sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ== - -"@types/jsdom@^20.0.0": - version "20.0.1" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" - integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== - dependencies: - "@types/node" "*" - "@types/tough-cookie" "*" - parse5 "^7.0.0" - -"@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": - 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/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/mdast@^3.0.0": - version "3.0.15" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" - integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== - dependencies: - "@types/unist" "^2" - -"@types/mdast@^4.0.0": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" - integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== - dependencies: - "@types/unist" "*" - -"@types/ms@*": - version "0.7.34" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" - integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== - -"@types/node@*", "@types/node@^22.0.0": - version "22.8.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.8.7.tgz#04ab7a073d95b4a6ee899f235d43f3c320a976f4" - integrity sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q== - dependencies: - undici-types "~6.19.8" - -"@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.3": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" - integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== - -"@types/prop-types@*": - version "15.7.13" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.13.tgz#2af91918ee12d9d32914feb13f5326658461b451" - integrity sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA== - -"@types/react-dom@^18.2.6": - version "18.3.1" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.1.tgz#1e4654c08a9cdcfb6594c780ac59b55aad42fe07" - integrity sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@^18.2.52": - version "18.3.12" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.12.tgz#99419f182ccd69151813b7ee24b792fe08774f60" - integrity sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - -"@types/semver@^7.3.12", "@types/semver@^7.5.0": - version "7.5.8" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" - integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== - -"@types/stack-utils@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" - integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== - -"@types/supports-color@^8.0.0": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-8.1.3.tgz#b769cdce1d1bb1a3fa794e35b62c62acdf93c139" - integrity sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg== - -"@types/tough-cookie@*": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" - integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== - -"@types/unist@*", "@types/unist@^3.0.0": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" - integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== - -"@types/unist@^2", "@types/unist@^2.0.0", "@types/unist@^2.0.2": - version "2.0.11" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" - integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== - -"@types/yargs-parser@*": - 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@^15.0.0": - version "15.0.19" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.19.tgz#328fb89e46109ecbdb70c295d96ff2f46dfd01b9" - integrity sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^17.0.8": - version "17.0.33" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" - integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/eslint-plugin@^6.20.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" - integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/type-utils" "6.21.0" - "@typescript-eslint/utils" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.4" - natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@^6.20.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" - integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== - dependencies: - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - -"@typescript-eslint/type-utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" - integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== - dependencies: - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/utils" "6.21.0" - debug "^4.3.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/types@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== - -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== - -"@typescript-eslint/typescript-estree@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" - integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - semver "^7.5.4" - -"@typescript-eslint/utils@^5.10.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== - dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" - -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== - dependencies: - "@typescript-eslint/types" "6.21.0" - eslint-visitor-keys "^3.4.1" - -"@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== - -JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -abbrev@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" - integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== - -abbrev@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-3.0.0.tgz#c29a6337e167ac61a84b41b80461b29c5c271a27" - integrity sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA== - -acorn-globals@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" - integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== - dependencies: - acorn "^8.1.0" - acorn-walk "^8.0.2" - -acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^8.0.2, acorn-walk@^8.1.1: - version "8.3.4" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" - integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== - dependencies: - acorn "^8.11.0" - -acorn@^8.0.0, acorn@^8.1.0, acorn@^8.11.0, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.8.1, acorn@^8.9.0: - version "8.14.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" - integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== - dependencies: - debug "^4.3.4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -aggregate-error@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-5.0.0.tgz#ffe15045d7521c51c9d618e3d7f37c13f29b3fd3" - integrity sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw== - dependencies: - clean-stack "^5.2.0" - indent-string "^5.0.0" - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv-keywords@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" - integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== - dependencies: - fast-deep-equal "^3.1.3" - -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== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.0, ajv@^8.11.0, ajv@^8.9.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" - integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-escapes@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.0.0.tgz#00fc19f491bbb18e1d481b97868204f92109bfe7" - integrity sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw== - dependencies: - environment "^1.0.0" - -ansi-regex@^5.0.0, ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1, ansi-regex@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" - integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.0.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aproba@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -archy@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== - -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" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -argv-formatter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/argv-formatter/-/argv-formatter-1.0.0.tgz#a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9" - integrity sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw== - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - -array-buffer-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" - integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== - dependencies: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" - -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== - -array-includes@^3.1.6, array-includes@^3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" - integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - is-string "^1.0.7" - -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== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - -array.prototype.findlast@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" - integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-shim-unscopables "^1.0.2" - -array.prototype.findlastindex@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" - integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-shim-unscopables "^1.0.2" - -array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.tosorted@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" - integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.3" - es-errors "^1.3.0" - es-shim-unscopables "^1.0.2" - -arraybuffer.prototype.slice@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" - integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== - dependencies: - array-buffer-byte-length "^1.0.1" - call-bind "^1.0.5" - define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.2.1" - get-intrinsic "^1.2.3" - is-array-buffer "^3.0.4" - is-shared-array-buffer "^1.0.2" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== - -async@^3.2.3: - version "3.2.6" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" - integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -available-typed-arrays@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" - integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - dependencies: - possible-typed-array-names "^1.0.0" - -babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== - dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-loader@^9.1.3: - version "9.2.1" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.2.1.tgz#04c7835db16c246dd19ba0914418f3937797587b" - integrity sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA== - dependencies: - find-cache-dir "^4.0.0" - schema-utils "^4.0.0" - -babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30" - integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-import-attributes" "^7.24.7" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - -babel-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.6.3" - babel-preset-current-node-syntax "^1.0.0" - -bail@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" - integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -before-after-hook@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-3.0.2.tgz#d5665a5fa8b62294a5aa0a499f933f4a1016195d" - integrity sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A== - -bin-links@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-5.0.0.tgz#2b0605b62dd5e1ddab3b92a3c4e24221cae06cca" - integrity sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA== - dependencies: - cmd-shim "^7.0.0" - npm-normalize-package-bin "^4.0.0" - proc-log "^5.0.0" - read-cmd-shim "^5.0.0" - write-file-atomic "^6.0.0" - -binary-extensions@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -bl@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -bottleneck@^2.15.3: - version "2.19.5" - resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" - integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -browserslist@^4.24.0, browserslist@^4.24.2: - version "4.24.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" - integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== - dependencies: - caniuse-lite "^1.0.30001669" - electron-to-chromium "^1.5.41" - node-releases "^2.0.18" - update-browserslist-db "^1.1.1" - -bs-logger@^0.2.6: - 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" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -builtin-modules@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" - integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== - -builtins@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.1.0.tgz#6d85eeb360c4ebc166c3fdef922a15aa7316a5e8" - integrity sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg== - dependencies: - semver "^7.0.0" - -cacache@^18.0.0: - version "18.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.4.tgz#4601d7578dadb59c66044e157d02a3314682d6a5" - integrity sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ== - dependencies: - "@npmcli/fs" "^3.1.0" - fs-minipass "^3.0.0" - glob "^10.2.2" - lru-cache "^10.0.1" - minipass "^7.0.3" - minipass-collect "^2.0.1" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - p-map "^4.0.0" - ssri "^10.0.0" - tar "^6.1.11" - unique-filename "^3.0.0" - -cacache@^19.0.0, cacache@^19.0.1: - version "19.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-19.0.1.tgz#3370cc28a758434c85c2585008bd5bdcff17d6cd" - integrity sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ== - dependencies: - "@npmcli/fs" "^4.0.0" - fs-minipass "^3.0.0" - glob "^10.2.2" - lru-cache "^10.0.1" - minipass "^7.0.3" - minipass-collect "^2.0.1" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - p-map "^7.0.2" - ssri "^12.0.0" - tar "^7.4.3" - unique-filename "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cachedir@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" - integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== - -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001669: - version "1.0.30001677" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz#27c2e2c637e007cfa864a16f7dfe7cde66b38b5f" - integrity sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog== - -capture-exit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" - integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== - dependencies: - rsvp "^4.8.4" - -ccount@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" - integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== - -chalk@^2.3.2, chalk@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^5.3.0, chalk@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -character-entities-html4@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" - integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== - -character-entities-legacy@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" - integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== - -character-entities-legacy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" - integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== - -character-entities@^1.0.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" - integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== - -character-entities@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" - integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== - -character-reference-invalid@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" - integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== - -character-reference-invalid@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" - integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chownr@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4" - integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -ci-info@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" - integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== - -cidr-regex@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-4.1.1.tgz#acbe7ba9f10d658710bddd25baa900509e90125a" - integrity sha512-ekKcVp+iRB9zlKFXyx7io7nINgb0oRjgRdXNEodp1OuxRui8FXr/CA40Tz1voWUp9DPPrMyQKy01vJhDo4N1lw== - dependencies: - ip-regex "^5.0.0" - -cjs-module-lexer@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz#707413784dbb3a72aa11c2f2b042a0bef4004170" - integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -clean-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" - integrity sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw== - dependencies: - escape-string-regexp "^1.0.5" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -clean-stack@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-5.2.0.tgz#c7a0c91939c7caace30a3bf254e8a8ac276d1189" - integrity sha512-TyUIUJgdFnCISzG5zu3291TAsE77ddchd0bepon1VVQrKLGKFED4iXFEDQ24mIPdPBbyE16PK3F8MYE1CmcBEQ== - dependencies: - escape-string-regexp "5.0.0" - -cli-columns@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-4.0.0.tgz#9fe4d65975238d55218c41bd2ed296a7fa555646" - integrity sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ== - dependencies: - string-width "^4.2.3" - strip-ansi "^6.0.1" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-cursor@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" - integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== - dependencies: - restore-cursor "^5.0.0" - -cli-highlight@^2.1.11: - version "2.1.11" - resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" - integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== - dependencies: - chalk "^4.0.0" - highlight.js "^10.7.1" - mz "^2.4.0" - parse5 "^5.1.1" - parse5-htmlparser2-tree-adapter "^6.0.0" - yargs "^16.0.0" - -cli-spinners@^2.5.0: - version "2.9.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" - integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== - -cli-table3@^0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" - integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== - dependencies: - string-width "^4.2.0" - optionalDependencies: - "@colors/colors" "1.5.0" - -cli-truncate@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" - integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== - dependencies: - slice-ansi "^5.0.0" - string-width "^7.0.0" - -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -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.1" - wrap-ansi "^7.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -cmd-shim@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-7.0.0.tgz#23bcbf69fff52172f7e7c02374e18fb215826d95" - integrity sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw== - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - 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== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^2.0.20: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@~12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== - -commitizen@^4.0.3, commitizen@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.3.1.tgz#f0e0e4b7ae3fafc92e444bbb78f2ded5a1d4311a" - integrity sha512-gwAPAVTy/j5YcOOebcCRIijn+mSjWJC+IYKivTu6aG8Ei/scoXgfsMRnuAk6b0GRste2J4NGxVdMN3ZpfNaVaw== - dependencies: - cachedir "2.3.0" - cz-conventional-changelog "3.3.0" - dedent "0.7.0" - detect-indent "6.1.0" - find-node-modules "^2.1.2" - find-root "1.1.0" - fs-extra "9.1.0" - glob "7.2.3" - inquirer "8.2.5" - is-utf8 "^0.2.1" - lodash "4.17.21" - minimist "1.2.7" - strip-bom "4.0.0" - strip-json-comments "3.1.1" - -commitlint@^19.5.0: - version "19.5.0" - resolved "https://registry.yarnpkg.com/commitlint/-/commitlint-19.5.0.tgz#64afe152e3d3537f4765ead1a587ea726264cc81" - integrity sha512-lCtwxgFulvMnCgBc8MVPlVMf+PNOqQSBhHpEnjV2JjEQEAhxjVDtC7IeuEtR+hHpGvHt6CwlLtm3uZNyEby5dQ== - dependencies: - "@commitlint/cli" "^19.5.0" - "@commitlint/types" "^19.5.0" - -common-ancestor-path@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" - integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== - -common-path-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" - integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== - -compare-func@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" - integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== - dependencies: - array-ify "^1.0.0" - dot-prop "^5.1.0" - -component-emitter@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" - integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" - integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.0.2" - typedarray "^0.0.6" - -concurrently@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.0.1.tgz#01e171bf6c7af0c022eb85daef95bff04d8185aa" - integrity sha512-wYKvCd/f54sTXJMSfV6Ln/B8UrfLBKOYa+lzc6CHay3Qek+LorVSBdMVfyewFhRbH0Rbabsk4D+3PL/VjQ5gzg== - dependencies: - chalk "^4.1.2" - lodash "^4.17.21" - rxjs "^7.8.1" - shell-quote "^1.8.1" - supports-color "^8.1.1" - tree-kill "^1.2.2" - yargs "^17.7.2" - -config-chain@^1.1.11: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -confusing-browser-globals@1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" - integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== - -conventional-changelog-angular@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" - integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== - dependencies: - compare-func "^2.0.0" - -conventional-changelog-conventionalcommits@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz#aa5da0f1b2543094889e8cf7616ebe1a8f5c70d5" - integrity sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w== - dependencies: - compare-func "^2.0.0" - -conventional-changelog-writer@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz#e64ef74fa8e773cab4124af217f3f02b29eb0a9c" - integrity sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA== - dependencies: - conventional-commits-filter "^4.0.0" - handlebars "^4.7.7" - json-stringify-safe "^5.0.1" - meow "^12.0.1" - semver "^7.5.2" - split2 "^4.0.0" - -conventional-commit-types@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz#7c9214e58eae93e85dd66dbfbafe7e4fffa2365b" - integrity sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg== - -conventional-commits-filter@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz#845d713e48dc7d1520b84ec182e2773c10c7bf7f" - integrity sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A== - -conventional-commits-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#57f3594b81ad54d40c1b4280f04554df28627d9a" - integrity sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA== - dependencies: - JSONStream "^1.3.5" - is-text-path "^2.0.0" - meow "^12.0.1" - split2 "^4.0.0" - -convert-hrtime@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-5.0.0.tgz#f2131236d4598b95de856926a67100a0a97e9fa3" - integrity sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg== - -convert-source-map@^1.4.0, convert-source-map@^1.6.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== - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== - -core-js-compat@^3.34.0: - version "3.39.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.39.0.tgz#b12dccb495f2601dc860bdbe7b4e3ffa8ba63f61" - integrity sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw== - dependencies: - browserslist "^4.24.2" - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -cosmiconfig-typescript-loader@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.1.0.tgz#d8d02bff04e63faa2dc794d618168bd764c704be" - integrity sha512-7PtBB+6FdsOvZyJtlF3hEPpACq7RQX6BVGsgC7/lfVXnKMvNCu/XY3ykreqG5w/rBNdu2z8LCIKoF3kpHHdHlA== - dependencies: - jiti "^1.21.6" - -cosmiconfig@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" - integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== - dependencies: - env-paths "^2.2.1" - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - -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" - -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@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -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" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -crypto-random-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" - integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== - dependencies: - type-fest "^1.0.1" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -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" - -csstype@^3.0.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== - -cz-conventional-changelog@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz#9246947c90404149b3fe2cf7ee91acad3b7d22d2" - integrity sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw== - dependencies: - chalk "^2.4.1" - commitizen "^4.0.3" - conventional-commit-types "^3.0.0" - lodash.map "^4.5.1" - longest "^2.0.1" - word-wrap "^1.0.3" - optionalDependencies: - "@commitlint/load" ">6.1.1" - -dargs@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-8.1.0.tgz#a34859ea509cbce45485e5aa356fef70bfcc7272" - integrity sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw== - -data-urls@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - -data-view-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" - integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -data-view-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" - integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -data-view-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" - integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.3.6, debug@~4.3.6: - version "4.3.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - -debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decimal.js@^10.4.2: - version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== - -decode-named-character-reference@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" - integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== - dependencies: - character-entities "^2.0.0" - -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - -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.5.3" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" - integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - 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== - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -define-data-property@^1.0.1, define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - -define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -dequal@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== - -detect-indent@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - -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== - -devlop@^1.0.0, devlop@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" - integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== - dependencies: - dequal "^2.0.0" - -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== - -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== - -diff@^5.0.0, diff@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" - integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== - -dir-glob@^3.0.0, 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@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -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" - -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - -dot-prop@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -duplexer2@~0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== - dependencies: - readable-stream "^2.0.2" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -ejs@^3.1.10: - version "3.1.10" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" - integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== - dependencies: - jake "^10.8.5" - -electron-to-chromium@^1.5.41: - version "1.5.50" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz#d9ba818da7b2b5ef1f3dd32bce7046feb7e93234" - integrity sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw== - -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@^10.2.1, emoji-regex@^10.3.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.4.0.tgz#03553afea80b3975749cfcb36f776ca268e413d4" - integrity sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -emojilib@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/emojilib/-/emojilib-2.4.0.tgz#ac518a8bb0d5f76dda57289ccb2fdf9d39ae721e" - integrity sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== - -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -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" - -enhanced-resolve@^5.15.0: - version "5.17.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" - integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -entities@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -env-ci@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-11.1.0.tgz#b26eeb692f76c1f69ddc1fb2d4a3d371088a54f9" - integrity sha512-Z8dnwSDbV1XYM9SBF2J0GcNVvmfmfh3a49qddGIROhBoVro6MZVTji15z/sJbQ2ko2ei8n988EU1wzoLU/tF+g== - dependencies: - execa "^8.0.0" - java-properties "^1.0.2" - -env-paths@^2.2.0, env-paths@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -environment@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" - integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== - -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -error-ex@^1.3.1, error-ex@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: - version "1.23.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" - integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== - dependencies: - array-buffer-byte-length "^1.0.1" - arraybuffer.prototype.slice "^1.0.3" - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - data-view-buffer "^1.0.1" - data-view-byte-length "^1.0.1" - data-view-byte-offset "^1.0.0" - es-define-property "^1.0.0" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-set-tostringtag "^2.0.3" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.4" - get-symbol-description "^1.0.2" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" - hasown "^2.0.2" - internal-slot "^1.0.7" - is-array-buffer "^3.0.4" - is-callable "^1.2.7" - is-data-view "^1.0.1" - is-negative-zero "^2.0.3" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.3" - is-string "^1.0.7" - is-typed-array "^1.1.13" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.5" - regexp.prototype.flags "^1.5.2" - safe-array-concat "^1.1.2" - safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.9" - string.prototype.trimend "^1.0.8" - string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.2" - typed-array-byte-length "^1.0.1" - typed-array-byte-offset "^1.0.2" - typed-array-length "^1.0.6" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.15" - -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-errors@^1.2.1, es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-iterator-helpers@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz#f6d745d342aea214fe09497e7152170dc333a7a6" - integrity sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.3" - es-errors "^1.3.0" - es-set-tostringtag "^2.0.3" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - globalthis "^1.0.4" - has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" - internal-slot "^1.0.7" - iterator.prototype "^1.1.3" - safe-array-concat "^1.1.2" - -es-object-atoms@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" - integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== - dependencies: - es-errors "^1.3.0" - -es-set-tostringtag@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" - integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== - dependencies: - get-intrinsic "^1.2.4" - has-tostringtag "^1.0.2" - hasown "^2.0.1" - -es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.1.1, escalade@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-string-regexp@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -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 sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "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.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - -eslint-compat-utils@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz#7fc92b776d185a70c4070d03fd26fde3d59652e4" - integrity sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q== - dependencies: - semver "^7.5.4" - -eslint-config-prettier@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== - -eslint-config-xo-react@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/eslint-config-xo-react/-/eslint-config-xo-react-0.27.0.tgz#aeb7593bf3d8fb9fc7fecfcbd7240f0daddb5cb0" - integrity sha512-wiV215xQIn71XZyyVfaOXHaFpR1B14IJttwOjMi/eqUK1s+ojJdHr7eHqTLaGUfh6FKgWha1QNwePlIXx7mBUg== - -eslint-config-xo-typescript@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/eslint-config-xo-typescript/-/eslint-config-xo-typescript-1.0.1.tgz#90a91a4dc2135ea93ef3081ecf1945303ab2bc60" - integrity sha512-vPQssnRSUgBFOEfB/KY12CXwltwFSn4RSCfa+w7gjBC2PFQ7Yfgmyei+1XUZ3K+8LRGef2NMJUcxts7PldhDjg== - -eslint-config-xo@^0.43.1: - version "0.43.1" - resolved "https://registry.yarnpkg.com/eslint-config-xo/-/eslint-config-xo-0.43.1.tgz#c2ac8993f6e429048c813f599265d1636a0bc060" - integrity sha512-azv1L2PysRA0NkZOgbndUpN+581L7wPqkgJOgxxw3hxwXAbJgD6Hqb/SjHRiACifXt/AvxCzE/jIKFAlI7XjvQ== - dependencies: - confusing-browser-globals "1.0.11" - -eslint-import-resolver-node@^0.3.9: - version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== - dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" - -eslint-import-resolver-typescript@^3.6.1: - version "3.6.3" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz#bb8e388f6afc0f940ce5d2c5fd4a3d147f038d9e" - integrity sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA== - dependencies: - "@nolyfill/is-core-module" "1.0.39" - debug "^4.3.5" - enhanced-resolve "^5.15.0" - eslint-module-utils "^2.8.1" - fast-glob "^3.3.2" - get-tsconfig "^4.7.5" - is-bun-module "^1.0.2" - is-glob "^4.0.3" - -eslint-mdx@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/eslint-mdx/-/eslint-mdx-3.1.5.tgz#e0276cad5649a4a174ffb27a7fbca83be7f580cb" - integrity sha512-ynztX0k7CQ3iDL7fDEIeg3g0O/d6QPv7IBI9fdYLhXp5fAp0fi8X22xF/D3+Pk0f90R27uwqa1clHpay6t0l8Q== - dependencies: - acorn "^8.11.3" - acorn-jsx "^5.3.2" - espree "^9.6.1" - estree-util-visit "^2.0.0" - remark-mdx "^3.0.0" - remark-parse "^11.0.0" - remark-stringify "^11.0.0" - synckit "^0.9.0" - tslib "^2.6.2" - unified "^11.0.4" - unified-engine "^11.2.0" - unist-util-visit "^5.0.0" - uvu "^0.5.6" - vfile "^6.0.1" - -eslint-module-utils@^2.12.0, eslint-module-utils@^2.8.1: - version "2.12.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b" - integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== - dependencies: - debug "^3.2.7" - -eslint-plugin-es-x@^7.5.0: - version "7.8.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz#a207aa08da37a7923f2a9599e6d3eb73f3f92b74" - integrity sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ== - dependencies: - "@eslint-community/eslint-utils" "^4.1.2" - "@eslint-community/regexpp" "^4.11.0" - eslint-compat-utils "^0.5.1" - -eslint-plugin-eslint-comments@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz#9e1cd7b4413526abb313933071d7aba05ca12ffa" - integrity sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ== - dependencies: - escape-string-regexp "^1.0.5" - ignore "^5.0.5" - -eslint-plugin-import@^2.29.1: - version "2.31.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7" - integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== - dependencies: - "@rtsao/scc" "^1.1.0" - array-includes "^3.1.8" - array.prototype.findlastindex "^1.2.5" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.12.0" - hasown "^2.0.2" - is-core-module "^2.15.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.8" - object.groupby "^1.0.3" - object.values "^1.2.0" - semver "^6.3.1" - string.prototype.trimend "^1.0.8" - tsconfig-paths "^3.15.0" - -eslint-plugin-jest@^27.6.3: - version "27.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz#7c98a33605e1d8b8442ace092b60e9919730000b" - integrity sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug== - dependencies: - "@typescript-eslint/utils" "^5.10.0" - -eslint-plugin-markdown@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz#fc6765bdb5f82a75e2438d7fac619602f2abc38c" - integrity sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A== - dependencies: - mdast-util-from-markdown "^0.8.5" - -eslint-plugin-mdx@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-mdx/-/eslint-plugin-mdx-3.1.5.tgz#8f20d899c24272c0d471715c1f80d1332ec933c4" - integrity sha512-lUE7tP7IrIRHU3gTtASDe5u4YM2SvQveYVJfuo82yn3MLh/B/v05FNySURCK4aIxIYF1QYo3IRemQG/lyQzpAg== - dependencies: - eslint-mdx "^3.1.5" - eslint-plugin-markdown "^3.0.1" - remark-mdx "^3.0.0" - remark-parse "^11.0.0" - remark-stringify "^11.0.0" - tslib "^2.6.2" - unified "^11.0.4" - vfile "^6.0.1" - -eslint-plugin-n@^16.6.2: - version "16.6.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz#6a60a1a376870064c906742272074d5d0b412b0b" - integrity sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - builtins "^5.0.1" - eslint-plugin-es-x "^7.5.0" - get-tsconfig "^4.7.0" - globals "^13.24.0" - ignore "^5.2.4" - is-builtin-module "^3.2.1" - is-core-module "^2.12.1" - minimatch "^3.1.2" - resolve "^1.22.2" - semver "^7.5.3" - -eslint-plugin-no-use-extend-native@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.5.0.tgz#d6855e3a823a819b467cf7df56adca57de741bf9" - integrity sha512-dBNjs8hor8rJgeXLH4HTut5eD3RGWf9JUsadIfuL7UosVQ/dnvOKwxEcRrXrFxrMZ8llUVWT+hOimxJABsAUzQ== - dependencies: - is-get-set-prop "^1.0.0" - is-js-type "^2.0.0" - is-obj-prop "^1.0.0" - is-proto-prop "^2.0.0" - -eslint-plugin-prettier@^5.1.3: - version "5.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz#d1c8f972d8f60e414c25465c163d16f209411f95" - integrity sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.9.1" - -eslint-plugin-promise@^6.1.1: - version "6.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz#acd3fd7d55cead7a10f92cf698f36c0aafcd717a" - integrity sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ== - -eslint-plugin-react-hooks@^4.6.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" - integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== - -eslint-plugin-react@^7.33.2: - version "7.37.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz#cd0935987876ba2900df2f58339f6d92305acc7a" - integrity sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w== - dependencies: - array-includes "^3.1.8" - array.prototype.findlast "^1.2.5" - array.prototype.flatmap "^1.3.2" - array.prototype.tosorted "^1.1.4" - doctrine "^2.1.0" - es-iterator-helpers "^1.1.0" - estraverse "^5.3.0" - hasown "^2.0.2" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.8" - object.fromentries "^2.0.8" - object.values "^1.2.0" - prop-types "^15.8.1" - resolve "^2.0.0-next.5" - semver "^6.3.1" - string.prototype.matchall "^4.0.11" - string.prototype.repeat "^1.0.0" - -eslint-plugin-unicorn@^50.0.1: - version "50.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-50.0.1.tgz#e539cdb02dfd893c603536264c4ed9505b70e3bf" - integrity sha512-KxenCZxqSYW0GWHH18okDlOQcpezcitm5aOSz6EnobyJ6BIByiPDviQRjJIUAjG/tMN11958MxaQ+qCoU6lfDA== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - "@eslint-community/eslint-utils" "^4.4.0" - "@eslint/eslintrc" "^2.1.4" - ci-info "^4.0.0" - clean-regexp "^1.0.0" - core-js-compat "^3.34.0" - esquery "^1.5.0" - indent-string "^4.0.0" - is-builtin-module "^3.2.1" - jsesc "^3.0.2" - pluralize "^8.0.0" - read-pkg-up "^7.0.1" - regexp-tree "^0.1.27" - regjsparser "^0.10.0" - semver "^7.5.4" - strip-indent "^3.0.0" - -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.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, 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.57.0: - version "8.57.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" - integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.1" - "@humanwhocodes/config-array" "^0.13.0" - "@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" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - 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" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - 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== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esprima@^4.0.0, esprima@^4.0.1: - 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, 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" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - 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, estraverse@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-util-is-identifier-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz#0b5ef4c4ff13508b34dcd01ecfa945f61fce5dbd" - integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== - -estree-util-visit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-2.0.0.tgz#13a9a9f40ff50ed0c022f831ddf4b58d05446feb" - integrity sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/unist" "^3.0.0" - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -exec-sh@^0.3.2: - version "0.3.6" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" - integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^8.0.0, execa@~8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" - integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^8.0.1" - human-signals "^5.0.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^4.1.0" - strip-final-newline "^3.0.0" - -execa@^9.0.0: - version "9.5.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-9.5.1.tgz#ab9b68073245e1111bba359962a34fcdb28deef2" - integrity sha512-QY5PPtSonnGwhhHDNI7+3RvY285c7iuJFFB+lU+oEzMY/gEGJ808owqJsrr8Otd1E/x07po1LkUBmdAc5duPAg== - dependencies: - "@sindresorhus/merge-streams" "^4.0.0" - cross-spawn "^7.0.3" - figures "^6.1.0" - get-stream "^9.0.0" - human-signals "^8.0.0" - is-plain-obj "^4.1.0" - is-stream "^4.0.1" - npm-run-path "^6.0.0" - pretty-ms "^9.0.0" - signal-exit "^4.1.0" - strip-final-newline "^4.0.0" - yoctocolors "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== - dependencies: - homedir-polyfill "^1.0.1" - -expect@^29.0.0, expect@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - -exponential-backoff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" - integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "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-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.2.9, fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - 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.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-uri@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.3.tgz#892a1c91802d5d7860de728f18608a0573142241" - integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw== - -fastest-levenshtein@^1.0.16: - version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - -fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== - 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" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== - dependencies: - escape-string-regexp "^1.0.5" - -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - -figures@^6.0.0, figures@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-6.1.0.tgz#935479f51865fa7479f6fa94fc6fc7ac14e62c4a" - integrity sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg== - dependencies: - is-unicode-supported "^2.0.0" - -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== - dependencies: - flat-cache "^3.0.4" - -filelist@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -find-cache-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" - integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== - dependencies: - common-path-prefix "^3.0.0" - pkg-dir "^7.0.0" - -find-node-modules@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-2.1.3.tgz#3c976cff2ca29ee94b4f9eafc613987fc4c0ee44" - integrity sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg== - dependencies: - findup-sync "^4.0.0" - merge "^2.1.1" - -find-root@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== - -find-up-simple@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-up-simple/-/find-up-simple-1.0.0.tgz#21d035fde9fdbd56c8f4d2f63f32fd93a1cfc368" - integrity sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw== - -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== - dependencies: - locate-path "^2.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - 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" - -find-up@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" - integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== - dependencies: - locate-path "^7.1.0" - path-exists "^5.0.0" - -find-up@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-7.0.0.tgz#e8dec1455f74f78d888ad65bf7ca13dd2b4e66fb" - integrity sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g== - dependencies: - locate-path "^7.2.0" - path-exists "^5.0.0" - unicorn-magic "^0.1.0" - -find-versions@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-6.0.0.tgz#fda285d3bb7c0c098f09e0727c54d31735f0c7d1" - integrity sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA== - dependencies: - semver-regex "^4.0.5" - super-regex "^1.0.0" - -findup-sync@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" - integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^4.0.2" - resolve-dir "^1.0.1" - -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== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" - integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== - -foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -form-data@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48" - integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== - dependencies: - map-cache "^0.2.2" - -from2@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^11.0.0: - version "11.2.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" - integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-minipass@^3.0.0, fs-minipass@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" - integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== - dependencies: - minipass "^7.0.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^2.1.2, fsevents@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -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== - -function-timeout@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/function-timeout/-/function-timeout-1.0.2.tgz#e5a7b6ffa523756ff20e1231bbe37b5f373aadd5" - integrity sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA== - -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -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" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-east-asian-width@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz#21b4071ee58ed04ee0db653371b55b4299875389" - integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ== - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-set-props@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-set-props/-/get-set-props-0.1.0.tgz#998475c178445686d0b32246da5df8dbcfbe8ea3" - integrity sha512-7oKuKzAGKj0ag+eWZwcGw2fjiZ78tXnXQoBgY0aU7ZOxTu4bB7hSuQSDgtKy978EDH062P5FmD2EWiDpQS9K9Q== - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - 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" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-stream@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-7.0.1.tgz#1664dfe7d1678540ea6a4da3ae7cd59bf4e4a91e" - integrity sha512-3M8C1EOFN6r8AMUhwUAACIoXZJEOufDU5+0gFFN5uNs6XYOralD2Pqkl7m046va6x77FwposWXbAhPPIOus7mQ== - -get-stream@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" - integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== - -get-stream@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-9.0.1.tgz#95157d21df8eb90d1647102b63039b1df60ebd27" - integrity sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA== - dependencies: - "@sec-ant/readable-stream" "^0.4.1" - is-stream "^4.0.1" - -get-symbol-description@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" - integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== - dependencies: - call-bind "^1.0.5" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - -get-tsconfig@^4.7.0, get-tsconfig@^4.7.5: - version "4.8.1" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471" - integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg== - dependencies: - resolve-pkg-maps "^1.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== - -git-log-parser@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/git-log-parser/-/git-log-parser-1.2.1.tgz#44355787b37af7560dcc4ddc01cb53b5d139cc28" - integrity sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ== - dependencies: - argv-formatter "~1.0.0" - spawn-error-forwarder "~1.0.0" - split2 "~1.0.0" - stream-combiner2 "~1.1.1" - through2 "~2.0.0" - traverse "0.6.8" - -git-raw-commits@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-4.0.0.tgz#b212fd2bff9726d27c1283a1157e829490593285" - integrity sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ== - dependencies: - dargs "^8.0.0" - meow "^12.0.1" - split2 "^4.0.0" - -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.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== - dependencies: - is-glob "^4.0.3" - -glob@7.2.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - 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.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^10.0.0, glob@^10.2.2, glob@^10.3.10, glob@^10.3.7, glob@^10.4.5: - version "10.4.5" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" - integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== - dependencies: - foreground-child "^3.1.0" - jackspeak "^3.1.2" - minimatch "^9.0.4" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^1.11.1" - -global-directory@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/global-directory/-/global-directory-4.0.1.tgz#4d7ac7cfd2cb73f304c53b8810891748df5e361e" - integrity sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q== - dependencies: - ini "4.1.1" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -globals@^11.1.0: - version "11.12.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, globals@^13.24.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3, globalthis@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" - integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== - dependencies: - define-properties "^1.2.1" - gopd "^1.0.1" - -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" - -globby@^14.0.0: - version "14.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.2.tgz#06554a54ccfe9264e5a9ff8eded46aa1e306482f" - integrity sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw== - dependencies: - "@sindresorhus/merge-streams" "^2.1.0" - fast-glob "^3.3.2" - ignore "^5.2.4" - path-type "^5.0.0" - slash "^5.1.0" - unicorn-magic "^0.1.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@4.2.10: - version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - 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" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== - -handlebars@^4.7.7: - version "4.7.8" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" - integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.2" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-proto@^1.0.1, has-proto@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" - integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -highlight.js@^10.7.1: - version "10.7.3" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" - integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -hook-std@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/hook-std/-/hook-std-3.0.0.tgz#47038a01981e07ce9d83a6a3b2eb98cad0f7bd58" - integrity sha512-jHRQzjSDzMtFy34AGj1DN+vq54WVuhSvKgrHf0OMiFQTwDD4L/qqofVEWjLOBMTn5+lCD3fPg32W9yOfnEJTTw== - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz#9b751acac097757667f30114607ef7b661ff4f17" - integrity sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w== - dependencies: - lru-cache "^10.0.1" - -hosted-git-info@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-8.0.0.tgz#b20f1d55d492eb18d70a252d456a2158aab9f244" - integrity sha512-4nw3vOVR+vHUOT8+U4giwe2tcGv+R3pwwRidUe67DoMBTjhrfr6rZYJVVwdkBE+Um050SG+X9tf0Jo4fOpn01w== - dependencies: - lru-cache "^10.0.1" - -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - -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-cache-semantics@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== - -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -http-proxy-agent@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" - integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== - dependencies: - agent-base "^7.1.0" - debug "^4.3.4" - -https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" - integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== - dependencies: - agent-base "^7.0.2" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" - integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== - -human-signals@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-8.0.0.tgz#2d3d63481c7c2319f0373428b01ffe30da6df852" - integrity sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA== - -husky@^9.0.11: - version "9.1.6" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.6.tgz#e23aa996b6203ab33534bdc82306b0cf2cb07d6c" - integrity sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A== - -iconv-lite@0.6.3, iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -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" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore-walk@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-7.0.0.tgz#8350e475cf4375969c12eb49618b3fd9cca6704f" - integrity sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ== - dependencies: - minimatch "^9.0.0" - -ignore@^5.0.5, ignore@^5.2.0, ignore@^5.2.4: - version "5.3.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" - integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - -ignore@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-6.0.2.tgz#77cccb72a55796af1b6d2f9eb14fa326d24f4283" - integrity sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A== - -import-fresh@^3.2.1, import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from-esm@^1.0.3, import-from-esm@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/import-from-esm/-/import-from-esm-1.3.4.tgz#39e97c84085e308fe66cf872a667046b45449df0" - integrity sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg== - dependencies: - debug "^4.3.4" - import-meta-resolve "^4.0.0" - -import-local@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" - integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -import-meta-resolve@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" - integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -indent-string@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" - integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== - -index-to-position@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/index-to-position/-/index-to-position-0.1.2.tgz#e11bfe995ca4d8eddb1ec43274488f3c201a7f09" - integrity sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" - integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== - -ini@^1.3.4, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -ini@^4.1.2, ini@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.3.tgz#4c359675a6071a46985eb39b14e4a2c0ec98a795" - integrity sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg== - -ini@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-5.0.0.tgz#a7a4615339843d9a8ccc2d85c9d81cf93ffbc638" - integrity sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw== - -init-package-json@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-7.0.1.tgz#8f4580bbf427f015348727f215a39f42547ee208" - integrity sha512-8KZtk/53ReI2T2f6z2hl5ql6xKLjDexNw7DUqTdR8f+Mo8WZmBjjkH6DrTfBjmW0j3Tqx+j3t8creN0O890+0A== - dependencies: - "@npmcli/package-json" "^6.0.0" - npm-package-arg "^12.0.0" - promzard "^2.0.0" - read "^4.0.0" - semver "^7.3.5" - validate-npm-package-license "^3.0.4" - validate-npm-package-name "^6.0.0" - -inquirer@8.2.5: - version "8.2.5" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" - integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.21" - mute-stream "0.0.8" - ora "^5.4.1" - run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" - through "^2.3.6" - wrap-ansi "^7.0.0" - -internal-slot@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" - integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== - dependencies: - es-errors "^1.3.0" - hasown "^2.0.0" - side-channel "^1.0.4" - -into-stream@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-7.0.0.tgz#d1a211e146be8acfdb84dabcbf00fe8205e72936" - integrity sha512-2dYz766i9HprMBasCMvHMuazJ7u4WzhJwo5kb3iPSiW/iRYV6uPari3zHoqZlnuaR7V1bEiNMxikhp37rdBXbw== - dependencies: - from2 "^2.3.0" - p-is-promise "^3.0.0" - -ip-address@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" - integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== - dependencies: - jsbn "1.1.0" - sprintf-js "^1.1.3" - -ip-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-5.0.0.tgz#cd313b2ae9c80c07bd3851e12bf4fa4dc5480632" - integrity sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw== - -is-accessor-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" - integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== - dependencies: - hasown "^2.0.0" - -is-alphabetical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" - integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== - -is-alphabetical@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" - integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== - -is-alphanumerical@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" - integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== - dependencies: - is-alphabetical "^1.0.0" - is-decimal "^1.0.0" - -is-alphanumerical@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" - integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== - dependencies: - is-alphabetical "^2.0.0" - is-decimal "^2.0.0" - -is-array-buffer@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" - integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-async-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" - integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== - dependencies: - has-tostringtag "^1.0.0" - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-builtin-module@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" - integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== - dependencies: - builtin-modules "^3.3.0" - -is-bun-module@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-1.2.1.tgz#495e706f42e29f086fd5fe1ac3c51f106062b9fc" - integrity sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q== - dependencies: - semver "^7.6.3" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-cidr@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-5.1.0.tgz#36f2d059f43f9b14f132745a2eec18c996df2f35" - integrity sha512-OkVS+Ht2ssF27d48gZdB+ho1yND1VbkJRKKS6Pc1/Cw7uqkd9IOJg8/bTwBDQL6tfBhSdguPRnlGiE8pU/X5NQ== - dependencies: - cidr-regex "^4.1.1" - -is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" - integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== - dependencies: - hasown "^2.0.2" - -is-data-descriptor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" - integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== - dependencies: - hasown "^2.0.0" - -is-data-view@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" - integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== - dependencies: - is-typed-array "^1.1.13" - -is-date-object@^1.0.1, is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-decimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" - integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== - -is-decimal@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" - integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== - -is-descriptor@^0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" - integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== - dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" - integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== - dependencies: - is-accessor-descriptor "^1.0.1" - is-data-descriptor "^1.0.1" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-empty@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b" - integrity sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w== - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-finalizationregistry@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" - integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== - dependencies: - call-bind "^1.0.2" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - -is-fullwidth-code-point@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" - integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== - dependencies: - get-east-asian-width "^1.0.0" - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-generator-function@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-get-set-prop@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-get-set-prop/-/is-get-set-prop-1.0.0.tgz#2731877e4d78a6a69edcce6bb9d68b0779e76312" - integrity sha512-DvAYZ1ZgGUz4lzxKMPYlt08qAUqyG9ckSg2pIjfvcQ7+pkVNUHk8yVLXOnCLe5WKXhLop8oorWFBJHpwWQpszQ== - dependencies: - get-set-props "^0.1.0" - lowercase-keys "^1.0.0" - -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== - dependencies: - is-extglob "^2.1.1" - -is-hexadecimal@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" - integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== - -is-hexadecimal@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" - integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-js-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-js-type/-/is-js-type-2.0.0.tgz#73617006d659b4eb4729bba747d28782df0f7e22" - integrity sha512-Aj13l47+uyTjlQNHtXBV8Cji3jb037vxwMWCgopRR8h6xocgBGW3qG8qGlIOEmbXQtkKShKuBM9e8AA1OeQ+xw== - dependencies: - js-types "^1.0.0" - -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== - -is-map@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" - integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== - -is-negative-zero@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" - integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj-prop@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-obj-prop/-/is-obj-prop-1.0.0.tgz#b34de79c450b8d7c73ab2cdf67dc875adb85f80e" - integrity sha512-5Idb61slRlJlsAzi0Wsfwbp+zZY+9LXKUAZpvT/1ySw+NxKLRWfa0Bzj+wXI3fX5O9hiddm5c3DAaRSNP/yl2w== - dependencies: - lowercase-keys "^1.0.0" - obj-props "^1.0.0" - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -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-plain-obj@^4.0.0, is-plain-obj@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" - integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -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-proto-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-proto-prop/-/is-proto-prop-2.0.0.tgz#99ab2863462e44090fd083efd1929058f9d935e1" - integrity sha512-jl3NbQ/fGLv5Jhan4uX+Ge9ohnemqyblWVVCpAvtTQzNFvV2xhJq+esnkIbYQ9F1nITXoLfDDQLp7LBw/zzncg== - dependencies: - lowercase-keys "^1.0.0" - proto-props "^2.0.0" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-set@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" - integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== - -is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" - integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== - dependencies: - call-bind "^1.0.7" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -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-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-stream@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-4.0.1.tgz#375cf891e16d2e4baec250b85926cffc14720d9b" - integrity sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-text-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" - integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== - dependencies: - text-extensions "^2.0.0" - -is-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" - integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== - dependencies: - which-typed-array "^1.1.14" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-unicode-supported@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz#09f0ab0de6d3744d48d265ebb98f65d11f2a9b3a" - integrity sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ== - -is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== - -is-weakmap@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" - integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-weakset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" - integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== - dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isexe@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" - integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -issue-parser@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-7.0.1.tgz#8a053e5a4952c75bb216204e454b4fc7d4cc9637" - integrity sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg== - dependencies: - lodash.capitalize "^4.2.1" - lodash.escaperegexp "^4.1.2" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.uniqby "^4.7.0" - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - 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@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.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== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-instrument@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" - integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== - dependencies: - "@babel/core" "^7.23.9" - "@babel/parser" "^7.23.9" - "@istanbuljs/schema" "^0.1.3" - istanbul-lib-coverage "^3.2.0" - semver "^7.5.4" - -istanbul-lib-report@^3.0.0: - version "3.0.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 "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: - version "3.1.7" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" - integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -iterator.prototype@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.3.tgz#016c2abe0be3bbdb8319852884f60908ac62bf9c" - integrity sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ== - dependencies: - define-properties "^1.2.1" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - reflect.getprototypeof "^1.0.4" - set-function-name "^2.0.1" - -jackspeak@^3.1.2: - version "3.4.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" - integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jake@^10.8.5: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" - integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.4" - minimatch "^3.1.2" - -java-properties@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" - integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== - -jest-changed-files@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" - integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== - dependencies: - execa "^5.0.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - -jest-circus@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" - integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "^29.7.0" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - pretty-format "^29.7.0" - pure-rand "^6.0.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" - integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== - dependencies: - "@jest/core" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - chalk "^4.0.0" - create-jest "^29.7.0" - exit "^0.1.2" - import-local "^3.0.2" - jest-config "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - yargs "^17.3.1" - -jest-config@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" - integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.7.0" - "@jest/types" "^29.6.3" - babel-jest "^29.7.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.7.0" - jest-environment-node "^29.7.0" - jest-get-type "^29.6.3" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-runner "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^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.7.0" - -jest-docblock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" - integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== - dependencies: - detect-newline "^3.0.0" - -jest-each@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" - integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - jest-get-type "^29.6.3" - jest-util "^29.7.0" - pretty-format "^29.7.0" - -jest-environment-jsdom@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" - integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/jsdom" "^20.0.0" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - jsdom "^20.0.0" - -jest-environment-node@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -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@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== - dependencies: - "@jest/types" "^26.6.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.1.2" - -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== - dependencies: - "@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.6.3" - 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.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" - integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== - dependencies: - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== - dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" - slash "^3.0.0" - stack-utils "^2.0.2" - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-util "^29.7.0" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== - -jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== - -jest-resolve-dependencies@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" - integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== - dependencies: - jest-regex-util "^29.6.3" - jest-snapshot "^29.7.0" - -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" - slash "^3.0.0" - -jest-resolve@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" - integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.7.0" - jest-validate "^29.7.0" - resolve "^1.20.0" - resolve.exports "^2.0.0" - slash "^3.0.0" - -jest-runner@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" - integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== - dependencies: - "@jest/console" "^29.7.0" - "@jest/environment" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.7.0" - jest-environment-node "^29.7.0" - jest-haste-map "^29.7.0" - jest-leak-detector "^29.7.0" - jest-message-util "^29.7.0" - jest-resolve "^29.7.0" - jest-runtime "^29.7.0" - jest-util "^29.7.0" - jest-watcher "^29.7.0" - jest-worker "^29.7.0" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" - integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/globals" "^29.7.0" - "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" - integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.7.0" - graceful-fs "^4.2.9" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - natural-compare "^1.4.0" - pretty-format "^29.7.0" - semver "^7.5.3" - -jest-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" - integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - -jest-util@^29.0.0, jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -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.7.0" - -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.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.7.0" - string-length "^4.0.1" - -jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -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.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.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== - dependencies: - "@jest/core" "^29.7.0" - "@jest/types" "^29.6.3" - import-local "^3.0.2" - jest-cli "^29.7.0" - -jiti@^1.21.6: - version "1.21.6" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" - integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== - -js-cookie@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc" - integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-types@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/js-types/-/js-types-1.0.0.tgz#d242e6494ed572ad3c92809fc8bed7f7687cbf03" - integrity sha512-bfwqBW9cC/Lp7xcRpug7YrXm0IVw+T9e3g4mCYnv0Pjr3zIzU9PCQElYU9oSGAWzXlbdl9X5SAMPejO9sxkeUw== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsbn@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" - integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== - -jsdom@^20.0.0: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" - integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== - dependencies: - abab "^2.0.6" - acorn "^8.8.1" - acorn-globals "^7.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.4.2" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.2" - parse5 "^7.1.1" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.1.2" - w3c-xmlserializer "^4.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - ws "^8.11.0" - xml-name-validator "^4.0.0" - -jsesc@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" - integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -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-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -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" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-parse-even-better-errors@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz#b43d35e89c0f3be6b5fbbe9dc6c82467b30c28da" - integrity sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ== - -json-parse-even-better-errors@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz#d3f67bd5925e81d3e31aa466acc821c8375cec43" - integrity sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -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 sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stringify-nice@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" - integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -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== - -jsonc-parser@^3.2.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4" - integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonparse@^1.2.0, jsonparse@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - -"jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.3.5" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" - integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - object.assign "^4.1.4" - object.values "^1.1.6" - -just-diff-apply@^5.2.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" - integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== - -just-diff@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" - integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== - -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" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== - dependencies: - is-buffer "^1.1.5" - -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -kleur@^4.0.3: - version "4.1.5" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" - integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -libnpmaccess@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-9.0.0.tgz#47ac12dcd358c2c2f2c9ecb0f081a65ef2cc68bc" - integrity sha512-mTCFoxyevNgXRrvgdOhghKJnCWByBc9yp7zX4u9RBsmZjwOYdUDEBfL5DdgD1/8gahsYnauqIWFbq0iK6tO6CQ== - dependencies: - npm-package-arg "^12.0.0" - npm-registry-fetch "^18.0.1" - -libnpmdiff@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-7.0.0.tgz#808893a36d673e46c927e4a0a836b3742191d307" - integrity sha512-MjvsBJL1AT4ofsSsBRse5clxv7gfPbdgzT0VE+xmVTxE8M92T22laeX9vqFhaQKInSeKiZ2L9w/FVhoCCGPdUg== - dependencies: - "@npmcli/arborist" "^8.0.0" - "@npmcli/installed-package-contents" "^3.0.0" - binary-extensions "^2.3.0" - diff "^5.1.0" - minimatch "^9.0.4" - npm-package-arg "^12.0.0" - pacote "^19.0.0" - tar "^6.2.1" - -libnpmexec@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-9.0.0.tgz#4bb43ec4ba88bd33750480fcf73935837af061bf" - integrity sha512-5dOwgvt0srgrOkwsjNWokx23BvQXEaUo87HWIY+9lymvAto2VSunNS+Ih7WXVwvkJk7cZ0jhS2H3rNK8G9Anxw== - dependencies: - "@npmcli/arborist" "^8.0.0" - "@npmcli/run-script" "^9.0.1" - ci-info "^4.0.0" - npm-package-arg "^12.0.0" - pacote "^19.0.0" - proc-log "^5.0.0" - read "^4.0.0" - read-package-json-fast "^4.0.0" - semver "^7.3.7" - walk-up-path "^3.0.1" - -libnpmfund@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-6.0.0.tgz#5f324e9b9fb440af9c197f3f147943362758b49b" - integrity sha512-+7ZTxPyJ0O/Y0xKoEd1CxPCUQ4ldn6EZ2qUMI/E1gJkfzcwb3AdFlSWk1WEXaGBu2+EqMrPf4Xu5lXFWw2Jd3w== - dependencies: - "@npmcli/arborist" "^8.0.0" - -libnpmhook@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-11.0.0.tgz#b8caf6fe31666d7b18cbf61ce8b722dca1600943" - integrity sha512-Xc18rD9NFbRwZbYCQ+UCF5imPsiHSyuQA8RaCA2KmOUo8q4kmBX4JjGWzmZnxZCT8s6vwzmY1BvHNqBGdg9oBQ== - dependencies: - aproba "^2.0.0" - npm-registry-fetch "^18.0.1" - -libnpmorg@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-7.0.0.tgz#055dfdba32ac5e8757dd4b264f805b64cbd6980b" - integrity sha512-DcTodX31gDEiFrlIHurBQiBlBO6Var2KCqMVCk+HqZhfQXqUfhKGmFOp0UHr6HR1lkTVM0MzXOOYtUObk0r6Dg== - dependencies: - aproba "^2.0.0" - npm-registry-fetch "^18.0.1" - -libnpmpack@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-8.0.0.tgz#83cb6333861f8a0fe991420feaf0aa48a67d94bf" - integrity sha512-Z5zqR+j8PNOki97D4XnKlekLQjqJYkqCFZeac07XCJYA3aq6O7wYIpn7RqLcNfFm+u3ZsdblY2VQENMoiHA+FQ== - dependencies: - "@npmcli/arborist" "^8.0.0" - "@npmcli/run-script" "^9.0.1" - npm-package-arg "^12.0.0" - pacote "^19.0.0" - -libnpmpublish@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-10.0.0.tgz#328fafc94fc0a735c9581207db57dbec590d594c" - integrity sha512-keixAKMGMegm9HHY0stnNtjPHI7J79sMLlRQf0V1n1iFrWspLTGmoA5VMyzX27L3gC8prl+wLizwNWOZlGpcWw== - dependencies: - ci-info "^4.0.0" - normalize-package-data "^7.0.0" - npm-package-arg "^12.0.0" - npm-registry-fetch "^18.0.1" - proc-log "^5.0.0" - semver "^7.3.7" - sigstore "^2.2.0" - ssri "^12.0.0" - -libnpmsearch@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-8.0.0.tgz#ce2e28ad05a152c736d5ae86356aedd5a52406a5" - integrity sha512-W8FWB78RS3Nkl1gPSHOlF024qQvcoU/e3m9BGDuBfVZGfL4MJ91GXXb04w3zJCGOW9dRQUyWVEqupFjCrgltDg== - dependencies: - npm-registry-fetch "^18.0.1" - -libnpmteam@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-7.0.0.tgz#e8f40c4bc543b720da2cdd4385e2fafcd06c92c0" - integrity sha512-PKLOoVukN34qyJjgEm5DEOnDwZkeVMUHRx8NhcKDiCNJGPl7G/pF1cfBw8yicMwRlHaHkld1FdujOzKzy4AlwA== - dependencies: - aproba "^2.0.0" - npm-registry-fetch "^18.0.1" - -libnpmversion@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-7.0.0.tgz#b264a07662b31b78822ba870171088eca6466f38" - integrity sha512-0xle91R6F8r/Q/4tHOnyKko+ZSquEXNdxwRdKCPv4kC1cOVBMFXRsKKrVtRKtXcFn362U8ZlJefk4Apu00424g== - dependencies: - "@npmcli/git" "^6.0.1" - "@npmcli/run-script" "^9.0.1" - json-parse-even-better-errors "^4.0.0" - proc-log "^5.0.0" - semver "^7.3.7" - -lilconfig@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" - integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== - -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" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -lines-and-columns@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" - integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== - -lint-staged@^15.2.2: - version "15.2.10" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.10.tgz#92ac222f802ba911897dcf23671da5bb80643cd2" - integrity sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg== - dependencies: - chalk "~5.3.0" - commander "~12.1.0" - debug "~4.3.6" - execa "~8.0.1" - lilconfig "~3.1.2" - listr2 "~8.2.4" - micromatch "~4.0.8" - pidtree "~0.6.0" - string-argv "~0.3.2" - yaml "~2.5.0" - -listr2@~8.2.4: - version "8.2.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.2.5.tgz#5c9db996e1afeb05db0448196d3d5f64fec2593d" - integrity sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ== - dependencies: - cli-truncate "^4.0.0" - colorette "^2.0.20" - eventemitter3 "^5.0.1" - log-update "^6.1.0" - rfdc "^1.4.1" - wrap-ansi "^9.0.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -load-plugin@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-6.0.3.tgz#b0eb8ea2361744f0e54850ccbc4c8a2d94ffabe3" - integrity sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w== - dependencies: - "@npmcli/config" "^8.0.0" - import-meta-resolve "^4.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - 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" - -locate-path@^7.1.0, locate-path@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" - integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== - dependencies: - p-locate "^6.0.0" - -lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.capitalize@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" - integrity sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw== - -lodash.escaperegexp@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" - integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== - -lodash.map@^4.5.1: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - integrity sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q== - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.mergewith@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" - integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== - -lodash.snakecase@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" - integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== - -lodash.startcase@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" - integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - -lodash.uniqby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" - integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== - -lodash.upperfirst@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" - integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== - -lodash@4.17.21, lodash@^4.17.21, lodash@^4.17.4: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" - integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== - dependencies: - ansi-escapes "^7.0.0" - cli-cursor "^5.0.0" - slice-ansi "^7.1.0" - strip-ansi "^7.1.0" - wrap-ansi "^9.0.0" - -longest-streak@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" - integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== - -longest@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-2.0.1.tgz#781e183296aa94f6d4d916dc335d0d17aefa23f8" - integrity sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q== - -loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lru-cache@^10.0.1, lru-cache@^10.2.0, lru-cache@^10.2.2: - version "10.4.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -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 "^7.5.3" - -make-error@^1.1.1, make-error@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -make-fetch-happen@^13.0.0, make-fetch-happen@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz#273ba2f78f45e1f3a6dca91cede87d9fa4821e36" - integrity sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA== - dependencies: - "@npmcli/agent" "^2.0.0" - cacache "^18.0.0" - http-cache-semantics "^4.1.1" - is-lambda "^1.0.1" - minipass "^7.0.2" - minipass-fetch "^3.0.0" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.3" - proc-log "^4.2.0" - promise-retry "^2.0.1" - ssri "^10.0.0" - -make-fetch-happen@^14.0.0, make-fetch-happen@^14.0.1: - version "14.0.3" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-14.0.3.tgz#d74c3ecb0028f08ab604011e0bc6baed483fcdcd" - integrity sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ== - dependencies: - "@npmcli/agent" "^3.0.0" - cacache "^19.0.1" - http-cache-semantics "^4.1.1" - minipass "^7.0.2" - minipass-fetch "^4.0.0" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^1.0.0" - proc-log "^5.0.0" - promise-retry "^2.0.1" - ssri "^12.0.0" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== - dependencies: - object-visit "^1.0.0" - -marked-terminal@^7.0.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-7.2.1.tgz#9c1ae073a245a03c6a13e3eeac6f586f29856068" - integrity sha512-rQ1MoMFXZICWNsKMiiHwP/Z+92PLKskTPXj+e7uwXmuMPkNn7iTqC+IvDekVm1MPeC9wYQeLxeFaOvudRR/XbQ== - dependencies: - ansi-escapes "^7.0.0" - ansi-regex "^6.1.0" - chalk "^5.3.0" - cli-highlight "^2.1.11" - cli-table3 "^0.6.5" - node-emoji "^2.1.3" - supports-hyperlinks "^3.1.0" - -marked@^12.0.0: - version "12.0.2" - resolved "https://registry.yarnpkg.com/marked/-/marked-12.0.2.tgz#b31578fe608b599944c69807b00f18edab84647e" - integrity sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q== - -mdast-util-from-markdown@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" - integrity sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-to-string "^2.0.0" - micromark "~2.11.0" - parse-entities "^2.0.0" - unist-util-stringify-position "^2.0.0" - -mdast-util-from-markdown@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz#4850390ca7cf17413a9b9a0fbefcd1bc0eb4160a" - integrity sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA== - dependencies: - "@types/mdast" "^4.0.0" - "@types/unist" "^3.0.0" - decode-named-character-reference "^1.0.0" - devlop "^1.0.0" - mdast-util-to-string "^4.0.0" - micromark "^4.0.0" - micromark-util-decode-numeric-character-reference "^2.0.0" - micromark-util-decode-string "^2.0.0" - micromark-util-normalize-identifier "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - unist-util-stringify-position "^4.0.0" - -mdast-util-mdx-expression@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz#43f0abac9adc756e2086f63822a38c8d3c3a5096" - integrity sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^3.0.0" - "@types/mdast" "^4.0.0" - devlop "^1.0.0" - mdast-util-from-markdown "^2.0.0" - mdast-util-to-markdown "^2.0.0" - -mdast-util-mdx-jsx@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz#76b957b3da18ebcfd0de3a9b4451dcd6fdec2320" - integrity sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^3.0.0" - "@types/mdast" "^4.0.0" - "@types/unist" "^3.0.0" - ccount "^2.0.0" - devlop "^1.1.0" - mdast-util-from-markdown "^2.0.0" - mdast-util-to-markdown "^2.0.0" - parse-entities "^4.0.0" - stringify-entities "^4.0.0" - unist-util-stringify-position "^4.0.0" - vfile-message "^4.0.0" - -mdast-util-mdx@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz#792f9cf0361b46bee1fdf1ef36beac424a099c41" - integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w== - dependencies: - mdast-util-from-markdown "^2.0.0" - mdast-util-mdx-expression "^2.0.0" - mdast-util-mdx-jsx "^3.0.0" - mdast-util-mdxjs-esm "^2.0.0" - mdast-util-to-markdown "^2.0.0" - -mdast-util-mdxjs-esm@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz#019cfbe757ad62dd557db35a695e7314bcc9fa97" - integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== - dependencies: - "@types/estree-jsx" "^1.0.0" - "@types/hast" "^3.0.0" - "@types/mdast" "^4.0.0" - devlop "^1.0.0" - mdast-util-from-markdown "^2.0.0" - mdast-util-to-markdown "^2.0.0" - -mdast-util-phrasing@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz#7cc0a8dec30eaf04b7b1a9661a92adb3382aa6e3" - integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== - dependencies: - "@types/mdast" "^4.0.0" - unist-util-is "^6.0.0" - -mdast-util-to-markdown@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.1.tgz#6fdb72cd54ee4e6745e138db003609978a322e94" - integrity sha512-OrkcCoqAkEg9b1ykXBrA0ehRc8H4fGU/03cACmW2xXzau1+dIdS+qJugh1Cqex3hMumSBgSE/5pc7uqP12nLAw== - dependencies: - "@types/mdast" "^4.0.0" - "@types/unist" "^3.0.0" - longest-streak "^3.0.0" - mdast-util-phrasing "^4.0.0" - mdast-util-to-string "^4.0.0" - micromark-util-classify-character "^2.0.0" - micromark-util-decode-string "^2.0.0" - unist-util-visit "^5.0.0" - zwitch "^2.0.0" - -mdast-util-to-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" - integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== - -mdast-util-to-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" - integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== - dependencies: - "@types/mdast" "^4.0.0" - -meow@^12.0.1: - version "12.1.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" - integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== - -merge-stream@^2.0.0: - version "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== - -merge@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98" - integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== - -micromark-core-commonmark@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz#9a45510557d068605c6e9a80f282b2bb8581e43d" - integrity sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA== - dependencies: - decode-named-character-reference "^1.0.0" - devlop "^1.0.0" - micromark-factory-destination "^2.0.0" - micromark-factory-label "^2.0.0" - micromark-factory-space "^2.0.0" - micromark-factory-title "^2.0.0" - micromark-factory-whitespace "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-chunked "^2.0.0" - micromark-util-classify-character "^2.0.0" - micromark-util-html-tag-name "^2.0.0" - micromark-util-normalize-identifier "^2.0.0" - micromark-util-resolve-all "^2.0.0" - micromark-util-subtokenize "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-extension-mdx-expression@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz#1407b9ce69916cf5e03a196ad9586889df25302a" - integrity sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ== - dependencies: - "@types/estree" "^1.0.0" - devlop "^1.0.0" - micromark-factory-mdx-expression "^2.0.0" - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-events-to-acorn "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-extension-mdx-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz#5abb83da5ddc8e473a374453e6ea56fbd66b59ad" - integrity sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg== - dependencies: - "@types/acorn" "^4.0.0" - "@types/estree" "^1.0.0" - devlop "^1.0.0" - estree-util-is-identifier-name "^3.0.0" - micromark-factory-mdx-expression "^2.0.0" - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-events-to-acorn "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - vfile-message "^4.0.0" - -micromark-extension-mdx-md@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz#1d252881ea35d74698423ab44917e1f5b197b92d" - integrity sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ== - dependencies: - micromark-util-types "^2.0.0" - -micromark-extension-mdxjs-esm@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz#de21b2b045fd2059bd00d36746081de38390d54a" - integrity sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A== - dependencies: - "@types/estree" "^1.0.0" - devlop "^1.0.0" - micromark-core-commonmark "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-events-to-acorn "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - unist-util-position-from-estree "^2.0.0" - vfile-message "^4.0.0" - -micromark-extension-mdxjs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz#b5a2e0ed449288f3f6f6c544358159557549de18" - integrity sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ== - dependencies: - acorn "^8.0.0" - acorn-jsx "^5.0.0" - micromark-extension-mdx-expression "^3.0.0" - micromark-extension-mdx-jsx "^3.0.0" - micromark-extension-mdx-md "^2.0.0" - micromark-extension-mdxjs-esm "^3.0.0" - micromark-util-combine-extensions "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-destination@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz#857c94debd2c873cba34e0445ab26b74f6a6ec07" - integrity sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-label@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz#17c5c2e66ce39ad6f4fc4cbf40d972f9096f726a" - integrity sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw== - dependencies: - devlop "^1.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-mdx-expression@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz#2afaa8ba6d5f63e0cead3e4dee643cad184ca260" - integrity sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw== - dependencies: - "@types/estree" "^1.0.0" - devlop "^1.0.0" - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-events-to-acorn "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - unist-util-position-from-estree "^2.0.0" - vfile-message "^4.0.0" - -micromark-factory-space@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz#5e7afd5929c23b96566d0e1ae018ae4fcf81d030" - integrity sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-title@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz#726140fc77892af524705d689e1cf06c8a83ea95" - integrity sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A== - dependencies: - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-factory-whitespace@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz#9e92eb0f5468083381f923d9653632b3cfb5f763" - integrity sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA== - dependencies: - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-character@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.0.tgz#31320ace16b4644316f6bf057531689c71e2aee1" - integrity sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ== - dependencies: - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-chunked@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz#e51f4db85fb203a79dbfef23fd41b2f03dc2ef89" - integrity sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg== - dependencies: - micromark-util-symbol "^2.0.0" - -micromark-util-classify-character@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz#8c7537c20d0750b12df31f86e976d1d951165f34" - integrity sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-combine-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz#75d6ab65c58b7403616db8d6b31315013bfb7ee5" - integrity sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ== - dependencies: - micromark-util-chunked "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-decode-numeric-character-reference@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz#2698bbb38f2a9ba6310e359f99fcb2b35a0d2bd5" - integrity sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ== - dependencies: - micromark-util-symbol "^2.0.0" - -micromark-util-decode-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz#7dfa3a63c45aecaa17824e656bcdb01f9737154a" - integrity sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA== - dependencies: - decode-named-character-reference "^1.0.0" - micromark-util-character "^2.0.0" - micromark-util-decode-numeric-character-reference "^2.0.0" - micromark-util-symbol "^2.0.0" - -micromark-util-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz#0921ac7953dc3f1fd281e3d1932decfdb9382ab1" - integrity sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA== - -micromark-util-events-to-acorn@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz#4275834f5453c088bd29cd72dfbf80e3327cec07" - integrity sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA== - dependencies: - "@types/acorn" "^4.0.0" - "@types/estree" "^1.0.0" - "@types/unist" "^3.0.0" - devlop "^1.0.0" - estree-util-visit "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - vfile-message "^4.0.0" - -micromark-util-html-tag-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz#ae34b01cbe063363847670284c6255bb12138ec4" - integrity sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw== - -micromark-util-normalize-identifier@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz#91f9a4e65fe66cc80c53b35b0254ad67aa431d8b" - integrity sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w== - dependencies: - micromark-util-symbol "^2.0.0" - -micromark-util-resolve-all@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz#189656e7e1a53d0c86a38a652b284a252389f364" - integrity sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA== - dependencies: - micromark-util-types "^2.0.0" - -micromark-util-sanitize-uri@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz#ec8fbf0258e9e6d8f13d9e4770f9be64342673de" - integrity sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw== - dependencies: - micromark-util-character "^2.0.0" - micromark-util-encode "^2.0.0" - micromark-util-symbol "^2.0.0" - -micromark-util-subtokenize@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz#76129c49ac65da6e479c09d0ec4b5f29ec6eace5" - integrity sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q== - dependencies: - devlop "^1.0.0" - micromark-util-chunked "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark-util-symbol@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz#12225c8f95edf8b17254e47080ce0862d5db8044" - integrity sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw== - -micromark-util-types@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.0.tgz#63b4b7ffeb35d3ecf50d1ca20e68fc7caa36d95e" - integrity sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w== - -micromark@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.0.tgz#84746a249ebd904d9658cfabc1e8e5f32cbc6249" - integrity sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ== - dependencies: - "@types/debug" "^4.0.0" - debug "^4.0.0" - decode-named-character-reference "^1.0.0" - devlop "^1.0.0" - micromark-core-commonmark "^2.0.0" - micromark-factory-space "^2.0.0" - micromark-util-character "^2.0.0" - micromark-util-chunked "^2.0.0" - micromark-util-combine-extensions "^2.0.0" - micromark-util-decode-numeric-character-reference "^2.0.0" - micromark-util-encode "^2.0.0" - micromark-util-normalize-identifier "^2.0.0" - micromark-util-resolve-all "^2.0.0" - micromark-util-sanitize-uri "^2.0.0" - micromark-util-subtokenize "^2.0.0" - micromark-util-symbol "^2.0.0" - micromark-util-types "^2.0.0" - -micromark@~2.11.0: - version "2.11.4" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" - integrity sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA== - dependencies: - debug "^4.0.0" - parse-entities "^2.0.0" - -micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@~4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - 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" - -mime@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-4.0.4.tgz#9f851b0fc3c289d063b20a7a8055b3014b25664b" - integrity sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -mimic-function@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" - integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -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== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.0, minimatch@^9.0.4, minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -minimist@1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -minipass-collect@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" - integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== - dependencies: - minipass "^7.0.3" - -minipass-fetch@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.5.tgz#f0f97e40580affc4a35cc4a1349f05ae36cb1e4c" - integrity sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg== - dependencies: - minipass "^7.0.3" - minipass-sized "^1.0.3" - minizlib "^2.1.2" - optionalDependencies: - encoding "^0.1.13" - -minipass-fetch@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-4.0.0.tgz#b8ea716464747aeafb7edf2e110114c38089a09c" - integrity sha512-2v6aXUXwLP1Epd/gc32HAMIWoczx+fZwEPRHm/VwtrJzRGwR1qGZXEYV3Zp8ZjjbwaZhMrM6uHV4KVkk+XCc2w== - dependencies: - minipass "^7.0.3" - minipass-sized "^1.0.3" - minizlib "^3.0.1" - optionalDependencies: - encoding "^0.1.13" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.0.4, minipass@^7.1.1, minipass@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" - integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - -minizlib@^2.1.1, minizlib@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -minizlib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.0.1.tgz#46d5329d1eb3c83924eff1d3b858ca0a31581012" - integrity sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg== - dependencies: - minipass "^7.0.4" - rimraf "^5.0.5" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdirp@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" - integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== - -mri@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@^2.1.1, ms@^2.1.2, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - -mute-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" - integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== - -mz@^2.4.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -negotiator@^0.6.3: - version "0.6.4" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" - integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== - -negotiator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a" - integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -nerf-dart@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/nerf-dart/-/nerf-dart-1.0.0.tgz#e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a" - integrity sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-emoji@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-2.1.3.tgz#93cfabb5cc7c3653aa52f29d6ffb7927d8047c06" - integrity sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA== - dependencies: - "@sindresorhus/is" "^4.6.0" - char-regex "^1.0.2" - emojilib "^2.4.0" - skin-tone "^2.0.0" - -node-gyp@^10.0.0, node-gyp@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.2.0.tgz#80101c4aa4f7ab225f13fcc8daaaac4eb1a8dd86" - integrity sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw== - dependencies: - env-paths "^2.2.0" - exponential-backoff "^3.1.1" - glob "^10.3.10" - graceful-fs "^4.2.6" - make-fetch-happen "^13.0.0" - nopt "^7.0.0" - proc-log "^4.1.0" - semver "^7.3.5" - tar "^6.2.1" - which "^4.0.0" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-notifier@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" - integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== - dependencies: - growly "^1.3.0" - is-wsl "^2.2.0" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - -node-releases@^2.0.18: - version "2.0.18" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" - integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== - -nopt@^7.0.0, nopt@^7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7" - integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== - dependencies: - abbrev "^2.0.0" - -nopt@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-8.0.0.tgz#644f1e78da564b70e3606ab8db4836b0e32e198a" - integrity sha512-1L/fTJ4UmV/lUxT2Uf006pfZKTvAgCF+chz+0OgBHO8u2Z67pE7AaAUUj7CJy0lXqHmymUvGFt6NE9R3HER0yw== - dependencies: - abbrev "^2.0.0" - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.2.tgz#a7bc22167fe24025412bcff0a9651eb768b03506" - integrity sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g== - dependencies: - hosted-git-info "^7.0.0" - semver "^7.3.5" - validate-npm-package-license "^3.0.4" - -normalize-package-data@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-7.0.0.tgz#ab4f49d02f2e25108d3f4326f3c13f0de6fa6a0a" - integrity sha512-k6U0gKRIuNCTkwHGZqblCfLfBRh+w1vI6tBo+IeJwq2M8FUiOqhX7GH+GArQGScA7azd1WfyRCvxoXDO3hQDIA== - dependencies: - hosted-git-info "^8.0.0" - semver "^7.3.5" - validate-npm-package-license "^3.0.4" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a" - integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== - -npm-audit-report@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-6.0.0.tgz#0262e5e2b674fabf0ea47e900fc7384b83de0fbb" - integrity sha512-Ag6Y1irw/+CdSLqEEAn69T8JBgBThj5mw0vuFIKeP7hATYuQuS5jkMjK6xmVB8pr7U4g5Audbun0lHhBDMIBRA== - -npm-bundled@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-4.0.0.tgz#f5b983f053fe7c61566cf07241fab2d4e9d513d3" - integrity sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA== - dependencies: - npm-normalize-package-bin "^4.0.0" - -npm-install-checks@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" - integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== - dependencies: - semver "^7.1.1" - -npm-install-checks@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-7.1.0.tgz#e365040c95d59571aaed3d6ebb83f7d9ddd347b8" - integrity sha512-bkTildVlofeMX7wiOaWk3PlW7YcBXAuEc7TWpOxwUgalG5ZvgT/ms+6OX9zt7iGLv4+VhKbRZhpOfgQJzk1YAw== - dependencies: - semver "^7.1.1" - -npm-normalize-package-bin@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" - integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== - -npm-normalize-package-bin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz#df79e70cd0a113b77c02d1fe243c96b8e618acb1" - integrity sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w== - -npm-package-arg@^11.0.0: - version "11.0.3" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz#dae0c21199a99feca39ee4bfb074df3adac87e2d" - integrity sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw== - dependencies: - hosted-git-info "^7.0.0" - proc-log "^4.0.0" - semver "^7.3.5" - validate-npm-package-name "^5.0.0" - -npm-package-arg@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-12.0.0.tgz#c2a6631c09d244c6bc35a46c38cbd94d53e9829a" - integrity sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A== - dependencies: - hosted-git-info "^8.0.0" - proc-log "^5.0.0" - semver "^7.3.5" - validate-npm-package-name "^6.0.0" - -npm-packlist@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-9.0.0.tgz#8e9b061bab940de639dd93d65adc95c34412c7d0" - integrity sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ== - dependencies: - ignore-walk "^7.0.0" - -npm-pick-manifest@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz#6cc120c6473ceea56dfead500f00735b2b892851" - integrity sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ== - dependencies: - npm-install-checks "^7.1.0" - npm-normalize-package-bin "^4.0.0" - npm-package-arg "^12.0.0" - semver "^7.3.5" - -npm-pick-manifest@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz#83562afde52b0b07cb6244361788d319ce7e8636" - integrity sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA== - dependencies: - npm-install-checks "^6.0.0" - npm-normalize-package-bin "^3.0.0" - npm-package-arg "^11.0.0" - semver "^7.3.5" - -npm-profile@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-11.0.1.tgz#6ffac43f3d186316d37e80986d84aef2470269a2" - integrity sha512-HP5Cw9WHwFS9vb4fxVlkNAQBUhVL5BmW6rAR+/JWkpwqcFJid7TihKUdYDWqHl0NDfLd0mpucheGySqo8ysyfw== - dependencies: - npm-registry-fetch "^18.0.0" - proc-log "^5.0.0" - -npm-registry-fetch@^18.0.0, npm-registry-fetch@^18.0.1: - version "18.0.2" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-18.0.2.tgz#340432f56b5a8b1af068df91aae0435d2de646b5" - integrity sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ== - dependencies: - "@npmcli/redact" "^3.0.0" - jsonparse "^1.3.1" - make-fetch-happen "^14.0.0" - minipass "^7.0.2" - minipass-fetch "^4.0.0" - minizlib "^3.0.1" - npm-package-arg "^12.0.0" - proc-log "^5.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== - dependencies: - path-key "^2.0.0" - -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" - -npm-run-path@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" - integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== - dependencies: - path-key "^4.0.0" - -npm-run-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-6.0.0.tgz#25cfdc4eae04976f3349c0b1afc089052c362537" - integrity sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA== - dependencies: - path-key "^4.0.0" - unicorn-magic "^0.3.0" - -npm-user-validate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-3.0.0.tgz#9b1410796bf1f1d78297a8096328c55d3083f233" - integrity sha512-9xi0RdSmJ4mPYTC393VJPz1Sp8LyCx9cUnm/L9Qcb3cFO8gjT4mN20P9FAsea8qDHdQ7LtcN8VLh2UT47SdKCw== - -npm@^10.5.0: - version "10.9.0" - resolved "https://registry.yarnpkg.com/npm/-/npm-10.9.0.tgz#46903bc06cb8a5fd51372647920fe4b830efb8d8" - integrity sha512-ZanDioFylI9helNhl2LNd+ErmVD+H5I53ry41ixlLyCBgkuYb+58CvbAp99hW+zr5L9W4X7CchSoeqKdngOLSw== - dependencies: - "@isaacs/string-locale-compare" "^1.1.0" - "@npmcli/arborist" "^8.0.0" - "@npmcli/config" "^9.0.0" - "@npmcli/fs" "^4.0.0" - "@npmcli/map-workspaces" "^4.0.1" - "@npmcli/package-json" "^6.0.1" - "@npmcli/promise-spawn" "^8.0.1" - "@npmcli/redact" "^3.0.0" - "@npmcli/run-script" "^9.0.1" - "@sigstore/tuf" "^2.3.4" - abbrev "^3.0.0" - archy "~1.0.0" - cacache "^19.0.1" - chalk "^5.3.0" - ci-info "^4.0.0" - cli-columns "^4.0.0" - fastest-levenshtein "^1.0.16" - fs-minipass "^3.0.3" - glob "^10.4.5" - graceful-fs "^4.2.11" - hosted-git-info "^8.0.0" - ini "^5.0.0" - init-package-json "^7.0.1" - is-cidr "^5.1.0" - json-parse-even-better-errors "^4.0.0" - libnpmaccess "^9.0.0" - libnpmdiff "^7.0.0" - libnpmexec "^9.0.0" - libnpmfund "^6.0.0" - libnpmhook "^11.0.0" - libnpmorg "^7.0.0" - libnpmpack "^8.0.0" - libnpmpublish "^10.0.0" - libnpmsearch "^8.0.0" - libnpmteam "^7.0.0" - libnpmversion "^7.0.0" - make-fetch-happen "^14.0.1" - minimatch "^9.0.5" - minipass "^7.1.1" - minipass-pipeline "^1.2.4" - ms "^2.1.2" - node-gyp "^10.2.0" - nopt "^8.0.0" - normalize-package-data "^7.0.0" - npm-audit-report "^6.0.0" - npm-install-checks "^7.1.0" - npm-package-arg "^12.0.0" - npm-pick-manifest "^10.0.0" - npm-profile "^11.0.1" - npm-registry-fetch "^18.0.1" - npm-user-validate "^3.0.0" - p-map "^4.0.0" - pacote "^19.0.0" - parse-conflict-json "^4.0.0" - proc-log "^5.0.0" - qrcode-terminal "^0.12.0" - read "^4.0.0" - semver "^7.6.3" - spdx-expression-parse "^4.0.0" - ssri "^12.0.0" - supports-color "^9.4.0" - tar "^6.2.1" - text-table "~0.2.0" - tiny-relative-date "^1.3.0" - treeverse "^3.0.0" - validate-npm-package-name "^6.0.0" - which "^5.0.0" - write-file-atomic "^6.0.0" - -nwsapi@^2.2.2: - version "2.2.13" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.13.tgz#e56b4e98960e7a040e5474536587e599c4ff4655" - integrity sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ== - -obj-props@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/obj-props/-/obj-props-1.4.0.tgz#9a9beebb6faf8b287ff7dc1cd133a4247dc85641" - integrity sha512-p7p/7ltzPDiBs6DqxOrIbtRdwxxVRBj5ROukeNb9RgA+fawhrz5n2hpNz8DDmYR//tviJSj7nUnlppGmONkjiQ== - -object-assign@^4.0.1, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.13.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" - integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.4, object.assign@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.entries@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" - integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -object.fromentries@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" - integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - -object.groupby@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" - integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - -object.values@^1.1.6, object.values@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" - integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -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 sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.0, 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== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -onetime@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60" - integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== - dependencies: - mimic-function "^5.0.0" - -optionator@^0.9.3: - version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== - dependencies: - 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.5" - -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -p-each-series@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-3.0.0.tgz#d1aed5e96ef29864c897367a7d2a628fdc960806" - integrity sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw== - -p-filter@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-4.1.0.tgz#fe0aa794e2dfad8ecf595a39a245484fcd09c6e4" - integrity sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw== - dependencies: - p-map "^7.0.1" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-is-promise@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971" - integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ== - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.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== - dependencies: - yocto-queue "^0.1.0" - -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== - dependencies: - p-limit "^1.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" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - 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-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-map@^7.0.1, p-map@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.2.tgz#7c5119fada4755660f70199a66aa3fe2f85a1fe8" - integrity sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q== - -p-reduce@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" - integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== - -p-reduce@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-3.0.0.tgz#f11773794792974bd1f7a14c72934248abff4160" - integrity sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q== - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -pacote@^19.0.0: - version "19.0.1" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-19.0.1.tgz#66d22dbd274ed8a7c30029d70eb8030f5151e6fc" - integrity sha512-zIpxWAsr/BvhrkSruspG8aqCQUUrWtpwx0GjiRZQhEM/pZXrigA32ElN3vTcCPUDOFmHr6SFxwYrvVUs5NTEUg== - dependencies: - "@npmcli/git" "^6.0.0" - "@npmcli/installed-package-contents" "^3.0.0" - "@npmcli/package-json" "^6.0.0" - "@npmcli/promise-spawn" "^8.0.0" - "@npmcli/run-script" "^9.0.0" - cacache "^19.0.0" - fs-minipass "^3.0.0" - minipass "^7.0.2" - npm-package-arg "^12.0.0" - npm-packlist "^9.0.0" - npm-pick-manifest "^10.0.0" - npm-registry-fetch "^18.0.0" - proc-log "^5.0.0" - promise-retry "^2.0.1" - sigstore "^3.0.0" - ssri "^12.0.0" - tar "^6.1.11" - -pacote@^20.0.0: - version "20.0.0" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-20.0.0.tgz#c974373d8e0859d00e8f9158574350f8c1b168e5" - integrity sha512-pRjC5UFwZCgx9kUFDVM9YEahv4guZ1nSLqwmWiLUnDbGsjs+U5w7z6Uc8HNR1a6x8qnu5y9xtGE6D1uAuYz+0A== - dependencies: - "@npmcli/git" "^6.0.0" - "@npmcli/installed-package-contents" "^3.0.0" - "@npmcli/package-json" "^6.0.0" - "@npmcli/promise-spawn" "^8.0.0" - "@npmcli/run-script" "^9.0.0" - cacache "^19.0.0" - fs-minipass "^3.0.0" - minipass "^7.0.2" - npm-package-arg "^12.0.0" - npm-packlist "^9.0.0" - npm-pick-manifest "^10.0.0" - npm-registry-fetch "^18.0.0" - proc-log "^5.0.0" - promise-retry "^2.0.1" - sigstore "^3.0.0" - ssri "^12.0.0" - tar "^6.1.11" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-conflict-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-4.0.0.tgz#996b1edfc0c727583b56c7644dbb3258fc9e9e4b" - integrity sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ== - dependencies: - json-parse-even-better-errors "^4.0.0" - just-diff "^6.0.0" - just-diff-apply "^5.2.0" - -parse-entities@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" - integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== - dependencies: - character-entities "^1.0.0" - character-entities-legacy "^1.0.0" - character-reference-invalid "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.0" - is-hexadecimal "^1.0.0" - -parse-entities@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" - integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== - dependencies: - "@types/unist" "^2.0.0" - character-entities "^2.0.0" - character-entities-legacy "^3.0.0" - character-reference-invalid "^2.0.0" - decode-named-character-reference "^1.0.0" - is-alphanumerical "^2.0.0" - is-decimal "^2.0.0" - is-hexadecimal "^2.0.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0, parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-json@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-7.1.1.tgz#68f7e6f0edf88c54ab14c00eb700b753b14e2120" - integrity sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw== - dependencies: - "@babel/code-frame" "^7.21.4" - error-ex "^1.3.2" - json-parse-even-better-errors "^3.0.0" - lines-and-columns "^2.0.3" - type-fest "^3.8.0" - -parse-json@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-8.1.0.tgz#91cdc7728004e955af9cb734de5684733b24a717" - integrity sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA== - dependencies: - "@babel/code-frame" "^7.22.13" - index-to-position "^0.1.2" - type-fest "^4.7.1" - -parse-ms@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-4.0.0.tgz#c0c058edd47c2a590151a718990533fd62803df4" - integrity sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw== - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== - -parse5-htmlparser2-tree-adapter@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== - dependencies: - parse5 "^6.0.1" - -parse5@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== - -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parse5@^7.0.0, parse5@^7.1.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a" - integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ== - dependencies: - entities "^4.5.0" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - -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 sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-scurry@^1.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" - integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== - dependencies: - lru-cache "^10.2.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -path-type@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" - integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== - -picocolors@^1.0.0, picocolors@^1.1.0: - 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== - -pidtree@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - -pirates@^4.0.1, pirates@^4.0.4: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -pkg-conf@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" - integrity sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g== - dependencies: - find-up "^2.0.0" - load-json-file "^4.0.0" - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-dir@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" - integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== - dependencies: - find-up "^6.3.0" - -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - -possible-typed-array-names@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" - integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== - -postcss-selector-parser@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" - integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^3.2.5: - version "3.3.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" - integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== - -pretty-format@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" - integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== - dependencies: - "@jest/types" "^26.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -pretty-format@^29.0.0, pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -pretty-ms@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-9.1.0.tgz#0ad44de6086454f48a168e5abb3c26f8db1b3253" - integrity sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw== - dependencies: - parse-ms "^4.0.0" - -proc-log@^4.0.0, proc-log@^4.1.0, proc-log@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz#b6f461e4026e75fdfe228b265e9f7a00779d7034" - integrity sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA== - -proc-log@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-5.0.0.tgz#e6c93cf37aef33f835c53485f314f50ea906a9d8" - integrity sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -proggy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/proggy/-/proggy-3.0.0.tgz#874e91fed27fe00a511758e83216a6b65148bd6c" - integrity sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q== - -promise-all-reject-late@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" - integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== - -promise-call-limit@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-3.0.2.tgz#524b7f4b97729ff70417d93d24f46f0265efa4f9" - integrity sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -promzard@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/promzard/-/promzard-2.0.0.tgz#03ad0e4db706544dfdd4f459281f13484fc10c49" - integrity sha512-Ncd0vyS2eXGOjchIRg6PVCYKetJYrW1BSbbIo+bKdig61TB6nH2RQNF2uP+qMpsI73L/jURLWojcw8JNIKZ3gg== - dependencies: - read "^4.0.0" - -prop-types@^15.8.1: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== - -proto-props@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/proto-props/-/proto-props-2.0.0.tgz#8ac6e6dec658545815c623a3bc81580deda9a181" - integrity sha512-2yma2tog9VaRZY2mn3Wq51uiSW4NcPYT1cQdBagwyrznrilKSZwIZ0UG3ZPL/mx+axEns0hE35T5ufOYZXEnBQ== - -psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -pump@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" - integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^2.1.0, punycode@^2.1.1: - 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.1.0" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" - integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== - -qrcode-terminal@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" - integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -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== - -rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-dom@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" - -react-error-boundary@^3.1.0: - version "3.1.4" - resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-3.1.4.tgz#255db92b23197108757a888b01e5b729919abde0" - integrity sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA== - dependencies: - "@babel/runtime" "^7.12.5" - -react-is@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -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.3.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" - integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== - -react@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -read-cmd-shim@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-5.0.0.tgz#6e5450492187a0749f6c80dcbef0debc1117acca" - integrity sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw== - -read-package-json-fast@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" - integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== - dependencies: - json-parse-even-better-errors "^3.0.0" - npm-normalize-package-bin "^3.0.0" - -read-package-json-fast@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz#8ccbc05740bb9f58264f400acc0b4b4eee8d1b39" - integrity sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg== - dependencies: - json-parse-even-better-errors "^4.0.0" - npm-normalize-package-bin "^4.0.0" - -read-package-up@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/read-package-up/-/read-package-up-11.0.0.tgz#71fb879fdaac0e16891e6e666df22de24a48d5ba" - integrity sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ== - dependencies: - find-up-simple "^1.0.0" - read-pkg "^9.0.0" - type-fest "^4.6.0" - -read-pkg-up@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-11.0.0.tgz#8916ffc6af2a7538b43bcc2c6445d4450ffe5a74" - integrity sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q== - dependencies: - find-up-simple "^1.0.0" - read-pkg "^9.0.0" - type-fest "^4.6.0" - -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -read-pkg@^9.0.0: - version "9.0.1" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-9.0.1.tgz#b1b81fb15104f5dbb121b6bbdee9bbc9739f569b" - integrity sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA== - dependencies: - "@types/normalize-package-data" "^2.4.3" - normalize-package-data "^6.0.0" - parse-json "^8.0.0" - type-fest "^4.6.0" - unicorn-magic "^0.1.0" - -read@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read/-/read-4.0.0.tgz#46a989a22dfefe4eab2327e40e40b05eca727370" - integrity sha512-nbYGT3cec3J5NPUeJia7l72I3oIzMIB6yeNyDqi8CVHr3WftwjrCUqR0j13daoHEMVaZ/rxCpmHKrbods3hI2g== - dependencies: - mute-stream "^2.0.0" - -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.2, readable-stream@^3.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -reflect.getprototypeof@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859" - integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.1" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - globalthis "^1.0.3" - which-builtin-type "^1.1.3" - -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp-tree@^0.1.27: - version "0.1.27" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" - integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== - -regexp.prototype.flags@^1.5.2: - version "1.5.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" - integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-errors "^1.3.0" - set-function-name "^2.0.2" - -registry-auth-token@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" - integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ== - dependencies: - "@pnpm/npm-conf" "^2.1.0" - -regjsparser@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.10.0.tgz#b1ed26051736b436f22fdec1c8f72635f9f44892" - integrity sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA== - dependencies: - jsesc "~0.5.0" - -remark-mdx@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.1.0.tgz#f979be729ecb35318fa48e2135c1169607a78343" - integrity sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA== - dependencies: - mdast-util-mdx "^3.0.0" - micromark-extension-mdxjs "^3.0.0" - -remark-parse@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" - integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== - dependencies: - "@types/mdast" "^4.0.0" - mdast-util-from-markdown "^2.0.0" - micromark-util-types "^2.0.0" - unified "^11.0.0" - -remark-stringify@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" - integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== - dependencies: - "@types/mdast" "^4.0.0" - mdast-util-to-markdown "^2.0.0" - unified "^11.0.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== - -resolve.exports@^2.0.0: - 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.10.0, resolve@^1.18.1, resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^2.0.0-next.5: - version "2.0.0-next.5" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" - integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -restore-cursor@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" - integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== - dependencies: - onetime "^7.0.0" - signal-exit "^4.1.0" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -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== - -rfdc@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" - integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== - -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" - -rimraf@^5.0.5: - version "5.0.10" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c" - integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== - dependencies: - glob "^10.3.7" - -rsvp@^4.8.4: - version "4.8.5" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" - integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== - -run-async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - -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" - -rxjs@^7.5.5, rxjs@^7.8.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -sade@^1.7.3: - version "1.8.1" - resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" - integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== - dependencies: - mri "^1.1.0" - -safe-array-concat@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" - integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== - dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" - has-symbols "^1.0.3" - isarray "^2.0.5" - -safe-buffer@~5.1.0, 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== - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex-test@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" - integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-regex "^1.1.4" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sane@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" - integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== - dependencies: - "@cnakazawa/watch" "^1.0.3" - anymatch "^2.0.0" - capture-exit "^2.0.0" - exec-sh "^0.3.2" - execa "^1.0.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - -saxes@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" - integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== - dependencies: - xmlchars "^2.2.0" - -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -schema-utils@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" - integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== - dependencies: - "@types/json-schema" "^7.0.9" - ajv "^8.9.0" - ajv-formats "^2.1.1" - ajv-keywords "^5.1.0" - -semantic-release@^23.0.2: - version "23.1.1" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-23.1.1.tgz#5c1a058748f4001f1c730716134a70b9e8e5b311" - integrity sha512-qqJDBhbtHsjUEMsojWKGuL5lQFCJuPtiXKEIlFKyTzDDGTAE/oyvznaP8GeOr5PvcqBJ6LQz4JCENWPLeehSpA== - dependencies: - "@semantic-release/commit-analyzer" "^12.0.0" - "@semantic-release/error" "^4.0.0" - "@semantic-release/github" "^10.0.0" - "@semantic-release/npm" "^12.0.0" - "@semantic-release/release-notes-generator" "^13.0.0" - aggregate-error "^5.0.0" - cosmiconfig "^9.0.0" - debug "^4.0.0" - env-ci "^11.0.0" - execa "^9.0.0" - figures "^6.0.0" - find-versions "^6.0.0" - get-stream "^6.0.0" - git-log-parser "^1.2.0" - hook-std "^3.0.0" - hosted-git-info "^7.0.0" - import-from-esm "^1.3.1" - lodash-es "^4.17.21" - marked "^12.0.0" - marked-terminal "^7.0.0" - micromatch "^4.0.2" - p-each-series "^3.0.0" - p-reduce "^3.0.0" - read-package-up "^11.0.0" - resolve-from "^5.0.0" - semver "^7.3.2" - semver-diff "^4.0.0" - signale "^1.2.1" - yargs "^17.5.1" - -semver-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" - integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== - dependencies: - semver "^7.3.5" - -semver-regex@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-4.0.5.tgz#fbfa36c7ba70461311f5debcb3928821eb4f9180" - integrity sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw== - -"semver@2 || 3 || 4 || 5", semver@^5.5.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -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== - -semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: - version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== - -set-function-length@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - -set-function-name@^2.0.1, set-function-name@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" - integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.2" - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -side-channel@^1.0.4, side-channel@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - -signal-exit@^3.0.0, 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== - -signal-exit@^4.0.1, signal-exit@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -signale@^1.2.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/signale/-/signale-1.4.0.tgz#c4be58302fb0262ac00fc3d886a7c113759042f1" - integrity sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w== - dependencies: - chalk "^2.3.2" - figures "^2.0.0" - pkg-conf "^2.1.0" - -sigstore@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.3.1.tgz#0755dd2cc4820f2e922506da54d3d628e13bfa39" - integrity sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ== - dependencies: - "@sigstore/bundle" "^2.3.2" - "@sigstore/core" "^1.0.0" - "@sigstore/protobuf-specs" "^0.3.2" - "@sigstore/sign" "^2.3.2" - "@sigstore/tuf" "^2.3.4" - "@sigstore/verify" "^1.2.1" - -sigstore@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-3.0.0.tgz#d6eadcc6590185a7f1c16184078ce8a9ef6db937" - integrity sha512-PHMifhh3EN4loMcHCz6l3v/luzgT3za+9f8subGgeMNjbJjzH4Ij/YoX3Gvu+kaouJRIlVdTHHCREADYf+ZteA== - dependencies: - "@sigstore/bundle" "^3.0.0" - "@sigstore/core" "^2.0.0" - "@sigstore/protobuf-specs" "^0.3.2" - "@sigstore/sign" "^3.0.0" - "@sigstore/tuf" "^3.0.0" - "@sigstore/verify" "^2.0.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -skin-tone@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/skin-tone/-/skin-tone-2.0.0.tgz#4e3933ab45c0d4f4f781745d64b9f4c208e41237" - integrity sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA== - dependencies: - unicode-emoji-modifier-base "^1.0.0" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slash@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" - integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -slice-ansi@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" - integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== - dependencies: - ansi-styles "^6.2.1" - is-fullwidth-code-point "^5.0.0" - -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -socks-proxy-agent@^8.0.3: - version "8.0.4" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz#9071dca17af95f483300316f4b063578fa0db08c" - integrity sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw== - dependencies: - agent-base "^7.1.1" - debug "^4.3.4" - socks "^2.8.3" - -socks@^2.8.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" - integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== - dependencies: - ip-address "^9.0.5" - smart-buffer "^4.2.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -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" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - 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.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -spawn-error-forwarder@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029" - integrity sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" - integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-expression-parse@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz#a23af9f3132115465dac215c099303e4ceac5794" - integrity sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.20" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz#e44ed19ed318dd1e5888f93325cee800f0f51b89" - integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -split2@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - -split2@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-1.0.0.tgz#52e2e221d88c75f9a73f90556e263ff96772b314" - integrity sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg== - dependencies: - through2 "~2.0.0" - -sprintf-js@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" - integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -ssri@^10.0.0: - version "10.0.6" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" - integrity sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ== - dependencies: - minipass "^7.0.3" - -ssri@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-12.0.0.tgz#bcb4258417c702472f8191981d3c8a771fee6832" - integrity sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ== - dependencies: - minipass "^7.0.3" - -stack-utils@^2.0.2, stack-utils@^2.0.3: - 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" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stream-combiner2@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw== - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - -string-argv@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" - integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string-width@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-6.1.0.tgz#96488d6ed23f9ad5d82d13522af9e4c4c3fd7518" - integrity sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^10.2.1" - strip-ansi "^7.0.1" - -string-width@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" - integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== - dependencies: - emoji-regex "^10.3.0" - get-east-asian-width "^1.0.0" - strip-ansi "^7.1.0" - -string.prototype.matchall@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" - integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.2" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.7" - regexp.prototype.flags "^1.5.2" - set-function-name "^2.0.2" - side-channel "^1.0.6" - -string.prototype.repeat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" - integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trim@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" - integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.0" - es-object-atoms "^1.0.0" - -string.prototype.trimend@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" - integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string.prototype.trimstart@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" - integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -stringify-entities@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" - integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== - dependencies: - character-entities-html4 "^2.0.0" - character-entities-legacy "^3.0.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1, strip-ansi@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strip-bom@4.0.0, strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-final-newline@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-4.0.0.tgz#35a369ec2ac43df356e3edd5dcebb6429aa1fa5c" - integrity sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw== - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.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== - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -super-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/super-regex/-/super-regex-1.0.0.tgz#dd90d944a925a1083e7d8570919b21cb76e3d925" - integrity sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg== - dependencies: - function-timeout "^1.0.1" - time-span "^5.1.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.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== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0, supports-color@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^9.0.0, supports-color@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954" - integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== - -supports-hyperlinks@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-hyperlinks@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.1.0.tgz#b56150ff0173baacc15f21956450b61f2b18d3ac" - integrity sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A== - 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== - -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== - -synckit@^0.9.0, synckit@^0.9.1: - version "0.9.2" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.2.tgz#a3a935eca7922d48b9e7d6c61822ee6c3ae4ec62" - integrity sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw== - dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" - -tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -tar@^6.1.11, tar@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" - integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -tar@^7.4.3: - version "7.4.3" - resolved "https://registry.yarnpkg.com/tar/-/tar-7.4.3.tgz#88bbe9286a3fcd900e94592cda7a22b192e80571" - integrity sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw== - dependencies: - "@isaacs/fs-minipass" "^4.0.0" - chownr "^3.0.0" - minipass "^7.1.2" - minizlib "^3.0.1" - mkdirp "^3.0.1" - yallist "^5.0.0" - -temp-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-3.0.0.tgz#7f147b42ee41234cc6ba3138cd8e8aa2302acffa" - integrity sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw== - -tempy@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/tempy/-/tempy-3.1.0.tgz#00958b6df85db8589cb595465e691852aac038e9" - integrity sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g== - dependencies: - is-stream "^3.0.0" - temp-dir "^3.0.0" - type-fest "^2.12.2" - unique-string "^3.0.0" - -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" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-extensions@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" - integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== - -text-table@^0.2.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 sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== - dependencies: - any-promise "^1.0.0" - -through2@~2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -"through@>=2.2.7 <3", through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -time-span@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/time-span/-/time-span-5.1.0.tgz#80c76cf5a0ca28e0842d3f10a4e99034ce94b90d" - integrity sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA== - dependencies: - convert-hrtime "^5.0.0" - -tiny-relative-date@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" - integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A== - -tinyexec@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98" - integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -tough-cookie@^4.1.2: - version "4.1.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" - integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - -traverse@0.6.8: - version "0.6.8" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.8.tgz#5e5e0c41878b57e4b73ad2f3d1e36a715ea4ab15" - integrity sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA== - -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -treeverse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8" - integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ== - -trough@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" - integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== - -ts-api-utils@^1.0.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.0.tgz#709c6f2076e511a81557f3d07a0cbd566ae8195c" - integrity sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ== - -ts-jest@^29.1.2: - version "29.2.5" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.5.tgz#591a3c108e1f5ebd013d3152142cb5472b399d63" - integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA== - dependencies: - bs-logger "^0.2.6" - ejs "^3.1.10" - fast-json-stable-stringify "^2.1.0" - jest-util "^29.0.0" - json5 "^2.2.3" - lodash.memoize "^4.1.2" - make-error "^1.3.6" - semver "^7.6.3" - yargs-parser "^21.1.1" - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.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.1" - yn "3.1.1" - -tsconfig-paths@^3.15.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" - integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -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== - -tslib@^2.1.0, tslib@^2.6.2: - version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" - integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - -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" - -tuf-js@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.1.tgz#fdd8794b644af1a75c7aaa2b197ddffeb2911b56" - integrity sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA== - dependencies: - "@tufjs/models" "2.0.1" - debug "^4.3.4" - make-fetch-happen "^13.0.1" - -tuf-js@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-3.0.1.tgz#e3f07ed3d8e87afaa70607bd1ef801d5c1f57177" - integrity sha512-+68OP1ZzSF84rTckf3FA95vJ1Zlx/uaXyiiKyPd1pA4rZNkpEvDAKmsu1xUSmbF/chCRYgZ6UZkDwC7PmzmAyA== - dependencies: - "@tufjs/models" "3.0.1" - debug "^4.3.6" - make-fetch-happen "^14.0.1" - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -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" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@4.0.8: - version "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" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-fest@^1.0.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - -type-fest@^2.12.2: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - -type-fest@^3.8.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" - integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== - -type-fest@^4.6.0, type-fest@^4.7.1: - version "4.26.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.26.1.tgz#a4a17fa314f976dd3e6d6675ef6c775c16d7955e" - integrity sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg== - -typed-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" - integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-typed-array "^1.1.13" - -typed-array-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" - integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - -typed-array-byte-offset@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" - integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - -typed-array-length@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" - integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - possible-typed-array-names "^1.0.0" - -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" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -typescript@^5.3.3: - version "5.6.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b" - integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== - -uglify-js@^3.1.4: - version "3.19.3" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f" - integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -undici-types@~6.19.8: - version "6.19.8" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" - integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== - -undici@^5.25.4: - version "5.28.4" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068" - integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== - dependencies: - "@fastify/busboy" "^2.0.0" - -unicode-emoji-modifier-base@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz#dbbd5b54ba30f287e2a8d5a249da6c0cef369459" - integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== - -unicorn-magic@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" - integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== - -unicorn-magic@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.3.0.tgz#4efd45c85a69e0dd576d25532fbfa22aa5c8a104" - integrity sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA== - -unified-engine@^11.2.0: - version "11.2.2" - resolved "https://registry.yarnpkg.com/unified-engine/-/unified-engine-11.2.2.tgz#9e2f7e477cc1f431ae5489d67c7363b00b835d7f" - integrity sha512-15g/gWE7qQl9tQ3nAEbMd5h9HV1EACtFs6N9xaRBZICoCwnNGbal1kOs++ICf4aiTdItZxU2s/kYWhW7htlqJg== - dependencies: - "@types/concat-stream" "^2.0.0" - "@types/debug" "^4.0.0" - "@types/is-empty" "^1.0.0" - "@types/node" "^22.0.0" - "@types/unist" "^3.0.0" - concat-stream "^2.0.0" - debug "^4.0.0" - extend "^3.0.0" - glob "^10.0.0" - ignore "^6.0.0" - is-empty "^1.0.0" - is-plain-obj "^4.0.0" - load-plugin "^6.0.0" - parse-json "^7.0.0" - trough "^2.0.0" - unist-util-inspect "^8.0.0" - vfile "^6.0.0" - vfile-message "^4.0.0" - vfile-reporter "^8.0.0" - vfile-statistics "^3.0.0" - yaml "^2.0.0" - -unified@^11.0.0, unified@^11.0.4: - version "11.0.5" - resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.5.tgz#f66677610a5c0a9ee90cab2b8d4d66037026d9e1" - integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== - dependencies: - "@types/unist" "^3.0.0" - bail "^2.0.0" - devlop "^1.0.0" - extend "^3.0.0" - is-plain-obj "^4.0.0" - trough "^2.0.0" - vfile "^6.0.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -unique-filename@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" - integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== - dependencies: - unique-slug "^4.0.0" - -unique-filename@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-4.0.0.tgz#a06534d370e7c977a939cd1d11f7f0ab8f1fed13" - integrity sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ== - dependencies: - unique-slug "^5.0.0" - -unique-slug@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" - integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== - dependencies: - imurmurhash "^0.1.4" - -unique-slug@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-5.0.0.tgz#ca72af03ad0dbab4dad8aa683f633878b1accda8" - integrity sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg== - dependencies: - imurmurhash "^0.1.4" - -unique-string@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" - integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== - dependencies: - crypto-random-string "^4.0.0" - -unist-util-inspect@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/unist-util-inspect/-/unist-util-inspect-8.1.0.tgz#ff2729b543c483041b3c29cbe04c5460a406ee25" - integrity sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ== - dependencies: - "@types/unist" "^3.0.0" - -unist-util-is@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" - integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== - dependencies: - "@types/unist" "^3.0.0" - -unist-util-position-from-estree@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz#d94da4df596529d1faa3de506202f0c9a23f2200" - integrity sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ== - dependencies: - "@types/unist" "^3.0.0" - -unist-util-stringify-position@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" - integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== - dependencies: - "@types/unist" "^2.0.2" - -unist-util-stringify-position@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" - integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== - dependencies: - "@types/unist" "^3.0.0" - -unist-util-visit-parents@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" - integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== - dependencies: - "@types/unist" "^3.0.0" - unist-util-is "^6.0.0" - -unist-util-visit@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" - integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== - dependencies: - "@types/unist" "^3.0.0" - unist-util-is "^6.0.0" - unist-util-visit-parents "^6.0.0" - -universal-user-agent@^7.0.0, universal-user-agent@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-7.0.2.tgz#52e7d0e9b3dc4df06cc33cb2b9fd79041a54827e" - integrity sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q== - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -universalify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" - integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -update-browserslist-db@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" - integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - -url-join@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-5.0.0.tgz#c2f1e5cbd95fa91082a93b58a1f42fecb4bdbcf1" - integrity sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA== - -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uvu@^0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" - integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== - dependencies: - dequal "^2.0.0" - diff "^5.0.0" - kleur "^4.0.3" - sade "^1.7.3" - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -v8-to-istanbul@^7.0.0: - version "7.1.2" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" - integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -v8-to-istanbul@^9.0.1: - version "9.3.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" - integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^2.0.0" - -validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validate-npm-package-name@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz#a316573e9b49f3ccd90dbb6eb52b3f06c6d604e8" - integrity sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ== - -validate-npm-package-name@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-6.0.0.tgz#3add966c853cfe36e0e8e6a762edd72ae6f1d6ac" - integrity sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg== - -vfile-message@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" - integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== - dependencies: - "@types/unist" "^3.0.0" - unist-util-stringify-position "^4.0.0" - -vfile-reporter@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-8.1.1.tgz#ac06a5a68f1b480609c443062dffea1cfa2d11b1" - integrity sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g== - dependencies: - "@types/supports-color" "^8.0.0" - string-width "^6.0.0" - supports-color "^9.0.0" - unist-util-stringify-position "^4.0.0" - vfile "^6.0.0" - vfile-message "^4.0.0" - vfile-sort "^4.0.0" - vfile-statistics "^3.0.0" - -vfile-sort@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-4.0.0.tgz#fa1929065b62fe5311e5391c9434f745e8641703" - integrity sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ== - dependencies: - vfile "^6.0.0" - vfile-message "^4.0.0" - -vfile-statistics@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-3.0.0.tgz#0f5cd00c611c1862b13a9b5bc5599efaf465f2cf" - integrity sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w== - dependencies: - vfile "^6.0.0" - vfile-message "^4.0.0" - -vfile@^6.0.0, vfile@^6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" - integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== - dependencies: - "@types/unist" "^3.0.0" - vfile-message "^4.0.0" - -w3c-xmlserializer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" - integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== - dependencies: - xml-name-validator "^4.0.0" - -walk-up-path@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" - integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== - -walker@^1.0.7, walker@^1.0.8, walker@~1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-builtin-type@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.4.tgz#592796260602fc3514a1b5ee7fa29319b72380c3" - integrity sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w== - dependencies: - function.prototype.name "^1.1.6" - has-tostringtag "^1.0.2" - is-async-function "^2.0.0" - is-date-object "^1.0.5" - is-finalizationregistry "^1.0.2" - is-generator-function "^1.0.10" - is-regex "^1.1.4" - is-weakref "^1.0.2" - isarray "^2.0.5" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.2" - which-typed-array "^1.1.15" - -which-collection@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" - integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== - dependencies: - is-map "^2.0.3" - is-set "^2.0.3" - is-weakmap "^2.0.2" - is-weakset "^2.0.3" - -which-typed-array@^1.1.14, which-typed-array@^1.1.15: - version "1.1.15" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" - integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.2" - -which@^1.2.14, which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -which@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" - integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== - dependencies: - isexe "^3.1.1" - -which@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/which/-/which-5.0.0.tgz#d93f2d93f79834d4363c7d0c23e00d07c466c8d6" - integrity sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ== - dependencies: - isexe "^3.1.1" - -word-wrap@^1.0.3, word-wrap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -wrap-ansi@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" - integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== - dependencies: - ansi-styles "^6.2.1" - string-width "^7.0.0" - strip-ansi "^7.1.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^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== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -write-file-atomic@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-6.0.0.tgz#e9c89c8191b3ef0606bc79fb92681aa1aa16fa93" - integrity sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^4.0.1" - -ws@^8.11.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -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== - -xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^5.0.5: - version "5.0.8" - 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== - -yallist@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-5.0.0.tgz#00e2de443639ed0d78fd87de0d27469fbcffb533" - integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== - -yaml@^2.0.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.6.0.tgz#14059ad9d0b1680d0f04d3a60fe00f3a857303c3" - integrity sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ== - -yaml@~2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.1.tgz#c9772aacf62cb7494a95b0c4f1fb065b563db130" - integrity sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q== - -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.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@^16.0.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - 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" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^17.0.0, yargs@^17.3.1, yargs@^17.5.1, yargs@^17.7.2: - 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" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yarn@^1.22.21: - version "1.22.22" - resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.22.tgz#ac34549e6aa8e7ead463a7407e1c7390f61a6610" - integrity sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg== - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -yocto-queue@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" - integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== - -yoctocolors@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/yoctocolors/-/yoctocolors-2.1.1.tgz#e0167474e9fbb9e8b3ecca738deaa61dd12e56fc" - integrity sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ== - -zwitch@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" - integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@actions/core@npm:^1.11.1, @actions/core@npm:^1.2.6": + version: 1.11.1 + resolution: "@actions/core@npm:1.11.1" + dependencies: + "@actions/exec": "npm:^1.1.1" + "@actions/http-client": "npm:^2.0.1" + checksum: 10c0/9aa30b397d8d0dbc74e69fe46b23fb105cab989beb420c57eacbfc51c6804abe8da0f46973ca9f639d532ea4c096d0f4d37da0223fbe94f304fa3c5f53537c30 + languageName: node + linkType: hard + +"@actions/exec@npm:^1.1.1": + version: 1.1.1 + resolution: "@actions/exec@npm:1.1.1" + dependencies: + "@actions/io": "npm:^1.0.1" + checksum: 10c0/4a09f6bdbe50ce68b5cf8a7254d176230d6a74bccf6ecc3857feee209a8c950ba9adec87cc5ecceb04110182d1c17117234e45557d72fde6229b7fd3a395322a + languageName: node + linkType: hard + +"@actions/http-client@npm:^2.0.1": + version: 2.2.3 + resolution: "@actions/http-client@npm:2.2.3" + dependencies: + tunnel: "npm:^0.0.6" + undici: "npm:^5.25.4" + checksum: 10c0/13141b66a42aa4afd8c50f7479e13a5cdb5084ccb3c73ec48894b8029743389a3d2bf8cdc18e23fb70cd33995740526dd308815613907571e897c3aa1e5eada6 + languageName: node + linkType: hard + +"@actions/io@npm:^1.0.1": + version: 1.1.3 + resolution: "@actions/io@npm:1.1.3" + checksum: 10c0/5b8751918e5bf0bebd923ba917fb1c0e294401e7ff0037f32c92a4efa4215550df1f6633c63fd4efb2bdaae8711e69b9e36925857db1f38935ff62a5c92ec29e + languageName: node + linkType: hard + +"@ampproject/remapping@npm:^2.2.0": + version: 2.3.0 + resolution: "@ampproject/remapping@npm:2.3.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.26.2": + version: 7.26.2 + resolution: "@babel/code-frame@npm:7.26.2" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.25.9" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10c0/7d79621a6849183c415486af99b1a20b84737e8c11cd55b6544f688c51ce1fd710e6d869c3dd21232023da272a79b91efb3e83b5bc2dc65c1187c5fcd1b72ea8 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.25.9": + version: 7.26.3 + resolution: "@babel/compat-data@npm:7.26.3" + checksum: 10c0/d63e71845c34dfad8d7ff8c15b562e620dbf60e68e3abfa35681d24d612594e8e5ec9790d831a287ecd79ce00f48e7ffddc85c5ce94af7242d45917b9c1a5f90 + languageName: node + linkType: hard + +"@babel/core@npm:^7.1.0, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.7.5": + version: 7.26.0 + resolution: "@babel/core@npm:7.26.0" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.26.0" + "@babel/generator": "npm:^7.26.0" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.0" + "@babel/parser": "npm:^7.26.0" + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/91de73a7ff5c4049fbc747930aa039300e4d2670c2a91f5aa622f1b4868600fc89b01b6278385fbcd46f9574186fa3d9b376a9e7538e50f8d118ec13cfbcb63e + languageName: node + linkType: hard + +"@babel/generator@npm:^7.26.0, @babel/generator@npm:^7.26.3, @babel/generator@npm:^7.7.2": + version: 7.26.3 + resolution: "@babel/generator@npm:7.26.3" + dependencies: + "@babel/parser": "npm:^7.26.3" + "@babel/types": "npm:^7.26.3" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^3.0.2" + checksum: 10c0/54f260558e3e4ec8942da3cde607c35349bb983c3a7c5121243f96893fba3e8cd62e1f1773b2051f936f8c8a10987b758d5c7d76dbf2784e95bb63ab4843fa00 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-compilation-targets@npm:7.25.9" + dependencies: + "@babel/compat-data": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/a6b26a1e4222e69ef8e62ee19374308f060b007828bc11c65025ecc9e814aba21ff2175d6d3f8bf53c863edd728ee8f94ba7870f8f90a37d39552ad9933a8aaa + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-module-imports@npm:7.25.9" + dependencies: + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helper-module-transforms@npm:7.26.0" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/ee111b68a5933481d76633dad9cdab30c41df4479f0e5e1cc4756dc9447c1afd2c9473b5ba006362e35b17f4ebddd5fca090233bef8dfc84dca9d9127e56ec3a + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0": + version: 7.25.9 + resolution: "@babel/helper-plugin-utils@npm:7.25.9" + checksum: 10c0/483066a1ba36ff16c0116cd24f93de05de746a603a777cd695ac7a1b034928a65a4ecb35f255761ca56626435d7abdb73219eba196f9aa83b6c3c3169325599d + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.24.7, @babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-option@npm:7.25.9" + checksum: 10c0/27fb195d14c7dcb07f14e58fe77c44eea19a6a40a74472ec05c441478fa0bb49fa1c32b2d64be7a38870ee48ef6601bdebe98d512f0253aea0b39756c4014f3e + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helpers@npm:7.26.0" + dependencies: + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + checksum: 10c0/343333cced6946fe46617690a1d0789346960910225ce359021a88a60a65bc0d791f0c5d240c0ed46cf8cc63b5fd7df52734ff14e43b9c32feae2b61b1647097 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.3": + version: 7.26.3 + resolution: "@babel/parser@npm:7.26.3" + dependencies: + "@babel/types": "npm:^7.26.3" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/48f736374e61cfd10ddbf7b80678514ae1f16d0e88bc793d2b505d73d9b987ea786fc8c2f7ee8f8b8c467df062030eb07fd0eb2168f0f541ca1f542775852cad + languageName: node + linkType: hard + +"@babel/plugin-syntax-async-generators@npm:^7.8.4": + version: 7.8.4 + resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d13efb282838481348c71073b6be6245b35d4f2f964a8f71e4174f235009f929ef7613df25f8d2338e2d3e44bc4265a9f8638c6aaa136d7a61fe95985f9725c8 + languageName: node + linkType: hard + +"@babel/plugin-syntax-bigint@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/686891b81af2bc74c39013655da368a480f17dd237bf9fbc32048e5865cb706d5a8f65438030da535b332b1d6b22feba336da8fa931f663b6b34e13147d12dde + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.12.13": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.12.13" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120 + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4464bf9115f4a2d02ce1454411baf9cfb665af1da53709c5c56953e5e2913745b0fcce82982a00463d6facbdd93445c691024e310b91431a1e2f024b158f6371 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.24.7": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/e594c185b12bfe0bbe7ca78dfeebe870e6d569a12128cac86f3164a075fe0ff70e25ddbd97fd0782906b91f65560c9dc6957716b7b4a68aba2516c9b7455e352 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/0b08b5e4c3128523d8e346f8cfc86824f0da2697b1be12d71af50a31aff7a56ceb873ed28779121051475010c28d6146a6bfea8518b150b71eeb4e46190172ee + languageName: node + linkType: hard + +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/e98f31b2ec406c57757d115aac81d0336e8434101c224edd9a5c93cefa53faf63eacc69f3138960c8b25401315af03df37f68d316c151c4b933136716ed6906e + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.25.9 + resolution: "@babel/plugin-syntax-jsx@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d56597aff4df39d3decda50193b6dfbe596ca53f437ff2934622ce19a743bf7f43492d3fb3308b0289f5cee2b825d99ceb56526a2b9e7b68bf04901546c5618c + languageName: node + linkType: hard + +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2594cfbe29411ad5bc2ad4058de7b2f6a8c5b86eda525a993959438615479e59c012c14aec979e538d60a584a1a799b60d1b8942c3b18468cb9d99b8fd34cd0b + languageName: node + linkType: hard + +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2024fbb1162899094cfc81152449b12bd0cc7053c6d4bda8ac2852545c87d0a851b1b72ed9560673cbf3ef6248257262c3c04aabf73117215c1b9cc7dd2542ce + languageName: node + linkType: hard + +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c55a82b3113480942c6aa2fcbe976ff9caa74b7b1109ff4369641dfbc88d1da348aceb3c31b6ed311c84d1e7c479440b961906c735d0ab494f688bf2fd5b9bb9 + languageName: node + linkType: hard + +"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ee1eab52ea6437e3101a0a7018b0da698545230015fc8ab129d292980ec6dff94d265e9e90070e8ae5fed42f08f1622c14c94552c77bcac784b37f503a82ff26 + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/27e2493ab67a8ea6d693af1287f7e9acec206d1213ff107a928e85e173741e1d594196f99fec50e9dde404b09164f39dec5864c767212154ffe1caa6af0bc5af + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/46edddf2faa6ebf94147b8e8540dfc60a5ab718e2de4d01b2c0bdf250a4d642c2bd47cbcbb739febcb2bf75514dbcefad3c52208787994b8d0f8822490f55e81 + languageName: node + linkType: hard + +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/69822772561706c87f0a65bc92d0772cea74d6bc0911537904a676d5ff496a6d3ac4e05a166d8125fce4a16605bace141afc3611074e170a994e66e5397787f3 + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/14bf6e65d5bc1231ffa9def5f0ef30b19b51c218fcecaa78cd1bdf7939dfdf23f90336080b7f5196916368e399934ce5d581492d8292b46a2fb569d8b2da106f + languageName: node + linkType: hard + +"@babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.25.9 + resolution: "@babel/plugin-syntax-typescript@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/5192ebe11bd46aea68b7a60fd9555465c59af7e279e71126788e59121b86e00b505816685ab4782abe159232b0f73854e804b54449820b0d950b397ee158caa2 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.12.5": + version: 7.26.0 + resolution: "@babel/runtime@npm:7.26.0" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10c0/12c01357e0345f89f4f7e8c0e81921f2a3e3e101f06e8eaa18a382b517376520cd2fa8c237726eb094dab25532855df28a7baaf1c26342b52782f6936b07c287 + languageName: node + linkType: hard + +"@babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3": + version: 7.25.9 + resolution: "@babel/template@npm:7.25.9" + dependencies: + "@babel/code-frame": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/ebe677273f96a36c92cc15b7aa7b11cc8bc8a3bb7a01d55b2125baca8f19cae94ff3ce15f1b1880fb8437f3a690d9f89d4e91f16fc1dc4d3eb66226d128983ab + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.25.9": + version: 7.26.4 + resolution: "@babel/traverse@npm:7.26.4" + dependencies: + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.26.3" + "@babel/parser": "npm:^7.26.3" + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.3" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10c0/cf25d0eda9505daa0f0832ad786b9e28c9d967e823aaf7fbe425250ab198c656085495aa6bed678b27929e095c84eea9fd778b851a31803da94c9bc4bf4eaef7 + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.26.3, @babel/types@npm:^7.3.3": + version: 7.26.3 + resolution: "@babel/types@npm:7.26.3" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10c0/966c5242c5e55c8704bf7a7418e7be2703a0afa4d19a8480999d5a4ef13d095dd60686615fe5983cb7593b4b06ba3a7de8d6ca501c1d78bdd233a10d90be787b + languageName: node + linkType: hard + +"@bcoe/v8-coverage@npm:^0.2.3": + version: 0.2.3 + resolution: "@bcoe/v8-coverage@npm:0.2.3" + checksum: 10c0/6b80ae4cb3db53f486da2dc63b6e190a74c8c3cca16bb2733f234a0b6a9382b09b146488ae08e2b22cf00f6c83e20f3e040a2f7894f05c045c946d6a090b1d52 + languageName: node + linkType: hard + +"@cnakazawa/watch@npm:^1.0.3": + version: 1.0.4 + resolution: "@cnakazawa/watch@npm:1.0.4" + dependencies: + exec-sh: "npm:^0.3.2" + minimist: "npm:^1.2.0" + bin: + watch: cli.js + checksum: 10c0/8678b6f582bdc5ffe59c0d45c2ad21f4ea1d162ec7ddb32e85078fca481c26958f27bcdef6007b8e9a066da090ccf9d31e1753f8de1e5f32466a04227d70dc31 + languageName: node + linkType: hard + +"@colors/colors@npm:1.5.0": + version: 1.5.0 + resolution: "@colors/colors@npm:1.5.0" + checksum: 10c0/eb42729851adca56d19a08e48d5a1e95efd2a32c55ae0323de8119052be0510d4b7a1611f2abcbf28c044a6c11e6b7d38f99fccdad7429300c37a8ea5fb95b44 + languageName: node + linkType: hard + +"@commitlint/cli@npm:^19.5.0, @commitlint/cli@npm:^19.6.1": + version: 19.6.1 + resolution: "@commitlint/cli@npm:19.6.1" + dependencies: + "@commitlint/format": "npm:^19.5.0" + "@commitlint/lint": "npm:^19.6.0" + "@commitlint/load": "npm:^19.6.1" + "@commitlint/read": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" + tinyexec: "npm:^0.3.0" + yargs: "npm:^17.0.0" + bin: + commitlint: cli.js + checksum: 10c0/fa7a344292f1d25533b195b061bcae0a80434490fae843ad28593c09668f48e9a74906b69f95d26df4152c56c71ab31a0bc169d333e22c6ca53dc54646a2ff19 + languageName: node + linkType: hard + +"@commitlint/config-conventional@npm:^19.5.0": + version: 19.6.0 + resolution: "@commitlint/config-conventional@npm:19.6.0" + dependencies: + "@commitlint/types": "npm:^19.5.0" + conventional-changelog-conventionalcommits: "npm:^7.0.2" + checksum: 10c0/984870138f5d4b947bc2ea8d12fcb8103ef9e6141d0fb50a6e387665495b80b35890d9dc025443a243a53d2a69d7c0bab1d77c5658a6e5a15a3dd7773557fad2 + languageName: node + linkType: hard + +"@commitlint/config-validator@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/config-validator@npm:19.5.0" + dependencies: + "@commitlint/types": "npm:^19.5.0" + ajv: "npm:^8.11.0" + checksum: 10c0/f04b8c66448c9a4f335d1ac9625393d471d2bcc864adc834eeec52ce19939c25475bf90677504df03ab88869e883b4ebfddff68f99f7652900d6b297ef586643 + languageName: node + linkType: hard + +"@commitlint/cz-commitlint@npm:^19.5.0": + version: 19.6.1 + resolution: "@commitlint/cz-commitlint@npm:19.6.1" + dependencies: + "@commitlint/ensure": "npm:^19.5.0" + "@commitlint/load": "npm:^19.6.1" + "@commitlint/types": "npm:^19.5.0" + chalk: "npm:^5.3.0" + lodash.isplainobject: "npm:^4.0.6" + word-wrap: "npm:^1.2.5" + peerDependencies: + commitizen: ^4.0.3 + inquirer: ^9.0.0 + checksum: 10c0/f48ed093413a85dc105347afe6e948543be5d61b14075ee74a5c2d9e0f8027603781847096fe4ee2bc143270f263d667c20a9fe18d5a7d910b0e3612f2205cb9 + languageName: node + linkType: hard + +"@commitlint/ensure@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/ensure@npm:19.5.0" + dependencies: + "@commitlint/types": "npm:^19.5.0" + lodash.camelcase: "npm:^4.3.0" + lodash.kebabcase: "npm:^4.1.1" + lodash.snakecase: "npm:^4.1.1" + lodash.startcase: "npm:^4.4.0" + lodash.upperfirst: "npm:^4.3.1" + checksum: 10c0/94955d424da36a4e9390dfb6e128160d1dcd3ffa20b835a9b6fdd92af46bf8897851f19cbeb9d12a70e9b9c36a993d3a48a60893e74f32fe1b601e1e68484d71 + languageName: node + linkType: hard + +"@commitlint/execute-rule@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/execute-rule@npm:19.5.0" + checksum: 10c0/966dfc09ae3fe609527fb49c7773ae210ade9d14a802a92a57ab251900a77d2968aed08df6b34f175bf4ae9bf5d675b52b346e7b10b717e8a635499e4cf42267 + languageName: node + linkType: hard + +"@commitlint/format@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/format@npm:19.5.0" + dependencies: + "@commitlint/types": "npm:^19.5.0" + chalk: "npm:^5.3.0" + checksum: 10c0/209a3d530d028d483886ea2337d6ec8a95b61119f53f7f1db167b13fd8a204bdcbcd704e649406a0b2285e8424b3bac9e1e6856d2a78f45e176976b9efb76e45 + languageName: node + linkType: hard + +"@commitlint/is-ignored@npm:^19.6.0": + version: 19.6.0 + resolution: "@commitlint/is-ignored@npm:19.6.0" + dependencies: + "@commitlint/types": "npm:^19.5.0" + semver: "npm:^7.6.0" + checksum: 10c0/64e3522598f131aefab72e78f2b0d5d78228041fbe14fd9785611bd5a4ff7dfae38288ff87b171ab2ff722342983387b6e568ab4d758f3c97866eb924252e6c5 + languageName: node + linkType: hard + +"@commitlint/lint@npm:^19.6.0": + version: 19.6.0 + resolution: "@commitlint/lint@npm:19.6.0" + dependencies: + "@commitlint/is-ignored": "npm:^19.6.0" + "@commitlint/parse": "npm:^19.5.0" + "@commitlint/rules": "npm:^19.6.0" + "@commitlint/types": "npm:^19.5.0" + checksum: 10c0/d7e3c6a43d89b2196362dce5abef6665869844455176103f311cab7a92f6b7be60edec4f03d27b946a65ee2ceb8ff16f5955cba1da6ecdeb9efe9f215b16f47f + languageName: node + linkType: hard + +"@commitlint/load@npm:>6.1.1, @commitlint/load@npm:^19.6.1": + version: 19.6.1 + resolution: "@commitlint/load@npm:19.6.1" + dependencies: + "@commitlint/config-validator": "npm:^19.5.0" + "@commitlint/execute-rule": "npm:^19.5.0" + "@commitlint/resolve-extends": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" + chalk: "npm:^5.3.0" + cosmiconfig: "npm:^9.0.0" + cosmiconfig-typescript-loader: "npm:^6.1.0" + lodash.isplainobject: "npm:^4.0.6" + lodash.merge: "npm:^4.6.2" + lodash.uniq: "npm:^4.5.0" + checksum: 10c0/3f92ef6a592491dbb48ae985ef8e3897adccbbb735c09425304cbe574a0ec392b2d724ca14ebb99107e32f60bbec3b873ab64e87fea6d5af7aa579a9052a626e + languageName: node + linkType: hard + +"@commitlint/message@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/message@npm:19.5.0" + checksum: 10c0/72b990ba8c3c41441bff2126f4ea536a635c9768dee7000b4951770ac82c5e0bb4c2d408cf28cadbf51a0abbdb7a09ddd36e0968af0997fcc166596d4c3866a7 + languageName: node + linkType: hard + +"@commitlint/parse@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/parse@npm:19.5.0" + dependencies: + "@commitlint/types": "npm:^19.5.0" + conventional-changelog-angular: "npm:^7.0.0" + conventional-commits-parser: "npm:^5.0.0" + checksum: 10c0/63655cedcf48b29613ef959155ee83f49942406abe40ee6b64ad989a169a0582451dcf15a9c9b69a66011ae451ab2e086fb80c1823cc7ddf275705ff627660b1 + languageName: node + linkType: hard + +"@commitlint/read@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/read@npm:19.5.0" + dependencies: + "@commitlint/top-level": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" + git-raw-commits: "npm:^4.0.0" + minimist: "npm:^1.2.8" + tinyexec: "npm:^0.3.0" + checksum: 10c0/c2d6f958930e815337a4994779ca1dfcbbb6b81b8f3098cc7380e2cc5ddeae69ebd839b48fecd08950e565d43bc42c479915c578eaf57b3877706bca1fad6b8a + languageName: node + linkType: hard + +"@commitlint/resolve-extends@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/resolve-extends@npm:19.5.0" + dependencies: + "@commitlint/config-validator": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" + global-directory: "npm:^4.0.1" + import-meta-resolve: "npm:^4.0.0" + lodash.mergewith: "npm:^4.6.2" + resolve-from: "npm:^5.0.0" + checksum: 10c0/10569a46036b7aa93c77dc5001a67bc9f36b340b97b2fd39b5ee95b0efc5e35335c61f86d4ba0bb5a8e6dd49ccf956990cce9ee29cfea9ba567e02668be01841 + languageName: node + linkType: hard + +"@commitlint/rules@npm:^19.6.0": + version: 19.6.0 + resolution: "@commitlint/rules@npm:19.6.0" + dependencies: + "@commitlint/ensure": "npm:^19.5.0" + "@commitlint/message": "npm:^19.5.0" + "@commitlint/to-lines": "npm:^19.5.0" + "@commitlint/types": "npm:^19.5.0" + checksum: 10c0/1d93b741cfb46e6c5314ddb03282844b65db832aa4767561bb37e9d0595d02330e6a0a557fb66f86d78b2ffd91cd2ed794899df59ee23b27abc44e1e57b42d0e + languageName: node + linkType: hard + +"@commitlint/to-lines@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/to-lines@npm:19.5.0" + checksum: 10c0/7674b4b6887c09e84728b9fa9c986ab77db400bf53ec83aaae84e03e0f3ed33088d450d1f67135f0f7a4cbc1121181775199779e1ca162fe604c902987e3008f + languageName: node + linkType: hard + +"@commitlint/top-level@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/top-level@npm:19.5.0" + dependencies: + find-up: "npm:^7.0.0" + checksum: 10c0/8c1edc513c8d6655606e52d160d31ccd4b13234400ca67d21782798ab66701780b1ec21a7bb411fe8270db7735f10d39d3b0a3e52f3ddd1109b80741eb512bb4 + languageName: node + linkType: hard + +"@commitlint/types@npm:^19.5.0": + version: 19.5.0 + resolution: "@commitlint/types@npm:19.5.0" + dependencies: + "@types/conventional-commits-parser": "npm:^5.0.0" + chalk: "npm:^5.3.0" + checksum: 10c0/f4a93992f43b23cd5af200c69bb73227fdc0f78a6f7ebcda73dad10d558c1ac66ff164aa6dc3c2ddb322c9ed8b1a89b05f458e40d7c440a0358f435d2d71c2df + languageName: node + linkType: hard + +"@cspotcode/source-map-support@npm:^0.8.0": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": "npm:0.3.9" + checksum: 10c0/05c5368c13b662ee4c122c7bfbe5dc0b613416672a829f3e78bc49a357a197e0218d6e74e7c66cfcd04e15a179acab080bd3c69658c9fbefd0e1ccd950a07fc6 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.4.1": + version: 4.4.1 + resolution: "@eslint-community/eslint-utils@npm:4.4.1" + dependencies: + eslint-visitor-keys: "npm:^3.4.3" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: 10c0/2aa0ac2fc50ff3f234408b10900ed4f1a0b19352f21346ad4cc3d83a1271481bdda11097baa45d484dd564c895e0762a27a8240be7a256b3ad47129e96528252 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.6.1": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 10c0/a03d98c246bcb9109aec2c08e4d10c8d010256538dcb3f56610191607214523d4fb1b00aa81df830b6dffb74c5fa0be03642513a289c567949d3e550ca11cdf6 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" + dependencies: + ajv: "npm:^6.12.4" + debug: "npm:^4.3.2" + espree: "npm:^9.6.0" + globals: "npm:^13.19.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + minimatch: "npm:^3.1.2" + strip-json-comments: "npm:^3.1.1" + checksum: 10c0/32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 + languageName: node + linkType: hard + +"@eslint/js@npm:8.57.1": + version: 8.57.1 + resolution: "@eslint/js@npm:8.57.1" + checksum: 10c0/b489c474a3b5b54381c62e82b3f7f65f4b8a5eaaed126546520bf2fede5532a8ed53212919fed1e9048dcf7f37167c8561d58d0ba4492a4244004e7793805223 + languageName: node + linkType: hard + +"@eslint/js@npm:^9.15.0": + version: 9.17.0 + resolution: "@eslint/js@npm:9.17.0" + checksum: 10c0/a0fda8657a01c60aa540f95397754267ba640ffb126e011b97fd65c322a94969d161beeaef57c1441c495da2f31167c34bd38209f7c146c7225072378c3a933d + languageName: node + linkType: hard + +"@fastify/busboy@npm:^2.0.0": + version: 2.1.1 + resolution: "@fastify/busboy@npm:2.1.1" + checksum: 10c0/6f8027a8cba7f8f7b736718b013f5a38c0476eea67034c94a0d3c375e2b114366ad4419e6a6fa7ffc2ef9c6d3e0435d76dd584a7a1cbac23962fda7650b579e3 + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.13.0": + version: 0.13.0 + resolution: "@humanwhocodes/config-array@npm:0.13.0" + dependencies: + "@humanwhocodes/object-schema": "npm:^2.0.3" + debug: "npm:^4.3.1" + minimatch: "npm:^3.0.5" + checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^2.0.3": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: "npm:^7.0.4" + checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2 + languageName: node + linkType: hard + +"@isaacs/string-locale-compare@npm:^1.1.0": + version: 1.1.0 + resolution: "@isaacs/string-locale-compare@npm:1.1.0" + checksum: 10c0/d67226ff7ac544a495c77df38187e69e0e3a0783724777f86caadafb306e2155dc3b5787d5927916ddd7fb4a53561ac8f705448ac3235d18ea60da5854829fdf + languageName: node + linkType: hard + +"@istanbuljs/load-nyc-config@npm:^1.0.0": + version: 1.1.0 + resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" + dependencies: + camelcase: "npm:^5.3.1" + find-up: "npm:^4.1.0" + get-package-type: "npm:^0.1.0" + js-yaml: "npm:^3.13.1" + resolve-from: "npm:^5.0.0" + checksum: 10c0/dd2a8b094887da5a1a2339543a4933d06db2e63cbbc2e288eb6431bd832065df0c099d091b6a67436e71b7d6bf85f01ce7c15f9253b4cbebcc3b9a496165ba42 + languageName: node + linkType: hard + +"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": + version: 0.1.3 + resolution: "@istanbuljs/schema@npm:0.1.3" + checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a + languageName: node + linkType: hard + +"@jamesacarr/jest-reporter-github-actions@npm:^0.0.4": + version: 0.0.4 + resolution: "@jamesacarr/jest-reporter-github-actions@npm:0.0.4" + dependencies: + "@actions/core": "npm:^1.2.6" + "@jest/reporters": "npm:^26.6.2" + checksum: 10c0/cfcdc5c78c37e599e6fdccfe4fdab4ddcfe7c82c604b3ab9b7e381fd25d845a9594311181d3e670fe3caad6413cd936f4890f7fcc621262793221ccba934dbc7 + languageName: node + linkType: hard + +"@jest/console@npm:^26.6.2": + version: 26.6.2 + resolution: "@jest/console@npm:26.6.2" + dependencies: + "@jest/types": "npm:^26.6.2" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + jest-message-util: "npm:^26.6.2" + jest-util: "npm:^26.6.2" + slash: "npm:^3.0.0" + checksum: 10c0/e85a68b1ef49e5ecadb0055812c2493a92592b5206c26e78ce6b21869aff2847e4c808beae1dd353738c24fd51fa9d5bf135ced62931844a5d57f9ff4f40743a + languageName: node + linkType: hard + +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + slash: "npm:^3.0.0" + checksum: 10c0/7be408781d0a6f657e969cbec13b540c329671819c2f57acfad0dae9dbfe2c9be859f38fe99b35dba9ff1536937dc6ddc69fdcd2794812fa3c647a1619797f6c + languageName: node + linkType: hard + +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/reporters": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + jest-changed-files: "npm:^29.7.0" + jest-config: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-resolve-dependencies: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-ansi: "npm:^6.0.0" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 10c0/934f7bf73190f029ac0f96662c85cd276ec460d407baf6b0dbaec2872e157db4d55a7ee0b1c43b18874602f662b37cb973dda469a4e6d88b4e4845b521adeeb2 + languageName: node + linkType: hard + +"@jest/create-cache-key-function@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/create-cache-key-function@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + checksum: 10c0/5c47ef62205264adf77b1ff26b969ce9fe84920b8275c3c5e83f4236859d6ae5e4e7027af99eef04a8e334c4e424d44af3e167972083406070aca733ac2a2795 + languageName: node + linkType: hard + +"@jest/environment@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/environment@npm:29.7.0" + dependencies: + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-mock: "npm:^29.7.0" + checksum: 10c0/c7b1b40c618f8baf4d00609022d2afa086d9c6acc706f303a70bb4b67275868f620ad2e1a9efc5edd418906157337cce50589a627a6400bbdf117d351b91ef86 + languageName: node + linkType: hard + +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" + dependencies: + jest-get-type: "npm:^29.6.3" + checksum: 10c0/60b79d23a5358dc50d9510d726443316253ecda3a7fb8072e1526b3e0d3b14f066ee112db95699b7a43ad3f0b61b750c72e28a5a1cac361d7a2bb34747fa938a + languageName: node + linkType: hard + +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" + dependencies: + expect: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + checksum: 10c0/b41f193fb697d3ced134349250aed6ccea075e48c4f803159db102b826a4e473397c68c31118259868fd69a5cba70e97e1c26d2c2ff716ca39dc73a2ccec037e + languageName: node + linkType: hard + +"@jest/fake-timers@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/fake-timers@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@sinonjs/fake-timers": "npm:^10.0.2" + "@types/node": "npm:*" + jest-message-util: "npm:^29.7.0" + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10c0/cf0a8bcda801b28dc2e2b2ba36302200ee8104a45ad7a21e6c234148932f826cb3bc57c8df3b7b815aeea0861d7b6ca6f0d4778f93b9219398ef28749e03595c + languageName: node + linkType: hard + +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + jest-mock: "npm:^29.7.0" + checksum: 10c0/a385c99396878fe6e4460c43bd7bb0a5cc52befb462cc6e7f2a3810f9e7bcce7cdeb51908fd530391ee452dc856c98baa2c5f5fa8a5b30b071d31ef7f6955cea + languageName: node + linkType: hard + +"@jest/reporters@npm:^26.6.2": + version: 26.6.2 + resolution: "@jest/reporters@npm:26.6.2" + dependencies: + "@bcoe/v8-coverage": "npm:^0.2.3" + "@jest/console": "npm:^26.6.2" + "@jest/test-result": "npm:^26.6.2" + "@jest/transform": "npm:^26.6.2" + "@jest/types": "npm:^26.6.2" + chalk: "npm:^4.0.0" + collect-v8-coverage: "npm:^1.0.0" + exit: "npm:^0.1.2" + glob: "npm:^7.1.2" + graceful-fs: "npm:^4.2.4" + istanbul-lib-coverage: "npm:^3.0.0" + istanbul-lib-instrument: "npm:^4.0.3" + istanbul-lib-report: "npm:^3.0.0" + istanbul-lib-source-maps: "npm:^4.0.0" + istanbul-reports: "npm:^3.0.2" + jest-haste-map: "npm:^26.6.2" + jest-resolve: "npm:^26.6.2" + jest-util: "npm:^26.6.2" + jest-worker: "npm:^26.6.2" + node-notifier: "npm:^8.0.0" + slash: "npm:^3.0.0" + source-map: "npm:^0.6.0" + string-length: "npm:^4.0.1" + terminal-link: "npm:^2.0.0" + v8-to-istanbul: "npm:^7.0.0" + dependenciesMeta: + node-notifier: + optional: true + checksum: 10c0/311f8c467fc2e810ca884cd9ef032c6c58a88c4c54b41a7c85ae6da5a27b3d4c7042938f62611cf19a336a0d487976b348b8f3414cced2802b815d81bf7c1d5f + languageName: node + linkType: hard + +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" + dependencies: + "@bcoe/v8-coverage": "npm:^0.2.3" + "@jest/console": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@jridgewell/trace-mapping": "npm:^0.3.18" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + collect-v8-coverage: "npm:^1.0.0" + exit: "npm:^0.1.2" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + istanbul-lib-coverage: "npm:^3.0.0" + istanbul-lib-instrument: "npm:^6.0.0" + istanbul-lib-report: "npm:^3.0.0" + istanbul-lib-source-maps: "npm:^4.0.0" + istanbul-reports: "npm:^3.1.3" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + slash: "npm:^3.0.0" + string-length: "npm:^4.0.1" + strip-ansi: "npm:^6.0.0" + v8-to-istanbul: "npm:^9.0.1" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 10c0/a754402a799541c6e5aff2c8160562525e2a47e7d568f01ebfc4da66522de39cbb809bbb0a841c7052e4270d79214e70aec3c169e4eae42a03bc1a8a20cb9fa2 + languageName: node + linkType: hard + +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" + dependencies: + "@sinclair/typebox": "npm:^0.27.8" + checksum: 10c0/b329e89cd5f20b9278ae1233df74016ebf7b385e0d14b9f4c1ad18d096c4c19d1e687aa113a9c976b16ec07f021ae53dea811fb8c1248a50ac34fbe009fdf6be + languageName: node + linkType: hard + +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.18" + callsites: "npm:^3.0.0" + graceful-fs: "npm:^4.2.9" + checksum: 10c0/a2f177081830a2e8ad3f2e29e20b63bd40bade294880b595acf2fc09ec74b6a9dd98f126a2baa2bf4941acd89b13a4ade5351b3885c224107083a0059b60a219 + languageName: node + linkType: hard + +"@jest/test-result@npm:^26.6.2": + version: 26.6.2 + resolution: "@jest/test-result@npm:26.6.2" + dependencies: + "@jest/console": "npm:^26.6.2" + "@jest/types": "npm:^26.6.2" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + collect-v8-coverage: "npm:^1.0.0" + checksum: 10c0/4b6f480ebf917f2f6beb5ebefc1c6dedaa768030706f184be9a545e3ad457bde802bae78c50e06f68310084921fb048e030a8eca2adfd7df9f46a6663abb0b98 + languageName: node + linkType: hard + +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + collect-v8-coverage: "npm:^1.0.0" + checksum: 10c0/7de54090e54a674ca173470b55dc1afdee994f2d70d185c80236003efd3fa2b753fff51ffcdda8e2890244c411fd2267529d42c4a50a8303755041ee493e6a04 + languageName: node + linkType: hard + +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" + dependencies: + "@jest/test-result": "npm:^29.7.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + slash: "npm:^3.0.0" + checksum: 10c0/593a8c4272797bb5628984486080cbf57aed09c7cfdc0a634e8c06c38c6bef329c46c0016e84555ee55d1cd1f381518cf1890990ff845524c1123720c8c1481b + languageName: node + linkType: hard + +"@jest/transform@npm:^26.6.2": + version: 26.6.2 + resolution: "@jest/transform@npm:26.6.2" + dependencies: + "@babel/core": "npm:^7.1.0" + "@jest/types": "npm:^26.6.2" + babel-plugin-istanbul: "npm:^6.0.0" + chalk: "npm:^4.0.0" + convert-source-map: "npm:^1.4.0" + fast-json-stable-stringify: "npm:^2.0.0" + graceful-fs: "npm:^4.2.4" + jest-haste-map: "npm:^26.6.2" + jest-regex-util: "npm:^26.0.0" + jest-util: "npm:^26.6.2" + micromatch: "npm:^4.0.2" + pirates: "npm:^4.0.1" + slash: "npm:^3.0.0" + source-map: "npm:^0.6.1" + write-file-atomic: "npm:^3.0.0" + checksum: 10c0/1a1d636528d9b122b87b870633763c67f131533fce61e5db536dfbbea0bbfe8fe130daededb686ccc230389473a2b8ece5d0e1eaf380066d8902bde48579de31 + languageName: node + linkType: hard + +"@jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@jest/types": "npm:^29.6.3" + "@jridgewell/trace-mapping": "npm:^0.3.18" + babel-plugin-istanbul: "npm:^6.1.1" + chalk: "npm:^4.0.0" + convert-source-map: "npm:^2.0.0" + fast-json-stable-stringify: "npm:^2.1.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + pirates: "npm:^4.0.4" + slash: "npm:^3.0.0" + write-file-atomic: "npm:^4.0.2" + checksum: 10c0/7f4a7f73dcf45dfdf280c7aa283cbac7b6e5a904813c3a93ead7e55873761fc20d5c4f0191d2019004fac6f55f061c82eb3249c2901164ad80e362e7a7ede5a6 + languageName: node + linkType: hard + +"@jest/types@npm:^26.6.2": + version: 26.6.2 + resolution: "@jest/types@npm:26.6.2" + dependencies: + "@types/istanbul-lib-coverage": "npm:^2.0.0" + "@types/istanbul-reports": "npm:^3.0.0" + "@types/node": "npm:*" + "@types/yargs": "npm:^15.0.0" + chalk: "npm:^4.0.0" + checksum: 10c0/5b9b957f38a002895eb04bbb8c3dda6fccce8e2551f3f44b02f1f43063a78e8bedce73cd4330b53ede00ae005de5cd805982fbb2ec6ab9feacf96344240d5db2 + languageName: node + linkType: hard + +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": "npm:^29.6.3" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + "@types/istanbul-reports": "npm:^3.0.0" + "@types/node": "npm:*" + "@types/yargs": "npm:^17.0.8" + chalk: "npm:^4.0.0" + checksum: 10c0/ea4e493dd3fb47933b8ccab201ae573dcc451f951dc44ed2a86123cd8541b82aa9d2b1031caf9b1080d6673c517e2dcc25a44b2dc4f3fbc37bfc965d444888c0 + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.8 + resolution: "@jridgewell/gen-mapping@npm:0.3.8" + dependencies: + "@jridgewell/set-array": "npm:^1.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/c668feaf86c501d7c804904a61c23c67447b2137b813b9ce03eca82cb9d65ac7006d766c218685d76e3d72828279b6ee26c347aa1119dab23fbaf36aed51585a + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4 + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.0.3" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + checksum: 10c0/fa425b606d7c7ee5bfa6a31a7b050dd5814b4082f318e0e4190f991902181b4330f43f4805db1dd4f2433fd0ed9cc7a7b9c2683f1deeab1df1b0a98b1e24055b + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4 + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": "npm:2.0.5" + run-parallel: "npm:^1.1.9" + checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": "npm:2.1.5" + fastq: "npm:^1.6.0" + checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 + languageName: node + linkType: hard + +"@nolyfill/is-core-module@npm:1.0.39": + version: 1.0.39 + resolution: "@nolyfill/is-core-module@npm:1.0.39" + checksum: 10c0/34ab85fdc2e0250879518841f74a30c276bca4f6c3e13526d2d1fe515e1adf6d46c25fcd5989d22ea056d76f7c39210945180b4859fc83b050e2da411aa86289 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/agent@npm:3.0.0" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10c0/efe37b982f30740ee77696a80c196912c274ecd2cb243bc6ae7053a50c733ce0f6c09fda085145f33ecf453be19654acca74b69e81eaad4c90f00ccffe2f9271 + languageName: node + linkType: hard + +"@npmcli/arborist@npm:^8.0.0": + version: 8.0.0 + resolution: "@npmcli/arborist@npm:8.0.0" + dependencies: + "@isaacs/string-locale-compare": "npm:^1.1.0" + "@npmcli/fs": "npm:^4.0.0" + "@npmcli/installed-package-contents": "npm:^3.0.0" + "@npmcli/map-workspaces": "npm:^4.0.1" + "@npmcli/metavuln-calculator": "npm:^8.0.0" + "@npmcli/name-from-folder": "npm:^3.0.0" + "@npmcli/node-gyp": "npm:^4.0.0" + "@npmcli/package-json": "npm:^6.0.1" + "@npmcli/query": "npm:^4.0.0" + "@npmcli/redact": "npm:^3.0.0" + "@npmcli/run-script": "npm:^9.0.1" + bin-links: "npm:^5.0.0" + cacache: "npm:^19.0.1" + common-ancestor-path: "npm:^1.0.1" + hosted-git-info: "npm:^8.0.0" + json-parse-even-better-errors: "npm:^4.0.0" + json-stringify-nice: "npm:^1.1.4" + lru-cache: "npm:^10.2.2" + minimatch: "npm:^9.0.4" + nopt: "npm:^8.0.0" + npm-install-checks: "npm:^7.1.0" + npm-package-arg: "npm:^12.0.0" + npm-pick-manifest: "npm:^10.0.0" + npm-registry-fetch: "npm:^18.0.1" + pacote: "npm:^19.0.0" + parse-conflict-json: "npm:^4.0.0" + proc-log: "npm:^5.0.0" + proggy: "npm:^3.0.0" + promise-all-reject-late: "npm:^1.0.0" + promise-call-limit: "npm:^3.0.1" + read-package-json-fast: "npm:^4.0.0" + semver: "npm:^7.3.7" + ssri: "npm:^12.0.0" + treeverse: "npm:^3.0.0" + walk-up-path: "npm:^3.0.1" + bin: + arborist: bin/index.js + checksum: 10c0/7ac8bdc87ee054f0343bb8b0455e5fc1c1aa4ee9ba31b990ac490fa67051acbc6546bab6869196799c2487a1da7710be55d657fbbba531a51449e182a611f197 + languageName: node + linkType: hard + +"@npmcli/config@npm:^8.0.0": + version: 8.3.4 + resolution: "@npmcli/config@npm:8.3.4" + dependencies: + "@npmcli/map-workspaces": "npm:^3.0.2" + "@npmcli/package-json": "npm:^5.1.1" + ci-info: "npm:^4.0.0" + ini: "npm:^4.1.2" + nopt: "npm:^7.2.1" + proc-log: "npm:^4.2.0" + semver: "npm:^7.3.5" + walk-up-path: "npm:^3.0.1" + checksum: 10c0/f44af54bd2cdb32b132a861863bfe7936599a4706490136082585ab71e37ef47f201f8d2013b9902b3ff30cc8264f5da70f834c80f0a29953b52a28da20f5ea7 + languageName: node + linkType: hard + +"@npmcli/config@npm:^9.0.0": + version: 9.0.0 + resolution: "@npmcli/config@npm:9.0.0" + dependencies: + "@npmcli/map-workspaces": "npm:^4.0.1" + "@npmcli/package-json": "npm:^6.0.1" + ci-info: "npm:^4.0.0" + ini: "npm:^5.0.0" + nopt: "npm:^8.0.0" + proc-log: "npm:^5.0.0" + semver: "npm:^7.3.5" + walk-up-path: "npm:^3.0.1" + checksum: 10c0/e059fa1dcf0d931bd9d8ae11cf1823b09945fa451a45d4bd55fd2382022f4f9210ce775fe445d52380324dd4985662f2e2d69c5d572b90eed48a8b904d76eba5 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/fs@npm:4.0.0" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/c90935d5ce670c87b6b14fab04a965a3b8137e585f8b2a6257263bd7f97756dd736cb165bb470e5156a9e718ecd99413dccc54b1138c1a46d6ec7cf325982fe5 + languageName: node + linkType: hard + +"@npmcli/git@npm:^5.0.0": + version: 5.0.8 + resolution: "@npmcli/git@npm:5.0.8" + dependencies: + "@npmcli/promise-spawn": "npm:^7.0.0" + ini: "npm:^4.1.3" + lru-cache: "npm:^10.0.1" + npm-pick-manifest: "npm:^9.0.0" + proc-log: "npm:^4.0.0" + promise-inflight: "npm:^1.0.1" + promise-retry: "npm:^2.0.1" + semver: "npm:^7.3.5" + which: "npm:^4.0.0" + checksum: 10c0/892441c968404950809c7b515a93b78167ea1db2252f259f390feae22a2c5477f3e1629e105e19a084c05afc56e585bf3f13c2f13b54a06bfd6786f0c8429532 + languageName: node + linkType: hard + +"@npmcli/git@npm:^6.0.0, @npmcli/git@npm:^6.0.1": + version: 6.0.1 + resolution: "@npmcli/git@npm:6.0.1" + dependencies: + "@npmcli/promise-spawn": "npm:^8.0.0" + ini: "npm:^5.0.0" + lru-cache: "npm:^10.0.1" + npm-pick-manifest: "npm:^10.0.0" + proc-log: "npm:^5.0.0" + promise-inflight: "npm:^1.0.1" + promise-retry: "npm:^2.0.1" + semver: "npm:^7.3.5" + which: "npm:^5.0.0" + checksum: 10c0/00ab508fd860b4b9001d9a16a847c2544f0450efc1225cd85c18ddba3de9f6d328719ab28088e21ec445f585b8b79d0da1fb28afd3f64f3e7c86e1b5dad3a5a8 + languageName: node + linkType: hard + +"@npmcli/installed-package-contents@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/installed-package-contents@npm:3.0.0" + dependencies: + npm-bundled: "npm:^4.0.0" + npm-normalize-package-bin: "npm:^4.0.0" + bin: + installed-package-contents: bin/index.js + checksum: 10c0/8bb361251cd13b91ae2d04bfcc59b52ffb8cd475d074259c143b3c29a0c4c0ae90d76cfb2cab00ff61cc76bd0c38591b530ce1bdbbc8a61d60ddc6c9ecbf169b + languageName: node + linkType: hard + +"@npmcli/map-workspaces@npm:^3.0.2": + version: 3.0.6 + resolution: "@npmcli/map-workspaces@npm:3.0.6" + dependencies: + "@npmcli/name-from-folder": "npm:^2.0.0" + glob: "npm:^10.2.2" + minimatch: "npm:^9.0.0" + read-package-json-fast: "npm:^3.0.0" + checksum: 10c0/6bfcf8ca05ab9ddc2bd19c0fd91e9982f03cc6e67b0c03f04ba4d2f29b7d83f96e759c0f8f1f4b6dbe3182272483643a0d1269788352edd0c883d6fbfa2f3f14 + languageName: node + linkType: hard + +"@npmcli/map-workspaces@npm:^4.0.1, @npmcli/map-workspaces@npm:^4.0.2": + version: 4.0.2 + resolution: "@npmcli/map-workspaces@npm:4.0.2" + dependencies: + "@npmcli/name-from-folder": "npm:^3.0.0" + "@npmcli/package-json": "npm:^6.0.0" + glob: "npm:^10.2.2" + minimatch: "npm:^9.0.0" + checksum: 10c0/26af5e5271c52d0986228583218fa04fcea2e0e1052f0c50f5c7941bbfb7be487cc98c2e6732f0a3f515f6d9228d7dc04414f0471f40a33b748e2b4cbb350b86 + languageName: node + linkType: hard + +"@npmcli/metavuln-calculator@npm:^8.0.0": + version: 8.0.1 + resolution: "@npmcli/metavuln-calculator@npm:8.0.1" + dependencies: + cacache: "npm:^19.0.0" + json-parse-even-better-errors: "npm:^4.0.0" + pacote: "npm:^20.0.0" + proc-log: "npm:^5.0.0" + semver: "npm:^7.3.5" + checksum: 10c0/df9407debeda3f260da0630bd2fce29200ee0e83442dcda8c2f548828782893fb92eebe1bf9bfe58bc205f5cd7a1b42c0835354e97be9c41bd04573c1c83e7c3 + languageName: node + linkType: hard + +"@npmcli/name-from-folder@npm:^2.0.0": + version: 2.0.0 + resolution: "@npmcli/name-from-folder@npm:2.0.0" + checksum: 10c0/1aa551771d98ab366d4cb06b33efd3bb62b609942f6d9c3bb667c10e5bb39a223d3e330022bc980a44402133e702ae67603862099ac8254dad11f90e77409827 + languageName: node + linkType: hard + +"@npmcli/name-from-folder@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/name-from-folder@npm:3.0.0" + checksum: 10c0/d6a508c5b4920fb28c752718b906b36fc2374873eba804668afdac8b3c322e8b97a5f1a74f3448d847c615a10828446821d90caf7cdf603d424a9f40f3a733df + languageName: node + linkType: hard + +"@npmcli/node-gyp@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/node-gyp@npm:4.0.0" + checksum: 10c0/58422c2ce0693f519135dd32b5c5bcbb441823f08f9294d5ec19d9a22925ba1a5ec04a1b96f606f2ab09a5f5db56e704f6e201a485198ce9d11fb6b2705e6e79 + languageName: node + linkType: hard + +"@npmcli/package-json@npm:^5.1.1": + version: 5.2.1 + resolution: "@npmcli/package-json@npm:5.2.1" + dependencies: + "@npmcli/git": "npm:^5.0.0" + glob: "npm:^10.2.2" + hosted-git-info: "npm:^7.0.0" + json-parse-even-better-errors: "npm:^3.0.0" + normalize-package-data: "npm:^6.0.0" + proc-log: "npm:^4.0.0" + semver: "npm:^7.5.3" + checksum: 10c0/b852e31e3121a0afe5fa20bbf4faa701a59dbc9d9dd7141f7fd57b8e919ce22c1285dcdfea490851fe410fa0f7bc9c397cafba0d268aaa53420a12d7c561dde1 + languageName: node + linkType: hard + +"@npmcli/package-json@npm:^6.0.0, @npmcli/package-json@npm:^6.0.1, @npmcli/package-json@npm:^6.1.0": + version: 6.1.0 + resolution: "@npmcli/package-json@npm:6.1.0" + dependencies: + "@npmcli/git": "npm:^6.0.0" + glob: "npm:^10.2.2" + hosted-git-info: "npm:^8.0.0" + json-parse-even-better-errors: "npm:^4.0.0" + normalize-package-data: "npm:^7.0.0" + proc-log: "npm:^5.0.0" + semver: "npm:^7.5.3" + checksum: 10c0/95cc97f2382084e71a33d2739f0b1e659e32a8449d134d4264ecc2b5ada548069122d95887fe692373e2703b7a296a17e7296a4ce955dfa80c6ce3e00b5fab53 + languageName: node + linkType: hard + +"@npmcli/promise-spawn@npm:^7.0.0": + version: 7.0.2 + resolution: "@npmcli/promise-spawn@npm:7.0.2" + dependencies: + which: "npm:^4.0.0" + checksum: 10c0/8f2af5bc2c1b1ccfb9bcd91da8873ab4723616d8bd5af877c0daa40b1e2cbfa4afb79e052611284179cae918c945a1b99ae1c565d78a355bec1a461011e89f71 + languageName: node + linkType: hard + +"@npmcli/promise-spawn@npm:^8.0.0, @npmcli/promise-spawn@npm:^8.0.2": + version: 8.0.2 + resolution: "@npmcli/promise-spawn@npm:8.0.2" + dependencies: + which: "npm:^5.0.0" + checksum: 10c0/fe987dece7b843d9353d4d38982336ab3beabc2dd3c135862a4ba2921aae55b0d334891fe44c6cbbee20626259e54478bf498ad8d380c14c53732b489ae14f40 + languageName: node + linkType: hard + +"@npmcli/query@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/query@npm:4.0.0" + dependencies: + postcss-selector-parser: "npm:^6.1.2" + checksum: 10c0/e4022e7b13e1bbe0b76e0402630244543faf97aa35a10498bba09ca5dbc765786d7666f0b94ecce1588a4c420aca9933cfce0e90f2b3142c1dbec8cc50bca1bc + languageName: node + linkType: hard + +"@npmcli/redact@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/redact@npm:3.0.0" + checksum: 10c0/34823f0d6a3301b310921b9f849f3c9814339bb9cde9555ddd1d51167c51e8b08ca40160eeb86b54041779805502e51251e0fbe0702fb7ab10173901e5d1d28c + languageName: node + linkType: hard + +"@npmcli/run-script@npm:^9.0.0, @npmcli/run-script@npm:^9.0.1": + version: 9.0.2 + resolution: "@npmcli/run-script@npm:9.0.2" + dependencies: + "@npmcli/node-gyp": "npm:^4.0.0" + "@npmcli/package-json": "npm:^6.0.0" + "@npmcli/promise-spawn": "npm:^8.0.0" + node-gyp: "npm:^11.0.0" + proc-log: "npm:^5.0.0" + which: "npm:^5.0.0" + checksum: 10c0/d2e7763c45a07bad064ecb1ab53fb797a6cb1d125bf3e95bfd164e4886e8539e4714afd04bcf4f13570e8a4b1297a040fa7ecc44732276e11d42ca8244c70662 + languageName: node + linkType: hard + +"@octokit/auth-token@npm:^5.0.0": + version: 5.1.1 + resolution: "@octokit/auth-token@npm:5.1.1" + checksum: 10c0/1e6117c5170de9a5532ffb85e0bda153f4dffdd66871c42de952828eddd9029fe5161a2a8bf20b57f0d45c80f8fb9ddc69aa639e0fa6b776829efb1b0881b154 + languageName: node + linkType: hard + +"@octokit/core@npm:^6.0.0": + version: 6.1.2 + resolution: "@octokit/core@npm:6.1.2" + dependencies: + "@octokit/auth-token": "npm:^5.0.0" + "@octokit/graphql": "npm:^8.0.0" + "@octokit/request": "npm:^9.0.0" + "@octokit/request-error": "npm:^6.0.1" + "@octokit/types": "npm:^13.0.0" + before-after-hook: "npm:^3.0.2" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/f73be16a8013f69197b7744de75537d869f3a2061dda25dcde746d23b87f305bbdc7adbfe044ab0755eec32e6d54d61c73f4ca788d214eba8e88648a3133733e + languageName: node + linkType: hard + +"@octokit/endpoint@npm:^10.0.0": + version: 10.1.1 + resolution: "@octokit/endpoint@npm:10.1.1" + dependencies: + "@octokit/types": "npm:^13.0.0" + universal-user-agent: "npm:^7.0.2" + checksum: 10c0/946517241b33db075e7b3fd8abc6952b9e32be312197d07d415dbefb35b93d26afd508f64315111de7cabc2638d4790a9b0b366cf6cc201de5ec6997c7944c8b + languageName: node + linkType: hard + +"@octokit/graphql@npm:^8.0.0": + version: 8.1.1 + resolution: "@octokit/graphql@npm:8.1.1" + dependencies: + "@octokit/request": "npm:^9.0.0" + "@octokit/types": "npm:^13.0.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/fe68b89b21416f56bc9c0d19bba96a9a8ee567312b6fb764b05ea0649a5e44bec71665a0013e7c34304eb77c20ad7e7a7cf43b87ea27c280350229d71034c131 + languageName: node + linkType: hard + +"@octokit/openapi-types@npm:^22.2.0": + version: 22.2.0 + resolution: "@octokit/openapi-types@npm:22.2.0" + checksum: 10c0/a45bfc735611e836df0729f5922bbd5811d401052b972d1e3bc1278a2d2403e00f4552ce9d1f2793f77f167d212da559c5cb9f1b02c935114ad6d898779546ee + languageName: node + linkType: hard + +"@octokit/plugin-paginate-rest@npm:^11.0.0": + version: 11.3.6 + resolution: "@octokit/plugin-paginate-rest@npm:11.3.6" + dependencies: + "@octokit/types": "npm:^13.6.2" + peerDependencies: + "@octokit/core": ">=6" + checksum: 10c0/b269193d1fd2c7a551e529359f5bcc9d0a29fddccc31008d18281db2874fb83a99e999f2c7486c41adf5cf97f54fd3b115ab0e46d2b785073b53353a213ed928 + languageName: node + linkType: hard + +"@octokit/plugin-retry@npm:^7.0.0": + version: 7.1.2 + resolution: "@octokit/plugin-retry@npm:7.1.2" + dependencies: + "@octokit/request-error": "npm:^6.0.0" + "@octokit/types": "npm:^13.0.0" + bottleneck: "npm:^2.15.3" + peerDependencies: + "@octokit/core": ">=6" + checksum: 10c0/bf2175faaee74b1aadba972417140ab6d983c1aadd1bffed48b7abc6eac9b6c9c230f4f7bf5f8f7e14016998890472188587a1c044e96a664b1cc0fb4c21a8c5 + languageName: node + linkType: hard + +"@octokit/plugin-throttling@npm:^9.0.0": + version: 9.3.2 + resolution: "@octokit/plugin-throttling@npm:9.3.2" + dependencies: + "@octokit/types": "npm:^13.0.0" + bottleneck: "npm:^2.15.3" + peerDependencies: + "@octokit/core": ^6.0.0 + checksum: 10c0/31bff9600d39d93ab1e43ad05ea9651348fb42c04707eb150e5450a035e9a8289316e9884d460d02761b13fd183941130b9c997f7c244e9d693ef2b42ad2ee31 + languageName: node + linkType: hard + +"@octokit/request-error@npm:^6.0.0, @octokit/request-error@npm:^6.0.1": + version: 6.1.5 + resolution: "@octokit/request-error@npm:6.1.5" + dependencies: + "@octokit/types": "npm:^13.0.0" + checksum: 10c0/37afef6c072d987ddf50b3438bcc974741a22ee7f788172876f92b5228ed43f5c4c1556a1d73153508d6c8d3a3d2344c7fefb6cde8678c7f63c2115b8629c49b + languageName: node + linkType: hard + +"@octokit/request@npm:^9.0.0": + version: 9.1.3 + resolution: "@octokit/request@npm:9.1.3" + dependencies: + "@octokit/endpoint": "npm:^10.0.0" + "@octokit/request-error": "npm:^6.0.1" + "@octokit/types": "npm:^13.1.0" + universal-user-agent: "npm:^7.0.2" + checksum: 10c0/41c26387ca9b5b3081a17eebea0c7d6b0122f6b2cb21c2fd7ef63ca587a828448e40b33973416f615fed139c659598f2ae7a1370cc103738f0f6f3297b5fc4ab + languageName: node + linkType: hard + +"@octokit/types@npm:^13.0.0, @octokit/types@npm:^13.1.0, @octokit/types@npm:^13.6.2": + version: 13.6.2 + resolution: "@octokit/types@npm:13.6.2" + dependencies: + "@octokit/openapi-types": "npm:^22.2.0" + checksum: 10c0/ea51afb21b667b25dad9e5daae1701da1b362a4d6ed9609f6d3f9f219e5389bf50f7e53ae029ca190750e278be3ab963cac648a95ad248f245a5fda16a4f1ed1 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd + languageName: node + linkType: hard + +"@pkgr/core@npm:^0.1.0": + version: 0.1.1 + resolution: "@pkgr/core@npm:0.1.1" + checksum: 10c0/3f7536bc7f57320ab2cf96f8973664bef624710c403357429fbf680a5c3b4843c1dbd389bb43daa6b1f6f1f007bb082f5abcb76bb2b5dc9f421647743b71d3d8 + languageName: node + linkType: hard + +"@pnpm/config.env-replace@npm:^1.1.0": + version: 1.1.0 + resolution: "@pnpm/config.env-replace@npm:1.1.0" + checksum: 10c0/4cfc4a5c49ab3d0c6a1f196cfd4146374768b0243d441c7de8fa7bd28eaab6290f514b98490472cc65dbd080d34369447b3e9302585e1d5c099befd7c8b5e55f + languageName: node + linkType: hard + +"@pnpm/network.ca-file@npm:^1.0.1": + version: 1.0.2 + resolution: "@pnpm/network.ca-file@npm:1.0.2" + dependencies: + graceful-fs: "npm:4.2.10" + checksum: 10c0/95f6e0e38d047aca3283550719155ce7304ac00d98911e4ab026daedaf640a63bd83e3d13e17c623fa41ac72f3801382ba21260bcce431c14fbbc06430ecb776 + languageName: node + linkType: hard + +"@pnpm/npm-conf@npm:^2.1.0": + version: 2.3.1 + resolution: "@pnpm/npm-conf@npm:2.3.1" + dependencies: + "@pnpm/config.env-replace": "npm:^1.1.0" + "@pnpm/network.ca-file": "npm:^1.0.1" + config-chain: "npm:^1.1.11" + checksum: 10c0/778a3a34ff7d6000a2594d2a9821f873f737bc56367865718b2cf0ba5d366e49689efe7975148316d7afd8e6f1dcef7d736fbb6ea7ef55caadd1dc93a36bb302 + languageName: node + linkType: hard + +"@react-hookz/deep-equal@npm:^3.0.1": + version: 3.0.1 + resolution: "@react-hookz/deep-equal@npm:3.0.1" + checksum: 10c0/b70ff07e85ea53e624b17321f29450a5e591d6dc5d4493deda4880e8c7f3b4e19f3b62dbf005afa25ccfd350fc4bc8c47e482a03cb995efd9eeade35bdf29dcf + languageName: node + linkType: hard + +"@react-hookz/eslint-config@npm:^2.1.5": + version: 2.3.3 + resolution: "@react-hookz/eslint-config@npm:2.3.3" + dependencies: + "@eslint/js": "npm:^9.15.0" + "@typescript-eslint/eslint-plugin": "npm:^8.15.0" + "@typescript-eslint/parser": "npm:^8.15.0" + "@vitest/eslint-plugin": "npm:^1.1.10" + eslint-config-prettier: "npm:^9.1.0" + eslint-config-xo: "npm:^0.46.0" + eslint-config-xo-typescript: "npm:^7.0.0" + eslint-import-resolver-typescript: "npm:^3.6.3" + eslint-plugin-import: "npm:^2.31.0" + eslint-plugin-jest: "npm:^28.9.0" + eslint-plugin-mdx: "npm:^3.1.5" + eslint-plugin-n: "npm:^17.14.0" + eslint-plugin-no-use-extend-native: "npm:^0.7.2" + eslint-plugin-promise: "npm:^7.1.0" + eslint-plugin-react: "npm:^7.37.2" + eslint-plugin-react-hooks: "npm:^5.0.0" + eslint-plugin-unicorn: "npm:^56.0.1" + peerDependencies: + eslint: ^9.15.0 + eslint-plugin-prettier: ^5.2.1 + jest: "*" + prettier: ^3.3.3 + typescript: ^5.0.0 + vitest: "*" + peerDependenciesMeta: + jest: + optional: true + typescript: + optional: true + vitest: + optional: true + checksum: 10c0/190cbf406ee8ff8a6cc1abfb12d87e0ff8491d17f13a23c1a60efd09949470f26aae2ec46bcebf4c3daaada48b2d755f1fda22f3566a4733d2ff0d2d0041d989 + languageName: node + linkType: hard + +"@react-hookz/eslint-formatter-gha@npm:^3.0.2": + version: 3.0.2 + resolution: "@react-hookz/eslint-formatter-gha@npm:3.0.2" + dependencies: + "@actions/core": "npm:^1.11.1" + checksum: 10c0/148b4427bfb3fb3aba1c5f566b25bb470c4e32b42fe67e21bd0b27681ac489ef414507d61be56d4fd37c3a41b99672dec2d8318f64ebf53f6c6eb8acb4784a26 + languageName: node + linkType: hard + +"@react-hookz/web@workspace:.": + version: 0.0.0-use.local + resolution: "@react-hookz/web@workspace:." + dependencies: + "@babel/core": "npm:^7.23.9" + "@commitlint/cli": "npm:^19.5.0" + "@commitlint/config-conventional": "npm:^19.5.0" + "@commitlint/cz-commitlint": "npm:^19.5.0" + "@jamesacarr/jest-reporter-github-actions": "npm:^0.0.4" + "@react-hookz/deep-equal": "npm:^3.0.1" + "@react-hookz/eslint-config": "npm:^2.1.5" + "@react-hookz/eslint-formatter-gha": "npm:^3.0.2" + "@semantic-release/changelog": "npm:^6.0.3" + "@semantic-release/git": "npm:^10.0.1" + "@semantic-release/github": "npm:^11.0.0" + "@swc/core": "npm:^1.4.2" + "@swc/jest": "npm:^0.2.36" + "@testing-library/react-hooks": "npm:^8.0.1" + "@types/jest": "npm:^29.5.12" + "@types/js-cookie": "npm:^3.0.6" + "@types/react": "npm:^18.2.52" + "@types/react-dom": "npm:^18.2.6" + babel-loader: "npm:^9.1.3" + commitizen: "npm:^4.3.0" + commitlint: "npm:^19.5.0" + concurrently: "npm:^9.0.1" + eslint: "npm:^8.57.0" + eslint-plugin-prettier: "npm:^5.1.3" + husky: "npm:^9.1.7" + jest: "npm:^29.7.0" + jest-environment-jsdom: "npm:^29.7.0" + js-cookie: "npm:^3.0.5" + lint-staged: "npm:^15.2.2" + prettier: "npm:^3.2.5" + react: "npm:^17.0.2" + react-dom: "npm:^17.0.2" + rimraf: "npm:^5.0.5" + semantic-release: "npm:^23.0.2" + ts-jest: "npm:^29.1.2" + ts-node: "npm:^10.9.2" + typescript: "npm:^5.3.3" + peerDependencies: + js-cookie: ^3.0.5 + react: ^16.8 || ^17 || ^18 + react-dom: ^16.8 || ^17 || ^18 + peerDependenciesMeta: + js-cookie: + optional: true + languageName: unknown + linkType: soft + +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 10c0/b5bcfb0d87f7d1c1c7c0f7693f53b07866ed9fec4c34a97a8c948fb9a7c0082e416ce4d3b60beb4f5e167cbe04cdeefbf6771320f3ede059b9ce91188c409a5b + languageName: node + linkType: hard + +"@sec-ant/readable-stream@npm:^0.4.1": + version: 0.4.1 + resolution: "@sec-ant/readable-stream@npm:0.4.1" + checksum: 10c0/64e9e9cf161e848067a5bf60cdc04d18495dc28bb63a8d9f8993e4dd99b91ad34e4b563c85de17d91ffb177ec17a0664991d2e115f6543e73236a906068987af + languageName: node + linkType: hard + +"@semantic-release/changelog@npm:^6.0.3": + version: 6.0.3 + resolution: "@semantic-release/changelog@npm:6.0.3" + dependencies: + "@semantic-release/error": "npm:^3.0.0" + aggregate-error: "npm:^3.0.0" + fs-extra: "npm:^11.0.0" + lodash: "npm:^4.17.4" + peerDependencies: + semantic-release: ">=18.0.0" + checksum: 10c0/94c9c287d34fde6d4c6c574869e853dc04180b1d9e6036097d83e0d14783bf5bb8e546fdc4fac2e979d636fa170fd573eaa4265b9d332e436e4813b7aebe7728 + languageName: node + linkType: hard + +"@semantic-release/commit-analyzer@npm:^12.0.0": + version: 12.0.0 + resolution: "@semantic-release/commit-analyzer@npm:12.0.0" + dependencies: + conventional-changelog-angular: "npm:^7.0.0" + conventional-commits-filter: "npm:^4.0.0" + conventional-commits-parser: "npm:^5.0.0" + debug: "npm:^4.0.0" + import-from-esm: "npm:^1.0.3" + lodash-es: "npm:^4.17.21" + micromatch: "npm:^4.0.2" + peerDependencies: + semantic-release: ">=20.1.0" + checksum: 10c0/d9f76fd64ec679bdbb12b0a10d2493567403067d7fc9271571486f8edd53896b298eec2241a1a4427356309d9dea7e45097c8f1772177e38ebf671ff4fbe09a0 + languageName: node + linkType: hard + +"@semantic-release/error@npm:^3.0.0": + version: 3.0.0 + resolution: "@semantic-release/error@npm:3.0.0" + checksum: 10c0/51f06d11186a6efc543b44996ca1c368a77c6ed18dd823f0362188c37b7ef32f3580bd17654f594e6a72b931ebe69b44bbcb1ee16c755a1d3e44dcb652b47275 + languageName: node + linkType: hard + +"@semantic-release/error@npm:^4.0.0": + version: 4.0.0 + resolution: "@semantic-release/error@npm:4.0.0" + checksum: 10c0/c97fcfbd341765f7c7430bdb32d5f04c61ee15c3eeec374823fbb157640ad03453f24e3a85241bddb29e193b69c6aab480e4d16e76adabb052c01bfbd1698c18 + languageName: node + linkType: hard + +"@semantic-release/git@npm:^10.0.1": + version: 10.0.1 + resolution: "@semantic-release/git@npm:10.0.1" + dependencies: + "@semantic-release/error": "npm:^3.0.0" + aggregate-error: "npm:^3.0.0" + debug: "npm:^4.0.0" + dir-glob: "npm:^3.0.0" + execa: "npm:^5.0.0" + lodash: "npm:^4.17.4" + micromatch: "npm:^4.0.0" + p-reduce: "npm:^2.0.0" + peerDependencies: + semantic-release: ">=18.0.0" + checksum: 10c0/90077068b97ff894e5f6bea05d0c7482929d3bae64c242a1556bc85db4d8f0a52b71215300472539b95248778cdf239a3f8cbad5effaaba719a32bf347dbdd93 + languageName: node + linkType: hard + +"@semantic-release/github@npm:^10.0.0": + version: 10.3.5 + resolution: "@semantic-release/github@npm:10.3.5" + dependencies: + "@octokit/core": "npm:^6.0.0" + "@octokit/plugin-paginate-rest": "npm:^11.0.0" + "@octokit/plugin-retry": "npm:^7.0.0" + "@octokit/plugin-throttling": "npm:^9.0.0" + "@semantic-release/error": "npm:^4.0.0" + aggregate-error: "npm:^5.0.0" + debug: "npm:^4.3.4" + dir-glob: "npm:^3.0.1" + globby: "npm:^14.0.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.0" + issue-parser: "npm:^7.0.0" + lodash-es: "npm:^4.17.21" + mime: "npm:^4.0.0" + p-filter: "npm:^4.0.0" + url-join: "npm:^5.0.0" + peerDependencies: + semantic-release: ">=20.1.0" + checksum: 10c0/fbc3b805d6a5d66604afbd712a3661c7a1742838553058fbf037d83ff5cbf14e96c69d5788631abc3d6ed26d9ecf985963b449518d27fbab9f588be37f5c1eb0 + languageName: node + linkType: hard + +"@semantic-release/github@npm:^11.0.0": + version: 11.0.1 + resolution: "@semantic-release/github@npm:11.0.1" + dependencies: + "@octokit/core": "npm:^6.0.0" + "@octokit/plugin-paginate-rest": "npm:^11.0.0" + "@octokit/plugin-retry": "npm:^7.0.0" + "@octokit/plugin-throttling": "npm:^9.0.0" + "@semantic-release/error": "npm:^4.0.0" + aggregate-error: "npm:^5.0.0" + debug: "npm:^4.3.4" + dir-glob: "npm:^3.0.1" + globby: "npm:^14.0.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.0" + issue-parser: "npm:^7.0.0" + lodash-es: "npm:^4.17.21" + mime: "npm:^4.0.0" + p-filter: "npm:^4.0.0" + url-join: "npm:^5.0.0" + peerDependencies: + semantic-release: ">=24.1.0" + checksum: 10c0/6bcac6f20e6326ddae5085bee1963b5d3fc6571b163e8d31d0485260e51472d2d1a695b6bc4042dcaa1de45c81d0d0c2f82d6cb614abe78af0a6374ef891f76b + languageName: node + linkType: hard + +"@semantic-release/npm@npm:^12.0.0": + version: 12.0.1 + resolution: "@semantic-release/npm@npm:12.0.1" + dependencies: + "@semantic-release/error": "npm:^4.0.0" + aggregate-error: "npm:^5.0.0" + execa: "npm:^9.0.0" + fs-extra: "npm:^11.0.0" + lodash-es: "npm:^4.17.21" + nerf-dart: "npm:^1.0.0" + normalize-url: "npm:^8.0.0" + npm: "npm:^10.5.0" + rc: "npm:^1.2.8" + read-pkg: "npm:^9.0.0" + registry-auth-token: "npm:^5.0.0" + semver: "npm:^7.1.2" + tempy: "npm:^3.0.0" + peerDependencies: + semantic-release: ">=20.1.0" + checksum: 10c0/816d2ed41bd7ef1191c7094ac95c3a9b5b0fc7d58808d0f55d6d8c109e548480032938bd3508295cb7c869ba66f29c3a5976b4ebfd3408f71f999d1b2c66e1a0 + languageName: node + linkType: hard + +"@semantic-release/release-notes-generator@npm:^13.0.0": + version: 13.0.0 + resolution: "@semantic-release/release-notes-generator@npm:13.0.0" + dependencies: + conventional-changelog-angular: "npm:^7.0.0" + conventional-changelog-writer: "npm:^7.0.0" + conventional-commits-filter: "npm:^4.0.0" + conventional-commits-parser: "npm:^5.0.0" + debug: "npm:^4.0.0" + get-stream: "npm:^7.0.0" + import-from-esm: "npm:^1.0.3" + into-stream: "npm:^7.0.0" + lodash-es: "npm:^4.17.21" + read-pkg-up: "npm:^11.0.0" + peerDependencies: + semantic-release: ">=20.1.0" + checksum: 10c0/46dbc2d59e11d1d4e9b75b7d07f955f74ef36e6f240456141f578ac8626c0bb731c04231f1ad4223d140b9734e5af0d477011c501475849eb24ac0bbdb95c829 + languageName: node + linkType: hard + +"@sigstore/bundle@npm:^3.0.0": + version: 3.0.0 + resolution: "@sigstore/bundle@npm:3.0.0" + dependencies: + "@sigstore/protobuf-specs": "npm:^0.3.2" + checksum: 10c0/9a077d390970b1de5f60f7d870f856b26073d8775d4ffe827db4c0195d25e0eadcc0854f6ee76a92be070b289a3386bf0cf02ab30df100c7cf029d01312d7417 + languageName: node + linkType: hard + +"@sigstore/core@npm:^2.0.0": + version: 2.0.0 + resolution: "@sigstore/core@npm:2.0.0" + checksum: 10c0/bb7e668aedcda68312d2ff7c986fd0ba29057ca4dfbaef516c997b0799cd8858b2fc8017a7946fd2e43f237920adbcaa7455097a0a02909ed86cad9f98d592d4 + languageName: node + linkType: hard + +"@sigstore/protobuf-specs@npm:^0.3.2": + version: 0.3.2 + resolution: "@sigstore/protobuf-specs@npm:0.3.2" + checksum: 10c0/108eed419181ff599763f2d28ff5087e7bce9d045919de548677520179fe77fb2e2b7290216c93c7a01bdb2972b604bf44599273c991bbdf628fbe1b9b70aacb + languageName: node + linkType: hard + +"@sigstore/sign@npm:^3.0.0": + version: 3.0.0 + resolution: "@sigstore/sign@npm:3.0.0" + dependencies: + "@sigstore/bundle": "npm:^3.0.0" + "@sigstore/core": "npm:^2.0.0" + "@sigstore/protobuf-specs": "npm:^0.3.2" + make-fetch-happen: "npm:^14.0.1" + proc-log: "npm:^5.0.0" + promise-retry: "npm:^2.0.1" + checksum: 10c0/0d82d84de9dc522389c0eece113f9ead7ea49155daf231ee7477b9c6affc095254e9351fbbfc6dd97d01bae6e42edb6078f2f4d6b194cd08ce5775ce70cfbe44 + languageName: node + linkType: hard + +"@sigstore/tuf@npm:^3.0.0": + version: 3.0.0 + resolution: "@sigstore/tuf@npm:3.0.0" + dependencies: + "@sigstore/protobuf-specs": "npm:^0.3.2" + tuf-js: "npm:^3.0.1" + checksum: 10c0/1e0a1e69f1e2763bb3dd007211412bdab0e66926d4fb16a0b9c38a7b30edc3e8b7a541f82c9c77d24862398b5fe6312d478982237cac81b59dc8e0cea665813c + languageName: node + linkType: hard + +"@sigstore/verify@npm:^2.0.0": + version: 2.0.0 + resolution: "@sigstore/verify@npm:2.0.0" + dependencies: + "@sigstore/bundle": "npm:^3.0.0" + "@sigstore/core": "npm:^2.0.0" + "@sigstore/protobuf-specs": "npm:^0.3.2" + checksum: 10c0/9964d8577dcd7d0bbfb62de0a93f1d7e24a011640940d868fc0112ba776e238ccef7b8d4e1870257fb1bcf28d7bf4cc437ee5919353620da21a95355daceb00b + languageName: node + linkType: hard + +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 10c0/ef6351ae073c45c2ac89494dbb3e1f87cc60a93ce4cde797b782812b6f97da0d620ae81973f104b43c9b7eaa789ad20ba4f6a1359f1cc62f63729a55a7d22d4e + languageName: node + linkType: hard + +"@sindresorhus/is@npm:^4.6.0": + version: 4.6.0 + resolution: "@sindresorhus/is@npm:4.6.0" + checksum: 10c0/33b6fb1d0834ec8dd7689ddc0e2781c2bfd8b9c4e4bacbcb14111e0ae00621f2c264b8a7d36541799d74888b5dccdf422a891a5cb5a709ace26325eedc81e22e + languageName: node + linkType: hard + +"@sindresorhus/merge-streams@npm:^2.1.0": + version: 2.3.0 + resolution: "@sindresorhus/merge-streams@npm:2.3.0" + checksum: 10c0/69ee906f3125fb2c6bb6ec5cdd84e8827d93b49b3892bce8b62267116cc7e197b5cccf20c160a1d32c26014ecd14470a72a5e3ee37a58f1d6dadc0db1ccf3894 + languageName: node + linkType: hard + +"@sindresorhus/merge-streams@npm:^4.0.0": + version: 4.0.0 + resolution: "@sindresorhus/merge-streams@npm:4.0.0" + checksum: 10c0/482ee543629aa1933b332f811a1ae805a213681ecdd98c042b1c1b89387df63e7812248bb4df3910b02b3cc5589d3d73e4393f30e197c9dde18046ccd471fc6b + languageName: node + linkType: hard + +"@sinonjs/commons@npm:^3.0.0": + version: 3.0.1 + resolution: "@sinonjs/commons@npm:3.0.1" + dependencies: + type-detect: "npm:4.0.8" + checksum: 10c0/1227a7b5bd6c6f9584274db996d7f8cee2c8c350534b9d0141fc662eaf1f292ea0ae3ed19e5e5271c8fd390d27e492ca2803acd31a1978be2cdc6be0da711403 + languageName: node + linkType: hard + +"@sinonjs/fake-timers@npm:^10.0.2": + version: 10.3.0 + resolution: "@sinonjs/fake-timers@npm:10.3.0" + dependencies: + "@sinonjs/commons": "npm:^3.0.0" + checksum: 10c0/2e2fb6cc57f227912814085b7b01fede050cd4746ea8d49a1e44d5a0e56a804663b0340ae2f11af7559ea9bf4d087a11f2f646197a660ea3cb04e19efc04aa63 + languageName: node + linkType: hard + +"@stylistic/eslint-plugin@npm:^2.6.1": + version: 2.12.1 + resolution: "@stylistic/eslint-plugin@npm:2.12.1" + dependencies: + "@typescript-eslint/utils": "npm:^8.13.0" + eslint-visitor-keys: "npm:^4.2.0" + espree: "npm:^10.3.0" + estraverse: "npm:^5.3.0" + picomatch: "npm:^4.0.2" + peerDependencies: + eslint: ">=8.40.0" + checksum: 10c0/52859e4148a268c8a16cad53dd2d89a641a26e1e61bb4f7368cf5ee1b7fc9904519ade65719096607dc03f22cf2a06d6d363f5b0e8510609e0a2ebd89acc344d + languageName: node + linkType: hard + +"@swc/core-darwin-arm64@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-darwin-arm64@npm:1.10.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-darwin-x64@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-darwin-x64@npm:1.10.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@swc/core-linux-arm-gnueabihf@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.10.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@swc/core-linux-arm64-gnu@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-linux-arm64-gnu@npm:1.10.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-arm64-musl@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-linux-arm64-musl@npm:1.10.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-linux-x64-gnu@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-linux-x64-gnu@npm:1.10.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-x64-musl@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-linux-x64-musl@npm:1.10.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-win32-arm64-msvc@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-win32-arm64-msvc@npm:1.10.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-win32-ia32-msvc@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-win32-ia32-msvc@npm:1.10.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@swc/core-win32-x64-msvc@npm:1.10.1": + version: 1.10.1 + resolution: "@swc/core-win32-x64-msvc@npm:1.10.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@swc/core@npm:^1.4.2": + version: 1.10.1 + resolution: "@swc/core@npm:1.10.1" + dependencies: + "@swc/core-darwin-arm64": "npm:1.10.1" + "@swc/core-darwin-x64": "npm:1.10.1" + "@swc/core-linux-arm-gnueabihf": "npm:1.10.1" + "@swc/core-linux-arm64-gnu": "npm:1.10.1" + "@swc/core-linux-arm64-musl": "npm:1.10.1" + "@swc/core-linux-x64-gnu": "npm:1.10.1" + "@swc/core-linux-x64-musl": "npm:1.10.1" + "@swc/core-win32-arm64-msvc": "npm:1.10.1" + "@swc/core-win32-ia32-msvc": "npm:1.10.1" + "@swc/core-win32-x64-msvc": "npm:1.10.1" + "@swc/counter": "npm:^0.1.3" + "@swc/types": "npm:^0.1.17" + peerDependencies: + "@swc/helpers": "*" + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: 10c0/a3d3b17c1abc8f32a7cc5dfaa006fc314e71cc0beb43e71b8b1c6c3d3841412a7e55d9e72009debd48159881e8a045ecd0ea56036e022f1bc87213fe29cd9015 + languageName: node + linkType: hard + +"@swc/counter@npm:^0.1.3": + version: 0.1.3 + resolution: "@swc/counter@npm:0.1.3" + checksum: 10c0/8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356 + languageName: node + linkType: hard + +"@swc/jest@npm:^0.2.36": + version: 0.2.37 + resolution: "@swc/jest@npm:0.2.37" + dependencies: + "@jest/create-cache-key-function": "npm:^29.7.0" + "@swc/counter": "npm:^0.1.3" + jsonc-parser: "npm:^3.2.0" + peerDependencies: + "@swc/core": "*" + checksum: 10c0/abe10d87610bf7c172aa7ab14c64599a22e48c1f43a09d6e22733f85f25fb98e57cb4bb58b9554e60a3ac8629be559bd967d7a8601a3ceaacad618aecccebec2 + languageName: node + linkType: hard + +"@swc/types@npm:^0.1.17": + version: 0.1.17 + resolution: "@swc/types@npm:0.1.17" + dependencies: + "@swc/counter": "npm:^0.1.3" + checksum: 10c0/29f5c8933a16042956f1adb7383e836ed7646cbf679826e78b53fdd0c08e8572cb42152e527b6b530a9bd1052d33d0972f90f589761ccd252c12652c9b7a72fc + languageName: node + linkType: hard + +"@testing-library/react-hooks@npm:^8.0.1": + version: 8.0.1 + resolution: "@testing-library/react-hooks@npm:8.0.1" + dependencies: + "@babel/runtime": "npm:^7.12.5" + react-error-boundary: "npm:^3.1.0" + peerDependencies: + "@types/react": ^16.9.0 || ^17.0.0 + react: ^16.9.0 || ^17.0.0 + react-dom: ^16.9.0 || ^17.0.0 + react-test-renderer: ^16.9.0 || ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + react-dom: + optional: true + react-test-renderer: + optional: true + checksum: 10c0/83bef2d4c437b84143213b5275ef00ef14e5bcd344f9ded12b162d253dc3c799138ead4428026b9c725e5a38dbebf611f2898aa43f3e43432bcaccbd7bf413e5 + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: 10c0/073bfa548026b1ebaf1659eb8961e526be22fa77139b10d60e712f46d2f0f05f4e6c8bec62a087d41088ee9e29faa7f54838568e475ab2f776171003c3920858 + languageName: node + linkType: hard + +"@tsconfig/node10@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node10@npm:1.0.11" + checksum: 10c0/28a0710e5d039e0de484bdf85fee883bfd3f6a8980601f4d44066b0a6bcd821d31c4e231d1117731c4e24268bd4cf2a788a6787c12fc7f8d11014c07d582783c + languageName: node + linkType: hard + +"@tsconfig/node12@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node12@npm:1.0.11" + checksum: 10c0/dddca2b553e2bee1308a056705103fc8304e42bb2d2cbd797b84403a223b25c78f2c683ec3e24a095e82cd435387c877239bffcb15a590ba817cd3f6b9a99fd9 + languageName: node + linkType: hard + +"@tsconfig/node14@npm:^1.0.0": + version: 1.0.3 + resolution: "@tsconfig/node14@npm:1.0.3" + checksum: 10c0/67c1316d065fdaa32525bc9449ff82c197c4c19092b9663b23213c8cbbf8d88b6ed6a17898e0cbc2711950fbfaf40388938c1c748a2ee89f7234fc9e7fe2bf44 + languageName: node + linkType: hard + +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.4 + resolution: "@tsconfig/node16@npm:1.0.4" + checksum: 10c0/05f8f2734e266fb1839eb1d57290df1664fe2aa3b0fdd685a9035806daa635f7519bf6d5d9b33f6e69dd545b8c46bd6e2b5c79acb2b1f146e885f7f11a42a5bb + languageName: node + linkType: hard + +"@tufjs/canonical-json@npm:2.0.0": + version: 2.0.0 + resolution: "@tufjs/canonical-json@npm:2.0.0" + checksum: 10c0/52c5ffaef1483ed5c3feedfeba26ca9142fa386eea54464e70ff515bd01c5e04eab05d01eff8c2593291dcaf2397ca7d9c512720e11f52072b04c47a5c279415 + languageName: node + linkType: hard + +"@tufjs/models@npm:3.0.1": + version: 3.0.1 + resolution: "@tufjs/models@npm:3.0.1" + dependencies: + "@tufjs/canonical-json": "npm:2.0.0" + minimatch: "npm:^9.0.5" + checksum: 10c0/0b2022589139102edf28f7fdcd094407fc98ac25bf530ebcf538dd63152baea9b6144b713c8dfc4f6b7580adeff706ab6ecc5f9716c4b816e58a04419abb1926 + languageName: node + linkType: hard + +"@types/acorn@npm:^4.0.0": + version: 4.0.6 + resolution: "@types/acorn@npm:4.0.6" + dependencies: + "@types/estree": "npm:*" + checksum: 10c0/5a65a1d7e91fc95703f0a717897be60fa7ccd34b17f5462056274a246e6690259fe0a1baabc86fd3260354f87245cb3dc483346d7faad2b78fc199763978ede9 + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.1.14": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" + dependencies: + "@babel/parser": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + "@types/babel__generator": "npm:*" + "@types/babel__template": "npm:*" + "@types/babel__traverse": "npm:*" + checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.8 + resolution: "@types/babel__generator@npm:7.6.8" + dependencies: + "@babel/types": "npm:^7.0.0" + checksum: 10c0/f0ba105e7d2296bf367d6e055bb22996886c114261e2cb70bf9359556d0076c7a57239d019dee42bb063f565bade5ccb46009bce2044b2952d964bf9a454d6d2 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": "npm:^7.1.0" + "@babel/types": "npm:^7.0.0" + checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": + version: 7.20.6 + resolution: "@types/babel__traverse@npm:7.20.6" + dependencies: + "@babel/types": "npm:^7.20.7" + checksum: 10c0/7ba7db61a53e28cac955aa99af280d2600f15a8c056619c05b6fc911cbe02c61aa4f2823299221b23ce0cce00b294c0e5f618ec772aa3f247523c2e48cf7b888 + languageName: node + linkType: hard + +"@types/concat-stream@npm:^2.0.0": + version: 2.0.3 + resolution: "@types/concat-stream@npm:2.0.3" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/dd8bdf8061d275f30dc602e04c63ebc001d3a260e722c867916667a45f90fd22da62a2de0919a35f35969b84a14cb94c69d15bdb2c8a518ce8abf3a0e1a16e5d + languageName: node + linkType: hard + +"@types/conventional-commits-parser@npm:^5.0.0": + version: 5.0.1 + resolution: "@types/conventional-commits-parser@npm:5.0.1" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/4b7b561f195f779d07f973801a9f15d77cd58ceb67e817459688b11cc735288d30de050f445c91f4cd2c007fa86824e59a6e3cde602d150b828c4474f6e67be5 + languageName: node + linkType: hard + +"@types/debug@npm:^4.0.0": + version: 4.1.12 + resolution: "@types/debug@npm:4.1.12" + dependencies: + "@types/ms": "npm:*" + checksum: 10c0/5dcd465edbb5a7f226e9a5efd1f399c6172407ef5840686b73e3608ce135eeca54ae8037dcd9f16bdb2768ac74925b820a8b9ecc588a58ca09eca6acabe33e2f + languageName: node + linkType: hard + +"@types/estree-jsx@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/estree-jsx@npm:1.0.5" + dependencies: + "@types/estree": "npm:*" + checksum: 10c0/07b354331516428b27a3ab99ee397547d47eb223c34053b48f84872fafb841770834b90cc1a0068398e7c7ccb15ec51ab00ec64b31dc5e3dbefd624638a35c6d + languageName: node + linkType: hard + +"@types/estree@npm:*, @types/estree@npm:^1.0.0": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a + languageName: node + linkType: hard + +"@types/graceful-fs@npm:^4.1.2, @types/graceful-fs@npm:^4.1.3": + version: 4.1.9 + resolution: "@types/graceful-fs@npm:4.1.9" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/235d2fc69741448e853333b7c3d1180a966dd2b8972c8cbcd6b2a0c6cd7f8d582ab2b8e58219dbc62cce8f1b40aa317ff78ea2201cdd8249da5025adebed6f0b + languageName: node + linkType: hard + +"@types/hast@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" + dependencies: + "@types/unist": "npm:*" + checksum: 10c0/3249781a511b38f1d330fd1e3344eed3c4e7ea8eff82e835d35da78e637480d36fad37a78be5a7aed8465d237ad0446abc1150859d0fde395354ea634decf9f7 + languageName: node + linkType: hard + +"@types/is-empty@npm:^1.0.0": + version: 1.2.3 + resolution: "@types/is-empty@npm:1.2.3" + checksum: 10c0/2ca9af27ce93cc0abe277178a69803e641d755152bf4fc415e1789451ff62f6e39cf15dbdc111d490171d757669937ad4789c7395af55f5e7d261f6bfe416974 + languageName: node + linkType: hard + +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": + version: 2.0.6 + resolution: "@types/istanbul-lib-coverage@npm:2.0.6" + checksum: 10c0/3948088654f3eeb45363f1db158354fb013b362dba2a5c2c18c559484d5eb9f6fd85b23d66c0a7c2fcfab7308d0a585b14dadaca6cc8bf89ebfdc7f8f5102fb7 + languageName: node + linkType: hard + +"@types/istanbul-lib-report@npm:*": + version: 3.0.3 + resolution: "@types/istanbul-lib-report@npm:3.0.3" + dependencies: + "@types/istanbul-lib-coverage": "npm:*" + checksum: 10c0/247e477bbc1a77248f3c6de5dadaae85ff86ac2d76c5fc6ab1776f54512a745ff2a5f791d22b942e3990ddbd40f3ef5289317c4fca5741bedfaa4f01df89051c + languageName: node + linkType: hard + +"@types/istanbul-reports@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/istanbul-reports@npm:3.0.4" + dependencies: + "@types/istanbul-lib-report": "npm:*" + checksum: 10c0/1647fd402aced5b6edac87274af14ebd6b3a85447ef9ad11853a70fd92a98d35f81a5d3ea9fcb5dbb5834e800c6e35b64475e33fcae6bfa9acc70d61497c54ee + languageName: node + linkType: hard + +"@types/jest@npm:^29.5.12": + version: 29.5.14 + resolution: "@types/jest@npm:29.5.14" + dependencies: + expect: "npm:^29.0.0" + pretty-format: "npm:^29.0.0" + checksum: 10c0/18e0712d818890db8a8dab3d91e9ea9f7f19e3f83c2e50b312f557017dc81466207a71f3ed79cf4428e813ba939954fa26ffa0a9a7f153181ba174581b1c2aed + languageName: node + linkType: hard + +"@types/js-cookie@npm:^3.0.6": + version: 3.0.6 + resolution: "@types/js-cookie@npm:3.0.6" + checksum: 10c0/173afaf5ea9d86c22395b9d2a00b6adb0006dcfef165d6dcb0395cdc32f5a5dcf9c3c60f97194119963a15849b8f85121e1ae730b03e40bc0c29b84396ba22f9 + languageName: node + linkType: hard + +"@types/jsdom@npm:^20.0.0": + version: 20.0.1 + resolution: "@types/jsdom@npm:20.0.1" + dependencies: + "@types/node": "npm:*" + "@types/tough-cookie": "npm:*" + parse5: "npm:^7.0.0" + checksum: 10c0/3d4b2a3eab145674ee6da482607c5e48977869109f0f62560bf91ae1a792c9e847ac7c6aaf243ed2e97333cb3c51aef314ffa54a19ef174b8f9592dfcb836b25 + languageName: node + linkType: hard + +"@types/json-schema@npm:^7.0.9": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db + languageName: node + linkType: hard + +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: 10c0/6bf5337bc447b706bb5b4431d37686aa2ea6d07cfd6f79cc31de80170d6ff9b1c7384a9c0ccbc45b3f512bae9e9f75c2e12109806a15331dc94e8a8db6dbb4ac + languageName: node + linkType: hard + +"@types/mdast@npm:^3.0.0": + version: 3.0.15 + resolution: "@types/mdast@npm:3.0.15" + dependencies: + "@types/unist": "npm:^2" + checksum: 10c0/fcbf716c03d1ed5465deca60862e9691414f9c43597c288c7d2aefbe274552e1bbd7aeee91b88a02597e88a28c139c57863d0126fcf8416a95fdc681d054ee3d + languageName: node + linkType: hard + +"@types/mdast@npm:^4.0.0": + version: 4.0.4 + resolution: "@types/mdast@npm:4.0.4" + dependencies: + "@types/unist": "npm:*" + checksum: 10c0/84f403dbe582ee508fd9c7643ac781ad8597fcbfc9ccb8d4715a2c92e4545e5772cbd0dbdf18eda65789386d81b009967fdef01b24faf6640f817287f54d9c82 + languageName: node + linkType: hard + +"@types/ms@npm:*": + version: 0.7.34 + resolution: "@types/ms@npm:0.7.34" + checksum: 10c0/ac80bd90012116ceb2d188fde62d96830ca847823e8ca71255616bc73991aa7d9f057b8bfab79e8ee44ffefb031ddd1bcce63ea82f9e66f7c31ec02d2d823ccc + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:^22.0.0": + version: 22.10.2 + resolution: "@types/node@npm:22.10.2" + dependencies: + undici-types: "npm:~6.20.0" + checksum: 10c0/2c7b71a040f1ef5320938eca8ebc946e6905caa9bbf3d5665d9b3774a8d15ea9fab1582b849a6d28c7fc80756a62c5666bc66b69f42f4d5dafd1ccb193cdb4ac + languageName: node + linkType: hard + +"@types/normalize-package-data@npm:^2.4.0, @types/normalize-package-data@npm:^2.4.3": + version: 2.4.4 + resolution: "@types/normalize-package-data@npm:2.4.4" + checksum: 10c0/aef7bb9b015883d6f4119c423dd28c4bdc17b0e8a0ccf112c78b4fe0e91fbc4af7c6204b04bba0e199a57d2f3fbbd5b4a14bf8739bf9d2a39b2a0aad545e0f86 + languageName: node + linkType: hard + +"@types/prop-types@npm:*": + version: 15.7.14 + resolution: "@types/prop-types@npm:15.7.14" + checksum: 10c0/1ec775160bfab90b67a782d735952158c7e702ca4502968aa82565bd8e452c2de8601c8dfe349733073c31179116cf7340710160d3836aa8a1ef76d1532893b1 + languageName: node + linkType: hard + +"@types/react-dom@npm:^18.2.6": + version: 18.3.5 + resolution: "@types/react-dom@npm:18.3.5" + peerDependencies: + "@types/react": ^18.0.0 + checksum: 10c0/b163d35a6b32a79f5782574a7aeb12a31a647e248792bf437e6d596e2676961c394c5e3c6e91d1ce44ae90441dbaf93158efb4f051c0d61e2612f1cb04ce4faa + languageName: node + linkType: hard + +"@types/react@npm:^18.2.52": + version: 18.3.17 + resolution: "@types/react@npm:18.3.17" + dependencies: + "@types/prop-types": "npm:*" + csstype: "npm:^3.0.2" + checksum: 10c0/475191e9cd0ab5bef35cc1868295d6526cd78b25c1bb816f0747a1e92261688305f81c0e29aff52e6ea70397f133e34c399dc936cb5072f1acf465d9daacc0da + languageName: node + linkType: hard + +"@types/stack-utils@npm:^2.0.0": + version: 2.0.3 + resolution: "@types/stack-utils@npm:2.0.3" + checksum: 10c0/1f4658385ae936330581bcb8aa3a066df03867d90281cdf89cc356d404bd6579be0f11902304e1f775d92df22c6dd761d4451c804b0a4fba973e06211e9bd77c + languageName: node + linkType: hard + +"@types/supports-color@npm:^8.0.0": + version: 8.1.3 + resolution: "@types/supports-color@npm:8.1.3" + checksum: 10c0/03aa3616b403f3deaeb774df6d3a3969845b0c9f449814a83c2c53eb6818f5f9b571ba205330b0ebe8e46f41fd550f581a34b4310b13f0e0448694cfff37ddbf + languageName: node + linkType: hard + +"@types/tough-cookie@npm:*": + version: 4.0.5 + resolution: "@types/tough-cookie@npm:4.0.5" + checksum: 10c0/68c6921721a3dcb40451543db2174a145ef915bc8bcbe7ad4e59194a0238e776e782b896c7a59f4b93ac6acefca9161fccb31d1ce3b3445cb6faa467297fb473 + languageName: node + linkType: hard + +"@types/unist@npm:*, @types/unist@npm:^3.0.0": + version: 3.0.3 + resolution: "@types/unist@npm:3.0.3" + checksum: 10c0/2b1e4adcab78388e088fcc3c0ae8700f76619dbcb4741d7d201f87e2cb346bfc29a89003cfea2d76c996e1061452e14fcd737e8b25aacf949c1f2d6b2bc3dd60 + languageName: node + linkType: hard + +"@types/unist@npm:^2, @types/unist@npm:^2.0.0, @types/unist@npm:^2.0.2": + version: 2.0.11 + resolution: "@types/unist@npm:2.0.11" + checksum: 10c0/24dcdf25a168f453bb70298145eb043cfdbb82472db0bc0b56d6d51cd2e484b9ed8271d4ac93000a80da568f2402e9339723db262d0869e2bf13bc58e081768d + languageName: node + linkType: hard + +"@types/yargs-parser@npm:*": + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: 10c0/e71c3bd9d0b73ca82e10bee2064c384ab70f61034bbfb78e74f5206283fc16a6d85267b606b5c22cb2a3338373586786fed595b2009825d6a9115afba36560a0 + languageName: node + linkType: hard + +"@types/yargs@npm:^15.0.0": + version: 15.0.19 + resolution: "@types/yargs@npm:15.0.19" + dependencies: + "@types/yargs-parser": "npm:*" + checksum: 10c0/9fe9b8645304a628006cbba2d1990fb015e2727274d0e3853f321a379a1242d1da2c15d2f56cff0d4313ae94f0383ccf834c3bded9fb3589608aefb3432fcf00 + languageName: node + linkType: hard + +"@types/yargs@npm:^17.0.8": + version: 17.0.33 + resolution: "@types/yargs@npm:17.0.33" + dependencies: + "@types/yargs-parser": "npm:*" + checksum: 10c0/d16937d7ac30dff697801c3d6f235be2166df42e4a88bf730fa6dc09201de3727c0a9500c59a672122313341de5f24e45ee0ff579c08ce91928e519090b7906b + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:8.18.1, @typescript-eslint/eslint-plugin@npm:^8.15.0": + version: 8.18.1 + resolution: "@typescript-eslint/eslint-plugin@npm:8.18.1" + dependencies: + "@eslint-community/regexpp": "npm:^4.10.0" + "@typescript-eslint/scope-manager": "npm:8.18.1" + "@typescript-eslint/type-utils": "npm:8.18.1" + "@typescript-eslint/utils": "npm:8.18.1" + "@typescript-eslint/visitor-keys": "npm:8.18.1" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.3.1" + natural-compare: "npm:^1.4.0" + ts-api-utils: "npm:^1.3.0" + peerDependencies: + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 10c0/7994d323228f3fc3ec124291cd02761251bcd9a5a6356001d2cb8f68abdb400c3cfbeb343d6941d8e6b6c8d2d616a278bbb3b6d9ed839ba5148a05f60a1f67b4 + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:8.18.1, @typescript-eslint/parser@npm:^8.15.0": + version: 8.18.1 + resolution: "@typescript-eslint/parser@npm:8.18.1" + dependencies: + "@typescript-eslint/scope-manager": "npm:8.18.1" + "@typescript-eslint/types": "npm:8.18.1" + "@typescript-eslint/typescript-estree": "npm:8.18.1" + "@typescript-eslint/visitor-keys": "npm:8.18.1" + debug: "npm:^4.3.4" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 10c0/23ab30b3f00b86108137e7df03710a088046ead3582595b0f8e17d5062770365e24e0a1ae3398bb3a1c29aa0f05a0de30887e2e0f6fb86163e878dd0eed1b25c + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/scope-manager@npm:8.18.1" + dependencies: + "@typescript-eslint/types": "npm:8.18.1" + "@typescript-eslint/visitor-keys": "npm:8.18.1" + checksum: 10c0/97c503b2ece79b6c99ca8e6a5f1f40855cf72f17fbf05e42e62d19c2666e7e6f5df9bf71f13dbc4720c5ee0397670ba8052482a90441fbffa901da5f2e739565 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/type-utils@npm:8.18.1" + dependencies: + "@typescript-eslint/typescript-estree": "npm:8.18.1" + "@typescript-eslint/utils": "npm:8.18.1" + debug: "npm:^4.3.4" + ts-api-utils: "npm:^1.3.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 10c0/cfe5362a22fa5e18a2662928904da024e42c84cb58a46238b9b61edafcd046f53c9505637176c8cd1c386165c6a6ed15a2b51700495cad6c20e0e33499d483a1 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/types@npm:8.18.1" + checksum: 10c0/0a2ca5f7cdebcc844b6bc1e5afc5d83b563f55917d20e3fea3a17ed39c54b003178e26b5ec535113f45c93c569b46628d9a67defa70c01cbdfa801573fed69a2 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/typescript-estree@npm:8.18.1" + dependencies: + "@typescript-eslint/types": "npm:8.18.1" + "@typescript-eslint/visitor-keys": "npm:8.18.1" + debug: "npm:^4.3.4" + fast-glob: "npm:^3.3.2" + is-glob: "npm:^4.0.3" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" + peerDependencies: + typescript: ">=4.8.4 <5.8.0" + checksum: 10c0/7ecb061dc63c729b23f4f15db5736ca93b1ae633108400e6c31cf8af782494912f25c3683f9f952dbfd10cb96031caba247a1ad406abf5d163639a00ac3ce5a3 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:8.18.1, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.13.0": + version: 8.18.1 + resolution: "@typescript-eslint/utils@npm:8.18.1" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@typescript-eslint/scope-manager": "npm:8.18.1" + "@typescript-eslint/types": "npm:8.18.1" + "@typescript-eslint/typescript-estree": "npm:8.18.1" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 10c0/1e29408bd8fbda9f3386dabdb2b7471dacff28342d5bd6521ca3b7932df0cae100030d2eac75d946a82cbefa33f78000eed4ce789128fdea069ffeabd4429d80 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/visitor-keys@npm:8.18.1" + dependencies: + "@typescript-eslint/types": "npm:8.18.1" + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10c0/68651ae1825dbd660ea39b4e1d1618f6ad0026fa3a04aecec296750977cab316564e3e2ace8edbebf1ae86bd17d86acc98cac7b6e9aad4e1c666bd26f18706ad + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.2.0": + version: 1.2.1 + resolution: "@ungap/structured-clone@npm:1.2.1" + checksum: 10c0/127afbcc75ff1532f7b1eb85ee992f9faa70e8d5bb2558da05355d423b966fc279d0a485bf19da2883280e7c299ae4170809a72e78eab086da71c6bcdda5d1e2 + languageName: node + linkType: hard + +"@vitest/eslint-plugin@npm:^1.1.10": + version: 1.1.18 + resolution: "@vitest/eslint-plugin@npm:1.1.18" + peerDependencies: + "@typescript-eslint/utils": ">= 8.0" + eslint: ">= 8.57.0" + typescript: ">= 5.0.0" + vitest: "*" + peerDependenciesMeta: + typescript: + optional: true + vitest: + optional: true + checksum: 10c0/316a9a6b2b9b22fc36037446607ef9a53d7ee3983a9e340f769dc3c136dd90767c29a62c14b860abaf6288cdef8f84cb92f092d2c90bc31ce04cfccf022ef6f9 + languageName: node + linkType: hard + +"JSONStream@npm:^1.3.5": + version: 1.3.5 + resolution: "JSONStream@npm:1.3.5" + dependencies: + jsonparse: "npm:^1.2.0" + through: "npm:>=2.2.7 <3" + bin: + JSONStream: ./bin.js + checksum: 10c0/0f54694da32224d57b715385d4a6b668d2117379d1f3223dc758459246cca58fdc4c628b83e8a8883334e454a0a30aa198ede77c788b55537c1844f686a751f2 + languageName: node + linkType: hard + +"abab@npm:^2.0.6": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 10c0/0b245c3c3ea2598fe0025abf7cc7bb507b06949d51e8edae5d12c1b847a0a0c09639abcb94788332b4e2044ac4491c1e8f571b51c7826fd4b0bda1685ad4a278 + languageName: node + linkType: hard + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 + languageName: node + linkType: hard + +"abbrev@npm:^3.0.0": + version: 3.0.0 + resolution: "abbrev@npm:3.0.0" + checksum: 10c0/049704186396f571650eb7b22ed3627b77a5aedf98bb83caf2eac81ca2a3e25e795394b0464cfb2d6076df3db6a5312139eac5b6a126ca296ac53c5008069c28 + languageName: node + linkType: hard + +"acorn-globals@npm:^7.0.0": + version: 7.0.1 + resolution: "acorn-globals@npm:7.0.1" + dependencies: + acorn: "npm:^8.1.0" + acorn-walk: "npm:^8.0.2" + checksum: 10c0/7437f58e92d99292dbebd0e79531af27d706c9f272f31c675d793da6c82d897e75302a8744af13c7f7978a8399840f14a353b60cf21014647f71012982456d2b + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.0.0, acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1 + languageName: node + linkType: hard + +"acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1": + version: 8.3.4 + resolution: "acorn-walk@npm:8.3.4" + dependencies: + acorn: "npm:^8.11.0" + checksum: 10c0/76537ac5fb2c37a64560feaf3342023dadc086c46da57da363e64c6148dc21b57d49ace26f949e225063acb6fb441eabffd89f7a3066de5ad37ab3e328927c62 + languageName: node + linkType: hard + +"acorn@npm:^8.0.0, acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.11.3, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.9.0": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" + bin: + acorn: bin/acorn + checksum: 10c0/6d4ee461a7734b2f48836ee0fbb752903606e576cc100eb49340295129ca0b452f3ba91ddd4424a1d4406a98adfb2ebb6bd0ff4c49d7a0930c10e462719bbfd7 + languageName: node + linkType: hard + +"agent-base@npm:6": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: "npm:4" + checksum: 10c0/dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261 + languageName: node + linkType: hard + +"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.3 + resolution: "agent-base@npm:7.1.3" + checksum: 10c0/6192b580c5b1d8fb399b9c62bf8343d76654c2dd62afcb9a52b2cf44a8b6ace1e3b704d3fe3547d91555c857d3df02603341ff2cb961b9cfe2b12f9f3c38ee11 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 + languageName: node + linkType: hard + +"aggregate-error@npm:^5.0.0": + version: 5.0.0 + resolution: "aggregate-error@npm:5.0.0" + dependencies: + clean-stack: "npm:^5.2.0" + indent-string: "npm:^5.0.0" + checksum: 10c0/a5de7138571f514bad76290736f49a0db8809247082f2519037e0c37d03fc8d91d733e079d6b1674feda28a757b1932421ad205b8c0f8794a0c0e5bf1be2315e + languageName: node + linkType: hard + +"ajv-formats@npm:^2.1.1": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: "npm:^8.0.0" + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10c0/e43ba22e91b6a48d96224b83d260d3a3a561b42d391f8d3c6d2c1559f9aa5b253bfb306bc94bbeca1d967c014e15a6efe9a207309e95b3eaae07fcbcdc2af662 + languageName: node + linkType: hard + +"ajv-keywords@npm:^5.1.0": + version: 5.1.0 + resolution: "ajv-keywords@npm:5.1.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + peerDependencies: + ajv: ^8.8.2 + checksum: 10c0/18bec51f0171b83123ba1d8883c126e60c6f420cef885250898bf77a8d3e65e3bfb9e8564f497e30bdbe762a83e0d144a36931328616a973ee669dc74d4a9590 + languageName: node + linkType: hard + +"ajv@npm:^6.12.4": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: "npm:^3.1.1" + fast-json-stable-stringify: "npm:^2.0.0" + json-schema-traverse: "npm:^0.4.1" + uri-js: "npm:^4.2.2" + checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 + languageName: node + linkType: hard + +"ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.9.0": + version: 8.17.1 + resolution: "ajv@npm:8.17.1" + dependencies: + fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + checksum: 10c0/ec3ba10a573c6b60f94639ffc53526275917a2df6810e4ab5a6b959d87459f9ef3f00d5e7865b82677cb7d21590355b34da14d1d0b9c32d75f95a187e76fff35 + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.2.1": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: "npm:^0.21.3" + checksum: 10c0/da917be01871525a3dfcf925ae2977bc59e8c513d4423368645634bf5d4ceba5401574eb705c1e92b79f7292af5a656f78c5725a4b0e1cec97c4b413705c1d50 + languageName: node + linkType: hard + +"ansi-escapes@npm:^7.0.0": + version: 7.0.0 + resolution: "ansi-escapes@npm:7.0.0" + dependencies: + environment: "npm:^1.0.0" + checksum: 10c0/86e51e36fabef18c9c004af0a280573e828900641cea35134a124d2715e0c5a473494ab4ce396614505da77638ae290ff72dd8002d9747d2ee53f5d6bbe336be + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.0, ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1, ansi-regex@npm:^6.1.0": + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: "npm:^1.9.0" + checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: 10c0/9c4ca80eb3c2fb7b33841c210d2f20807f40865d27008d7c3f707b7f95cab7d67462a565e2388ac3285b71cb3d9bb2173de8da37c57692a362885ec34d6e27df + languageName: node + linkType: hard + +"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c + languageName: node + linkType: hard + +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 10c0/60f0298ed34c74fef50daab88e8dab786036ed5a7fad02e012ab57e376e0a0b4b29e83b95ea9b5e7d89df762f5f25119b83e00706ecaccb22cfbacee98d74889 + languageName: node + linkType: hard + +"anymatch@npm:^2.0.0": + version: 2.0.0 + resolution: "anymatch@npm:2.0.0" + dependencies: + micromatch: "npm:^3.1.4" + normalize-path: "npm:^2.1.1" + checksum: 10c0/a0d745e52f0233048724b9c9d7b1d8a650f7a50151a0f1d2cce1857b09fd096052d334f8c570cc88596edef8249ae778f767db94025cd00f81e154a37bb7e34e + languageName: node + linkType: hard + +"anymatch@npm:^3.0.3": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac + languageName: node + linkType: hard + +"aproba@npm:^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 10c0/d06e26384a8f6245d8c8896e138c0388824e259a329e0c9f196b4fa533c82502a6fd449586e3604950a0c42921832a458bb3aa0aa9f0ba449cfd4f50fd0d09b5 + languageName: node + linkType: hard + +"archy@npm:~1.0.0": + version: 1.0.0 + resolution: "archy@npm:1.0.0" + checksum: 10c0/200c849dd1c304ea9914827b0555e7e1e90982302d574153e28637db1a663c53de62bad96df42d50e8ce7fc18d05e3437d9aa8c4b383803763755f0956c7d308 + languageName: node + linkType: hard + +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 10c0/070ff801a9d236a6caa647507bdcc7034530604844d64408149a26b9e87c2f97650055c0f049abd1efc024b334635c01f29e0b632b371ac3f26130f4cf65997a + languageName: node + linkType: hard + +"argparse@npm:^1.0.7": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" + dependencies: + sprintf-js: "npm:~1.0.2" + checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e + languageName: node + linkType: hard + +"argv-formatter@npm:~1.0.0": + version: 1.0.0 + resolution: "argv-formatter@npm:1.0.0" + checksum: 10c0/e5582aef98e6b9a70cfe038a3abf6cdd926714b5ce761830bcbd5ac7be86d17ae583fcc8a2cdf4a2ac0b6024ec100b7312160fcefb1520998f476473da6a941d + languageName: node + linkType: hard + +"arr-diff@npm:^4.0.0": + version: 4.0.0 + resolution: "arr-diff@npm:4.0.0" + checksum: 10c0/67b80067137f70c89953b95f5c6279ad379c3ee39f7143578e13bd51580a40066ee2a55da066e22d498dce10f68c2d70056d7823f972fab99dfbf4c78d0bc0f7 + languageName: node + linkType: hard + +"arr-flatten@npm:^1.1.0": + version: 1.1.0 + resolution: "arr-flatten@npm:1.1.0" + checksum: 10c0/bef53be02ed3bc58f202b3861a5b1eb6e1ae4fecf39c3ad4d15b1e0433f941077d16e019a33312d820844b0661777322acbb7d0c447b04d9bdf7d6f9c532548a + languageName: node + linkType: hard + +"arr-union@npm:^3.1.0": + version: 3.1.0 + resolution: "arr-union@npm:3.1.0" + checksum: 10c0/7d5aa05894e54aa93c77c5726c1dd5d8e8d3afe4f77983c0aa8a14a8a5cbe8b18f0cf4ecaa4ac8c908ef5f744d2cbbdaa83fd6e96724d15fea56cfa7f5efdd51 + languageName: node + linkType: hard + +"array-buffer-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "array-buffer-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.5" + is-array-buffer: "npm:^3.0.4" + checksum: 10c0/f5cdf54527cd18a3d2852ddf73df79efec03829e7373a8322ef5df2b4ef546fb365c19c71d6b42d641cb6bfe0f1a2f19bc0ece5b533295f86d7c3d522f228917 + languageName: node + linkType: hard + +"array-ify@npm:^1.0.0": + version: 1.0.0 + resolution: "array-ify@npm:1.0.0" + checksum: 10c0/75c9c072faac47bd61779c0c595e912fe660d338504ac70d10e39e1b8a4a0c9c87658703d619b9d1b70d324177ae29dc8d07dda0d0a15d005597bc4c5a59c70c + languageName: node + linkType: hard + +"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8": + version: 3.1.8 + resolution: "array-includes@npm:3.1.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + is-string: "npm:^1.0.7" + checksum: 10c0/5b1004d203e85873b96ddc493f090c9672fd6c80d7a60b798da8a14bff8a670ff95db5aafc9abc14a211943f05220dacf8ea17638ae0af1a6a47b8c0b48ce370 + languageName: node + linkType: hard + +"array-unique@npm:^0.3.2": + version: 0.3.2 + resolution: "array-unique@npm:0.3.2" + checksum: 10c0/dbf4462cdba8a4b85577be07705210b3d35be4b765822a3f52962d907186617638ce15e0603a4fefdcf82f4cbbc9d433f8cbbd6855148a68872fa041b6474121 + languageName: node + linkType: hard + +"array.prototype.findlast@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.findlast@npm:1.2.5" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10c0/ddc952b829145ab45411b9d6adcb51a8c17c76bf89c9dd64b52d5dffa65d033da8c076ed2e17091779e83bc892b9848188d7b4b33453c5565e65a92863cb2775 + languageName: node + linkType: hard + +"array.prototype.findlastindex@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.findlastindex@npm:1.2.5" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10c0/962189487728b034f3134802b421b5f39e42ee2356d13b42d2ddb0e52057ffdcc170b9524867f4f0611a6f638f4c19b31e14606e8bcbda67799e26685b195aa3 + languageName: node + linkType: hard + +"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2": + version: 1.3.3 + resolution: "array.prototype.flat@npm:1.3.3" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10c0/d90e04dfbc43bb96b3d2248576753d1fb2298d2d972e29ca7ad5ec621f0d9e16ff8074dae647eac4f31f4fb7d3f561a7ac005fb01a71f51705a13b5af06a7d8a + languageName: node + linkType: hard + +"array.prototype.flatmap@npm:^1.3.2": + version: 1.3.3 + resolution: "array.prototype.flatmap@npm:1.3.3" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10c0/ba899ea22b9dc9bf276e773e98ac84638ed5e0236de06f13d63a90b18ca9e0ec7c97d622d899796e3773930b946cd2413d098656c0c5d8cc58c6f25c21e6bd54 + languageName: node + linkType: hard + +"array.prototype.tosorted@npm:^1.1.4": + version: 1.1.4 + resolution: "array.prototype.tosorted@npm:1.1.4" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.3" + es-errors: "npm:^1.3.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10c0/eb3c4c4fc0381b0bf6dba2ea4d48d367c2827a0d4236a5718d97caaccc6b78f11f4cadf090736e86301d295a6aa4967ed45568f92ced51be8cbbacd9ca410943 + languageName: node + linkType: hard + +"arraybuffer.prototype.slice@npm:^1.0.4": + version: 1.0.4 + resolution: "arraybuffer.prototype.slice@npm:1.0.4" + dependencies: + array-buffer-byte-length: "npm:^1.0.1" + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + is-array-buffer: "npm:^3.0.4" + checksum: 10c0/2f2459caa06ae0f7f615003f9104b01f6435cc803e11bd2a655107d52a1781dc040532dc44d93026b694cc18793993246237423e13a5337e86b43ed604932c06 + languageName: node + linkType: hard + +"assign-symbols@npm:^1.0.0": + version: 1.0.0 + resolution: "assign-symbols@npm:1.0.0" + checksum: 10c0/29a654b8a6da6889a190d0d0efef4b1bfb5948fa06cbc245054aef05139f889f2f7c75b989917e3fde853fc4093b88048e4de8578a73a76f113d41bfd66e5775 + languageName: node + linkType: hard + +"async@npm:^3.2.3": + version: 3.2.6 + resolution: "async@npm:3.2.6" + checksum: 10c0/36484bb15ceddf07078688d95e27076379cc2f87b10c03b6dd8a83e89475a3c8df5848859dd06a4c95af1e4c16fc973de0171a77f18ea00be899aca2a4f85e70 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d + languageName: node + linkType: hard + +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 10c0/4c058baf6df1bc5a1697cf182e2029c58cd99975288a13f9e70068ef5d6f4e1f1fd7c4d2c3c4912eae44797d1725be9700995736deca441b39f3e66d8dee97ef + languageName: node + linkType: hard + +"atob@npm:^2.1.2": + version: 2.1.2 + resolution: "atob@npm:2.1.2" + bin: + atob: bin/atob.js + checksum: 10c0/ada635b519dc0c576bb0b3ca63a73b50eefacf390abb3f062558342a8d68f2db91d0c8db54ce81b0d89de3b0f000de71f3ae7d761fd7d8cc624278fe443d6c7e + languageName: node + linkType: hard + +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: "npm:^1.0.0" + checksum: 10c0/d07226ef4f87daa01bd0fe80f8f310982e345f372926da2e5296aecc25c41cab440916bbaa4c5e1034b453af3392f67df5961124e4b586df1e99793a1374bdb2 + languageName: node + linkType: hard + +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" + dependencies: + "@jest/transform": "npm:^29.7.0" + "@types/babel__core": "npm:^7.1.14" + babel-plugin-istanbul: "npm:^6.1.1" + babel-preset-jest: "npm:^29.6.3" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + slash: "npm:^3.0.0" + peerDependencies: + "@babel/core": ^7.8.0 + checksum: 10c0/2eda9c1391e51936ca573dd1aedfee07b14c59b33dbe16ef347873ddd777bcf6e2fc739681e9e9661ab54ef84a3109a03725be2ac32cd2124c07ea4401cbe8c1 + languageName: node + linkType: hard + +"babel-loader@npm:^9.1.3": + version: 9.2.1 + resolution: "babel-loader@npm:9.2.1" + dependencies: + find-cache-dir: "npm:^4.0.0" + schema-utils: "npm:^4.0.0" + peerDependencies: + "@babel/core": ^7.12.0 + webpack: ">=5" + checksum: 10c0/efb82faff4c7c27e9c15bb28bf11c73200e61cf365118a9514e8d74dd489d0afc2a0d5aaa62cb4254eefc2ab631579224d95a03fd245410f28ea75e24de54ba4 + languageName: node + linkType: hard + +"babel-plugin-istanbul@npm:^6.0.0, babel-plugin-istanbul@npm:^6.1.1": + version: 6.1.1 + resolution: "babel-plugin-istanbul@npm:6.1.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.0.0" + "@istanbuljs/load-nyc-config": "npm:^1.0.0" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-instrument: "npm:^5.0.4" + test-exclude: "npm:^6.0.0" + checksum: 10c0/1075657feb705e00fd9463b329921856d3775d9867c5054b449317d39153f8fbcebd3e02ebf00432824e647faff3683a9ca0a941325ef1afe9b3c4dd51b24beb + languageName: node + linkType: hard + +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" + dependencies: + "@babel/template": "npm:^7.3.3" + "@babel/types": "npm:^7.3.3" + "@types/babel__core": "npm:^7.1.14" + "@types/babel__traverse": "npm:^7.0.6" + checksum: 10c0/7e6451caaf7dce33d010b8aafb970e62f1b0c0b57f4978c37b0d457bbcf0874d75a395a102daf0bae0bd14eafb9f6e9a165ee5e899c0a4f1f3bb2e07b304ed2e + languageName: node + linkType: hard + +"babel-preset-current-node-syntax@npm:^1.0.0": + version: 1.1.0 + resolution: "babel-preset-current-node-syntax@npm:1.1.0" + dependencies: + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/plugin-syntax-bigint": "npm:^7.8.3" + "@babel/plugin-syntax-class-properties": "npm:^7.12.13" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" + "@babel/plugin-syntax-import-meta": "npm:^7.10.4" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/0b838d4412e3322cb4436f246e24e9c00bebcedfd8f00a2f51489db683bd35406bbd55a700759c28d26959c6e03f84dd6a1426f576f440267c1d7a73c5717281 + languageName: node + linkType: hard + +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" + dependencies: + babel-plugin-jest-hoist: "npm:^29.6.3" + babel-preset-current-node-syntax: "npm:^1.0.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/ec5fd0276b5630b05f0c14bb97cc3815c6b31600c683ebb51372e54dcb776cff790bdeeabd5b8d01ede375a040337ccbf6a3ccd68d3a34219125945e167ad943 + languageName: node + linkType: hard + +"bail@npm:^2.0.0": + version: 2.0.2 + resolution: "bail@npm:2.0.2" + checksum: 10c0/25cbea309ef6a1f56214187004e8f34014eb015713ea01fa5b9b7e9e776ca88d0fdffd64143ac42dc91966c915a4b7b683411b56e14929fad16153fc026ffb8b + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf + languageName: node + linkType: hard + +"base@npm:^0.11.1": + version: 0.11.2 + resolution: "base@npm:0.11.2" + dependencies: + cache-base: "npm:^1.0.1" + class-utils: "npm:^0.3.5" + component-emitter: "npm:^1.2.1" + define-property: "npm:^1.0.0" + isobject: "npm:^3.0.1" + mixin-deep: "npm:^1.2.0" + pascalcase: "npm:^0.1.1" + checksum: 10c0/30a2c0675eb52136b05ef496feb41574d9f0bb2d6d677761da579c00a841523fccf07f1dbabec2337b5f5750f428683b8ca60d89e56a1052c4ae1c0cd05de64d + languageName: node + linkType: hard + +"before-after-hook@npm:^3.0.2": + version: 3.0.2 + resolution: "before-after-hook@npm:3.0.2" + checksum: 10c0/dea640f9e88a1085372c9bcc974b7bf379267490693da92ec102a7d8b515dd1e95f00ef575a146b83ca638104c57406c3427d37bdf082f602dde4b56d05bba14 + languageName: node + linkType: hard + +"bin-links@npm:^5.0.0": + version: 5.0.0 + resolution: "bin-links@npm:5.0.0" + dependencies: + cmd-shim: "npm:^7.0.0" + npm-normalize-package-bin: "npm:^4.0.0" + proc-log: "npm:^5.0.0" + read-cmd-shim: "npm:^5.0.0" + write-file-atomic: "npm:^6.0.0" + checksum: 10c0/7ef087164b13df1810bf087146880a5d43d7d0beb95c51ec0664224f9371e1ca0de70c813306de6de173fb1a3fd0ca49e636ba80c951a70ce6bd7cbf48daf075 + languageName: node + linkType: hard + +"binary-extensions@npm:^2.3.0": + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5 + languageName: node + linkType: hard + +"bl@npm:^4.1.0": + version: 4.1.0 + resolution: "bl@npm:4.1.0" + dependencies: + buffer: "npm:^5.5.0" + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.4.0" + checksum: 10c0/02847e1d2cb089c9dc6958add42e3cdeaf07d13f575973963335ac0fdece563a50ac770ac4c8fa06492d2dd276f6cc3b7f08c7cd9c7a7ad0f8d388b2a28def5f + languageName: node + linkType: hard + +"bottleneck@npm:^2.15.3": + version: 2.19.5 + resolution: "bottleneck@npm:2.19.5" + checksum: 10c0/b0f72e45b2e0f56a21ba720183f16bef8e693452fb0495d997fa354e42904353a94bd8fd429868e6751bc85e54b6755190519eed5a0ae0a94a5185209ae7c6d0 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f + languageName: node + linkType: hard + +"braces@npm:^2.3.1": + version: 2.3.2 + resolution: "braces@npm:2.3.2" + dependencies: + arr-flatten: "npm:^1.1.0" + array-unique: "npm:^0.3.2" + extend-shallow: "npm:^2.0.1" + fill-range: "npm:^4.0.0" + isobject: "npm:^3.0.1" + repeat-element: "npm:^1.1.2" + snapdragon: "npm:^0.8.1" + snapdragon-node: "npm:^2.0.1" + split-string: "npm:^3.0.2" + to-regex: "npm:^3.0.1" + checksum: 10c0/72b27ea3ea2718f061c29e70fd6e17606e37c65f5801abddcf0b0052db1de7d60f3bf92cfc220ab57b44bd0083a5f69f9d03b3461d2816cfe9f9398207acc728 + languageName: node + linkType: hard + +"braces@npm:^3.0.3": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: "npm:^7.1.1" + checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04 + languageName: node + linkType: hard + +"browserslist@npm:^4.24.0, browserslist@npm:^4.24.2": + version: 4.24.3 + resolution: "browserslist@npm:4.24.3" + dependencies: + caniuse-lite: "npm:^1.0.30001688" + electron-to-chromium: "npm:^1.5.73" + node-releases: "npm:^2.0.19" + update-browserslist-db: "npm:^1.1.1" + bin: + browserslist: cli.js + checksum: 10c0/bab261ef7b6e1656a719a9fa31240ae7ce4d5ba68e479f6b11e348d819346ab4c0ff6f4821f43adcc9c193a734b186775a83b37979e70a69d182965909fe569a + languageName: node + linkType: hard + +"bs-logger@npm:^0.2.6": + version: 0.2.6 + resolution: "bs-logger@npm:0.2.6" + dependencies: + fast-json-stable-stringify: "npm:2.x" + checksum: 10c0/80e89aaaed4b68e3374ce936f2eb097456a0dddbf11f75238dbd53140b1e39259f0d248a5089ed456f1158984f22191c3658d54a713982f676709fbe1a6fa5a0 + languageName: node + linkType: hard + +"bser@npm:2.1.1": + version: 2.1.1 + resolution: "bser@npm:2.1.1" + dependencies: + node-int64: "npm:^0.4.0" + checksum: 10c0/24d8dfb7b6d457d73f32744e678a60cc553e4ec0e9e1a01cf614b44d85c3c87e188d3cc78ef0442ce5032ee6818de20a0162ba1074725c0d08908f62ea979227 + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 + languageName: node + linkType: hard + +"buffer@npm:^5.5.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10c0/27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e + languageName: node + linkType: hard + +"builtin-modules@npm:^3.3.0": + version: 3.3.0 + resolution: "builtin-modules@npm:3.3.0" + checksum: 10c0/2cb3448b4f7306dc853632a4fcddc95e8d4e4b9868c139400027b71938fc6806d4ff44007deffb362ac85724bd40c2c6452fb6a0aa4531650eeddb98d8e5ee8a + languageName: node + linkType: hard + +"cacache@npm:^19.0.0, cacache@npm:^19.0.1": + version: 19.0.1 + resolution: "cacache@npm:19.0.1" + dependencies: + "@npmcli/fs": "npm:^4.0.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^7.0.2" + ssri: "npm:^12.0.0" + tar: "npm:^7.4.3" + unique-filename: "npm:^4.0.0" + checksum: 10c0/01f2134e1bd7d3ab68be851df96c8d63b492b1853b67f2eecb2c37bb682d37cb70bb858a16f2f0554d3c0071be6dfe21456a1ff6fa4b7eed996570d6a25ffe9c + languageName: node + linkType: hard + +"cache-base@npm:^1.0.1": + version: 1.0.1 + resolution: "cache-base@npm:1.0.1" + dependencies: + collection-visit: "npm:^1.0.0" + component-emitter: "npm:^1.2.1" + get-value: "npm:^2.0.6" + has-value: "npm:^1.0.0" + isobject: "npm:^3.0.1" + set-value: "npm:^2.0.0" + to-object-path: "npm:^0.3.0" + union-value: "npm:^1.0.0" + unset-value: "npm:^1.0.0" + checksum: 10c0/a7142e25c73f767fa520957dcd179b900b86eac63b8cfeaa3b2a35e18c9ca5968aa4e2d2bed7a3e7efd10f13be404344cfab3a4156217e71f9bdb95940bb9c8c + languageName: node + linkType: hard + +"cachedir@npm:2.3.0": + version: 2.3.0 + resolution: "cachedir@npm:2.3.0" + checksum: 10c0/8380a4a4aa824b20cbc246c38ae2b3379a865f52ea1f31f7b057d07545ea1ab27f93c4323d4bd1bd398991489f18a226880c3166b19ecbf49a77b18c519d075a + languageName: node + linkType: hard + +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1": + version: 1.0.1 + resolution: "call-bind-apply-helpers@npm:1.0.1" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + checksum: 10c0/acb2ab68bf2718e68a3e895f0d0b73ccc9e45b9b6f210f163512ba76f91dab409eb8792f6dae188356f9095747512a3101646b3dea9d37fb8c7c6bf37796d18c + languageName: node + linkType: hard + +"call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" + dependencies: + call-bind-apply-helpers: "npm:^1.0.0" + es-define-property: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.2" + checksum: 10c0/a13819be0681d915144467741b69875ae5f4eba8961eb0bf322aab63ec87f8250eb6d6b0dcbb2e1349876412a56129ca338592b3829ef4343527f5f18a0752d4 + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3": + version: 1.0.3 + resolution: "call-bound@npm:1.0.3" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + get-intrinsic: "npm:^1.2.6" + checksum: 10c0/45257b8e7621067304b30dbd638e856cac913d31e8e00a80d6cf172911acd057846572d0b256b45e652d515db6601e2974a1b1a040e91b4fc36fb3dd86fa69cf + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 + languageName: node + linkType: hard + +"camelcase@npm:^5.3.1": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: 10c0/92ff9b443bfe8abb15f2b1513ca182d16126359ad4f955ebc83dc4ddcc4ef3fdd2c078bc223f2673dc223488e75c99b16cc4d056624374b799e6a1555cf61b23 + languageName: node + linkType: hard + +"camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 10c0/0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001688": + version: 1.0.30001689 + resolution: "caniuse-lite@npm:1.0.30001689" + checksum: 10c0/51cf99751dddfba24e13556ae0e0f38c062f76d49f2e24cce3d28e71a0325ca6fe04fe51b4a0e8467d601d94e72fea84f160bf577e7cbb5677f14ac673b6da20 + languageName: node + linkType: hard + +"capture-exit@npm:^2.0.0": + version: 2.0.0 + resolution: "capture-exit@npm:2.0.0" + dependencies: + rsvp: "npm:^4.8.4" + checksum: 10c0/d68df1e15937809501644a49c0267ef323b5b6a0cae5c08bbdceafd718aa08241844798bfdd762cf6756bc2becd83122aabc25b5222192f18093113bec670617 + languageName: node + linkType: hard + +"ccount@npm:^2.0.0": + version: 2.0.1 + resolution: "ccount@npm:2.0.1" + checksum: 10c0/3939b1664390174484322bc3f45b798462e6c07ee6384cb3d645e0aa2f318502d174845198c1561930e1d431087f74cf1fe291ae9a4722821a9f4ba67e574350 + languageName: node + linkType: hard + +"chalk@npm:^2.3.2, chalk@npm:^2.4.1": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: "npm:^3.2.1" + escape-string-regexp: "npm:^1.0.5" + supports-color: "npm:^5.3.0" + checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + +"chalk@npm:^5.3.0, chalk@npm:~5.3.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 10c0/8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09 + languageName: node + linkType: hard + +"char-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "char-regex@npm:1.0.2" + checksum: 10c0/57a09a86371331e0be35d9083ba429e86c4f4648ecbe27455dbfb343037c16ee6fdc7f6b61f433a57cc5ded5561d71c56a150e018f40c2ffb7bc93a26dae341e + languageName: node + linkType: hard + +"character-entities-html4@npm:^2.0.0": + version: 2.1.0 + resolution: "character-entities-html4@npm:2.1.0" + checksum: 10c0/fe61b553f083400c20c0b0fd65095df30a0b445d960f3bbf271536ae6c3ba676f39cb7af0b4bf2755812f08ab9b88f2feed68f9aebb73bb153f7a115fe5c6e40 + languageName: node + linkType: hard + +"character-entities-legacy@npm:^1.0.0": + version: 1.1.4 + resolution: "character-entities-legacy@npm:1.1.4" + checksum: 10c0/ea4ca9c29887335eed86d78fc67a640168342b1274da84c097abb0575a253d1265281a5052f9a863979e952bcc267b4ecaaf4fe233a7e1e0d8a47806c65b96c7 + languageName: node + linkType: hard + +"character-entities-legacy@npm:^3.0.0": + version: 3.0.0 + resolution: "character-entities-legacy@npm:3.0.0" + checksum: 10c0/ec4b430af873661aa754a896a2b55af089b4e938d3d010fad5219299a6b6d32ab175142699ee250640678cd64bdecd6db3c9af0b8759ab7b155d970d84c4c7d1 + languageName: node + linkType: hard + +"character-entities@npm:^1.0.0": + version: 1.2.4 + resolution: "character-entities@npm:1.2.4" + checksum: 10c0/ad015c3d7163563b8a0ee1f587fb0ef305ef344e9fd937f79ca51cccc233786a01d591d989d5bf7b2e66b528ac9efba47f3b1897358324e69932f6d4b25adfe1 + languageName: node + linkType: hard + +"character-entities@npm:^2.0.0": + version: 2.0.2 + resolution: "character-entities@npm:2.0.2" + checksum: 10c0/b0c645a45bcc90ff24f0e0140f4875a8436b8ef13b6bcd31ec02cfb2ca502b680362aa95386f7815bdc04b6464d48cf191210b3840d7c04241a149ede591a308 + languageName: node + linkType: hard + +"character-reference-invalid@npm:^1.0.0": + version: 1.1.4 + resolution: "character-reference-invalid@npm:1.1.4" + checksum: 10c0/29f05081c5817bd1e975b0bf61e77b60a40f62ad371d0f0ce0fdb48ab922278bc744d1fbe33771dced751887a8403f265ff634542675c8d7375f6ff4811efd0e + languageName: node + linkType: hard + +"character-reference-invalid@npm:^2.0.0": + version: 2.0.1 + resolution: "character-reference-invalid@npm:2.0.1" + checksum: 10c0/2ae0dec770cd8659d7e8b0ce24392d83b4c2f0eb4a3395c955dce5528edd4cc030a794cfa06600fcdd700b3f2de2f9b8e40e309c0011c4180e3be64a0b42e6a1 + languageName: node + linkType: hard + +"chardet@npm:^0.7.0": + version: 0.7.0 + resolution: "chardet@npm:0.7.0" + checksum: 10c0/96e4731b9ec8050cbb56ab684e8c48d6c33f7826b755802d14e3ebfdc51c57afeece3ea39bc6b09acc359e4363525388b915e16640c1378053820f5e70d0f27d + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 + languageName: node + linkType: hard + +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10 + languageName: node + linkType: hard + +"ci-info@npm:^2.0.0": + version: 2.0.0 + resolution: "ci-info@npm:2.0.0" + checksum: 10c0/8c5fa3830a2bcee2b53c2e5018226f0141db9ec9f7b1e27a5c57db5512332cde8a0beb769bcbaf0d8775a78afbf2bb841928feca4ea6219638a5b088f9884b46 + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0": + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 10c0/6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a + languageName: node + linkType: hard + +"ci-info@npm:^4.0.0, ci-info@npm:^4.1.0": + version: 4.1.0 + resolution: "ci-info@npm:4.1.0" + checksum: 10c0/0f969ce32a974c542bc8abe4454b220d9d9323bb9415054c92a900faa5fdda0bb222eda68c490127c1d78503510d46b6aca614ecaba5a60515b8ac7e170119e6 + languageName: node + linkType: hard + +"cidr-regex@npm:^4.1.1": + version: 4.1.1 + resolution: "cidr-regex@npm:4.1.1" + dependencies: + ip-regex: "npm:^5.0.0" + checksum: 10c0/11433b68346f1029543c6ad03468ab5a4eb96970e381aeba7f6075a73fc8202e37b5547c2be0ec11a4de3aa6b5fff23d8173ff8441276fdde07981b271a54f56 + languageName: node + linkType: hard + +"cjs-module-lexer@npm:^1.0.0": + version: 1.4.1 + resolution: "cjs-module-lexer@npm:1.4.1" + checksum: 10c0/5a7d8279629c9ba8ccf38078c2fed75b7737973ced22b9b5a54180efa57fb2fe2bb7bec6aec55e3b8f3f5044f5d7b240347ad9bd285e7c3d0ee5b0a1d0504dfc + languageName: node + linkType: hard + +"class-utils@npm:^0.3.5": + version: 0.3.6 + resolution: "class-utils@npm:0.3.6" + dependencies: + arr-union: "npm:^3.1.0" + define-property: "npm:^0.2.5" + isobject: "npm:^3.0.0" + static-extend: "npm:^0.1.1" + checksum: 10c0/d44f4afc7a3e48dba4c2d3fada5f781a1adeeff371b875c3b578bc33815c6c29d5d06483c2abfd43a32d35b104b27b67bfa39c2e8a422fa858068bd756cfbd42 + languageName: node + linkType: hard + +"clean-regexp@npm:^1.0.0": + version: 1.0.0 + resolution: "clean-regexp@npm:1.0.0" + dependencies: + escape-string-regexp: "npm:^1.0.5" + checksum: 10c0/fd9c7446551b8fc536f95e8a286d431017cd4ba1ec2e53997ec9159385e9c317672f6dfc4d49fdb97449fdb53b0bacd0a8bab9343b8fdd2e46c7ddf6173d0db7 + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 + languageName: node + linkType: hard + +"clean-stack@npm:^5.2.0": + version: 5.2.0 + resolution: "clean-stack@npm:5.2.0" + dependencies: + escape-string-regexp: "npm:5.0.0" + checksum: 10c0/0de47a4152e49dcdeede5f47d7bb9a39a3ea748acb1cd2f0160dbee972d920be81390cb4c5566e6b795791b9efb12359e89fdd7c2e63b36025d59529558570f1 + languageName: node + linkType: hard + +"cli-columns@npm:^4.0.0": + version: 4.0.0 + resolution: "cli-columns@npm:4.0.0" + dependencies: + string-width: "npm:^4.2.3" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/f724c874dba09376f7b2d6c70431d8691d5871bd5d26c6f658dd56b514e668ed5f5b8d803fb7e29f4000fc7f3a6d038d415b892ae7fa3dcd9cc458c07df17871 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: "npm:^3.1.0" + checksum: 10c0/92a2f98ff9037d09be3dfe1f0d749664797fb674bf388375a2207a1203b69d41847abf16434203e0089212479e47a358b13a0222ab9fccfe8e2644a7ccebd111 + languageName: node + linkType: hard + +"cli-cursor@npm:^5.0.0": + version: 5.0.0 + resolution: "cli-cursor@npm:5.0.0" + dependencies: + restore-cursor: "npm:^5.0.0" + checksum: 10c0/7ec62f69b79f6734ab209a3e4dbdc8af7422d44d360a7cb1efa8a0887bbe466a6e625650c466fe4359aee44dbe2dc0b6994b583d40a05d0808a5cb193641d220 + languageName: node + linkType: hard + +"cli-highlight@npm:^2.1.11": + version: 2.1.11 + resolution: "cli-highlight@npm:2.1.11" + dependencies: + chalk: "npm:^4.0.0" + highlight.js: "npm:^10.7.1" + mz: "npm:^2.4.0" + parse5: "npm:^5.1.1" + parse5-htmlparser2-tree-adapter: "npm:^6.0.0" + yargs: "npm:^16.0.0" + bin: + highlight: bin/highlight + checksum: 10c0/b5b4af3b968aa9df77eee449a400fbb659cf47c4b03a395370bd98d5554a00afaa5819b41a9a8a1ca0d37b0b896a94e57c65289b37359a25b700b1f56eb04852 + languageName: node + linkType: hard + +"cli-spinners@npm:^2.5.0": + version: 2.9.2 + resolution: "cli-spinners@npm:2.9.2" + checksum: 10c0/907a1c227ddf0d7a101e7ab8b300affc742ead4b4ebe920a5bf1bc6d45dce2958fcd195eb28fa25275062fe6fa9b109b93b63bc8033396ed3bcb50297008b3a3 + languageName: node + linkType: hard + +"cli-table3@npm:^0.6.5": + version: 0.6.5 + resolution: "cli-table3@npm:0.6.5" + dependencies: + "@colors/colors": "npm:1.5.0" + string-width: "npm:^4.2.0" + dependenciesMeta: + "@colors/colors": + optional: true + checksum: 10c0/d7cc9ed12212ae68241cc7a3133c52b844113b17856e11f4f81308acc3febcea7cc9fd298e70933e294dd642866b29fd5d113c2c098948701d0c35f09455de78 + languageName: node + linkType: hard + +"cli-truncate@npm:^4.0.0": + version: 4.0.0 + resolution: "cli-truncate@npm:4.0.0" + dependencies: + slice-ansi: "npm:^5.0.0" + string-width: "npm:^7.0.0" + checksum: 10c0/d7f0b73e3d9b88cb496e6c086df7410b541b56a43d18ade6a573c9c18bd001b1c3fba1ad578f741a4218fdc794d042385f8ac02c25e1c295a2d8b9f3cb86eb4c + languageName: node + linkType: hard + +"cli-width@npm:^3.0.0": + version: 3.0.0 + resolution: "cli-width@npm:3.0.0" + checksum: 10c0/125a62810e59a2564268c80fdff56c23159a7690c003e34aeb2e68497dccff26911998ff49c33916fcfdf71e824322cc3953e3f7b48b27267c7a062c81348a9a + languageName: node + linkType: hard + +"cliui@npm:^7.0.2": + version: 7.0.4 + resolution: "cliui@npm:7.0.4" + dependencies: + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.0" + wrap-ansi: "npm:^7.0.0" + checksum: 10c0/6035f5daf7383470cef82b3d3db00bec70afb3423538c50394386ffbbab135e26c3689c41791f911fa71b62d13d3863c712fdd70f0fbdffd938a1e6fd09aac00 + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^7.0.0" + checksum: 10c0/4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5 + languageName: node + linkType: hard + +"clone@npm:^1.0.2": + version: 1.0.4 + resolution: "clone@npm:1.0.4" + checksum: 10c0/2176952b3649293473999a95d7bebfc9dc96410f6cbd3d2595cf12fd401f63a4bf41a7adbfd3ab2ff09ed60cb9870c58c6acdd18b87767366fabfc163700f13b + languageName: node + linkType: hard + +"cmd-shim@npm:^7.0.0": + version: 7.0.0 + resolution: "cmd-shim@npm:7.0.0" + checksum: 10c0/f2a14eccea9d29ac39f5182b416af60b2d4ad13ef96c541580175a394c63192aeaa53a3edfc73c7f988685574623465304b80c417dde4049d6ad7370a78dc792 + languageName: node + linkType: hard + +"co@npm:^4.6.0": + version: 4.6.0 + resolution: "co@npm:4.6.0" + checksum: 10c0/c0e85ea0ca8bf0a50cbdca82efc5af0301240ca88ebe3644a6ffb8ffe911f34d40f8fbcf8f1d52c5ddd66706abd4d3bfcd64259f1e8e2371d4f47573b0dc8c28 + languageName: node + linkType: hard + +"collect-v8-coverage@npm:^1.0.0": + version: 1.0.2 + resolution: "collect-v8-coverage@npm:1.0.2" + checksum: 10c0/ed7008e2e8b6852c5483b444a3ae6e976e088d4335a85aa0a9db2861c5f1d31bd2d7ff97a60469b3388deeba661a619753afbe201279fb159b4b9548ab8269a1 + languageName: node + linkType: hard + +"collection-visit@npm:^1.0.0": + version: 1.0.0 + resolution: "collection-visit@npm:1.0.0" + dependencies: + map-visit: "npm:^1.0.0" + object-visit: "npm:^1.0.0" + checksum: 10c0/add72a8d1c37cb90e53b1aaa2c31bf1989bfb733f0b02ce82c9fa6828c7a14358dba2e4f8e698c02f69e424aeccae1ffb39acdeaf872ade2f41369e84a2fcf8a + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: "npm:1.1.3" + checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + languageName: node + linkType: hard + +"colorette@npm:^2.0.20": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 + languageName: node + linkType: hard + +"commander@npm:~12.1.0": + version: 12.1.0 + resolution: "commander@npm:12.1.0" + checksum: 10c0/6e1996680c083b3b897bfc1cfe1c58dfbcd9842fd43e1aaf8a795fbc237f65efcc860a3ef457b318e73f29a4f4a28f6403c3d653d021d960e4632dd45bde54a9 + languageName: node + linkType: hard + +"commitizen@npm:^4.0.3, commitizen@npm:^4.3.0": + version: 4.3.1 + resolution: "commitizen@npm:4.3.1" + dependencies: + cachedir: "npm:2.3.0" + cz-conventional-changelog: "npm:3.3.0" + dedent: "npm:0.7.0" + detect-indent: "npm:6.1.0" + find-node-modules: "npm:^2.1.2" + find-root: "npm:1.1.0" + fs-extra: "npm:9.1.0" + glob: "npm:7.2.3" + inquirer: "npm:8.2.5" + is-utf8: "npm:^0.2.1" + lodash: "npm:4.17.21" + minimist: "npm:1.2.7" + strip-bom: "npm:4.0.0" + strip-json-comments: "npm:3.1.1" + bin: + commitizen: bin/commitizen + cz: bin/git-cz + git-cz: bin/git-cz + checksum: 10c0/3422c6f8b24075a650582f3939def379954714d3fc613dd60a927923f52b93742a196346f0669b63adf367e40127c0e481573ab1aa6cb8b96a06dfc903e923ab + languageName: node + linkType: hard + +"commitlint@npm:^19.5.0": + version: 19.6.1 + resolution: "commitlint@npm:19.6.1" + dependencies: + "@commitlint/cli": "npm:^19.6.1" + "@commitlint/types": "npm:^19.5.0" + bin: + commitlint: cli.js + checksum: 10c0/cbb6d1f16bd32fcf40fafedd90b1f85bb2a631ff14028debb4d365629e4a9ba6abb9a4150cdef0abce36fc4cb147891ec856e2529f36a6c0ba56eba52bd5861b + languageName: node + linkType: hard + +"common-ancestor-path@npm:^1.0.1": + version: 1.0.1 + resolution: "common-ancestor-path@npm:1.0.1" + checksum: 10c0/390c08d2a67a7a106d39499c002d827d2874966d938012453fd7ca34cd306881e2b9d604f657fa7a8e6e4896d67f39ebc09bf1bfd8da8ff318e0fb7a8752c534 + languageName: node + linkType: hard + +"common-path-prefix@npm:^3.0.0": + version: 3.0.0 + resolution: "common-path-prefix@npm:3.0.0" + checksum: 10c0/c4a74294e1b1570f4a8ab435285d185a03976c323caa16359053e749db4fde44e3e6586c29cd051100335e11895767cbbd27ea389108e327d62f38daf4548fdb + languageName: node + linkType: hard + +"compare-func@npm:^2.0.0": + version: 2.0.0 + resolution: "compare-func@npm:2.0.0" + dependencies: + array-ify: "npm:^1.0.0" + dot-prop: "npm:^5.1.0" + checksum: 10c0/78bd4dd4ed311a79bd264c9e13c36ed564cde657f1390e699e0f04b8eee1fc06ffb8698ce2dfb5fbe7342d509579c82d4e248f08915b708f77f7b72234086cc3 + languageName: node + linkType: hard + +"component-emitter@npm:^1.2.1": + version: 1.3.1 + resolution: "component-emitter@npm:1.3.1" + checksum: 10c0/e4900b1b790b5e76b8d71b328da41482118c0f3523a516a41be598dc2785a07fd721098d9bf6e22d89b19f4fa4e1025160dc00317ea111633a3e4f75c2b86032 + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f + languageName: node + linkType: hard + +"concat-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "concat-stream@npm:2.0.0" + dependencies: + buffer-from: "npm:^1.0.0" + inherits: "npm:^2.0.3" + readable-stream: "npm:^3.0.2" + typedarray: "npm:^0.0.6" + checksum: 10c0/29565dd9198fe1d8cf57f6cc71527dbc6ad67e12e4ac9401feb389c53042b2dceedf47034cbe702dfc4fd8df3ae7e6bfeeebe732cc4fa2674e484c13f04c219a + languageName: node + linkType: hard + +"concurrently@npm:^9.0.1": + version: 9.1.0 + resolution: "concurrently@npm:9.1.0" + dependencies: + chalk: "npm:^4.1.2" + lodash: "npm:^4.17.21" + rxjs: "npm:^7.8.1" + shell-quote: "npm:^1.8.1" + supports-color: "npm:^8.1.1" + tree-kill: "npm:^1.2.2" + yargs: "npm:^17.7.2" + bin: + conc: dist/bin/concurrently.js + concurrently: dist/bin/concurrently.js + checksum: 10c0/f2f42f94dde508bfbaf47b5ac654db9e8a4bf07d3d7b6267dd058ae6f362eec677ae7c8ede398d081e5fd0d1de5811dc9a53e57d3f1f68e72ac6459db9e0896b + languageName: node + linkType: hard + +"config-chain@npm:^1.1.11": + version: 1.1.13 + resolution: "config-chain@npm:1.1.13" + dependencies: + ini: "npm:^1.3.4" + proto-list: "npm:~1.2.1" + checksum: 10c0/39d1df18739d7088736cc75695e98d7087aea43646351b028dfabd5508d79cf6ef4c5bcd90471f52cd87ae470d1c5490c0a8c1a292fbe6ee9ff688061ea0963e + languageName: node + linkType: hard + +"confusing-browser-globals@npm:1.0.11": + version: 1.0.11 + resolution: "confusing-browser-globals@npm:1.0.11" + checksum: 10c0/475d0a284fa964a5182b519af5738b5b64bf7e413cfd703c1b3496bf6f4df9f827893a9b221c0ea5873c1476835beb1e0df569ba643eff0734010c1eb780589e + languageName: node + linkType: hard + +"conventional-changelog-angular@npm:^7.0.0": + version: 7.0.0 + resolution: "conventional-changelog-angular@npm:7.0.0" + dependencies: + compare-func: "npm:^2.0.0" + checksum: 10c0/90e73e25e224059b02951b6703b5f8742dc2a82c1fea62163978e6735fd3ab04350897a8fc6f443ec6b672d6b66e28a0820e833e544a0101f38879e5e6289b7e + languageName: node + linkType: hard + +"conventional-changelog-conventionalcommits@npm:^7.0.2": + version: 7.0.2 + resolution: "conventional-changelog-conventionalcommits@npm:7.0.2" + dependencies: + compare-func: "npm:^2.0.0" + checksum: 10c0/3cb1eab35e37fc973cfb3aed0e159f54414e49b222988da1c2aa86cc8a87fe7531491bbb7657fe5fc4dc0e25f5b50e2065ba8ac71cc4c08eed9189102a2b81bd + languageName: node + linkType: hard + +"conventional-changelog-writer@npm:^7.0.0": + version: 7.0.1 + resolution: "conventional-changelog-writer@npm:7.0.1" + dependencies: + conventional-commits-filter: "npm:^4.0.0" + handlebars: "npm:^4.7.7" + json-stringify-safe: "npm:^5.0.1" + meow: "npm:^12.0.1" + semver: "npm:^7.5.2" + split2: "npm:^4.0.0" + bin: + conventional-changelog-writer: cli.mjs + checksum: 10c0/ec51708c33860777f2b85f1df588aed918cab08919146cdfac8f271e31c0caee22c5c50df78e4ce358022e58f65c8de77fd6a5fb529f4bb5ba27c2d1e072750f + languageName: node + linkType: hard + +"conventional-commit-types@npm:^3.0.0": + version: 3.0.0 + resolution: "conventional-commit-types@npm:3.0.0" + checksum: 10c0/609703fea60b55549de8ef07052a95a894b48cefa4d187f4500a632284f20e799becf18689689e9eccefc1457860d031c77600169e5df49c679d29ae436c3422 + languageName: node + linkType: hard + +"conventional-commits-filter@npm:^4.0.0": + version: 4.0.0 + resolution: "conventional-commits-filter@npm:4.0.0" + checksum: 10c0/b26ea11ebb38218cb3cbbaf7d68b0f7c3b0eb7ad69afe9c9431d91e784acbebaeda7a095127ae5a7f8b75087d62b44e8e69d63426ff02b49f7dd504755934247 + languageName: node + linkType: hard + +"conventional-commits-parser@npm:^5.0.0": + version: 5.0.0 + resolution: "conventional-commits-parser@npm:5.0.0" + dependencies: + JSONStream: "npm:^1.3.5" + is-text-path: "npm:^2.0.0" + meow: "npm:^12.0.1" + split2: "npm:^4.0.0" + bin: + conventional-commits-parser: cli.mjs + checksum: 10c0/c9e542f4884119a96a6bf3311ff62cdee55762d8547f4c745ae3ebdc50afe4ba7691e165e34827d5cf63283cbd93ab69917afd7922423075b123d5d9a7a82ed2 + languageName: node + linkType: hard + +"convert-hrtime@npm:^5.0.0": + version: 5.0.0 + resolution: "convert-hrtime@npm:5.0.0" + checksum: 10c0/2092e51aab205e1141440e84e2a89f8881e68e47c1f8bc168dfd7c67047d8f1db43bac28044bc05749205651fead4e7910f52c7bb6066213480df99e333e9f47 + languageName: node + linkType: hard + +"convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.6.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: 10c0/281da55454bf8126cbc6625385928c43479f2060984180c42f3a86c8b8c12720a24eac260624a7d1e090004028d2dee78602330578ceec1a08e27cb8bb0a8a5b + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b + languageName: node + linkType: hard + +"copy-descriptor@npm:^0.1.0": + version: 0.1.1 + resolution: "copy-descriptor@npm:0.1.1" + checksum: 10c0/161f6760b7348c941007a83df180588fe2f1283e0867cc027182734e0f26134e6cc02de09aa24a95dc267b2e2025b55659eef76c8019df27bc2d883033690181 + languageName: node + linkType: hard + +"core-js-compat@npm:^3.38.1": + version: 3.39.0 + resolution: "core-js-compat@npm:3.39.0" + dependencies: + browserslist: "npm:^4.24.2" + checksum: 10c0/880579a3dab235e3b6350f1e324269c600753b48e891ea859331618d5051e68b7a95db6a03ad2f3cc7df4397318c25a5bc7740562ad39e94f56568638d09d414 + languageName: node + linkType: hard + +"core-util-is@npm:~1.0.0": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9 + languageName: node + linkType: hard + +"cosmiconfig-typescript-loader@npm:^6.1.0": + version: 6.1.0 + resolution: "cosmiconfig-typescript-loader@npm:6.1.0" + dependencies: + jiti: "npm:^2.4.1" + peerDependencies: + "@types/node": "*" + cosmiconfig: ">=9" + typescript: ">=5" + checksum: 10c0/5e3baf85a9da7dcdd7ef53a54d1293400eed76baf0abb3a41bf9fcc789f1a2653319443471f9a1dc32951f1de4467a6696ccd0f88640e7827f1af6ff94ceaf1a + languageName: node + linkType: hard + +"cosmiconfig@npm:^9.0.0": + version: 9.0.0 + resolution: "cosmiconfig@npm:9.0.0" + dependencies: + env-paths: "npm:^2.2.1" + import-fresh: "npm:^3.3.0" + js-yaml: "npm:^4.1.0" + parse-json: "npm:^5.2.0" + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/1c1703be4f02a250b1d6ca3267e408ce16abfe8364193891afc94c2d5c060b69611fdc8d97af74b7e6d5d1aac0ab2fb94d6b079573146bc2d756c2484ce5f0ee + languageName: node + linkType: hard + +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + prompts: "npm:^2.0.1" + bin: + create-jest: bin/create-jest.js + checksum: 10c0/e7e54c280692470d3398f62a6238fd396327e01c6a0757002833f06d00afc62dd7bfe04ff2b9cd145264460e6b4d1eb8386f2925b7e567f97939843b7b0e812f + languageName: node + linkType: hard + +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: 10c0/157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91 + languageName: node + linkType: hard + +"cross-spawn@npm:^6.0.0": + version: 6.0.6 + resolution: "cross-spawn@npm:6.0.6" + dependencies: + nice-try: "npm:^1.0.4" + path-key: "npm:^2.0.1" + semver: "npm:^5.5.0" + shebang-command: "npm:^1.2.0" + which: "npm:^1.2.9" + checksum: 10c0/bf61fb890e8635102ea9bce050515cf915ff6a50ccaa0b37a17dc82fded0fb3ed7af5478b9367b86baee19127ad86af4be51d209f64fd6638c0862dca185fe1d + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 + languageName: node + linkType: hard + +"crypto-random-string@npm:^4.0.0": + version: 4.0.0 + resolution: "crypto-random-string@npm:4.0.0" + dependencies: + type-fest: "npm:^1.0.1" + checksum: 10c0/16e11a3c8140398f5408b7fded35a961b9423c5dac39a60cbbd08bd3f0e07d7de130e87262adea7db03ec1a7a4b7551054e0db07ee5408b012bac5400cfc07a5 + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7 + languageName: node + linkType: hard + +"cssom@npm:^0.5.0": + version: 0.5.0 + resolution: "cssom@npm:0.5.0" + checksum: 10c0/8c4121c243baf0678c65dcac29b201ff0067dfecf978de9d5c83b2ff127a8fdefd2bfd54577f5ad8c80ed7d2c8b489ae01c82023545d010c4ecb87683fb403dd + languageName: node + linkType: hard + +"cssom@npm:~0.3.6": + version: 0.3.8 + resolution: "cssom@npm:0.3.8" + checksum: 10c0/d74017b209440822f9e24d8782d6d2e808a8fdd58fa626a783337222fe1c87a518ba944d4c88499031b4786e68772c99dfae616638d71906fe9f203aeaf14411 + languageName: node + linkType: hard + +"cssstyle@npm:^2.3.0": + version: 2.3.0 + resolution: "cssstyle@npm:2.3.0" + dependencies: + cssom: "npm:~0.3.6" + checksum: 10c0/863400da2a458f73272b9a55ba7ff05de40d850f22eb4f37311abebd7eff801cf1cd2fb04c4c92b8c3daed83fe766e52e4112afb7bc88d86c63a9c2256a7d178 + languageName: node + linkType: hard + +"csstype@npm:^3.0.2": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 10c0/80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248 + languageName: node + linkType: hard + +"cz-conventional-changelog@npm:3.3.0": + version: 3.3.0 + resolution: "cz-conventional-changelog@npm:3.3.0" + dependencies: + "@commitlint/load": "npm:>6.1.1" + chalk: "npm:^2.4.1" + commitizen: "npm:^4.0.3" + conventional-commit-types: "npm:^3.0.0" + lodash.map: "npm:^4.5.1" + longest: "npm:^2.0.1" + word-wrap: "npm:^1.0.3" + dependenciesMeta: + "@commitlint/load": + optional: true + checksum: 10c0/895d64bb60b7014ec98fdbc211b454e3a1d585b10a818a4a3cf4c0f4b8576712d2daf4f8eb670e6c68e10bbb72ed73ab73b1a9e4673be41405591454e5bf5734 + languageName: node + linkType: hard + +"dargs@npm:^8.0.0": + version: 8.1.0 + resolution: "dargs@npm:8.1.0" + checksum: 10c0/08cbd1ee4ac1a16fb7700e761af2e3e22d1bdc04ac4f851926f552dde8f9e57714c0d04013c2cca1cda0cba8fb637e0f93ad15d5285547a939dd1989ee06a82d + languageName: node + linkType: hard + +"data-urls@npm:^3.0.2": + version: 3.0.2 + resolution: "data-urls@npm:3.0.2" + dependencies: + abab: "npm:^2.0.6" + whatwg-mimetype: "npm:^3.0.0" + whatwg-url: "npm:^11.0.0" + checksum: 10c0/051c3aaaf3e961904f136aab095fcf6dff4db23a7fc759dd8ba7b3e6ba03fc07ef608086caad8ab910d864bd3b5e57d0d2f544725653d77c96a2c971567045f4 + languageName: node + linkType: hard + +"data-view-buffer@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-buffer@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10c0/8984119e59dbed906a11fcfb417d7d861936f16697a0e7216fe2c6c810f6b5e8f4a5281e73f2c28e8e9259027190ac4a33e2a65fdd7fa86ac06b76e838918583 + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10c0/b7d9e48a0cf5aefed9ab7d123559917b2d7e0d65531f43b2fd95b9d3a6b46042dd3fca597c42bba384e66b70d7ad66ff23932f8367b241f53d93af42cfe04ec2 + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "data-view-byte-offset@npm:1.0.0" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10c0/21b0d2e53fd6e20cc4257c873bf6d36d77bd6185624b84076c0a1ddaa757b49aaf076254006341d35568e89f52eecd1ccb1a502cfb620f2beca04f48a6a62a8f + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6, debug@npm:^4.3.7, debug@npm:~4.4.0": + version: 4.4.0 + resolution: "debug@npm:4.4.0" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/db94f1a182bf886f57b4755f85b3a74c39b5114b9377b7ab375dc2cfa3454f09490cc6c30f829df3fc8042bc8b8995f6567ce5cd96f3bc3688bd24027197d9de + languageName: node + linkType: hard + +"debug@npm:^2.2.0, debug@npm:^2.3.3": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: "npm:2.0.0" + checksum: 10c0/121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589 + languageName: node + linkType: hard + +"debug@npm:^3.2.7": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: "npm:^2.1.1" + checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a + languageName: node + linkType: hard + +"decimal.js@npm:^10.4.2": + version: 10.4.3 + resolution: "decimal.js@npm:10.4.3" + checksum: 10c0/6d60206689ff0911f0ce968d40f163304a6c1bc739927758e6efc7921cfa630130388966f16bf6ef6b838cb33679fbe8e7a78a2f3c478afce841fd55ac8fb8ee + languageName: node + linkType: hard + +"decode-named-character-reference@npm:^1.0.0": + version: 1.0.2 + resolution: "decode-named-character-reference@npm:1.0.2" + dependencies: + character-entities: "npm:^2.0.0" + checksum: 10c0/66a9fc5d9b5385a2b3675c69ba0d8e893393d64057f7dbbb585265bb4fc05ec513d76943b8e5aac7d8016d20eea4499322cbf4cd6d54b466976b78f3a7587a4c + languageName: node + linkType: hard + +"decode-uri-component@npm:^0.2.0": + version: 0.2.2 + resolution: "decode-uri-component@npm:0.2.2" + checksum: 10c0/1f4fa54eb740414a816b3f6c24818fbfcabd74ac478391e9f4e2282c994127db02010ce804f3d08e38255493cfe68608b3f5c8e09fd6efc4ae46c807691f7a31 + languageName: node + linkType: hard + +"dedent@npm:0.7.0": + version: 0.7.0 + resolution: "dedent@npm:0.7.0" + checksum: 10c0/7c3aa00ddfe3e5fcd477958e156156a5137e3bb6ff1493ca05edff4decf29a90a057974cc77e75951f8eb801c1816cb45aea1f52d628cdd000b82b36ab839d1b + languageName: node + linkType: hard + +"dedent@npm:^1.0.0": + version: 1.5.3 + resolution: "dedent@npm:1.5.3" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: 10c0/d94bde6e6f780be4da4fd760288fcf755ec368872f4ac5218197200d86430aeb8d90a003a840bff1c20221188e3f23adced0119cb811c6873c70d0ac66d12832 + languageName: node + linkType: hard + +"deep-extend@npm:^0.6.0": + version: 0.6.0 + resolution: "deep-extend@npm:0.6.0" + checksum: 10c0/1c6b0abcdb901e13a44c7d699116d3d4279fdb261983122a3783e7273844d5f2537dc2e1c454a23fcf645917f93fbf8d07101c1d03c015a87faa662755212566 + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 10c0/e53481aaf1aa2c4082b5342be6b6d8ad9dfe387bc92ce197a66dea08bd4265904a087e75e464f14d1347cf2ac8afe1e4c16b266e0561cc5df29382d3c5f80044 + languageName: node + linkType: hard + +"defaults@npm:^1.0.3": + version: 1.0.4 + resolution: "defaults@npm:1.0.4" + dependencies: + clone: "npm:^1.0.2" + checksum: 10c0/9cfbe498f5c8ed733775db62dfd585780387d93c17477949e1670bfcfb9346e0281ce8c4bf9f4ac1fc0f9b851113bd6dc9e41182ea1644ccd97de639fa13c35a + languageName: node + linkType: hard + +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37 + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.0" + object-keys: "npm:^1.1.1" + checksum: 10c0/88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3 + languageName: node + linkType: hard + +"define-property@npm:^0.2.5": + version: 0.2.5 + resolution: "define-property@npm:0.2.5" + dependencies: + is-descriptor: "npm:^0.1.0" + checksum: 10c0/9986915c0893818dedc9ca23eaf41370667762fd83ad8aa4bf026a28563120dbaacebdfbfbf2b18d3b929026b9c6ee972df1dbf22de8fafb5fe6ef18361e4750 + languageName: node + linkType: hard + +"define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "define-property@npm:1.0.0" + dependencies: + is-descriptor: "npm:^1.0.0" + checksum: 10c0/d7cf09db10d55df305f541694ed51dafc776ad9bb8a24428899c9f2d36b11ab38dce5527a81458d1b5e7c389f8cbe803b4abad6e91a0037a329d153b84fc975e + languageName: node + linkType: hard + +"define-property@npm:^2.0.2": + version: 2.0.2 + resolution: "define-property@npm:2.0.2" + dependencies: + is-descriptor: "npm:^1.0.2" + isobject: "npm:^3.0.1" + checksum: 10c0/f91a08ad008fa764172a2c072adc7312f10217ade89ddaea23018321c6d71b2b68b8c229141ed2064179404e345c537f1a2457c379824813695b51a6ad3e4969 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 + languageName: node + linkType: hard + +"dequal@npm:^2.0.0": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 + languageName: node + linkType: hard + +"detect-file@npm:^1.0.0": + version: 1.0.0 + resolution: "detect-file@npm:1.0.0" + checksum: 10c0/c782a5f992047944c39d337c82f5d1d21d65d1378986d46c354df9d9ec6d5f356bca0182969c11b08b9b8a7af8727b3c2d5a9fad0b022be4a3bf4c216f63ed07 + languageName: node + linkType: hard + +"detect-indent@npm:6.1.0": + version: 6.1.0 + resolution: "detect-indent@npm:6.1.0" + checksum: 10c0/dd83cdeda9af219cf77f5e9a0dc31d828c045337386cfb55ce04fad94ba872ee7957336834154f7647b89b899c3c7acc977c57a79b7c776b506240993f97acc7 + languageName: node + linkType: hard + +"detect-newline@npm:^3.0.0": + version: 3.1.0 + resolution: "detect-newline@npm:3.1.0" + checksum: 10c0/c38cfc8eeb9fda09febb44bcd85e467c970d4e3bf526095394e5a4f18bc26dd0cf6b22c69c1fa9969261521c593836db335c2795218f6d781a512aea2fb8209d + languageName: node + linkType: hard + +"devlop@npm:^1.0.0, devlop@npm:^1.1.0": + version: 1.1.0 + resolution: "devlop@npm:1.1.0" + dependencies: + dequal: "npm:^2.0.0" + checksum: 10c0/e0928ab8f94c59417a2b8389c45c55ce0a02d9ac7fd74ef62d01ba48060129e1d594501b77de01f3eeafc7cb00773819b0df74d96251cf20b31c5b3071f45c0e + languageName: node + linkType: hard + +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: 10c0/32e27ac7dbffdf2fb0eb5a84efd98a9ad084fbabd5ac9abb8757c6770d5320d2acd172830b28c4add29bb873d59420601dfc805ac4064330ce59b1adfd0593b2 + languageName: node + linkType: hard + +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: 10c0/81b91f9d39c4eaca068eb0c1eb0e4afbdc5bb2941d197f513dd596b820b956fef43485876226d65d497bebc15666aa2aa82c679e84f65d5f2bfbf14ee46e32c1 + languageName: node + linkType: hard + +"diff@npm:^5.0.0, diff@npm:^5.1.0": + version: 5.2.0 + resolution: "diff@npm:5.2.0" + checksum: 10c0/aed0941f206fe261ecb258dc8d0ceea8abbde3ace5827518ff8d302f0fc9cc81ce116c4d8f379151171336caf0516b79e01abdc1ed1201b6440d895a66689eb4 + languageName: node + linkType: hard + +"dir-glob@npm:^3.0.0, dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: "npm:^4.0.0" + checksum: 10c0/dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c + languageName: node + linkType: hard + +"doctrine@npm:^2.1.0": + version: 2.1.0 + resolution: "doctrine@npm:2.1.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 10c0/b6416aaff1f380bf56c3b552f31fdf7a69b45689368deca72d28636f41c16bb28ec3ebc40ace97db4c1afc0ceeb8120e8492fe0046841c94c2933b2e30a7d5ac + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 + languageName: node + linkType: hard + +"domexception@npm:^4.0.0": + version: 4.0.0 + resolution: "domexception@npm:4.0.0" + dependencies: + webidl-conversions: "npm:^7.0.0" + checksum: 10c0/774277cd9d4df033f852196e3c0077a34dbd15a96baa4d166e0e47138a80f4c0bdf0d94e4703e6ff5883cec56bb821a6fff84402d8a498e31de7c87eb932a294 + languageName: node + linkType: hard + +"dot-prop@npm:^5.1.0": + version: 5.3.0 + resolution: "dot-prop@npm:5.3.0" + dependencies: + is-obj: "npm:^2.0.0" + checksum: 10c0/93f0d343ef87fe8869320e62f2459f7e70f49c6098d948cc47e060f4a3f827d0ad61e83cb82f2bd90cd5b9571b8d334289978a43c0f98fea4f0e99ee8faa0599 + languageName: node + linkType: hard + +"dunder-proto@npm:^1.0.0": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.2.0" + checksum: 10c0/199f2a0c1c16593ca0a145dbf76a962f8033ce3129f01284d48c45ed4e14fea9bbacd7b3610b6cdc33486cef20385ac054948fefc6272fcce645c09468f93031 + languageName: node + linkType: hard + +"duplexer2@npm:~0.1.0": + version: 0.1.4 + resolution: "duplexer2@npm:0.1.4" + dependencies: + readable-stream: "npm:^2.0.2" + checksum: 10c0/0765a4cc6fe6d9615d43cc6dbccff6f8412811d89a6f6aa44828ca9422a0a469625ce023bf81cee68f52930dbedf9c5716056ff264ac886612702d134b5e39b4 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + languageName: node + linkType: hard + +"ejs@npm:^3.1.10": + version: 3.1.10 + resolution: "ejs@npm:3.1.10" + dependencies: + jake: "npm:^10.8.5" + bin: + ejs: bin/cli.js + checksum: 10c0/52eade9e68416ed04f7f92c492183340582a36482836b11eab97b159fcdcfdedc62233a1bf0bf5e5e1851c501f2dca0e2e9afd111db2599e4e7f53ee29429ae1 + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.5.73": + version: 1.5.74 + resolution: "electron-to-chromium@npm:1.5.74" + checksum: 10c0/1a93119adbdeb0bba4c29e3bad5a48e6a4626ae50fbff2bc5c207f32e67ed64a5d8db6500befb44080359be3b18be7bf830fb920d5199d935be95bb9f97deb10 + languageName: node + linkType: hard + +"emittery@npm:^0.13.1": + version: 0.13.1 + resolution: "emittery@npm:0.13.1" + checksum: 10c0/1573d0ae29ab34661b6c63251ff8f5facd24ccf6a823f19417ae8ba8c88ea450325788c67f16c99edec8de4b52ce93a10fe441ece389fd156e88ee7dab9bfa35 + languageName: node + linkType: hard + +"emoji-regex@npm:^10.2.1, emoji-regex@npm:^10.3.0": + version: 10.4.0 + resolution: "emoji-regex@npm:10.4.0" + checksum: 10c0/a3fcedfc58bfcce21a05a5f36a529d81e88d602100145fcca3dc6f795e3c8acc4fc18fe773fbf9b6d6e9371205edb3afa2668ec3473fa2aa7fd47d2a9d46482d + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 + languageName: node + linkType: hard + +"emojilib@npm:^2.4.0": + version: 2.4.0 + resolution: "emojilib@npm:2.4.0" + checksum: 10c0/6e66ba8921175842193f974e18af448bb6adb0cf7aeea75e08b9d4ea8e9baba0e4a5347b46ed901491dcaba277485891c33a8d70b0560ca5cc9672a94c21ab8f + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 + languageName: node + linkType: hard + +"end-of-stream@npm:^1.1.0": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: "npm:^1.4.0" + checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975 + languageName: node + linkType: hard + +"enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.17.1": + version: 5.17.1 + resolution: "enhanced-resolve@npm:5.17.1" + dependencies: + graceful-fs: "npm:^4.2.4" + tapable: "npm:^2.2.0" + checksum: 10c0/81a0515675eca17efdba2cf5bad87abc91a528fc1191aad50e275e74f045b41506167d420099022da7181c8d787170ea41e4a11a0b10b7a16f6237daecb15370 + languageName: node + linkType: hard + +"entities@npm:^4.5.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250 + languageName: node + linkType: hard + +"env-ci@npm:^11.0.0": + version: 11.1.0 + resolution: "env-ci@npm:11.1.0" + dependencies: + execa: "npm:^8.0.0" + java-properties: "npm:^1.0.2" + checksum: 10c0/14f0a597c1fe9ab5585532c01759db62f4c553277b33137d33cb71cdd621833184f182dc67408750973c9f884f5a0d5103fad4f873aabd9e6c4baf65f88bc22a + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"environment@npm:^1.0.0": + version: 1.1.0 + resolution: "environment@npm:1.1.0" + checksum: 10c0/fb26434b0b581ab397039e51ff3c92b34924a98b2039dcb47e41b7bca577b9dbf134a8eadb364415c74464b682e2d3afe1a4c0eb9873dc44ea814c5d3103331d + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1, error-ex@npm:^1.3.2": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: "npm:^0.2.1" + checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce + languageName: node + linkType: hard + +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5": + version: 1.23.6 + resolution: "es-abstract@npm:1.23.6" + dependencies: + array-buffer-byte-length: "npm:^1.0.1" + arraybuffer.prototype.slice: "npm:^1.0.4" + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + data-view-buffer: "npm:^1.0.1" + data-view-byte-length: "npm:^1.0.1" + data-view-byte-offset: "npm:^1.0.0" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-set-tostringtag: "npm:^2.0.3" + es-to-primitive: "npm:^1.3.0" + function.prototype.name: "npm:^1.1.7" + get-intrinsic: "npm:^1.2.6" + get-symbol-description: "npm:^1.0.2" + globalthis: "npm:^1.0.4" + gopd: "npm:^1.2.0" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + internal-slot: "npm:^1.1.0" + is-array-buffer: "npm:^3.0.4" + is-callable: "npm:^1.2.7" + is-data-view: "npm:^1.0.2" + is-negative-zero: "npm:^2.0.3" + is-regex: "npm:^1.2.1" + is-shared-array-buffer: "npm:^1.0.3" + is-string: "npm:^1.1.1" + is-typed-array: "npm:^1.1.13" + is-weakref: "npm:^1.1.0" + math-intrinsics: "npm:^1.0.0" + object-inspect: "npm:^1.13.3" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.5" + regexp.prototype.flags: "npm:^1.5.3" + safe-array-concat: "npm:^1.1.3" + safe-regex-test: "npm:^1.1.0" + string.prototype.trim: "npm:^1.2.10" + string.prototype.trimend: "npm:^1.0.9" + string.prototype.trimstart: "npm:^1.0.8" + typed-array-buffer: "npm:^1.0.2" + typed-array-byte-length: "npm:^1.0.1" + typed-array-byte-offset: "npm:^1.0.3" + typed-array-length: "npm:^1.0.7" + unbox-primitive: "npm:^1.0.2" + which-typed-array: "npm:^1.1.16" + checksum: 10c0/87c9cd85264f42e993ee2f7157c5e49c2866651bd7ff89a0799cc5bcfb962b19814e1f58c9970101072bab2a68a4fb859f094c6e8f161ba8042569431f0c1ec4 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 10c0/3f54eb49c16c18707949ff25a1456728c883e81259f045003499efba399c08bad00deebf65cccde8c0e07908c1a225c9d472b7107e558f2a48e28d530e34527c + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 + languageName: node + linkType: hard + +"es-iterator-helpers@npm:^1.1.0": + version: 1.2.0 + resolution: "es-iterator-helpers@npm:1.2.0" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.3" + es-errors: "npm:^1.3.0" + es-set-tostringtag: "npm:^2.0.3" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + globalthis: "npm:^1.0.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.0.3" + has-symbols: "npm:^1.0.3" + internal-slot: "npm:^1.0.7" + iterator.prototype: "npm:^1.1.3" + safe-array-concat: "npm:^1.1.2" + checksum: 10c0/2bd60580dfeae353f5b80445d2808da745e97eeacdb663a8c4d99a12046873830a06d377e9d5e88fe54eece7c94319a5ce5a01220e24d71394ceca8d3ef621d7 + languageName: node + linkType: hard + +"es-object-atoms@npm:^1.0.0": + version: 1.0.0 + resolution: "es-object-atoms@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + checksum: 10c0/1fed3d102eb27ab8d983337bb7c8b159dd2a1e63ff833ec54eea1311c96d5b08223b433060ba240541ca8adba9eee6b0a60cdbf2f80634b784febc9cc8b687b4 + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.3": + version: 2.0.3 + resolution: "es-set-tostringtag@npm:2.0.3" + dependencies: + get-intrinsic: "npm:^1.2.4" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.1" + checksum: 10c0/f22aff1585eb33569c326323f0b0d175844a1f11618b86e193b386f8be0ea9474cfbe46df39c45d959f7aa8f6c06985dc51dd6bce5401645ec5a74c4ceaa836a + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.2": + version: 1.0.2 + resolution: "es-shim-unscopables@npm:1.0.2" + dependencies: + hasown: "npm:^2.0.0" + checksum: 10c0/f495af7b4b7601a4c0cfb893581c352636e5c08654d129590386a33a0432cf13a7bdc7b6493801cadd990d838e2839b9013d1de3b880440cb537825e834fe783 + languageName: node + linkType: hard + +"es-to-primitive@npm:^1.3.0": + version: 1.3.0 + resolution: "es-to-primitive@npm:1.3.0" + dependencies: + is-callable: "npm:^1.2.7" + is-date-object: "npm:^1.0.5" + is-symbol: "npm:^1.0.4" + checksum: 10c0/c7e87467abb0b438639baa8139f701a06537d2b9bc758f23e8622c3b42fd0fdb5bde0f535686119e446dd9d5e4c0f238af4e14960f4771877cf818d023f6730b + languageName: node + linkType: hard + +"escalade@npm:^3.1.1, escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 + languageName: node + linkType: hard + +"escape-string-regexp@npm:5.0.0": + version: 5.0.0 + resolution: "escape-string-regexp@npm:5.0.0" + checksum: 10c0/6366f474c6f37a802800a435232395e04e9885919873e382b157ab7e8f0feb8fed71497f84a6f6a81a49aab41815522f5839112bd38026d203aea0c91622df95 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 10c0/2530479fe8db57eace5e8646c9c2a9c80fa279614986d16dcc6bcaceb63ae77f05a851ba6c43756d816c61d7f4534baf56e3c705e3e0d884818a46808811c507 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 + languageName: node + linkType: hard + +"escodegen@npm:^2.0.0": + version: 2.1.0 + resolution: "escodegen@npm:2.1.0" + dependencies: + esprima: "npm:^4.0.1" + estraverse: "npm:^5.2.0" + esutils: "npm:^2.0.2" + source-map: "npm:~0.6.1" + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 10c0/e1450a1f75f67d35c061bf0d60888b15f62ab63aef9df1901cffc81cffbbb9e8b3de237c5502cf8613a017c1df3a3003881307c78835a1ab54d8c8d2206e01d3 + languageName: node + linkType: hard + +"eslint-compat-utils@npm:^0.5.1": + version: 0.5.1 + resolution: "eslint-compat-utils@npm:0.5.1" + dependencies: + semver: "npm:^7.5.4" + peerDependencies: + eslint: ">=6.0.0" + checksum: 10c0/325e815205fab70ebcd379f6d4b5d44c7d791bb8dfe0c9888233f30ebabd9418422595b53a781b946c768d9244d858540e5e6129a6b3dd6d606f467d599edc6c + languageName: node + linkType: hard + +"eslint-config-prettier@npm:^9.1.0": + version: 9.1.0 + resolution: "eslint-config-prettier@npm:9.1.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 10c0/6d332694b36bc9ac6fdb18d3ca2f6ac42afa2ad61f0493e89226950a7091e38981b66bac2b47ba39d15b73fff2cd32c78b850a9cf9eed9ca9a96bfb2f3a2f10d + languageName: node + linkType: hard + +"eslint-config-xo-typescript@npm:^7.0.0": + version: 7.0.0 + resolution: "eslint-config-xo-typescript@npm:7.0.0" + dependencies: + "@stylistic/eslint-plugin": "npm:^2.6.1" + eslint-config-xo: "npm:^0.46.0" + typescript-eslint: "npm:^8.3.0" + peerDependencies: + eslint: ">=9.8.0" + typescript: ">=5.5.0" + checksum: 10c0/1137c3829580223ef42aa28cd8255c7f52a02f438fc0764fbff4598913ee3ff6b6bb85ea2048d4db18ad929947579e77fcf9703f88051849b4893f5da7c16a83 + languageName: node + linkType: hard + +"eslint-config-xo@npm:^0.46.0": + version: 0.46.0 + resolution: "eslint-config-xo@npm:0.46.0" + dependencies: + "@stylistic/eslint-plugin": "npm:^2.6.1" + confusing-browser-globals: "npm:1.0.11" + globals: "npm:^15.3.0" + peerDependencies: + eslint: ">=9.8.0" + checksum: 10c0/abc96ae7f4d11dc021967bd09d2e3243c21a62ef6dc3896a96bb0d40c038fdc0775889dd65b6f9493c93fde46e3f4f0d7022f10cb6731bb268584fab4dd9144e + languageName: node + linkType: hard + +"eslint-import-resolver-node@npm:^0.3.9": + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" + dependencies: + debug: "npm:^3.2.7" + is-core-module: "npm:^2.13.0" + resolve: "npm:^1.22.4" + checksum: 10c0/0ea8a24a72328a51fd95aa8f660dcca74c1429806737cf10261ab90cfcaaf62fd1eff664b76a44270868e0a932711a81b250053942595bcd00a93b1c1575dd61 + languageName: node + linkType: hard + +"eslint-import-resolver-typescript@npm:^3.6.3": + version: 3.7.0 + resolution: "eslint-import-resolver-typescript@npm:3.7.0" + dependencies: + "@nolyfill/is-core-module": "npm:1.0.39" + debug: "npm:^4.3.7" + enhanced-resolve: "npm:^5.15.0" + fast-glob: "npm:^3.3.2" + get-tsconfig: "npm:^4.7.5" + is-bun-module: "npm:^1.0.2" + is-glob: "npm:^4.0.3" + stable-hash: "npm:^0.0.4" + peerDependencies: + eslint: "*" + eslint-plugin-import: "*" + eslint-plugin-import-x: "*" + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + checksum: 10c0/b1dec542a31486b3b5730f71f08a8ee2ac4915dbc4aa1493fd15bc8fcadcb029772ab39a425824c235045b3a7e629290a339d4a7e7f3dd32b24e715106352d40 + languageName: node + linkType: hard + +"eslint-mdx@npm:^3.1.5": + version: 3.1.5 + resolution: "eslint-mdx@npm:3.1.5" + dependencies: + acorn: "npm:^8.11.3" + acorn-jsx: "npm:^5.3.2" + espree: "npm:^9.6.1" + estree-util-visit: "npm:^2.0.0" + remark-mdx: "npm:^3.0.0" + remark-parse: "npm:^11.0.0" + remark-stringify: "npm:^11.0.0" + synckit: "npm:^0.9.0" + tslib: "npm:^2.6.2" + unified: "npm:^11.0.4" + unified-engine: "npm:^11.2.0" + unist-util-visit: "npm:^5.0.0" + uvu: "npm:^0.5.6" + vfile: "npm:^6.0.1" + peerDependencies: + eslint: ">=8.0.0" + checksum: 10c0/3a9e22ba5ead1d2f811adefd0c3aa54ed85c01329c2aaab25514d9da6a39c8a5bc44d568145f082cffab7d9368ca2730ab314e4f8d2b281ac47f86199d2014d3 + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.12.0": + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" + dependencies: + debug: "npm:^3.2.7" + peerDependenciesMeta: + eslint: + optional: true + checksum: 10c0/4d8b46dcd525d71276f9be9ffac1d2be61c9d54cc53c992e6333cf957840dee09381842b1acbbb15fc6b255ebab99cd481c5007ab438e5455a14abe1a0468558 + languageName: node + linkType: hard + +"eslint-plugin-es-x@npm:^7.8.0": + version: 7.8.0 + resolution: "eslint-plugin-es-x@npm:7.8.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.1.2" + "@eslint-community/regexpp": "npm:^4.11.0" + eslint-compat-utils: "npm:^0.5.1" + peerDependencies: + eslint: ">=8" + checksum: 10c0/002fda8c029bc5da41e24e7ac11654062831d675fc4f5f20d0de460e24bf1e05cd559000678ef3e46c48641190f4fc07ae3d57aa5e8b085ef5f67e5f63742614 + languageName: node + linkType: hard + +"eslint-plugin-import@npm:^2.31.0": + version: 2.31.0 + resolution: "eslint-plugin-import@npm:2.31.0" + dependencies: + "@rtsao/scc": "npm:^1.1.0" + array-includes: "npm:^3.1.8" + array.prototype.findlastindex: "npm:^1.2.5" + array.prototype.flat: "npm:^1.3.2" + array.prototype.flatmap: "npm:^1.3.2" + debug: "npm:^3.2.7" + doctrine: "npm:^2.1.0" + eslint-import-resolver-node: "npm:^0.3.9" + eslint-module-utils: "npm:^2.12.0" + hasown: "npm:^2.0.2" + is-core-module: "npm:^2.15.1" + is-glob: "npm:^4.0.3" + minimatch: "npm:^3.1.2" + object.fromentries: "npm:^2.0.8" + object.groupby: "npm:^1.0.3" + object.values: "npm:^1.2.0" + semver: "npm:^6.3.1" + string.prototype.trimend: "npm:^1.0.8" + tsconfig-paths: "npm:^3.15.0" + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: 10c0/e21d116ddd1900e091ad120b3eb68c5dd5437fe2c930f1211781cd38b246f090a6b74d5f3800b8255a0ed29782591521ad44eb21c5534960a8f1fb4040fd913a + languageName: node + linkType: hard + +"eslint-plugin-jest@npm:^28.9.0": + version: 28.9.0 + resolution: "eslint-plugin-jest@npm:28.9.0" + dependencies: + "@typescript-eslint/utils": "npm:^6.0.0 || ^7.0.0 || ^8.0.0" + peerDependencies: + "@typescript-eslint/eslint-plugin": ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + jest: "*" + peerDependenciesMeta: + "@typescript-eslint/eslint-plugin": + optional: true + jest: + optional: true + checksum: 10c0/56b0d2fb18a32bf56b0eb8c7790c355513535a239451d9d00184829cbd0ba35b6c68eec64e850a6299453f9c37338b6797d3184594c0326c8fdcc029024065b8 + languageName: node + linkType: hard + +"eslint-plugin-markdown@npm:^3.0.1": + version: 3.0.1 + resolution: "eslint-plugin-markdown@npm:3.0.1" + dependencies: + mdast-util-from-markdown: "npm:^0.8.5" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/ba27a0f2115b85294591f3cf4e64c66b60cd508915cc3394869dda38c9e1f5ef230158f180cc21b5431085d4e4daac9f3f173078c00b54e659272318d0e6600d + languageName: node + linkType: hard + +"eslint-plugin-mdx@npm:^3.1.5": + version: 3.1.5 + resolution: "eslint-plugin-mdx@npm:3.1.5" + dependencies: + eslint-mdx: "npm:^3.1.5" + eslint-plugin-markdown: "npm:^3.0.1" + remark-mdx: "npm:^3.0.0" + remark-parse: "npm:^11.0.0" + remark-stringify: "npm:^11.0.0" + tslib: "npm:^2.6.2" + unified: "npm:^11.0.4" + vfile: "npm:^6.0.1" + peerDependencies: + eslint: ">=8.0.0" + checksum: 10c0/261e3ffee01bae7839b1357a7fb00ab23438d3b6fe6ad65b97dd06fbf2501571b95313914b0e41bf489ffd26d250acc7dfefc2f492247e6c2c343560a93693ce + languageName: node + linkType: hard + +"eslint-plugin-n@npm:^17.14.0": + version: 17.15.0 + resolution: "eslint-plugin-n@npm:17.15.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.1" + enhanced-resolve: "npm:^5.17.1" + eslint-plugin-es-x: "npm:^7.8.0" + get-tsconfig: "npm:^4.8.1" + globals: "npm:^15.11.0" + ignore: "npm:^5.3.2" + minimatch: "npm:^9.0.5" + semver: "npm:^7.6.3" + peerDependencies: + eslint: ">=8.23.0" + checksum: 10c0/e874e77e9e463978ae556cefe70d7b90e53cc3286b0257ac81b639d5eaeffe8cb609e3bbf246c9f1c61f35589c22a449e3723d948e27d1bab5a0dfee9d8cea04 + languageName: node + linkType: hard + +"eslint-plugin-no-use-extend-native@npm:^0.7.2": + version: 0.7.2 + resolution: "eslint-plugin-no-use-extend-native@npm:0.7.2" + dependencies: + is-get-set-prop: "npm:^2.0.0" + is-js-type: "npm:^3.0.0" + is-obj-prop: "npm:^2.0.0" + is-proto-prop: "npm:^3.0.1" + peerDependencies: + eslint: ^9.3.0 + checksum: 10c0/907a92483426b859a1ac29972086062980f2ff60027830ab7ba51c8a3e654d3821b647ce81d46b4f2aa79df0158429dc4928dc50d7b0d83cd7c5cccc6d20e5a8 + languageName: node + linkType: hard + +"eslint-plugin-prettier@npm:^5.1.3": + version: 5.2.1 + resolution: "eslint-plugin-prettier@npm:5.2.1" + dependencies: + prettier-linter-helpers: "npm:^1.0.0" + synckit: "npm:^0.9.1" + peerDependencies: + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + eslint-config-prettier: "*" + prettier: ">=3.0.0" + peerDependenciesMeta: + "@types/eslint": + optional: true + eslint-config-prettier: + optional: true + checksum: 10c0/4bc8bbaf5bb556c9c501dcdff369137763c49ccaf544f9fa91400360ed5e3a3f1234ab59690e06beca5b1b7e6f6356978cdd3b02af6aba3edea2ffe69ca6e8b2 + languageName: node + linkType: hard + +"eslint-plugin-promise@npm:^7.1.0": + version: 7.2.1 + resolution: "eslint-plugin-promise@npm:7.2.1" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + checksum: 10c0/d494982faeeafbd2aa5fae9cbceca546169a8399000f72d5d940fa5c4ba554612903bcafbb8033647179e5d21ccf1d621b433d089695f7f47ce3d9fcf4cd0abf + languageName: node + linkType: hard + +"eslint-plugin-react-hooks@npm:^5.0.0": + version: 5.1.0 + resolution: "eslint-plugin-react-hooks@npm:5.1.0" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + checksum: 10c0/37ef76e1d916d46ab8e93a596078efcf2162e2c653614437e0c54e31d02a5dadabec22802fab717effe257aeb4bdc20c2a710666a89ab1cf07e01e614dde75d8 + languageName: node + linkType: hard + +"eslint-plugin-react@npm:^7.37.2": + version: 7.37.2 + resolution: "eslint-plugin-react@npm:7.37.2" + dependencies: + array-includes: "npm:^3.1.8" + array.prototype.findlast: "npm:^1.2.5" + array.prototype.flatmap: "npm:^1.3.2" + array.prototype.tosorted: "npm:^1.1.4" + doctrine: "npm:^2.1.0" + es-iterator-helpers: "npm:^1.1.0" + estraverse: "npm:^5.3.0" + hasown: "npm:^2.0.2" + jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" + minimatch: "npm:^3.1.2" + object.entries: "npm:^1.1.8" + object.fromentries: "npm:^2.0.8" + object.values: "npm:^1.2.0" + prop-types: "npm:^15.8.1" + resolve: "npm:^2.0.0-next.5" + semver: "npm:^6.3.1" + string.prototype.matchall: "npm:^4.0.11" + string.prototype.repeat: "npm:^1.0.0" + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 10c0/01c498f263c201698bf653973760f86a07fa0cdec56c044f3eaa5ddaae71c64326015dfa5fde76ca8c5386ffe789fc79932624b614e13b6a1ad789fee3f7c491 + languageName: node + linkType: hard + +"eslint-plugin-unicorn@npm:^56.0.1": + version: 56.0.1 + resolution: "eslint-plugin-unicorn@npm:56.0.1" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.24.7" + "@eslint-community/eslint-utils": "npm:^4.4.0" + ci-info: "npm:^4.0.0" + clean-regexp: "npm:^1.0.0" + core-js-compat: "npm:^3.38.1" + esquery: "npm:^1.6.0" + globals: "npm:^15.9.0" + indent-string: "npm:^4.0.0" + is-builtin-module: "npm:^3.2.1" + jsesc: "npm:^3.0.2" + pluralize: "npm:^8.0.0" + read-pkg-up: "npm:^7.0.1" + regexp-tree: "npm:^0.1.27" + regjsparser: "npm:^0.10.0" + semver: "npm:^7.6.3" + strip-indent: "npm:^3.0.0" + peerDependencies: + eslint: ">=8.56.0" + checksum: 10c0/3b853ecde6ab597b12e28b962ba6ad7d3594f7f066d90135db2d3366ac13361c72500119163e13e1c38ca6fbdd331b1cc31dce9e8673880bff050fe51d6c64db + languageName: node + linkType: hard + +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^5.2.0" + checksum: 10c0/613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-visitor-keys@npm:4.2.0" + checksum: 10c0/2ed81c663b147ca6f578312919483eb040295bbab759e5a371953456c636c5b49a559883e2677112453728d66293c0a4c90ab11cab3428cf02a0236d2e738269 + languageName: node + linkType: hard + +"eslint@npm:^8.57.0": + version: 8.57.1 + resolution: "eslint@npm:8.57.1" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@eslint-community/regexpp": "npm:^4.6.1" + "@eslint/eslintrc": "npm:^2.1.4" + "@eslint/js": "npm:8.57.1" + "@humanwhocodes/config-array": "npm:^0.13.0" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@nodelib/fs.walk": "npm:^1.2.8" + "@ungap/structured-clone": "npm:^1.2.0" + ajv: "npm:^6.12.4" + chalk: "npm:^4.0.0" + cross-spawn: "npm:^7.0.2" + debug: "npm:^4.3.2" + doctrine: "npm:^3.0.0" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^7.2.2" + eslint-visitor-keys: "npm:^3.4.3" + espree: "npm:^9.6.1" + esquery: "npm:^1.4.2" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^6.0.1" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + globals: "npm:^13.19.0" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + is-path-inside: "npm:^3.0.3" + js-yaml: "npm:^4.1.0" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + levn: "npm:^0.4.1" + lodash.merge: "npm:^4.6.2" + minimatch: "npm:^3.1.2" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" + strip-ansi: "npm:^6.0.1" + text-table: "npm:^0.2.0" + bin: + eslint: bin/eslint.js + checksum: 10c0/1fd31533086c1b72f86770a4d9d7058ee8b4643fd1cfd10c7aac1ecb8725698e88352a87805cf4b2ce890aa35947df4b4da9655fb7fdfa60dbb448a43f6ebcf1 + languageName: node + linkType: hard + +"espree@npm:^10.3.0": + version: 10.3.0 + resolution: "espree@npm:10.3.0" + dependencies: + acorn: "npm:^8.14.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10c0/272beeaca70d0a1a047d61baff64db04664a33d7cfb5d144f84bc8a5c6194c6c8ebe9cc594093ca53add88baa23e59b01e69e8a0160ab32eac570482e165c462 + languageName: node + linkType: hard + +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" + dependencies: + acorn: "npm:^8.9.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^3.4.1" + checksum: 10c0/1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460 + languageName: node + linkType: hard + +"esprima@npm:^4.0.0, esprima@npm:^4.0.1": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3 + languageName: node + linkType: hard + +"esquery@npm:^1.4.2, esquery@npm:^1.6.0": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" + dependencies: + estraverse: "npm:^5.1.0" + checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: "npm:^5.2.0" + checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 + languageName: node + linkType: hard + +"estree-util-is-identifier-name@npm:^3.0.0": + version: 3.0.0 + resolution: "estree-util-is-identifier-name@npm:3.0.0" + checksum: 10c0/d1881c6ed14bd588ebd508fc90bf2a541811dbb9ca04dec2f39d27dcaa635f85b5ed9bbbe7fc6fb1ddfca68744a5f7c70456b4b7108b6c4c52780631cc787c5b + languageName: node + linkType: hard + +"estree-util-visit@npm:^2.0.0": + version: 2.0.0 + resolution: "estree-util-visit@npm:2.0.0" + dependencies: + "@types/estree-jsx": "npm:^1.0.0" + "@types/unist": "npm:^3.0.0" + checksum: 10c0/acda8b03cc8f890d79c7c7361f6c95331ba84b7ccc0c32b49f447fc30206b20002b37ffdfc97b6ad16e6fe065c63ecbae1622492e2b6b4775c15966606217f39 + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 + languageName: node + linkType: hard + +"eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 10c0/4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814 + languageName: node + linkType: hard + +"exec-sh@npm:^0.3.2": + version: 0.3.6 + resolution: "exec-sh@npm:0.3.6" + checksum: 10c0/de29ed40c263989ea151cfc8561c9a41a443185d1998b0ff7aee248323af3b46db3a1dc5341816297d0c02dca472b188640490aa4ba3cae017f531f98102607d + languageName: node + linkType: hard + +"execa@npm:^1.0.0": + version: 1.0.0 + resolution: "execa@npm:1.0.0" + dependencies: + cross-spawn: "npm:^6.0.0" + get-stream: "npm:^4.0.0" + is-stream: "npm:^1.1.0" + npm-run-path: "npm:^2.0.0" + p-finally: "npm:^1.0.0" + signal-exit: "npm:^3.0.0" + strip-eof: "npm:^1.0.0" + checksum: 10c0/cc71707c9aa4a2552346893ee63198bf70a04b5a1bc4f8a0ef40f1d03c319eae80932c59191f037990d7d102193e83a38ec72115fff814ec2fb3099f3661a590 + languageName: node + linkType: hard + +"execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^6.0.0" + human-signals: "npm:^2.1.0" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.1" + onetime: "npm:^5.1.2" + signal-exit: "npm:^3.0.3" + strip-final-newline: "npm:^2.0.0" + checksum: 10c0/c8e615235e8de4c5addf2fa4c3da3e3aa59ce975a3e83533b4f6a71750fb816a2e79610dc5f1799b6e28976c9ae86747a36a606655bf8cb414a74d8d507b304f + languageName: node + linkType: hard + +"execa@npm:^8.0.0, execa@npm:~8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^8.0.1" + human-signals: "npm:^5.0.0" + is-stream: "npm:^3.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^5.1.0" + onetime: "npm:^6.0.0" + signal-exit: "npm:^4.1.0" + strip-final-newline: "npm:^3.0.0" + checksum: 10c0/2c52d8775f5bf103ce8eec9c7ab3059909ba350a5164744e9947ed14a53f51687c040a250bda833f906d1283aa8803975b84e6c8f7a7c42f99dc8ef80250d1af + languageName: node + linkType: hard + +"execa@npm:^9.0.0": + version: 9.5.2 + resolution: "execa@npm:9.5.2" + dependencies: + "@sindresorhus/merge-streams": "npm:^4.0.0" + cross-spawn: "npm:^7.0.3" + figures: "npm:^6.1.0" + get-stream: "npm:^9.0.0" + human-signals: "npm:^8.0.0" + is-plain-obj: "npm:^4.1.0" + is-stream: "npm:^4.0.1" + npm-run-path: "npm:^6.0.0" + pretty-ms: "npm:^9.0.0" + signal-exit: "npm:^4.1.0" + strip-final-newline: "npm:^4.0.0" + yoctocolors: "npm:^2.0.0" + checksum: 10c0/94782a6282e03253224406c29068d18f9095cc251a45d1f19ac3d8f2a9db2cbe32fb8ceb039db1451d8fce3531135a6c0c559f76d634f85416268fc4a6995365 + languageName: node + linkType: hard + +"exit@npm:^0.1.2": + version: 0.1.2 + resolution: "exit@npm:0.1.2" + checksum: 10c0/71d2ad9b36bc25bb8b104b17e830b40a08989be7f7d100b13269aaae7c3784c3e6e1e88a797e9e87523993a25ba27c8958959a554535370672cfb4d824af8989 + languageName: node + linkType: hard + +"expand-brackets@npm:^2.1.4": + version: 2.1.4 + resolution: "expand-brackets@npm:2.1.4" + dependencies: + debug: "npm:^2.3.3" + define-property: "npm:^0.2.5" + extend-shallow: "npm:^2.0.1" + posix-character-classes: "npm:^0.1.0" + regex-not: "npm:^1.0.0" + snapdragon: "npm:^0.8.1" + to-regex: "npm:^3.0.1" + checksum: 10c0/3e2fb95d2d7d7231486493fd65db913927b656b6fcdfcce41e139c0991a72204af619ad4acb1be75ed994ca49edb7995ef241dbf8cf44dc3c03d211328428a87 + languageName: node + linkType: hard + +"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2": + version: 2.0.2 + resolution: "expand-tilde@npm:2.0.2" + dependencies: + homedir-polyfill: "npm:^1.0.1" + checksum: 10c0/205a60497422746d1c3acbc1d65bd609b945066f239a2b785e69a7a651ac4cbeb4e08555b1ea0023abbe855e6fcb5bbf27d0b371367fdccd303d4fb2b4d66845 + languageName: node + linkType: hard + +"expect@npm:^29.0.0, expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10c0/2eddeace66e68b8d8ee5f7be57f3014b19770caaf6815c7a08d131821da527fb8c8cb7b3dcd7c883d2d3d8d184206a4268984618032d1e4b16dc8d6596475d41 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 + languageName: node + linkType: hard + +"extend-shallow@npm:^2.0.1": + version: 2.0.1 + resolution: "extend-shallow@npm:2.0.1" + dependencies: + is-extendable: "npm:^0.1.0" + checksum: 10c0/ee1cb0a18c9faddb42d791b2d64867bd6cfd0f3affb711782eb6e894dd193e2934a7f529426aac7c8ddb31ac5d38000a00aa2caf08aa3dfc3e1c8ff6ba340bd9 + languageName: node + linkType: hard + +"extend-shallow@npm:^3.0.0, extend-shallow@npm:^3.0.2": + version: 3.0.2 + resolution: "extend-shallow@npm:3.0.2" + dependencies: + assign-symbols: "npm:^1.0.0" + is-extendable: "npm:^1.0.1" + checksum: 10c0/f39581b8f98e3ad94995e33214fff725b0297cf09f2725b6f624551cfb71e0764accfd0af80becc0182af5014d2a57b31b85ec999f9eb8a6c45af81752feac9a + languageName: node + linkType: hard + +"extend@npm:^3.0.0": + version: 3.0.2 + resolution: "extend@npm:3.0.2" + checksum: 10c0/73bf6e27406e80aa3e85b0d1c4fd987261e628064e170ca781125c0b635a3dabad5e05adbf07595ea0cf1e6c5396cacb214af933da7cbaf24fe75ff14818e8f9 + languageName: node + linkType: hard + +"external-editor@npm:^3.0.3": + version: 3.1.0 + resolution: "external-editor@npm:3.1.0" + dependencies: + chardet: "npm:^0.7.0" + iconv-lite: "npm:^0.4.24" + tmp: "npm:^0.0.33" + checksum: 10c0/c98f1ba3efdfa3c561db4447ff366a6adb5c1e2581462522c56a18bf90dfe4da382f9cd1feee3e330108c3595a854b218272539f311ba1b3298f841eb0fbf339 + languageName: node + linkType: hard + +"extglob@npm:^2.0.4": + version: 2.0.4 + resolution: "extglob@npm:2.0.4" + dependencies: + array-unique: "npm:^0.3.2" + define-property: "npm:^1.0.0" + expand-brackets: "npm:^2.1.4" + extend-shallow: "npm:^2.0.1" + fragment-cache: "npm:^0.2.1" + regex-not: "npm:^1.0.0" + snapdragon: "npm:^0.8.1" + to-regex: "npm:^3.0.1" + checksum: 10c0/e1a891342e2010d046143016c6c03d58455c2c96c30bf5570ea07929984ee7d48fad86b363aee08f7a8a638f5c3a66906429b21ecb19bc8e90df56a001cd282c + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 + languageName: node + linkType: hard + +"fast-diff@npm:^1.1.2": + version: 1.3.0 + resolution: "fast-diff@npm:1.3.0" + checksum: 10c0/5c19af237edb5d5effda008c891a18a585f74bf12953be57923f17a3a4d0979565fc64dbc73b9e20926b9d895f5b690c618cbb969af0cf022e3222471220ad29 + languageName: node + linkType: hard + +"fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.4" + checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 + languageName: node + linkType: hard + +"fast-uri@npm:^3.0.1": + version: 3.0.3 + resolution: "fast-uri@npm:3.0.3" + checksum: 10c0/4b2c5ce681a062425eae4f15cdc8fc151fd310b2f69b1f96680677820a8b49c3cd6e80661a406e19d50f0c40a3f8bffdd458791baf66f4a879d80be28e10a320 + languageName: node + linkType: hard + +"fastest-levenshtein@npm:^1.0.16": + version: 1.0.16 + resolution: "fastest-levenshtein@npm:1.0.16" + checksum: 10c0/7e3d8ae812a7f4fdf8cad18e9cde436a39addf266a5986f653ea0d81e0de0900f50c0f27c6d5aff3f686bcb48acbd45be115ae2216f36a6a13a7dbbf5cad878b + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.17.1 + resolution: "fastq@npm:1.17.1" + dependencies: + reusify: "npm:^1.0.4" + checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34 + languageName: node + linkType: hard + +"fb-watchman@npm:^2.0.0": + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" + dependencies: + bser: "npm:2.1.1" + checksum: 10c0/feae89ac148adb8f6ae8ccd87632e62b13563e6fb114cacb5265c51f585b17e2e268084519fb2edd133872f1d47a18e6bfd7e5e08625c0d41b93149694187581 + languageName: node + linkType: hard + +"figures@npm:^2.0.0": + version: 2.0.0 + resolution: "figures@npm:2.0.0" + dependencies: + escape-string-regexp: "npm:^1.0.5" + checksum: 10c0/5dc5a75fec3e7e04ae65d6ce51d28b3e70d4656c51b06996b6fdb2cb5b542df512e3b3c04482f5193a964edddafa5521479ff948fa84e12ff556e53e094ab4ce + languageName: node + linkType: hard + +"figures@npm:^3.0.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: "npm:^1.0.5" + checksum: 10c0/9c421646ede432829a50bc4e55c7a4eb4bcb7cc07b5bab2f471ef1ab9a344595bbebb6c5c21470093fbb730cd81bbca119624c40473a125293f656f49cb47629 + languageName: node + linkType: hard + +"figures@npm:^6.0.0, figures@npm:^6.1.0": + version: 6.1.0 + resolution: "figures@npm:6.1.0" + dependencies: + is-unicode-supported: "npm:^2.0.0" + checksum: 10c0/9159df4264d62ef447a3931537de92f5012210cf5135c35c010df50a2169377581378149abfe1eb238bd6acbba1c0d547b1f18e0af6eee49e30363cedaffcfe4 + languageName: node + linkType: hard + +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: "npm:^3.0.4" + checksum: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd + languageName: node + linkType: hard + +"filelist@npm:^1.0.4": + version: 1.0.4 + resolution: "filelist@npm:1.0.4" + dependencies: + minimatch: "npm:^5.0.1" + checksum: 10c0/426b1de3944a3d153b053f1c0ebfd02dccd0308a4f9e832ad220707a6d1f1b3c9784d6cadf6b2f68f09a57565f63ebc7bcdc913ccf8012d834f472c46e596f41 + languageName: node + linkType: hard + +"fill-range@npm:^4.0.0": + version: 4.0.0 + resolution: "fill-range@npm:4.0.0" + dependencies: + extend-shallow: "npm:^2.0.1" + is-number: "npm:^3.0.0" + repeat-string: "npm:^1.6.1" + to-regex-range: "npm:^2.1.0" + checksum: 10c0/ccd57b7c43d7e28a1f8a60adfa3c401629c08e2f121565eece95e2386ebc64dedc7128d8c3448342aabf19db0c55a34f425f148400c7a7be9a606ba48749e089 + languageName: node + linkType: hard + +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018 + languageName: node + linkType: hard + +"find-cache-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "find-cache-dir@npm:4.0.0" + dependencies: + common-path-prefix: "npm:^3.0.0" + pkg-dir: "npm:^7.0.0" + checksum: 10c0/0faa7956974726c8769671de696d24c643ca1e5b8f7a2401283caa9e07a5da093293e0a0f4bd18c920ec981d2ef945c7f5b946cde268dfc9077d833ad0293cff + languageName: node + linkType: hard + +"find-node-modules@npm:^2.1.2": + version: 2.1.3 + resolution: "find-node-modules@npm:2.1.3" + dependencies: + findup-sync: "npm:^4.0.0" + merge: "npm:^2.1.1" + checksum: 10c0/61fd8300635f6b6237985f05ef9ba01dbd29482c625c8c34a321fe5e9e69a48f4ab9e03c3026cd22eb2b6618d01309b515a7cf73dd886fc2cf099f2e4ecaf598 + languageName: node + linkType: hard + +"find-root@npm:1.1.0": + version: 1.1.0 + resolution: "find-root@npm:1.1.0" + checksum: 10c0/1abc7f3bf2f8d78ff26d9e00ce9d0f7b32e5ff6d1da2857bcdf4746134c422282b091c672cde0572cac3840713487e0a7a636af9aa1b74cb11894b447a521efa + languageName: node + linkType: hard + +"find-up-simple@npm:^1.0.0": + version: 1.0.0 + resolution: "find-up-simple@npm:1.0.0" + checksum: 10c0/de1ad5e55c8c162f5600fe3297bb55a3da5cd9cb8c6755e463ec1d52c4c15a84e312a68397fb5962d13263b3dbd4ea294668c465ccacc41291d7cc97588769f9 + languageName: node + linkType: hard + +"find-up@npm:^2.0.0": + version: 2.1.0 + resolution: "find-up@npm:2.1.0" + dependencies: + locate-path: "npm:^2.0.0" + checksum: 10c0/c080875c9fe28eb1962f35cbe83c683796a0321899f1eed31a37577800055539815de13d53495049697d3ba313013344f843bb9401dd337a1b832be5edfc6840 + languageName: node + linkType: hard + +"find-up@npm:^4.0.0, find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: "npm:^5.0.0" + path-exists: "npm:^4.0.0" + checksum: 10c0/0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: "npm:^6.0.0" + path-exists: "npm:^4.0.0" + checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a + languageName: node + linkType: hard + +"find-up@npm:^6.3.0": + version: 6.3.0 + resolution: "find-up@npm:6.3.0" + dependencies: + locate-path: "npm:^7.1.0" + path-exists: "npm:^5.0.0" + checksum: 10c0/07e0314362d316b2b13f7f11ea4692d5191e718ca3f7264110127520f3347996349bf9e16805abae3e196805814bc66ef4bff2b8904dc4a6476085fc9b0eba07 + languageName: node + linkType: hard + +"find-up@npm:^7.0.0": + version: 7.0.0 + resolution: "find-up@npm:7.0.0" + dependencies: + locate-path: "npm:^7.2.0" + path-exists: "npm:^5.0.0" + unicorn-magic: "npm:^0.1.0" + checksum: 10c0/e6ee3e6154560bc0ab3bc3b7d1348b31513f9bdf49a5dd2e952495427d559fa48cdf33953e85a309a323898b43fa1bfbc8b80c880dfc16068384783034030008 + languageName: node + linkType: hard + +"find-versions@npm:^6.0.0": + version: 6.0.0 + resolution: "find-versions@npm:6.0.0" + dependencies: + semver-regex: "npm:^4.0.5" + super-regex: "npm:^1.0.0" + checksum: 10c0/1e38da3058f389c8657cd6f47fbcf12412051e7d2d14017594b8ca54ec239d19058f2d9dde80f27415726ab62822e32e3ed0a81141cfc206a3b8c8f0d87a5732 + languageName: node + linkType: hard + +"findup-sync@npm:^4.0.0": + version: 4.0.0 + resolution: "findup-sync@npm:4.0.0" + dependencies: + detect-file: "npm:^1.0.0" + is-glob: "npm:^4.0.0" + micromatch: "npm:^4.0.2" + resolve-dir: "npm:^1.0.1" + checksum: 10c0/3e7de4d0afda35ecdd6260ce9d31524161817466ad6218b092dc73554848ce9618b69ec0f841dc82e320a4b3bfaba19c71c154f5b249ffed28143ba95a743d37 + languageName: node + linkType: hard + +"flat-cache@npm:^3.0.4": + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" + dependencies: + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.3" + rimraf: "npm:^3.0.2" + checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 + languageName: node + linkType: hard + +"flatted@npm:^3.2.9": + version: 3.3.2 + resolution: "flatted@npm:3.3.2" + checksum: 10c0/24cc735e74d593b6c767fe04f2ef369abe15b62f6906158079b9874bdb3ee5ae7110bb75042e70cd3f99d409d766f357caf78d5ecee9780206f5fdc5edbad334 + languageName: node + linkType: hard + +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: "npm:^1.1.3" + checksum: 10c0/22330d8a2db728dbf003ec9182c2d421fbcd2969b02b4f97ec288721cda63eb28f2c08585ddccd0f77cb2930af8d958005c9e72f47141dc51816127a118f39aa + languageName: node + linkType: hard + +"for-in@npm:^1.0.2": + version: 1.0.2 + resolution: "for-in@npm:1.0.2" + checksum: 10c0/42bb609d564b1dc340e1996868b67961257fd03a48d7fdafd4f5119530b87f962be6b4d5b7e3a3fc84c9854d149494b1d358e0b0ce9837e64c4c6603a49451d6 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.3.0 + resolution: "foreground-child@npm:3.3.0" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 10c0/028f1d41000553fcfa6c4bb5c372963bf3d9bf0b1f25a87d1a6253014343fb69dfb1b42d9625d7cf44c8ba429940f3d0ff718b62105d4d4a4f6ef8ca0a53faa2 + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.1 + resolution: "form-data@npm:4.0.1" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + mime-types: "npm:^2.1.12" + checksum: 10c0/bb102d570be8592c23f4ea72d7df9daa50c7792eb0cf1c5d7e506c1706e7426a4e4ae48a35b109e91c85f1c0ec63774a21ae252b66f4eb981cb8efef7d0463c8 + languageName: node + linkType: hard + +"fragment-cache@npm:^0.2.1": + version: 0.2.1 + resolution: "fragment-cache@npm:0.2.1" + dependencies: + map-cache: "npm:^0.2.2" + checksum: 10c0/5891d1c1d1d5e1a7fb3ccf28515c06731476fa88f7a50f4ede8a0d8d239a338448e7f7cc8b73db48da19c229fa30066104fe6489862065a4f1ed591c42fbeabf + languageName: node + linkType: hard + +"from2@npm:^2.3.0": + version: 2.3.0 + resolution: "from2@npm:2.3.0" + dependencies: + inherits: "npm:^2.0.1" + readable-stream: "npm:^2.0.0" + checksum: 10c0/f87f7a2e4513244d551454a7f8324ef1f7837864a8701c536417286ec19ff4915606b1dfa8909a21b7591ebd8440ffde3642f7c303690b9a4d7c832d62248aa1 + languageName: node + linkType: hard + +"fs-extra@npm:9.1.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: "npm:^1.0.0" + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10c0/9b808bd884beff5cb940773018179a6b94a966381d005479f00adda6b44e5e3d4abf765135773d849cc27efe68c349e4a7b86acd7d3306d5932c14f3a4b17a92 + languageName: node + linkType: hard + +"fs-extra@npm:^11.0.0": + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10c0/d77a9a9efe60532d2e790e938c81a02c1b24904ef7a3efb3990b835514465ba720e99a6ea56fd5e2db53b4695319b644d76d5a0e9988a2beef80aa7b1da63398 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0, fs-minipass@npm:^3.0.3": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 + languageName: node + linkType: hard + +"fsevents@npm:^2.1.2, fsevents@npm:^2.3.2": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A^2.1.2#optional!builtin, fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 + languageName: node + linkType: hard + +"function-timeout@npm:^1.0.1": + version: 1.0.2 + resolution: "function-timeout@npm:1.0.2" + checksum: 10c0/75d7ac6c83c450b84face2c9d22307b00e10c7376aa3a34c7be260853582c5e4c502904e2f6bf1d4500c4052e748e001388f6bbd9d34ebfdfb6c4fec2169d0ff + languageName: node + linkType: hard + +"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.7": + version: 1.1.7 + resolution: "function.prototype.name@npm:1.1.7" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + functions-have-names: "npm:^1.2.3" + hasown: "npm:^2.0.2" + is-callable: "npm:^1.2.7" + checksum: 10c0/f369f794099a9883e8253290d84a7a3e37ed9d4e2b185bdb3034fcfe02d6ee9dd72b41ea1e6e556c49bce897c535aa373b8e31dab5b018875cf9bc0a70c5215f + languageName: node + linkType: hard + +"functions-have-names@npm:^1.2.3": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: 10c0/33e77fd29bddc2d9bb78ab3eb854c165909201f88c75faa8272e35899e2d35a8a642a15e7420ef945e1f64a9670d6aa3ec744106b2aa42be68ca5114025954ca + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde + languageName: node + linkType: hard + +"get-east-asian-width@npm:^1.0.0": + version: 1.3.0 + resolution: "get-east-asian-width@npm:1.3.0" + checksum: 10c0/1a049ba697e0f9a4d5514c4623781c5246982bdb61082da6b5ae6c33d838e52ce6726407df285cdbb27ec1908b333cf2820989bd3e986e37bb20979437fdf34b + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6": + version: 1.2.6 + resolution: "get-intrinsic@npm:1.2.6" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + dunder-proto: "npm:^1.0.0" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + function-bind: "npm:^1.1.2" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + math-intrinsics: "npm:^1.0.0" + checksum: 10c0/0f1ea6d807d97d074e8a31ac698213a12757fcfa9a8f4778263d2e4702c40fe83198aadd3dba2e99aabc2e4cf8a38345545dbb0518297d3df8b00b56a156c32a + languageName: node + linkType: hard + +"get-package-type@npm:^0.1.0": + version: 0.1.0 + resolution: "get-package-type@npm:0.1.0" + checksum: 10c0/e34cdf447fdf1902a1f6d5af737eaadf606d2ee3518287abde8910e04159368c268568174b2e71102b87b26c2020486f126bfca9c4fb1ceb986ff99b52ecd1be + languageName: node + linkType: hard + +"get-set-props@npm:^0.2.0": + version: 0.2.0 + resolution: "get-set-props@npm:0.2.0" + checksum: 10c0/6030996bad46843651e46a737269a0db55bae4325e989addd93cb52ebb5c4829bca857550046da627e8158a24d4fe72bfacb34f28ecfed50fff69ff678bc042d + languageName: node + linkType: hard + +"get-stream@npm:^4.0.0": + version: 4.1.0 + resolution: "get-stream@npm:4.1.0" + dependencies: + pump: "npm:^3.0.0" + checksum: 10c0/294d876f667694a5ca23f0ca2156de67da950433b6fb53024833733975d32582896dbc7f257842d331809979efccf04d5e0b6b75ad4d45744c45f193fd497539 + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: 10c0/49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 + languageName: node + linkType: hard + +"get-stream@npm:^7.0.0": + version: 7.0.1 + resolution: "get-stream@npm:7.0.1" + checksum: 10c0/d0e34acd2f65c80ec2bef1f8add0c36bd4819d06aedd221eba59382d314ae980ae25b68e0000145798a6f7e2f541417f78b44fdc2a3eb942b2b28cfcce69cc71 + languageName: node + linkType: hard + +"get-stream@npm:^8.0.1": + version: 8.0.1 + resolution: "get-stream@npm:8.0.1" + checksum: 10c0/5c2181e98202b9dae0bb4a849979291043e5892eb40312b47f0c22b9414fc9b28a3b6063d2375705eb24abc41ecf97894d9a51f64ff021511b504477b27b4290 + languageName: node + linkType: hard + +"get-stream@npm:^9.0.0": + version: 9.0.1 + resolution: "get-stream@npm:9.0.1" + dependencies: + "@sec-ant/readable-stream": "npm:^0.4.1" + is-stream: "npm:^4.0.1" + checksum: 10c0/d70e73857f2eea1826ac570c3a912757dcfbe8a718a033fa0c23e12ac8e7d633195b01710e0559af574cbb5af101009b42df7b6f6b29ceec8dbdf7291931b948 + languageName: node + linkType: hard + +"get-symbol-description@npm:^1.0.2": + version: 1.1.0 + resolution: "get-symbol-description@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + checksum: 10c0/d6a7d6afca375779a4b307738c9e80dbf7afc0bdbe5948768d54ab9653c865523d8920e670991a925936eb524b7cb6a6361d199a760b21d0ca7620194455aa4b + languageName: node + linkType: hard + +"get-tsconfig@npm:^4.7.5, get-tsconfig@npm:^4.8.1": + version: 4.8.1 + resolution: "get-tsconfig@npm:4.8.1" + dependencies: + resolve-pkg-maps: "npm:^1.0.0" + checksum: 10c0/536ee85d202f604f4b5fb6be81bcd6e6d9a96846811e83e9acc6de4a04fb49506edea0e1b8cf1d5ee7af33e469916ec2809d4c5445ab8ae015a7a51fbd1572f9 + languageName: node + linkType: hard + +"get-value@npm:^2.0.3, get-value@npm:^2.0.6": + version: 2.0.6 + resolution: "get-value@npm:2.0.6" + checksum: 10c0/f069c132791b357c8fc4adfe9e2929b0a2c6e95f98ca7bc6fcbc27f8a302e552f86b4ae61ec56d9e9ac2544b93b6a39743d479866a37b43fcc104088ba74f0d9 + languageName: node + linkType: hard + +"git-log-parser@npm:^1.2.0": + version: 1.2.1 + resolution: "git-log-parser@npm:1.2.1" + dependencies: + argv-formatter: "npm:~1.0.0" + spawn-error-forwarder: "npm:~1.0.0" + split2: "npm:~1.0.0" + stream-combiner2: "npm:~1.1.1" + through2: "npm:~2.0.0" + traverse: "npm:0.6.8" + checksum: 10c0/8b35e5a4882a481164b1999a062141063645246152eedab4587f4efaf0c61a4964da6cb1891263e92bc1b91edf0850843a06b6cf88a389a7c6a66c1be67ead4f + languageName: node + linkType: hard + +"git-raw-commits@npm:^4.0.0": + version: 4.0.0 + resolution: "git-raw-commits@npm:4.0.0" + dependencies: + dargs: "npm:^8.0.0" + meow: "npm:^12.0.1" + split2: "npm:^4.0.0" + bin: + git-raw-commits: cli.mjs + checksum: 10c0/ab51335d9e55692fce8e42788013dba7a7e7bf9f5bf0622c8cd7ddc9206489e66bb939563fca4edb3aa87477e2118f052702aad1933b13c6fa738af7f29884f0 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: "npm:^4.0.1" + checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: "npm:^4.0.3" + checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 + languageName: node + linkType: hard + +"glob@npm:7.2.3, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.1.1" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe + languageName: node + linkType: hard + +"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7, glob@npm:^10.4.5": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e + languageName: node + linkType: hard + +"global-directory@npm:^4.0.1": + version: 4.0.1 + resolution: "global-directory@npm:4.0.1" + dependencies: + ini: "npm:4.1.1" + checksum: 10c0/f9cbeef41db4876f94dd0bac1c1b4282a7de9c16350ecaaf83e7b2dd777b32704cc25beeb1170b5a63c42a2c9abfade74d46357fe0133e933218bc89e613d4b2 + languageName: node + linkType: hard + +"global-modules@npm:^1.0.0": + version: 1.0.0 + resolution: "global-modules@npm:1.0.0" + dependencies: + global-prefix: "npm:^1.0.1" + is-windows: "npm:^1.0.1" + resolve-dir: "npm:^1.0.0" + checksum: 10c0/7d91ecf78d4fcbc966b2d89c1400df273afea795bc8cadf39857ee1684e442065621fd79413ff5fcd9e90c6f1b2dc0123e644fa0b7811f987fd54c6b9afad858 + languageName: node + linkType: hard + +"global-prefix@npm:^1.0.1": + version: 1.0.2 + resolution: "global-prefix@npm:1.0.2" + dependencies: + expand-tilde: "npm:^2.0.2" + homedir-polyfill: "npm:^1.0.1" + ini: "npm:^1.3.4" + is-windows: "npm:^1.0.1" + which: "npm:^1.2.14" + checksum: 10c0/d8037e300f1dc04d5d410d16afa662e71bfad22dcceba6c9727bb55cc273b8988ca940b3402f62e5392fd261dd9924a9a73a865ef2000219461f31f3fc86be06 + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 + languageName: node + linkType: hard + +"globals@npm:^13.19.0": + version: 13.24.0 + resolution: "globals@npm:13.24.0" + dependencies: + type-fest: "npm:^0.20.2" + checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd + languageName: node + linkType: hard + +"globals@npm:^15.11.0, globals@npm:^15.3.0, globals@npm:^15.9.0": + version: 15.13.0 + resolution: "globals@npm:15.13.0" + checksum: 10c0/640365115ca5f81d91e6a7667f4935021705e61a1a5a76a6ec5c3a5cdf6e53f165af7f9db59b7deb65cf2e1f83d03ac8d6660d0b14c569c831a9b6483eeef585 + languageName: node + linkType: hard + +"globalthis@npm:^1.0.4": + version: 1.0.4 + resolution: "globalthis@npm:1.0.4" + dependencies: + define-properties: "npm:^1.2.1" + gopd: "npm:^1.0.1" + checksum: 10c0/9d156f313af79d80b1566b93e19285f481c591ad6d0d319b4be5e03750d004dde40a39a0f26f7e635f9007a3600802f53ecd85a759b86f109e80a5f705e01846 + languageName: node + linkType: hard + +"globby@npm:^14.0.0": + version: 14.0.2 + resolution: "globby@npm:14.0.2" + dependencies: + "@sindresorhus/merge-streams": "npm:^2.1.0" + fast-glob: "npm:^3.3.2" + ignore: "npm:^5.2.4" + path-type: "npm:^5.0.0" + slash: "npm:^5.1.0" + unicorn-magic: "npm:^0.1.0" + checksum: 10c0/3f771cd683b8794db1e7ebc8b6b888d43496d93a82aad4e9d974620f578581210b6c5a6e75ea29573ed16a1345222fab6e9b877a8d1ed56eeb147e09f69c6f78 + languageName: node + linkType: hard + +"gopd@npm:^1.0.1, gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: 10c0/50fff1e04ba2b7737c097358534eacadad1e68d24cccee3272e04e007bed008e68d2614f3987788428fd192a5ae3889d08fb2331417e4fc4a9ab366b2043cead + languageName: node + linkType: hard + +"graceful-fs@npm:4.2.10": + version: 4.2.10 + resolution: "graceful-fs@npm:4.2.10" + checksum: 10c0/4223a833e38e1d0d2aea630c2433cfb94ddc07dfc11d511dbd6be1d16688c5be848acc31f9a5d0d0ddbfb56d2ee5a6ae0278aceeb0ca6a13f27e06b9956fb952 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: 10c0/e951259d8cd2e0d196c72ec711add7115d42eb9a8146c8eeda5b8d3ac91e5dd816b9cd68920726d9fd4490368e7ed86e9c423f40db87e2d8dfafa00fa17c3a31 + languageName: node + linkType: hard + +"growly@npm:^1.3.0": + version: 1.3.0 + resolution: "growly@npm:1.3.0" + checksum: 10c0/3043bd5c064e87f89e8c9b66894ed09fd882c7fa645621a543b45b72f040c7241e25061207a858ab191be2fbdac34795ff57c2a40962b154a6b2908a5e509252 + languageName: node + linkType: hard + +"handlebars@npm:^4.7.7": + version: 4.7.8 + resolution: "handlebars@npm:4.7.8" + dependencies: + minimist: "npm:^1.2.5" + neo-async: "npm:^2.6.2" + source-map: "npm:^0.6.1" + uglify-js: "npm:^3.1.4" + wordwrap: "npm:^1.0.0" + dependenciesMeta: + uglify-js: + optional: true + bin: + handlebars: bin/handlebars + checksum: 10c0/7aff423ea38a14bb379316f3857fe0df3c5d66119270944247f155ba1f08e07a92b340c58edaa00cfe985c21508870ee5183e0634dcb53dd405f35c93ef7f10d + languageName: node + linkType: hard + +"has-bigints@npm:^1.0.2": + version: 1.0.2 + resolution: "has-bigints@npm:1.0.2" + checksum: 10c0/724eb1485bfa3cdff6f18d95130aa190561f00b3fcf9f19dc640baf8176b5917c143b81ec2123f8cddb6c05164a198c94b13e1377c497705ccc8e1a80306e83b + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236 + languageName: node + linkType: hard + +"has-proto@npm:^1.0.3, has-proto@npm:^1.2.0": + version: 1.2.0 + resolution: "has-proto@npm:1.2.0" + dependencies: + dunder-proto: "npm:^1.0.0" + checksum: 10c0/46538dddab297ec2f43923c3d35237df45d8c55a6fc1067031e04c13ed8a9a8f94954460632fd4da84c31a1721eefee16d901cbb1ae9602bab93bb6e08f93b95 + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: 10c0/dde0a734b17ae51e84b10986e651c664379018d10b91b6b0e9b293eddb32f0f069688c841fb40f19e9611546130153e0a2a48fd7f512891fb000ddfa36f5a20e + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c + languageName: node + linkType: hard + +"has-value@npm:^0.3.1": + version: 0.3.1 + resolution: "has-value@npm:0.3.1" + dependencies: + get-value: "npm:^2.0.3" + has-values: "npm:^0.1.4" + isobject: "npm:^2.0.0" + checksum: 10c0/7a7c2e9d07bc9742c81806150adb154d149bc6155267248c459cd1ce2a64b0759980d26213260e4b7599c8a3754551179f155ded88d0533a0d2bc7bc29028432 + languageName: node + linkType: hard + +"has-value@npm:^1.0.0": + version: 1.0.0 + resolution: "has-value@npm:1.0.0" + dependencies: + get-value: "npm:^2.0.6" + has-values: "npm:^1.0.0" + isobject: "npm:^3.0.0" + checksum: 10c0/17cdccaf50f8aac80a109dba2e2ee5e800aec9a9d382ef9deab66c56b34269e4c9ac720276d5ffa722764304a1180ae436df077da0dd05548cfae0209708ba4d + languageName: node + linkType: hard + +"has-values@npm:^0.1.4": + version: 0.1.4 + resolution: "has-values@npm:0.1.4" + checksum: 10c0/a8f00ad862c20289798c35243d5bd0b0a97dd44b668c2204afe082e0265f2d0bf3b89fc8cc0ef01a52b49f10aa35cf85c336ee3a5f1cac96ed490f5e901cdbf2 + languageName: node + linkType: hard + +"has-values@npm:^1.0.0": + version: 1.0.0 + resolution: "has-values@npm:1.0.0" + dependencies: + is-number: "npm:^3.0.0" + kind-of: "npm:^4.0.0" + checksum: 10c0/a6f2a1cc6b2e43eacc68e62e71ad6890def7f4b13d2ef06b4ad3ee156c23e470e6df144b9b467701908e17633411f1075fdff0cab45fb66c5e0584d89b25f35e + languageName: node + linkType: hard + +"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 + languageName: node + linkType: hard + +"highlight.js@npm:^10.7.1": + version: 10.7.3 + resolution: "highlight.js@npm:10.7.3" + checksum: 10c0/073837eaf816922427a9005c56c42ad8786473dc042332dfe7901aa065e92bc3d94ebf704975257526482066abb2c8677cc0326559bb8621e046c21c5991c434 + languageName: node + linkType: hard + +"homedir-polyfill@npm:^1.0.1": + version: 1.0.3 + resolution: "homedir-polyfill@npm:1.0.3" + dependencies: + parse-passwd: "npm:^1.0.0" + checksum: 10c0/3c099844f94b8b438f124bd5698bdcfef32b2d455115fb8050d7148e7f7b95fc89ba9922586c491f0e1cdebf437b1053c84ecddb8d596e109e9ac69c5b4a9e27 + languageName: node + linkType: hard + +"hook-std@npm:^3.0.0": + version: 3.0.0 + resolution: "hook-std@npm:3.0.0" + checksum: 10c0/51841e049b130347acb59fb129253891d95e56e6fa268d0bcf95eaca5223f3ca2032b7f0af5feb0c0f61c8571f7af29339f185280ff28a624d3ebdcb6080540b + languageName: node + linkType: hard + +"hosted-git-info@npm:^2.1.4": + version: 2.8.9 + resolution: "hosted-git-info@npm:2.8.9" + checksum: 10c0/317cbc6b1bbbe23c2a40ae23f3dafe9fa349ce42a89a36f930e3f9c0530c179a3882d2ef1e4141a4c3674d6faaea862138ec55b43ad6f75e387fda2483a13c70 + languageName: node + linkType: hard + +"hosted-git-info@npm:^7.0.0": + version: 7.0.2 + resolution: "hosted-git-info@npm:7.0.2" + dependencies: + lru-cache: "npm:^10.0.1" + checksum: 10c0/b19dbd92d3c0b4b0f1513cf79b0fc189f54d6af2129eeb201de2e9baaa711f1936929c848b866d9c8667a0f956f34bf4f07418c12be1ee9ca74fd9246335ca1f + languageName: node + linkType: hard + +"hosted-git-info@npm:^8.0.0, hosted-git-info@npm:^8.0.2": + version: 8.0.2 + resolution: "hosted-git-info@npm:8.0.2" + dependencies: + lru-cache: "npm:^10.0.1" + checksum: 10c0/e64f6c1b6db625869934b35c4959aacc365799d9cb1856e0224b5557ee5ecfe224bb8aa850479179a8f3968063ea0f92b8fbb67fe009d46859431dcde7fdc36d + languageName: node + linkType: hard + +"html-encoding-sniffer@npm:^3.0.0": + version: 3.0.0 + resolution: "html-encoding-sniffer@npm:3.0.0" + dependencies: + whatwg-encoding: "npm:^2.0.0" + checksum: 10c0/b17b3b0fb5d061d8eb15121c3b0b536376c3e295ecaf09ba48dd69c6b6c957839db124fe1e2b3f11329753a4ee01aa7dedf63b7677999e86da17fbbdd82c5386 + languageName: node + linkType: hard + +"html-escaper@npm:^2.0.0": + version: 2.0.2 + resolution: "html-escaper@npm:2.0.2" + checksum: 10c0/208e8a12de1a6569edbb14544f4567e6ce8ecc30b9394fcaa4e7bb1e60c12a7c9a1ed27e31290817157e8626f3a4f29e76c8747030822eb84a6abb15c255f0a0 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": "npm:2" + agent-base: "npm:6" + debug: "npm:4" + checksum: 10c0/32a05e413430b2c1e542e5c74b38a9f14865301dd69dff2e53ddb684989440e3d2ce0c4b64d25eb63cf6283e6265ff979a61cf93e3ca3d23047ddfdc8df34a32 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.1": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: "npm:6" + debug: "npm:4" + checksum: 10c0/6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1": + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:4" + checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: 10c0/695edb3edfcfe9c8b52a76926cd31b36978782062c0ed9b1192b36bebc75c4c87c82e178dfcb0ed0fc27ca59d434198aac0bd0be18f5781ded775604db22304a + languageName: node + linkType: hard + +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 10c0/5a9359073fe17a8b58e5a085e9a39a950366d9f00217c4ff5878bd312e09d80f460536ea6a3f260b5943a01fe55c158d1cea3fc7bee3d0520aeef04f6d915c82 + languageName: node + linkType: hard + +"human-signals@npm:^8.0.0": + version: 8.0.0 + resolution: "human-signals@npm:8.0.0" + checksum: 10c0/e4dac4f7d3eb791ed04129fc6a85bd454a9102d3e3b76c911d0db7057ebd60b2956b435b5b5712aec18960488ede3c21ef7c56e42cdd70760c0d84d3c05cd92e + languageName: node + linkType: hard + +"husky@npm:^9.1.7": + version: 9.1.7 + resolution: "husky@npm:9.1.7" + bin: + husky: bin.js + checksum: 10c0/35bb110a71086c48906aa7cd3ed4913fb913823715359d65e32e0b964cb1e255593b0ae8014a5005c66a68e6fa66c38dcfa8056dbbdfb8b0187c0ffe7ee3a58f + languageName: node + linkType: hard + +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 + languageName: node + linkType: hard + +"iconv-lite@npm:^0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3" + checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4 + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb + languageName: node + linkType: hard + +"ignore-walk@npm:^7.0.0": + version: 7.0.0 + resolution: "ignore-walk@npm:7.0.0" + dependencies: + minimatch: "npm:^9.0.0" + checksum: 10c0/3754bcde369a53a92c1d0835ea93feb6c5b2934984d3f5a8f9dd962d13ac33ee3a9e930901a89b5d46fc061870639d983f497186afdfe3484e135f2ad89f5577 + languageName: node + linkType: hard + +"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1, ignore@npm:^5.3.2": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 + languageName: node + linkType: hard + +"ignore@npm:^6.0.0": + version: 6.0.2 + resolution: "ignore@npm:6.0.2" + checksum: 10c0/9a38feac1861906a78ba0f03e8ef3cd6b0526dce2a1a84e1009324b557763afeb9c3ebcc04666b21f7bbf71adda45e76781bb9e2eaa0903d45dcaded634454f5 + languageName: node + linkType: hard + +"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: "npm:^1.0.0" + resolve-from: "npm:^4.0.0" + checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3 + languageName: node + linkType: hard + +"import-from-esm@npm:^1.0.3, import-from-esm@npm:^1.3.1": + version: 1.3.4 + resolution: "import-from-esm@npm:1.3.4" + dependencies: + debug: "npm:^4.3.4" + import-meta-resolve: "npm:^4.0.0" + checksum: 10c0/fcd42ead421892e1d9dbc90e510f45c7d3b58887c35077cf2318e4aa39b52c07c06e2b54efd16dfe8e712421439c23794d18a5e8956cca237fc90790ed8e2241 + languageName: node + linkType: hard + +"import-local@npm:^3.0.2": + version: 3.2.0 + resolution: "import-local@npm:3.2.0" + dependencies: + pkg-dir: "npm:^4.2.0" + resolve-cwd: "npm:^3.0.0" + bin: + import-local-fixture: fixtures/cli.js + checksum: 10c0/94cd6367a672b7e0cb026970c85b76902d2710a64896fa6de93bd5c571dd03b228c5759308959de205083e3b1c61e799f019c9e36ee8e9c523b993e1057f0433 + languageName: node + linkType: hard + +"import-meta-resolve@npm:^4.0.0": + version: 4.1.0 + resolution: "import-meta-resolve@npm:4.1.0" + checksum: 10c0/42f3284b0460635ddf105c4ad99c6716099c3ce76702602290ad5cbbcd295700cbc04e4bdf47bacf9e3f1a4cec2e1ff887dabc20458bef398f9de22ddff45ef5 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + +"indent-string@npm:^5.0.0": + version: 5.0.0 + resolution: "indent-string@npm:5.0.0" + checksum: 10c0/8ee77b57d92e71745e133f6f444d6fa3ed503ad0e1bcd7e80c8da08b42375c07117128d670589725ed07b1978065803fa86318c309ba45415b7fe13e7f170220 + languageName: node + linkType: hard + +"index-to-position@npm:^0.1.2": + version: 0.1.2 + resolution: "index-to-position@npm:0.1.2" + checksum: 10c0/7c91bde8bafc22684b74a7a24915bee4691cba48352ddb4ebe3b20a3a87bc0fa7a05f586137245ca8f92222a11f341f7631ff7f38cd78a523505d2d02dbfa257 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + +"ini@npm:4.1.1": + version: 4.1.1 + resolution: "ini@npm:4.1.1" + checksum: 10c0/7fddc8dfd3e63567d4fdd5d999d1bf8a8487f1479d0b34a1d01f28d391a9228d261e19abc38e1a6a1ceb3400c727204fce05725d5eb598dfcf2077a1e3afe211 + languageName: node + linkType: hard + +"ini@npm:^1.3.4, ini@npm:~1.3.0": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: 10c0/ec93838d2328b619532e4f1ff05df7909760b6f66d9c9e2ded11e5c1897d6f2f9980c54dd638f88654b00919ce31e827040631eab0a3969e4d1abefa0719516a + languageName: node + linkType: hard + +"ini@npm:^4.1.2, ini@npm:^4.1.3": + version: 4.1.3 + resolution: "ini@npm:4.1.3" + checksum: 10c0/0d27eff094d5f3899dd7c00d0c04ea733ca03a8eb6f9406ce15daac1a81de022cb417d6eaff7e4342451ffa663389c565ffc68d6825eaf686bf003280b945764 + languageName: node + linkType: hard + +"ini@npm:^5.0.0": + version: 5.0.0 + resolution: "ini@npm:5.0.0" + checksum: 10c0/657491ce766cbb4b335ab221ee8f72b9654d9f0e35c32fe5ff2eb7ab8c5ce72237ff6456555b50cde88e6507a719a70e28e327b450782b4fc20c90326ec8c1a8 + languageName: node + linkType: hard + +"init-package-json@npm:^7.0.2": + version: 7.0.2 + resolution: "init-package-json@npm:7.0.2" + dependencies: + "@npmcli/package-json": "npm:^6.0.0" + npm-package-arg: "npm:^12.0.0" + promzard: "npm:^2.0.0" + read: "npm:^4.0.0" + semver: "npm:^7.3.5" + validate-npm-package-license: "npm:^3.0.4" + validate-npm-package-name: "npm:^6.0.0" + checksum: 10c0/258860a3a41abd2dcb83727e234dd2f2f56d0b30191e6fa8dd424b83d5127a44330d6e97573cbe8df7582ab76d1b3da4090008b38f06003403988a5e5101fd6b + languageName: node + linkType: hard + +"inquirer@npm:8.2.5": + version: 8.2.5 + resolution: "inquirer@npm:8.2.5" + dependencies: + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.1.1" + cli-cursor: "npm:^3.1.0" + cli-width: "npm:^3.0.0" + external-editor: "npm:^3.0.3" + figures: "npm:^3.0.0" + lodash: "npm:^4.17.21" + mute-stream: "npm:0.0.8" + ora: "npm:^5.4.1" + run-async: "npm:^2.4.0" + rxjs: "npm:^7.5.5" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + through: "npm:^2.3.6" + wrap-ansi: "npm:^7.0.0" + checksum: 10c0/e3e64e10f5daeeb8f770f1310acceb4aab593c10d693e7676ecd4a5b023d5b865b484fec7ead516e5e394db70eff687ef85459f75890f11a99ceadc0f4adce18 + languageName: node + linkType: hard + +"internal-slot@npm:^1.0.7, internal-slot@npm:^1.1.0": + version: 1.1.0 + resolution: "internal-slot@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + hasown: "npm:^2.0.2" + side-channel: "npm:^1.1.0" + checksum: 10c0/03966f5e259b009a9bf1a78d60da920df198af4318ec004f57b8aef1dd3fe377fbc8cce63a96e8c810010302654de89f9e19de1cd8ad0061d15be28a695465c7 + languageName: node + linkType: hard + +"into-stream@npm:^7.0.0": + version: 7.0.0 + resolution: "into-stream@npm:7.0.0" + dependencies: + from2: "npm:^2.3.0" + p-is-promise: "npm:^3.0.0" + checksum: 10c0/ac6975c0029bf969931781ab1534996b35068f5d51ccd55a00b601e2fc638cf040a42c9fb8e3c8f320509af9a56c9b11da8f1159f76db3ed8096779cce618c95 + languageName: node + linkType: hard + +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc + languageName: node + linkType: hard + +"ip-regex@npm:^5.0.0": + version: 5.0.0 + resolution: "ip-regex@npm:5.0.0" + checksum: 10c0/23f07cf393436627b3a91f7121eee5bc831522d07c95ddd13f5a6f7757698b08551480f12e5dbb3bf248724da135d54405c9687733dba7314f74efae593bdf06 + languageName: node + linkType: hard + +"is-accessor-descriptor@npm:^1.0.1": + version: 1.0.1 + resolution: "is-accessor-descriptor@npm:1.0.1" + dependencies: + hasown: "npm:^2.0.0" + checksum: 10c0/d034034074c5ffeb6c868e091083182279db1a956f49f8d1494cecaa0f8b99d706556ded2a9b20d9aa290549106eef8204d67d8572902e06dcb1add6db6b524d + languageName: node + linkType: hard + +"is-alphabetical@npm:^1.0.0": + version: 1.0.4 + resolution: "is-alphabetical@npm:1.0.4" + checksum: 10c0/1505b1de5a1fd74022c05fb21b0e683a8f5229366bac8dc4d34cf6935bcfd104d1125a5e6b083fb778847629f76e5bdac538de5367bdf2b927a1356164e23985 + languageName: node + linkType: hard + +"is-alphabetical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphabetical@npm:2.0.1" + checksum: 10c0/932367456f17237533fd1fc9fe179df77957271020b83ea31da50e5cc472d35ef6b5fb8147453274ffd251134472ce24eb6f8d8398d96dee98237cdb81a6c9a7 + languageName: node + linkType: hard + +"is-alphanumerical@npm:^1.0.0": + version: 1.0.4 + resolution: "is-alphanumerical@npm:1.0.4" + dependencies: + is-alphabetical: "npm:^1.0.0" + is-decimal: "npm:^1.0.0" + checksum: 10c0/d623abae7130a7015c6bf33d99151d4e7005572fd170b86568ff4de5ae86ac7096608b87dd4a1d4dbbd497e392b6396930ba76c9297a69455909cebb68005905 + languageName: node + linkType: hard + +"is-alphanumerical@npm:^2.0.0": + version: 2.0.1 + resolution: "is-alphanumerical@npm:2.0.1" + dependencies: + is-alphabetical: "npm:^2.0.0" + is-decimal: "npm:^2.0.0" + checksum: 10c0/4b35c42b18e40d41378293f82a3ecd9de77049b476f748db5697c297f686e1e05b072a6aaae2d16f54d2a57f85b00cbbe755c75f6d583d1c77d6657bd0feb5a2 + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.4": + version: 3.0.5 + resolution: "is-array-buffer@npm:3.0.5" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.6" + checksum: 10c0/c5c9f25606e86dbb12e756694afbbff64bc8b348d1bc989324c037e1068695131930199d6ad381952715dad3a9569333817f0b1a72ce5af7f883ce802e49c83d + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729 + languageName: node + linkType: hard + +"is-async-function@npm:^2.0.0": + version: 2.0.0 + resolution: "is-async-function@npm:2.0.0" + dependencies: + has-tostringtag: "npm:^1.0.0" + checksum: 10c0/787bc931576aad525d751fc5ce211960fe91e49ac84a5c22d6ae0bc9541945fbc3f686dc590c3175722ce4f6d7b798a93f6f8ff4847fdb2199aea6f4baf5d668 + languageName: node + linkType: hard + +"is-bigint@npm:^1.1.0": + version: 1.1.0 + resolution: "is-bigint@npm:1.1.0" + dependencies: + has-bigints: "npm:^1.0.2" + checksum: 10c0/f4f4b905ceb195be90a6ea7f34323bf1c18e3793f18922e3e9a73c684c29eeeeff5175605c3a3a74cc38185fe27758f07efba3dbae812e5c5afbc0d2316b40e4 + languageName: node + linkType: hard + +"is-boolean-object@npm:^1.2.1": + version: 1.2.1 + resolution: "is-boolean-object@npm:1.2.1" + dependencies: + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10c0/2ef601d255a39fdbde79cfe6be80c27b47430ed6712407f29b17d002e20f64c1e3d6692f1d842ba16bf1e9d8ddf1c4f13cac3ed7d9a4a21290f44879ebb4e8f5 + languageName: node + linkType: hard + +"is-buffer@npm:^1.1.5": + version: 1.1.6 + resolution: "is-buffer@npm:1.1.6" + checksum: 10c0/ae18aa0b6e113d6c490ad1db5e8df9bdb57758382b313f5a22c9c61084875c6396d50bbf49315f5b1926d142d74dfb8d31b40d993a383e0a158b15fea7a82234 + languageName: node + linkType: hard + +"is-builtin-module@npm:^3.2.1": + version: 3.2.1 + resolution: "is-builtin-module@npm:3.2.1" + dependencies: + builtin-modules: "npm:^3.3.0" + checksum: 10c0/5a66937a03f3b18803381518f0ef679752ac18cdb7dd53b5e23ee8df8d440558737bd8dcc04d2aae555909d2ecb4a81b5c0d334d119402584b61e6a003e31af1 + languageName: node + linkType: hard + +"is-bun-module@npm:^1.0.2": + version: 1.3.0 + resolution: "is-bun-module@npm:1.3.0" + dependencies: + semver: "npm:^7.6.3" + checksum: 10c0/2966744188fcd28e0123c52158c7073973f88babfa9ab04e2846ec5862d6b0f8f398df6413429d930f7c5ee6111ce2cbfb3eb8652d9ec42d4a37dc5089a866fb + languageName: node + linkType: hard + +"is-callable@npm:^1.1.3, is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 10c0/ceebaeb9d92e8adee604076971dd6000d38d6afc40bb843ea8e45c5579b57671c3f3b50d7f04869618242c6cee08d1b67806a8cb8edaaaf7c0748b3720d6066f + languageName: node + linkType: hard + +"is-ci@npm:^2.0.0": + version: 2.0.0 + resolution: "is-ci@npm:2.0.0" + dependencies: + ci-info: "npm:^2.0.0" + bin: + is-ci: bin.js + checksum: 10c0/17de4e2cd8f993c56c86472dd53dd9e2c7f126d0ee55afe610557046cdd64de0e8feadbad476edc9eeff63b060523b8673d9094ed2ab294b59efb5a66dd05a9a + languageName: node + linkType: hard + +"is-cidr@npm:^5.1.0": + version: 5.1.0 + resolution: "is-cidr@npm:5.1.0" + dependencies: + cidr-regex: "npm:^4.1.1" + checksum: 10c0/784d16b6efc3950f9c5ce4141be45b35f3796586986e512cde99d1cb31f9bda5127b1da03e9fb97eb16198e644985e9c0c9a4c6f027ab6e7fff36c121e51bedc + languageName: node + linkType: hard + +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0": + version: 2.16.0 + resolution: "is-core-module@npm:2.16.0" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10c0/57e3b4bf3503a5ace3e61ef030a2eefa03d27827647b22968456e3e4befffed7c7aa849eea2e029f4f74a119a2d53cc391d5bad59c9352ecc9b79be3fd2acf79 + languageName: node + linkType: hard + +"is-data-descriptor@npm:^1.0.1": + version: 1.0.1 + resolution: "is-data-descriptor@npm:1.0.1" + dependencies: + hasown: "npm:^2.0.0" + checksum: 10c0/ad3acc372e3227f87eb8cdba112c343ca2a67f1885aecf64f02f901cb0858a1fc9488ad42135ab102e9d9e71a62b3594740790bb103a9ba5da830a131a89e3e8 + languageName: node + linkType: hard + +"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": + version: 1.0.2 + resolution: "is-data-view@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.6" + is-typed-array: "npm:^1.1.13" + checksum: 10c0/ef3548a99d7e7f1370ce21006baca6d40c73e9f15c941f89f0049c79714c873d03b02dae1c64b3f861f55163ecc16da06506c5b8a1d4f16650b3d9351c380153 + languageName: node + linkType: hard + +"is-date-object@npm:^1.0.5, is-date-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-date-object@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10c0/1a4d199c8e9e9cac5128d32e6626fa7805175af9df015620ac0d5d45854ccf348ba494679d872d37301032e35a54fc7978fba1687e8721b2139aea7870cafa2f + languageName: node + linkType: hard + +"is-decimal@npm:^1.0.0": + version: 1.0.4 + resolution: "is-decimal@npm:1.0.4" + checksum: 10c0/a4ad53c4c5c4f5a12214e7053b10326711f6a71f0c63ba1314a77bd71df566b778e4ebd29f9fb6815f07a4dc50c3767fb19bd6fc9fa05e601410f1d64ffeac48 + languageName: node + linkType: hard + +"is-decimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-decimal@npm:2.0.1" + checksum: 10c0/8085dd66f7d82f9de818fba48b9e9c0429cb4291824e6c5f2622e96b9680b54a07a624cfc663b24148b8e853c62a1c987cfe8b0b5a13f5156991afaf6736e334 + languageName: node + linkType: hard + +"is-descriptor@npm:^0.1.0": + version: 0.1.7 + resolution: "is-descriptor@npm:0.1.7" + dependencies: + is-accessor-descriptor: "npm:^1.0.1" + is-data-descriptor: "npm:^1.0.1" + checksum: 10c0/f5960b9783f508aec570465288cb673d4b3cc4aae4e6de970c3afd9a8fc1351edcb85d78b2cce2ec5251893a423f73263cab3bb94cf365a8d71b5d510a116392 + languageName: node + linkType: hard + +"is-descriptor@npm:^1.0.0, is-descriptor@npm:^1.0.2": + version: 1.0.3 + resolution: "is-descriptor@npm:1.0.3" + dependencies: + is-accessor-descriptor: "npm:^1.0.1" + is-data-descriptor: "npm:^1.0.1" + checksum: 10c0/b4ee667ea787d3a0be4e58536087fd0587de2b0b6672fbfe288f5b8d831ac4b79fd987f31d6c2d4e5543a42c97a87428bc5215ce292a1a47070147793878226f + languageName: node + linkType: hard + +"is-docker@npm:^2.0.0": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 10c0/e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc + languageName: node + linkType: hard + +"is-empty@npm:^1.0.0": + version: 1.2.0 + resolution: "is-empty@npm:1.2.0" + checksum: 10c0/f0dd6534716f2749586c35f1dcf37a0a5ac31e91d629ae2652b36c7f72c0ce71f0b68f082a6eed95b1af6f84ba31cd757c2343b19507878ed1e532a3383ebaaa + languageName: node + linkType: hard + +"is-extendable@npm:^0.1.0, is-extendable@npm:^0.1.1": + version: 0.1.1 + resolution: "is-extendable@npm:0.1.1" + checksum: 10c0/dd5ca3994a28e1740d1e25192e66eed128e0b2ff161a7ea348e87ae4f616554b486854de423877a2a2c171d5f7cd6e8093b91f54533bc88a59ee1c9838c43879 + languageName: node + linkType: hard + +"is-extendable@npm:^1.0.1": + version: 1.0.1 + resolution: "is-extendable@npm:1.0.1" + dependencies: + is-plain-object: "npm:^2.0.4" + checksum: 10c0/1d6678a5be1563db6ecb121331c819c38059703f0179f52aa80c242c223ee9c6b66470286636c0e63d7163e4d905c0a7d82a096e0b5eaeabb51b9f8d0af0d73f + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 + languageName: node + linkType: hard + +"is-finalizationregistry@npm:^1.1.0": + version: 1.1.1 + resolution: "is-finalizationregistry@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + checksum: 10c0/818dff679b64f19e228a8205a1e2d09989a98e98def3a817f889208cfcbf918d321b251aadf2c05918194803ebd2eb01b14fc9d0b2bea53d984f4137bfca5e97 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^4.0.0": + version: 4.0.0 + resolution: "is-fullwidth-code-point@npm:4.0.0" + checksum: 10c0/df2a717e813567db0f659c306d61f2f804d480752526886954a2a3e2246c7745fd07a52b5fecf2b68caf0a6c79dcdace6166fdf29cc76ed9975cc334f0a018b8 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^5.0.0": + version: 5.0.0 + resolution: "is-fullwidth-code-point@npm:5.0.0" + dependencies: + get-east-asian-width: "npm:^1.0.0" + checksum: 10c0/cd591b27d43d76b05fa65ed03eddce57a16e1eca0b7797ff7255de97019bcaf0219acfc0c4f7af13319e13541f2a53c0ace476f442b13267b9a6a7568f2b65c8 + languageName: node + linkType: hard + +"is-generator-fn@npm:^2.0.0": + version: 2.1.0 + resolution: "is-generator-fn@npm:2.1.0" + checksum: 10c0/2957cab387997a466cd0bf5c1b6047bd21ecb32bdcfd8996b15747aa01002c1c88731802f1b3d34ac99f4f6874b626418bd118658cf39380fe5fff32a3af9c4d + languageName: node + linkType: hard + +"is-generator-function@npm:^1.0.10": + version: 1.0.10 + resolution: "is-generator-function@npm:1.0.10" + dependencies: + has-tostringtag: "npm:^1.0.0" + checksum: 10c0/df03514df01a6098945b5a0cfa1abff715807c8e72f57c49a0686ad54b3b74d394e2d8714e6f709a71eb00c9630d48e73ca1796c1ccc84ac95092c1fecc0d98b + languageName: node + linkType: hard + +"is-get-set-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "is-get-set-prop@npm:2.0.0" + dependencies: + get-set-props: "npm:^0.2.0" + lowercase-keys: "npm:^3.0.0" + checksum: 10c0/ea745d123bf408999ad5110def63e6943dd03519f941e598e8a4ba4c59c6548bfd97e0f4074b4708add10660fcbcaf174c1c957532f8c2045a59b22181a2f1b9 + languageName: node + linkType: hard + +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a + languageName: node + linkType: hard + +"is-hexadecimal@npm:^1.0.0": + version: 1.0.4 + resolution: "is-hexadecimal@npm:1.0.4" + checksum: 10c0/ec4c64e5624c0f240922324bc697e166554f09d3ddc7633fc526084502626445d0a871fbd8cae52a9844e83bd0bb414193cc5a66806d7b2867907003fc70c5ea + languageName: node + linkType: hard + +"is-hexadecimal@npm:^2.0.0": + version: 2.0.1 + resolution: "is-hexadecimal@npm:2.0.1" + checksum: 10c0/3eb60fe2f1e2bbc760b927dcad4d51eaa0c60138cf7fc671803f66353ad90c301605b502c7ea4c6bb0548e1c7e79dfd37b73b632652e3b76030bba603a7e9626 + languageName: node + linkType: hard + +"is-interactive@npm:^1.0.0": + version: 1.0.0 + resolution: "is-interactive@npm:1.0.0" + checksum: 10c0/dd47904dbf286cd20aa58c5192161be1a67138485b9836d5a70433b21a45442e9611b8498b8ab1f839fc962c7620667a50535fdfb4a6bc7989b8858645c06b4d + languageName: node + linkType: hard + +"is-js-type@npm:^3.0.0": + version: 3.0.0 + resolution: "is-js-type@npm:3.0.0" + dependencies: + js-types: "npm:^4.0.0" + checksum: 10c0/b0c87c52dd9199483dcdb19343c3cdda00981d545af9d7d6e30bb2f03cf73b7a4f5857d22254f95e590ef8f2978877dcbe24268f60ccaead86cc72526f7c3718 + languageName: node + linkType: hard + +"is-map@npm:^2.0.3": + version: 2.0.3 + resolution: "is-map@npm:2.0.3" + checksum: 10c0/2c4d431b74e00fdda7162cd8e4b763d6f6f217edf97d4f8538b94b8702b150610e2c64961340015fe8df5b1fcee33ccd2e9b62619c4a8a3a155f8de6d6d355fc + languageName: node + linkType: hard + +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: 10c0/bcdcf6b8b9714063ffcfa9929c575ac69bfdabb8f4574ff557dfc086df2836cf07e3906f5bbc4f2a5c12f8f3ba56af640c843cdfc74da8caed86c7c7d66fd08e + languageName: node + linkType: hard + +"is-number-object@npm:^1.1.1": + version: 1.1.1 + resolution: "is-number-object@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10c0/97b451b41f25135ff021d85c436ff0100d84a039bb87ffd799cbcdbea81ef30c464ced38258cdd34f080be08fc3b076ca1f472086286d2aa43521d6ec6a79f53 + languageName: node + linkType: hard + +"is-number@npm:^3.0.0": + version: 3.0.0 + resolution: "is-number@npm:3.0.0" + dependencies: + kind-of: "npm:^3.0.2" + checksum: 10c0/e639c54640b7f029623df24d3d103901e322c0c25ea5bde97cd723c2d0d4c05857a8364ab5c58d963089dbed6bf1d0ffe975cb6aef917e2ad0ccbca653d31b4f + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 + languageName: node + linkType: hard + +"is-obj-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "is-obj-prop@npm:2.0.0" + dependencies: + lowercase-keys: "npm:^3.0.0" + obj-props: "npm:^2.0.0" + checksum: 10c0/412677fae1db39ecd6a8de406689e05d2339ec230b951c188a58b2f6fa84213a29b09d72a25f26bb3ded5f6626c9f93b73f23cc7fcdc23255d45a78f9d208906 + languageName: node + linkType: hard + +"is-obj@npm:^2.0.0": + version: 2.0.0 + resolution: "is-obj@npm:2.0.0" + checksum: 10c0/85044ed7ba8bd169e2c2af3a178cacb92a97aa75de9569d02efef7f443a824b5e153eba72b9ae3aca6f8ce81955271aa2dc7da67a8b720575d3e38104208cb4e + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 + languageName: node + linkType: hard + +"is-plain-obj@npm:^4.0.0, is-plain-obj@npm:^4.1.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 10c0/32130d651d71d9564dc88ba7e6fda0e91a1010a3694648e9f4f47bb6080438140696d3e3e15c741411d712e47ac9edc1a8a9de1fe76f3487b0d90be06ac9975e + languageName: node + linkType: hard + +"is-plain-object@npm:^2.0.3, is-plain-object@npm:^2.0.4": + version: 2.0.4 + resolution: "is-plain-object@npm:2.0.4" + dependencies: + isobject: "npm:^3.0.1" + checksum: 10c0/f050fdd5203d9c81e8c4df1b3ff461c4bc64e8b5ca383bcdde46131361d0a678e80bcf00b5257646f6c636197629644d53bd8e2375aea633de09a82d57e942f4 + languageName: node + linkType: hard + +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: 10c0/b73e2f22bc863b0939941d369486d308b43d7aef1f9439705e3582bfccaa4516406865e32c968a35f97a99396dac84e2624e67b0a16b0a15086a785e16ce7db9 + languageName: node + linkType: hard + +"is-proto-prop@npm:^3.0.1": + version: 3.0.1 + resolution: "is-proto-prop@npm:3.0.1" + dependencies: + lowercase-keys: "npm:^3.0.0" + prototype-properties: "npm:^5.0.0" + checksum: 10c0/53fc3447918a27eff0e873f8691f12c1cba69c357177cf456b8cac9d8331765adcad6137476e02132427096706bcc5ebfe23afdcc092a2af161c537552e8a755 + languageName: node + linkType: hard + +"is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" + dependencies: + call-bound: "npm:^1.0.2" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10c0/1d3715d2b7889932349241680032e85d0b492cfcb045acb75ffc2c3085e8d561184f1f7e84b6f8321935b4aea39bc9c6ba74ed595b57ce4881a51dfdbc214e04 + languageName: node + linkType: hard + +"is-set@npm:^2.0.3": + version: 2.0.3 + resolution: "is-set@npm:2.0.3" + checksum: 10c0/f73732e13f099b2dc879c2a12341cfc22ccaca8dd504e6edae26484bd5707a35d503fba5b4daad530a9b088ced1ae6c9d8200fd92e09b428fe14ea79ce8080b7 + languageName: node + linkType: hard + +"is-shared-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "is-shared-array-buffer@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.7" + checksum: 10c0/adc11ab0acbc934a7b9e5e9d6c588d4ec6682f6fea8cda5180721704fa32927582ede5b123349e32517fdadd07958973d24716c80e7ab198970c47acc09e59c7 + languageName: node + linkType: hard + +"is-stream@npm:^1.1.0": + version: 1.1.0 + resolution: "is-stream@npm:1.1.0" + checksum: 10c0/b8ae7971e78d2e8488d15f804229c6eed7ed36a28f8807a1815938771f4adff0e705218b7dab968270433f67103e4fef98062a0beea55d64835f705ee72c7002 + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 + languageName: node + linkType: hard + +"is-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "is-stream@npm:3.0.0" + checksum: 10c0/eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8 + languageName: node + linkType: hard + +"is-stream@npm:^4.0.1": + version: 4.0.1 + resolution: "is-stream@npm:4.0.1" + checksum: 10c0/2706c7f19b851327ba374687bc4a3940805e14ca496dc672b9629e744d143b1ad9c6f1b162dece81c7bfbc0f83b32b61ccc19ad2e05aad2dd7af347408f60c7f + languageName: node + linkType: hard + +"is-string@npm:^1.0.7, is-string@npm:^1.1.1": + version: 1.1.1 + resolution: "is-string@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10c0/2f518b4e47886bb81567faba6ffd0d8a8333cf84336e2e78bf160693972e32ad00fe84b0926491cc598dee576fdc55642c92e62d0cbe96bf36f643b6f956f94d + languageName: node + linkType: hard + +"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1": + version: 1.1.1 + resolution: "is-symbol@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.2" + has-symbols: "npm:^1.1.0" + safe-regex-test: "npm:^1.1.0" + checksum: 10c0/f08f3e255c12442e833f75a9e2b84b2d4882fdfd920513cf2a4a2324f0a5b076c8fd913778e3ea5d258d5183e9d92c0cd20e04b03ab3df05316b049b2670af1e + languageName: node + linkType: hard + +"is-text-path@npm:^2.0.0": + version: 2.0.0 + resolution: "is-text-path@npm:2.0.0" + dependencies: + text-extensions: "npm:^2.0.0" + checksum: 10c0/e3c470e1262a3a54aa0fca1c0300b2659a7aed155714be6b643f88822c03bcfa6659b491f7a05c5acd3c1a3d6d42bab47e1bdd35bcc3a25973c4f26b2928bc1a + languageName: node + linkType: hard + +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14": + version: 1.1.14 + resolution: "is-typed-array@npm:1.1.14" + dependencies: + which-typed-array: "npm:^1.1.16" + checksum: 10c0/1dc1aee98fcdc016b941491f32327b6f651580efe8e0e0fe9a659f7f8a901c0047f9929de4fad08eb4a7f2b9ae42551c08fa054bfb6bfa16109e80b9abab66b2 + languageName: node + linkType: hard + +"is-typedarray@npm:^1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 10c0/4c096275ba041a17a13cca33ac21c16bc4fd2d7d7eb94525e7cd2c2f2c1a3ab956e37622290642501ff4310601e413b675cf399ad6db49855527d2163b3eeeec + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: 10c0/00cbe3455c3756be68d2542c416cab888aebd5012781d6819749fefb15162ff23e38501fe681b3d751c73e8ff561ac09a5293eba6f58fdf0178462ce6dcb3453 + languageName: node + linkType: hard + +"is-unicode-supported@npm:^2.0.0": + version: 2.1.0 + resolution: "is-unicode-supported@npm:2.1.0" + checksum: 10c0/a0f53e9a7c1fdbcf2d2ef6e40d4736fdffff1c9f8944c75e15425118ff3610172c87bf7bc6c34d3903b04be59790bb2212ddbe21ee65b5a97030fc50370545a5 + languageName: node + linkType: hard + +"is-utf8@npm:^0.2.1": + version: 0.2.1 + resolution: "is-utf8@npm:0.2.1" + checksum: 10c0/3ed45e5b4ddfa04ed7e32c63d29c61b980ecd6df74698f45978b8c17a54034943bcbffb6ae243202e799682a66f90fef526f465dd39438745e9fe70794c1ef09 + languageName: node + linkType: hard + +"is-weakmap@npm:^2.0.2": + version: 2.0.2 + resolution: "is-weakmap@npm:2.0.2" + checksum: 10c0/443c35bb86d5e6cc5929cd9c75a4024bb0fff9586ed50b092f94e700b89c43a33b186b76dbc6d54f3d3d09ece689ab38dcdc1af6a482cbe79c0f2da0a17f1299 + languageName: node + linkType: hard + +"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.0": + version: 1.1.0 + resolution: "is-weakref@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.2" + checksum: 10c0/aa835f62e29cb60132ecb3ec7d11bd0f39ec7322325abe8412b805aef47153ec2daefdb21759b049711c674f49b13202a31d8d126bcdff7d8671c78babd4ae5b + languageName: node + linkType: hard + +"is-weakset@npm:^2.0.3": + version: 2.0.4 + resolution: "is-weakset@npm:2.0.4" + dependencies: + call-bound: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.6" + checksum: 10c0/6491eba08acb8dc9532da23cb226b7d0192ede0b88f16199e592e4769db0a077119c1f5d2283d1e0d16d739115f70046e887e477eb0e66cd90e1bb29f28ba647 + languageName: node + linkType: hard + +"is-windows@npm:^1.0.1, is-windows@npm:^1.0.2": + version: 1.0.2 + resolution: "is-windows@npm:1.0.2" + checksum: 10c0/b32f418ab3385604a66f1b7a3ce39d25e8881dee0bd30816dc8344ef6ff9df473a732bcc1ec4e84fe99b2f229ae474f7133e8e93f9241686cfcf7eebe53ba7a5 + languageName: node + linkType: hard + +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" + dependencies: + is-docker: "npm:^2.0.0" + checksum: 10c0/a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e + languageName: node + linkType: hard + +"isarray@npm:1.0.0, isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d + languageName: node + linkType: hard + +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: 10c0/4199f14a7a13da2177c66c31080008b7124331956f47bca57dd0b6ea9f11687aa25e565a2c7a2b519bc86988d10398e3049a1f5df13c9f6b7664154690ae79fd + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 + languageName: node + linkType: hard + +"isobject@npm:^2.0.0": + version: 2.1.0 + resolution: "isobject@npm:2.1.0" + dependencies: + isarray: "npm:1.0.0" + checksum: 10c0/c4cafec73b3b2ee11be75dff8dafd283b5728235ac099b07d7873d5182553a707768e208327bbc12931b9422d8822280bf88d894a0024ff5857b3efefb480e7b + languageName: node + linkType: hard + +"isobject@npm:^3.0.0, isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: 10c0/03344f5064a82f099a0cd1a8a407f4c0d20b7b8485e8e816c39f249e9416b06c322e8dec5b842b6bb8a06de0af9cb48e7bc1b5352f0fadc2f0abac033db3d4db + languageName: node + linkType: hard + +"issue-parser@npm:^7.0.0": + version: 7.0.1 + resolution: "issue-parser@npm:7.0.1" + dependencies: + lodash.capitalize: "npm:^4.2.1" + lodash.escaperegexp: "npm:^4.1.2" + lodash.isplainobject: "npm:^4.0.6" + lodash.isstring: "npm:^4.0.1" + lodash.uniqby: "npm:^4.7.0" + checksum: 10c0/1b2dad16081ae423bb96143132701e89aa8f6345ab0a10f692594ddf5699b514adccaaaf24d7c59afc977c447895bdee15fff2dfc9d6015e177f6966b06f5dcb + languageName: node + linkType: hard + +"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": + version: 3.2.2 + resolution: "istanbul-lib-coverage@npm:3.2.2" + checksum: 10c0/6c7ff2106769e5f592ded1fb418f9f73b4411fd5a084387a5410538332b6567cd1763ff6b6cadca9b9eb2c443cce2f7ea7d7f1b8d315f9ce58539793b1e0922b + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^4.0.3": + version: 4.0.3 + resolution: "istanbul-lib-instrument@npm:4.0.3" + dependencies: + "@babel/core": "npm:^7.7.5" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-coverage: "npm:^3.0.0" + semver: "npm:^6.3.0" + checksum: 10c0/7f1005566a912e33e847576b2c1072d48a7c556810a54d912f3e2f0bd966171e68b30c40b0c1ce6ee9b8864de422d0c10e2d0dfd2d25b48723950cc78cd437c2 + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^5.0.4": + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" + dependencies: + "@babel/core": "npm:^7.12.3" + "@babel/parser": "npm:^7.14.7" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^6.3.0" + checksum: 10c0/8a1bdf3e377dcc0d33ec32fe2b6ecacdb1e4358fd0eb923d4326bb11c67622c0ceb99600a680f3dad5d29c66fc1991306081e339b4d43d0b8a2ab2e1d910a6ee + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.3 + resolution: "istanbul-lib-instrument@npm:6.0.3" + dependencies: + "@babel/core": "npm:^7.23.9" + "@babel/parser": "npm:^7.23.9" + "@istanbuljs/schema": "npm:^0.1.3" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^7.5.4" + checksum: 10c0/a1894e060dd2a3b9f046ffdc87b44c00a35516f5e6b7baf4910369acca79e506fc5323a816f811ae23d82334b38e3ddeb8b3b331bd2c860540793b59a8689128 + languageName: node + linkType: hard + +"istanbul-lib-report@npm:^3.0.0": + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" + dependencies: + istanbul-lib-coverage: "npm:^3.0.0" + make-dir: "npm:^4.0.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/84323afb14392de8b6a5714bd7e9af845cfbd56cfe71ed276cda2f5f1201aea673c7111901227ee33e68e4364e288d73861eb2ed48f6679d1e69a43b6d9b3ba7 + languageName: node + linkType: hard + +"istanbul-lib-source-maps@npm:^4.0.0": + version: 4.0.1 + resolution: "istanbul-lib-source-maps@npm:4.0.1" + dependencies: + debug: "npm:^4.1.1" + istanbul-lib-coverage: "npm:^3.0.0" + source-map: "npm:^0.6.1" + checksum: 10c0/19e4cc405016f2c906dff271a76715b3e881fa9faeb3f09a86cb99b8512b3a5ed19cadfe0b54c17ca0e54c1142c9c6de9330d65506e35873994e06634eebeb66 + languageName: node + linkType: hard + +"istanbul-reports@npm:^3.0.2, istanbul-reports@npm:^3.1.3": + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" + dependencies: + html-escaper: "npm:^2.0.0" + istanbul-lib-report: "npm:^3.0.0" + checksum: 10c0/a379fadf9cf8dc5dfe25568115721d4a7eb82fbd50b005a6672aff9c6989b20cc9312d7865814e0859cd8df58cbf664482e1d3604be0afde1f7fc3ccc1394a51 + languageName: node + linkType: hard + +"iterator.prototype@npm:^1.1.3": + version: 1.1.4 + resolution: "iterator.prototype@npm:1.1.4" + dependencies: + define-data-property: "npm:^1.1.4" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.6" + has-symbols: "npm:^1.1.0" + reflect.getprototypeof: "npm:^1.0.8" + set-function-name: "npm:^2.0.2" + checksum: 10c0/e63fcb5c1094192f43795b836fae9149a7dc2d445425958045e8e193df428407f909efca21bfdf0d885668ae8204681984afac7dd75478118e62f3cd3959c538 + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 + languageName: node + linkType: hard + +"jake@npm:^10.8.5": + version: 10.9.2 + resolution: "jake@npm:10.9.2" + dependencies: + async: "npm:^3.2.3" + chalk: "npm:^4.0.2" + filelist: "npm:^1.0.4" + minimatch: "npm:^3.1.2" + bin: + jake: bin/cli.js + checksum: 10c0/c4597b5ed9b6a908252feab296485a4f87cba9e26d6c20e0ca144fb69e0c40203d34a2efddb33b3d297b8bd59605e6c1f44f6221ca1e10e69175ecbf3ff5fe31 + languageName: node + linkType: hard + +"java-properties@npm:^1.0.2": + version: 1.0.2 + resolution: "java-properties@npm:1.0.2" + checksum: 10c0/be0f58c83b5a852f313de2ea57f7b8b7d46dc062b2ffe487d58838e7034d4660f4d22f2a96aae4daa622af6d734726c0d08b01396e59666ededbcfdc25a694d6 + languageName: node + linkType: hard + +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" + dependencies: + execa: "npm:^5.0.0" + jest-util: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + checksum: 10c0/e071384d9e2f6bb462231ac53f29bff86f0e12394c1b49ccafbad225ce2ab7da226279a8a94f421949920bef9be7ef574fd86aee22e8adfa149be73554ab828b + languageName: node + linkType: hard + +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + co: "npm:^4.6.0" + dedent: "npm:^1.0.0" + is-generator-fn: "npm:^2.0.0" + jest-each: "npm:^29.7.0" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + pretty-format: "npm:^29.7.0" + pure-rand: "npm:^6.0.0" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.3" + checksum: 10c0/8d15344cf7a9f14e926f0deed64ed190c7a4fa1ed1acfcd81e4cc094d3cc5bf7902ebb7b874edc98ada4185688f90c91e1747e0dfd7ac12463b097968ae74b5e + languageName: node + linkType: hard + +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" + dependencies: + "@jest/core": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + create-jest: "npm:^29.7.0" + exit: "npm:^0.1.2" + import-local: "npm:^3.0.2" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + yargs: "npm:^17.3.1" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 10c0/a658fd55050d4075d65c1066364595962ead7661711495cfa1dfeecf3d6d0a8ffec532f3dbd8afbb3e172dd5fd2fb2e813c5e10256e7cf2fea766314942fb43a + languageName: node + linkType: hard + +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@jest/test-sequencer": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + babel-jest: "npm:^29.7.0" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + deepmerge: "npm:^4.2.2" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + jest-circus: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + parse-json: "npm:^5.2.0" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-json-comments: "npm:^3.1.1" + peerDependencies: + "@types/node": "*" + ts-node: ">=9.0.0" + peerDependenciesMeta: + "@types/node": + optional: true + ts-node: + optional: true + checksum: 10c0/bab23c2eda1fff06e0d104b00d6adfb1d1aabb7128441899c9bff2247bd26710b050a5364281ce8d52b46b499153bf7e3ee88b19831a8f3451f1477a0246a0f1 + languageName: node + linkType: hard + +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + diff-sequences: "npm:^29.6.3" + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10c0/89a4a7f182590f56f526443dde69acefb1f2f0c9e59253c61d319569856c4931eae66b8a3790c443f529267a0ddba5ba80431c585deed81827032b2b2a1fc999 + languageName: node + linkType: hard + +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" + dependencies: + detect-newline: "npm:^3.0.0" + checksum: 10c0/d932a8272345cf6b6142bb70a2bb63e0856cc0093f082821577ea5bdf4643916a98744dfc992189d2b1417c38a11fa42466f6111526bc1fb81366f56410f3be9 + languageName: node + linkType: hard + +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + pretty-format: "npm:^29.7.0" + checksum: 10c0/f7f9a90ebee80cc688e825feceb2613627826ac41ea76a366fa58e669c3b2403d364c7c0a74d862d469b103c843154f8456d3b1c02b487509a12afa8b59edbb4 + languageName: node + linkType: hard + +"jest-environment-jsdom@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-jsdom@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/jsdom": "npm:^20.0.0" + "@types/node": "npm:*" + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jsdom: "npm:^20.0.0" + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10c0/139b94e2c8ec1bb5a46ce17df5211da65ce867354b3fd4e00fa6a0d1da95902df4cf7881273fc6ea937e5c325d39d6773f0d41b6c469363334de9d489d2c321f + languageName: node + linkType: hard + +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10c0/61f04fec077f8b1b5c1a633e3612fc0c9aa79a0ab7b05600683428f1e01a4d35346c474bde6f439f9fcc1a4aa9a2861ff852d079a43ab64b02105d1004b2592b + languageName: node + linkType: hard + +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: 10c0/552e7a97a983d3c2d4e412a44eb7de0430ff773dd99f7500962c268d6dfbfa431d7d08f919c9d960530e5f7f78eb47f267ad9b318265e5092b3ff9ede0db7c2b + languageName: node + linkType: hard + +"jest-haste-map@npm:^26.6.2": + version: 26.6.2 + resolution: "jest-haste-map@npm:26.6.2" + dependencies: + "@jest/types": "npm:^26.6.2" + "@types/graceful-fs": "npm:^4.1.2" + "@types/node": "npm:*" + anymatch: "npm:^3.0.3" + fb-watchman: "npm:^2.0.0" + fsevents: "npm:^2.1.2" + graceful-fs: "npm:^4.2.4" + jest-regex-util: "npm:^26.0.0" + jest-serializer: "npm:^26.6.2" + jest-util: "npm:^26.6.2" + jest-worker: "npm:^26.6.2" + micromatch: "npm:^4.0.2" + sane: "npm:^4.0.3" + walker: "npm:^1.0.7" + dependenciesMeta: + fsevents: + optional: true + checksum: 10c0/85a40d8ecf4bfb659613f107c963c7366cdf6dcceb0ca73dc8ca09fbe0e2a63b976940f573db6260c43011993cb804275f447f268c3bc4b680c08baed300701d + languageName: node + linkType: hard + +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/graceful-fs": "npm:^4.1.3" + "@types/node": "npm:*" + anymatch: "npm:^3.0.3" + fb-watchman: "npm:^2.0.0" + fsevents: "npm:^2.3.2" + graceful-fs: "npm:^4.2.9" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + walker: "npm:^1.0.8" + dependenciesMeta: + fsevents: + optional: true + checksum: 10c0/2683a8f29793c75a4728787662972fedd9267704c8f7ef9d84f2beed9a977f1cf5e998c07b6f36ba5603f53cb010c911fe8cd0ac9886e073fe28ca66beefd30c + languageName: node + linkType: hard + +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" + dependencies: + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10c0/71bb9f77fc489acb842a5c7be030f2b9acb18574dc9fb98b3100fc57d422b1abc55f08040884bd6e6dbf455047a62f7eaff12aa4058f7cbdc11558718ca6a395 + languageName: node + linkType: hard + +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10c0/0d0e70b28fa5c7d4dce701dc1f46ae0922102aadc24ed45d594dd9b7ae0a8a6ef8b216718d1ab79e451291217e05d4d49a82666e1a3cc2b428b75cd9c933244e + languageName: node + linkType: hard + +"jest-message-util@npm:^26.6.2": + version: 26.6.2 + resolution: "jest-message-util@npm:26.6.2" + dependencies: + "@babel/code-frame": "npm:^7.0.0" + "@jest/types": "npm:^26.6.2" + "@types/stack-utils": "npm:^2.0.0" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.4" + micromatch: "npm:^4.0.2" + pretty-format: "npm:^26.6.2" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.2" + checksum: 10c0/f6138d67154137cf3e985b2b469d0c78846cce787fed16b107c177fc9c6eb2606b7bce8e88d2a6bc830262d77469ecf26c70925cefc98dee83b5e8ed08981ff5 + languageName: node + linkType: hard + +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" + dependencies: + "@babel/code-frame": "npm:^7.12.13" + "@jest/types": "npm:^29.6.3" + "@types/stack-utils": "npm:^2.0.0" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + micromatch: "npm:^4.0.4" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.3" + checksum: 10c0/850ae35477f59f3e6f27efac5215f706296e2104af39232bb14e5403e067992afb5c015e87a9243ec4d9df38525ef1ca663af9f2f4766aa116f127247008bd22 + languageName: node + linkType: hard + +"jest-mock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-mock@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-util: "npm:^29.7.0" + checksum: 10c0/7b9f8349ee87695a309fe15c46a74ab04c853369e5c40952d68061d9dc3159a0f0ed73e215f81b07ee97a9faaf10aebe5877a9d6255068a0977eae6a9ff1d5ac + languageName: node + linkType: hard + +"jest-pnp-resolver@npm:^1.2.2": + version: 1.2.3 + resolution: "jest-pnp-resolver@npm:1.2.3" + peerDependencies: + jest-resolve: "*" + peerDependenciesMeta: + jest-resolve: + optional: true + checksum: 10c0/86eec0c78449a2de733a6d3e316d49461af6a858070e113c97f75fb742a48c2396ea94150cbca44159ffd4a959f743a47a8b37a792ef6fdad2cf0a5cba973fac + languageName: node + linkType: hard + +"jest-regex-util@npm:^26.0.0": + version: 26.0.0 + resolution: "jest-regex-util@npm:26.0.0" + checksum: 10c0/988675764a08945b90f48e6f5a8640b0d9885a977f100a168061d10037d53808a6cdb7dc8cb6fe9b1332f0523b42bf3edbb6d2cc6c7f7ba582d05d432efb3e60 + languageName: node + linkType: hard + +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 10c0/4e33fb16c4f42111159cafe26397118dcfc4cf08bc178a67149fb05f45546a91928b820894572679d62559839d0992e21080a1527faad65daaae8743a5705a3b + languageName: node + linkType: hard + +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" + dependencies: + jest-regex-util: "npm:^29.6.3" + jest-snapshot: "npm:^29.7.0" + checksum: 10c0/b6e9ad8ae5b6049474118ea6441dfddd385b6d1fc471db0136f7c8fbcfe97137a9665e4f837a9f49f15a29a1deb95a14439b7aec812f3f99d08f228464930f0d + languageName: node + linkType: hard + +"jest-resolve@npm:^26.6.2": + version: 26.6.2 + resolution: "jest-resolve@npm:26.6.2" + dependencies: + "@jest/types": "npm:^26.6.2" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.4" + jest-pnp-resolver: "npm:^1.2.2" + jest-util: "npm:^26.6.2" + read-pkg-up: "npm:^7.0.1" + resolve: "npm:^1.18.1" + slash: "npm:^3.0.0" + checksum: 10c0/9ead2ebe49efeb6c428c25b2da0e773844692cbd1b0b55145c950592053113e67b6121f9cfe1dcea901df3cea8c06ee38a464a37a9b611dc9f1ab376ea7be35a + languageName: node + linkType: hard + +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-pnp-resolver: "npm:^1.2.2" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + resolve: "npm:^1.20.0" + resolve.exports: "npm:^2.0.0" + slash: "npm:^3.0.0" + checksum: 10c0/59da5c9c5b50563e959a45e09e2eace783d7f9ac0b5dcc6375dea4c0db938d2ebda97124c8161310082760e8ebbeff9f6b177c15ca2f57fb424f637a5d2adb47 + languageName: node + linkType: hard + +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/environment": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + emittery: "npm:^0.13.1" + graceful-fs: "npm:^4.2.9" + jest-docblock: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-leak-detector: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-resolve: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + source-map-support: "npm:0.5.13" + checksum: 10c0/2194b4531068d939f14c8d3274fe5938b77fa73126aedf9c09ec9dec57d13f22c72a3b5af01ac04f5c1cf2e28d0ac0b4a54212a61b05f10b5d6b47f2a1097bb4 + languageName: node + linkType: hard + +"jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/globals": "npm:^29.7.0" + "@jest/source-map": "npm:^29.6.3" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + cjs-module-lexer: "npm:^1.0.0" + collect-v8-coverage: "npm:^1.0.0" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-mock: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-bom: "npm:^4.0.0" + checksum: 10c0/7cd89a1deda0bda7d0941835434e44f9d6b7bd50b5c5d9b0fc9a6c990b2d4d2cab59685ab3cb2850ed4cc37059f6de903af5a50565d7f7f1192a77d3fd6dd2a6 + languageName: node + linkType: hard + +"jest-serializer@npm:^26.6.2": + version: 26.6.2 + resolution: "jest-serializer@npm:26.6.2" + dependencies: + "@types/node": "npm:*" + graceful-fs: "npm:^4.2.4" + checksum: 10c0/1c67aa1acefdc0b244f2629aaef12a56e563a5c5cb817970d2b97bdad5e8aae187b269c8d356c42ff9711436499c4da71ec8400e6280dab110be8cc5300884b0 + languageName: node + linkType: hard + +"jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@babel/generator": "npm:^7.7.2" + "@babel/plugin-syntax-jsx": "npm:^7.7.2" + "@babel/plugin-syntax-typescript": "npm:^7.7.2" + "@babel/types": "npm:^7.3.3" + "@jest/expect-utils": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + babel-preset-current-node-syntax: "npm:^1.0.0" + chalk: "npm:^4.0.0" + expect: "npm:^29.7.0" + graceful-fs: "npm:^4.2.9" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + natural-compare: "npm:^1.4.0" + pretty-format: "npm:^29.7.0" + semver: "npm:^7.5.3" + checksum: 10c0/6e9003c94ec58172b4a62864a91c0146513207bedf4e0a06e1e2ac70a4484088a2683e3a0538d8ea913bcfd53dc54a9b98a98cdfa562e7fe1d1339aeae1da570 + languageName: node + linkType: hard + +"jest-util@npm:^26.6.2": + version: 26.6.2 + resolution: "jest-util@npm:26.6.2" + dependencies: + "@jest/types": "npm:^26.6.2" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.4" + is-ci: "npm:^2.0.0" + micromatch: "npm:^4.0.2" + checksum: 10c0/ab93709840f87bdf478d082f5465467c27a20a422cbe456cc2a56961d8c950ea52511995fb6063f62a113737f3dd714b836a1fbde51abef96642a5975e835a01 + languageName: node + linkType: hard + +"jest-util@npm:^29.0.0, jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + graceful-fs: "npm:^4.2.9" + picomatch: "npm:^2.2.3" + checksum: 10c0/bc55a8f49fdbb8f51baf31d2a4f312fb66c9db1483b82f602c9c990e659cdd7ec529c8e916d5a89452ecbcfae4949b21b40a7a59d4ffc0cd813a973ab08c8150 + languageName: node + linkType: hard + +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + camelcase: "npm:^6.2.0" + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.6.3" + leven: "npm:^3.1.0" + pretty-format: "npm:^29.7.0" + checksum: 10c0/a20b930480c1ed68778c739f4739dce39423131bc070cd2505ddede762a5570a256212e9c2401b7ae9ba4d7b7c0803f03c5b8f1561c62348213aba18d9dbece2 + languageName: node + linkType: hard + +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" + dependencies: + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.0.0" + emittery: "npm:^0.13.1" + jest-util: "npm:^29.7.0" + string-length: "npm:^4.0.1" + checksum: 10c0/ec6c75030562fc8f8c727cb8f3b94e75d831fc718785abfc196e1f2a2ebc9a2e38744a15147170039628a853d77a3b695561ce850375ede3a4ee6037a2574567 + languageName: node + linkType: hard + +"jest-worker@npm:^26.6.2": + version: 26.6.2 + resolution: "jest-worker@npm:26.6.2" + dependencies: + "@types/node": "npm:*" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^7.0.0" + checksum: 10c0/07e4dba650381604cda253ab6d5837fe0279c8d68c25884995b45bfe149a7a1e1b5a97f304b4518f257dac2a9ddc1808d57d650649c3ab855e9e60cf824d2970 + languageName: node + linkType: hard + +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" + dependencies: + "@types/node": "npm:*" + jest-util: "npm:^29.7.0" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^8.0.0" + checksum: 10c0/5570a3a005b16f46c131968b8a5b56d291f9bbb85ff4217e31c80bd8a02e7de799e59a54b95ca28d5c302f248b54cbffde2d177c2f0f52ffcee7504c6eabf660 + languageName: node + linkType: hard + +"jest@npm:^29.7.0": + version: 29.7.0 + resolution: "jest@npm:29.7.0" + dependencies: + "@jest/core": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + import-local: "npm:^3.0.2" + jest-cli: "npm:^29.7.0" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 10c0/f40eb8171cf147c617cc6ada49d062fbb03b4da666cb8d39cdbfb739a7d75eea4c3ca150fb072d0d273dce0c753db4d0467d54906ad0293f59c54f9db4a09d8b + languageName: node + linkType: hard + +"jiti@npm:^2.4.1": + version: 2.4.2 + resolution: "jiti@npm:2.4.2" + bin: + jiti: lib/jiti-cli.mjs + checksum: 10c0/4ceac133a08c8faff7eac84aabb917e85e8257f5ad659e843004ce76e981c457c390a220881748ac67ba1b940b9b729b30fb85cbaf6e7989f04b6002c94da331 + languageName: node + linkType: hard + +"js-cookie@npm:^3.0.5": + version: 3.0.5 + resolution: "js-cookie@npm:3.0.5" + checksum: 10c0/04a0e560407b4489daac3a63e231d35f4e86f78bff9d792011391b49c59f721b513411cd75714c418049c8dc9750b20fcddad1ca5a2ca616c3aca4874cce5b3a + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed + languageName: node + linkType: hard + +"js-types@npm:^4.0.0": + version: 4.0.0 + resolution: "js-types@npm:4.0.0" + checksum: 10c0/3e6091a03bb9aa032e8595cb4e6955c661b3ae080ba541dda3254da58ec581d591554eac13cca9651534cb76bd7d4b0a3bd45cc1325718cd76dc29841f606830 + languageName: node + linkType: hard + +"js-yaml@npm:^3.13.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" + dependencies: + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f + languageName: node + linkType: hard + +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 + languageName: node + linkType: hard + +"jsdom@npm:^20.0.0": + version: 20.0.3 + resolution: "jsdom@npm:20.0.3" + dependencies: + abab: "npm:^2.0.6" + acorn: "npm:^8.8.1" + acorn-globals: "npm:^7.0.0" + cssom: "npm:^0.5.0" + cssstyle: "npm:^2.3.0" + data-urls: "npm:^3.0.2" + decimal.js: "npm:^10.4.2" + domexception: "npm:^4.0.0" + escodegen: "npm:^2.0.0" + form-data: "npm:^4.0.0" + html-encoding-sniffer: "npm:^3.0.0" + http-proxy-agent: "npm:^5.0.0" + https-proxy-agent: "npm:^5.0.1" + is-potential-custom-element-name: "npm:^1.0.1" + nwsapi: "npm:^2.2.2" + parse5: "npm:^7.1.1" + saxes: "npm:^6.0.0" + symbol-tree: "npm:^3.2.4" + tough-cookie: "npm:^4.1.2" + w3c-xmlserializer: "npm:^4.0.0" + webidl-conversions: "npm:^7.0.0" + whatwg-encoding: "npm:^2.0.0" + whatwg-mimetype: "npm:^3.0.0" + whatwg-url: "npm:^11.0.0" + ws: "npm:^8.11.0" + xml-name-validator: "npm:^4.0.0" + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10c0/b109073bb826a966db7828f46cb1d7371abecd30f182b143c52be5fe1ed84513bbbe995eb3d157241681fcd18331381e61e3dc004d4949f3a63bca02f6214902 + languageName: node + linkType: hard + +"jsesc@npm:^3.0.2": + version: 3.1.0 + resolution: "jsesc@npm:3.1.0" + bin: + jsesc: bin/jsesc + checksum: 10c0/531779df5ec94f47e462da26b4cbf05eb88a83d9f08aac2ba04206508fc598527a153d08bd462bae82fc78b3eaa1a908e1a4a79f886e9238641c4cdefaf118b1 + languageName: node + linkType: hard + +"jsesc@npm:~0.5.0": + version: 0.5.0 + resolution: "jsesc@npm:0.5.0" + bin: + jsesc: bin/jsesc + checksum: 10c0/f93792440ae1d80f091b65f8ceddf8e55c4bb7f1a09dee5dcbdb0db5612c55c0f6045625aa6b7e8edb2e0a4feabd80ee48616dbe2d37055573a84db3d24f96d9 + languageName: node + linkType: hard + +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 + languageName: node + linkType: hard + +"json-parse-better-errors@npm:^1.0.1": + version: 1.0.2 + resolution: "json-parse-better-errors@npm:1.0.2" + checksum: 10c0/2f1287a7c833e397c9ddd361a78638e828fc523038bb3441fd4fc144cfd2c6cd4963ffb9e207e648cf7b692600f1e1e524e965c32df5152120910e4903a47dcb + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^3.0.0": + version: 3.0.2 + resolution: "json-parse-even-better-errors@npm:3.0.2" + checksum: 10c0/147f12b005768abe9fab78d2521ce2b7e1381a118413d634a40e6d907d7d10f5e9a05e47141e96d6853af7cc36d2c834d0a014251be48791e037ff2f13d2b94b + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^4.0.0": + version: 4.0.0 + resolution: "json-parse-even-better-errors@npm:4.0.0" + checksum: 10c0/84cd9304a97e8fb2af3937bf53acb91c026aeb859703c332684e688ea60db27fc2242aa532a84e1883fdcbe1e5c1fb57c2bef38e312021aa1cd300defc63cf16 + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce + languageName: node + linkType: hard + +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 10c0/71e30015d7f3d6dc1c316d6298047c8ef98a06d31ad064919976583eb61e1018a60a0067338f0f79cabc00d84af3fcc489bd48ce8a46ea165d9541ba17fb30c6 + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5 + languageName: node + linkType: hard + +"json-stringify-nice@npm:^1.1.4": + version: 1.1.4 + resolution: "json-stringify-nice@npm:1.1.4" + checksum: 10c0/13673b67ba9e7fde75a103cade0b0d2dd0d21cd3b918de8d8f6cd59d48ad8c78b0e85f6f4a5842073ddfc91ebdde5ef7c81c7f51945b96a33eaddc5d41324b87 + languageName: node + linkType: hard + +"json-stringify-safe@npm:^5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 + languageName: node + linkType: hard + +"json5@npm:^1.0.2": + version: 1.0.2 + resolution: "json5@npm:1.0.2" + dependencies: + minimist: "npm:^1.2.0" + bin: + json5: lib/cli.js + checksum: 10c0/9ee316bf21f000b00752e6c2a3b79ecf5324515a5c60ee88983a1910a45426b643a4f3461657586e8aeca87aaf96f0a519b0516d2ae527a6c3e7eed80f68717f + languageName: node + linkType: hard + +"json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c + languageName: node + linkType: hard + +"jsonc-parser@npm:^3.2.0": + version: 3.3.1 + resolution: "jsonc-parser@npm:3.3.1" + checksum: 10c0/269c3ae0a0e4f907a914bf334306c384aabb9929bd8c99f909275ebd5c2d3bc70b9bcd119ad794f339dec9f24b6a4ee9cd5a8ab2e6435e730ad4075388fc2ab6 + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: "npm:^4.1.6" + universalify: "npm:^2.0.0" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10c0/4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865 + languageName: node + linkType: hard + +"jsonparse@npm:^1.2.0, jsonparse@npm:^1.3.1": + version: 1.3.1 + resolution: "jsonparse@npm:1.3.1" + checksum: 10c0/89bc68080cd0a0e276d4b5ab1b79cacd68f562467008d176dc23e16e97d4efec9e21741d92ba5087a8433526a45a7e6a9d5ef25408696c402ca1cfbc01a90bf0 + languageName: node + linkType: hard + +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0": + version: 3.3.5 + resolution: "jsx-ast-utils@npm:3.3.5" + dependencies: + array-includes: "npm:^3.1.6" + array.prototype.flat: "npm:^1.3.1" + object.assign: "npm:^4.1.4" + object.values: "npm:^1.1.6" + checksum: 10c0/a32679e9cb55469cb6d8bbc863f7d631b2c98b7fc7bf172629261751a6e7bc8da6ae374ddb74d5fbd8b06cf0eb4572287b259813d92b36e384024ed35e4c13e1 + languageName: node + linkType: hard + +"just-diff-apply@npm:^5.2.0": + version: 5.5.0 + resolution: "just-diff-apply@npm:5.5.0" + checksum: 10c0/d7b85371f2a5a17a108467fda35dddd95264ab438ccec7837b67af5913c57ded7246039d1df2b5bc1ade034ccf815b56d69786c5f1e07383168a066007c796c0 + languageName: node + linkType: hard + +"just-diff@npm:^6.0.0": + version: 6.0.2 + resolution: "just-diff@npm:6.0.2" + checksum: 10c0/1931ca1f0cea4cc480172165c189a84889033ad7a60bee302268ba8ca9f222b43773fd5f272a23ee618d43d85d3048411f06b635571a198159e9a85bb2495f5c + languageName: node + linkType: hard + +"keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: "npm:3.0.1" + checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e + languageName: node + linkType: hard + +"kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0": + version: 3.2.2 + resolution: "kind-of@npm:3.2.2" + dependencies: + is-buffer: "npm:^1.1.5" + checksum: 10c0/7e34bc29d4b02c997f92f080de34ebb92033a96736bbb0bb2410e033a7e5ae6571f1fa37b2d7710018f95361473b816c604234197f4f203f9cf149d8ef1574d9 + languageName: node + linkType: hard + +"kind-of@npm:^4.0.0": + version: 4.0.0 + resolution: "kind-of@npm:4.0.0" + dependencies: + is-buffer: "npm:^1.1.5" + checksum: 10c0/d6c44c75ee36898142dfc7106afbd50593216c37f96acb81a7ab33ca1a6938ce97d5692b8fc8fccd035f83811a9d97749d68771116441a48eedd0b68e2973165 + languageName: node + linkType: hard + +"kind-of@npm:^6.0.2": + version: 6.0.3 + resolution: "kind-of@npm:6.0.3" + checksum: 10c0/61cdff9623dabf3568b6445e93e31376bee1cdb93f8ba7033d86022c2a9b1791a1d9510e026e6465ebd701a6dd2f7b0808483ad8838341ac52f003f512e0b4c4 + languageName: node + linkType: hard + +"kleur@npm:^3.0.3": + version: 3.0.3 + resolution: "kleur@npm:3.0.3" + checksum: 10c0/cd3a0b8878e7d6d3799e54340efe3591ca787d9f95f109f28129bdd2915e37807bf8918bb295ab86afb8c82196beec5a1adcaf29042ce3f2bd932b038fe3aa4b + languageName: node + linkType: hard + +"kleur@npm:^4.0.3": + version: 4.1.5 + resolution: "kleur@npm:4.1.5" + checksum: 10c0/e9de6cb49657b6fa70ba2d1448fd3d691a5c4370d8f7bbf1c2f64c24d461270f2117e1b0afe8cb3114f13bbd8e51de158c2a224953960331904e636a5e4c0f2a + languageName: node + linkType: hard + +"leven@npm:^3.1.0": + version: 3.1.0 + resolution: "leven@npm:3.1.0" + checksum: 10c0/cd778ba3fbab0f4d0500b7e87d1f6e1f041507c56fdcd47e8256a3012c98aaee371d4c15e0a76e0386107af2d42e2b7466160a2d80688aaa03e66e49949f42df + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: "npm:^1.2.1" + type-check: "npm:~0.4.0" + checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e + languageName: node + linkType: hard + +"libnpmaccess@npm:^9.0.0": + version: 9.0.0 + resolution: "libnpmaccess@npm:9.0.0" + dependencies: + npm-package-arg: "npm:^12.0.0" + npm-registry-fetch: "npm:^18.0.1" + checksum: 10c0/5e86cb1b5ead4baa777ee2dbafe27e63c571056d547c83c8e0cd18a173712d9671728e26e405f74c14d10ca592bfd4f2c27c0a5f9882ab9ab3983c5b3d5e249a + languageName: node + linkType: hard + +"libnpmdiff@npm:^7.0.0": + version: 7.0.0 + resolution: "libnpmdiff@npm:7.0.0" + dependencies: + "@npmcli/arborist": "npm:^8.0.0" + "@npmcli/installed-package-contents": "npm:^3.0.0" + binary-extensions: "npm:^2.3.0" + diff: "npm:^5.1.0" + minimatch: "npm:^9.0.4" + npm-package-arg: "npm:^12.0.0" + pacote: "npm:^19.0.0" + tar: "npm:^6.2.1" + checksum: 10c0/9404a613bac00d7023644cb6acfbf8811034692c258c5b795be6c0eb83ef3e490c3d4bcd0fdee10d1986a0a688d263dfc1cb630cc89da228eae268cff7f30be3 + languageName: node + linkType: hard + +"libnpmexec@npm:^9.0.0": + version: 9.0.0 + resolution: "libnpmexec@npm:9.0.0" + dependencies: + "@npmcli/arborist": "npm:^8.0.0" + "@npmcli/run-script": "npm:^9.0.1" + ci-info: "npm:^4.0.0" + npm-package-arg: "npm:^12.0.0" + pacote: "npm:^19.0.0" + proc-log: "npm:^5.0.0" + read: "npm:^4.0.0" + read-package-json-fast: "npm:^4.0.0" + semver: "npm:^7.3.7" + walk-up-path: "npm:^3.0.1" + checksum: 10c0/79eb783d2bf3995c3b4436ab05e2a82f11f84ca0f049613e299da51fd6ff10e1b33ce2497f1e0fcb6e9bf27c51806cdf8cb78f278a36726230529c58ebfdf636 + languageName: node + linkType: hard + +"libnpmfund@npm:^6.0.0": + version: 6.0.0 + resolution: "libnpmfund@npm:6.0.0" + dependencies: + "@npmcli/arborist": "npm:^8.0.0" + checksum: 10c0/bf0a66c131c7a474c98f7545d45bf9adb8338cade923c1a7a5fc062b32f38956d9e720ac80201fbd0e6913b6b2d8176ae161205dcfb6ea8d6f3740bcb316fa3a + languageName: node + linkType: hard + +"libnpmhook@npm:^11.0.0": + version: 11.0.0 + resolution: "libnpmhook@npm:11.0.0" + dependencies: + aproba: "npm:^2.0.0" + npm-registry-fetch: "npm:^18.0.1" + checksum: 10c0/edac74fb7f006f9305b9f8ac0dfc22bca5e404ba0bb65c9f2ef21c8b905ec1fc5ca90471b551fcfba1d216f08fc470804cd21b87f5405b75927df5a975ab0cae + languageName: node + linkType: hard + +"libnpmorg@npm:^7.0.0": + version: 7.0.0 + resolution: "libnpmorg@npm:7.0.0" + dependencies: + aproba: "npm:^2.0.0" + npm-registry-fetch: "npm:^18.0.1" + checksum: 10c0/7fbb0ae997de4920517658df20b633e32f91797d0b287fc9a3e361891fc8e31afbb3d3851dafd44e57067f497056e5ff2a7a6f805b353f2e8de5ecd1692e6ad6 + languageName: node + linkType: hard + +"libnpmpack@npm:^8.0.0": + version: 8.0.0 + resolution: "libnpmpack@npm:8.0.0" + dependencies: + "@npmcli/arborist": "npm:^8.0.0" + "@npmcli/run-script": "npm:^9.0.1" + npm-package-arg: "npm:^12.0.0" + pacote: "npm:^19.0.0" + checksum: 10c0/c8232f22b7789c3f06dd91eee82fc342e4f14fa737aa31f2cff33ea9f0a5c797fd1947317d8f7619acdcdfdc6949f2c02433be3b9e11978d86cb59f3b40d3ca1 + languageName: node + linkType: hard + +"libnpmpublish@npm:^10.0.1": + version: 10.0.1 + resolution: "libnpmpublish@npm:10.0.1" + dependencies: + ci-info: "npm:^4.0.0" + normalize-package-data: "npm:^7.0.0" + npm-package-arg: "npm:^12.0.0" + npm-registry-fetch: "npm:^18.0.1" + proc-log: "npm:^5.0.0" + semver: "npm:^7.3.7" + sigstore: "npm:^3.0.0" + ssri: "npm:^12.0.0" + checksum: 10c0/9420382ab7a80541274d6bba77fc1d96b195c00141ca5ea4cf198814b88e6bda4463a05c5a7e95a9956ff5890fe7dba349518ca06538d31f01bf677c5703247e + languageName: node + linkType: hard + +"libnpmsearch@npm:^8.0.0": + version: 8.0.0 + resolution: "libnpmsearch@npm:8.0.0" + dependencies: + npm-registry-fetch: "npm:^18.0.1" + checksum: 10c0/96063ad6676ed85724b7b246da630c4d59cc7e9c0cc20431cf5b06d40060bb409c04b96070711825fadcc5d6c2abaccb1048268d7262d6c4db2be3a3f2a9404d + languageName: node + linkType: hard + +"libnpmteam@npm:^7.0.0": + version: 7.0.0 + resolution: "libnpmteam@npm:7.0.0" + dependencies: + aproba: "npm:^2.0.0" + npm-registry-fetch: "npm:^18.0.1" + checksum: 10c0/06872f449d6fd1f90c3507bd0654d8102b3820dd8a0882d20a01ad62a3b4f3f165e57f4d833f9a7454bb1ec884c2c7b722490d86a997804efab9697e9ae8cc0e + languageName: node + linkType: hard + +"libnpmversion@npm:^7.0.0": + version: 7.0.0 + resolution: "libnpmversion@npm:7.0.0" + dependencies: + "@npmcli/git": "npm:^6.0.1" + "@npmcli/run-script": "npm:^9.0.1" + json-parse-even-better-errors: "npm:^4.0.0" + proc-log: "npm:^5.0.0" + semver: "npm:^7.3.7" + checksum: 10c0/60d5543aa7fda90b11a10aeedf13482df242bb6ebff70c9eec4d26dcefb5c62cb9dd3fcfdd997b1aba84aa31d117a22b7f24633b75cbe63aa9cc4c519cab2c77 + languageName: node + linkType: hard + +"lilconfig@npm:~3.1.3": + version: 3.1.3 + resolution: "lilconfig@npm:3.1.3" + checksum: 10c0/f5604e7240c5c275743561442fbc5abf2a84ad94da0f5adc71d25e31fa8483048de3dcedcb7a44112a942fed305fd75841cdf6c9681c7f640c63f1049e9a5dcc + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d + languageName: node + linkType: hard + +"lines-and-columns@npm:^2.0.3": + version: 2.0.4 + resolution: "lines-and-columns@npm:2.0.4" + checksum: 10c0/4db28bf065cd7ad897c0700f22d3d0d7c5ed6777e138861c601c496d545340df3fc19e18bd04ff8d95a246a245eb55685b82ca2f8c2ca53a008e9c5316250379 + languageName: node + linkType: hard + +"lint-staged@npm:^15.2.2": + version: 15.2.11 + resolution: "lint-staged@npm:15.2.11" + dependencies: + chalk: "npm:~5.3.0" + commander: "npm:~12.1.0" + debug: "npm:~4.4.0" + execa: "npm:~8.0.1" + lilconfig: "npm:~3.1.3" + listr2: "npm:~8.2.5" + micromatch: "npm:~4.0.8" + pidtree: "npm:~0.6.0" + string-argv: "npm:~0.3.2" + yaml: "npm:~2.6.1" + bin: + lint-staged: bin/lint-staged.js + checksum: 10c0/28e2ad08b90460cc18398a023eaf93954d7753f958c2b889ead2d9305407d7b4ef0ee007875410d6ce1df758007fda77e079c82eb79c9ce684fba71e6f7d0452 + languageName: node + linkType: hard + +"listr2@npm:~8.2.5": + version: 8.2.5 + resolution: "listr2@npm:8.2.5" + dependencies: + cli-truncate: "npm:^4.0.0" + colorette: "npm:^2.0.20" + eventemitter3: "npm:^5.0.1" + log-update: "npm:^6.1.0" + rfdc: "npm:^1.4.1" + wrap-ansi: "npm:^9.0.0" + checksum: 10c0/f5a9599514b00c27d7eb32d1117c83c61394b2a985ec20e542c798bf91cf42b19340215701522736f5b7b42f557e544afeadec47866e35e5d4f268f552729671 + languageName: node + linkType: hard + +"load-json-file@npm:^4.0.0": + version: 4.0.0 + resolution: "load-json-file@npm:4.0.0" + dependencies: + graceful-fs: "npm:^4.1.2" + parse-json: "npm:^4.0.0" + pify: "npm:^3.0.0" + strip-bom: "npm:^3.0.0" + checksum: 10c0/6b48f6a0256bdfcc8970be2c57f68f10acb2ee7e63709b386b2febb6ad3c86198f840889cdbe71d28f741cbaa2f23a7771206b138cd1bdd159564511ca37c1d5 + languageName: node + linkType: hard + +"load-plugin@npm:^6.0.0": + version: 6.0.3 + resolution: "load-plugin@npm:6.0.3" + dependencies: + "@npmcli/config": "npm:^8.0.0" + import-meta-resolve: "npm:^4.0.0" + checksum: 10c0/cbbd4e18472a0ed543b6d60e867a1e2aae385205fcaa76d300ab5a72697e057422cd1e6ff2ba19755c55a86b3d53e53b81a814c757be720895ba525d05f75797 + languageName: node + linkType: hard + +"locate-path@npm:^2.0.0": + version: 2.0.0 + resolution: "locate-path@npm:2.0.0" + dependencies: + p-locate: "npm:^2.0.0" + path-exists: "npm:^3.0.0" + checksum: 10c0/24efa0e589be6aa3c469b502f795126b26ab97afa378846cb508174211515633b770aa0ba610cab113caedab8d2a4902b061a08aaed5297c12ab6f5be4df0133 + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: "npm:^4.1.0" + checksum: 10c0/33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59 + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: "npm:^5.0.0" + checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3 + languageName: node + linkType: hard + +"locate-path@npm:^7.1.0, locate-path@npm:^7.2.0": + version: 7.2.0 + resolution: "locate-path@npm:7.2.0" + dependencies: + p-locate: "npm:^6.0.0" + checksum: 10c0/139e8a7fe11cfbd7f20db03923cacfa5db9e14fa14887ea121345597472b4a63c1a42a8a5187defeeff6acf98fd568da7382aa39682d38f0af27433953a97751 + languageName: node + linkType: hard + +"lodash-es@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash-es@npm:4.17.21" + checksum: 10c0/fb407355f7e6cd523a9383e76e6b455321f0f153a6c9625e21a8827d10c54c2a2341bd2ae8d034358b60e07325e1330c14c224ff582d04612a46a4f0479ff2f2 + languageName: node + linkType: hard + +"lodash.camelcase@npm:^4.3.0": + version: 4.3.0 + resolution: "lodash.camelcase@npm:4.3.0" + checksum: 10c0/fcba15d21a458076dd309fce6b1b4bf611d84a0ec252cb92447c948c533ac250b95d2e00955801ebc367e5af5ed288b996d75d37d2035260a937008e14eaf432 + languageName: node + linkType: hard + +"lodash.capitalize@npm:^4.2.1": + version: 4.2.1 + resolution: "lodash.capitalize@npm:4.2.1" + checksum: 10c0/b289326497c2e24d6b8afa2af2ca4e068ef6ef007ade36bfb6f70af77ce10ea3f090eeee947d5fdcf2db4bcfa4703c8c10a5857a2b39e308bddfd1d11ad35970 + languageName: node + linkType: hard + +"lodash.escaperegexp@npm:^4.1.2": + version: 4.1.2 + resolution: "lodash.escaperegexp@npm:4.1.2" + checksum: 10c0/484ad4067fa9119bb0f7c19a36ab143d0173a081314993fe977bd00cf2a3c6a487ce417a10f6bac598d968364f992153315f0dbe25c9e38e3eb7581dd333e087 + languageName: node + linkType: hard + +"lodash.isplainobject@npm:^4.0.6": + version: 4.0.6 + resolution: "lodash.isplainobject@npm:4.0.6" + checksum: 10c0/afd70b5c450d1e09f32a737bed06ff85b873ecd3d3d3400458725283e3f2e0bb6bf48e67dbe7a309eb371a822b16a26cca4a63c8c52db3fc7dc9d5f9dd324cbb + languageName: node + linkType: hard + +"lodash.isstring@npm:^4.0.1": + version: 4.0.1 + resolution: "lodash.isstring@npm:4.0.1" + checksum: 10c0/09eaf980a283f9eef58ef95b30ec7fee61df4d6bf4aba3b5f096869cc58f24c9da17900febc8ffd67819b4e29de29793190e88dc96983db92d84c95fa85d1c92 + languageName: node + linkType: hard + +"lodash.kebabcase@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.kebabcase@npm:4.1.1" + checksum: 10c0/da5d8f41dbb5bc723d4bf9203d5096ca8da804d6aec3d2b56457156ba6c8d999ff448d347ebd97490da853cb36696ea4da09a431499f1ee8deb17b094ecf4e33 + languageName: node + linkType: hard + +"lodash.map@npm:^4.5.1": + version: 4.6.0 + resolution: "lodash.map@npm:4.6.0" + checksum: 10c0/919fe767fa58d3f8369ddd84346636eda71c88a8ef6bde1ca0d87dd37e71614da2ed8bcfc3018ca5b7741ebaf7c01c2d7078b510dca8ab6a0d0ecafd3dc1abcb + languageName: node + linkType: hard + +"lodash.memoize@npm:^4.1.2": + version: 4.1.2 + resolution: "lodash.memoize@npm:4.1.2" + checksum: 10c0/c8713e51eccc650422716a14cece1809cfe34bc5ab5e242b7f8b4e2241c2483697b971a604252807689b9dd69bfe3a98852e19a5b89d506b000b4187a1285df8 + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 + languageName: node + linkType: hard + +"lodash.mergewith@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.mergewith@npm:4.6.2" + checksum: 10c0/4adbed65ff96fd65b0b3861f6899f98304f90fd71e7f1eb36c1270e05d500ee7f5ec44c02ef979b5ddbf75c0a0b9b99c35f0ad58f4011934c4d4e99e5200b3b5 + languageName: node + linkType: hard + +"lodash.snakecase@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.snakecase@npm:4.1.1" + checksum: 10c0/f0b3f2497eb20eea1a1cfc22d645ecaeb78ac14593eb0a40057977606d2f35f7aaff0913a06553c783b535aafc55b718f523f9eb78f8d5293f492af41002eaf9 + languageName: node + linkType: hard + +"lodash.startcase@npm:^4.4.0": + version: 4.4.0 + resolution: "lodash.startcase@npm:4.4.0" + checksum: 10c0/bd82aa87a45de8080e1c5ee61128c7aee77bf7f1d86f4ff94f4a6d7438fc9e15e5f03374b947be577a93804c8ad6241f0251beaf1452bf716064eeb657b3a9f0 + languageName: node + linkType: hard + +"lodash.uniq@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.uniq@npm:4.5.0" + checksum: 10c0/262d400bb0952f112162a320cc4a75dea4f66078b9e7e3075ffbc9c6aa30b3e9df3cf20e7da7d566105e1ccf7804e4fbd7d804eee0b53de05d83f16ffbf41c5e + languageName: node + linkType: hard + +"lodash.uniqby@npm:^4.7.0": + version: 4.7.0 + resolution: "lodash.uniqby@npm:4.7.0" + checksum: 10c0/c505c0de20ca759599a2ba38710e8fb95ff2d2028e24d86c901ef2c74be8056518571b9b754bfb75053b2818d30dd02243e4a4621a6940c206bbb3f7626db656 + languageName: node + linkType: hard + +"lodash.upperfirst@npm:^4.3.1": + version: 4.3.1 + resolution: "lodash.upperfirst@npm:4.3.1" + checksum: 10c0/435625da4b3ee74e7a1367a780d9107ab0b13ef4359fc074b2a1a40458eb8d91b655af62f6795b7138d493303a98c0285340160341561d6896e4947e077fa975 + languageName: node + linkType: hard + +"lodash@npm:4.17.21, lodash@npm:^4.17.21, lodash@npm:^4.17.4": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c + languageName: node + linkType: hard + +"log-symbols@npm:^4.1.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: "npm:^4.1.0" + is-unicode-supported: "npm:^0.1.0" + checksum: 10c0/67f445a9ffa76db1989d0fa98586e5bc2fd5247260dafb8ad93d9f0ccd5896d53fb830b0e54dade5ad838b9de2006c826831a3c528913093af20dff8bd24aca6 + languageName: node + linkType: hard + +"log-update@npm:^6.1.0": + version: 6.1.0 + resolution: "log-update@npm:6.1.0" + dependencies: + ansi-escapes: "npm:^7.0.0" + cli-cursor: "npm:^5.0.0" + slice-ansi: "npm:^7.1.0" + strip-ansi: "npm:^7.1.0" + wrap-ansi: "npm:^9.0.0" + checksum: 10c0/4b350c0a83d7753fea34dcac6cd797d1dc9603291565de009baa4aa91c0447eab0d3815a05c8ec9ac04fdfffb43c82adcdb03ec1fceafd8518e1a8c1cff4ff89 + languageName: node + linkType: hard + +"longest-streak@npm:^3.0.0": + version: 3.1.0 + resolution: "longest-streak@npm:3.1.0" + checksum: 10c0/7c2f02d0454b52834d1bcedef79c557bd295ee71fdabb02d041ff3aa9da48a90b5df7c0409156dedbc4df9b65da18742652aaea4759d6ece01f08971af6a7eaa + languageName: node + linkType: hard + +"longest@npm:^2.0.1": + version: 2.0.1 + resolution: "longest@npm:2.0.1" + checksum: 10c0/f381993a55acfbb76c7f75cfc14f45502b323e2a9881db6a834a3082f5587f8cd375f1334e562d8b7dcb1f91d10782af5f768c404774acc7ac42c0cefd9f25f8 + languageName: node + linkType: hard + +"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: "npm:^3.0.0 || ^4.0.0" + bin: + loose-envify: cli.js + checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e + languageName: node + linkType: hard + +"lowercase-keys@npm:^3.0.0": + version: 3.0.0 + resolution: "lowercase-keys@npm:3.0.0" + checksum: 10c0/ef62b9fa5690ab0a6e4ef40c94efce68e3ed124f583cc3be38b26ff871da0178a28b9a84ce0c209653bb25ca135520ab87fea7cd411a54ac4899cb2f30501430 + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0, lru-cache@npm:^10.2.2": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: "npm:^3.0.2" + checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 + languageName: node + linkType: hard + +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" + dependencies: + semver: "npm:^7.5.3" + checksum: 10c0/69b98a6c0b8e5c4fe9acb61608a9fbcfca1756d910f51e5dbe7a9e5cfb74fca9b8a0c8a0ffdf1294a740826c1ab4871d5bf3f62f72a3049e5eac6541ddffed68 + languageName: node + linkType: hard + +"make-error@npm:^1.1.1, make-error@npm:^1.3.6": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: 10c0/171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f + languageName: node + linkType: hard + +"make-fetch-happen@npm:^14.0.0, make-fetch-happen@npm:^14.0.1, make-fetch-happen@npm:^14.0.3": + version: 14.0.3 + resolution: "make-fetch-happen@npm:14.0.3" + dependencies: + "@npmcli/agent": "npm:^3.0.0" + cacache: "npm:^19.0.1" + http-cache-semantics: "npm:^4.1.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^4.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^1.0.0" + proc-log: "npm:^5.0.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^12.0.0" + checksum: 10c0/c40efb5e5296e7feb8e37155bde8eb70bc57d731b1f7d90e35a092fde403d7697c56fb49334d92d330d6f1ca29a98142036d6480a12681133a0a1453164cb2f0 + languageName: node + linkType: hard + +"makeerror@npm:1.0.12": + version: 1.0.12 + resolution: "makeerror@npm:1.0.12" + dependencies: + tmpl: "npm:1.0.5" + checksum: 10c0/b0e6e599780ce6bab49cc413eba822f7d1f0dfebd1c103eaa3785c59e43e22c59018323cf9e1708f0ef5329e94a745d163fcbb6bff8e4c6742f9be9e86f3500c + languageName: node + linkType: hard + +"map-cache@npm:^0.2.2": + version: 0.2.2 + resolution: "map-cache@npm:0.2.2" + checksum: 10c0/05e3eb005c1b80b9f949ca007687640e8c5d0fc88dc45c3c3ab4902a3bec79d66a58f3e3b04d6985d90cd267c629c7b46c977e9c34433e8c11ecfcbb9f0fa290 + languageName: node + linkType: hard + +"map-visit@npm:^1.0.0": + version: 1.0.0 + resolution: "map-visit@npm:1.0.0" + dependencies: + object-visit: "npm:^1.0.0" + checksum: 10c0/fb3475e5311939a6147e339999113db607adc11c7c3cd3103e5e9dbf502898416ecba6b1c7c649c6d4d12941de00cee58b939756bdf20a9efe7d4fa5a5738b73 + languageName: node + linkType: hard + +"marked-terminal@npm:^7.0.0": + version: 7.2.1 + resolution: "marked-terminal@npm:7.2.1" + dependencies: + ansi-escapes: "npm:^7.0.0" + ansi-regex: "npm:^6.1.0" + chalk: "npm:^5.3.0" + cli-highlight: "npm:^2.1.11" + cli-table3: "npm:^0.6.5" + node-emoji: "npm:^2.1.3" + supports-hyperlinks: "npm:^3.1.0" + peerDependencies: + marked: ">=1 <15" + checksum: 10c0/33e7901fd7ded6062440582a84d0896b96faf3e9b15ad54d92b7792a3e5533e925f170a905e9ac719a73f83dd3e08f71dfd9f2f75924fdb6c358beceece49450 + languageName: node + linkType: hard + +"marked@npm:^12.0.0": + version: 12.0.2 + resolution: "marked@npm:12.0.2" + bin: + marked: bin/marked.js + checksum: 10c0/45ae2e1e3f06b30a5b5f64efc6cde9830c81d1d024fd7668772a3217f1bc0f326e66a6b8970482d9783edf1f581fecac7023a7fa160f2c14dbcc16e064b4eafb + languageName: node + linkType: hard + +"math-intrinsics@npm:^1.0.0": + version: 1.0.0 + resolution: "math-intrinsics@npm:1.0.0" + checksum: 10c0/470ee2f267b4b3698eb9faa7f0bcf88696d87e2eeab25bba867dc676c09ddbae9b6f2e8ac7a2c1f0c9c2c5299c2a89f4f1f6d0e70d682725e2e7fca7507eef9f + languageName: node + linkType: hard + +"mdast-util-from-markdown@npm:^0.8.5": + version: 0.8.5 + resolution: "mdast-util-from-markdown@npm:0.8.5" + dependencies: + "@types/mdast": "npm:^3.0.0" + mdast-util-to-string: "npm:^2.0.0" + micromark: "npm:~2.11.0" + parse-entities: "npm:^2.0.0" + unist-util-stringify-position: "npm:^2.0.0" + checksum: 10c0/86e7589e574378817c180f10ab602db844b6b71b7b1769314947a02ef42ac5c1435f5163d02a975ae8cdab8b6e6176acbd9188da1848ddd5f0d5e09d0291c870 + languageName: node + linkType: hard + +"mdast-util-from-markdown@npm:^2.0.0": + version: 2.0.2 + resolution: "mdast-util-from-markdown@npm:2.0.2" + dependencies: + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + mdast-util-to-string: "npm:^4.0.0" + micromark: "npm:^4.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-decode-string: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + unist-util-stringify-position: "npm:^4.0.0" + checksum: 10c0/76eb2bd2c6f7a0318087c73376b8af6d7561c1e16654e7667e640f391341096c56142618fd0ff62f6d39e5ab4895898b9789c84cd7cec2874359a437a0e1ff15 + languageName: node + linkType: hard + +"mdast-util-mdx-expression@npm:^2.0.0": + version: 2.0.1 + resolution: "mdast-util-mdx-expression@npm:2.0.1" + dependencies: + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10c0/9a1e57940f66431f10312fa239096efa7627f375e7933b5d3162c0b5c1712a72ac87447aff2b6838d2bbd5c1311b188718cc90b33b67dc67a88550e0a6ef6183 + languageName: node + linkType: hard + +"mdast-util-mdx-jsx@npm:^3.0.0": + version: 3.1.3 + resolution: "mdast-util-mdx-jsx@npm:3.1.3" + dependencies: + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + ccount: "npm:^2.0.0" + devlop: "npm:^1.1.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + parse-entities: "npm:^4.0.0" + stringify-entities: "npm:^4.0.0" + unist-util-stringify-position: "npm:^4.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/1b0b64215efbbbb1ee9ba2a2b3e5f11859dada7dff162949a0d503aefbd75c0308f17d404df126c54acea06d2224905915b2cac2e6c999514c919bd963b8de24 + languageName: node + linkType: hard + +"mdast-util-mdx@npm:^3.0.0": + version: 3.0.0 + resolution: "mdast-util-mdx@npm:3.0.0" + dependencies: + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-mdx-expression: "npm:^2.0.0" + mdast-util-mdx-jsx: "npm:^3.0.0" + mdast-util-mdxjs-esm: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10c0/4faea13f77d6bc9aa64ee41a5e4779110b73444a17fda363df6ebe880ecfa58b321155b71f8801c3faa6d70d6222a32a00cbd6dbf5fad8db417f4688bc9c74e1 + languageName: node + linkType: hard + +"mdast-util-mdxjs-esm@npm:^2.0.0": + version: 2.0.1 + resolution: "mdast-util-mdxjs-esm@npm:2.0.1" + dependencies: + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10c0/5bda92fc154141705af2b804a534d891f28dac6273186edf1a4c5e3f045d5b01dbcac7400d27aaf91b7e76e8dce007c7b2fdf136c11ea78206ad00bdf9db46bc + languageName: node + linkType: hard + +"mdast-util-phrasing@npm:^4.0.0": + version: 4.1.0 + resolution: "mdast-util-phrasing@npm:4.1.0" + dependencies: + "@types/mdast": "npm:^4.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10c0/bf6c31d51349aa3d74603d5e5a312f59f3f65662ed16c58017169a5fb0f84ca98578f626c5ee9e4aa3e0a81c996db8717096705521bddb4a0185f98c12c9b42f + languageName: node + linkType: hard + +"mdast-util-to-markdown@npm:^2.0.0": + version: 2.1.2 + resolution: "mdast-util-to-markdown@npm:2.1.2" + dependencies: + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + longest-streak: "npm:^3.0.0" + mdast-util-phrasing: "npm:^4.0.0" + mdast-util-to-string: "npm:^4.0.0" + micromark-util-classify-character: "npm:^2.0.0" + micromark-util-decode-string: "npm:^2.0.0" + unist-util-visit: "npm:^5.0.0" + zwitch: "npm:^2.0.0" + checksum: 10c0/4649722a6099f12e797bd8d6469b2b43b44e526b5182862d9c7766a3431caad2c0112929c538a972f214e63c015395e5d3f54bd81d9ac1b16e6d8baaf582f749 + languageName: node + linkType: hard + +"mdast-util-to-string@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-to-string@npm:2.0.0" + checksum: 10c0/a4231085133cdfec24644b694c13661e5a01d26716be0105b6792889faa04b8030e4abbf72d4be3363098b2b38b2b98f1f1f1f0858eb6580dc04e2aca1436a37 + languageName: node + linkType: hard + +"mdast-util-to-string@npm:^4.0.0": + version: 4.0.0 + resolution: "mdast-util-to-string@npm:4.0.0" + dependencies: + "@types/mdast": "npm:^4.0.0" + checksum: 10c0/2d3c1af29bf3fe9c20f552ee9685af308002488f3b04b12fa66652c9718f66f41a32f8362aa2d770c3ff464c034860b41715902ada2306bb0a055146cef064d7 + languageName: node + linkType: hard + +"meow@npm:^12.0.1": + version: 12.1.1 + resolution: "meow@npm:12.1.1" + checksum: 10c0/a125ca99a32e2306e2f4cbe651a0d27f6eb67918d43a075f6e80b35e9bf372ebf0fc3a9fbc201cbbc9516444b6265fb3c9f80c5b7ebd32f548aa93eb7c28e088 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 + languageName: node + linkType: hard + +"merge2@npm:^1.3.0": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb + languageName: node + linkType: hard + +"merge@npm:^2.1.1": + version: 2.1.1 + resolution: "merge@npm:2.1.1" + checksum: 10c0/9e722a88f661fb4d32bfbab37dcc10c2057d3e3ec7bda5325a13cbfb82a59916963ec99374cca7f5bd3ff8c65a6ffbd9e1061bc0c45c6e3bf211c78af659cb44 + languageName: node + linkType: hard + +"micromark-core-commonmark@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-core-commonmark@npm:2.0.2" + dependencies: + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-factory-destination: "npm:^2.0.0" + micromark-factory-label: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-factory-title: "npm:^2.0.0" + micromark-factory-whitespace: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-classify-character: "npm:^2.0.0" + micromark-util-html-tag-name: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-resolve-all: "npm:^2.0.0" + micromark-util-subtokenize: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/87c7a75cd339189eb6f1d6323037f7d108d1331d953b84fe839b37fd385ee2292b27222327c1ceffda46ba5d5d4dee703482475e5ee8744be40c9e308d8acb77 + languageName: node + linkType: hard + +"micromark-extension-mdx-expression@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-mdx-expression@npm:3.0.0" + dependencies: + "@types/estree": "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-factory-mdx-expression: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-events-to-acorn: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/fa799c594d8ff9ecbbd28e226959c4928590cfcddb60a926d9d859d00fc7acd25684b6f78dbe6a7f0830879a402b4a3628efd40bb9df1f5846e6d2b7332715f7 + languageName: node + linkType: hard + +"micromark-extension-mdx-jsx@npm:^3.0.0": + version: 3.0.1 + resolution: "micromark-extension-mdx-jsx@npm:3.0.1" + dependencies: + "@types/acorn": "npm:^4.0.0" + "@types/estree": "npm:^1.0.0" + devlop: "npm:^1.0.0" + estree-util-is-identifier-name: "npm:^3.0.0" + micromark-factory-mdx-expression: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-events-to-acorn: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/11e65abd6b57bcf82665469cd1ff238b7cfc4ebb4942a0361df2dc7dd4ab133681b2bcbd4c388dddf6e4db062665d31efeb48cc844ee61c8d8de9d167cc946d8 + languageName: node + linkType: hard + +"micromark-extension-mdx-md@npm:^2.0.0": + version: 2.0.0 + resolution: "micromark-extension-mdx-md@npm:2.0.0" + dependencies: + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/bae91c61273de0e5ba80a980c03470e6cd9d7924aa936f46fbda15d780704d9386e945b99eda200e087b96254fbb4271a9545d5ce02676cd6ae67886a8bf82df + languageName: node + linkType: hard + +"micromark-extension-mdxjs-esm@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-mdxjs-esm@npm:3.0.0" + dependencies: + "@types/estree": "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-core-commonmark: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-events-to-acorn: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + unist-util-position-from-estree: "npm:^2.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/13e3f726495a960650cdedcba39198ace5bdc953ccb12c14d71fc9ed9bb88e40cc3ba9231e973f6984da3b3573e7ddb23ce409f7c16f52a8d57b608bf46c748d + languageName: node + linkType: hard + +"micromark-extension-mdxjs@npm:^3.0.0": + version: 3.0.0 + resolution: "micromark-extension-mdxjs@npm:3.0.0" + dependencies: + acorn: "npm:^8.0.0" + acorn-jsx: "npm:^5.0.0" + micromark-extension-mdx-expression: "npm:^3.0.0" + micromark-extension-mdx-jsx: "npm:^3.0.0" + micromark-extension-mdx-md: "npm:^2.0.0" + micromark-extension-mdxjs-esm: "npm:^3.0.0" + micromark-util-combine-extensions: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/fd84f036ddad0aabbc12e7f1b3e9dcfe31573bbc413c5ae903779ef0366d7a4c08193547e7ba75718c9f45654e45f52e575cfc2f23a5f89205a8a70d9a506aea + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-destination@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/bbafcf869cee5bf511161354cb87d61c142592fbecea051000ff116068dc85216e6d48519d147890b9ea5d7e2864a6341c0c09d9948c203bff624a80a476023c + languageName: node + linkType: hard + +"micromark-factory-label@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-label@npm:2.0.1" + dependencies: + devlop: "npm:^1.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/0137716b4ecb428114165505e94a2f18855c8bbea21b07a8b5ce514b32a595ed789d2b967125718fc44c4197ceaa48f6609d58807a68e778138d2e6b91b824e8 + languageName: node + linkType: hard + +"micromark-factory-mdx-expression@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-factory-mdx-expression@npm:2.0.2" + dependencies: + "@types/estree": "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-events-to-acorn: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + unist-util-position-from-estree: "npm:^2.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/87372775ae06478ab754efa058a5e382972f634c14f0afa303111037c30abf733fe65329a7e59cda969266e63f82104d9ed8ff9ada39189eab0651b6540ca64a + languageName: node + linkType: hard + +"micromark-factory-space@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-space@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/f9ed43f1c0652d8d898de0ac2be3f77f776fffe7dd96bdbba1e02d7ce33d3853c6ff5daa52568fc4fa32cdf3a62d86b85ead9b9189f7211e1d69ff2163c450fb + languageName: node + linkType: hard + +"micromark-factory-title@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-title@npm:2.0.1" + dependencies: + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/e72fad8d6e88823514916890099a5af20b6a9178ccf78e7e5e05f4de99bb8797acb756257d7a3a57a53854cb0086bf8aab15b1a9e9db8982500dd2c9ff5948b6 + languageName: node + linkType: hard + +"micromark-factory-whitespace@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-factory-whitespace@npm:2.0.1" + dependencies: + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/20a1ec58698f24b766510a309b23a10175034fcf1551eaa9da3adcbed3e00cd53d1ebe5f030cf873f76a1cec3c34eb8c50cc227be3344caa9ed25d56cf611224 + languageName: node + linkType: hard + +"micromark-util-character@npm:^2.0.0": + version: 2.1.1 + resolution: "micromark-util-character@npm:2.1.1" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/d3fe7a5e2c4060fc2a076f9ce699c82a2e87190a3946e1e5eea77f563869b504961f5668d9c9c014724db28ac32fa909070ea8b30c3a39bd0483cc6c04cc76a1 + languageName: node + linkType: hard + +"micromark-util-chunked@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-chunked@npm:2.0.1" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/b68c0c16fe8106949537bdcfe1be9cf36c0ccd3bc54c4007003cb0984c3750b6cdd0fd77d03f269a3382b85b0de58bde4f6eedbe7ecdf7244759112289b1ab56 + languageName: node + linkType: hard + +"micromark-util-classify-character@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-classify-character@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/8a02e59304005c475c332f581697e92e8c585bcd45d5d225a66c1c1b14ab5a8062705188c2ccec33cc998d33502514121478b2091feddbc751887fc9c290ed08 + languageName: node + linkType: hard + +"micromark-util-combine-extensions@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-combine-extensions@npm:2.0.1" + dependencies: + micromark-util-chunked: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/f15e282af24c8372cbb10b9b0b3e2c0aa681fea0ca323a44d6bc537dc1d9382c819c3689f14eaa000118f5a163245358ce6276b2cda9a84439cdb221f5d86ae7 + languageName: node + linkType: hard + +"micromark-util-decode-numeric-character-reference@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.2" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/9c8a9f2c790e5593ffe513901c3a110e9ec8882a08f466da014112a25e5059b51551ca0aeb7ff494657d86eceb2f02ee556c6558b8d66aadc61eae4a240da0df + languageName: node + linkType: hard + +"micromark-util-decode-string@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-decode-string@npm:2.0.1" + dependencies: + decode-named-character-reference: "npm:^1.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/f24d75b2e5310be6e7b6dee532e0d17d3bf46996841d6295f2a9c87a2046fff4ab603c52ab9d7a7a6430a8b787b1574ae895849c603d262d1b22eef71736b5cb + languageName: node + linkType: hard + +"micromark-util-encode@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-encode@npm:2.0.1" + checksum: 10c0/b2b29f901093845da8a1bf997ea8b7f5e061ffdba85070dfe14b0197c48fda64ffcf82bfe53c90cf9dc185e69eef8c5d41cae3ba918b96bc279326921b59008a + languageName: node + linkType: hard + +"micromark-util-events-to-acorn@npm:^2.0.0": + version: 2.0.2 + resolution: "micromark-util-events-to-acorn@npm:2.0.2" + dependencies: + "@types/acorn": "npm:^4.0.0" + "@types/estree": "npm:^1.0.0" + "@types/unist": "npm:^3.0.0" + devlop: "npm:^1.0.0" + estree-util-visit: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/2bd2660a49efddb625e6adcabdc3384ae4c50c7a04270737270f4aab53d09e8253e6d2607cd947c4c77f8a9900278915babb240e61fd143dc5bab51d9fd50709 + languageName: node + linkType: hard + +"micromark-util-html-tag-name@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-html-tag-name@npm:2.0.1" + checksum: 10c0/ae80444db786fde908e9295f19a27a4aa304171852c77414516418650097b8afb401961c9edb09d677b06e97e8370cfa65638dde8438ebd41d60c0a8678b85b9 + languageName: node + linkType: hard + +"micromark-util-normalize-identifier@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-normalize-identifier@npm:2.0.1" + dependencies: + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/5299265fa360769fc499a89f40142f10a9d4a5c3dd8e6eac8a8ef3c2e4a6570e4c009cf75ea46dce5ee31c01f25587bde2f4a5cc0a935584ae86dd857f2babbd + languageName: node + linkType: hard + +"micromark-util-resolve-all@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-resolve-all@npm:2.0.1" + dependencies: + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/bb6ca28764696bb479dc44a2d5b5fe003e7177aeae1d6b0d43f24cc223bab90234092d9c3ce4a4d2b8df095ccfd820537b10eb96bb7044d635f385d65a4c984a + languageName: node + linkType: hard + +"micromark-util-sanitize-uri@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-sanitize-uri@npm:2.0.1" + dependencies: + micromark-util-character: "npm:^2.0.0" + micromark-util-encode: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + checksum: 10c0/60e92166e1870fd4f1961468c2651013ff760617342918e0e0c3c4e872433aa2e60c1e5a672bfe5d89dc98f742d6b33897585cf86ae002cda23e905a3c02527c + languageName: node + linkType: hard + +"micromark-util-subtokenize@npm:^2.0.0": + version: 2.0.3 + resolution: "micromark-util-subtokenize@npm:2.0.3" + dependencies: + devlop: "npm:^1.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/75501986ecb02a6f06c0f3e58b584ae3ff3553b520260e8ce27d2db8c79b8888861dd9d3b26e30f5c6084fddd90f96dc3ff551f02c2ac4d669ebe920e483b6d6 + languageName: node + linkType: hard + +"micromark-util-symbol@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-symbol@npm:2.0.1" + checksum: 10c0/f2d1b207771e573232436618e78c5e46cd4b5c560dd4a6d63863d58018abbf49cb96ec69f7007471e51434c60de3c9268ef2bf46852f26ff4aacd10f9da16fe9 + languageName: node + linkType: hard + +"micromark-util-types@npm:^2.0.0": + version: 2.0.1 + resolution: "micromark-util-types@npm:2.0.1" + checksum: 10c0/872ec9334bb42afcc91c5bed8b7ee03b75654b36c6f221ab4d2b1bb0299279f00db948bf38ec6bc1ec03d0cf7842c21ab805190bf676157ba587eb0386d38b71 + languageName: node + linkType: hard + +"micromark@npm:^4.0.0": + version: 4.0.1 + resolution: "micromark@npm:4.0.1" + dependencies: + "@types/debug": "npm:^4.0.0" + debug: "npm:^4.0.0" + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-core-commonmark: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-combine-extensions: "npm:^2.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-encode: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-resolve-all: "npm:^2.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + micromark-util-subtokenize: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10c0/b5d950c84664ce209575e5a54946488f0a1e1240d080544e657b65074c9b08208a5315d9db066b93cbc199ec05f68552ba8b09fd5e716c726f4a4712275a7c5c + languageName: node + linkType: hard + +"micromark@npm:~2.11.0": + version: 2.11.4 + resolution: "micromark@npm:2.11.4" + dependencies: + debug: "npm:^4.0.0" + parse-entities: "npm:^2.0.0" + checksum: 10c0/67307cbacae621ab1eb23e333a5addc7600cf97d3b40cad22fc1c2d03d734d6d9cbc3f5a7e5d655a8c0862a949abe590ab7cfa96be366bfe09e239a94e6eea55 + languageName: node + linkType: hard + +"micromatch@npm:^3.1.4": + version: 3.1.10 + resolution: "micromatch@npm:3.1.10" + dependencies: + arr-diff: "npm:^4.0.0" + array-unique: "npm:^0.3.2" + braces: "npm:^2.3.1" + define-property: "npm:^2.0.2" + extend-shallow: "npm:^3.0.2" + extglob: "npm:^2.0.4" + fragment-cache: "npm:^0.2.1" + kind-of: "npm:^6.0.2" + nanomatch: "npm:^1.2.9" + object.pick: "npm:^1.3.0" + regex-not: "npm:^1.0.0" + snapdragon: "npm:^0.8.1" + to-regex: "npm:^3.0.2" + checksum: 10c0/531a32e7ac92bef60657820202be71b63d0f945c08a69cc4c239c0b19372b751483d464a850a2e3a5ff6cc9060641e43d44c303af104c1a27493d137d8af017f + languageName: node + linkType: hard + +"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:~4.0.8": + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" + dependencies: + braces: "npm:^3.0.3" + picomatch: "npm:^2.3.1" + checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8 + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + +"mime@npm:^4.0.0": + version: 4.0.6 + resolution: "mime@npm:4.0.6" + bin: + mime: bin/cli.js + checksum: 10c0/1797b1c6da4cdb817fc18a4b8d99d6034885946f3d3680c2e4eb18bf19d4a64b42559f1eae0d1607e216f584311f9f806b5bfa1426baebeae4807bec5e14188a + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: 10c0/b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 + languageName: node + linkType: hard + +"mimic-fn@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-fn@npm:4.0.0" + checksum: 10c0/de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf + languageName: node + linkType: hard + +"mimic-function@npm:^5.0.0": + version: 5.0.1 + resolution: "mimic-function@npm:5.0.1" + checksum: 10c0/f3d9464dd1816ecf6bdf2aec6ba32c0728022039d992f178237d8e289b48764fee4131319e72eedd4f7f094e22ded0af836c3187a7edc4595d28dd74368fd81d + languageName: node + linkType: hard + +"min-indent@npm:^1.0.0": + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: 10c0/7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c + languageName: node + linkType: hard + +"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + languageName: node + linkType: hard + +"minimatch@npm:^5.0.1": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/3defdfd230914f22a8da203747c42ee3c405c39d4d37ffda284dac5e45b7e1f6c49aa8be606509002898e73091ff2a3bbfc59c2c6c71d4660609f63aa92f98e3 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + languageName: node + linkType: hard + +"minimist@npm:1.2.7": + version: 1.2.7 + resolution: "minimist@npm:1.2.7" + checksum: 10c0/8808da67ca50ee19ab2d69051d77ee78572e67297fd8a1635ecc757a15106ccdfb5b8c4d11d84750120142f1684e5329a141295728c755e5d149eedd73cc6572 + languageName: node + linkType: hard + +"minimist@npm:^1.1.1, minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.8": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e + languageName: node + linkType: hard + +"minipass-fetch@npm:^4.0.0": + version: 4.0.0 + resolution: "minipass-fetch@npm:4.0.0" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^3.0.1" + dependenciesMeta: + encoding: + optional: true + checksum: 10c0/7fa30ce7c373fb6f94c086b374fff1589fd7e78451855d2d06c2e2d9df936d131e73e952163063016592ed3081444bd8d1ea608533313b0149156ce23311da4b + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.1, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: "npm:^3.0.0" + yallist: "npm:^4.0.0" + checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 + languageName: node + linkType: hard + +"minizlib@npm:^3.0.1": + version: 3.0.1 + resolution: "minizlib@npm:3.0.1" + dependencies: + minipass: "npm:^7.0.4" + rimraf: "npm:^5.0.5" + checksum: 10c0/82f8bf70da8af656909a8ee299d7ed3b3372636749d29e105f97f20e88971be31f5ed7642f2e898f00283b68b701cc01307401cdc209b0efc5dd3818220e5093 + languageName: node + linkType: hard + +"mixin-deep@npm:^1.2.0": + version: 1.3.2 + resolution: "mixin-deep@npm:1.3.2" + dependencies: + for-in: "npm:^1.0.2" + is-extendable: "npm:^1.0.1" + checksum: 10c0/cb39ffb73c377222391af788b4c83d1a6cecb2d9fceb7015384f8deb46e151a9b030c21ef59a79cb524d4557e3f74c7248ab948a62a6e7e296b42644863d183b + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf + languageName: node + linkType: hard + +"mkdirp@npm:^3.0.1": + version: 3.0.1 + resolution: "mkdirp@npm:3.0.1" + bin: + mkdirp: dist/cjs/src/bin.js + checksum: 10c0/9f2b975e9246351f5e3a40dcfac99fcd0baa31fbfab615fe059fb11e51f10e4803c63de1f384c54d656e4db31d000e4767e9ef076a22e12a641357602e31d57d + languageName: node + linkType: hard + +"mri@npm:^1.1.0": + version: 1.2.0 + resolution: "mri@npm:1.2.0" + checksum: 10c0/a3d32379c2554cf7351db6237ddc18dc9e54e4214953f3da105b97dc3babe0deb3ffe99cf409b38ea47cc29f9430561ba6b53b24ab8f9ce97a4b50409e4a50e7 + languageName: node + linkType: hard + +"ms@npm:2.0.0": + version: 2.0.0 + resolution: "ms@npm:2.0.0" + checksum: 10c0/f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d + languageName: node + linkType: hard + +"ms@npm:^2.1.1, ms@npm:^2.1.2, ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + +"mute-stream@npm:0.0.8": + version: 0.0.8 + resolution: "mute-stream@npm:0.0.8" + checksum: 10c0/18d06d92e5d6d45e2b63c0e1b8f25376af71748ac36f53c059baa8b76ffac31c5ab225480494e7d35d30215ecdb18fed26ec23cafcd2f7733f2f14406bcd19e2 + languageName: node + linkType: hard + +"mute-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "mute-stream@npm:2.0.0" + checksum: 10c0/2cf48a2087175c60c8dcdbc619908b49c07f7adcfc37d29236b0c5c612d6204f789104c98cc44d38acab7b3c96f4a3ec2cfdc4934d0738d876dbefa2a12c69f4 + languageName: node + linkType: hard + +"mz@npm:^2.4.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: "npm:^1.0.0" + object-assign: "npm:^4.0.1" + thenify-all: "npm:^1.0.0" + checksum: 10c0/103114e93f87362f0b56ab5b2e7245051ad0276b646e3902c98397d18bb8f4a77f2ea4a2c9d3ad516034ea3a56553b60d3f5f78220001ca4c404bd711bd0af39 + languageName: node + linkType: hard + +"nanomatch@npm:^1.2.9": + version: 1.2.13 + resolution: "nanomatch@npm:1.2.13" + dependencies: + arr-diff: "npm:^4.0.0" + array-unique: "npm:^0.3.2" + define-property: "npm:^2.0.2" + extend-shallow: "npm:^3.0.2" + fragment-cache: "npm:^0.2.1" + is-windows: "npm:^1.0.2" + kind-of: "npm:^6.0.2" + object.pick: "npm:^1.3.0" + regex-not: "npm:^1.0.0" + snapdragon: "npm:^0.8.1" + to-regex: "npm:^3.0.1" + checksum: 10c0/0f5cefa755ca2e20c86332821995effb24acb79551ddaf51c1b9112628cad234a0d8fd9ac6aa56ad1f8bfad6ff6ae86e851acb960943249d9fa44b091479953a + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 + languageName: node + linkType: hard + +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b + languageName: node + linkType: hard + +"neo-async@npm:^2.6.2": + version: 2.6.2 + resolution: "neo-async@npm:2.6.2" + checksum: 10c0/c2f5a604a54a8ec5438a342e1f356dff4bc33ccccdb6dc668d94fe8e5eccfc9d2c2eea6064b0967a767ba63b33763f51ccf2cd2441b461a7322656c1f06b3f5d + languageName: node + linkType: hard + +"nerf-dart@npm:^1.0.0": + version: 1.0.0 + resolution: "nerf-dart@npm:1.0.0" + checksum: 10c0/e19e17d7bd91dfcb1acd07cbdd8df1f0613f3408227538fe91793c6dfcf58e95b5f18b88b4a13e9b31587e89a119fd76d6df4b8d8c65564dd2c409d787819583 + languageName: node + linkType: hard + +"nice-try@npm:^1.0.4": + version: 1.0.5 + resolution: "nice-try@npm:1.0.5" + checksum: 10c0/95568c1b73e1d0d4069a3e3061a2102d854513d37bcfda73300015b7ba4868d3b27c198d1dbbd8ebdef4112fc2ed9e895d4a0f2e1cce0bd334f2a1346dc9205f + languageName: node + linkType: hard + +"node-emoji@npm:^2.1.3": + version: 2.2.0 + resolution: "node-emoji@npm:2.2.0" + dependencies: + "@sindresorhus/is": "npm:^4.6.0" + char-regex: "npm:^1.0.2" + emojilib: "npm:^2.4.0" + skin-tone: "npm:^2.0.0" + checksum: 10c0/9525defbd90a82a2131758c2470203fa2a2faa8edd177147a8654a26307fe03594e52847ecbe2746d06cfc5c50acd12bd500f035350a7609e8217c9894c19aad + languageName: node + linkType: hard + +"node-gyp@npm:^11.0.0, node-gyp@npm:latest": + version: 11.0.0 + resolution: "node-gyp@npm:11.0.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + glob: "npm:^10.3.10" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^14.0.3" + nopt: "npm:^8.0.0" + proc-log: "npm:^5.0.0" + semver: "npm:^7.3.5" + tar: "npm:^7.4.3" + which: "npm:^5.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/a3b885bbee2d271f1def32ba2e30ffcf4562a3db33af06b8b365e053153e2dd2051b9945783c3c8e852d26a0f20f65b251c7e83361623383a99635c0280ee573 + languageName: node + linkType: hard + +"node-int64@npm:^0.4.0": + version: 0.4.0 + resolution: "node-int64@npm:0.4.0" + checksum: 10c0/a6a4d8369e2f2720e9c645255ffde909c0fbd41c92ea92a5607fc17055955daac99c1ff589d421eee12a0d24e99f7bfc2aabfeb1a4c14742f6c099a51863f31a + languageName: node + linkType: hard + +"node-notifier@npm:^8.0.0": + version: 8.0.2 + resolution: "node-notifier@npm:8.0.2" + dependencies: + growly: "npm:^1.3.0" + is-wsl: "npm:^2.2.0" + semver: "npm:^7.3.2" + shellwords: "npm:^0.1.1" + uuid: "npm:^8.3.0" + which: "npm:^2.0.2" + checksum: 10c0/8df8618628c14ef26214a376dbde425264b92ae5e5944d21807f41e3d2ed3ff29f6c5aba089f4a5f22328b2157aa874e93f2304a2134b1ee59508cedf7e889bb + languageName: node + linkType: hard + +"node-releases@npm:^2.0.19": + version: 2.0.19 + resolution: "node-releases@npm:2.0.19" + checksum: 10c0/52a0dbd25ccf545892670d1551690fe0facb6a471e15f2cfa1b20142a5b255b3aa254af5f59d6ecb69c2bec7390bc643c43aa63b13bf5e64b6075952e716b1aa + languageName: node + linkType: hard + +"nopt@npm:^7.2.1": + version: 7.2.1 + resolution: "nopt@npm:7.2.1" + dependencies: + abbrev: "npm:^2.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81 + languageName: node + linkType: hard + +"nopt@npm:^8.0.0": + version: 8.0.0 + resolution: "nopt@npm:8.0.0" + dependencies: + abbrev: "npm:^2.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/19cb986f79abaca2d0f0b560021da7b32ee6fcc3de48f3eaeb0c324d36755c17754f886a754c091f01f740c17caf7d6aea8237b7fbaf39f476ae5e30a249f18f + languageName: node + linkType: hard + +"normalize-package-data@npm:^2.5.0": + version: 2.5.0 + resolution: "normalize-package-data@npm:2.5.0" + dependencies: + hosted-git-info: "npm:^2.1.4" + resolve: "npm:^1.10.0" + semver: "npm:2 || 3 || 4 || 5" + validate-npm-package-license: "npm:^3.0.1" + checksum: 10c0/357cb1646deb42f8eb4c7d42c4edf0eec312f3628c2ef98501963cc4bbe7277021b2b1d977f982b2edce78f5a1014613ce9cf38085c3df2d76730481357ca504 + languageName: node + linkType: hard + +"normalize-package-data@npm:^6.0.0": + version: 6.0.2 + resolution: "normalize-package-data@npm:6.0.2" + dependencies: + hosted-git-info: "npm:^7.0.0" + semver: "npm:^7.3.5" + validate-npm-package-license: "npm:^3.0.4" + checksum: 10c0/7e32174e7f5575ede6d3d449593247183880122b4967d4ae6edb28cea5769ca025defda54fc91ec0e3c972fdb5ab11f9284606ba278826171b264cb16a9311ef + languageName: node + linkType: hard + +"normalize-package-data@npm:^7.0.0": + version: 7.0.0 + resolution: "normalize-package-data@npm:7.0.0" + dependencies: + hosted-git-info: "npm:^8.0.0" + semver: "npm:^7.3.5" + validate-npm-package-license: "npm:^3.0.4" + checksum: 10c0/d492cbc4cdd92e99cba517b08cec6adf40ff37f2e97ecf4484ccb2da1ef5bd81c6dfbd8b434d3bdc749df639492ecdc71f4a61de1a8b99fe97fdf4faac13e7f1 + languageName: node + linkType: hard + +"normalize-path@npm:^2.1.1": + version: 2.1.1 + resolution: "normalize-path@npm:2.1.1" + dependencies: + remove-trailing-separator: "npm:^1.0.1" + checksum: 10c0/db814326ff88057437233361b4c7e9cac7b54815b051b57f2d341ce89b1d8ec8cbd43e7fa95d7652b3b69ea8fcc294b89b8530d556a84d1bdace94229e1e9a8b + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 + languageName: node + linkType: hard + +"normalize-url@npm:^8.0.0": + version: 8.0.1 + resolution: "normalize-url@npm:8.0.1" + checksum: 10c0/eb439231c4b84430f187530e6fdac605c5048ef4ec556447a10c00a91fc69b52d8d8298d9d608e68d3e0f7dc2d812d3455edf425e0f215993667c3183bcab1ef + languageName: node + linkType: hard + +"npm-audit-report@npm:^6.0.0": + version: 6.0.0 + resolution: "npm-audit-report@npm:6.0.0" + checksum: 10c0/16307fb0d13e0df74f737b58c76b1741dcc5f997da0349a928155903fe1a50585421a2f7fd926c7c266751a1d0670bf5536e4277b05a641ab36c12343eac771a + languageName: node + linkType: hard + +"npm-bundled@npm:^4.0.0": + version: 4.0.0 + resolution: "npm-bundled@npm:4.0.0" + dependencies: + npm-normalize-package-bin: "npm:^4.0.0" + checksum: 10c0/e6e20caefbc6a41138d3767ec998f6a2cf55f33371c119417a556ff6052390a2ffeb3b465a74aea127fb211ddfcb7db776620faf12b64e48e60e332b25b5b8a0 + languageName: node + linkType: hard + +"npm-install-checks@npm:^6.0.0": + version: 6.3.0 + resolution: "npm-install-checks@npm:6.3.0" + dependencies: + semver: "npm:^7.1.1" + checksum: 10c0/b046ef1de9b40f5d3a9831ce198e1770140a1c3f253dae22eb7b06045191ef79f18f1dcc15a945c919b3c161426861a28050abd321bf439190185794783b6452 + languageName: node + linkType: hard + +"npm-install-checks@npm:^7.1.0, npm-install-checks@npm:^7.1.1": + version: 7.1.1 + resolution: "npm-install-checks@npm:7.1.1" + dependencies: + semver: "npm:^7.1.1" + checksum: 10c0/3cfd705ef3f70add31a32b4a5462d16e0f06d9df636072483fb43c854414a1cc128f496e84a8d9c12c1f1820307b7a3c275643589c564dac3c870eb636f8eea4 + languageName: node + linkType: hard + +"npm-normalize-package-bin@npm:^3.0.0": + version: 3.0.1 + resolution: "npm-normalize-package-bin@npm:3.0.1" + checksum: 10c0/f1831a7f12622840e1375c785c3dab7b1d82dd521211c17ee5e9610cd1a34d8b232d3fdeebf50c170eddcb321d2c644bf73dbe35545da7d588c6b3fa488db0a5 + languageName: node + linkType: hard + +"npm-normalize-package-bin@npm:^4.0.0": + version: 4.0.0 + resolution: "npm-normalize-package-bin@npm:4.0.0" + checksum: 10c0/1fa546fcae8eaab61ef9b9ec237b6c795008da50e1883eae030e9e38bb04ffa32c5aabcef9a0400eae3dc1f91809bcfa85e437ce80d677c69b419d1d9cacf0ab + languageName: node + linkType: hard + +"npm-package-arg@npm:^11.0.0": + version: 11.0.3 + resolution: "npm-package-arg@npm:11.0.3" + dependencies: + hosted-git-info: "npm:^7.0.0" + proc-log: "npm:^4.0.0" + semver: "npm:^7.3.5" + validate-npm-package-name: "npm:^5.0.0" + checksum: 10c0/e18333485e05c3a8774f4b5701ef74f4799533e650b70a68ca8dd697666c9a8d46932cb765fc593edce299521033bd4025a40323d5240cea8a393c784c0c285a + languageName: node + linkType: hard + +"npm-package-arg@npm:^12.0.0": + version: 12.0.1 + resolution: "npm-package-arg@npm:12.0.1" + dependencies: + hosted-git-info: "npm:^8.0.0" + proc-log: "npm:^5.0.0" + semver: "npm:^7.3.5" + validate-npm-package-name: "npm:^6.0.0" + checksum: 10c0/e7cafb0952541858abe63dfa2fd7b45f1626e310c0b60d6266fafe20c1b5b76388913c3f39390820bee9eac035705639dc62adbcf14748536f867c4d06bbf209 + languageName: node + linkType: hard + +"npm-packlist@npm:^9.0.0": + version: 9.0.0 + resolution: "npm-packlist@npm:9.0.0" + dependencies: + ignore-walk: "npm:^7.0.0" + checksum: 10c0/3eb9e877fff81ed1f97b86a387a13a7d0136a26c4c21d8fab7e49be653e71d604ba63091ec80e3a0b1d1fd879639eab91ddda1a8df45d7631795b83911f2f9b8 + languageName: node + linkType: hard + +"npm-pick-manifest@npm:^10.0.0": + version: 10.0.0 + resolution: "npm-pick-manifest@npm:10.0.0" + dependencies: + npm-install-checks: "npm:^7.1.0" + npm-normalize-package-bin: "npm:^4.0.0" + npm-package-arg: "npm:^12.0.0" + semver: "npm:^7.3.5" + checksum: 10c0/946e791f6164a04dbc3340749cd7521d4d1f60accb2d0ca901375314b8425c8a12b34b4b70e2850462cc898fba5fa8d1f283221bf788a1d37276f06a85c4562a + languageName: node + linkType: hard + +"npm-pick-manifest@npm:^9.0.0": + version: 9.1.0 + resolution: "npm-pick-manifest@npm:9.1.0" + dependencies: + npm-install-checks: "npm:^6.0.0" + npm-normalize-package-bin: "npm:^3.0.0" + npm-package-arg: "npm:^11.0.0" + semver: "npm:^7.3.5" + checksum: 10c0/8765f4199755b381323da2bff2202b4b15b59f59dba0d1be3f2f793b591321cd19e1b5a686ef48d9753a6bd4868550da632541a45dfb61809d55664222d73e44 + languageName: node + linkType: hard + +"npm-profile@npm:^11.0.1": + version: 11.0.1 + resolution: "npm-profile@npm:11.0.1" + dependencies: + npm-registry-fetch: "npm:^18.0.0" + proc-log: "npm:^5.0.0" + checksum: 10c0/4fc6aad91f27bbc122917acd038d5c2b0187519ea149dab6f4f39fe921c0794374f7cf444ea0bf438c49ed6fdc37202cac9bdc107609236c077607dd06f5be4a + languageName: node + linkType: hard + +"npm-registry-fetch@npm:^18.0.0, npm-registry-fetch@npm:^18.0.1, npm-registry-fetch@npm:^18.0.2": + version: 18.0.2 + resolution: "npm-registry-fetch@npm:18.0.2" + dependencies: + "@npmcli/redact": "npm:^3.0.0" + jsonparse: "npm:^1.3.1" + make-fetch-happen: "npm:^14.0.0" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^4.0.0" + minizlib: "npm:^3.0.1" + npm-package-arg: "npm:^12.0.0" + proc-log: "npm:^5.0.0" + checksum: 10c0/43e02befb393f67d5014d690a96d55f0b5f837a3eb9a79b17738ff0e3a1f081968480f2f280d1ad77a088ebd88c196793d929b0e4d24a8389a324dfd4006bc39 + languageName: node + linkType: hard + +"npm-run-path@npm:^2.0.0": + version: 2.0.2 + resolution: "npm-run-path@npm:2.0.2" + dependencies: + path-key: "npm:^2.0.0" + checksum: 10c0/95549a477886f48346568c97b08c4fda9cdbf7ce8a4fbc2213f36896d0d19249e32d68d7451bdcbca8041b5fba04a6b2c4a618beaf19849505c05b700740f1de + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: "npm:^3.0.0" + checksum: 10c0/6f9353a95288f8455cf64cbeb707b28826a7f29690244c1e4bb61ec573256e021b6ad6651b394eb1ccfd00d6ec50147253aba2c5fe58a57ceb111fad62c519ac + languageName: node + linkType: hard + +"npm-run-path@npm:^5.1.0": + version: 5.3.0 + resolution: "npm-run-path@npm:5.3.0" + dependencies: + path-key: "npm:^4.0.0" + checksum: 10c0/124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba + languageName: node + linkType: hard + +"npm-run-path@npm:^6.0.0": + version: 6.0.0 + resolution: "npm-run-path@npm:6.0.0" + dependencies: + path-key: "npm:^4.0.0" + unicorn-magic: "npm:^0.3.0" + checksum: 10c0/b223c8a0dcd608abf95363ea5c3c0ccc3cd877daf0102eaf1b0f2390d6858d8337fbb7c443af2403b067a7d2c116d10691ecd22ab3c5273c44da1ff8d07753bd + languageName: node + linkType: hard + +"npm-user-validate@npm:^3.0.0": + version: 3.0.0 + resolution: "npm-user-validate@npm:3.0.0" + checksum: 10c0/d6aea1188d65ee6dc45adac88300bee3548b0217b14cdc5270c13af123486271cbafe1f140cec1df5f11c484f705f45a59948086dce4eab2040ce0ba3baebb53 + languageName: node + linkType: hard + +"npm@npm:^10.5.0": + version: 10.9.2 + resolution: "npm@npm:10.9.2" + dependencies: + "@isaacs/string-locale-compare": "npm:^1.1.0" + "@npmcli/arborist": "npm:^8.0.0" + "@npmcli/config": "npm:^9.0.0" + "@npmcli/fs": "npm:^4.0.0" + "@npmcli/map-workspaces": "npm:^4.0.2" + "@npmcli/package-json": "npm:^6.1.0" + "@npmcli/promise-spawn": "npm:^8.0.2" + "@npmcli/redact": "npm:^3.0.0" + "@npmcli/run-script": "npm:^9.0.1" + "@sigstore/tuf": "npm:^3.0.0" + abbrev: "npm:^3.0.0" + archy: "npm:~1.0.0" + cacache: "npm:^19.0.1" + chalk: "npm:^5.3.0" + ci-info: "npm:^4.1.0" + cli-columns: "npm:^4.0.0" + fastest-levenshtein: "npm:^1.0.16" + fs-minipass: "npm:^3.0.3" + glob: "npm:^10.4.5" + graceful-fs: "npm:^4.2.11" + hosted-git-info: "npm:^8.0.2" + ini: "npm:^5.0.0" + init-package-json: "npm:^7.0.2" + is-cidr: "npm:^5.1.0" + json-parse-even-better-errors: "npm:^4.0.0" + libnpmaccess: "npm:^9.0.0" + libnpmdiff: "npm:^7.0.0" + libnpmexec: "npm:^9.0.0" + libnpmfund: "npm:^6.0.0" + libnpmhook: "npm:^11.0.0" + libnpmorg: "npm:^7.0.0" + libnpmpack: "npm:^8.0.0" + libnpmpublish: "npm:^10.0.1" + libnpmsearch: "npm:^8.0.0" + libnpmteam: "npm:^7.0.0" + libnpmversion: "npm:^7.0.0" + make-fetch-happen: "npm:^14.0.3" + minimatch: "npm:^9.0.5" + minipass: "npm:^7.1.1" + minipass-pipeline: "npm:^1.2.4" + ms: "npm:^2.1.2" + node-gyp: "npm:^11.0.0" + nopt: "npm:^8.0.0" + normalize-package-data: "npm:^7.0.0" + npm-audit-report: "npm:^6.0.0" + npm-install-checks: "npm:^7.1.1" + npm-package-arg: "npm:^12.0.0" + npm-pick-manifest: "npm:^10.0.0" + npm-profile: "npm:^11.0.1" + npm-registry-fetch: "npm:^18.0.2" + npm-user-validate: "npm:^3.0.0" + p-map: "npm:^4.0.0" + pacote: "npm:^19.0.1" + parse-conflict-json: "npm:^4.0.0" + proc-log: "npm:^5.0.0" + qrcode-terminal: "npm:^0.12.0" + read: "npm:^4.0.0" + semver: "npm:^7.6.3" + spdx-expression-parse: "npm:^4.0.0" + ssri: "npm:^12.0.0" + supports-color: "npm:^9.4.0" + tar: "npm:^6.2.1" + text-table: "npm:~0.2.0" + tiny-relative-date: "npm:^1.3.0" + treeverse: "npm:^3.0.0" + validate-npm-package-name: "npm:^6.0.0" + which: "npm:^5.0.0" + write-file-atomic: "npm:^6.0.0" + bin: + npm: bin/npm-cli.js + npx: bin/npx-cli.js + checksum: 10c0/b6cc861a857a0a28ee91a9f10d42d37043b32712656d7f5d490cf3a60755606cfbd3c0e14ff3e0e3b90eed122a8c1fc7e5abc974b6e5db25cafc37d52d2cea57 + languageName: node + linkType: hard + +"nwsapi@npm:^2.2.2": + version: 2.2.16 + resolution: "nwsapi@npm:2.2.16" + checksum: 10c0/0aa0637f4d51043d0183d994e08336bae996b03b42984381bf09ebdf3ff4909c018eda6b2a8aba0a08f3ea8303db8a0dad0608b38dc0bff15fd87017286ae21a + languageName: node + linkType: hard + +"obj-props@npm:^2.0.0": + version: 2.0.0 + resolution: "obj-props@npm:2.0.0" + checksum: 10c0/6c6514c206760dab2f8e7003dcea97ef2930b6278842a21aac0c99050443e4918c013774375bfe7186156387bf2b897a1c67046bd5628184301fdee60e2e4dde + languageName: node + linkType: hard + +"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + +"object-copy@npm:^0.1.0": + version: 0.1.0 + resolution: "object-copy@npm:0.1.0" + dependencies: + copy-descriptor: "npm:^0.1.0" + define-property: "npm:^0.2.5" + kind-of: "npm:^3.0.3" + checksum: 10c0/79314b05e9d626159a04f1d913f4c4aba9eae8848511cf5f4c8e3b04bb3cc313b65f60357f86462c959a14c2d58380fedf89b6b32ecec237c452a5ef3900a293 + languageName: node + linkType: hard + +"object-inspect@npm:^1.13.3": + version: 1.13.3 + resolution: "object-inspect@npm:1.13.3" + checksum: 10c0/cc3f15213406be89ffdc54b525e115156086796a515410a8d390215915db9f23c8eab485a06f1297402f440a33715fe8f71a528c1dcbad6e1a3bcaf5a46921d4 + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: 10c0/b11f7ccdbc6d406d1f186cdadb9d54738e347b2692a14439ca5ac70c225fa6db46db809711b78589866d47b25fc3e8dee0b4c722ac751e11180f9380e3d8601d + languageName: node + linkType: hard + +"object-visit@npm:^1.0.0": + version: 1.0.1 + resolution: "object-visit@npm:1.0.1" + dependencies: + isobject: "npm:^3.0.0" + checksum: 10c0/086b475bda24abd2318d2b187c3e928959b89f5cb5883d6fe5a42d03719b61fc18e765f658de9ac8730e67ba9ff26d61e73d991215948ff9ecefe771e0071029 + languageName: node + linkType: hard + +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": + version: 4.1.5 + resolution: "object.assign@npm:4.1.5" + dependencies: + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + has-symbols: "npm:^1.0.3" + object-keys: "npm:^1.1.1" + checksum: 10c0/60108e1fa2706f22554a4648299b0955236c62b3685c52abf4988d14fffb0e7731e00aa8c6448397e3eb63d087dcc124a9f21e1980f36d0b2667f3c18bacd469 + languageName: node + linkType: hard + +"object.entries@npm:^1.1.8": + version: 1.1.8 + resolution: "object.entries@npm:1.1.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/db9ea979d2956a3bc26c262da4a4d212d36f374652cc4c13efdd069c1a519c16571c137e2893d1c46e1cb0e15c88fd6419eaf410c945f329f09835487d7e65d3 + languageName: node + linkType: hard + +"object.fromentries@npm:^2.0.8": + version: 2.0.8 + resolution: "object.fromentries@npm:2.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/cd4327e6c3369cfa805deb4cbbe919bfb7d3aeebf0bcaba291bb568ea7169f8f8cdbcabe2f00b40db0c20cd20f08e11b5f3a5a36fb7dd3fe04850c50db3bf83b + languageName: node + linkType: hard + +"object.groupby@npm:^1.0.3": + version: 1.0.3 + resolution: "object.groupby@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + checksum: 10c0/60d0455c85c736fbfeda0217d1a77525956f76f7b2495edeca9e9bbf8168a45783199e77b894d30638837c654d0cc410e0e02cbfcf445bc8de71c3da1ede6a9c + languageName: node + linkType: hard + +"object.pick@npm:^1.3.0": + version: 1.3.0 + resolution: "object.pick@npm:1.3.0" + dependencies: + isobject: "npm:^3.0.1" + checksum: 10c0/cd316ec986e49895a28f2df9182de9cdeee57cd2a952c122aacc86344c28624fe002d9affc4f48b5014ec7c033da9942b08821ddb44db8c5bac5b3ec54bdc31e + languageName: node + linkType: hard + +"object.values@npm:^1.1.6, object.values@npm:^1.2.0": + version: 1.2.0 + resolution: "object.values@npm:1.2.0" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/15809dc40fd6c5529501324fec5ff08570b7d70fb5ebbe8e2b3901afec35cf2b3dc484d1210c6c642cd3e7e0a5e18dd1d6850115337fef46bdae14ab0cb18ac3 + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + languageName: node + linkType: hard + +"onetime@npm:^5.1.0, onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: "npm:^2.1.0" + checksum: 10c0/ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f + languageName: node + linkType: hard + +"onetime@npm:^6.0.0": + version: 6.0.0 + resolution: "onetime@npm:6.0.0" + dependencies: + mimic-fn: "npm:^4.0.0" + checksum: 10c0/4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c + languageName: node + linkType: hard + +"onetime@npm:^7.0.0": + version: 7.0.0 + resolution: "onetime@npm:7.0.0" + dependencies: + mimic-function: "npm:^5.0.0" + checksum: 10c0/5cb9179d74b63f52a196a2e7037ba2b9a893245a5532d3f44360012005c9cadb60851d56716ebff18a6f47129dab7168022445df47c2aff3b276d92585ed1221 + languageName: node + linkType: hard + +"optionator@npm:^0.9.3": + version: 0.9.4 + resolution: "optionator@npm:0.9.4" + dependencies: + deep-is: "npm:^0.1.3" + fast-levenshtein: "npm:^2.0.6" + levn: "npm:^0.4.1" + prelude-ls: "npm:^1.2.1" + type-check: "npm:^0.4.0" + word-wrap: "npm:^1.2.5" + checksum: 10c0/4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675 + languageName: node + linkType: hard + +"ora@npm:^5.4.1": + version: 5.4.1 + resolution: "ora@npm:5.4.1" + dependencies: + bl: "npm:^4.1.0" + chalk: "npm:^4.1.0" + cli-cursor: "npm:^3.1.0" + cli-spinners: "npm:^2.5.0" + is-interactive: "npm:^1.0.0" + is-unicode-supported: "npm:^0.1.0" + log-symbols: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + wcwidth: "npm:^1.0.1" + checksum: 10c0/10ff14aace236d0e2f044193362b22edce4784add08b779eccc8f8ef97195cae1248db8ec1ec5f5ff076f91acbe573f5f42a98c19b78dba8c54eefff983cae85 + languageName: node + linkType: hard + +"os-tmpdir@npm:~1.0.2": + version: 1.0.2 + resolution: "os-tmpdir@npm:1.0.2" + checksum: 10c0/f438450224f8e2687605a8dd318f0db694b6293c5d835ae509a69e97c8de38b6994645337e5577f5001115470414638978cc49da1cdcc25106dad8738dc69990 + languageName: node + linkType: hard + +"p-each-series@npm:^3.0.0": + version: 3.0.0 + resolution: "p-each-series@npm:3.0.0" + checksum: 10c0/695acfd295788a9d6fc68e86a0d205e7bffc17e0e577922d9ed3ae1d2c52566b985637f85af79484ce6fa4b3c1214f2bc75e9bc14974d0ea19f61b13e5ea0c4e + languageName: node + linkType: hard + +"p-filter@npm:^4.0.0": + version: 4.1.0 + resolution: "p-filter@npm:4.1.0" + dependencies: + p-map: "npm:^7.0.1" + checksum: 10c0/aaa663a74e7d97846377f1b7f7713692f95ca3320f0e6f7f2f06db073926bd8ef7b452d0eefc102c6c23f7482339fc52ea487aec2071dc01cae054665f3f004e + languageName: node + linkType: hard + +"p-finally@npm:^1.0.0": + version: 1.0.0 + resolution: "p-finally@npm:1.0.0" + checksum: 10c0/6b8552339a71fe7bd424d01d8451eea92d379a711fc62f6b2fe64cad8a472c7259a236c9a22b4733abca0b5666ad503cb497792a0478c5af31ded793d00937e7 + languageName: node + linkType: hard + +"p-is-promise@npm:^3.0.0": + version: 3.0.0 + resolution: "p-is-promise@npm:3.0.0" + checksum: 10c0/17a52c7a59a31a435a4721a7110faeccb7cc9179cf9cd00016b7a9a7156e2c2ed9d8e2efc0142acab74d5064fbb443eaeaf67517cf3668f2a7c93a7effad5bb9 + languageName: node + linkType: hard + +"p-limit@npm:^1.1.0": + version: 1.3.0 + resolution: "p-limit@npm:1.3.0" + dependencies: + p-try: "npm:^1.0.0" + checksum: 10c0/5c1b1d53d180b2c7501efb04b7c817448e10efe1ba46f4783f8951994d5027e4cd88f36ad79af50546682594c4ebd11702ac4b9364c47f8074890e2acad0edee + languageName: node + linkType: hard + +"p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: "npm:^2.0.0" + checksum: 10c0/8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: "npm:^0.1.0" + checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a + languageName: node + linkType: hard + +"p-limit@npm:^4.0.0": + version: 4.0.0 + resolution: "p-limit@npm:4.0.0" + dependencies: + yocto-queue: "npm:^1.0.0" + checksum: 10c0/a56af34a77f8df2ff61ddfb29431044557fcbcb7642d5a3233143ebba805fc7306ac1d448de724352861cb99de934bc9ab74f0d16fe6a5460bdbdf938de875ad + languageName: node + linkType: hard + +"p-locate@npm:^2.0.0": + version: 2.0.0 + resolution: "p-locate@npm:2.0.0" + dependencies: + p-limit: "npm:^1.1.0" + checksum: 10c0/82da4be88fb02fd29175e66021610c881938d3cc97c813c71c1a605fac05617d57fd5d3b337494a6106c0edb2a37c860241430851411f1b265108cead34aee67 + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: "npm:^2.2.0" + checksum: 10c0/1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9 + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: "npm:^3.0.2" + checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a + languageName: node + linkType: hard + +"p-locate@npm:^6.0.0": + version: 6.0.0 + resolution: "p-locate@npm:6.0.0" + dependencies: + p-limit: "npm:^4.0.0" + checksum: 10c0/d72fa2f41adce59c198270aa4d3c832536c87a1806e0f69dffb7c1a7ca998fb053915ca833d90f166a8c082d3859eabfed95f01698a3214c20df6bb8de046312 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 + languageName: node + linkType: hard + +"p-map@npm:^7.0.1, p-map@npm:^7.0.2": + version: 7.0.3 + resolution: "p-map@npm:7.0.3" + checksum: 10c0/46091610da2b38ce47bcd1d8b4835a6fa4e832848a6682cf1652bc93915770f4617afc844c10a77d1b3e56d2472bb2d5622353fa3ead01a7f42b04fc8e744a5c + languageName: node + linkType: hard + +"p-reduce@npm:^2.0.0": + version: 2.1.0 + resolution: "p-reduce@npm:2.1.0" + checksum: 10c0/27b8ff0fb044995507a06cd6357dffba0f2b98862864745972562a21885d7906ce5c794036d2aaa63ef6303158e41e19aed9f19651dfdafb38548ecec7d0de15 + languageName: node + linkType: hard + +"p-reduce@npm:^3.0.0": + version: 3.0.0 + resolution: "p-reduce@npm:3.0.0" + checksum: 10c0/794cd6c98ad246f6f41fa4b925e56c7d8759b92f67712f5f735418dc7b47cd9aadaecbbbedaea2df879fd9c5d7622ed0b22a2c090d2ec349cf0578485a660196 + languageName: node + linkType: hard + +"p-try@npm:^1.0.0": + version: 1.0.0 + resolution: "p-try@npm:1.0.0" + checksum: 10c0/757ba31de5819502b80c447826fac8be5f16d3cb4fbf9bc8bc4971dba0682e84ac33e4b24176ca7058c69e29f64f34d8d9e9b08e873b7b7bb0aa89d620fa224a + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: 10c0/c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f + languageName: node + linkType: hard + +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b + languageName: node + linkType: hard + +"pacote@npm:^19.0.0, pacote@npm:^19.0.1": + version: 19.0.1 + resolution: "pacote@npm:19.0.1" + dependencies: + "@npmcli/git": "npm:^6.0.0" + "@npmcli/installed-package-contents": "npm:^3.0.0" + "@npmcli/package-json": "npm:^6.0.0" + "@npmcli/promise-spawn": "npm:^8.0.0" + "@npmcli/run-script": "npm:^9.0.0" + cacache: "npm:^19.0.0" + fs-minipass: "npm:^3.0.0" + minipass: "npm:^7.0.2" + npm-package-arg: "npm:^12.0.0" + npm-packlist: "npm:^9.0.0" + npm-pick-manifest: "npm:^10.0.0" + npm-registry-fetch: "npm:^18.0.0" + proc-log: "npm:^5.0.0" + promise-retry: "npm:^2.0.1" + sigstore: "npm:^3.0.0" + ssri: "npm:^12.0.0" + tar: "npm:^6.1.11" + bin: + pacote: bin/index.js + checksum: 10c0/01a1fe755ec7333904c36cd6058e4fcdcfa2869799b929a4a57eb3ac3ca87023825c76aa9e6337904f08f760bff790b592c018357d331acc4c26d2cc273bbc51 + languageName: node + linkType: hard + +"pacote@npm:^20.0.0": + version: 20.0.0 + resolution: "pacote@npm:20.0.0" + dependencies: + "@npmcli/git": "npm:^6.0.0" + "@npmcli/installed-package-contents": "npm:^3.0.0" + "@npmcli/package-json": "npm:^6.0.0" + "@npmcli/promise-spawn": "npm:^8.0.0" + "@npmcli/run-script": "npm:^9.0.0" + cacache: "npm:^19.0.0" + fs-minipass: "npm:^3.0.0" + minipass: "npm:^7.0.2" + npm-package-arg: "npm:^12.0.0" + npm-packlist: "npm:^9.0.0" + npm-pick-manifest: "npm:^10.0.0" + npm-registry-fetch: "npm:^18.0.0" + proc-log: "npm:^5.0.0" + promise-retry: "npm:^2.0.1" + sigstore: "npm:^3.0.0" + ssri: "npm:^12.0.0" + tar: "npm:^6.1.11" + bin: + pacote: bin/index.js + checksum: 10c0/435c385446ecc81b1eb1584f4fa3cb102e630a22877f39b5c1a92eddfeaf222bd027b205e32632be2801e3bcbe525165cdffb5ceca5c13bbc81f8132fe1ba49e + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: "npm:^3.0.0" + checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 + languageName: node + linkType: hard + +"parse-conflict-json@npm:^4.0.0": + version: 4.0.0 + resolution: "parse-conflict-json@npm:4.0.0" + dependencies: + json-parse-even-better-errors: "npm:^4.0.0" + just-diff: "npm:^6.0.0" + just-diff-apply: "npm:^5.2.0" + checksum: 10c0/5e027cdb6c93a283e32e406e829c1d5b30bfb344ab93dd5a0b8fe983f26dab05dd4d8cba3b3106259f32cbea722f383eda2c8132da3a4a9846803d2bdb004feb + languageName: node + linkType: hard + +"parse-entities@npm:^2.0.0": + version: 2.0.0 + resolution: "parse-entities@npm:2.0.0" + dependencies: + character-entities: "npm:^1.0.0" + character-entities-legacy: "npm:^1.0.0" + character-reference-invalid: "npm:^1.0.0" + is-alphanumerical: "npm:^1.0.0" + is-decimal: "npm:^1.0.0" + is-hexadecimal: "npm:^1.0.0" + checksum: 10c0/f85a22c0ea406ff26b53fdc28641f01cc36fa49eb2e3135f02693286c89ef0bcefc2262d99b3688e20aac2a14fd10b75c518583e875c1b9fe3d1f937795e0854 + languageName: node + linkType: hard + +"parse-entities@npm:^4.0.0": + version: 4.0.2 + resolution: "parse-entities@npm:4.0.2" + dependencies: + "@types/unist": "npm:^2.0.0" + character-entities-legacy: "npm:^3.0.0" + character-reference-invalid: "npm:^2.0.0" + decode-named-character-reference: "npm:^1.0.0" + is-alphanumerical: "npm:^2.0.0" + is-decimal: "npm:^2.0.0" + is-hexadecimal: "npm:^2.0.0" + checksum: 10c0/a13906b1151750b78ed83d386294066daf5fb559e08c5af9591b2d98cc209123103016a01df776f65f8219ad26652d6d6b210d0974d452049cddfc53a8916c34 + languageName: node + linkType: hard + +"parse-json@npm:^4.0.0": + version: 4.0.0 + resolution: "parse-json@npm:4.0.0" + dependencies: + error-ex: "npm:^1.3.1" + json-parse-better-errors: "npm:^1.0.1" + checksum: 10c0/8d80790b772ccb1bcea4e09e2697555e519d83d04a77c2b4237389b813f82898943a93ffff7d0d2406203bdd0c30dcf95b1661e3a53f83d0e417f053957bef32 + languageName: node + linkType: hard + +"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": "npm:^7.0.0" + error-ex: "npm:^1.3.1" + json-parse-even-better-errors: "npm:^2.3.0" + lines-and-columns: "npm:^1.1.6" + checksum: 10c0/77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585 + languageName: node + linkType: hard + +"parse-json@npm:^7.0.0": + version: 7.1.1 + resolution: "parse-json@npm:7.1.1" + dependencies: + "@babel/code-frame": "npm:^7.21.4" + error-ex: "npm:^1.3.2" + json-parse-even-better-errors: "npm:^3.0.0" + lines-and-columns: "npm:^2.0.3" + type-fest: "npm:^3.8.0" + checksum: 10c0/a85ebc7430af7763fa52eb456d7efd35c35be5b06f04d8d80c37d0d33312ac6cdff12647acb9c95448dcc8b907dfafa81fb126e094aa132b0abc2a71b9df51d5 + languageName: node + linkType: hard + +"parse-json@npm:^8.0.0": + version: 8.1.0 + resolution: "parse-json@npm:8.1.0" + dependencies: + "@babel/code-frame": "npm:^7.22.13" + index-to-position: "npm:^0.1.2" + type-fest: "npm:^4.7.1" + checksum: 10c0/39a49acafc1c41a763df2599a826eb77873a44b098a5f2ba548843229b334a16ff9d613d0381328e58031b0afaabc18ed2a01337a6522911ac7a81828df58bcb + languageName: node + linkType: hard + +"parse-ms@npm:^4.0.0": + version: 4.0.0 + resolution: "parse-ms@npm:4.0.0" + checksum: 10c0/a7900f4f1ebac24cbf5e9708c16fb2fd482517fad353aecd7aefb8c2ba2f85ce017913ccb8925d231770404780df46244ea6fec598b3bde6490882358b4d2d16 + languageName: node + linkType: hard + +"parse-passwd@npm:^1.0.0": + version: 1.0.0 + resolution: "parse-passwd@npm:1.0.0" + checksum: 10c0/1c05c05f95f184ab9ca604841d78e4fe3294d46b8e3641d305dcc28e930da0e14e602dbda9f3811cd48df5b0e2e27dbef7357bf0d7c40e41b18c11c3a8b8d17b + languageName: node + linkType: hard + +"parse5-htmlparser2-tree-adapter@npm:^6.0.0": + version: 6.0.1 + resolution: "parse5-htmlparser2-tree-adapter@npm:6.0.1" + dependencies: + parse5: "npm:^6.0.1" + checksum: 10c0/dfa5960e2aaf125707e19a4b1bc333de49232eba5a6ffffb95d313a7d6087c3b7a274b58bee8d3bd41bdf150638815d1d601a42bbf2a0345208c3c35b1279556 + languageName: node + linkType: hard + +"parse5@npm:^5.1.1": + version: 5.1.1 + resolution: "parse5@npm:5.1.1" + checksum: 10c0/b0f87a77a7fea5f242e3d76917c983bbea47703b9371801d51536b78942db6441cbda174bf84eb30e47315ddc6f8a0b57d68e562c790154430270acd76c1fa03 + languageName: node + linkType: hard + +"parse5@npm:^6.0.1": + version: 6.0.1 + resolution: "parse5@npm:6.0.1" + checksum: 10c0/595821edc094ecbcfb9ddcb46a3e1fe3a718540f8320eff08b8cf6742a5114cce2d46d45f95c26191c11b184dcaf4e2960abcd9c5ed9eb9393ac9a37efcfdecb + languageName: node + linkType: hard + +"parse5@npm:^7.0.0, parse5@npm:^7.1.1": + version: 7.2.1 + resolution: "parse5@npm:7.2.1" + dependencies: + entities: "npm:^4.5.0" + checksum: 10c0/829d37a0c709215a887e410a7118d754f8e1afd7edb529db95bc7bbf8045fb0266a7b67801331d8e8d9d073ea75793624ec27ce9ff3b96862c3b9008f4d68e80 + languageName: node + linkType: hard + +"pascalcase@npm:^0.1.1": + version: 0.1.1 + resolution: "pascalcase@npm:0.1.1" + checksum: 10c0/48dfe90618e33810bf58211d8f39ad2c0262f19ad6354da1ba563935b5f429f36409a1fb9187c220328f7a4dc5969917f8e3e01ee089b5f1627b02aefe39567b + languageName: node + linkType: hard + +"path-exists@npm:^3.0.0": + version: 3.0.0 + resolution: "path-exists@npm:3.0.0" + checksum: 10c0/17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167 + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b + languageName: node + linkType: hard + +"path-exists@npm:^5.0.0": + version: 5.0.0 + resolution: "path-exists@npm:5.0.0" + checksum: 10c0/b170f3060b31604cde93eefdb7392b89d832dfbc1bed717c9718cbe0f230c1669b7e75f87e19901da2250b84d092989a0f9e44d2ef41deb09aa3ad28e691a40a + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 + languageName: node + linkType: hard + +"path-key@npm:^2.0.0, path-key@npm:^2.0.1": + version: 2.0.1 + resolution: "path-key@npm:2.0.1" + checksum: 10c0/dd2044f029a8e58ac31d2bf34c34b93c3095c1481942960e84dd2faa95bbb71b9b762a106aead0646695330936414b31ca0bd862bf488a937ad17c8c5d73b32b + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + languageName: node + linkType: hard + +"path-key@npm:^4.0.0": + version: 4.0.0 + resolution: "path-key@npm:4.0.0" + checksum: 10c0/794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3 + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 + languageName: node + linkType: hard + +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c + languageName: node + linkType: hard + +"path-type@npm:^5.0.0": + version: 5.0.0 + resolution: "path-type@npm:5.0.0" + checksum: 10c0/e8f4b15111bf483900c75609e5e74e3fcb79f2ddb73e41470028fcd3e4b5162ec65da9907be077ee5012c18801ff7fffb35f9f37a077f3f81d85a0b7d6578efd + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be + languageName: node + linkType: hard + +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: 10c0/7c51f3ad2bb42c776f49ebf964c644958158be30d0a510efd5a395e8d49cb5acfed5b82c0c5b365523ce18e6ab85013c9ebe574f60305892ec3fa8eee8304ccc + languageName: node + linkType: hard + +"pidtree@npm:~0.6.0": + version: 0.6.0 + resolution: "pidtree@npm:0.6.0" + bin: + pidtree: bin/pidtree.js + checksum: 10c0/0829ec4e9209e230f74ebf4265f5ccc9ebfb488334b525cb13f86ff801dca44b362c41252cd43ae4d7653a10a5c6ab3be39d2c79064d6895e0d78dc50a5ed6e9 + languageName: node + linkType: hard + +"pify@npm:^3.0.0": + version: 3.0.0 + resolution: "pify@npm:3.0.0" + checksum: 10c0/fead19ed9d801f1b1fcd0638a1ac53eabbb0945bf615f2f8806a8b646565a04a1b0e7ef115c951d225f042cca388fdc1cd3add46d10d1ed6951c20bd2998af10 + languageName: node + linkType: hard + +"pirates@npm:^4.0.1, pirates@npm:^4.0.4": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 10c0/00d5fa51f8dded94d7429700fb91a0c1ead00ae2c7fd27089f0c5b63e6eca36197fe46384631872690a66f390c5e27198e99006ab77ae472692ab9c2ca903f36 + languageName: node + linkType: hard + +"pkg-conf@npm:^2.1.0": + version: 2.1.0 + resolution: "pkg-conf@npm:2.1.0" + dependencies: + find-up: "npm:^2.0.0" + load-json-file: "npm:^4.0.0" + checksum: 10c0/e1474a4f7714ee78204b4a7f2316dec9e59887762bdc126ebd0eb701bbde7c6a6da65c4dc9c2a7c1eaeee49914009bf4a4368f5d9894c596ddf812ff982fdb05 + languageName: node + linkType: hard + +"pkg-dir@npm:^4.2.0": + version: 4.2.0 + resolution: "pkg-dir@npm:4.2.0" + dependencies: + find-up: "npm:^4.0.0" + checksum: 10c0/c56bda7769e04907a88423feb320babaed0711af8c436ce3e56763ab1021ba107c7b0cafb11cde7529f669cfc22bffcaebffb573645cbd63842ea9fb17cd7728 + languageName: node + linkType: hard + +"pkg-dir@npm:^7.0.0": + version: 7.0.0 + resolution: "pkg-dir@npm:7.0.0" + dependencies: + find-up: "npm:^6.3.0" + checksum: 10c0/1afb23d2efb1ec9d8b2c4a0c37bf146822ad2774f074cb05b853be5dca1b40815c5960dd126df30ab8908349262a266f31b771e877235870a3b8fd313beebec5 + languageName: node + linkType: hard + +"pluralize@npm:^8.0.0": + version: 8.0.0 + resolution: "pluralize@npm:8.0.0" + checksum: 10c0/2044cfc34b2e8c88b73379ea4a36fc577db04f651c2909041b054c981cd863dd5373ebd030123ab058d194ae615d3a97cfdac653991e499d10caf592e8b3dc33 + languageName: node + linkType: hard + +"posix-character-classes@npm:^0.1.0": + version: 0.1.1 + resolution: "posix-character-classes@npm:0.1.1" + checksum: 10c0/cce88011548a973b4af58361cd8f5f7b5a6faff8eef0901565802f067bcabf82597e920d4c97c22068464be3cbc6447af589f6cc8a7d813ea7165be60a0395bc + languageName: node + linkType: hard + +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: 10c0/d9aa22d31f4f7680e20269db76791b41c3a32c01a373e25f8a4813b4d45f7456bfc2b6d68f752dc4aab0e0bb0721cb3d76fb678c9101cb7a16316664bc2c73fd + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.1.2": + version: 6.1.2 + resolution: "postcss-selector-parser@npm:6.1.2" + dependencies: + cssesc: "npm:^3.0.0" + util-deprecate: "npm:^1.0.2" + checksum: 10c0/523196a6bd8cf660bdf537ad95abd79e546d54180f9afb165a4ab3e651ac705d0f8b8ce6b3164fb9e3279ce482c5f751a69eb2d3a1e8eb0fd5e82294fb3ef13e + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd + languageName: node + linkType: hard + +"prettier-linter-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "prettier-linter-helpers@npm:1.0.0" + dependencies: + fast-diff: "npm:^1.1.2" + checksum: 10c0/81e0027d731b7b3697ccd2129470ed9913ecb111e4ec175a12f0fcfab0096516373bf0af2fef132af50cafb0a905b74ff57996d615f59512bb9ac7378fcc64ab + languageName: node + linkType: hard + +"prettier@npm:^3.2.5": + version: 3.4.2 + resolution: "prettier@npm:3.4.2" + bin: + prettier: bin/prettier.cjs + checksum: 10c0/99e076a26ed0aba4ebc043880d0f08bbb8c59a4c6641cdee6cdadf2205bdd87aa1d7823f50c3aea41e015e99878d37c58d7b5f0e663bba0ef047f94e36b96446 + languageName: node + linkType: hard + +"pretty-format@npm:^26.6.2": + version: 26.6.2 + resolution: "pretty-format@npm:26.6.2" + dependencies: + "@jest/types": "npm:^26.6.2" + ansi-regex: "npm:^5.0.0" + ansi-styles: "npm:^4.0.0" + react-is: "npm:^17.0.1" + checksum: 10c0/b5ddf0e949b874b699d313fe9407f0eb65e67d00823b2dd95335905a73457260af7612f3bff6b48611fcca9ffcff003359e4c9faba4200d6209da433a859aef3 + languageName: node + linkType: hard + +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" + dependencies: + "@jest/schemas": "npm:^29.6.3" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^18.0.0" + checksum: 10c0/edc5ff89f51916f036c62ed433506b55446ff739358de77207e63e88a28ca2894caac6e73dcb68166a606e51c8087d32d400473e6a9fdd2dbe743f46c9c0276f + languageName: node + linkType: hard + +"pretty-ms@npm:^9.0.0": + version: 9.2.0 + resolution: "pretty-ms@npm:9.2.0" + dependencies: + parse-ms: "npm:^4.0.0" + checksum: 10c0/ab6d066f90e9f77020426986e1b018369f41575674544c539aabec2e63a20fec01166d8cf6571d0e165ad11cfe5a8134a2a48a36d42ab291c59c6deca5264cbb + languageName: node + linkType: hard + +"proc-log@npm:^4.0.0, proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9 + languageName: node + linkType: hard + +"proc-log@npm:^5.0.0": + version: 5.0.0 + resolution: "proc-log@npm:5.0.0" + checksum: 10c0/bbe5edb944b0ad63387a1d5b1911ae93e05ce8d0f60de1035b218cdcceedfe39dbd2c697853355b70f1a090f8f58fe90da487c85216bf9671f9499d1a897e9e3 + languageName: node + linkType: hard + +"process-nextick-args@npm:~2.0.0": + version: 2.0.1 + resolution: "process-nextick-args@npm:2.0.1" + checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367 + languageName: node + linkType: hard + +"proggy@npm:^3.0.0": + version: 3.0.0 + resolution: "proggy@npm:3.0.0" + checksum: 10c0/b4265664405e780edf7a164b2424bb59fc7bd3ab917365c88c6540e5f3bedcbbfb1a534da9c6a4a5570f374a41ef6942e9a4e862dc3ea744798b6c7be63e4351 + languageName: node + linkType: hard + +"promise-all-reject-late@npm:^1.0.0": + version: 1.0.1 + resolution: "promise-all-reject-late@npm:1.0.1" + checksum: 10c0/f1af0c7b0067e84d64751148ee5bb6c3e84f4a4d1316d6fe56261e1d2637cf71b49894bcbd2c6daf7d45afb1bc99efc3749be277c3e0518b70d0c5a29d037011 + languageName: node + linkType: hard + +"promise-call-limit@npm:^3.0.1": + version: 3.0.2 + resolution: "promise-call-limit@npm:3.0.2" + checksum: 10c0/1f984c16025925594d738833f5da7525b755f825a198d5a0cac1c0280b4f38ecc3c32c1f4e5ef614ddcfd6718c1a8c3f98a3290ae6f421342281c9a88c488bf7 + languageName: node + linkType: hard + +"promise-inflight@npm:^1.0.1": + version: 1.0.1 + resolution: "promise-inflight@npm:1.0.1" + checksum: 10c0/d179d148d98fbff3d815752fa9a08a87d3190551d1420f17c4467f628214db12235ae068d98cd001f024453676d8985af8f28f002345646c4ece4600a79620bc + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 + languageName: node + linkType: hard + +"prompts@npm:^2.0.1": + version: 2.4.2 + resolution: "prompts@npm:2.4.2" + dependencies: + kleur: "npm:^3.0.3" + sisteransi: "npm:^1.0.5" + checksum: 10c0/16f1ac2977b19fe2cf53f8411cc98db7a3c8b115c479b2ca5c82b5527cd937aa405fa04f9a5960abeb9daef53191b53b4d13e35c1f5d50e8718c76917c5f1ea4 + languageName: node + linkType: hard + +"promzard@npm:^2.0.0": + version: 2.0.0 + resolution: "promzard@npm:2.0.0" + dependencies: + read: "npm:^4.0.0" + checksum: 10c0/09d8c8c5d49ebed99686b7bed386f02ef32fc90cef4b2626c46e39d74903735a1ca88788613076561fc5548a76fe5f91897f2afd8025ce77dfa1f603eaaee1cd + languageName: node + linkType: hard + +"prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: "npm:^1.4.0" + object-assign: "npm:^4.1.1" + react-is: "npm:^16.13.1" + checksum: 10c0/59ece7ca2fb9838031d73a48d4becb9a7cc1ed10e610517c7d8f19a1e02fa47f7c27d557d8a5702bec3cfeccddc853579832b43f449e54635803f277b1c78077 + languageName: node + linkType: hard + +"proto-list@npm:~1.2.1": + version: 1.2.4 + resolution: "proto-list@npm:1.2.4" + checksum: 10c0/b9179f99394ec8a68b8afc817690185f3b03933f7b46ce2e22c1930dc84b60d09f5ad222beab4e59e58c6c039c7f7fcf620397235ef441a356f31f9744010e12 + languageName: node + linkType: hard + +"prototype-properties@npm:^5.0.0": + version: 5.0.0 + resolution: "prototype-properties@npm:5.0.0" + checksum: 10c0/6896094f42dd439fa86f1fb3921fae6ae5147763226545da0217baed3c6a288316298faabbd4e6147210723970da1a9d3d63cac2fd546ee9a8ca55dfbeb5f926 + languageName: node + linkType: hard + +"psl@npm:^1.1.33": + version: 1.15.0 + resolution: "psl@npm:1.15.0" + dependencies: + punycode: "npm:^2.3.1" + checksum: 10c0/d8d45a99e4ca62ca12ac3c373e63d80d2368d38892daa40cfddaa1eb908be98cd549ac059783ef3a56cfd96d57ae8e2fd9ae53d1378d90d42bc661ff924e102a + languageName: node + linkType: hard + +"pump@npm:^3.0.0": + version: 3.0.2 + resolution: "pump@npm:3.0.2" + dependencies: + end-of-stream: "npm:^1.1.0" + once: "npm:^1.3.1" + checksum: 10c0/5ad655cb2a7738b4bcf6406b24ad0970d680649d996b55ad20d1be8e0c02394034e4c45ff7cd105d87f1e9b96a0e3d06fd28e11fae8875da26e7f7a8e2c9726f + languageName: node + linkType: hard + +"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 + languageName: node + linkType: hard + +"pure-rand@npm:^6.0.0": + version: 6.1.0 + resolution: "pure-rand@npm:6.1.0" + checksum: 10c0/1abe217897bf74dcb3a0c9aba3555fe975023147b48db540aa2faf507aee91c03bf54f6aef0eb2bf59cc259a16d06b28eca37f0dc426d94f4692aeff02fb0e65 + languageName: node + linkType: hard + +"qrcode-terminal@npm:^0.12.0": + version: 0.12.0 + resolution: "qrcode-terminal@npm:0.12.0" + bin: + qrcode-terminal: ./bin/qrcode-terminal.js + checksum: 10c0/1d8996a743d6c95e22056bd45fe958c306213adc97d7ef8cf1e03bc1aeeb6f27180a747ec3d761141921351eb1e3ca688f7b673ab54cdae9fa358dffaa49563c + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 10c0/3258bc3dbdf322ff2663619afe5947c7926a6ef5fb78ad7d384602974c467fadfc8272af44f5eb8cddd0d011aae8fabf3a929a8eee4b86edcc0a21e6bd10f9aa + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 + languageName: node + linkType: hard + +"rc@npm:^1.2.8": + version: 1.2.8 + resolution: "rc@npm:1.2.8" + dependencies: + deep-extend: "npm:^0.6.0" + ini: "npm:~1.3.0" + minimist: "npm:^1.2.0" + strip-json-comments: "npm:~2.0.1" + bin: + rc: ./cli.js + checksum: 10c0/24a07653150f0d9ac7168e52943cc3cb4b7a22c0e43c7dff3219977c2fdca5a2760a304a029c20811a0e79d351f57d46c9bde216193a0f73978496afc2b85b15 + languageName: node + linkType: hard + +"react-dom@npm:^17.0.2": + version: 17.0.2 + resolution: "react-dom@npm:17.0.2" + dependencies: + loose-envify: "npm:^1.1.0" + object-assign: "npm:^4.1.1" + scheduler: "npm:^0.20.2" + peerDependencies: + react: 17.0.2 + checksum: 10c0/51abbcb72450fe527ebf978c3bc989ba266630faaa53f47a2fae5392369729e8de62b2e4683598cbe651ea7873cd34ec7d5127e2f50bf4bfe6bd0c3ad9bddcb0 + languageName: node + linkType: hard + +"react-error-boundary@npm:^3.1.0": + version: 3.1.4 + resolution: "react-error-boundary@npm:3.1.4" + dependencies: + "@babel/runtime": "npm:^7.12.5" + peerDependencies: + react: ">=16.13.1" + checksum: 10c0/f977ca61823e43de2381d53dd7aa8b4d79ff6a984c9afdc88dc44f9973b99de7fd382d2f0f91f2688e24bb987c0185bf45d0b004f22afaaab0f990a830253bfb + languageName: node + linkType: hard + +"react-is@npm:^16.13.1": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1 + languageName: node + linkType: hard + +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 10c0/2bdb6b93fbb1820b024b496042cce405c57e2f85e777c9aabd55f9b26d145408f9f74f5934676ffdc46f3dcff656d78413a6e43968e7b3f92eea35b3052e9053 + languageName: node + linkType: hard + +"react-is@npm:^18.0.0": + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: 10c0/f2f1e60010c683479e74c63f96b09fb41603527cd131a9959e2aee1e5a8b0caf270b365e5ca77d4a6b18aae659b60a86150bb3979073528877029b35aecd2072 + languageName: node + linkType: hard + +"react@npm:^17.0.2": + version: 17.0.2 + resolution: "react@npm:17.0.2" + dependencies: + loose-envify: "npm:^1.1.0" + object-assign: "npm:^4.1.1" + checksum: 10c0/07ae8959acf1596f0550685102fd6097d461a54a4fd46a50f88a0cd7daaa97fdd6415de1dcb4bfe0da6aa43221a6746ce380410fa848acc60f8ac41f6649c148 + languageName: node + linkType: hard + +"read-cmd-shim@npm:^5.0.0": + version: 5.0.0 + resolution: "read-cmd-shim@npm:5.0.0" + checksum: 10c0/5688aea2742d928575a1dd87ee0ce691f57b344935fe87d6460067951e7a3bb3677501513316785e1e9ea43b0bb1635eacba3b00b81ad158f9b23512f1de26d2 + languageName: node + linkType: hard + +"read-package-json-fast@npm:^3.0.0": + version: 3.0.2 + resolution: "read-package-json-fast@npm:3.0.2" + dependencies: + json-parse-even-better-errors: "npm:^3.0.0" + npm-normalize-package-bin: "npm:^3.0.0" + checksum: 10c0/37787e075f0260a92be0428687d9020eecad7ece3bda37461c2219e50d1ec183ab6ba1d9ada193691435dfe119a42c8a5b5b5463f08c8ddbc3d330800b265318 + languageName: node + linkType: hard + +"read-package-json-fast@npm:^4.0.0": + version: 4.0.0 + resolution: "read-package-json-fast@npm:4.0.0" + dependencies: + json-parse-even-better-errors: "npm:^4.0.0" + npm-normalize-package-bin: "npm:^4.0.0" + checksum: 10c0/8a03509ae8e852f1abc4b109c1be571dd90ac9ea65d55433b2fe287e409113441a9b00df698288fe48aa786c1a2550569d47b5ab01ed83ada073d691d5aff582 + languageName: node + linkType: hard + +"read-package-up@npm:^11.0.0": + version: 11.0.0 + resolution: "read-package-up@npm:11.0.0" + dependencies: + find-up-simple: "npm:^1.0.0" + read-pkg: "npm:^9.0.0" + type-fest: "npm:^4.6.0" + checksum: 10c0/ffee09613c2b3c3ff7e7b5e838aa01f33cba5c6dfa14f87bf6f64ed27e32678e5550e712fd7e3f3105a05c43aa774d084af04ee86d3044978edb69f30ee4505a + languageName: node + linkType: hard + +"read-pkg-up@npm:^11.0.0": + version: 11.0.0 + resolution: "read-pkg-up@npm:11.0.0" + dependencies: + find-up-simple: "npm:^1.0.0" + read-pkg: "npm:^9.0.0" + type-fest: "npm:^4.6.0" + checksum: 10c0/9dfe7b1088d22804e275c235e21d64acdfb81edb73373c9ef2707aae2db8309fd35f6de90f569f0159411c25972c5a321ae6cb6a54ec01e449ce9df0a0b2397a + languageName: node + linkType: hard + +"read-pkg-up@npm:^7.0.1": + version: 7.0.1 + resolution: "read-pkg-up@npm:7.0.1" + dependencies: + find-up: "npm:^4.1.0" + read-pkg: "npm:^5.2.0" + type-fest: "npm:^0.8.1" + checksum: 10c0/82b3ac9fd7c6ca1bdc1d7253eb1091a98ff3d195ee0a45386582ce3e69f90266163c34121e6a0a02f1630073a6c0585f7880b3865efcae9c452fa667f02ca385 + languageName: node + linkType: hard + +"read-pkg@npm:^5.2.0": + version: 5.2.0 + resolution: "read-pkg@npm:5.2.0" + dependencies: + "@types/normalize-package-data": "npm:^2.4.0" + normalize-package-data: "npm:^2.5.0" + parse-json: "npm:^5.0.0" + type-fest: "npm:^0.6.0" + checksum: 10c0/b51a17d4b51418e777029e3a7694c9bd6c578a5ab99db544764a0b0f2c7c0f58f8a6bc101f86a6fceb8ba6d237d67c89acf6170f6b98695d0420ddc86cf109fb + languageName: node + linkType: hard + +"read-pkg@npm:^9.0.0": + version: 9.0.1 + resolution: "read-pkg@npm:9.0.1" + dependencies: + "@types/normalize-package-data": "npm:^2.4.3" + normalize-package-data: "npm:^6.0.0" + parse-json: "npm:^8.0.0" + type-fest: "npm:^4.6.0" + unicorn-magic: "npm:^0.1.0" + checksum: 10c0/f3e27549dcdb18335597f4125a3d093a40ab0a18c16a6929a1575360ed5d8679b709b4a672730d9abf6aa8537a7f02bae0b4b38626f99409255acbd8f72f9964 + languageName: node + linkType: hard + +"read@npm:^4.0.0": + version: 4.0.0 + resolution: "read@npm:4.0.0" + dependencies: + mute-stream: "npm:^2.0.0" + checksum: 10c0/448dd2cb8163fa7004dbe9e7fc9b0814cedd55028e2d45fbebd774f6b05e3ac046b092f3910a4eff942471187afa0b56b5db6caf2cd230d264d8d8fe22f9af6f + languageName: node + linkType: hard + +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.2, readable-stream@npm:~2.3.6": + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" + dependencies: + core-util-is: "npm:~1.0.0" + inherits: "npm:~2.0.3" + isarray: "npm:~1.0.0" + process-nextick-args: "npm:~2.0.0" + safe-buffer: "npm:~5.1.1" + string_decoder: "npm:~1.1.1" + util-deprecate: "npm:~1.0.1" + checksum: 10c0/7efdb01f3853bc35ac62ea25493567bf588773213f5f4a79f9c365e1ad13bab845ac0dae7bc946270dc40c3929483228415e92a3fc600cc7e4548992f41ee3fa + languageName: node + linkType: hard + +"readable-stream@npm:^3.0.2, readable-stream@npm:^3.4.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 + languageName: node + linkType: hard + +"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.8": + version: 1.0.8 + resolution: "reflect.getprototypeof@npm:1.0.8" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + dunder-proto: "npm:^1.0.0" + es-abstract: "npm:^1.23.5" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.2.0" + which-builtin-type: "npm:^1.2.0" + checksum: 10c0/720479dd7a72a20d66efaca507ed7c7e18403d24ce764f436130464d4a516a12ed8a9a2714dcabc3e1296f9a31f914ba1095e2371619df23d3ac56c4f8c8bae1 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 10c0/1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 + languageName: node + linkType: hard + +"regex-not@npm:^1.0.0, regex-not@npm:^1.0.2": + version: 1.0.2 + resolution: "regex-not@npm:1.0.2" + dependencies: + extend-shallow: "npm:^3.0.2" + safe-regex: "npm:^1.1.0" + checksum: 10c0/a0f8d6045f63b22e9759db10e248369c443b41cedd7dba0922d002b66c2734bc2aef0d98c4d45772d1f756245f4c5203856b88b9624bba2a58708858a8d485d6 + languageName: node + linkType: hard + +"regexp-tree@npm:^0.1.27": + version: 0.1.27 + resolution: "regexp-tree@npm:0.1.27" + bin: + regexp-tree: bin/regexp-tree + checksum: 10c0/f636f44b4a0d93d7d6926585ecd81f63e4ce2ac895bc417b2ead0874cd36b337dcc3d0fedc63f69bf5aaeaa4340f36ca7e750c9687cceaf8087374e5284e843c + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.5.2, regexp.prototype.flags@npm:^1.5.3": + version: 1.5.3 + resolution: "regexp.prototype.flags@npm:1.5.3" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-errors: "npm:^1.3.0" + set-function-name: "npm:^2.0.2" + checksum: 10c0/e1a7c7dc42cc91abf73e47a269c4b3a8f225321b7f617baa25821f6a123a91d23a73b5152f21872c566e699207e1135d075d2251cd3e84cc96d82a910adf6020 + languageName: node + linkType: hard + +"registry-auth-token@npm:^5.0.0": + version: 5.0.3 + resolution: "registry-auth-token@npm:5.0.3" + dependencies: + "@pnpm/npm-conf": "npm:^2.1.0" + checksum: 10c0/f92313032fae7dca787aa878cc7fa8499ee5da960802777f6b9f168a5d8f24a97fcfa0cf30a604bcf38b050a5db5f034b1e2fec18a3326f41822a6aff9514c85 + languageName: node + linkType: hard + +"regjsparser@npm:^0.10.0": + version: 0.10.0 + resolution: "regjsparser@npm:0.10.0" + dependencies: + jsesc: "npm:~0.5.0" + bin: + regjsparser: bin/parser + checksum: 10c0/0f0508c142eddbceae55dab9715e714305c19e1e130db53168e8fa5f9f7ff9a4901f674cf6f71e04a0973b2f883882ba05808c80778b2d52b053d925050010f4 + languageName: node + linkType: hard + +"remark-mdx@npm:^3.0.0": + version: 3.1.0 + resolution: "remark-mdx@npm:3.1.0" + dependencies: + mdast-util-mdx: "npm:^3.0.0" + micromark-extension-mdxjs: "npm:^3.0.0" + checksum: 10c0/247800fa8561624bdca5776457c5965d99e5e60080e80262c600fe12ddd573862e029e39349e1e36e4c3bf79c8e571ecf4d3d2d8c13485b758391fb500e24a1a + languageName: node + linkType: hard + +"remark-parse@npm:^11.0.0": + version: 11.0.0 + resolution: "remark-parse@npm:11.0.0" + dependencies: + "@types/mdast": "npm:^4.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + unified: "npm:^11.0.0" + checksum: 10c0/6eed15ddb8680eca93e04fcb2d1b8db65a743dcc0023f5007265dda558b09db595a087f622062ccad2630953cd5cddc1055ce491d25a81f3317c858348a8dd38 + languageName: node + linkType: hard + +"remark-stringify@npm:^11.0.0": + version: 11.0.0 + resolution: "remark-stringify@npm:11.0.0" + dependencies: + "@types/mdast": "npm:^4.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + unified: "npm:^11.0.0" + checksum: 10c0/0cdb37ce1217578f6f847c7ec9f50cbab35df5b9e3903d543e74b405404e67c07defcb23cd260a567b41b769400f6de03c2c3d9cd6ae7a6707d5c8d89ead489f + languageName: node + linkType: hard + +"remove-trailing-separator@npm:^1.0.1": + version: 1.1.0 + resolution: "remove-trailing-separator@npm:1.1.0" + checksum: 10c0/3568f9f8f5af3737b4aee9e6e1e8ec4be65a92da9cb27f989e0893714d50aa95ed2ff02d40d1fa35e1b1a234dc9c2437050ef356704a3999feaca6667d9e9bfc + languageName: node + linkType: hard + +"repeat-element@npm:^1.1.2": + version: 1.1.4 + resolution: "repeat-element@npm:1.1.4" + checksum: 10c0/81aa8d82bc845780803ef52df3533fa399974b99df571d0bb86e91f0ffca9ee4b9c4e8e5e72af087938cc28d2aef93d106a6d01da685d72ce96455b90a9f9f69 + languageName: node + linkType: hard + +"repeat-string@npm:^1.6.1": + version: 1.6.1 + resolution: "repeat-string@npm:1.6.1" + checksum: 10c0/87fa21bfdb2fbdedc44b9a5b118b7c1239bdd2c2c1e42742ef9119b7d412a5137a1d23f1a83dc6bb686f4f27429ac6f542e3d923090b44181bafa41e8ac0174d + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 + languageName: node + linkType: hard + +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: 10c0/aaa267e0c5b022fc5fd4eef49d8285086b15f2a1c54b28240fdf03599cbd9c26049fee3eab894f2e1f6ca65e513b030a7c264201e3f005601e80c49fb2937ce2 + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: 10c0/b2bfdd09db16c082c4326e573a82c0771daaf7b53b9ce8ad60ea46aa6e30aaf475fe9b164800b89f93b748d2c234d8abff945d2551ba47bf5698e04cd7713267 + languageName: node + linkType: hard + +"resolve-cwd@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-cwd@npm:3.0.0" + dependencies: + resolve-from: "npm:^5.0.0" + checksum: 10c0/e608a3ebd15356264653c32d7ecbc8fd702f94c6703ea4ac2fb81d9c359180cba0ae2e6b71faa446631ed6145454d5a56b227efc33a2d40638ac13f8beb20ee4 + languageName: node + linkType: hard + +"resolve-dir@npm:^1.0.0, resolve-dir@npm:^1.0.1": + version: 1.0.1 + resolution: "resolve-dir@npm:1.0.1" + dependencies: + expand-tilde: "npm:^2.0.0" + global-modules: "npm:^1.0.0" + checksum: 10c0/8197ed13e4a51d9cd786ef6a09fc83450db016abe7ef3311ca39389b3e508d77c26fe0cf0483a9b407b8caa2764bb5ccc52cf6a017ded91492a416475a56066f + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 + languageName: node + linkType: hard + +"resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 10c0/b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 + languageName: node + linkType: hard + +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 10c0/fb8f7bbe2ca281a73b7ef423a1cbc786fb244bd7a95cbe5c3fba25b27d327150beca8ba02f622baea65919a57e061eb5005204daa5f93ed590d9b77463a567ab + languageName: node + linkType: hard + +"resolve-url@npm:^0.2.1": + version: 0.2.1 + resolution: "resolve-url@npm:0.2.1" + checksum: 10c0/c285182cfcddea13a12af92129ce0569be27fb0074ffaefbd3ba3da2eac2acecdfc996d435c4982a9fa2b4708640e52837c9153a5ab9255886a00b0b9e8d2a54 + languageName: node + linkType: hard + +"resolve.exports@npm:^2.0.0": + version: 2.0.3 + resolution: "resolve.exports@npm:2.0.3" + checksum: 10c0/1ade1493f4642a6267d0a5e68faeac20b3d220f18c28b140343feb83694d8fed7a286852aef43689d16042c61e2ddb270be6578ad4a13990769e12065191200d + languageName: node + linkType: hard + +"resolve@npm:^1.10.0, resolve@npm:^1.18.1, resolve@npm:^1.20.0, resolve@npm:^1.22.4": + version: 1.22.9 + resolution: "resolve@npm:1.22.9" + dependencies: + is-core-module: "npm:^2.16.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/314cea2c47f956743f106256854203bd43a60a3ec6fb85ee6894e75cf4b16004952e4280319bfeb4c6fb1246e3ecd27f2699abb2e2b316b7c5727ec6491505c9 + languageName: node + linkType: hard + +"resolve@npm:^2.0.0-next.5": + version: 2.0.0-next.5 + resolution: "resolve@npm:2.0.0-next.5" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/a6c33555e3482ea2ec4c6e3d3bf0d78128abf69dca99ae468e64f1e30acaa318fd267fb66c8836b04d558d3e2d6ed875fe388067e7d8e0de647d3c21af21c43a + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.18.1#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": + version: 1.22.9 + resolution: "resolve@patch:resolve@npm%3A1.22.9#optional!builtin::version=1.22.9&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.16.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/dadd8c85040784fdc18d6edc0cc27f7f35776c5d904b030ea67485ab9a5607568187afcfaf157e6fa9db9274481d155356bc42ca578c5578be25965b880d1e80 + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin": + version: 2.0.0-next.5 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/78ad6edb8309a2bfb720c2c1898f7907a37f858866ce11a5974643af1203a6a6e05b2fa9c53d8064a673a447b83d42569260c306d43628bff5bb101969708355 + languageName: node + linkType: hard + +"restore-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "restore-cursor@npm:3.1.0" + dependencies: + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + checksum: 10c0/8051a371d6aa67ff21625fa94e2357bd81ffdc96267f3fb0fc4aaf4534028343836548ef34c240ffa8c25b280ca35eb36be00b3cb2133fa4f51896d7e73c6b4f + languageName: node + linkType: hard + +"restore-cursor@npm:^5.0.0": + version: 5.1.0 + resolution: "restore-cursor@npm:5.1.0" + dependencies: + onetime: "npm:^7.0.0" + signal-exit: "npm:^4.1.0" + checksum: 10c0/c2ba89131eea791d1b25205bdfdc86699767e2b88dee2a590b1a6caa51737deac8bad0260a5ded2f7c074b7db2f3a626bcf1fcf3cdf35974cbeea5e2e6764f60 + languageName: node + linkType: hard + +"ret@npm:~0.1.10": + version: 0.1.15 + resolution: "ret@npm:0.1.15" + checksum: 10c0/01f77cad0f7ea4f955852c03d66982609893edc1240c0c964b4c9251d0f9fb6705150634060d169939b096d3b77f4c84d6b6098a5b5d340160898c8581f1f63f + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107 + languageName: node + linkType: hard + +"rfdc@npm:^1.4.1": + version: 1.4.1 + resolution: "rfdc@npm:1.4.1" + checksum: 10c0/4614e4292356cafade0b6031527eea9bc90f2372a22c012313be1dcc69a3b90c7338158b414539be863fa95bfcb2ddcd0587be696841af4e6679d85e62c060c7 + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: "npm:^7.1.3" + bin: + rimraf: bin.js + checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 + languageName: node + linkType: hard + +"rimraf@npm:^5.0.5": + version: 5.0.10 + resolution: "rimraf@npm:5.0.10" + dependencies: + glob: "npm:^10.3.7" + bin: + rimraf: dist/esm/bin.mjs + checksum: 10c0/7da4fd0e15118ee05b918359462cfa1e7fe4b1228c7765195a45b55576e8c15b95db513b8466ec89129666f4af45ad978a3057a02139afba1a63512a2d9644cc + languageName: node + linkType: hard + +"rsvp@npm:^4.8.4": + version: 4.8.5 + resolution: "rsvp@npm:4.8.5" + checksum: 10c0/7978f01060a48204506a8ebe15cdbd468498f5ae538b1d7ee3e7630375ba7cb2f98df2f596c12d3f4d5d5c21badc1c6ca8009f5142baded8511609a28eabd19a + languageName: node + linkType: hard + +"run-async@npm:^2.4.0": + version: 2.4.1 + resolution: "run-async@npm:2.4.1" + checksum: 10c0/35a68c8f1d9664f6c7c2e153877ca1d6e4f886e5ca067c25cdd895a6891ff3a1466ee07c63d6a9be306e9619ff7d509494e6d9c129516a36b9fd82263d579ee1 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: "npm:^1.2.2" + checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 + languageName: node + linkType: hard + +"rxjs@npm:^7.5.5, rxjs@npm:^7.8.1": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/3c49c1ecd66170b175c9cacf5cef67f8914dcbc7cd0162855538d365c83fea631167cacb644b3ce533b2ea0e9a4d0b12175186985f89d75abe73dbd8f7f06f68 + languageName: node + linkType: hard + +"sade@npm:^1.7.3": + version: 1.8.1 + resolution: "sade@npm:1.8.1" + dependencies: + mri: "npm:^1.1.0" + checksum: 10c0/da8a3a5d667ad5ce3bf6d4f054bbb9f711103e5df21003c5a5c1a8a77ce12b640ed4017dd423b13c2307ea7e645adee7c2ae3afe8051b9db16a6f6d3da3f90b1 + languageName: node + linkType: hard + +"safe-array-concat@npm:^1.1.2, safe-array-concat@npm:^1.1.3": + version: 1.1.3 + resolution: "safe-array-concat@npm:1.1.3" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.6" + has-symbols: "npm:^1.1.0" + isarray: "npm:^2.0.5" + checksum: 10c0/43c86ffdddc461fb17ff8a17c5324f392f4868f3c7dd2c6a5d9f5971713bc5fd755667212c80eab9567595f9a7509cc2f83e590ddaebd1bd19b780f9c79f9a8d + languageName: node + linkType: hard + +"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21 + languageName: node + linkType: hard + +"safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + +"safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + is-regex: "npm:^1.2.1" + checksum: 10c0/f2c25281bbe5d39cddbbce7f86fca5ea9b3ce3354ea6cd7c81c31b006a5a9fff4286acc5450a3b9122c56c33eba69c56b9131ad751457b2b4a585825e6a10665 + languageName: node + linkType: hard + +"safe-regex@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex@npm:1.1.0" + dependencies: + ret: "npm:~0.1.10" + checksum: 10c0/547d58aa5184cbef368fd5ed5f28d20f911614748c5da6b35f53fd6626396707587251e6e3d1e3010fd3ff1212e413841b8825eaa5f317017ca62a30899af31a + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + +"sane@npm:^4.0.3": + version: 4.1.0 + resolution: "sane@npm:4.1.0" + dependencies: + "@cnakazawa/watch": "npm:^1.0.3" + anymatch: "npm:^2.0.0" + capture-exit: "npm:^2.0.0" + exec-sh: "npm:^0.3.2" + execa: "npm:^1.0.0" + fb-watchman: "npm:^2.0.0" + micromatch: "npm:^3.1.4" + minimist: "npm:^1.1.1" + walker: "npm:~1.0.5" + bin: + sane: ./src/cli.js + checksum: 10c0/7d0991ecaa10b02c6d0339a6f7e31db776971f3b659a351916dcc7ce3464671e72b54d80bcce118e39d4343e1e56c699fe35f6cb89fbd88b07095b72841cbfb0 + languageName: node + linkType: hard + +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: "npm:^2.2.0" + checksum: 10c0/3847b839f060ef3476eb8623d099aa502ad658f5c40fd60c105ebce86d244389b0d76fcae30f4d0c728d7705ceb2f7e9b34bb54717b6a7dbedaf5dad2d9a4b74 + languageName: node + linkType: hard + +"scheduler@npm:^0.20.2": + version: 0.20.2 + resolution: "scheduler@npm:0.20.2" + dependencies: + loose-envify: "npm:^1.1.0" + object-assign: "npm:^4.1.1" + checksum: 10c0/b0982e4b0f34f4ffa4f2f486161c0fd9ce9b88680b045dccbf250eb1aa4fd27413570645455187a83535e2370f5c667a251045547765408492bd883cbe95fcdb + languageName: node + linkType: hard + +"schema-utils@npm:^4.0.0": + version: 4.3.0 + resolution: "schema-utils@npm:4.3.0" + dependencies: + "@types/json-schema": "npm:^7.0.9" + ajv: "npm:^8.9.0" + ajv-formats: "npm:^2.1.1" + ajv-keywords: "npm:^5.1.0" + checksum: 10c0/c23f0fa73ef71a01d4a2bb7af4c91e0d356ec640e071aa2d06ea5e67f042962bb7ac7c29a60a295bb0125878801bc3209197a2b8a833dd25bd38e37c3ed21427 + languageName: node + linkType: hard + +"semantic-release@npm:^23.0.2": + version: 23.1.1 + resolution: "semantic-release@npm:23.1.1" + dependencies: + "@semantic-release/commit-analyzer": "npm:^12.0.0" + "@semantic-release/error": "npm:^4.0.0" + "@semantic-release/github": "npm:^10.0.0" + "@semantic-release/npm": "npm:^12.0.0" + "@semantic-release/release-notes-generator": "npm:^13.0.0" + aggregate-error: "npm:^5.0.0" + cosmiconfig: "npm:^9.0.0" + debug: "npm:^4.0.0" + env-ci: "npm:^11.0.0" + execa: "npm:^9.0.0" + figures: "npm:^6.0.0" + find-versions: "npm:^6.0.0" + get-stream: "npm:^6.0.0" + git-log-parser: "npm:^1.2.0" + hook-std: "npm:^3.0.0" + hosted-git-info: "npm:^7.0.0" + import-from-esm: "npm:^1.3.1" + lodash-es: "npm:^4.17.21" + marked: "npm:^12.0.0" + marked-terminal: "npm:^7.0.0" + micromatch: "npm:^4.0.2" + p-each-series: "npm:^3.0.0" + p-reduce: "npm:^3.0.0" + read-package-up: "npm:^11.0.0" + resolve-from: "npm:^5.0.0" + semver: "npm:^7.3.2" + semver-diff: "npm:^4.0.0" + signale: "npm:^1.2.1" + yargs: "npm:^17.5.1" + bin: + semantic-release: bin/semantic-release.js + checksum: 10c0/c54fb43917299737803ca89fd5c692e08c630ad8765617b30ac41fb21173db67ce4bc617811b29702d27badd5075d984fcc8bdf058c3b3ce81732016bb07f9ee + languageName: node + linkType: hard + +"semver-diff@npm:^4.0.0": + version: 4.0.0 + resolution: "semver-diff@npm:4.0.0" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/3ed1bb22f39b4b6e98785bb066e821eabb9445d3b23e092866c50e7df8b9bd3eda617b242f81db4159586e0e39b0deb908dd160a24f783bd6f52095b22cd68ea + languageName: node + linkType: hard + +"semver-regex@npm:^4.0.5": + version: 4.0.5 + resolution: "semver-regex@npm:4.0.5" + checksum: 10c0/c270eda133691dfaab90318df995e96222e4c26c47b17f7c8bd5e5fe88b81ed67b59695fe27546e0314b0f0423c7faed1f93379ad9db47c816df2ddf770918ff + languageName: node + linkType: hard + +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0": + version: 5.7.2 + resolution: "semver@npm:5.7.2" + bin: + semver: bin/semver + checksum: 10c0/e4cf10f86f168db772ae95d86ba65b3fd6c5967c94d97c708ccb463b778c2ee53b914cd7167620950fc07faf5a564e6efe903836639e512a1aa15fbc9667fa25 + languageName: node + linkType: hard + +"semver@npm:^6.3.0, semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d + languageName: node + linkType: hard + +"semver@npm:^7.1.1, semver@npm:^7.1.2, semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3": + version: 7.6.3 + resolution: "semver@npm:7.6.3" + bin: + semver: bin/semver.js + checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf + languageName: node + linkType: hard + +"set-function-length@npm:^1.2.2": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 10c0/82850e62f412a258b71e123d4ed3873fa9377c216809551192bb6769329340176f109c2eeae8c22a8d386c76739855f78e8716515c818bcaef384b51110f0f3c + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.2": + version: 2.0.2 + resolution: "set-function-name@npm:2.0.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + functions-have-names: "npm:^1.2.3" + has-property-descriptors: "npm:^1.0.2" + checksum: 10c0/fce59f90696c450a8523e754abb305e2b8c73586452619c2bad5f7bf38c7b6b4651895c9db895679c5bef9554339cf3ef1c329b66ece3eda7255785fbe299316 + languageName: node + linkType: hard + +"set-value@npm:^2.0.0, set-value@npm:^2.0.1": + version: 2.0.1 + resolution: "set-value@npm:2.0.1" + dependencies: + extend-shallow: "npm:^2.0.1" + is-extendable: "npm:^0.1.1" + is-plain-object: "npm:^2.0.3" + split-string: "npm:^3.0.1" + checksum: 10c0/4c40573c4f6540456e4b38b95f570272c4cfbe1d12890ad4057886da8535047cd772dfadf5b58e2e87aa244dfb4c57e3586f6716b976fc47c5144b6b09e1811b + languageName: node + linkType: hard + +"shebang-command@npm:^1.2.0": + version: 1.2.0 + resolution: "shebang-command@npm:1.2.0" + dependencies: + shebang-regex: "npm:^1.0.0" + checksum: 10c0/7b20dbf04112c456b7fc258622dafd566553184ac9b6938dd30b943b065b21dabd3776460df534cc02480db5e1b6aec44700d985153a3da46e7db7f9bd21326d + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e + languageName: node + linkType: hard + +"shebang-regex@npm:^1.0.0": + version: 1.0.0 + resolution: "shebang-regex@npm:1.0.0" + checksum: 10c0/9abc45dee35f554ae9453098a13fdc2f1730e525a5eb33c51f096cc31f6f10a4b38074c1ebf354ae7bffa7229506083844008dfc3bb7818228568c0b2dc1fff2 + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 + languageName: node + linkType: hard + +"shell-quote@npm:^1.8.1": + version: 1.8.2 + resolution: "shell-quote@npm:1.8.2" + checksum: 10c0/85fdd44f2ad76e723d34eb72c753f04d847ab64e9f1f10677e3f518d0e5b0752a176fd805297b30bb8c3a1556ebe6e77d2288dbd7b7b0110c7e941e9e9c20ce1 + languageName: node + linkType: hard + +"shellwords@npm:^0.1.1": + version: 0.1.1 + resolution: "shellwords@npm:0.1.1" + checksum: 10c0/7d66b28927e0b524b71b2e185651fcd88a70473a077dd230fbf86188380e948ffb36cea00832d78fc13c93cd15f6f52286fb05f2746b7580623ca1ec619eb004 + languageName: node + linkType: hard + +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + checksum: 10c0/644f4ac893456c9490ff388bf78aea9d333d5e5bfc64cfb84be8f04bf31ddc111a8d4b83b85d7e7e8a7b845bc185a9ad02c052d20e086983cf59f0be517d9b3d + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + checksum: 10c0/010584e6444dd8a20b85bc926d934424bd809e1a3af941cace229f7fdcb751aada0fb7164f60c2e22292b7fa3c0ff0bce237081fd4cdbc80de1dc68e95430672 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + side-channel-map: "npm:^1.0.1" + checksum: 10c0/71362709ac233e08807ccd980101c3e2d7efe849edc51455030327b059f6c4d292c237f94dc0685031dd11c07dd17a68afde235d6cf2102d949567f98ab58185 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.6, side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + side-channel-list: "npm:^1.0.0" + side-channel-map: "npm:^1.0.1" + side-channel-weakmap: "npm:^1.0.2" + checksum: 10c0/cb20dad41eb032e6c24c0982e1e5a24963a28aa6122b4f05b3f3d6bf8ae7fd5474ef382c8f54a6a3ab86e0cac4d41a23bd64ede3970e5bfb50326ba02a7996e6 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 + languageName: node + linkType: hard + +"signale@npm:^1.2.1": + version: 1.4.0 + resolution: "signale@npm:1.4.0" + dependencies: + chalk: "npm:^2.3.2" + figures: "npm:^2.0.0" + pkg-conf: "npm:^2.1.0" + checksum: 10c0/3b637421368a30805da3948f82350cb9959ddfb19073f44609495384b98baba1c62b1c5c094db57000836c8bc84c6c05c979aa7e072ceeaaf0032d7991b329c7 + languageName: node + linkType: hard + +"sigstore@npm:^3.0.0": + version: 3.0.0 + resolution: "sigstore@npm:3.0.0" + dependencies: + "@sigstore/bundle": "npm:^3.0.0" + "@sigstore/core": "npm:^2.0.0" + "@sigstore/protobuf-specs": "npm:^0.3.2" + "@sigstore/sign": "npm:^3.0.0" + "@sigstore/tuf": "npm:^3.0.0" + "@sigstore/verify": "npm:^2.0.0" + checksum: 10c0/9f9fa8419d07cb4ebb4fbe324e8a68023f851827629a4906d2ffa59b51f17551f514d80aa541c2d2b9918340a1c42cfda2e1ba0ac65a2f9768e8437c520beecd + languageName: node + linkType: hard + +"sisteransi@npm:^1.0.5": + version: 1.0.5 + resolution: "sisteransi@npm:1.0.5" + checksum: 10c0/230ac975cca485b7f6fe2b96a711aa62a6a26ead3e6fb8ba17c5a00d61b8bed0d7adc21f5626b70d7c33c62ff4e63933017a6462942c719d1980bb0b1207ad46 + languageName: node + linkType: hard + +"skin-tone@npm:^2.0.0": + version: 2.0.0 + resolution: "skin-tone@npm:2.0.0" + dependencies: + unicode-emoji-modifier-base: "npm:^1.0.0" + checksum: 10c0/82d4c2527864f9cbd6cb7f3c4abb31e2224752234d5013b881d3e34e9ab543545b05206df5a17d14b515459fcb265ce409f9cfe443903176b0360cd20e4e4ba5 + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b + languageName: node + linkType: hard + +"slash@npm:^5.1.0": + version: 5.1.0 + resolution: "slash@npm:5.1.0" + checksum: 10c0/eb48b815caf0bdc390d0519d41b9e0556a14380f6799c72ba35caf03544d501d18befdeeef074bc9c052acf69654bc9e0d79d7f1de0866284137a40805299eb3 + languageName: node + linkType: hard + +"slice-ansi@npm:^5.0.0": + version: 5.0.0 + resolution: "slice-ansi@npm:5.0.0" + dependencies: + ansi-styles: "npm:^6.0.0" + is-fullwidth-code-point: "npm:^4.0.0" + checksum: 10c0/2d4d40b2a9d5cf4e8caae3f698fe24ae31a4d778701724f578e984dcb485ec8c49f0c04dab59c401821e80fcdfe89cace9c66693b0244e40ec485d72e543914f + languageName: node + linkType: hard + +"slice-ansi@npm:^7.1.0": + version: 7.1.0 + resolution: "slice-ansi@npm:7.1.0" + dependencies: + ansi-styles: "npm:^6.2.1" + is-fullwidth-code-point: "npm:^5.0.0" + checksum: 10c0/631c971d4abf56cf880f034d43fcc44ff883624867bf11ecbd538c47343911d734a4656d7bc02362b40b89d765652a7f935595441e519b59e2ad3f4d5d6fe7ca + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 + languageName: node + linkType: hard + +"snapdragon-node@npm:^2.0.1": + version: 2.1.1 + resolution: "snapdragon-node@npm:2.1.1" + dependencies: + define-property: "npm:^1.0.0" + isobject: "npm:^3.0.0" + snapdragon-util: "npm:^3.0.1" + checksum: 10c0/7616e6a1ca054afe3ad8defda17ebe4c73b0800d2e0efd635c44ee1b286f8ac7900517314b5330862ce99b28cd2782348ee78bae573ff0f55832ad81d9657f3f + languageName: node + linkType: hard + +"snapdragon-util@npm:^3.0.1": + version: 3.0.1 + resolution: "snapdragon-util@npm:3.0.1" + dependencies: + kind-of: "npm:^3.2.0" + checksum: 10c0/4441856d343399ba7f37f79681949d51b922e290fcc07e7bc94655a50f584befa4fb08f40c3471cd160e004660161964d8ff140cba49baa59aa6caba774240e3 + languageName: node + linkType: hard + +"snapdragon@npm:^0.8.1": + version: 0.8.2 + resolution: "snapdragon@npm:0.8.2" + dependencies: + base: "npm:^0.11.1" + debug: "npm:^2.2.0" + define-property: "npm:^0.2.5" + extend-shallow: "npm:^2.0.1" + map-cache: "npm:^0.2.2" + source-map: "npm:^0.5.6" + source-map-resolve: "npm:^0.5.0" + use: "npm:^3.1.0" + checksum: 10c0/dfdac1f73d47152d72fc07f4322da09bbddfa31c1c9c3ae7346f252f778c45afa5b03e90813332f02f04f6de8003b34a168c456f8bb719024d092f932520ffca + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6 + languageName: node + linkType: hard + +"socks@npm:^2.8.3": + version: 2.8.3 + resolution: "socks@npm:2.8.3" + dependencies: + ip-address: "npm:^9.0.5" + smart-buffer: "npm:^4.2.0" + checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 + languageName: node + linkType: hard + +"source-map-resolve@npm:^0.5.0": + version: 0.5.3 + resolution: "source-map-resolve@npm:0.5.3" + dependencies: + atob: "npm:^2.1.2" + decode-uri-component: "npm:^0.2.0" + resolve-url: "npm:^0.2.1" + source-map-url: "npm:^0.4.0" + urix: "npm:^0.1.0" + checksum: 10c0/410acbe93882e058858d4c1297be61da3e1533f95f25b95903edddc1fb719654e705663644677542d1fb78a66390238fad1a57115fc958a0724cf9bb509caf57 + languageName: node + linkType: hard + +"source-map-support@npm:0.5.13": + version: 0.5.13 + resolution: "source-map-support@npm:0.5.13" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10c0/137539f8c453fa0f496ea42049ab5da4569f96781f6ac8e5bfda26937be9494f4e8891f523c5f98f0e85f71b35d74127a00c46f83f6a4f54672b58d53202565e + languageName: node + linkType: hard + +"source-map-url@npm:^0.4.0": + version: 0.4.1 + resolution: "source-map-url@npm:0.4.1" + checksum: 10c0/f8af0678500d536c7f643e32094d6718a4070ab4ca2d2326532512cfbe2d5d25a45849b4b385879326f2d7523bb3b686d0360dd347a3cda09fd89a5c28d4bc58 + languageName: node + linkType: hard + +"source-map@npm:^0.5.6": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599 + languageName: node + linkType: hard + +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 + languageName: node + linkType: hard + +"source-map@npm:^0.7.3": + version: 0.7.4 + resolution: "source-map@npm:0.7.4" + checksum: 10c0/dc0cf3768fe23c345ea8760487f8c97ef6fca8a73c83cd7c9bf2fde8bc2c34adb9c0824d6feb14bc4f9e37fb522e18af621543f1289038a66ac7586da29aa7dc + languageName: node + linkType: hard + +"spawn-error-forwarder@npm:~1.0.0": + version: 1.0.0 + resolution: "spawn-error-forwarder@npm:1.0.0" + checksum: 10c0/531cb73404af88b5400f9b7a976836b9f09cb48e4c0c79784ad80001ea942eb256e311f14cc7d171539cd1a86297c1c5461177c3fa736ac30627f5f8a6b06db6 + languageName: node + linkType: hard + +"spdx-correct@npm:^3.0.0": + version: 3.2.0 + resolution: "spdx-correct@npm:3.2.0" + dependencies: + spdx-expression-parse: "npm:^3.0.0" + spdx-license-ids: "npm:^3.0.0" + checksum: 10c0/49208f008618b9119208b0dadc9208a3a55053f4fd6a0ae8116861bd22696fc50f4142a35ebfdb389e05ccf2de8ad142573fefc9e26f670522d899f7b2fe7386 + languageName: node + linkType: hard + +"spdx-exceptions@npm:^2.1.0": + version: 2.5.0 + resolution: "spdx-exceptions@npm:2.5.0" + checksum: 10c0/37217b7762ee0ea0d8b7d0c29fd48b7e4dfb94096b109d6255b589c561f57da93bf4e328c0290046115961b9209a8051ad9f525e48d433082fc79f496a4ea940 + languageName: node + linkType: hard + +"spdx-expression-parse@npm:^3.0.0": + version: 3.0.1 + resolution: "spdx-expression-parse@npm:3.0.1" + dependencies: + spdx-exceptions: "npm:^2.1.0" + spdx-license-ids: "npm:^3.0.0" + checksum: 10c0/6f8a41c87759fa184a58713b86c6a8b028250f158159f1d03ed9d1b6ee4d9eefdc74181c8ddc581a341aa971c3e7b79e30b59c23b05d2436d5de1c30bdef7171 + languageName: node + linkType: hard + +"spdx-expression-parse@npm:^4.0.0": + version: 4.0.0 + resolution: "spdx-expression-parse@npm:4.0.0" + dependencies: + spdx-exceptions: "npm:^2.1.0" + spdx-license-ids: "npm:^3.0.0" + checksum: 10c0/965c487e77f4fb173f1c471f3eef4eb44b9f0321adc7f93d95e7620da31faa67d29356eb02523cd7df8a7fc1ec8238773cdbf9e45bd050329d2b26492771b736 + languageName: node + linkType: hard + +"spdx-license-ids@npm:^3.0.0": + version: 3.0.20 + resolution: "spdx-license-ids@npm:3.0.20" + checksum: 10c0/bdff7534fad6ef59be49becda1edc3fb7f5b3d6f296a715516ab9d972b8ad59af2c34b2003e01db8970d4c673d185ff696ba74c6b61d3bf327e2b3eac22c297c + languageName: node + linkType: hard + +"split-string@npm:^3.0.1, split-string@npm:^3.0.2": + version: 3.1.0 + resolution: "split-string@npm:3.1.0" + dependencies: + extend-shallow: "npm:^3.0.0" + checksum: 10c0/72d7cd625445c7af215130e1e2bc183013bb9dd48a074eda1d35741e2b0dcb355e6df5b5558a62543a24dcec37dd1d6eb7a6228ff510d3c9de0f3dc1d1da8a70 + languageName: node + linkType: hard + +"split2@npm:^4.0.0": + version: 4.2.0 + resolution: "split2@npm:4.2.0" + checksum: 10c0/b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534 + languageName: node + linkType: hard + +"split2@npm:~1.0.0": + version: 1.0.0 + resolution: "split2@npm:1.0.0" + dependencies: + through2: "npm:~2.0.0" + checksum: 10c0/5923936c492ebbdfed66705a25a1d53eb98d2cff740421f4b558842fdf731f108872c24fe13fa091feef8b564543bdf25c967c03fce6ea09b7119b9d3ed07eda + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec + languageName: node + linkType: hard + +"sprintf-js@npm:~1.0.2": + version: 1.0.3 + resolution: "sprintf-js@npm:1.0.3" + checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb + languageName: node + linkType: hard + +"ssri@npm:^12.0.0": + version: 12.0.0 + resolution: "ssri@npm:12.0.0" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/caddd5f544b2006e88fa6b0124d8d7b28208b83c72d7672d5ade44d794525d23b540f3396108c4eb9280dcb7c01f0bef50682f5b4b2c34291f7c5e211fd1417d + languageName: node + linkType: hard + +"stable-hash@npm:^0.0.4": + version: 0.0.4 + resolution: "stable-hash@npm:0.0.4" + checksum: 10c0/53d010d2a1b014fb60d398c095f43912c353b7b44774e55222bb26fd428bc75b73d7bdfcae509ce927c23ca9c5aff2dc1bc82f191d30e57a879550bc2952bdb0 + languageName: node + linkType: hard + +"stack-utils@npm:^2.0.2, stack-utils@npm:^2.0.3": + version: 2.0.6 + resolution: "stack-utils@npm:2.0.6" + dependencies: + escape-string-regexp: "npm:^2.0.0" + checksum: 10c0/651c9f87667e077584bbe848acaecc6049bc71979f1e9a46c7b920cad4431c388df0f51b8ad7cfd6eed3db97a2878d0fc8b3122979439ea8bac29c61c95eec8a + languageName: node + linkType: hard + +"static-extend@npm:^0.1.1": + version: 0.1.2 + resolution: "static-extend@npm:0.1.2" + dependencies: + define-property: "npm:^0.2.5" + object-copy: "npm:^0.1.0" + checksum: 10c0/284f5865a9e19d079f1badbcd70d5f9f82e7a08393f818a220839cd5f71729e89105e1c95322bd28e833161d484cee671380ca443869ae89578eef2bf55c0653 + languageName: node + linkType: hard + +"stream-combiner2@npm:~1.1.1": + version: 1.1.1 + resolution: "stream-combiner2@npm:1.1.1" + dependencies: + duplexer2: "npm:~0.1.0" + readable-stream: "npm:^2.0.2" + checksum: 10c0/96a14ae94493aad307176d0c0a795446cedf6c49d11d08e5d0a56bcf9f22352b0dd148b0497c8456f08b00da0867288e9750bf0286b71f6b621c0f2ba6768758 + languageName: node + linkType: hard + +"string-argv@npm:~0.3.2": + version: 0.3.2 + resolution: "string-argv@npm:0.3.2" + checksum: 10c0/75c02a83759ad1722e040b86823909d9a2fc75d15dd71ec4b537c3560746e33b5f5a07f7332d1e3f88319909f82190843aa2f0a0d8c8d591ec08e93d5b8dec82 + languageName: node + linkType: hard + +"string-length@npm:^4.0.1": + version: 4.0.2 + resolution: "string-length@npm:4.0.2" + dependencies: + char-regex: "npm:^1.0.2" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/1cd77409c3d7db7bc59406f6bcc9ef0783671dcbabb23597a1177c166906ef2ee7c8290f78cae73a8aec858768f189d2cb417797df5e15ec4eb5e16b3346340c + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + languageName: node + linkType: hard + +"string-width@npm:^6.0.0": + version: 6.1.0 + resolution: "string-width@npm:6.1.0" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^10.2.1" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/7b2991ea7c946a43042070787b85af454079116dfd6d853aab4ff8a6d4ac717cdc18656cfee15b7a7a78286669202a4a56385728f0740cb1e15001c71807b361 + languageName: node + linkType: hard + +"string-width@npm:^7.0.0": + version: 7.2.0 + resolution: "string-width@npm:7.2.0" + dependencies: + emoji-regex: "npm:^10.3.0" + get-east-asian-width: "npm:^1.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/eb0430dd43f3199c7a46dcbf7a0b34539c76fe3aa62763d0b0655acdcbdf360b3f66f3d58ca25ba0205f42ea3491fa00f09426d3b7d3040e506878fc7664c9b9 + languageName: node + linkType: hard + +"string.prototype.matchall@npm:^4.0.11": + version: 4.0.11 + resolution: "string.prototype.matchall@npm:4.0.11" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + internal-slot: "npm:^1.0.7" + regexp.prototype.flags: "npm:^1.5.2" + set-function-name: "npm:^2.0.2" + side-channel: "npm:^1.0.6" + checksum: 10c0/915a2562ac9ab5e01b7be6fd8baa0b2b233a0a9aa975fcb2ec13cc26f08fb9a3e85d5abdaa533c99c6fc4c5b65b914eba3d80c4aff9792a4c9fed403f28f7d9d + languageName: node + linkType: hard + +"string.prototype.repeat@npm:^1.0.0": + version: 1.0.0 + resolution: "string.prototype.repeat@npm:1.0.0" + dependencies: + define-properties: "npm:^1.1.3" + es-abstract: "npm:^1.17.5" + checksum: 10c0/94c7978566cffa1327d470fd924366438af9b04b497c43a9805e476e2e908aa37a1fd34cc0911156c17556dab62159d12c7b92b3cc304c3e1281fe4c8e668f40 + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.10": + version: 1.2.10 + resolution: "string.prototype.trim@npm:1.2.10" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + define-data-property: "npm:^1.1.4" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-object-atoms: "npm:^1.0.0" + has-property-descriptors: "npm:^1.0.2" + checksum: 10c0/8a8854241c4b54a948e992eb7dd6b8b3a97185112deb0037a134f5ba57541d8248dd610c966311887b6c2fd1181a3877bffb14d873ce937a344535dabcc648f8 + languageName: node + linkType: hard + +"string.prototype.trimend@npm:^1.0.8, string.prototype.trimend@npm:^1.0.9": + version: 1.0.9 + resolution: "string.prototype.trimend@npm:1.0.9" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/59e1a70bf9414cb4c536a6e31bef5553c8ceb0cf44d8b4d0ed65c9653358d1c64dd0ec203b100df83d0413bbcde38b8c5d49e14bc4b86737d74adc593a0d35b6 + languageName: node + linkType: hard + +"string.prototype.trimstart@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimstart@npm:1.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/d53af1899959e53c83b64a5fd120be93e067da740e7e75acb433849aa640782fb6c7d4cd5b84c954c84413745a3764df135a8afeb22908b86a835290788d8366 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: "npm:~5.2.0" + checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d + languageName: node + linkType: hard + +"string_decoder@npm:~1.1.1": + version: 1.1.1 + resolution: "string_decoder@npm:1.1.1" + dependencies: + safe-buffer: "npm:~5.1.0" + checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e + languageName: node + linkType: hard + +"stringify-entities@npm:^4.0.0": + version: 4.0.4 + resolution: "stringify-entities@npm:4.0.4" + dependencies: + character-entities-html4: "npm:^2.0.0" + character-entities-legacy: "npm:^3.0.0" + checksum: 10c0/537c7e656354192406bdd08157d759cd615724e9d0873602d2c9b2f6a5c0a8d0b1d73a0a08677848105c5eebac6db037b57c0b3a4ec86331117fa7319ed50448 + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 + languageName: node + linkType: hard + +"strip-bom@npm:4.0.0, strip-bom@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-bom@npm:4.0.0" + checksum: 10c0/26abad1172d6bc48985ab9a5f96c21e440f6e7e476686de49be813b5a59b3566dccb5c525b831ec54fe348283b47f3ffb8e080bc3f965fde12e84df23f6bb7ef + languageName: node + linkType: hard + +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1 + languageName: node + linkType: hard + +"strip-eof@npm:^1.0.0": + version: 1.0.0 + resolution: "strip-eof@npm:1.0.0" + checksum: 10c0/f336beed8622f7c1dd02f2cbd8422da9208fae81daf184f73656332899978919d5c0ca84dc6cfc49ad1fc4dd7badcde5412a063cf4e0d7f8ed95a13a63f68f45 + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 10c0/bddf8ccd47acd85c0e09ad7375409d81653f645fda13227a9d459642277c253d877b68f2e5e4d819fe75733b0e626bac7e954c04f3236f6d196f79c94fa4a96f + languageName: node + linkType: hard + +"strip-final-newline@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 10c0/a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce + languageName: node + linkType: hard + +"strip-final-newline@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-final-newline@npm:4.0.0" + checksum: 10c0/b0cf2b62d597a1b0e3ebc42b88767f0a0d45601f89fd379a928a1812c8779440c81abba708082c946445af1d6b62d5f16e2a7cf4f30d9d6587b89425fae801ff + languageName: node + linkType: hard + +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: "npm:^1.0.0" + checksum: 10c0/ae0deaf41c8d1001c5d4fbe16cb553865c1863da4fae036683b474fa926af9fc121e155cb3fc57a68262b2ae7d5b8420aa752c97a6428c315d00efe2a3875679 + languageName: node + linkType: hard + +"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd + languageName: node + linkType: hard + +"strip-json-comments@npm:~2.0.1": + version: 2.0.1 + resolution: "strip-json-comments@npm:2.0.1" + checksum: 10c0/b509231cbdee45064ff4f9fd73609e2bcc4e84a4d508e9dd0f31f70356473fde18abfb5838c17d56fb236f5a06b102ef115438de0600b749e818a35fbbc48c43 + languageName: node + linkType: hard + +"super-regex@npm:^1.0.0": + version: 1.0.0 + resolution: "super-regex@npm:1.0.0" + dependencies: + function-timeout: "npm:^1.0.1" + time-span: "npm:^5.1.0" + checksum: 10c0/9727b57702308af74be90ed92d4612eed6c8b03fdf25efe1a3455e40d7145246516638bcabf3538e9e9c706d8ecb233e4888e0223283543fb2836d4d7acb6200 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: "npm:^3.0.0" + checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 + languageName: node + linkType: hard + +"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 + languageName: node + linkType: hard + +"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 + languageName: node + linkType: hard + +"supports-color@npm:^9.0.0, supports-color@npm:^9.4.0": + version: 9.4.0 + resolution: "supports-color@npm:9.4.0" + checksum: 10c0/6c24e6b2b64c6a60e5248490cfa50de5924da32cf09ae357ad8ebbf305cc5d2717ba705a9d4cb397d80bbf39417e8fdc8d7a0ce18bd0041bf7b5b456229164e4 + languageName: node + linkType: hard + +"supports-hyperlinks@npm:^2.0.0": + version: 2.3.0 + resolution: "supports-hyperlinks@npm:2.3.0" + dependencies: + has-flag: "npm:^4.0.0" + supports-color: "npm:^7.0.0" + checksum: 10c0/4057f0d86afb056cd799602f72d575b8fdd79001c5894bcb691176f14e870a687e7981e50bc1484980e8b688c6d5bcd4931e1609816abb5a7dc1486b7babf6a1 + languageName: node + linkType: hard + +"supports-hyperlinks@npm:^3.1.0": + version: 3.1.0 + resolution: "supports-hyperlinks@npm:3.1.0" + dependencies: + has-flag: "npm:^4.0.0" + supports-color: "npm:^7.0.0" + checksum: 10c0/78cc3e17eb27e6846fa355a8ebf343befe36272899cd409e45317a06c1997e95c23ff99d91080a517bd8c96508d4fa456e6ceb338c02ba5d7544277dbec0f10f + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 + languageName: node + linkType: hard + +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 10c0/dfbe201ae09ac6053d163578778c53aa860a784147ecf95705de0cd23f42c851e1be7889241495e95c37cabb058edb1052f141387bef68f705afc8f9dd358509 + languageName: node + linkType: hard + +"synckit@npm:^0.9.0, synckit@npm:^0.9.1": + version: 0.9.2 + resolution: "synckit@npm:0.9.2" + dependencies: + "@pkgr/core": "npm:^0.1.0" + tslib: "npm:^2.6.2" + checksum: 10c0/e0c262817444e5b872708adb6f5ad37951ba33f6b2d1d4477d45db1f57573a784618ceed5e6614e0225db330632b1f6b95bb74d21e4d013e45ad4bde03d0cb59 + languageName: node + linkType: hard + +"tapable@npm:^2.2.0": + version: 2.2.1 + resolution: "tapable@npm:2.2.1" + checksum: 10c0/bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + dependencies: + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 + languageName: node + linkType: hard + +"tar@npm:^7.4.3": + version: 7.4.3 + resolution: "tar@npm:7.4.3" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.0.1" + mkdirp: "npm:^3.0.1" + yallist: "npm:^5.0.0" + checksum: 10c0/d4679609bb2a9b48eeaf84632b6d844128d2412b95b6de07d53d8ee8baf4ca0857c9331dfa510390a0727b550fd543d4d1a10995ad86cdf078423fbb8d99831d + languageName: node + linkType: hard + +"temp-dir@npm:^3.0.0": + version: 3.0.0 + resolution: "temp-dir@npm:3.0.0" + checksum: 10c0/a86978a400984cd5f315b77ebf3fe53bb58c61f192278cafcb1f3fb32d584a21dc8e08b93171d7874b7cc972234d3455c467306cc1bfc4524b622e5ad3bfd671 + languageName: node + linkType: hard + +"tempy@npm:^3.0.0": + version: 3.1.0 + resolution: "tempy@npm:3.1.0" + dependencies: + is-stream: "npm:^3.0.0" + temp-dir: "npm:^3.0.0" + type-fest: "npm:^2.12.2" + unique-string: "npm:^3.0.0" + checksum: 10c0/b88e70baa8d935ba8f0e0372b59ad1a961121f098da5fb4a6e05bec98ec32a49026b553532fb75c1c102ec782fd4c6a6bde0d46cbe87013fa324451ce476fb76 + languageName: node + linkType: hard + +"terminal-link@npm:^2.0.0": + version: 2.1.1 + resolution: "terminal-link@npm:2.1.1" + dependencies: + ansi-escapes: "npm:^4.2.1" + supports-hyperlinks: "npm:^2.0.0" + checksum: 10c0/947458a5cd5408d2ffcdb14aee50bec8fb5022ae683b896b2f08ed6db7b2e7d42780d5c8b51e930e9c322bd7c7a517f4fa7c76983d0873c83245885ac5ee13e3 + languageName: node + linkType: hard + +"test-exclude@npm:^6.0.0": + version: 6.0.0 + resolution: "test-exclude@npm:6.0.0" + dependencies: + "@istanbuljs/schema": "npm:^0.1.2" + glob: "npm:^7.1.4" + minimatch: "npm:^3.0.4" + checksum: 10c0/019d33d81adff3f9f1bfcff18125fb2d3c65564f437d9be539270ee74b994986abb8260c7c2ce90e8f30162178b09dbbce33c6389273afac4f36069c48521f57 + languageName: node + linkType: hard + +"text-extensions@npm:^2.0.0": + version: 2.4.0 + resolution: "text-extensions@npm:2.4.0" + checksum: 10c0/6790e7ee72ad4d54f2e96c50a13e158bb57ce840dddc770e80960ed1550115c57bdc2cee45d5354d7b4f269636f5ca06aab4d6e0281556c841389aa837b23fcb + languageName: node + linkType: hard + +"text-table@npm:^0.2.0, text-table@npm:~0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c + languageName: node + linkType: hard + +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: "npm:>= 3.1.0 < 4" + checksum: 10c0/9b896a22735e8122754fe70f1d65f7ee691c1d70b1f116fda04fea103d0f9b356e3676cb789506e3909ae0486a79a476e4914b0f92472c2e093d206aed4b7d6b + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: "npm:^1.0.0" + checksum: 10c0/f375aeb2b05c100a456a30bc3ed07ef03a39cbdefe02e0403fb714b8c7e57eeaad1a2f5c4ecfb9ce554ce3db9c2b024eba144843cd9e344566d9fcee73b04767 + languageName: node + linkType: hard + +"through2@npm:~2.0.0": + version: 2.0.5 + resolution: "through2@npm:2.0.5" + dependencies: + readable-stream: "npm:~2.3.6" + xtend: "npm:~4.0.1" + checksum: 10c0/cbfe5b57943fa12b4f8c043658c2a00476216d79c014895cef1ac7a1d9a8b31f6b438d0e53eecbb81054b93128324a82ecd59ec1a4f91f01f7ac113dcb14eade + languageName: node + linkType: hard + +"through@npm:>=2.2.7 <3, through@npm:^2.3.6": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc + languageName: node + linkType: hard + +"time-span@npm:^5.1.0": + version: 5.1.0 + resolution: "time-span@npm:5.1.0" + dependencies: + convert-hrtime: "npm:^5.0.0" + checksum: 10c0/37b8284c53f4ee320377512ac19e3a034f2b025f5abd6959b8c1d0f69e0f06ab03681df209f2e452d30129e7b1f25bf573fb0f29d57e71f9b4a6b5b99f4c4b9e + languageName: node + linkType: hard + +"tiny-relative-date@npm:^1.3.0": + version: 1.3.0 + resolution: "tiny-relative-date@npm:1.3.0" + checksum: 10c0/70a0818793bd00345771a4ddfa9e339c102f891766c5ebce6a011905a1a20e30212851c9ffb11b52b79e2445be32bc21d164c4c6d317aef730766b2a61008f30 + languageName: node + linkType: hard + +"tinyexec@npm:^0.3.0": + version: 0.3.1 + resolution: "tinyexec@npm:0.3.1" + checksum: 10c0/11e7a7c5d8b3bddf8b5cbe82a9290d70a6fad84d528421d5d18297f165723cb53d2e737d8f58dcce5ca56f2e4aa2d060f02510b1f8971784f97eb3e9aec28f09 + languageName: node + linkType: hard + +"tmp@npm:^0.0.33": + version: 0.0.33 + resolution: "tmp@npm:0.0.33" + dependencies: + os-tmpdir: "npm:~1.0.2" + checksum: 10c0/69863947b8c29cabad43fe0ce65cec5bb4b481d15d4b4b21e036b060b3edbf3bc7a5541de1bacb437bb3f7c4538f669752627fdf9b4aaf034cebd172ba373408 + languageName: node + linkType: hard + +"tmpl@npm:1.0.5": + version: 1.0.5 + resolution: "tmpl@npm:1.0.5" + checksum: 10c0/f935537799c2d1922cb5d6d3805f594388f75338fe7a4a9dac41504dd539704ca4db45b883b52e7b0aa5b2fd5ddadb1452bf95cd23a69da2f793a843f9451cc9 + languageName: node + linkType: hard + +"to-object-path@npm:^0.3.0": + version: 0.3.0 + resolution: "to-object-path@npm:0.3.0" + dependencies: + kind-of: "npm:^3.0.2" + checksum: 10c0/731832a977614c03a770363ad2bd9e9c82f233261861724a8e612bb90c705b94b1a290a19f52958e8e179180bb9b71121ed65e245691a421467726f06d1d7fc3 + languageName: node + linkType: hard + +"to-regex-range@npm:^2.1.0": + version: 2.1.1 + resolution: "to-regex-range@npm:2.1.1" + dependencies: + is-number: "npm:^3.0.0" + repeat-string: "npm:^1.6.1" + checksum: 10c0/440d82dbfe0b2e24f36dd8a9467240406ad1499fc8b2b0f547372c22ed1d092ace2a3eb522bb09bfd9c2f39bf1ca42eb78035cf6d2b8c9f5c78da3abc96cd949 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: "npm:^7.0.0" + checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 + languageName: node + linkType: hard + +"to-regex@npm:^3.0.1, to-regex@npm:^3.0.2": + version: 3.0.2 + resolution: "to-regex@npm:3.0.2" + dependencies: + define-property: "npm:^2.0.2" + extend-shallow: "npm:^3.0.2" + regex-not: "npm:^1.0.2" + safe-regex: "npm:^1.1.0" + checksum: 10c0/99d0b8ef397b3f7abed4bac757b0f0bb9f52bfd39167eb7105b144becfaa9a03756892352d01ac6a911f0c1ceef9f81db68c46899521a3eed054082042796120 + languageName: node + linkType: hard + +"tough-cookie@npm:^4.1.2": + version: 4.1.4 + resolution: "tough-cookie@npm:4.1.4" + dependencies: + psl: "npm:^1.1.33" + punycode: "npm:^2.1.1" + universalify: "npm:^0.2.0" + url-parse: "npm:^1.5.3" + checksum: 10c0/aca7ff96054f367d53d1e813e62ceb7dd2eda25d7752058a74d64b7266fd07be75908f3753a32ccf866a2f997604b414cfb1916d6e7f69bc64d9d9939b0d6c45 + languageName: node + linkType: hard + +"tr46@npm:^3.0.0": + version: 3.0.0 + resolution: "tr46@npm:3.0.0" + dependencies: + punycode: "npm:^2.1.1" + checksum: 10c0/cdc47cad3a9d0b6cb293e39ccb1066695ae6fdd39b9e4f351b010835a1f8b4f3a6dc3a55e896b421371187f22b48d7dac1b693de4f6551bdef7b6ab6735dfe3b + languageName: node + linkType: hard + +"traverse@npm:0.6.8": + version: 0.6.8 + resolution: "traverse@npm:0.6.8" + checksum: 10c0/d97a71be2ca895ff6b813840db37f9b5d88e30f7c4c4bd5b22c5c68ebc22d4a10c4599e02c51414523cc7ada3432e118ea62ebd53cf6f3a4f3aa951bd45072a9 + languageName: node + linkType: hard + +"tree-kill@npm:^1.2.2": + version: 1.2.2 + resolution: "tree-kill@npm:1.2.2" + bin: + tree-kill: cli.js + checksum: 10c0/7b1b7c7f17608a8f8d20a162e7957ac1ef6cd1636db1aba92f4e072dc31818c2ff0efac1e3d91064ede67ed5dc57c565420531a8134090a12ac10cf792ab14d2 + languageName: node + linkType: hard + +"treeverse@npm:^3.0.0": + version: 3.0.0 + resolution: "treeverse@npm:3.0.0" + checksum: 10c0/286479b9c05a8fb0538ee7d67a5502cea7704f258057c784c9c1118a2f598788b2c0f7a8d89e74648af88af0225b31766acecd78e6060736f09b21dd3fa255db + languageName: node + linkType: hard + +"trough@npm:^2.0.0": + version: 2.2.0 + resolution: "trough@npm:2.2.0" + checksum: 10c0/58b671fc970e7867a48514168894396dd94e6d9d6456aca427cc299c004fe67f35ed7172a36449086b2edde10e78a71a284ec0076809add6834fb8f857ccb9b0 + languageName: node + linkType: hard + +"ts-api-utils@npm:^1.3.0": + version: 1.4.3 + resolution: "ts-api-utils@npm:1.4.3" + peerDependencies: + typescript: ">=4.2.0" + checksum: 10c0/e65dc6e7e8141140c23e1dc94984bf995d4f6801919c71d6dc27cf0cd51b100a91ffcfe5217626193e5bea9d46831e8586febdc7e172df3f1091a7384299e23a + languageName: node + linkType: hard + +"ts-jest@npm:^29.1.2": + version: 29.2.5 + resolution: "ts-jest@npm:29.2.5" + dependencies: + bs-logger: "npm:^0.2.6" + ejs: "npm:^3.1.10" + fast-json-stable-stringify: "npm:^2.1.0" + jest-util: "npm:^29.0.0" + json5: "npm:^2.2.3" + lodash.memoize: "npm:^4.1.2" + make-error: "npm:^1.3.6" + semver: "npm:^7.6.3" + yargs-parser: "npm:^21.1.1" + peerDependencies: + "@babel/core": ">=7.0.0-beta.0 <8" + "@jest/transform": ^29.0.0 + "@jest/types": ^29.0.0 + babel-jest: ^29.0.0 + jest: ^29.0.0 + typescript: ">=4.3 <6" + peerDependenciesMeta: + "@babel/core": + optional: true + "@jest/transform": + optional: true + "@jest/types": + optional: true + babel-jest: + optional: true + esbuild: + optional: true + bin: + ts-jest: cli.js + checksum: 10c0/acb62d168faec073e64b20873b583974ba8acecdb94681164eb346cef82ade8fb481c5b979363e01a97ce4dd1e793baf64d9efd90720bc941ad7fc1c3d6f3f68 + languageName: node + linkType: hard + +"ts-node@npm:^10.9.2": + version: 10.9.2 + resolution: "ts-node@npm:10.9.2" + dependencies: + "@cspotcode/source-map-support": "npm:^0.8.0" + "@tsconfig/node10": "npm:^1.0.7" + "@tsconfig/node12": "npm:^1.0.7" + "@tsconfig/node14": "npm:^1.0.0" + "@tsconfig/node16": "npm:^1.0.2" + acorn: "npm:^8.4.1" + acorn-walk: "npm:^8.1.1" + arg: "npm:^4.1.0" + create-require: "npm:^1.1.0" + diff: "npm:^4.0.1" + make-error: "npm:^1.1.1" + v8-compile-cache-lib: "npm:^3.0.1" + yn: "npm:3.1.1" + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: 10c0/5f29938489f96982a25ba650b64218e83a3357d76f7bede80195c65ab44ad279c8357264639b7abdd5d7e75fc269a83daa0e9c62fd8637a3def67254ecc9ddc2 + languageName: node + linkType: hard + +"tsconfig-paths@npm:^3.15.0": + version: 3.15.0 + resolution: "tsconfig-paths@npm:3.15.0" + dependencies: + "@types/json5": "npm:^0.0.29" + json5: "npm:^1.0.2" + minimist: "npm:^1.2.6" + strip-bom: "npm:^3.0.0" + checksum: 10c0/5b4f301a2b7a3766a986baf8fc0e177eb80bdba6e396792ff92dc23b5bca8bb279fc96517dcaaef63a3b49bebc6c4c833653ec58155780bc906bdbcf7dda0ef5 + languageName: node + linkType: hard + +"tslib@npm:^2.1.0, tslib@npm:^2.6.2": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 + languageName: node + linkType: hard + +"tuf-js@npm:^3.0.1": + version: 3.0.1 + resolution: "tuf-js@npm:3.0.1" + dependencies: + "@tufjs/models": "npm:3.0.1" + debug: "npm:^4.3.6" + make-fetch-happen: "npm:^14.0.1" + checksum: 10c0/4214dd6bb1ec8a6cadbc5690e5a8556de0306f0e95022e54fc7c0ff9dbcc229ab379fd4b048511387f9c0023ea8f8c35acd8f7313f6cbc94a1b8af8b289f62ad + languageName: node + linkType: hard + +"tunnel@npm:^0.0.6": + version: 0.0.6 + resolution: "tunnel@npm:0.0.6" + checksum: 10c0/e27e7e896f2426c1c747325b5f54efebc1a004647d853fad892b46d64e37591ccd0b97439470795e5262b5c0748d22beb4489a04a0a448029636670bfd801b75 + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: "npm:^1.2.1" + checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58 + languageName: node + linkType: hard + +"type-detect@npm:4.0.8": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 10c0/8fb9a51d3f365a7de84ab7f73b653534b61b622aa6800aecdb0f1095a4a646d3f5eb295322127b6573db7982afcd40ab492d038cf825a42093a58b1e1353e0bd + languageName: node + linkType: hard + +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3 + languageName: node + linkType: hard + +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: 10c0/902bd57bfa30d51d4779b641c2bc403cdf1371fb9c91d3c058b0133694fcfdb817aef07a47f40faf79039eecbaa39ee9d3c532deff244f3a19ce68cea71a61e8 + languageName: node + linkType: hard + +"type-fest@npm:^0.6.0": + version: 0.6.0 + resolution: "type-fest@npm:0.6.0" + checksum: 10c0/0c585c26416fce9ecb5691873a1301b5aff54673c7999b6f925691ed01f5b9232db408cdbb0bd003d19f5ae284322523f44092d1f81ca0a48f11f7cf0be8cd38 + languageName: node + linkType: hard + +"type-fest@npm:^0.8.1": + version: 0.8.1 + resolution: "type-fest@npm:0.8.1" + checksum: 10c0/dffbb99329da2aa840f506d376c863bd55f5636f4741ad6e65e82f5ce47e6914108f44f340a0b74009b0cb5d09d6752ae83203e53e98b1192cf80ecee5651636 + languageName: node + linkType: hard + +"type-fest@npm:^1.0.1": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: 10c0/a3c0f4ee28ff6ddf800d769eafafcdeab32efa38763c1a1b8daeae681920f6e345d7920bf277245235561d8117dab765cb5f829c76b713b4c9de0998a5397141 + languageName: node + linkType: hard + +"type-fest@npm:^2.12.2": + version: 2.19.0 + resolution: "type-fest@npm:2.19.0" + checksum: 10c0/a5a7ecf2e654251613218c215c7493574594951c08e52ab9881c9df6a6da0aeca7528c213c622bc374b4e0cb5c443aa3ab758da4e3c959783ce884c3194e12cb + languageName: node + linkType: hard + +"type-fest@npm:^3.8.0": + version: 3.13.1 + resolution: "type-fest@npm:3.13.1" + checksum: 10c0/547d22186f73a8c04590b70dcf63baff390078c75ea8acd366bbd510fd0646e348bd1970e47ecf795b7cff0b41d26e9c475c1fedd6ef5c45c82075fbf916b629 + languageName: node + linkType: hard + +"type-fest@npm:^4.6.0, type-fest@npm:^4.7.1": + version: 4.30.2 + resolution: "type-fest@npm:4.30.2" + checksum: 10c0/c28db60ff57223fb23180e66bd9652fb3197fb533e9360f9ee76e66c3ccb6849b292df5e8fa5897f215f6685357dd31c946511da56be549cb5de9d42ac9ea67d + languageName: node + linkType: hard + +"typed-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-buffer@npm:1.0.2" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + is-typed-array: "npm:^1.1.13" + checksum: 10c0/9e043eb38e1b4df4ddf9dde1aa64919ae8bb909571c1cc4490ba777d55d23a0c74c7d73afcdd29ec98616d91bb3ae0f705fad4421ea147e1daf9528200b562da + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.1": + version: 1.0.3 + resolution: "typed-array-byte-length@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.8" + for-each: "npm:^0.3.3" + gopd: "npm:^1.2.0" + has-proto: "npm:^1.2.0" + is-typed-array: "npm:^1.1.14" + checksum: 10c0/6ae083c6f0354f1fce18b90b243343b9982affd8d839c57bbd2c174a5d5dc71be9eb7019ffd12628a96a4815e7afa85d718d6f1e758615151d5f35df841ffb3e + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-byte-offset@npm:1.0.3" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + reflect.getprototypeof: "npm:^1.0.6" + checksum: 10c0/5da29585f96671c0521475226d3227000b3e01d1e99208b66bb05b75c7c8f4d0e9cc2e79920f3bfbc792a00102df1daa2608a2753e3f291b671d5a80245bde5b + languageName: node + linkType: hard + +"typed-array-length@npm:^1.0.7": + version: 1.0.7 + resolution: "typed-array-length@npm:1.0.7" + dependencies: + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + is-typed-array: "npm:^1.1.13" + possible-typed-array-names: "npm:^1.0.0" + reflect.getprototypeof: "npm:^1.0.6" + checksum: 10c0/e38f2ae3779584c138a2d8adfa8ecf749f494af3cd3cdafe4e688ce51418c7d2c5c88df1bd6be2bbea099c3f7cea58c02ca02ed438119e91f162a9de23f61295 + languageName: node + linkType: hard + +"typedarray-to-buffer@npm:^3.1.5": + version: 3.1.5 + resolution: "typedarray-to-buffer@npm:3.1.5" + dependencies: + is-typedarray: "npm:^1.0.0" + checksum: 10c0/4ac5b7a93d604edabf3ac58d3a2f7e07487e9f6e98195a080e81dbffdc4127817f470f219d794a843b87052cedef102b53ac9b539855380b8c2172054b7d5027 + languageName: node + linkType: hard + +"typedarray@npm:^0.0.6": + version: 0.0.6 + resolution: "typedarray@npm:0.0.6" + checksum: 10c0/6005cb31df50eef8b1f3c780eb71a17925f3038a100d82f9406ac2ad1de5eb59f8e6decbdc145b3a1f8e5836e17b0c0002fb698b9fe2516b8f9f9ff602d36412 + languageName: node + linkType: hard + +"typescript-eslint@npm:^8.3.0": + version: 8.18.1 + resolution: "typescript-eslint@npm:8.18.1" + dependencies: + "@typescript-eslint/eslint-plugin": "npm:8.18.1" + "@typescript-eslint/parser": "npm:8.18.1" + "@typescript-eslint/utils": "npm:8.18.1" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 10c0/cb75af9b7381051cf80a18d4d96782a23196f7500766fa52926c1515fd7eaa42cb01ed37582d1bf519860075bea3f5375e6fcbbaf7fed3e3ab1b0f6da95805ce + languageName: node + linkType: hard + +"typescript@npm:^5.3.3": + version: 5.7.2 + resolution: "typescript@npm:5.7.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/a873118b5201b2ef332127ef5c63fb9d9c155e6fdbe211cbd9d8e65877283797cca76546bad742eea36ed7efbe3424a30376818f79c7318512064e8625d61622 + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A^5.3.3#optional!builtin": + version: 5.7.2 + resolution: "typescript@patch:typescript@npm%3A5.7.2#optional!builtin::version=5.7.2&hash=5786d5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/f3b8082c9d1d1629a215245c9087df56cb784f9fb6f27b5d55577a20e68afe2a889c040aacff6d27e35be165ecf9dca66e694c42eb9a50b3b2c451b36b5675cb + languageName: node + linkType: hard + +"uglify-js@npm:^3.1.4": + version: 3.19.3 + resolution: "uglify-js@npm:3.19.3" + bin: + uglifyjs: bin/uglifyjs + checksum: 10c0/83b0a90eca35f778e07cad9622b80c448b6aad457c9ff8e568afed978212b42930a95f9e1be943a1ffa4258a3340fbb899f41461131c05bb1d0a9c303aed8479 + languageName: node + linkType: hard + +"unbox-primitive@npm:^1.0.2": + version: 1.1.0 + resolution: "unbox-primitive@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.3" + has-bigints: "npm:^1.0.2" + has-symbols: "npm:^1.1.0" + which-boxed-primitive: "npm:^1.1.1" + checksum: 10c0/7dbd35ab02b0e05fe07136c72cb9355091242455473ec15057c11430129bab38b7b3624019b8778d02a881c13de44d63cd02d122ee782fb519e1de7775b5b982 + languageName: node + linkType: hard + +"undici-types@npm:~6.20.0": + version: 6.20.0 + resolution: "undici-types@npm:6.20.0" + checksum: 10c0/68e659a98898d6a836a9a59e6adf14a5d799707f5ea629433e025ac90d239f75e408e2e5ff086afc3cace26f8b26ee52155293564593fbb4a2f666af57fc59bf + languageName: node + linkType: hard + +"undici@npm:^5.25.4": + version: 5.28.4 + resolution: "undici@npm:5.28.4" + dependencies: + "@fastify/busboy": "npm:^2.0.0" + checksum: 10c0/08d0f2596553aa0a54ca6e8e9c7f45aef7d042c60918564e3a142d449eda165a80196f6ef19ea2ef2e6446959e293095d8e40af1236f0d67223b06afac5ecad7 + languageName: node + linkType: hard + +"unicode-emoji-modifier-base@npm:^1.0.0": + version: 1.0.0 + resolution: "unicode-emoji-modifier-base@npm:1.0.0" + checksum: 10c0/b37623fcf0162186debd20f116483e035a2d5b905b932a2c472459d9143d446ebcbefb2a494e2fe4fa7434355396e2a95ec3fc1f0c29a3bc8f2c827220e79c66 + languageName: node + linkType: hard + +"unicorn-magic@npm:^0.1.0": + version: 0.1.0 + resolution: "unicorn-magic@npm:0.1.0" + checksum: 10c0/e4ed0de05b0a05e735c7d8a2930881e5efcfc3ec897204d5d33e7e6247f4c31eac92e383a15d9a6bccb7319b4271ee4bea946e211bf14951fec6ff2cbbb66a92 + languageName: node + linkType: hard + +"unicorn-magic@npm:^0.3.0": + version: 0.3.0 + resolution: "unicorn-magic@npm:0.3.0" + checksum: 10c0/0a32a997d6c15f1c2a077a15b1c4ca6f268d574cf5b8975e778bb98e6f8db4ef4e86dfcae4e158cd4c7e38fb4dd383b93b13eefddc7f178dea13d3ac8a603271 + languageName: node + linkType: hard + +"unified-engine@npm:^11.2.0": + version: 11.2.2 + resolution: "unified-engine@npm:11.2.2" + dependencies: + "@types/concat-stream": "npm:^2.0.0" + "@types/debug": "npm:^4.0.0" + "@types/is-empty": "npm:^1.0.0" + "@types/node": "npm:^22.0.0" + "@types/unist": "npm:^3.0.0" + concat-stream: "npm:^2.0.0" + debug: "npm:^4.0.0" + extend: "npm:^3.0.0" + glob: "npm:^10.0.0" + ignore: "npm:^6.0.0" + is-empty: "npm:^1.0.0" + is-plain-obj: "npm:^4.0.0" + load-plugin: "npm:^6.0.0" + parse-json: "npm:^7.0.0" + trough: "npm:^2.0.0" + unist-util-inspect: "npm:^8.0.0" + vfile: "npm:^6.0.0" + vfile-message: "npm:^4.0.0" + vfile-reporter: "npm:^8.0.0" + vfile-statistics: "npm:^3.0.0" + yaml: "npm:^2.0.0" + checksum: 10c0/daac3b2bf18fb79a052129958e104bddfb8241ef5ea51696a214864906a61a375c4d95b42958b7ed300ebaa028172f1e8b6515f1664a0fa765eb11ca06b891ee + languageName: node + linkType: hard + +"unified@npm:^11.0.0, unified@npm:^11.0.4": + version: 11.0.5 + resolution: "unified@npm:11.0.5" + dependencies: + "@types/unist": "npm:^3.0.0" + bail: "npm:^2.0.0" + devlop: "npm:^1.0.0" + extend: "npm:^3.0.0" + is-plain-obj: "npm:^4.0.0" + trough: "npm:^2.0.0" + vfile: "npm:^6.0.0" + checksum: 10c0/53c8e685f56d11d9d458a43e0e74328a4d6386af51c8ac37a3dcabec74ce5026da21250590d4aff6733ccd7dc203116aae2b0769abc18cdf9639a54ae528dfc9 + languageName: node + linkType: hard + +"union-value@npm:^1.0.0": + version: 1.0.1 + resolution: "union-value@npm:1.0.1" + dependencies: + arr-union: "npm:^3.1.0" + get-value: "npm:^2.0.6" + is-extendable: "npm:^0.1.1" + set-value: "npm:^2.0.1" + checksum: 10c0/8758d880cb9545f62ce9cfb9b791b2b7a206e0ff5cc4b9d7cd6581da2c6839837fbb45e639cf1fd8eef3cae08c0201b614b7c06dd9f5f70d9dbe7c5fe2fbf592 + languageName: node + linkType: hard + +"unique-filename@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-filename@npm:4.0.0" + dependencies: + unique-slug: "npm:^5.0.0" + checksum: 10c0/38ae681cceb1408ea0587b6b01e29b00eee3c84baee1e41fd5c16b9ed443b80fba90c40e0ba69627e30855570a34ba8b06702d4a35035d4b5e198bf5a64c9ddc + languageName: node + linkType: hard + +"unique-slug@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-slug@npm:5.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10c0/d324c5a44887bd7e105ce800fcf7533d43f29c48757ac410afd42975de82cc38ea2035c0483f4de82d186691bf3208ef35c644f73aa2b1b20b8e651be5afd293 + languageName: node + linkType: hard + +"unique-string@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-string@npm:3.0.0" + dependencies: + crypto-random-string: "npm:^4.0.0" + checksum: 10c0/b35ea034b161b2a573666ec16c93076b4b6106b8b16c2415808d747ab3a0566b5db0c4be231d4b11cfbc16d7fd915c9d8a45884bff0e2db11b799775b2e1e017 + languageName: node + linkType: hard + +"unist-util-inspect@npm:^8.0.0": + version: 8.1.0 + resolution: "unist-util-inspect@npm:8.1.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/d3dff256ffd77a1e8dd583be89070dc1ab124d424794fcc1105a38c2f0bb0538afc686e592699807c7d9fa612821961033fe38e26c11ba0bb51d19e8ae7c4119 + languageName: node + linkType: hard + +"unist-util-is@npm:^6.0.0": + version: 6.0.0 + resolution: "unist-util-is@npm:6.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/9419352181eaa1da35eca9490634a6df70d2217815bb5938a04af3a662c12c5607a2f1014197ec9c426fbef18834f6371bfdb6f033040fa8aa3e965300d70e7e + languageName: node + linkType: hard + +"unist-util-position-from-estree@npm:^2.0.0": + version: 2.0.0 + resolution: "unist-util-position-from-estree@npm:2.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/39127bf5f0594e0a76d9241dec4f7aa26323517120ce1edd5ed91c8c1b9df7d6fb18af556e4b6250f1c7368825720ed892e2b6923be5cdc08a9bb16536dc37b3 + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^2.0.0": + version: 2.0.3 + resolution: "unist-util-stringify-position@npm:2.0.3" + dependencies: + "@types/unist": "npm:^2.0.2" + checksum: 10c0/46fa03f840df173b7f032cbfffdb502fb05b79b3fb5451681c796cf4985d9087a537833f5afb75d55e79b46bbbe4b3d81dd75a1062f9289091c526aebe201d5d + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^4.0.0": + version: 4.0.0 + resolution: "unist-util-stringify-position@npm:4.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10c0/dfe1dbe79ba31f589108cb35e523f14029b6675d741a79dea7e5f3d098785045d556d5650ec6a8338af11e9e78d2a30df12b1ee86529cded1098da3f17ee999e + languageName: node + linkType: hard + +"unist-util-visit-parents@npm:^6.0.0": + version: 6.0.1 + resolution: "unist-util-visit-parents@npm:6.0.1" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10c0/51b1a5b0aa23c97d3e03e7288f0cdf136974df2217d0999d3de573c05001ef04cccd246f51d2ebdfb9e8b0ed2704451ad90ba85ae3f3177cf9772cef67f56206 + languageName: node + linkType: hard + +"unist-util-visit@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-visit@npm:5.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + unist-util-visit-parents: "npm:^6.0.0" + checksum: 10c0/51434a1d80252c1540cce6271a90fd1a106dbe624997c09ed8879279667fb0b2d3a685e02e92bf66598dcbe6cdffa7a5f5fb363af8fdf90dda6c855449ae39a5 + languageName: node + linkType: hard + +"universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2": + version: 7.0.2 + resolution: "universal-user-agent@npm:7.0.2" + checksum: 10c0/e60517ee929813e6b3ac0ceb3c66deccafadc71341edca160279ff046319c684fd7090a60d63aa61cd34a06c2d2acebeb8c2f8d364244ae7bf8ab788e20cd8c8 + languageName: node + linkType: hard + +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: 10c0/cedbe4d4ca3967edf24c0800cfc161c5a15e240dac28e3ce575c689abc11f2c81ccc6532c8752af3b40f9120fb5e454abecd359e164f4f6aa44c29cd37e194fe + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: 10c0/73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a + languageName: node + linkType: hard + +"unset-value@npm:^1.0.0": + version: 1.0.0 + resolution: "unset-value@npm:1.0.0" + dependencies: + has-value: "npm:^0.3.1" + isobject: "npm:^3.0.0" + checksum: 10c0/68a796dde4a373afdbf017de64f08490a3573ebee549136da0b3a2245299e7f65f647ef70dc13c4ac7f47b12fba4de1646fa0967a365638578fedce02b9c0b1f + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.1.1": + version: 1.1.1 + resolution: "update-browserslist-db@npm:1.1.1" + dependencies: + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.0" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10c0/536a2979adda2b4be81b07e311bd2f3ad5e978690987956bc5f514130ad50cac87cd22c710b686d79731e00fbee8ef43efe5fcd72baa241045209195d43dcc80 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: "npm:^2.1.0" + checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c + languageName: node + linkType: hard + +"urix@npm:^0.1.0": + version: 0.1.0 + resolution: "urix@npm:0.1.0" + checksum: 10c0/264f1b29360c33c0aec5fb9819d7e28f15d1a3b83175d2bcc9131efe8583f459f07364957ae3527f1478659ec5b2d0f1ad401dfb625f73e4d424b3ae35fc5fc0 + languageName: node + linkType: hard + +"url-join@npm:^5.0.0": + version: 5.0.0 + resolution: "url-join@npm:5.0.0" + checksum: 10c0/ed2b166b4b5a98adcf6828a48b6bd6df1dac4c8a464a73cf4d8e2457ed410dd8da6be0d24855b86026cd7f5c5a3657c1b7b2c7a7c5b8870af17635a41387b04c + languageName: node + linkType: hard + +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: "npm:^2.1.1" + requires-port: "npm:^1.0.0" + checksum: 10c0/bd5aa9389f896974beb851c112f63b466505a04b4807cea2e5a3b7092f6fbb75316f0491ea84e44f66fed55f1b440df5195d7e3a8203f64fcefa19d182f5be87 + languageName: node + linkType: hard + +"use@npm:^3.1.0": + version: 3.1.1 + resolution: "use@npm:3.1.1" + checksum: 10c0/75b48673ab80d5139c76922630d5a8a44e72ed58dbaf54dee1b88352d10e1c1c1fc332066c782d8ae9a56503b85d3dc67ff6d2ffbd9821120466d1280ebb6d6e + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 + languageName: node + linkType: hard + +"uuid@npm:^8.3.0": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 10c0/bcbb807a917d374a49f475fae2e87fdca7da5e5530820ef53f65ba1d12131bd81a92ecf259cc7ce317cbe0f289e7d79fdfebcef9bfa3087c8c8a2fa304c9be54 + languageName: node + linkType: hard + +"uvu@npm:^0.5.6": + version: 0.5.6 + resolution: "uvu@npm:0.5.6" + dependencies: + dequal: "npm:^2.0.0" + diff: "npm:^5.0.0" + kleur: "npm:^4.0.3" + sade: "npm:^1.7.3" + bin: + uvu: bin.js + checksum: 10c0/ad32eb5f7d94bdeb71f80d073003f0138e24f61ed68cecc8e15d2f30838f44c9670577bb1775c8fac894bf93d1bc1583d470a9195e49bfa6efa14cc6f4942bff + languageName: node + linkType: hard + +"v8-compile-cache-lib@npm:^3.0.1": + version: 3.0.1 + resolution: "v8-compile-cache-lib@npm:3.0.1" + checksum: 10c0/bdc36fb8095d3b41df197f5fb6f11e3a26adf4059df3213e3baa93810d8f0cc76f9a74aaefc18b73e91fe7e19154ed6f134eda6fded2e0f1c8d2272ed2d2d391 + languageName: node + linkType: hard + +"v8-to-istanbul@npm:^7.0.0": + version: 7.1.2 + resolution: "v8-to-istanbul@npm:7.1.2" + dependencies: + "@types/istanbul-lib-coverage": "npm:^2.0.1" + convert-source-map: "npm:^1.6.0" + source-map: "npm:^0.7.3" + checksum: 10c0/a901917e3e321e2c74a9582cbe6652ff2b983040a683c924ce98fbccdfe249cbcb34d7d7913a13a7e4eee9bed3a51c7181b09103f4405d92f4ebac1cc40dc005 + languageName: node + linkType: hard + +"v8-to-istanbul@npm:^9.0.1": + version: 9.3.0 + resolution: "v8-to-istanbul@npm:9.3.0" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.12" + "@types/istanbul-lib-coverage": "npm:^2.0.1" + convert-source-map: "npm:^2.0.0" + checksum: 10c0/968bcf1c7c88c04df1ffb463c179558a2ec17aa49e49376120504958239d9e9dad5281aa05f2a78542b8557f2be0b0b4c325710262f3b838b40d703d5ed30c23 + languageName: node + linkType: hard + +"validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": + version: 3.0.4 + resolution: "validate-npm-package-license@npm:3.0.4" + dependencies: + spdx-correct: "npm:^3.0.0" + spdx-expression-parse: "npm:^3.0.0" + checksum: 10c0/7b91e455a8de9a0beaa9fe961e536b677da7f48c9a493edf4d4d4a87fd80a7a10267d438723364e432c2fcd00b5650b5378275cded362383ef570276e6312f4f + languageName: node + linkType: hard + +"validate-npm-package-name@npm:^5.0.0": + version: 5.0.1 + resolution: "validate-npm-package-name@npm:5.0.1" + checksum: 10c0/903e738f7387404bb72f7ac34e45d7010c877abd2803dc2d614612527927a40a6d024420033132e667b1bade94544b8a1f65c9431a4eb30d0ce0d80093cd1f74 + languageName: node + linkType: hard + +"validate-npm-package-name@npm:^6.0.0": + version: 6.0.0 + resolution: "validate-npm-package-name@npm:6.0.0" + checksum: 10c0/35d1896d90a4f00291cfc17077b553910d45018b3562841acc6471731794eeebe39b409f678e8c1fee8ef1786e087cac8dea19abdd43649c30fd0b9c752afa2f + languageName: node + linkType: hard + +"vfile-message@npm:^4.0.0": + version: 4.0.2 + resolution: "vfile-message@npm:4.0.2" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-stringify-position: "npm:^4.0.0" + checksum: 10c0/07671d239a075f888b78f318bc1d54de02799db4e9dce322474e67c35d75ac4a5ac0aaf37b18801d91c9f8152974ea39678aa72d7198758b07f3ba04fb7d7514 + languageName: node + linkType: hard + +"vfile-reporter@npm:^8.0.0": + version: 8.1.1 + resolution: "vfile-reporter@npm:8.1.1" + dependencies: + "@types/supports-color": "npm:^8.0.0" + string-width: "npm:^6.0.0" + supports-color: "npm:^9.0.0" + unist-util-stringify-position: "npm:^4.0.0" + vfile: "npm:^6.0.0" + vfile-message: "npm:^4.0.0" + vfile-sort: "npm:^4.0.0" + vfile-statistics: "npm:^3.0.0" + checksum: 10c0/5da85c67e4a26762d64d65d0aac5ef339a413cc051470d970eea7352f07afd24577d42780c3af93c109177078df1bbbdbcc3e82adcc34e1bb96d2665f3f0c2a1 + languageName: node + linkType: hard + +"vfile-sort@npm:^4.0.0": + version: 4.0.0 + resolution: "vfile-sort@npm:4.0.0" + dependencies: + vfile: "npm:^6.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/fe1a4cbe24d03b81a7e7486be107eb029ac2631a3575e55a3f1d25cf54bcf2d60b3f76694dedf8a2f60793877e1d192234157cdfd50d1a0d18b9a4c1487cdf65 + languageName: node + linkType: hard + +"vfile-statistics@npm:^3.0.0": + version: 3.0.0 + resolution: "vfile-statistics@npm:3.0.0" + dependencies: + vfile: "npm:^6.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/3de51670329701e2cff75d979564087578844444d9b9d8619a2fdd2a904bc970bf4d05b58e7cee71e0f6f34087f1f7f2ea85cdfa5bf58f572c777432c156bd8f + languageName: node + linkType: hard + +"vfile@npm:^6.0.0, vfile@npm:^6.0.1": + version: 6.0.3 + resolution: "vfile@npm:6.0.3" + dependencies: + "@types/unist": "npm:^3.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10c0/e5d9eb4810623f23758cfc2205323e33552fb5972e5c2e6587babe08fe4d24859866277404fb9e2a20afb71013860d96ec806cb257536ae463c87d70022ab9ef + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^4.0.0": + version: 4.0.0 + resolution: "w3c-xmlserializer@npm:4.0.0" + dependencies: + xml-name-validator: "npm:^4.0.0" + checksum: 10c0/02cc66d6efc590bd630086cd88252444120f5feec5c4043932b0d0f74f8b060512f79dc77eb093a7ad04b4f02f39da79ce4af47ceb600f2bf9eacdc83204b1a8 + languageName: node + linkType: hard + +"walk-up-path@npm:^3.0.1": + version: 3.0.1 + resolution: "walk-up-path@npm:3.0.1" + checksum: 10c0/3184738e0cf33698dd58b0ee4418285b9c811e58698f52c1f025435a85c25cbc5a63fee599f1a79cb29ca7ef09a44ec9417b16bfd906b1a37c305f7aa20ee5bc + languageName: node + linkType: hard + +"walker@npm:^1.0.7, walker@npm:^1.0.8, walker@npm:~1.0.5": + version: 1.0.8 + resolution: "walker@npm:1.0.8" + dependencies: + makeerror: "npm:1.0.12" + checksum: 10c0/a17e037bccd3ca8a25a80cb850903facdfed0de4864bd8728f1782370715d679fa72e0a0f5da7c1c1379365159901e5935f35be531229da53bbfc0efdabdb48e + languageName: node + linkType: hard + +"wcwidth@npm:^1.0.1": + version: 1.0.1 + resolution: "wcwidth@npm:1.0.1" + dependencies: + defaults: "npm:^1.0.3" + checksum: 10c0/5b61ca583a95e2dd85d7078400190efd452e05751a64accb8c06ce4db65d7e0b0cde9917d705e826a2e05cc2548f61efde115ffa374c3e436d04be45c889e5b4 + languageName: node + linkType: hard + +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: 10c0/228d8cb6d270c23b0720cb2d95c579202db3aaf8f633b4e9dd94ec2000a04e7e6e43b76a94509cdb30479bd00ae253ab2371a2da9f81446cc313f89a4213a2c4 + languageName: node + linkType: hard + +"whatwg-encoding@npm:^2.0.0": + version: 2.0.0 + resolution: "whatwg-encoding@npm:2.0.0" + dependencies: + iconv-lite: "npm:0.6.3" + checksum: 10c0/91b90a49f312dc751496fd23a7e68981e62f33afe938b97281ad766235c4872fc4e66319f925c5e9001502b3040dd25a33b02a9c693b73a4cbbfdc4ad10c3e3e + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^3.0.0": + version: 3.0.0 + resolution: "whatwg-mimetype@npm:3.0.0" + checksum: 10c0/323895a1cda29a5fb0b9ca82831d2c316309fede0365047c4c323073e3239067a304a09a1f4b123b9532641ab604203f33a1403b5ca6a62ef405bcd7a204080f + languageName: node + linkType: hard + +"whatwg-url@npm:^11.0.0": + version: 11.0.0 + resolution: "whatwg-url@npm:11.0.0" + dependencies: + tr46: "npm:^3.0.0" + webidl-conversions: "npm:^7.0.0" + checksum: 10c0/f7ec264976d7c725e0696fcaf9ebe056e14422eacbf92fdbb4462034609cba7d0c85ffa1aab05e9309d42969bcf04632ba5ed3f3882c516d7b093053315bf4c1 + languageName: node + linkType: hard + +"which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": + version: 1.1.1 + resolution: "which-boxed-primitive@npm:1.1.1" + dependencies: + is-bigint: "npm:^1.1.0" + is-boolean-object: "npm:^1.2.1" + is-number-object: "npm:^1.1.1" + is-string: "npm:^1.1.1" + is-symbol: "npm:^1.1.1" + checksum: 10c0/aceea8ede3b08dede7dce168f3883323f7c62272b49801716e8332ff750e7ae59a511ae088840bc6874f16c1b7fd296c05c949b0e5b357bfe3c431b98c417abe + languageName: node + linkType: hard + +"which-builtin-type@npm:^1.2.0": + version: 1.2.1 + resolution: "which-builtin-type@npm:1.2.1" + dependencies: + call-bound: "npm:^1.0.2" + function.prototype.name: "npm:^1.1.6" + has-tostringtag: "npm:^1.0.2" + is-async-function: "npm:^2.0.0" + is-date-object: "npm:^1.1.0" + is-finalizationregistry: "npm:^1.1.0" + is-generator-function: "npm:^1.0.10" + is-regex: "npm:^1.2.1" + is-weakref: "npm:^1.0.2" + isarray: "npm:^2.0.5" + which-boxed-primitive: "npm:^1.1.0" + which-collection: "npm:^1.0.2" + which-typed-array: "npm:^1.1.16" + checksum: 10c0/8dcf323c45e5c27887800df42fbe0431d0b66b1163849bb7d46b5a730ad6a96ee8bfe827d078303f825537844ebf20c02459de41239a0a9805e2fcb3cae0d471 + languageName: node + linkType: hard + +"which-collection@npm:^1.0.2": + version: 1.0.2 + resolution: "which-collection@npm:1.0.2" + dependencies: + is-map: "npm:^2.0.3" + is-set: "npm:^2.0.3" + is-weakmap: "npm:^2.0.2" + is-weakset: "npm:^2.0.3" + checksum: 10c0/3345fde20964525a04cdf7c4a96821f85f0cc198f1b2ecb4576e08096746d129eb133571998fe121c77782ac8f21cbd67745a3d35ce100d26d4e684c142ea1f2 + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.16": + version: 1.1.16 + resolution: "which-typed-array@npm:1.1.16" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + checksum: 10c0/a9075293200db4fbce7c24d52731843542c5a19edfc66e31aa2cbefa788b5caa7ef05008f6e60d2c38d8198add6b92d0ddc2937918c5c308be398b1ebd8721af + languageName: node + linkType: hard + +"which@npm:^1.2.14, which@npm:^1.2.9": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: "npm:^2.0.0" + bin: + which: ./bin/which + checksum: 10c0/e945a8b6bbf6821aaaef7f6e0c309d4b615ef35699576d5489b4261da9539f70393c6b2ce700ee4321c18f914ebe5644bc4631b15466ffbaad37d83151f6af59 + languageName: node + linkType: hard + +"which@npm:^2.0.1, which@npm:^2.0.2": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a + languageName: node + linkType: hard + +"which@npm:^5.0.0": + version: 5.0.0 + resolution: "which@npm:5.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10c0/e556e4cd8b7dbf5df52408c9a9dd5ac6518c8c5267c8953f5b0564073c66ed5bf9503b14d876d0e9c7844d4db9725fb0dcf45d6e911e17e26ab363dc3965ae7b + languageName: node + linkType: hard + +"word-wrap@npm:^1.0.3, word-wrap@npm:^1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20 + languageName: node + linkType: hard + +"wordwrap@npm:^1.0.0": + version: 1.0.0 + resolution: "wordwrap@npm:1.0.0" + checksum: 10c0/7ed2e44f3c33c5c3e3771134d2b0aee4314c9e49c749e37f464bf69f2bcdf0cbf9419ca638098e2717cff4875c47f56a007532f6111c3319f557a2ca91278e92 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + languageName: node + linkType: hard + +"wrap-ansi@npm:^9.0.0": + version: 9.0.0 + resolution: "wrap-ansi@npm:9.0.0" + dependencies: + ansi-styles: "npm:^6.2.1" + string-width: "npm:^7.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/a139b818da9573677548dd463bd626a5a5286271211eb6e4e82f34a4f643191d74e6d4a9bb0a3c26ec90e6f904f679e0569674ac099ea12378a8b98e20706066 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + languageName: node + linkType: hard + +"write-file-atomic@npm:^3.0.0": + version: 3.0.3 + resolution: "write-file-atomic@npm:3.0.3" + dependencies: + imurmurhash: "npm:^0.1.4" + is-typedarray: "npm:^1.0.0" + signal-exit: "npm:^3.0.2" + typedarray-to-buffer: "npm:^3.1.5" + checksum: 10c0/7fb67affd811c7a1221bed0c905c26e28f0041e138fb19ccf02db57a0ef93ea69220959af3906b920f9b0411d1914474cdd90b93a96e5cd9e8368d9777caac0e + languageName: node + linkType: hard + +"write-file-atomic@npm:^4.0.2": + version: 4.0.2 + resolution: "write-file-atomic@npm:4.0.2" + dependencies: + imurmurhash: "npm:^0.1.4" + signal-exit: "npm:^3.0.7" + checksum: 10c0/a2c282c95ef5d8e1c27b335ae897b5eca00e85590d92a3fd69a437919b7b93ff36a69ea04145da55829d2164e724bc62202cdb5f4b208b425aba0807889375c7 + languageName: node + linkType: hard + +"write-file-atomic@npm:^6.0.0": + version: 6.0.0 + resolution: "write-file-atomic@npm:6.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + signal-exit: "npm:^4.0.1" + checksum: 10c0/ae2f1c27474758a9aca92037df6c1dd9cb94c4e4983451210bd686bfe341f142662f6aa5913095e572ab037df66b1bfe661ed4ce4c0369ed0e8219e28e141786 + languageName: node + linkType: hard + +"ws@npm:^8.11.0": + version: 8.18.0 + resolution: "ws@npm:8.18.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06 + languageName: node + linkType: hard + +"xml-name-validator@npm:^4.0.0": + version: 4.0.0 + resolution: "xml-name-validator@npm:4.0.0" + checksum: 10c0/c1bfa219d64e56fee265b2bd31b2fcecefc063ee802da1e73bad1f21d7afd89b943c9e2c97af2942f60b1ad46f915a4c81e00039c7d398b53cf410e29d3c30bd + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 10c0/b64b535861a6f310c5d9bfa10834cf49127c71922c297da9d4d1b45eeaae40bf9b4363275876088fbe2667e5db028d2cd4f8ee72eed9bede840a67d57dab7593 + languageName: node + linkType: hard + +"xtend@npm:~4.0.1": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a + languageName: node + linkType: hard + +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 + languageName: node + linkType: hard + +"yaml@npm:^2.0.0, yaml@npm:~2.6.1": + version: 2.6.1 + resolution: "yaml@npm:2.6.1" + bin: + yaml: bin.mjs + checksum: 10c0/aebf07f61c72b38c74d2b60c3a3ccf89ee4da45bcd94b2bfb7899ba07a5257625a7c9f717c65a6fc511563d48001e01deb1d9e55f0133f3e2edf86039c8c1be7 + languageName: node + linkType: hard + +"yargs-parser@npm:^20.2.2": + version: 20.2.9 + resolution: "yargs-parser@npm:20.2.9" + checksum: 10c0/0685a8e58bbfb57fab6aefe03c6da904a59769bd803a722bb098bd5b0f29d274a1357762c7258fb487512811b8063fb5d2824a3415a0a4540598335b3b086c72 + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 + languageName: node + linkType: hard + +"yargs@npm:^16.0.0": + version: 16.2.0 + resolution: "yargs@npm:16.2.0" + dependencies: + cliui: "npm:^7.0.2" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.0" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^20.2.2" + checksum: 10c0/b1dbfefa679848442454b60053a6c95d62f2d2e21dd28def92b647587f415969173c6e99a0f3bab4f1b67ee8283bf735ebe3544013f09491186ba9e8a9a2b651 + languageName: node + linkType: hard + +"yargs@npm:^17.0.0, yargs@npm:^17.3.1, yargs@npm:^17.5.1, yargs@npm:^17.7.2": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: "npm:^8.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.3" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^21.1.1" + checksum: 10c0/ccd7e723e61ad5965fffbb791366db689572b80cca80e0f96aad968dfff4156cd7cd1ad18607afe1046d8241e6fb2d6c08bf7fa7bfb5eaec818735d8feac8f05 + languageName: node + linkType: hard + +"yn@npm:3.1.1": + version: 3.1.1 + resolution: "yn@npm:3.1.1" + checksum: 10c0/0732468dd7622ed8a274f640f191f3eaf1f39d5349a1b72836df484998d7d9807fbea094e2f5486d6b0cd2414aad5775972df0e68f8604db89a239f0f4bf7443 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f + languageName: node + linkType: hard + +"yocto-queue@npm:^1.0.0": + version: 1.1.1 + resolution: "yocto-queue@npm:1.1.1" + checksum: 10c0/cb287fe5e6acfa82690acb43c283de34e945c571a78a939774f6eaba7c285bacdf6c90fbc16ce530060863984c906d2b4c6ceb069c94d1e0a06d5f2b458e2a92 + languageName: node + linkType: hard + +"yoctocolors@npm:^2.0.0": + version: 2.1.1 + resolution: "yoctocolors@npm:2.1.1" + checksum: 10c0/85903f7fa96f1c70badee94789fade709f9d83dab2ec92753d612d84fcea6d34c772337a9f8914c6bed2f5fc03a428ac5d893e76fab636da5f1236ab725486d0 + languageName: node + linkType: hard + +"zwitch@npm:^2.0.0": + version: 2.0.4 + resolution: "zwitch@npm:2.0.4" + checksum: 10c0/3c7830cdd3378667e058ffdb4cf2bb78ac5711214e2725900873accb23f3dfe5f9e7e5a06dcdc5f29605da976fc45c26d9a13ca334d6eea2245a15e77b8fc06e + languageName: node + linkType: hard From 22c27db3559aec130c465cf5e387832a3a4731ba Mon Sep 17 00:00:00 2001 From: xobotyi Date: Wed, 18 Dec 2024 02:05:36 +0100 Subject: [PATCH 02/13] chore: upgrade eslint and configs, swap jest with vitest --- .commitlintrc.js | 8 + .eslintignore | 8 - .eslintrc.cjs | 52 - .gitignore | 10 +- .lintstagedrc.json | 4 + .npmignore | 3 +- .prettierrc.cjs | 3 - .releaserc.json | 17 + commitlint.config.cjs | 6 - eslint.config.js | 20 + jest.config.ts | 38 - package.json | 72 +- src/__tests__/setup.ts | 2 +- src/useAsync/__docs__/example.stories.tsx | 13 +- src/useAsync/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 20 +- src/useAsyncAbortable/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 8 +- src/useClickOutside/__tests__/ssr.ts | 8 +- .../__docs__/example.stories.tsx | 19 +- .../__docs__/example.stories.tsx | 11 +- .../__tests__/dom.ts | 14 +- .../__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 21 +- src/useCookieValue/__tests__/ssr.ts | 8 +- src/useCounter/__docs__/example.stories.tsx | 30 +- src/useCounter/__tests__/ssr.ts | 6 +- src/useCustomCompareEffect/__tests__/ssr.ts | 6 +- src/useCustomCompareMemo/__tests__/ssr.ts | 13 +- .../__docs__/example.stories.tsx | 11 +- src/useDebouncedEffect/__tests__/dom.ts | 6 +- src/useDebouncedEffect/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 7 +- src/useDebouncedState/__tests__/dom.ts | 8 +- src/useDebouncedState/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 6 +- src/useDeepCompareEffect/__tests__/dom.ts | 20 +- src/useDeepCompareEffect/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 10 +- src/useDeepCompareMemo/__tests__/dom.ts | 16 +- src/useDeepCompareMemo/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 8 +- src/useDocumentVisibility/__tests__/dom.ts | 10 +- src/useDocumentVisibility/__tests__/ssr.ts | 4 +- src/useEventListener/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 4 +- src/useFirstMountState/__tests__/dom.ts | 8 +- src/useFirstMountState/__tests__/ssr.ts | 6 +- src/useFunctionalState/__tests__/dom.ts | 10 +- src/useFunctionalState/__tests__/ssr.ts | 8 +- src/useHookableRef/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 21 +- src/useIntersectionObserver/__tests__/ssr.ts | 6 +- src/useIntervalEffect/__tests__/ssr.ts | 6 +- src/useIsMounted/__docs__/example.stories.tsx | 7 +- src/useIsMounted/__tests__/dom.ts | 14 +- src/useIsMounted/__tests__/ssr.ts | 10 +- .../__tests__/dom.ts | 4 +- .../__tests__/ssr.ts | 4 +- src/useIsomorphicLayoutEffect/index.ts | 4 +- src/useKeyboardEvent/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 4 +- src/useLifecycleLogger/__tests__/ssr.ts | 6 +- src/useList/__tests__/ssr.ts | 6 +- src/useLocalStorageValue/__tests__/dom.ts | 6 +- src/useLocalStorageValue/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 34 +- src/useMediaQuery/__tests__/ssr.ts | 14 +- .../__docs__/example.stories.tsx | 8 +- src/useMountEffect/__tests__/dom.ts | 6 +- src/useMountEffect/__tests__/ssr.ts | 4 +- .../__docs__/example.stories.tsx | 2 +- src/useNetworkState/__tests__/dom.ts | 16 +- src/useNetworkState/__tests__/ssr.ts | 8 +- .../__docs__/example.stories.tsx | 10 +- src/usePermission/__tests__/ssr.ts | 6 +- src/usePrevious/__docs__/example.stories.tsx | 20 +- src/usePrevious/__tests__/dom.ts | 24 +- src/usePrevious/__tests__/ssr.ts | 8 +- .../__docs__/example.stories.tsx | 20 +- src/usePreviousDistinct/__tests__/ssr.ts | 12 +- src/useQueue/__docs__/example.stories.tsx | 8 +- src/useQueue/__tests__/dom.ts | 16 +- src/useQueue/__tests__/ssr.ts | 8 +- src/useRafCallback/__tests__/ssr.ts | 10 +- src/useRafEffect/__docs__/example.stories.tsx | 11 +- src/useRafEffect/__tests__/dom.ts | 26 +- src/useRafEffect/__tests__/ssr.ts | 6 +- src/useRafState/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 4 +- src/useRenderCount/__tests__/dom.ts | 6 +- src/useRenderCount/__tests__/ssr.ts | 6 +- src/useRerender/__docs__/example.stories.tsx | 4 +- src/useResizeObserver/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 10 +- src/useScreenOrientation/__tests__/ssr.ts | 6 +- src/useSessionStorageValue/__tests__/dom.ts | 6 +- src/useSessionStorageValue/__tests__/ssr.ts | 6 +- src/useSet/__docs__/example.stories.tsx | 10 +- src/useStorageValue/__tests__/ssr.ts | 35 +- src/useSyncedRef/__docs__/example.stories.tsx | 9 +- src/useSyncedRef/__tests__/ssr.ts | 10 +- .../__docs__/example.stories.tsx | 11 +- src/useThrottledEffect/__tests__/dom.ts | 10 +- src/useThrottledEffect/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 7 +- src/useThrottledState/__tests__/dom.ts | 8 +- src/useThrottledState/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 33 +- src/useTimeoutEffect/__tests__/ssr.ts | 6 +- src/useToggle/__docs__/example.stories.tsx | 4 +- src/useToggle/__tests__/ssr.ts | 10 +- .../__docs__/example.stories.tsx | 7 +- src/useUnmountEffect/__tests__/ssr.ts | 4 +- .../__docs__/example.stories.tsx | 13 +- src/useUpdateEffect/__tests__/dom.ts | 18 +- src/useUpdateEffect/__tests__/ssr.ts | 4 +- src/useValidator/__tests__/ssr.ts | 10 +- src/useVibrate/__docs__/example.stories.tsx | 6 +- src/useVibrate/__tests__/dom.ts | 8 +- src/useVibrate/__tests__/ssr.ts | 6 +- .../__docs__/example.stories.tsx | 2 +- src/useWindowSize/__tests__/ssr.ts | 6 +- tsconfig.build.json | 14 + tsconfig.eslint.json | 22 - tsconfig.json | 20 +- utility/add-new-hook.js | 112 - yarn.lock | 6104 +++-------------- 128 files changed, 1707 insertions(+), 5877 deletions(-) create mode 100644 .commitlintrc.js delete mode 100644 .eslintignore delete mode 100644 .eslintrc.cjs create mode 100644 .lintstagedrc.json delete mode 100644 .prettierrc.cjs create mode 100644 .releaserc.json delete mode 100644 commitlint.config.cjs create mode 100644 eslint.config.js delete mode 100644 jest.config.ts create mode 100644 tsconfig.build.json delete mode 100644 tsconfig.eslint.json delete mode 100644 utility/add-new-hook.js diff --git a/.commitlintrc.js b/.commitlintrc.js new file mode 100644 index 00000000..8ea100e3 --- /dev/null +++ b/.commitlintrc.js @@ -0,0 +1,8 @@ +const config = { + extends: ['@commitlint/config-conventional'], + rules: { + 'footer-max-line-length': [1, 'always', 72], + }, +}; + +export default config; diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 003ecbc6..00000000 --- a/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -.idea -node_modules -dist -coverage -CHANGELOG.md -!.eslintrc.cjs -!.prettierrc.cjs -!.github diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 951b0181..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,52 +0,0 @@ -const commonJSRules = { - 'unicorn/filename-case': 'off', - 'unicorn/prevent-abbreviations': 'off', - 'unicorn/no-null': 'off', - 'unicorn/no-array-for-each': 'off', - - '@typescript-eslint/no-meaningless-void-operator': 'off', - '@typescript-eslint/no-confusing-void-expression': 'off', -}; - -module.exports = { - root: true, - - parserOptions: { - extraFileExtensions: ['.md'], - }, - - settings: { - 'import/ignore': ['react-apexcharts'], - }, - - overrides: [ - { - files: ['*.js', '*.cjs', '*.jsx', '*.cjsx'], - extends: ['@react-hookz/eslint-config/base.cjs', '@react-hookz/eslint-config/react.cjs'], - rules: { - ...commonJSRules, - }, - }, - { - files: ['*.ts', '*.tsx'], - parserOptions: { - project: './tsconfig.eslint.json', - }, - extends: [ - '@react-hookz/eslint-config/typescript.cjs', - '@react-hookz/eslint-config/react.cjs', - ], - rules: { - ...commonJSRules, - }, - }, - { - files: ['*.md'], - extends: ['@react-hookz/eslint-config/md.cjs'], - }, - { - files: ['*.mdx'], - extends: ['@react-hookz/eslint-config/mdx.cjs'], - }, - ], -}; diff --git a/.gitignore b/.gitignore index f6a84ae3..42bb50f5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,4 @@ -/.idea -node_modules -/coverage -/src/**/*.js -/src/**/*.d.ts +.idea yarn-error.log .yarn/* @@ -12,3 +8,7 @@ yarn-error.log !.yarn/releases !.yarn/sdks !.yarn/versions + +/coverage +/node_modules +/dist diff --git a/.lintstagedrc.json b/.lintstagedrc.json new file mode 100644 index 00000000..b3736047 --- /dev/null +++ b/.lintstagedrc.json @@ -0,0 +1,4 @@ +{ + "*.{js,ts}": "yarn lint:fix", + "*.mdx?": "yarn lint:fix" +} diff --git a/.npmignore b/.npmignore index ba968dd8..5b2b93e1 100644 --- a/.npmignore +++ b/.npmignore @@ -1,3 +1,2 @@ * -!/src/**/*.js -!/src/**/*.d.ts +!/dist diff --git a/.prettierrc.cjs b/.prettierrc.cjs deleted file mode 100644 index a440250b..00000000 --- a/.prettierrc.cjs +++ /dev/null @@ -1,3 +0,0 @@ -const config = require('@react-hookz/eslint-config/.prettierrc.cjs'); - -module.exports = config; diff --git a/.releaserc.json b/.releaserc.json new file mode 100644 index 00000000..f2e20bdd --- /dev/null +++ b/.releaserc.json @@ -0,0 +1,17 @@ +{ + "branches": [ + "master" + ], + "plugins": [ + [ + "@semantic-release/exec", + { + "prepareCmd": "yarn pinst --disable" + } + ], + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + "@semantic-release/npm", + "@semantic-release/github" + ] +} diff --git a/commitlint.config.cjs b/commitlint.config.cjs deleted file mode 100644 index 9ca4e70c..00000000 --- a/commitlint.config.cjs +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - extends: ['@commitlint/config-conventional'], - rules: { - 'footer-max-line-length': [1, 'always', 100], - }, -}; diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..e87ea8cf --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,20 @@ +import baseConfig from '@react-hookz/eslint-config/base.js'; +import mdConfig from '@react-hookz/eslint-config/md.js'; +import reactConfig from '@react-hookz/eslint-config/react.js'; +import typescriptConfig from '@react-hookz/eslint-config/typescript.js'; +import vitestConfig from '@react-hookz/eslint-config/vitest.js'; + +/** @typedef {import('eslint').Linter} Linter */ +/** @type {Linter.Config[]} */ +const config = [ + { + ignores: ['.idea', 'node_modules', 'dist', 'coverage', 'CHANGELOG.md'], + }, + ...baseConfig, + ...reactConfig, + ...mdConfig, + ...typescriptConfig, + ...vitestConfig, +]; + +export default config; diff --git a/jest.config.ts b/jest.config.ts deleted file mode 100644 index 0d2f0454..00000000 --- a/jest.config.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { type Config } from 'jest'; - -// eslint-disable-next-line @typescript-eslint/naming-convention -export const __esModule = true; - -const moduleNameMapper: Config['moduleNameMapper'] = { - '^((?:\\.{1,2}|#[^\\/]*)/.*)\\.[tj]sx?$': '$1', -}; - -const transform: Config['transform'] = { - '^.+\\.[tj]sx?$': ['@swc/jest', { module: { type: 'commonjs' } }], -}; - -export default { - extensionsToTreatAsEsm: ['.ts'], - testEnvironment: 'node', - projects: [ - { - displayName: 'dom', - moduleNameMapper, - transform, - testEnvironment: 'jsdom', - testMatch: ['/src/**/__tests__/dom.[jt]s?(x)'], - setupFiles: ['./src/__tests__/setup.ts'], - }, - - { - displayName: 'ssr', - moduleNameMapper, - transform, - testEnvironment: 'node', - testMatch: ['/src/**/__tests__/ssr.[jt]s?(x)'], - }, - ], - collectCoverage: false, - coverageDirectory: './coverage', - collectCoverageFrom: ['./src/**/*.{ts,js,tsx,jsx}', '!**/__tests__/**', '!**/__docs__/**'], -} satisfies Config; diff --git a/package.json b/package.json index 962a525d..2e2d6b48 100644 --- a/package.json +++ b/package.json @@ -21,14 +21,17 @@ "access": "public" }, "type": "module", - "main": "./src/index.js", - "types": "./src/index.d.ts", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "sideEffects": false, "exports": { - ".": "./src/index.js", - "./*/": "./src/*/index.js", - "./*": "./src/*" + ".": "./dist/index.js", + "./*/": "./dist/*/index.js", + "./*": "./dist/*" }, + "files": [ + "./dist" + ], "engines": { "node": ">=18.0.0" }, @@ -36,32 +39,12 @@ "postinstall": "husky", "prepack": "pinst --disable", "postpack": "pinst --enable", - "commit": "git-cz", - "build": "yarn build:clean && tsc --version && tsc", - "build:clean": "yarn rimraf -g ./src/**/*.js ./src/**/*.d.ts", - "new-hook": "node ./utility/add-new-hook.js", + "build": "yarn build:clean && tsc --version && tsc --project ./tsconfig.build.json", + "build:clean": "yarn rimraf ./dist", "test": "jest --selectProjects dom ssr", "test:coverage": "yarn test --coverage", - "lint": "eslint .", - "lint:fix": "yarn lint --fix --fix-type problem,suggestion,layout" - }, - "config": { - "commitizen": { - "path": "@commitlint/cz-commitlint" - } - }, - "lint-staged": { - "*.{js,jsx,ts,tsx,md,mdx}": "eslint --fix" - }, - "release": { - "plugins": [ - "@semantic-release/commit-analyzer", - "@semantic-release/release-notes-generator", - "@semantic-release/changelog", - "@semantic-release/npm", - "@semantic-release/git", - "@semantic-release/github" - ] + "lint": "eslint", + "lint:fix": "yarn lint --fix" }, "dependencies": { "@react-hookz/deep-equal": "^3.0.1" @@ -77,42 +60,27 @@ } }, "devDependencies": { - "@babel/core": "^7.23.9", "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", - "@commitlint/cz-commitlint": "^19.5.0", - "@jamesacarr/jest-reporter-github-actions": "^0.0.4", - "@react-hookz/eslint-config": "^2.1.5", + "@react-hookz/eslint-config": "^4.1.6", "@react-hookz/eslint-formatter-gha": "^3.0.2", - "@semantic-release/changelog": "^6.0.3", - "@semantic-release/git": "^10.0.1", - "@semantic-release/github": "^11.0.0", - "@swc/core": "^1.4.2", - "@swc/jest": "^0.2.36", + "@semantic-release/exec": "^6.0.3", "@testing-library/react-hooks": "^8.0.1", - "@types/jest": "^29.5.12", "@types/js-cookie": "^3.0.6", "@types/react": "^18.2.52", "@types/react-dom": "^18.2.6", - "babel-loader": "^9.1.3", - "commitizen": "^4.3.0", "commitlint": "^19.5.0", - "concurrently": "^9.0.1", - "eslint": "^8.57.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint": "^9.17.0", "husky": "^9.1.7", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", "js-cookie": "^3.0.5", "lint-staged": "^15.2.2", - "prettier": "^3.2.5", + "pinst": "^3.0.0", "react": "^17.0.2", "react-dom": "^17.0.2", - "rimraf": "^5.0.5", - "semantic-release": "^23.0.2", - "ts-jest": "^29.1.2", - "ts-node": "^10.9.2", - "typescript": "^5.3.3" + "rimraf": "^6.0.1", + "semantic-release": "^24.2.0", + "typescript": "^5.3.3", + "vitest": "^2.1.8" }, "packageManager": "yarn@4.5.3" } diff --git a/src/__tests__/setup.ts b/src/__tests__/setup.ts index bfd3fff2..67891e49 100644 --- a/src/__tests__/setup.ts +++ b/src/__tests__/setup.ts @@ -2,6 +2,6 @@ * Here goes any setup code that should be performed before actual tests and/or code imports. */ -import { setupNavigatorVibrate } from './navigator.vibrate.js'; +import {setupNavigatorVibrate} from './navigator.vibrate.js'; setupNavigatorVibrate(); diff --git a/src/useAsync/__docs__/example.stories.tsx b/src/useAsync/__docs__/example.stories.tsx index 6c36f766..376098cd 100644 --- a/src/useAsync/__docs__/example.stories.tsx +++ b/src/useAsync/__docs__/example.stories.tsx @@ -1,15 +1,15 @@ import * as React from 'react'; -import { useAsync, useMountEffect } from '../../index.js'; +import {useAsync, useMountEffect} from '../../index.js'; export function Example() { const [state, actions] = useAsync( () => - new Promise((resolve) => { + new Promise() < string > ((resolve) => { setTimeout(() => { resolve('react-hookz is awesome!'); }, 3000); }), - 'react-hookz is' + 'react-hookz is', ); useMountEffect(actions.execute); @@ -25,16 +25,17 @@ export function Example() {
{' '} + + {' '} {' '} + + {' '} {' '} + + {' '} {' '} + + {' '} diff --git a/src/useControlledRerenderState/__docs__/example.stories.tsx b/src/useControlledRerenderState/__docs__/example.stories.tsx index 2ba82311..a524961a 100644 --- a/src/useControlledRerenderState/__docs__/example.stories.tsx +++ b/src/useControlledRerenderState/__docs__/example.stories.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { useControlledRerenderState, useToggle } from '../../index.js'; +import {useControlledRerenderState, useToggle} from '../../index.js'; export function Example() { const [state, setState] = useControlledRerenderState(0); @@ -10,14 +10,15 @@ export function Example() {
State: {state}

{' '} + + {' '}

diff --git a/src/useCookieValue/__tests__/ssr.ts b/src/useCookieValue/__tests__/ssr.ts index 918aa80d..89c8cf50 100644 --- a/src/useCookieValue/__tests__/ssr.ts +++ b/src/useCookieValue/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useCookieValue } from '../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useCookieValue} from '../index.js'; describe('useCookieValue', () => { it('should be defined', () => { @@ -7,12 +7,12 @@ describe('useCookieValue', () => { }); it('should render', () => { - const { result } = renderHook(() => useCookieValue('react-hookz')); + const {result} = renderHook(() => useCookieValue('react-hookz')); expect(result.error).toBeUndefined(); }); it('should return undefined', () => { - const { result } = renderHook(() => useCookieValue('react-hookz')); + const {result} = renderHook(() => useCookieValue('react-hookz')); expect(result.current[0]).toBeUndefined(); }); }); diff --git a/src/useCounter/__docs__/example.stories.tsx b/src/useCounter/__docs__/example.stories.tsx index 4b22a9a0..e9ae4f26 100644 --- a/src/useCounter/__docs__/example.stories.tsx +++ b/src/useCounter/__docs__/example.stories.tsx @@ -1,9 +1,9 @@ -import { useCounter } from '../../index.js'; +import {useCounter} from '../../index.js'; export function Example() { - const [min, { inc: incMin, dec: decMin }] = useCounter(1); - const [max, { inc: incMax, dec: decMax }] = useCounter(10); - const [value, { inc, dec, set, reset }] = useCounter(5, max, min); + const [min, {inc: incMin, dec: decMin}] = useCounter(1); + const [max, {inc: incMax, dec: decMax}] = useCounter(10); + const [value, {inc, dec, set, reset}] = useCounter(5, max, min); return (
@@ -13,49 +13,49 @@ export function Example() {
Current value:
); } diff --git a/src/useDebouncedEffect/__tests__/dom.ts b/src/useDebouncedEffect/__tests__/dom.ts index d6ad28e0..6f4f6e81 100644 --- a/src/useDebouncedEffect/__tests__/dom.ts +++ b/src/useDebouncedEffect/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useDebouncedEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {useDebouncedEffect} from '../../index.js'; describe('useDebouncedEffect', () => { beforeAll(() => { @@ -19,7 +19,7 @@ describe('useDebouncedEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useDebouncedEffect(() => {}, [], 200); }); expect(result.error).toBeUndefined(); diff --git a/src/useDebouncedEffect/__tests__/ssr.ts b/src/useDebouncedEffect/__tests__/ssr.ts index 3b7e8372..c11536a0 100644 --- a/src/useDebouncedEffect/__tests__/ssr.ts +++ b/src/useDebouncedEffect/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useDebouncedEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useDebouncedEffect} from '../../index.js'; describe('useDebouncedEffect', () => { beforeAll(() => { @@ -19,7 +19,7 @@ describe('useDebouncedEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useDebouncedEffect(() => {}, [], 200); }); expect(result.error).toBeUndefined(); diff --git a/src/useDebouncedState/__docs__/example.stories.tsx b/src/useDebouncedState/__docs__/example.stories.tsx index a89570fb..2d641570 100644 --- a/src/useDebouncedState/__docs__/example.stories.tsx +++ b/src/useDebouncedState/__docs__/example.stories.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { useDebouncedState } from '../../index.js'; +import {useDebouncedState} from '../../index.js'; export function Example() { const [state, setState] = useDebouncedState('', 300, 500); @@ -10,11 +10,10 @@ export function Example() {
The input`s value is: {state}
{ setState(ev.target.value); - }} - /> + }} /> ); } diff --git a/src/useDebouncedState/__tests__/dom.ts b/src/useDebouncedState/__tests__/dom.ts index 1ec2d181..5a8e3423 100644 --- a/src/useDebouncedState/__tests__/dom.ts +++ b/src/useDebouncedState/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useDebouncedState } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {useDebouncedState} from '../../index.js'; describe('useDebouncedState', () => { beforeAll(() => { @@ -19,12 +19,12 @@ describe('useDebouncedState', () => { }); it('should render', () => { - const { result } = renderHook(() => useDebouncedState(undefined, 200)); + const {result} = renderHook(() => useDebouncedState(undefined, 200)); expect(result.error).toBeUndefined(); }); it('should debounce state set', () => { - const { result } = renderHook(() => useDebouncedState(undefined, 200)); + const {result} = renderHook(() => useDebouncedState < string | undefined > (undefined, 200)); expect(result.current[0]).toBe(undefined); result.current[1]('Hello world!'); diff --git a/src/useDebouncedState/__tests__/ssr.ts b/src/useDebouncedState/__tests__/ssr.ts index 7b9b4749..a82a246f 100644 --- a/src/useDebouncedState/__tests__/ssr.ts +++ b/src/useDebouncedState/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useDebouncedState } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useDebouncedState} from '../../index.js'; describe('useDebouncedState', () => { beforeAll(() => { @@ -19,7 +19,7 @@ describe('useDebouncedState', () => { }); it('should render', () => { - const { result } = renderHook(() => useDebouncedState(undefined, 200)); + const {result} = renderHook(() => useDebouncedState(undefined, 200)); expect(result.error).toBeUndefined(); }); }); diff --git a/src/useDeepCompareEffect/__docs__/example.stories.tsx b/src/useDeepCompareEffect/__docs__/example.stories.tsx index b3d657ad..bde0ffea 100644 --- a/src/useDeepCompareEffect/__docs__/example.stories.tsx +++ b/src/useDeepCompareEffect/__docs__/example.stories.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import { useEffect } from 'react'; -import { useDeepCompareEffect, useRerender } from '../../index.js'; +import {useEffect} from 'react'; +import {useDeepCompareEffect, useRerender} from '../../index.js'; export function Example() { const rerender = useRerender(); @@ -26,7 +26,7 @@ export function Example() { useDeepCompareEffect does not. This is because useDeepCompareEffect determines dependency changes by deep comparison instead of by reference like useEffect.

- diff --git a/src/useDeepCompareEffect/__tests__/dom.ts b/src/useDeepCompareEffect/__tests__/dom.ts index faff4811..fec2c5fd 100644 --- a/src/useDeepCompareEffect/__tests__/dom.ts +++ b/src/useDeepCompareEffect/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useDeepCompareEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {useDeepCompareEffect} from '../../index.js'; describe('useDeepCompareEffect', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useDeepCompareEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useDeepCompareEffect(() => {}, []); }); expect(result.error).toBeUndefined(); @@ -15,24 +15,24 @@ describe('useDeepCompareEffect', () => { it('should run only in case deps are changed', () => { const spy = jest.fn(); - const { rerender } = renderHook( - ({ deps }) => { + const {rerender} = renderHook( + ({deps}) => { useDeepCompareEffect(spy, deps); }, { - initialProps: { deps: [{ foo: 'bar' }] }, - } + initialProps: {deps: [{foo: 'bar'}]}, + }, ); expect(spy).toHaveBeenCalledTimes(1); - rerender({ deps: [{ foo: 'bar' }] }); + rerender({deps: [{foo: 'bar'}]}); expect(spy).toHaveBeenCalledTimes(1); - rerender({ deps: [{ foo: 'baz' }] }); + rerender({deps: [{foo: 'baz'}]}); expect(spy).toHaveBeenCalledTimes(2); - rerender({ deps: [{ foo: 'baz' }] }); + rerender({deps: [{foo: 'baz'}]}); expect(spy).toHaveBeenCalledTimes(2); }); }); diff --git a/src/useDeepCompareEffect/__tests__/ssr.ts b/src/useDeepCompareEffect/__tests__/ssr.ts index 8372431a..d3410b21 100644 --- a/src/useDeepCompareEffect/__tests__/ssr.ts +++ b/src/useDeepCompareEffect/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useDeepCompareEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useDeepCompareEffect} from '../../index.js'; describe('useDeepCompareEffect', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useDeepCompareEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useDeepCompareEffect(() => {}, []); }); expect(result.error).toBeUndefined(); diff --git a/src/useDeepCompareMemo/__docs__/example.stories.tsx b/src/useDeepCompareMemo/__docs__/example.stories.tsx index b54bf8f5..3d3292c8 100644 --- a/src/useDeepCompareMemo/__docs__/example.stories.tsx +++ b/src/useDeepCompareMemo/__docs__/example.stories.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; -import { useMemo } from 'react'; -import { useRerender, useDeepCompareMemo } from '../../index.js'; +import {useMemo} from 'react'; +import {useRerender, useDeepCompareMemo} from '../../index.js'; export function Example() { - const newOnEveryRender = { value: 'Foo' }; + const newOnEveryRender = {value: 'Foo'}; // eslint-disable-next-line react-hooks/exhaustive-deps const unstable = useMemo(() => Math.floor(Math.random() * 10), [newOnEveryRender]); @@ -12,9 +12,9 @@ export function Example() { const rerender = useRerender(); return ( <> -
+

When you click this button:

-

, you notice, that the useDeepCompareMemo value does not change at all,

diff --git a/src/useDeepCompareMemo/__tests__/dom.ts b/src/useDeepCompareMemo/__tests__/dom.ts index d63a2cad..a2664fb7 100644 --- a/src/useDeepCompareMemo/__tests__/dom.ts +++ b/src/useDeepCompareMemo/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useDeepCompareMemo } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {useDeepCompareMemo} from '../../index.js'; describe('useDeepCompareMemo', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useDeepCompareMemo', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useDeepCompareMemo(() => {}, []); }); expect(result.error).toBeUndefined(); @@ -16,19 +16,19 @@ describe('useDeepCompareMemo', () => { it('should run only if dependencies change, defined by deep comparison', () => { const spy = jest.fn(); // eslint-disable-next-line @typescript-eslint/no-unsafe-return - const { rerender } = renderHook(({ deps }) => useDeepCompareMemo(spy, deps), { - initialProps: { deps: [{ foo: 'bar' }] }, + const {rerender} = renderHook(({deps}) => useDeepCompareMemo(spy, deps), { + initialProps: {deps: [{foo: 'bar'}]}, }); expect(spy).toHaveBeenCalledTimes(1); - rerender({ deps: [{ foo: 'bar' }] }); + rerender({deps: [{foo: 'bar'}]}); expect(spy).toHaveBeenCalledTimes(1); - rerender({ deps: [{ foo: 'baz' }] }); + rerender({deps: [{foo: 'baz'}]}); expect(spy).toHaveBeenCalledTimes(2); - rerender({ deps: [{ foo: 'baz' }] }); + rerender({deps: [{foo: 'baz'}]}); expect(spy).toHaveBeenCalledTimes(2); }); }); diff --git a/src/useDeepCompareMemo/__tests__/ssr.ts b/src/useDeepCompareMemo/__tests__/ssr.ts index 7f59df23..1ee6fa44 100644 --- a/src/useDeepCompareMemo/__tests__/ssr.ts +++ b/src/useDeepCompareMemo/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useDeepCompareMemo } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useDeepCompareMemo} from '../../index.js'; describe('useDeepCompareMemo', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useDeepCompareMemo', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useDeepCompareMemo(() => {}, []); }); expect(result.error).toBeUndefined(); diff --git a/src/useDocumentVisibility/__docs__/example.stories.tsx b/src/useDocumentVisibility/__docs__/example.stories.tsx index fb7e6ffd..7c9bd50f 100644 --- a/src/useDocumentVisibility/__docs__/example.stories.tsx +++ b/src/useDocumentVisibility/__docs__/example.stories.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import { useEffect } from 'react'; -import { useDocumentVisibility } from '../../index.js'; +import {useEffect} from 'react'; +import {useDocumentVisibility} from '../../index.js'; export function Example() { const isVisible = useDocumentVisibility(); @@ -15,7 +15,9 @@ export function Example() { return (

- The document is {isVisible ? 'visible' : 'hidden'} + The document is + {' '} + {isVisible ? 'visible' : 'hidden'}

); diff --git a/src/useDocumentVisibility/__tests__/dom.ts b/src/useDocumentVisibility/__tests__/dom.ts index 40370cf3..a63a6427 100644 --- a/src/useDocumentVisibility/__tests__/dom.ts +++ b/src/useDocumentVisibility/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useDocumentVisibility } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {useDocumentVisibility} from '../../index.js'; describe('useDocumentVisibility', () => { it('should be defined', () => { @@ -27,7 +27,7 @@ describe('useDocumentVisibility', () => { }); { - const { result } = renderHook(() => useDocumentVisibility(false)); + const {result} = renderHook(() => useDocumentVisibility(false)); expect(result.current).toBe(false); expect(result.all[0]).toBe(undefined); @@ -39,7 +39,7 @@ describe('useDocumentVisibility', () => { }); { - const { result } = renderHook(() => useDocumentVisibility(false)); + const {result} = renderHook(() => useDocumentVisibility(false)); expect(result.current).toBe(true); expect(result.all[0]).toBe(undefined); @@ -52,7 +52,7 @@ describe('useDocumentVisibility', () => { value: 'hidden', }); - const { result } = renderHook(() => useDocumentVisibility()); + const {result} = renderHook(() => useDocumentVisibility()); expect(result.current).toBe(false); diff --git a/src/useDocumentVisibility/__tests__/ssr.ts b/src/useDocumentVisibility/__tests__/ssr.ts index fe1a417b..ad21aa61 100644 --- a/src/useDocumentVisibility/__tests__/ssr.ts +++ b/src/useDocumentVisibility/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useDocumentVisibility } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useDocumentVisibility} from '../../index.js'; describe('useDocumentVisibility', () => { it('should be defined', () => { diff --git a/src/useEventListener/__tests__/ssr.ts b/src/useEventListener/__tests__/ssr.ts index d3b5f65e..d54818b0 100644 --- a/src/useEventListener/__tests__/ssr.ts +++ b/src/useEventListener/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useEventListener } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useEventListener} from '../../index.js'; describe('useEventListener', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useEventListener', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useEventListener(null, 'random name', () => {}); }); expect(result.error).toBeUndefined(); diff --git a/src/useFirstMountState/__docs__/example.stories.tsx b/src/useFirstMountState/__docs__/example.stories.tsx index bb00f3d0..ea0dcedc 100644 --- a/src/useFirstMountState/__docs__/example.stories.tsx +++ b/src/useFirstMountState/__docs__/example.stories.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { useFirstMountState, useRerender } from '../../index.js'; +import {useFirstMountState, useRerender} from '../../index.js'; export function Example() { const isFirstMount = useFirstMountState(); @@ -9,7 +9,7 @@ export function Example() {
{isFirstMount ? 'This is the first render.' : 'This is not the first render.'}
{' '} + + {' '} {isToggled && }
); diff --git a/src/useIsMounted/__tests__/dom.ts b/src/useIsMounted/__tests__/dom.ts index 5550dd32..ba864713 100644 --- a/src/useIsMounted/__tests__/dom.ts +++ b/src/useIsMounted/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useIsMounted } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {useIsMounted} from '../../index.js'; describe('useIsMounted', () => { it('should be defined', () => { @@ -7,13 +7,13 @@ describe('useIsMounted', () => { }); it('should return a function', () => { - const { result } = renderHook(() => useIsMounted()); + const {result} = renderHook(() => useIsMounted()); expect(result.current).toBeInstanceOf(Function); }); it('should return false within first render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { const isMounted = useIsMounted(); return isMounted(); }); @@ -22,13 +22,13 @@ describe('useIsMounted', () => { }); it('should return true after mount', () => { - const { result } = renderHook(() => useIsMounted()); + const {result} = renderHook(() => useIsMounted()); expect(result.current()).toBe(true); }); it('should return same function on each render', () => { - const { result, rerender } = renderHook(() => useIsMounted()); + const {result, rerender} = renderHook(() => useIsMounted()); const fn1 = result.current; rerender(); @@ -41,7 +41,7 @@ describe('useIsMounted', () => { }); it('should return false after component unmount', () => { - const { result, unmount } = renderHook(() => useIsMounted()); + const {result, unmount} = renderHook(() => useIsMounted()); expect(result.current()).toBe(true); diff --git a/src/useIsMounted/__tests__/ssr.ts b/src/useIsMounted/__tests__/ssr.ts index 52ed209f..c37eb62c 100644 --- a/src/useIsMounted/__tests__/ssr.ts +++ b/src/useIsMounted/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useIsMounted } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useIsMounted} from '../../index.js'; describe('useIsMounted', () => { it('should be defined', () => { @@ -7,13 +7,13 @@ describe('useIsMounted', () => { }); it('should return a function', () => { - const { result } = renderHook(() => useIsMounted()); + const {result} = renderHook(() => useIsMounted()); expect(result.current).toBeInstanceOf(Function); }); it('should return false within first render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { const isMounted = useIsMounted(); return isMounted(); }); @@ -22,7 +22,7 @@ describe('useIsMounted', () => { }); it('should return false after mount', () => { - const { result } = renderHook(() => useIsMounted()); + const {result} = renderHook(() => useIsMounted()); expect(result.current()).toBe(false); }); diff --git a/src/useIsomorphicLayoutEffect/__tests__/dom.ts b/src/useIsomorphicLayoutEffect/__tests__/dom.ts index db334dc3..a9a500b8 100644 --- a/src/useIsomorphicLayoutEffect/__tests__/dom.ts +++ b/src/useIsomorphicLayoutEffect/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { useLayoutEffect } from 'react'; -import { useIsomorphicLayoutEffect } from '../../index.js'; +import {useLayoutEffect} from 'react'; +import {useIsomorphicLayoutEffect} from '../../index.js'; describe('useIsomorphicLayoutEffect', () => { it('should be defined', () => { diff --git a/src/useIsomorphicLayoutEffect/__tests__/ssr.ts b/src/useIsomorphicLayoutEffect/__tests__/ssr.ts index 04bf787a..bd59884a 100644 --- a/src/useIsomorphicLayoutEffect/__tests__/ssr.ts +++ b/src/useIsomorphicLayoutEffect/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { useEffect } from 'react'; -import { useIsomorphicLayoutEffect } from '../../index.js'; +import {useEffect} from 'react'; +import {useIsomorphicLayoutEffect} from '../../index.js'; describe('useIsomorphicLayoutEffect', () => { it('should be defined', () => { diff --git a/src/useIsomorphicLayoutEffect/index.ts b/src/useIsomorphicLayoutEffect/index.ts index 1adc019a..fa7a2201 100644 --- a/src/useIsomorphicLayoutEffect/index.ts +++ b/src/useIsomorphicLayoutEffect/index.ts @@ -1,5 +1,5 @@ -import { useEffect, useLayoutEffect } from 'react'; -import { isBrowser } from '../util/const.js'; +import {useEffect, useLayoutEffect} from 'react'; +import {isBrowser} from '../util/const.js'; /** * Alias for `useLayoutEffect` in browser, but for `useEffect` at server side. Helps to avoid diff --git a/src/useKeyboardEvent/__tests__/ssr.ts b/src/useKeyboardEvent/__tests__/ssr.ts index 1b1a3b7c..36acacbf 100644 --- a/src/useKeyboardEvent/__tests__/ssr.ts +++ b/src/useKeyboardEvent/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useKeyboardEvent } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useKeyboardEvent} from '../../index.js'; describe('useKeyboardEvent', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useKeyboardEvent', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useKeyboardEvent('a', () => {}); }); expect(result.error).toBeUndefined(); diff --git a/src/useLifecycleLogger/__docs__/example.stories.tsx b/src/useLifecycleLogger/__docs__/example.stories.tsx index 92eee286..b044add4 100644 --- a/src/useLifecycleLogger/__docs__/example.stories.tsx +++ b/src/useLifecycleLogger/__docs__/example.stories.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { useRerender, useLifecycleLogger } from '../../index.js'; +import {useRerender, useLifecycleLogger} from '../../index.js'; export function Example() { const rerender = useRerender(); @@ -10,7 +10,7 @@ export function Example() {
Check your console for useLifecycleLogger logs
); diff --git a/src/useMediaQuery/__tests__/ssr.ts b/src/useMediaQuery/__tests__/ssr.ts index 4651fb07..ca912c08 100644 --- a/src/useMediaQuery/__tests__/ssr.ts +++ b/src/useMediaQuery/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useMediaQuery } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useMediaQuery} from '../../index.js'; describe('useMediaQuery', () => { it('should be defined', () => { @@ -7,16 +7,14 @@ describe('useMediaQuery', () => { }); it('should render', () => { - const { result } = renderHook(() => - useMediaQuery('max-width : 768px', { initializeWithValue: false }) - ); + const {result} = renderHook(() => + useMediaQuery('max-width : 768px', {initializeWithValue: false})); expect(result.error).toBeUndefined(); }); it('should return undefined on first render, if initializeWithValue is set to false', () => { - const { result } = renderHook(() => - useMediaQuery('max-width : 768px', { initializeWithValue: false }) - ); + const {result} = renderHook(() => + useMediaQuery('max-width : 768px', {initializeWithValue: false})); expect(result.current).toBeUndefined(); }); }); diff --git a/src/useMountEffect/__docs__/example.stories.tsx b/src/useMountEffect/__docs__/example.stories.tsx index db750b7b..87e7fa5b 100644 --- a/src/useMountEffect/__docs__/example.stories.tsx +++ b/src/useMountEffect/__docs__/example.stories.tsx @@ -1,20 +1,20 @@ import * as React from 'react'; -import { useState } from 'react'; -import { useRerender, useMountEffect } from '../../index.js'; +import {useState} from 'react'; +import {useRerender, useMountEffect} from '../../index.js'; export function Example() { const [count, setCount] = useState(0); const rerender = useRerender(); useMountEffect(() => { - setCount((i) => i + 1); + setCount(i => i + 1); }); return (
useMountEffect has run {count} time(s)
-
-
diff --git a/src/usePrevious/__tests__/dom.ts b/src/usePrevious/__tests__/dom.ts index d5487b9d..aab84207 100644 --- a/src/usePrevious/__tests__/dom.ts +++ b/src/usePrevious/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { usePrevious } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {usePrevious} from '../../index.js'; describe('usePrevious', () => { it('should be defined', () => { @@ -7,35 +7,35 @@ describe('usePrevious', () => { }); it('should render', () => { - const { result } = renderHook(() => usePrevious()); + const {result} = renderHook(() => usePrevious()); expect(result.error).toBeUndefined(); }); it('should return undefined on first render', () => { - const { result } = renderHook(() => usePrevious()); + const {result} = renderHook(() => usePrevious()); expect(result.current).toBeUndefined(); }); it('should return previously passed value on rerender', () => { - const { result, rerender } = renderHook(({ state }) => usePrevious(state), { - initialProps: { state: 0 }, + const {result, rerender} = renderHook(({state}) => usePrevious(state), { + initialProps: {state: 0}, }); expect(result.current).toBeUndefined(); - rerender({ state: 1 }); + rerender({state: 1}); expect(result.current).toBe(0); - rerender({ state: 5 }); + rerender({state: 5}); expect(result.current).toBe(1); - rerender({ state: 10 }); + rerender({state: 10}); expect(result.current).toBe(5); - rerender({ state: 25 }); + rerender({state: 25}); expect(result.current).toBe(10); }); it('should return passed value after unrelated rerender', () => { - const { result, rerender } = renderHook(({ state }) => usePrevious(state), { - initialProps: { state: 0 }, + const {result, rerender} = renderHook(({state}) => usePrevious(state), { + initialProps: {state: 0}, }); expect(result.current).toBeUndefined(); diff --git a/src/usePrevious/__tests__/ssr.ts b/src/usePrevious/__tests__/ssr.ts index ca5f3c9e..4f06d65d 100644 --- a/src/usePrevious/__tests__/ssr.ts +++ b/src/usePrevious/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { usePrevious } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {usePrevious} from '../../index.js'; describe('usePrevious', () => { it('should be defined', () => { @@ -7,12 +7,12 @@ describe('usePrevious', () => { }); it('should render', () => { - const { result } = renderHook(() => usePrevious()); + const {result} = renderHook(() => usePrevious()); expect(result.error).toBeUndefined(); }); it('should return undefined on first render', () => { - const { result } = renderHook(() => usePrevious()); + const {result} = renderHook(() => usePrevious()); expect(result.current).toBeUndefined(); }); diff --git a/src/usePreviousDistinct/__docs__/example.stories.tsx b/src/usePreviousDistinct/__docs__/example.stories.tsx index dad5890d..177eec68 100644 --- a/src/usePreviousDistinct/__docs__/example.stories.tsx +++ b/src/usePreviousDistinct/__docs__/example.stories.tsx @@ -1,5 +1,5 @@ -import { useState } from 'react'; -import { usePreviousDistinct } from '../../index.js'; +import {useState} from 'react'; +import {usePreviousDistinct} from '../../index.js'; export function Example() { const [value, setValue] = useState(0); @@ -7,32 +7,32 @@ export function Example() { const previousDistinctValue = usePreviousDistinct(value); const increment = () => { - setValue((v) => v + 1); + setValue(v => v + 1); }; const decrement = () => { - setValue((v) => v - 1); + setValue(v => v - 1); }; const triggerUnrelatedRerender = () => { - setUnrelatedValue((v) => v + 1); + setUnrelatedValue(v => v + 1); }; return (
Current value: {value} -
-
- -
-
diff --git a/src/usePreviousDistinct/__tests__/ssr.ts b/src/usePreviousDistinct/__tests__/ssr.ts index 216dd230..5e7f19b0 100644 --- a/src/usePreviousDistinct/__tests__/ssr.ts +++ b/src/usePreviousDistinct/__tests__/ssr.ts @@ -1,6 +1,6 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { usePreviousDistinct } from '../../index.js'; -import { isStrictEqual } from '../../util/const.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {usePreviousDistinct} from '../../index.js'; +import {isStrictEqual} from '../../util/const.js'; describe('usePreviousDistinct', () => { it('should be defined', () => { @@ -8,18 +8,18 @@ describe('usePreviousDistinct', () => { }); it('should render', () => { - const { result } = renderHook(() => usePreviousDistinct(0)); + const {result} = renderHook(() => usePreviousDistinct(0)); expect(result.error).toBeUndefined(); }); it('should return undefined on first render', () => { - const { result } = renderHook(() => usePreviousDistinct(0)); + const {result} = renderHook(() => usePreviousDistinct(0)); expect(result.current).toBeUndefined(); }); it('should return undefined on first render with compare function passed', () => { - const { result } = renderHook(() => usePreviousDistinct(0, isStrictEqual)); + const {result} = renderHook(() => usePreviousDistinct(0, isStrictEqual)); expect(result.current).toBeUndefined(); }); diff --git a/src/useQueue/__docs__/example.stories.tsx b/src/useQueue/__docs__/example.stories.tsx index 8e89af82..2de396f4 100644 --- a/src/useQueue/__docs__/example.stories.tsx +++ b/src/useQueue/__docs__/example.stories.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; -import { useQueue } from '../../index.js'; +import {useQueue} from '../../index.js'; export function Example() { - const { add, remove, first, last, size, items } = useQueue([1, 2, 3]); + const {add, remove, first, last, size, items} = useQueue < number > ([1, 2, 3]); return (
@@ -12,13 +12,13 @@ export function Example() {
  • size: {size}
  • -

    All Items

    diff --git a/src/useQueue/__tests__/dom.ts b/src/useQueue/__tests__/dom.ts index d49a7518..1c9a9807 100644 --- a/src/useQueue/__tests__/dom.ts +++ b/src/useQueue/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useQueue } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {useQueue} from '../../index.js'; describe('useQueue', () => { it('should be defined', () => { @@ -7,17 +7,17 @@ describe('useQueue', () => { }); it('should render', () => { - const { result } = renderHook(() => useQueue()); + const {result} = renderHook(() => useQueue()); expect(result.error).toBeUndefined(); }); it('should accept an initial value', () => { - const { result } = renderHook(() => useQueue([0, 1, 2, 3])); + const {result} = renderHook(() => useQueue([0, 1, 2, 3])); expect(result.current.items).toStrictEqual([0, 1, 2, 3]); }); it('should remove the first value', () => { - const { result } = renderHook(() => useQueue([0, 1, 2, 3])); + const {result} = renderHook(() => useQueue([0, 1, 2, 3])); act(() => { const removed = result.current.remove(); @@ -28,12 +28,12 @@ describe('useQueue', () => { }); it('should return the length', () => { - const { result } = renderHook(() => useQueue([0, 1, 2, 3])); + const {result} = renderHook(() => useQueue([0, 1, 2, 3])); expect(result.current.size).toBe(4); }); it('should add a value to the end', () => { - const { result } = renderHook(() => useQueue([0, 1, 2, 3])); + const {result} = renderHook(() => useQueue([0, 1, 2, 3])); act(() => { result.current.add(4); @@ -43,7 +43,7 @@ describe('useQueue', () => { }); it('should return referentially stable functions', () => { - const { result } = renderHook(() => useQueue([0, 1, 2, 3])); + const {result} = renderHook(() => useQueue([0, 1, 2, 3])); const remove1 = result.current.remove; const add1 = result.current.add; diff --git a/src/useQueue/__tests__/ssr.ts b/src/useQueue/__tests__/ssr.ts index 3b9a5294..12a9304f 100644 --- a/src/useQueue/__tests__/ssr.ts +++ b/src/useQueue/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useQueue } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useQueue} from '../../index.js'; describe('useQueue', () => { it('should be defined', () => { @@ -7,12 +7,12 @@ describe('useQueue', () => { }); it('should render', () => { - const { result } = renderHook(() => useQueue()); + const {result} = renderHook(() => useQueue()); expect(result.error).toBeUndefined(); }); it('should return an object', () => { - const { result } = renderHook(() => useQueue()); + const {result} = renderHook(() => useQueue()); expect(result.current).toBeInstanceOf(Object); }); }); diff --git a/src/useRafCallback/__tests__/ssr.ts b/src/useRafCallback/__tests__/ssr.ts index 73c56bc6..b1cf1afc 100644 --- a/src/useRafCallback/__tests__/ssr.ts +++ b/src/useRafCallback/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useRafCallback } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useRafCallback} from '../../index.js'; describe('useRafCallback', () => { it('should be defined', () => { @@ -7,12 +7,12 @@ describe('useRafCallback', () => { }); it('should render', () => { - const { result } = renderHook(() => useRafCallback(() => {})); + const {result} = renderHook(() => useRafCallback(() => {})); expect(result.error).toBeUndefined(); }); it('should return array of functions', () => { - const { result } = renderHook(() => useRafCallback(() => {})); + const {result} = renderHook(() => useRafCallback(() => {})); expect(result.current).toBeInstanceOf(Array); expect(result.current[0]).toBeInstanceOf(Function); @@ -21,7 +21,7 @@ describe('useRafCallback', () => { it('should not do anything on returned functions invocation', () => { const spy = jest.fn(); - const { result } = renderHook(() => useRafCallback(spy)); + const {result} = renderHook(() => useRafCallback(spy)); result.current[0](); result.current[1](); diff --git a/src/useRafEffect/__docs__/example.stories.tsx b/src/useRafEffect/__docs__/example.stories.tsx index 6df8c06a..065e055a 100644 --- a/src/useRafEffect/__docs__/example.stories.tsx +++ b/src/useRafEffect/__docs__/example.stories.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; -import { useRef } from 'react'; -import { useRafEffect } from '../../index.js'; +import {useRef} from 'react'; +import {useRafEffect} from '../../index.js'; export function Example() { - const inputRef = useRef(null); + const inputRef = useRef < HTMLInputElement > (null); useRafEffect(() => { if (inputRef.current) { @@ -15,8 +15,9 @@ export function Example() {
    The focus will be set on the input element below after the first animation frame. This is helpful if your input is, for example, in a portal and you encouter issues interacting with - the DOM before the first animation frame.{' '} - + the DOM before the first animation frame. + {' '} + See this issue . diff --git a/src/useRafEffect/__tests__/dom.ts b/src/useRafEffect/__tests__/dom.ts index 57275cd6..1bd5ac24 100644 --- a/src/useRafEffect/__tests__/dom.ts +++ b/src/useRafEffect/__tests__/dom.ts @@ -1,15 +1,15 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useRafEffect } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {useRafEffect} from '../../index.js'; describe('useRafEffect', () => { - const raf = global.requestAnimationFrame; - const caf = global.cancelAnimationFrame; + const raf = globalThis.requestAnimationFrame; + const caf = globalThis.cancelAnimationFrame; beforeAll(() => { jest.useFakeTimers(); - global.requestAnimationFrame = (cb) => setTimeout(cb); - global.cancelAnimationFrame = (cb) => { + globalThis.requestAnimationFrame = cb => setTimeout(cb); + globalThis.cancelAnimationFrame = (cb) => { clearTimeout(cb); }; }); @@ -21,8 +21,8 @@ describe('useRafEffect', () => { afterAll(() => { jest.useRealTimers(); - global.requestAnimationFrame = raf; - global.cancelAnimationFrame = caf; + globalThis.requestAnimationFrame = raf; + globalThis.cancelAnimationFrame = caf; }); it('should be defined', () => { @@ -30,7 +30,7 @@ describe('useRafEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useRafEffect(() => {}, []); }); expect(result.error).toBeUndefined(); @@ -38,13 +38,13 @@ describe('useRafEffect', () => { it('should not run unless animation frame', () => { const spy = jest.fn(); - const { rerender } = renderHook( + const {rerender} = renderHook( (dep) => { useRafEffect(spy, [dep]); }, { initialProps: 1, - } + }, ); expect(spy).toHaveBeenCalledTimes(0); @@ -62,13 +62,13 @@ describe('useRafEffect', () => { it('should cancel animation frame on unmount', () => { const spy = jest.fn(); - const { rerender, unmount } = renderHook( + const {rerender, unmount} = renderHook( (dep) => { useRafEffect(spy, [dep]); }, { initialProps: 1, - } + }, ); expect(spy).toHaveBeenCalledTimes(0); diff --git a/src/useRafEffect/__tests__/ssr.ts b/src/useRafEffect/__tests__/ssr.ts index a9df39e8..bfba1b1c 100644 --- a/src/useRafEffect/__tests__/ssr.ts +++ b/src/useRafEffect/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useRafEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useRafEffect} from '../../index.js'; describe('useRafEffect', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useRafEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useRafEffect(() => {}, []); }); expect(result.error).toBeUndefined(); diff --git a/src/useRafState/__tests__/ssr.ts b/src/useRafState/__tests__/ssr.ts index d34d53be..86cd8031 100644 --- a/src/useRafState/__tests__/ssr.ts +++ b/src/useRafState/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useRafState } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useRafState} from '../../index.js'; describe('useRafState', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useRafState', () => { }); it('should render', () => { - const { result } = renderHook(() => useRafState()); + const {result} = renderHook(() => useRafState()); expect(result.error).toBeUndefined(); }); }); diff --git a/src/useRenderCount/__docs__/example.stories.tsx b/src/useRenderCount/__docs__/example.stories.tsx index bf5f7b12..d660c72c 100644 --- a/src/useRenderCount/__docs__/example.stories.tsx +++ b/src/useRenderCount/__docs__/example.stories.tsx @@ -1,4 +1,4 @@ -import { useRerender, useRenderCount } from '../../index.js'; +import {useRerender, useRenderCount} from '../../index.js'; export function Example() { const renders = useRenderCount(); @@ -8,7 +8,7 @@ export function Example() {
    This component has rendered {renders} time(s)

    -
    diff --git a/src/useRenderCount/__tests__/dom.ts b/src/useRenderCount/__tests__/dom.ts index e7049082..2ac4eef5 100644 --- a/src/useRenderCount/__tests__/dom.ts +++ b/src/useRenderCount/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks'; -import { useRenderCount } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks'; +import {useRenderCount} from '../../index.js'; describe('useRendersCount', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useRendersCount', () => { }); it('should return amount of renders performed', () => { - const { result, rerender } = renderHook(useRenderCount); + const {result, rerender} = renderHook(useRenderCount); expect(result.current).toBe(1); rerender(); diff --git a/src/useRenderCount/__tests__/ssr.ts b/src/useRenderCount/__tests__/ssr.ts index db6fdb3c..e713e5b2 100644 --- a/src/useRenderCount/__tests__/ssr.ts +++ b/src/useRenderCount/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useRenderCount } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useRenderCount} from '../../index.js'; describe('useRendersCount', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useRendersCount', () => { }); it('should return proper amount of renders performed', () => { - const { result } = renderHook(useRenderCount); + const {result} = renderHook(useRenderCount); expect(result.current).toBe(1); }); diff --git a/src/useRerender/__docs__/example.stories.tsx b/src/useRerender/__docs__/example.stories.tsx index 7a8da994..91874730 100644 --- a/src/useRerender/__docs__/example.stories.tsx +++ b/src/useRerender/__docs__/example.stories.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { useRenderCount, useRerender } from '../../index.js'; +import {useRenderCount, useRerender} from '../../index.js'; export function Example() { const renders = useRenderCount(); @@ -9,7 +9,7 @@ export function Example() {
    This component has rendered {renders} time(s)

    -
    diff --git a/src/useResizeObserver/__tests__/ssr.ts b/src/useResizeObserver/__tests__/ssr.ts index e971cd97..b139aa50 100644 --- a/src/useResizeObserver/__tests__/ssr.ts +++ b/src/useResizeObserver/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useResizeObserver } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useResizeObserver} from '../../index.js'; describe('useResizeObserver', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useResizeObserver', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useResizeObserver(null, () => {}); }); diff --git a/src/useScreenOrientation/__docs__/example.stories.tsx b/src/useScreenOrientation/__docs__/example.stories.tsx index c61ceeae..5ff4dc8e 100644 --- a/src/useScreenOrientation/__docs__/example.stories.tsx +++ b/src/useScreenOrientation/__docs__/example.stories.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { useScreenOrientation } from '../../index.js'; +import {useScreenOrientation} from '../../index.js'; export function Example() { const orientation = useScreenOrientation(); @@ -7,10 +7,14 @@ export function Example() { return (
    - Orientation: {orientation} + Orientation: + {' '} + {orientation}
    - Render time: {new Date().toLocaleString()} + Render time: + {' '} + {new Date().toLocaleString()}
    ); diff --git a/src/useScreenOrientation/__tests__/ssr.ts b/src/useScreenOrientation/__tests__/ssr.ts index 5f1030a4..57f7f7aa 100644 --- a/src/useScreenOrientation/__tests__/ssr.ts +++ b/src/useScreenOrientation/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useScreenOrientation } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useScreenOrientation} from '../../index.js'; describe('useScreenOrientation', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useScreenOrientation', () => { }); it('should render if initializeWithValue option is set to false', () => { - const { result } = renderHook(() => useScreenOrientation({ initializeWithValue: false })); + const {result} = renderHook(() => useScreenOrientation({initializeWithValue: false})); expect(result.error).toBeUndefined(); }); }); diff --git a/src/useSessionStorageValue/__tests__/dom.ts b/src/useSessionStorageValue/__tests__/dom.ts index 240c2d40..ca75e1d6 100644 --- a/src/useSessionStorageValue/__tests__/dom.ts +++ b/src/useSessionStorageValue/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useSessionStorageValue } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {useSessionStorageValue} from '../../index.js'; describe('useSessionStorageValue', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useSessionStorageValue', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useSessionStorageValue('foo'); }); expect(result.error).toBeUndefined(); diff --git a/src/useSessionStorageValue/__tests__/ssr.ts b/src/useSessionStorageValue/__tests__/ssr.ts index 6765a375..c000df88 100644 --- a/src/useSessionStorageValue/__tests__/ssr.ts +++ b/src/useSessionStorageValue/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useSessionStorageValue } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useSessionStorageValue} from '../../index.js'; describe('useSessionStorageValue', () => { it('should be defined', () => { @@ -7,7 +7,7 @@ describe('useSessionStorageValue', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useSessionStorageValue('foo'); }); expect(result.error).toBeUndefined(); diff --git a/src/useSet/__docs__/example.stories.tsx b/src/useSet/__docs__/example.stories.tsx index 2ab92920..1f75518e 100644 --- a/src/useSet/__docs__/example.stories.tsx +++ b/src/useSet/__docs__/example.stories.tsx @@ -1,6 +1,6 @@ /* eslint-disable react/no-unescaped-entities */ import * as React from 'react'; -import { useSet } from '../../index.js'; +import {useSet} from '../../index.js'; export function Example() { const set = useSet(['@react-hooks', 'is awesome']); @@ -8,22 +8,22 @@ export function Example() { return (
    - {' '} + + {' '} renders: {syncedRef.current}
    ); diff --git a/src/useSyncedRef/__tests__/ssr.ts b/src/useSyncedRef/__tests__/ssr.ts index 4b0b9582..3fd337d3 100644 --- a/src/useSyncedRef/__tests__/ssr.ts +++ b/src/useSyncedRef/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useSyncedRef } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useSyncedRef} from '../../index.js'; describe('useSyncedRef', () => { it('should be defined', () => { @@ -7,13 +7,13 @@ describe('useSyncedRef', () => { }); it('should render', () => { - const { result } = renderHook(() => useSyncedRef(1)); + const {result} = renderHook(() => useSyncedRef(1)); expect(result.error).toBeUndefined(); }); it('should return ref object', () => { - const { result } = renderHook(() => useSyncedRef(1)); + const {result} = renderHook(() => useSyncedRef(1)); - expect(result.current).toEqual({ current: 1 }); + expect(result.current).toEqual({current: 1}); }); }); diff --git a/src/useThrottledEffect/__docs__/example.stories.tsx b/src/useThrottledEffect/__docs__/example.stories.tsx index 5545ffce..6a986735 100644 --- a/src/useThrottledEffect/__docs__/example.stories.tsx +++ b/src/useThrottledEffect/__docs__/example.stories.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import { useState } from 'react'; -import { useThrottledEffect } from '../../index.js'; +import {useState} from 'react'; +import {useThrottledEffect} from '../../index.js'; const HAS_DIGIT_REGEX = /\d/g; @@ -13,7 +13,7 @@ export function Example() { setHasNumbers(HAS_DIGIT_REGEX.test(state)); }, [state], - 200 + 200, ); return ( @@ -22,12 +22,11 @@ export function Example() {
    {hasNumbers ? 'Input has digits' : 'No digits found in input'}
    { setState(ev.target.value); - }} - /> + }} />
    ); } diff --git a/src/useThrottledEffect/__tests__/dom.ts b/src/useThrottledEffect/__tests__/dom.ts index ca6633fc..98145653 100644 --- a/src/useThrottledEffect/__tests__/dom.ts +++ b/src/useThrottledEffect/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useThrottledEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {useThrottledEffect} from '../../index.js'; describe('useThrottledEffect', () => { beforeAll(() => { @@ -19,7 +19,7 @@ describe('useThrottledEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useThrottledEffect(() => {}, [], 200); }); expect(result.error).toBeUndefined(); @@ -27,13 +27,13 @@ describe('useThrottledEffect', () => { it('should throttle passed callback', () => { const spy = jest.fn(); - const { rerender } = renderHook( + const {rerender} = renderHook( (dep) => { useThrottledEffect(spy, [dep], 200, true); }, { initialProps: 1, - } + }, ); expect(spy).toHaveBeenCalledTimes(1); diff --git a/src/useThrottledEffect/__tests__/ssr.ts b/src/useThrottledEffect/__tests__/ssr.ts index 0359b800..7c365594 100644 --- a/src/useThrottledEffect/__tests__/ssr.ts +++ b/src/useThrottledEffect/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useThrottledEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useThrottledEffect} from '../../index.js'; describe('useThrottledEffect', () => { beforeAll(() => { @@ -19,7 +19,7 @@ describe('useThrottledEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useThrottledEffect(() => {}, [], 200); }); expect(result.error).toBeUndefined(); diff --git a/src/useThrottledState/__docs__/example.stories.tsx b/src/useThrottledState/__docs__/example.stories.tsx index 8d96dcc7..67a6c106 100644 --- a/src/useThrottledState/__docs__/example.stories.tsx +++ b/src/useThrottledState/__docs__/example.stories.tsx @@ -1,4 +1,4 @@ -import { useThrottledState } from '../../index.js'; +import {useThrottledState} from '../../index.js'; export function Example() { const [state, setState] = useThrottledState('', 500); @@ -9,11 +9,10 @@ export function Example() {
    The input`s value is: {state}
    { setState(ev.target.value); - }} - /> + }} />
    ); } diff --git a/src/useThrottledState/__tests__/dom.ts b/src/useThrottledState/__tests__/dom.ts index fd69b396..9974810c 100644 --- a/src/useThrottledState/__tests__/dom.ts +++ b/src/useThrottledState/__tests__/dom.ts @@ -1,5 +1,5 @@ -import { renderHook, act } from '@testing-library/react-hooks/dom'; -import { useThrottledState } from '../../index.js'; +import {renderHook, act} from '@testing-library/react-hooks/dom'; +import {useThrottledState} from '../../index.js'; describe('useThrottledState', () => { beforeAll(() => { @@ -19,12 +19,12 @@ describe('useThrottledState', () => { }); it('should render', () => { - const { result } = renderHook(() => useThrottledState('', 200)); + const {result} = renderHook(() => useThrottledState('', 200)); expect(result.error).toBeUndefined(); }); it('should throttle set state', () => { - const { result } = renderHook(() => useThrottledState('', 200, true)); + const {result} = renderHook(() => useThrottledState('', 200, true)); expect(result.current[0]).toBe(''); act(() => { diff --git a/src/useThrottledState/__tests__/ssr.ts b/src/useThrottledState/__tests__/ssr.ts index d9410c78..611dd879 100644 --- a/src/useThrottledState/__tests__/ssr.ts +++ b/src/useThrottledState/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useThrottledState } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useThrottledState} from '../../index.js'; describe('useThrottledState', () => { beforeAll(() => { @@ -19,7 +19,7 @@ describe('useThrottledState', () => { }); it('should render', () => { - const { result } = renderHook(() => useThrottledState('', 200)); + const {result} = renderHook(() => useThrottledState('', 200)); expect(result.error).toBeUndefined(); }); }); diff --git a/src/useTimeoutEffect/__docs__/example.stories.tsx b/src/useTimeoutEffect/__docs__/example.stories.tsx index fd608338..aac9f524 100644 --- a/src/useTimeoutEffect/__docs__/example.stories.tsx +++ b/src/useTimeoutEffect/__docs__/example.stories.tsx @@ -1,11 +1,11 @@ import * as React from 'react'; -import { useState } from 'react'; -import { useTimeoutEffect, useToggle } from '../../index.js'; +import {useState} from 'react'; +import {useTimeoutEffect, useToggle} from '../../index.js'; export function Example() { - const [numberCalls, setNumberCalls] = useState(0); + const [numberCalls, setNumberCalls] = useState < number > (0); const [enabled, toggleEnabled] = useToggle(); - const [timeoutValue, setTimeoutValue] = useState(1000); + const [timeoutValue, setTimeoutValue] = useState < number > (1000); const [cancelled, toggleCancelled] = useToggle(); let status; @@ -17,9 +17,9 @@ export function Example() { const [cancel, reset] = useTimeoutEffect( () => { - setNumberCalls((n) => n + 1); + setNumberCalls(n => n + 1); }, - enabled ? timeoutValue : undefined + enabled ? timeoutValue : undefined, ); React.useEffect(() => { @@ -28,21 +28,24 @@ export function Example() { return (
    - Has fired: {numberCalls.toString()} + Has fired: + {' '} + {numberCalls.toString()}
    - Status: {status} + Status: + {' '} + {status}
    { setTimeoutValue(Number(e.target.value)); - }} - /> + }} />
    diff --git a/src/useToggle/__tests__/ssr.ts b/src/useToggle/__tests__/ssr.ts index 7f1a3f2d..90c9ad81 100644 --- a/src/useToggle/__tests__/ssr.ts +++ b/src/useToggle/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { act, renderHook } from '@testing-library/react-hooks/server'; -import { useToggle } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/server'; +import {useToggle} from '../../index.js'; describe('useToggle', () => { it('should be defined', () => { @@ -7,13 +7,13 @@ describe('useToggle', () => { }); it('should default to false', () => { - const { result } = renderHook(() => useToggle()); + const {result} = renderHook(() => useToggle()); expect(result.current[0]).toBe(false); }); it('should be instantiatable with value', () => { - let { result } = renderHook(() => useToggle(true)); + let {result} = renderHook(() => useToggle(true)); expect(result.current[0]).toBe(true); result = renderHook(() => useToggle(() => true)).result; @@ -24,7 +24,7 @@ describe('useToggle', () => { }); it('should not change if toggler called', () => { - const { result } = renderHook(() => useToggle()); + const {result} = renderHook(() => useToggle()); act(() => { result.current[1](); }); diff --git a/src/useUnmountEffect/__docs__/example.stories.tsx b/src/useUnmountEffect/__docs__/example.stories.tsx index fc2560f1..e4260b34 100644 --- a/src/useUnmountEffect/__docs__/example.stories.tsx +++ b/src/useUnmountEffect/__docs__/example.stories.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { useToggle, useUnmountEffect } from '../../index.js'; +import {useToggle, useUnmountEffect} from '../../index.js'; export function Example() { const [isToggled, toggle] = useToggle(false); @@ -16,12 +16,13 @@ export function Example() { return (
    {' '} + + {' '} {isToggled && }
    ); diff --git a/src/useUnmountEffect/__tests__/ssr.ts b/src/useUnmountEffect/__tests__/ssr.ts index 8959a65d..f04f1e37 100644 --- a/src/useUnmountEffect/__tests__/ssr.ts +++ b/src/useUnmountEffect/__tests__/ssr.ts @@ -1,5 +1,5 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useUnmountEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {useUnmountEffect} from '../../index.js'; describe('useUnmountEffect', () => { it('should call effector only when component unmounted', () => { diff --git a/src/useUpdateEffect/__docs__/example.stories.tsx b/src/useUpdateEffect/__docs__/example.stories.tsx index 45de07dc..91cf2751 100644 --- a/src/useUpdateEffect/__docs__/example.stories.tsx +++ b/src/useUpdateEffect/__docs__/example.stories.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import { useState } from 'react'; -import { useRerender, useUpdateEffect } from '../../index.js'; +import {useState} from 'react'; +import {useRerender, useUpdateEffect} from '../../index.js'; export function Example() { const [count, setCount] = useState(1); @@ -18,14 +18,15 @@ export function Example() { {isUpdated ? 'yes' : 'no'}
    {' '} + + {' '} - {' '} - -
    - - ); -} diff --git a/src/useAsync/__docs__/story.mdx b/src/useAsync/__docs__/story.mdx deleted file mode 100644 index 31232780..00000000 --- a/src/useAsync/__docs__/story.mdx +++ /dev/null @@ -1,47 +0,0 @@ -# useAsync - -Tracks the result and errors of the provided async function and provides handles to control its execution. - -- Handles any async function. -- Safe - no worries about updating the state of an unmounted component. -- Stable - returned methods do not change between renders. -- Handles race conditions - only latest results are stored in state. -- Provides methods to manually trigger execution or reset state to initial. - -#### Example - -## Reference - -```ts -export function useAsync( - asyncFn: (...params: Args) => Promise, - initialValue?: Result -): [AsyncState, UseAsyncActions, UseAsyncMeta]; -``` - -#### Importing - -#### Arguments - -- **asyncFn** _`(...params: Args) => Promise`_ - Function that returns a promise. -- **initialValue** _`Result`_ _(default: `undefined`)_ - Value that will be set on initialisation - before the async function is executed. - -#### Return - -1. **state** - -- **status** _`'loading' | 'success' | 'error' | 'not-executed'`_ - The latest status of the returned promise. -- **result** _`Result | undefined`_ - Result of the promise if it was fulfilled. -- **error** _`Error | undefined`_ - Result of the promise if it was rejected. - -2. **methods** - -- **reset** _`() => void`_- Reset state to initial. -- **execute** _`(...args: Args) => Promise`_- Execute the async function manually. - -3. **meta** - -- **promise** _`Promise | undefined`_- Latest promise returned from the async function. -- **lastArgs** _`Args | undefined`_ - List of arguments applied to the latest async function - invocation. diff --git a/src/useAsyncAbortable/__docs__/example.stories.tsx b/src/useAsyncAbortable/__docs__/example.stories.tsx deleted file mode 100644 index 5340b13f..00000000 --- a/src/useAsyncAbortable/__docs__/example.stories.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import * as React from 'react'; -import {useAsyncAbortable, useMountEffect} from '../../index.js'; - -export function Example() { - const [state, actions, meta] = useAsyncAbortable( - signal => - new Promise() < string > ((resolve, reject) => { - setTimeout(() => { - if (signal.aborted) { - reject(new Error('Aborted!')); - } else { - resolve('react-hookz is awesome!'); - } - }, 5000); - }), - 'react-hookz is', - ); - - useMountEffect(actions.execute); - - return ( -
    -
    - - Async function will resolve after 5 seconds. If the function is aborted, the promise will - be rejected. - -
    -
    -
    promise status: {state.status}
    -
    current value: {state.result ?? 'undefined'}
    -
    error: {state.error ? state.error.message : 'undefined'}
    -
    -
    - - {' '} - - {' '} - -
    -
    - ); -} diff --git a/src/useAsyncAbortable/__docs__/story.mdx b/src/useAsyncAbortable/__docs__/story.mdx deleted file mode 100644 index adbdc68d..00000000 --- a/src/useAsyncAbortable/__docs__/story.mdx +++ /dev/null @@ -1,53 +0,0 @@ -# useAsyncAbortable - -Like `useAsync`, but also provides `AbortSignal` as the first argument to the async function. - -- All the advantages of `useAsync`. -- Automatically aborts previous invocations of the async function. -- Provides `abort` handle. - -#### Example - -## Reference - -```ts -export function useAsyncAbortable( - asyncFn: (...params: ArgsWithAbortSignal) => Promise, - initialValue?: Result -): [ - AsyncState, - UseAsyncAbortableActions, - UseAsyncAbortableMeta, -]; -``` - -#### Importing - -#### Arguments - -- **asyncFn** _`(...params: ArgsWithAbortSignal) => Promise`_ - Function that returns - a promise. -- **initialValue** _`Result`_ _(default: `undefined`)_ - Value that will be set on initialisation, - before the async function is executed. - -#### Return - -1. **state** - -- **status** _`'loading' | 'success' | 'error' | 'not-executed'`_ - The latest status of the returned promise. -- **result** _`Result | undefined`_ - Result of the promise if it was fulfilled. -- **error** _`Error | undefined`_ - Result of the promise if it was rejected. - -2. **methods** - -- **reset** _`() => void`_- Abort the currently running async function invocation and reset state to initial. -- **execute** _`(...args: Args) => Promise`_- Execute the async function manually. -- **abort** _`() => void`_- Abort the currently running async function invocation. - -3. **meta** - -- **promise** _`Promise | undefined`_- Latest promise returned from the async function. -- **lastArgs** _`Args | undefined`_ - List of arguments applied to the latest async function - invocation. -- **abortController** _`AbortController | undefined`_ - Currently used `AbortController`. New one - is created on each execution of the async function. diff --git a/src/useClickOutside/__docs__/example.stories.tsx b/src/useClickOutside/__docs__/example.stories.tsx deleted file mode 100644 index c6f670b8..00000000 --- a/src/useClickOutside/__docs__/example.stories.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import * as React from 'react'; -import {useRef} from 'react'; -import {useClickOutside, useToggle} from '../../index.js'; - -export function Example() { - const [toggled, toggle] = useToggle(); - - function ToggledComponent() { - const ref = useRef(null); - - useClickOutside(ref, () => { - // eslint-disable-next-line no-alert - globalThis.alert('told ya!'); - toggle(); - }); - - return ( -
    - DO NOT -
    - CLICK OUTSIDE -
    - THE RED SQUARE! -
    - ); - } - - return ( -
    -
    Let's try some reverse psychology =)
    -
    - - {!toggled && ( - - )} - {toggled && } -
    - ); -} diff --git a/src/useClickOutside/__docs__/story.mdx b/src/useClickOutside/__docs__/story.mdx deleted file mode 100644 index 667fa360..00000000 --- a/src/useClickOutside/__docs__/story.mdx +++ /dev/null @@ -1,31 +0,0 @@ -# useClickOutside - -Triggers a callback when the user clicks outside a targeted element. - -> This hook listens for events on the `document` object. Therefore, if any listener between the event -> target and the `document` object stops event propagation, the hook won't work. - -> By default, the `mousedown` and `touchstart` events are used, but any bubbling event can be used instead. - -#### Example - -## Reference - -```ts -const DEFAULT_EVENTS = ['mousedown', 'touchstart']; - -export function useClickOutside( - ref: RefObject | MutableRefObject, - callback: EventListener, - events: string[] = DEFAULT_EVENTS -): void; -``` - -#### Importing - -#### Arguments - -- **ref** _`RefObject | MutableRefObject`_ - React ref object containing the target element. -- **callback** _`EventListener`_ - Callback invoked when the user clicks outside the target element. -- **events**: _`string[]`_ _(default: `['mousedown', 'touchstart']`)_ - List of events that will be - used as triggers for the outside click. diff --git a/src/useConditionalEffect/__docs__/example.stories.tsx b/src/useConditionalEffect/__docs__/example.stories.tsx deleted file mode 100644 index 2182deb6..00000000 --- a/src/useConditionalEffect/__docs__/example.stories.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import * as React from 'react'; -import {useState} from 'react'; -import {useConditionalEffect, useUpdateEffect} from '../../index.js'; - -export function Example() { - const [state1, setState1] = useState(2); - const [state2, setState2] = useState(2); - - useConditionalEffect( - () => { - // eslint-disable-next-line no-alert - alert('VALUES OF THE COUNTERS ARE EVEN'); - }, - [state1, state2], - [state1, state2], - conditions => conditions.every(i => i && i % 2 === 0), - useUpdateEffect, - ); - - return ( -
    -
    An alert will be displayed when both counters have even values.
    - - {' '} - -
    - ); -} diff --git a/src/useConditionalEffect/__docs__/story.mdx b/src/useConditionalEffect/__docs__/story.mdx deleted file mode 100644 index 1f53ffe1..00000000 --- a/src/useConditionalEffect/__docs__/story.mdx +++ /dev/null @@ -1,47 +0,0 @@ -# useConditionalEffect - -Like `useEffect` but its callback is invoked only if all given conditions match a given predicate. -The default predicate matches if all given conditions are truthy. - -With this hook, you can make any effect hook that matches with `useEffect`'s call signature -conditional by passing the effect hook as an argument to the `effectHook` parameter. By wrapping -other effect hooks this way, you can implement almost any effect logic. - -#### Example - -## Reference - -```ts -export function useConditionalEffect< - Cond extends ConditionsList, - Callback extends EffectCallback = EffectCallback, - Deps extends DependencyList | undefined = DependencyList | undefined, - HookRestArgs extends any[] = any[], - R extends HookRestArgs = HookRestArgs, ->( - callback: Callback, - deps: Deps, - conditions: Cond, - predicate: ConditionsPredicate = truthyAndArrayPredicate, - effectHook: EffectHook = useEffect, - ...effectHookRestArgs: R -): void; -``` - -#### Importing - -#### Arguments - -- **callback** _`EffectCallback`_ - Function that will be passed to the underlying effect hook. -- **deps** _`React.DependencyList`_ - Dependency list like the one passed to `useEffect`. If not - `undefined`, the effect will be triggered when the dependencies change and the given `conditions` - satisfy the `predicate`. -- **conditions** _`ConditionsList`_ - List of conditions. -- **predicate** _`IUseConditionalEffectPredicate>`_ - Predicate that should be - satisfied by every condition in `conditions`. By default, the predicate checks that every condition - in `conditions` is truthy. -- **effectHook** _`EffectHook`_ - Effect hook that will be used to run - `callback`. Must match the type signature of `useEffect`, meaning that the `callback` should be - placed as the first argument and the dependency list as second. -- **...effectHookRestArgs** _`HookRestArgs`_ - Extra arguments that are passed to the `effectHook` - after the `callback` and the dependency list. diff --git a/src/useControlledRerenderState/__docs__/example.stories.tsx b/src/useControlledRerenderState/__docs__/example.stories.tsx deleted file mode 100644 index a524961a..00000000 --- a/src/useControlledRerenderState/__docs__/example.stories.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import * as React from 'react'; -import {useControlledRerenderState, useToggle} from '../../index.js'; - -export function Example() { - const [state, setState] = useControlledRerenderState(0); - const [doRerender, toggleDoRerender] = useToggle(true); - - return ( -
    -
    State: {state}
    -

    - - {' '} - -

    -
    - ); -} diff --git a/src/useControlledRerenderState/__docs__/story.mdx b/src/useControlledRerenderState/__docs__/story.mdx deleted file mode 100644 index 0d3a450a..00000000 --- a/src/useControlledRerenderState/__docs__/story.mdx +++ /dev/null @@ -1,33 +0,0 @@ -# useControlledRerenderState - -Like `React.useState`, but its state setter accepts extra argument, that allows to cancel rerender. - -- Allows to avoid rerender during state set. - -#### Example - -## Reference - -```ts -export type ControlledRerenderDispatch = (value: A, rerender?: boolean) => void; - -export function useControlledRerenderState( - initialState: S | (() => S) -): [S, ControlledRerenderDispatch>]; -export function useControlledRerenderState(): [ - S | undefined, - ControlledRerenderDispatch>, -]; -``` - -#### Importing - -#### Arguments - -Identical to `React.useState`. - -#### Return - -Returned state setter accepts extra-argument, in case it is set to false - component will not be -re-rendered after state set. -In case extra parameter omitted - state setter behaves exactly as native. diff --git a/src/useCookieValue/__docs__/example.stories.tsx b/src/useCookieValue/__docs__/example.stories.tsx deleted file mode 100644 index 3594f5da..00000000 --- a/src/useCookieValue/__docs__/example.stories.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import * as React from 'react'; -import {useCookieValue} from '../index.js'; - -export function Example() { - const [cookie, set, remove] = useCookieValue('react-hookz', {expires: 3600}); - - return ( -
    -
    - Cookie name: - {' '} - react-hookz -
    -
    - Cookie value: - {' '} - {cookie} -
    -
    - { - set(ev.target.value); - }} /> -
    -
    -
    - -
    -
    - ); -} diff --git a/src/useCookieValue/__docs__/story.mdx b/src/useCookieValue/__docs__/story.mdx deleted file mode 100644 index a7fce15f..00000000 --- a/src/useCookieValue/__docs__/story.mdx +++ /dev/null @@ -1,59 +0,0 @@ -# useCookieValue - -Manages a single cookie. - -> **IMPORTANT**: Requires separate installation of the `js-cookie` package. - -> **IMPORTANT**: This hook should be directly imported as it has an optional dependency and therefore -> is not exported from the index file. See [importing](#importing) section below. - -- Uses the `js-cookie` package under the hood. -- SSR-friendly. -- Hooks with the same key on the same page are synchronised. This synchronisation does not work - across tabs or on changes that are triggered by third-party code. - -> **_This hook provides a stable API, meaning returned methods do not change between renders_** - -> Uses `null` value as the indicator of cookie absence. `undefined` value means that the cookie value -> hasn't been fetched yet. - -> While using SSR, to avoid hydration mismatch, consider setting the `initializeWithValue` option to -> `false`. This will make the hook yield `undefined` on first render and defer fetching of the cookie -> value until effects are executed. - -#### Example - -## Reference - -```ts -export type UseCookieOptions = Cookies.CookieAttributes & { - initializeWithValue?: boolean; -}; - -export type UseCookieReturn = [ - value: undefined | null | string, - set: (value: string) => void, - remove: () => void, - fetch: () => void, -]; - -export function useCookieValue(key: string, options: UseCookieOptions = {}): UseCookieReturn; -``` - -#### Importing - -#### Arguments - -- **key** _`string`_ - Name of the cookie to manage. -- **options** _`UseCookieOptions`_ _(default: {})_ - Cookie options that will be used during setting - and deleting the cookie. Has one extra option, that relates to the hook itself: -- **initializeWithValue** _`boolean`_ _(default: true)_ - Whether to initialize state with the cookie - value or `undefined`. _We suggest setting this to `false` during SSR._ - -#### Return - -0. **state** - Value of the managed cookie. `undefined` means the value has not been fetched yet, - `null` means the cookie is absent. -1. **set** - Set new value to the cookie. -2. **remove** - Remove the cookie. -3. **fetch** - Re-fetch the cookie value. diff --git a/src/useCounter/__docs__/example.stories.tsx b/src/useCounter/__docs__/example.stories.tsx deleted file mode 100644 index e9ae4f26..00000000 --- a/src/useCounter/__docs__/example.stories.tsx +++ /dev/null @@ -1,100 +0,0 @@ -import {useCounter} from '../../index.js'; - -export function Example() { - const [min, {inc: incMin, dec: decMin}] = useCounter(1); - const [max, {inc: incMax, dec: decMax}] = useCounter(10); - const [value, {inc, dec, set, reset}] = useCounter(5, max, min); - - return ( -
    -
    - current: {value} [min: {min}; max: {max}] -
    -
    - Current value: - - - - - - - -
    -
    - Min value: - - -
    -
    - Max value: - - -
    - ); -} diff --git a/src/useCounter/__docs__/story.mdx b/src/useCounter/__docs__/story.mdx deleted file mode 100644 index a4401eae..00000000 --- a/src/useCounter/__docs__/story.mdx +++ /dev/null @@ -1,43 +0,0 @@ -# useCounter - -Tracks a numeric value and offers functions for manipulating it. - -> **_This hook provides stable API, meaning returned functions do not change between renders_** - -#### Example - -## Reference - -```ts -export function useCounter( - initialValue: InitialState = 0, - max?: number, - min?: number -): [number, CounterActions]; -``` - -#### Importing - -#### Arguments - -- _**initialValue**_ _`InitialState` (default 0)_ - initial value for the counter. A number - or function returning a number. -- _**max**_ _`number` (default `undefined`)_ - maximum value the counter is allowed to be set. -- _**min**_ _`number` (default `undefined`)_ - minimum value the counter is allowed to be set. - -#### Return - -1. **counter** - The current value of the counter. - -2. **methods** - -- **get** - Returns the current value of the counter. -- **inc** - Increments the counter by the given delta (by default, 1). -- **dec** - Decrements the counter by the given delta (by default, 1). -- **set** - Sets the counter to the given value. -- **reset** - Resets the counter to its initial value. If a value is given, it - is set as the new initial value and any future calls to `reset` - without arguments will reset the counter to the given value. - -All methods respect the `max` and `min` parameters. Instead of numerical -arguments, they also accept functions returning numbers. diff --git a/src/useCustomCompareEffect/__docs__/example.stories.tsx b/src/useCustomCompareEffect/__docs__/example.stories.tsx deleted file mode 100644 index 518d0808..00000000 --- a/src/useCustomCompareEffect/__docs__/example.stories.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import * as React from 'react'; -import { useCustomCompareEffect, useUpdateEffect } from '../../index.js'; - -/** - * A little hash function to generate a random number used to identify a string. - * @see https://stackoverflow.com/a/52171480/7304377 - */ -const hashWithCYRB53 = (someString: string) => { - let h1 = 0xde_ad_be_ef; - let h2 = 0x41_c6_ce_57; - - /* eslint-disable no-bitwise */ - for (let i = 0, ch; i < someString.length; i++) { - ch = someString.codePointAt(i) ?? 0; - h1 = Math.imul(h1 ^ ch, 2_654_435_761); - h2 = Math.imul(h2 ^ ch, 1_597_334_677); - } - - h1 = Math.imul(h1 ^ (h1 >>> 16), 2_246_822_507) ^ Math.imul(h2 ^ (h2 >>> 13), 3_266_489_909); - h2 = Math.imul(h2 ^ (h2 >>> 16), 2_246_822_507) ^ Math.imul(h1 ^ (h1 >>> 13), 3_266_489_909); - - return 4_294_967_296 * (2_097_151 & h2) + (h1 >>> 0); - /* eslint-enable no-bitwise */ -}; - -export function Example() { - const [valueA, setValueA] = React.useState(0); - const [valueB, setValueB] = React.useState(0); - const [irrelevantValue, setIrrelevantValue] = React.useState(0); - - const incrementValueA = () => { - setValueA((previous) => previous + 1); - }; - - const incrementValueB = () => { - setValueB((previous) => previous + 1); - }; - - const incrementIrrelevantValue = () => { - setIrrelevantValue((previous) => previous + 1); - }; - - const objectA = { key: valueA }; - const objectB = { key: valueB }; - - useCustomCompareEffect( - () => { - // eslint-disable-next-line no-alert - window.alert('Detected checksum difference from previous render!'); - }, - [objectA, objectB], - (a, b) => hashWithCYRB53(JSON.stringify(a)) === hashWithCYRB53(JSON.stringify(b)), - useUpdateEffect - ); - - return ( -
    -

    - In this example, there exist two objects in memory that are initialized identically. There - is an alert that only appears when the objects differ. You can press either button to adjust - each object's only value. We hash the objects and use those hashes as a checksum to - determine if the objects have changed. This is ridiculous for the objects here (because - they're tiny and simple), but if you have potentially large, complex objects you may - wish to go this route instead of leveraging some sort of deep equality check. -

    -

    - We're also using `useUpdateEffect` instead of `useEffect` to avoid running the effect - on the initial mount of the component. -

    - - - -
    -
    - Current valueA: {valueA}{' '} - -
    -
    - Current valueB: {valueB}{' '} - -
    -
    - Current irrelevantValue: {irrelevantValue}{' '} - -
    - - Current hash objectA: {hashWithCYRB53(JSON.stringify(objectA))} - Current hash objectB: {hashWithCYRB53(JSON.stringify(objectB))} -
    -
    - ); -} diff --git a/src/useCustomCompareEffect/__docs__/story.mdx b/src/useCustomCompareEffect/__docs__/story.mdx deleted file mode 100644 index ec7b2590..00000000 --- a/src/useCustomCompareEffect/__docs__/story.mdx +++ /dev/null @@ -1,39 +0,0 @@ -# useCustomCompareEffect - -Like `useEffect` but uses provided comparator function to validate dependency changes. - -- SSR-friendly, meaning that comparator won't be called on the server. -- Ability to change the underlying effect hook (the default is `useEffect`). - -#### Example - -## Reference - -```ts -export function useCustomCompareEffect< - Callback extends EffectCallback = EffectCallback, - Deps extends DependencyList = DependencyList, - HookRestArgs extends any[] = any[], - R extends HookRestArgs = HookRestArgs, ->( - callback: Callback, - deps: Deps, - comparator: DependenciesComparator = basicDepsComparator, - effectHook: EffectHook = useEffect, - ...effectHookRestArgs: R -): void; -``` - -#### Importing - -#### Arguments - -- **callback** _`EffectCallback`_ - Function that will be passed to the underlying effect hook. -- **deps** _`DependencyList`_ - Dependency list like the one passed to `useEffect`. -- **comparator** _`DependenciesComparator `_ - Function that compares two dependency arrays, - and returns `true` if they're equal. -- **effectHook** _`EffectHook`_ - Effect hook that will be used to run - `callback`. Must match the type signature of `useEffect`, meaning that the `callback` should be - placed as the first argument and the dependency list as second. -- **...effectHookRestArgs** _`HookRestArgs`_ - Extra arguments that are passed to the `effectHook` - after the `callback` and the dependency list. diff --git a/src/useCustomCompareMemo/__docs__/example.stories.tsx b/src/useCustomCompareMemo/__docs__/example.stories.tsx deleted file mode 100644 index d5b8ce3c..00000000 --- a/src/useCustomCompareMemo/__docs__/example.stories.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { useReducer, useMemo, useRef } from 'react'; -import { useCustomCompareMemo } from '../../index.js'; - -// Data -const keys = ['firstname', 'name']; - -// Utils -const getRandom = (array: ArrayParameter) => - array[Math.floor(Math.random() * array.length)] as ArrayParameter[number]; -const displayAsJSON = (object: Record) => JSON.stringify(object, undefined, 2); -const reverse = (object: Record) => - Object.fromEntries(Object.entries(object).map(([key, value]) => [value, key])); - -// Hooks -const useForce = () => useReducer((state) => !state, false)[1]; - -export function Example() { - const force = useForce(); - - const reversedPerson = useRef | null>(null); - - const memoCalls = useRef(0); - const retainCalls = useRef(0); - - // eslint-disable-next-line react-hooks/exhaustive-deps - const person = { key: getRandom(keys), value: 'John' }; - - useCustomCompareMemo( - () => { - if (person) { - retainCalls.current++; - - reversedPerson.current = reverse(person); - } - }, - [person] as const, - (savedDeps, deps) => { - const savedDependency = savedDeps[0]; - const dependency = deps[0]; - - return savedDependency.key !== dependency.key; - } - ); - - useMemo(() => { - if (person) { - memoCalls.current++; - } - }, [person]); - - return ( -
    - {person && displayAsJSON(person)} -

    memo calls: {memoCalls.current}

    -

    custom memo calls: {retainCalls.current}

    - -
    - ); -} diff --git a/src/useCustomCompareMemo/__docs__/story.mdx b/src/useCustomCompareMemo/__docs__/story.mdx deleted file mode 100644 index c514f47e..00000000 --- a/src/useCustomCompareMemo/__docs__/story.mdx +++ /dev/null @@ -1,28 +0,0 @@ -# useCustomCompareMemo - -Like useMemo but uses provided comparator function to validate dependency changes. - -#### Example - -## Reference - -```ts -export type DependenciesComparator = ( - a: Deps, - b: Deps -) => boolean; - -function useCustomCompareMemo( - factory: () => T, - deps: Deps, - comparator: DependenciesComparator -): T; -``` - -#### Importing - -#### Arguments - -- **factory** _`() => unknown`_ - useMemo factory function. -- **deps** _`DependencyList`_ - useMemo dependency list. -- **comparator** _`DependenciesComparator`_ - comparator function to validate dependency changes. diff --git a/src/useDebouncedCallback/__docs__/example.stories.tsx b/src/useDebouncedCallback/__docs__/example.stories.tsx deleted file mode 100644 index af2b8713..00000000 --- a/src/useDebouncedCallback/__docs__/example.stories.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { type ComponentProps, useState } from 'react'; -import { useDebouncedCallback } from '../../index.js'; - -export function Example() { - const [state, setState] = useState(''); - - const handleChange: React.ChangeEventHandler = useDebouncedCallback< - NonNullable['onChange']> - >( - (ev) => { - setState(ev.target.value); - }, - [], - 300, - 500 - ); - - return ( -
    -
    Below state will update 300ms after last change, but at least once every 500ms
    -
    -
    The input`s value is: {state}
    - -
    - ); -} diff --git a/src/useDebouncedCallback/__docs__/story.mdx b/src/useDebouncedCallback/__docs__/story.mdx deleted file mode 100644 index 2176894f..00000000 --- a/src/useDebouncedCallback/__docs__/story.mdx +++ /dev/null @@ -1,36 +0,0 @@ -# useDebouncedCallback - -Makes passed function debounced, otherwise acts like `useCallback`. -[What is debouncing?](https://css-tricks.com/debouncing-throttling-explained-examples/#debounce) - -The third argument is dependencies list on `useCallback` manner, passed function will be re-wrapped -when delay or dependencies has changed. Changed debounce callbacks still has same timeout, meaning -that calling new debounced function will abort previously scheduled invocation. - -Debounced function is always a void function since original callback invoked later. - -Deferred execution automatically cancelled on component unmount. - -#### Example - -## Reference - -```ts -export function useDebouncedCallback( - callback: (this: This, ...args: Args) => any, - deps: DependencyList, - delay: number, - maxWait = 0 -): DebouncedFunction; -``` - -#### Importing - -#### Arguments - -- **callback** _`(...args: T) => unknown`_ - function that will be debounced. -- **deps** _`React.DependencyList`_ - dependencies list when to update callback. It also replaces - invoked callback for scheduled debounced invocations. -- **delay** _`number`_ - debounce delay. -- **maxWait** _`number`_ _(default: `0`)_ - The maximum time `callback` is allowed to be delayed - before it's invoked. `0` means no max wait. diff --git a/src/useDebouncedEffect/__docs__/example.stories.tsx b/src/useDebouncedEffect/__docs__/example.stories.tsx deleted file mode 100644 index d9d210dc..00000000 --- a/src/useDebouncedEffect/__docs__/example.stories.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import * as React from 'react'; -import {useState} from 'react'; -import {useDebouncedEffect} from '../../index.js'; - -const HAS_DIGIT_REGEX = /\d/g; - -export function Example() { - const [state, setState] = useState(''); - const [hasNumbers, setHasNumbers] = useState(false); - - useDebouncedEffect( - () => { - setHasNumbers(HAS_DIGIT_REGEX.test(state)); - }, - [state], - 200, - 500, - ); - - return ( -
    -
    - Digit check will be performed 200ms after last change, but at least once every 500ms -
    -
    -
    {hasNumbers ? 'Input has digits' : 'No digits found in input'}
    - { - setState(ev.target.value); - }} /> -
    - ); -} diff --git a/src/useDebouncedEffect/__docs__/story.mdx b/src/useDebouncedEffect/__docs__/story.mdx deleted file mode 100644 index 66e0fb0e..00000000 --- a/src/useDebouncedEffect/__docs__/story.mdx +++ /dev/null @@ -1,27 +0,0 @@ -# useDebouncedEffect - -Like `useEffect`, but the passed function is debounced. - -#### Example - -## Reference - -```ts -export function useDebouncedEffect( - callback: (...args: any[]) => void, - deps: DependencyList, - delay: number, - maxWait = 0 -): void; -``` - -#### Importing - -#### Arguments - -- **callback** _`(...args: any[]) => void`_ - Callback like for `useEffect`, but without ability to - return a cleanup function. -- **deps** _`DependencyList`_ - Dependency list like the one passed to `useEffect`. -- **delay** _`number`_ - Debounce delay (in milliseconds). -- **maxWait** _`number`_ _(default: `0`)_ The maximum time `callback` is allowed to be delayed - before it's invoked. `0` means no max wait. diff --git a/src/useDebouncedState/__docs__/example.stories.tsx b/src/useDebouncedState/__docs__/example.stories.tsx deleted file mode 100644 index 2d641570..00000000 --- a/src/useDebouncedState/__docs__/example.stories.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import * as React from 'react'; -import {useDebouncedState} from '../../index.js'; - -export function Example() { - const [state, setState] = useDebouncedState('', 300, 500); - - return ( -
    -
    Below state will update 300ms after last change, but at least once every 500ms
    -
    -
    The input`s value is: {state}
    - { - setState(ev.target.value); - }} /> -
    - ); -} diff --git a/src/useDebouncedState/__docs__/story.mdx b/src/useDebouncedState/__docs__/story.mdx deleted file mode 100644 index 903ae656..00000000 --- a/src/useDebouncedState/__docs__/story.mdx +++ /dev/null @@ -1,29 +0,0 @@ -# useDebouncedState - -Like `useState` but its state setter is debounced. - -#### Example - -## Reference - -```ts -export function useDebouncedState( - initialState: S | (() => S), - delay: number, - maxWait = 0 -): [S, Dispatch>]; -``` - -#### Importing - -#### Arguments - -- **initialState** _`S | (() => S)`_ - Initial state to pass to underlying `useState`. -- **delay** _`number`_ - Debounce delay. -- **maxWait** _`number`_ _(default: `0`)_ - The maximum time `callback` is allowed to be delayed - before it's invoked. `0` means no max wait. - -#### Return - -0. **state** - current state. -1. **setState** - debounced state setter. diff --git a/src/useDeepCompareEffect/__docs__/example.stories.tsx b/src/useDeepCompareEffect/__docs__/example.stories.tsx deleted file mode 100644 index bde0ffea..00000000 --- a/src/useDeepCompareEffect/__docs__/example.stories.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import * as React from 'react'; -import {useEffect} from 'react'; -import {useDeepCompareEffect, useRerender} from '../../index.js'; - -export function Example() { - const rerender = useRerender(); - - // eslint-disable-next-line react-hooks/exhaustive-deps - const newOnEveryRender = { - name: 'Foo', - }; - - useEffect(() => { - console.log('I do get logged on every render.'); - }, [newOnEveryRender]); - - useDeepCompareEffect(() => { - console.log('I do not get logged on every render.'); - }, [newOnEveryRender]); - - return ( - <> -

    Open you browser console and the code for this example.

    -

    - Repeatedly press the button below. Notice, how the useEffect gets run on every render, but - useDeepCompareEffect does not. This is because useDeepCompareEffect determines dependency - changes by deep comparison instead of by reference like useEffect. -

    - - - ); -} diff --git a/src/useDeepCompareEffect/__docs__/story.mdx b/src/useDeepCompareEffect/__docs__/story.mdx deleted file mode 100644 index 3203f6e8..00000000 --- a/src/useDeepCompareEffect/__docs__/story.mdx +++ /dev/null @@ -1,38 +0,0 @@ -# useDeepCompareEffect - -Like `useEffect`, but uses `@react-hookz/deep-equal` comparator function to validate deep dependency -changes. - -- SSR-friendly, meaning that the comparator won't be called on the server. -- Ability to change the underlying effect hook (the default is `useEffect`). -- Uses the fastest deep-comparator yet - [@react-hookz/deep-equal](https://github.com/react-hookz/deep-equal). - -#### Example - -## Reference - -```ts -export function useCustomCompareEffect< - Callback extends EffectCallback = EffectCallback, - Deps extends DependencyList = DependencyList, - HookRestArgs extends any[] = any[], - R extends HookRestArgs = HookRestArgs, ->( - callback: Callback, - deps: Deps, - effectHook: EffectHook = useEffect, - ...effectHookRestArgs: R -): void; -``` - -#### Importing - -#### Arguments - -- **callback** _`EffectCallback`_ - Function that will be passed to the underlying effect hook. -- **deps** _`React.DependencyList`_ - Dependency list like the one passed to `useEffect`. -- **effectHook** _`EffectHook`_ - Effect hook that will be used to run - `callback`. Must match the type signature of `useEffect`, meaning that the `callback` should be - placed as the first argument and the dependency list as second. -- **...effectHookRestArgs** _`HookRestArgs`_ - Extra arguments that are passed to the `effectHook` - after the `callback` and the dependency list. diff --git a/src/useDeepCompareMemo/__docs__/example.stories.tsx b/src/useDeepCompareMemo/__docs__/example.stories.tsx deleted file mode 100644 index 3d3292c8..00000000 --- a/src/useDeepCompareMemo/__docs__/example.stories.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import * as React from 'react'; -import {useMemo} from 'react'; -import {useRerender, useDeepCompareMemo} from '../../index.js'; - -export function Example() { - const newOnEveryRender = {value: 'Foo'}; - // eslint-disable-next-line react-hooks/exhaustive-deps - const unstable = useMemo(() => Math.floor(Math.random() * 10), [newOnEveryRender]); - - const stable = useDeepCompareMemo(() => Math.floor(Math.random() * 10), [newOnEveryRender]); - - const rerender = useRerender(); - return ( - <> -
    -

    When you click this button:

    - -

    , you notice, that the useDeepCompareMemo value does not change at all,

    -
    -

    even though its dependencies change on every render.

    -
    -

    useMemo: {unstable}

    -

    useDeepCompareMemo: {stable}

    - - ); -} diff --git a/src/useDeepCompareMemo/__docs__/story.mdx b/src/useDeepCompareMemo/__docs__/story.mdx deleted file mode 100644 index 926f173b..00000000 --- a/src/useDeepCompareMemo/__docs__/story.mdx +++ /dev/null @@ -1,27 +0,0 @@ -# useDeepCompareMemo - -Like `useMemo` but uses `@react-hookz/deep-equal` comparator function to validate deep dependency changes. - -- SSR-friendly, meaning that the comparator won't be called on the server. -- Uses yet fastest deep-comparator - [@react-hookz/deep-equal](https://github.com/react-hookz/deep-equal). - -#### Example - -## Reference - -```ts -export function useDeepCompareMemo(factory: () => T, deps: Deps): T; -``` - -#### Importing - -#### Arguments - -- **factory** `() => T` - Function calculating the memoized value. Passed to the underlying `useMemo`. -- **deps** `DependencyList` - List of all reactive values referenced by `factory`. Passed to the `deps` parameter of the underlying `useMemo`. - -#### Return - -Initially returns the result of calling `factory`. This value is memoized and returned on every -render, until the dependencies change, determined by deep comparison, at which point `factory` will be called again and the resulting -value will be memoized. diff --git a/src/useDocumentVisibility/__docs__/example.stories.tsx b/src/useDocumentVisibility/__docs__/example.stories.tsx deleted file mode 100644 index 7c9bd50f..00000000 --- a/src/useDocumentVisibility/__docs__/example.stories.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import * as React from 'react'; -import {useEffect} from 'react'; -import {useDocumentVisibility} from '../../index.js'; - -export function Example() { - const isVisible = useDocumentVisibility(); - - useEffect(() => { - if (!isVisible) { - // eslint-disable-next-line no-alert - alert('Document was not visible'); - } - }, [isVisible]); - - return ( -
    -

    - The document is - {' '} - {isVisible ? 'visible' : 'hidden'} -

    -
    - ); -} diff --git a/src/useDocumentVisibility/__docs__/story.mdx b/src/useDocumentVisibility/__docs__/story.mdx deleted file mode 100644 index 8a28561f..00000000 --- a/src/useDocumentVisibility/__docs__/story.mdx +++ /dev/null @@ -1,18 +0,0 @@ -# useDocumentVisibility - -Returns a boolean indicating whether the document is visible or not. - -#### Example - -## Reference - -```ts -function useDocumentVisibility(initializeWithValue = true): boolean | undefined; -``` - -#### Importing - -#### Arguments - -- **initializeWithValue** _`boolean | undefined`_ _(default: `true`)_ - Whether to initialize state - with the document visibility state or `undefined`. _Set this to `false` during SSR._ diff --git a/src/useEventListener/__docs__/example.stories.tsx b/src/useEventListener/__docs__/example.stories.tsx deleted file mode 100644 index efcfde71..00000000 --- a/src/useEventListener/__docs__/example.stories.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import * as React from 'react'; -import { useState } from 'react'; -import { useEventListener, useToggle } from '../../index.js'; - -export function Example() { - const [state, setState] = useState(); - const [mounted, toggleMounted] = useToggle(true); - - function ToggledComponent() { - useEventListener( - window, - 'mousemove', - () => { - setState(new Date()); - }, - { passive: true } - ); - - return
    Datetime updating component is mounted.
    ; - } - - return ( -
    -
    - The datetime shown below is updated on window's mousemove event. -
    - You can unmount the datetime updating component by clicking the button below to ensure that - the event is unsubscribed from when the component unmounts. -
    - -
    -
    {state ? `Cursor last moved: ${state.toString()}.` : 'Cursor not moved yet.'}
    - -
    -
    - {mounted && } - -
    -
    - ); -} diff --git a/src/useEventListener/__docs__/story.mdx b/src/useEventListener/__docs__/story.mdx deleted file mode 100644 index a29966ed..00000000 --- a/src/useEventListener/__docs__/story.mdx +++ /dev/null @@ -1,29 +0,0 @@ -# useEventListener - -Subscribes an event listener to a target element. - -- Automatically unsubscribes the event listener on component unmount. -- Properly handles event listener objects. -- SSR-friendly. -- Full TypeScript support for any target element. - -#### Example - -## Reference - -```ts -export function useEventListener( - target: RefObject | T | null, - ...params: - | Parameters - | [string, EventListenerOrEventListenerObject | ((...args: any[]) => any), ...any] -): void; -``` - -#### Importing - -#### Arguments - -- **target** _`ITargetOrTargetRef`_ - An HTML element or ref object containing an HTML element. -- **params** - Parameters specific to the target element's `addEventListener` method. Commonly - something like `[eventName, listener, options]`. diff --git a/src/useFirstMountState/__docs__/example.stories.tsx b/src/useFirstMountState/__docs__/example.stories.tsx deleted file mode 100644 index ea0dcedc..00000000 --- a/src/useFirstMountState/__docs__/example.stories.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import * as React from 'react'; -import {useFirstMountState, useRerender} from '../../index.js'; - -export function Example() { - const isFirstMount = useFirstMountState(); - const rerender = useRerender(); - - return ( -
    -
    {isFirstMount ? 'This is the first render.' : 'This is not the first render.'}
    - -
    - ); -} diff --git a/src/useFirstMountState/__docs__/story.mdx b/src/useFirstMountState/__docs__/story.mdx deleted file mode 100644 index f0c4a2cc..00000000 --- a/src/useFirstMountState/__docs__/story.mdx +++ /dev/null @@ -1,17 +0,0 @@ -# useFirstMountState - -Returns a boolean that is `true` only on first render. - -#### Example - -## Reference - -```ts -function useFirstMountState(): boolean; -``` - -#### Importing - -#### Return - -`true` on first render, `false` otherwise. diff --git a/src/useFunctionalState/__docs__/story.mdx b/src/useFunctionalState/__docs__/story.mdx deleted file mode 100644 index 47da2f35..00000000 --- a/src/useFunctionalState/__docs__/story.mdx +++ /dev/null @@ -1,15 +0,0 @@ -# useFunctionalState - -Like `useState` but instead of raw state, state getter returned. - -## Reference - -```ts -export function useFunctionalState( - initialState: S | (() => S) -): [() => S, React.Dispatch>]; -export function useFunctionalState(): [ - () => S | undefined, - React.Dispatch>, -]; -``` diff --git a/src/useHookableRef/__docs__/example.stories.tsx b/src/useHookableRef/__docs__/example.stories.tsx deleted file mode 100644 index d1afc845..00000000 --- a/src/useHookableRef/__docs__/example.stories.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import * as React from 'react'; -import { useState } from 'react'; -import { useHookableRef } from '../../index.js'; - -export function Example() { - const [get, setGet] = useState(); - const [set, setSet] = useState(); - - const ref = useHookableRef( - 123, - (v) => { - setSet(new Date()); - return v; - }, - (v) => { - setGet(new Date()); - return v; - } - ); - - return ( -
    -
    Ref value read: {get?.toString()}
    -
    Ref value assign: {set?.toString()}
    - -
    - - -
    -
    - ); -} diff --git a/src/useHookableRef/__docs__/story.mdx b/src/useHookableRef/__docs__/story.mdx deleted file mode 100644 index 3d232bcb..00000000 --- a/src/useHookableRef/__docs__/story.mdx +++ /dev/null @@ -1,30 +0,0 @@ -# useHookableRef - -Like `React.useRef` but it is possible to define get and set handlers. - -#### Example - -## Reference - -```ts -export type HookableRefHandler = (v: T) => T; - -export function useHookableRef( - initialValue: T, - onSet?: HookableRefHandler, - onGet?: HookableRefHandler -): React.MutableRefObject; -export function useHookableRef(): React.MutableRefObject; -``` - -#### Importing - -#### Arguments - -- **initialValue** _`any`_ Initial value of a hook. -- **onSet** _`HookableRefHandler`_ Function to be called while `ref.current` value set. Return value will be stored in ref. -- **onGet** _`HookableRefHandler`_ Function to be called while `ref.current` value accessed. Return value will be used as a return value. - -#### Return - -- _`React.MutableRefObject`_ diff --git a/src/useIntersectionObserver/__docs__/example.stories.tsx b/src/useIntersectionObserver/__docs__/example.stories.tsx deleted file mode 100644 index c626d08b..00000000 --- a/src/useIntersectionObserver/__docs__/example.stories.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import * as React from 'react'; -import {useRef} from 'react'; -import {useIntersectionObserver} from '../../index.js'; - -export function Example() { - const rootRef = useRef < HTMLDivElement > (null); - const elementRef = useRef < HTMLDivElement > (null); - const intersection = useIntersectionObserver(elementRef, {root: rootRef, threshold: [0, 0.5]}); - - return ( -
    @@ -45,9 +45,9 @@ You can import hooks two ways: ```ts // from the root of package -import { useMountEffect } from '@react-hookz/web'; +import {useMountEffect} from '@react-hookz/web'; // or single hook directly -import { useMountEffect } from '@react-hookz/web/useMountEffect/index.js'; +import {useMountEffect} from '@react-hookz/web/useMountEffect/index.js'; ``` In case your bundler supports tree-shaking (most of modern does) - both variants are equal and only @@ -55,156 +55,156 @@ necessary code will get into your bundle. Direct hook imports should be consider ## Migrating from react-use -`@react-hookz/web` was built as a [spiritual successor](https://github.com/streamich/react-use/issues/1974) -of `react-use` by one of its former maintainers. - -Coming from `react-use`? Check out our -[migration guide](https://react-hookz.github.io/web/?path=/docs/migrating-from-react-use--page). +`@react-hookz/web` was built as +a [spiritual successor](https://github.com/streamich/react-use/issues/1974) of `react-use` by one of +its former maintainers. ## Hooks list - #### Callback - - [**`useDebouncedCallback`**](https://react-hookz.github.io/web/?path=/docs/callback-usedebouncedcallback--example) - — Makes passed function debounced, otherwise acts like `useCallback`. - - [**`useRafCallback`**](https://react-hookz.github.io/web/?path=/docs/callback-userafcallback--example) - — Makes passed function to be called within next animation frame. - - [**`useThrottledCallback`**](https://react-hookz.github.io/web/?path=/docs/callback-usethrottledcallback--example) - — Makes passed function throttled, otherwise acts like `useCallback`. + - [**`useDebouncedCallback`**](./src/useDebouncedCallback/index.ts) + — Makes passed function debounced, otherwise acts like `useCallback`. + - [**`useRafCallback`**](./src/useRafCallback/index.ts) + — Makes passed function to be called within next animation frame. + - [**`useThrottledCallback`**](./src/useThrottledCallback/index.ts) + — Makes passed function throttled, otherwise acts like `useCallback`. - #### Lifecycle - - [**`useConditionalEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-useconditionaleffect--example) - — Like `useEffect` but callback invoked only if given conditions match a given predicate. - - [**`useCustomCompareEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-usecustomcompareeffect--example) - — Like `useEffect` but uses a provided comparator function to validate dependency changes. - - [**`useDebouncedEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-usedebouncedeffect--example) - — Like `useEffect`, but passed function is debounced. - - [**`useDeepCompareEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-usedeepcompareeffect--example) - — Like `useEffect` but uses `@react-hookz/deep-equal` comparator function to validate deep - dependency changes. - - [**`useFirstMountState`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-usefirstmountstate--example) - — Returns a boolean that is `true` only on first render. - - [**`useIntervalEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-useintervaleffect--example) - — Like `setInterval` but in the form of a React hook. - - [**`useIsMounted`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-useismounted--example) - — Returns a function that yields current mount state. - - [**`useIsomorphicLayoutEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-useisomorphiclayouteffect--page) - — Like `useLayoutEffect` but falls back to `useEffect` during SSR. - - [**`useMountEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-usemounteffect--example) - — Run an effect only when a component mounts. - - [**`useRafEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-useRafEffect--example) - — Like `useEffect`, but the effect is only run within an animation frame. - - [**`useRerender`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-usererender--example) - — Returns a callback that re-renders the component. - - [**`useThrottledEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-usethrottledeffect--example) - — Like `useEffect`, but the passed function is throttled. - - [**`useTimeoutEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-usetimeouteffect--example) - — Like `setTimeout`, but in the form of a React hook. - - [**`useUnmountEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-useunmounteffect--example) - — Run an effect only when a component unmounts. - - [**`useUpdateEffect`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-useupdateeffect--example) - — An effect hook that ignores the first render (not invoked on mount). - - [**`useLifecycleLogger`**](https://react-hookz.github.io/web/?path=/docs/lifecycle-uselifecycleLogger--example) - — This hook provides logging when the component mounts, updates and unmounts. + - [**`useConditionalEffect`**](./src/useConditionalEffect/index.ts) + — Like `useEffect` but callback invoked only if given conditions match a given predicate. + - [**`useCustomCompareEffect`**](./src/useCustomCompareEffect/index.ts) + — Like `useEffect` but uses a provided comparator function to validate dependency changes. + - [**`useDebouncedEffect`**](./src/useDebouncedEffect/index.ts) + — Like `useEffect`, but passed function is debounced. + - [**`useDeepCompareEffect`**](./src/useDeepCompareEffect/index.ts) + — Like `useEffect` but uses `@react-hookz/deep-equal` comparator function to validate deep + dependency changes. + - [**`useFirstMountState`**](./src/useFirstMountState/index.ts) + — Returns a boolean that is `true` only on first render. + - [**`useIntervalEffect`**](./src/useIntervalEffect/index.ts) + — Like `setInterval` but in the form of a React hook. + - [**`useIsMounted`**](./src/useIsMounted/index.ts) + — Returns a function that yields current mount state. + - [**`useIsomorphicLayoutEffect`**](./src/useIsomorphicLayoutEffect/index.ts) + — Like `useLayoutEffect` but falls back to `useEffect` during SSR. + - [**`useMountEffect`**](./src/useMountEffect/index.ts) + — Run an effect only when a component mounts. + - [**`useRafEffect`**](./src/useRafEffect/index.ts) + — Like `useEffect`, but the effect is only run within an animation frame. + - [**`useRerender`**](./src/useRerender/index.ts) + — Returns a callback that re-renders the component. + - [**`useThrottledEffect`**](./src/useThrottledEffect/index.ts) + — Like `useEffect`, but the passed function is throttled. + - [**`useTimeoutEffect`**](./src/useTimeoutEffect/index.ts) + — Like `setTimeout`, but in the form of a React hook. + - [**`useUnmountEffect`**](./src/useUnmountEffect/index.ts) + — Run an effect only when a component unmounts. + - [**`useUpdateEffect`**](./src/useUpdateEffect/index.ts) + — An effect hook that ignores the first render (not invoked on mount). + - [**`useLifecycleLogger`**](./src/useLifecycleLogger/index.ts) + — This hook provides logging when the component mounts, updates and unmounts. - #### State - - [**`useControlledRerenderState`**](https://react-hookz.github.io/web/?path=/docs/state-usecontrolledrerenderstate--example) - — Like `useState`, but its state setter accepts an extra argument, that allows cancelling - renders. - - [**`useCounter`**](https://react-hookz.github.io/web/?path=/docs/state-usecounter--example) - — Tracks a numeric value and offers functions for manipulating it. - - [**`useDebouncedState`**](https://react-hookz.github.io/web/?path=/docs/state-usedebouncedstate--example) - — Like `useState` but its state setter is debounced. - - [**`useFunctionalState`**](https://react-hookz.github.io/web/?path=/docs/state-usefunctionalstate--page) - — Like `useState` but instead of raw state, a state getter function is returned. - - [**`useList`**](https://react-hookz.github.io/web/?path=/docs/state-uselist--example) - — Tracks a list and offers functions for manipulating it. - - [**`useMap`**](https://react-hookz.github.io/web/?path=/docs/state-usemap--example) — Tracks the - state of a `Map`. - - [**`useMediatedState`**](https://react-hookz.github.io/web/?path=/docs/state-usemediatedstate--example) - — Like `useState`, but every value set is passed through a mediator function. - - [**`usePrevious`**](https://react-hookz.github.io/web/?path=/docs/state-useprevious--example) — - Returns the value passed to the hook on previous render. - - [**`usePreviousDistinct`**](https://react-hookz.github.io/web/?path=/docs/state-usepreviousdistinct--example) — - Returns the most recent distinct value passed to the hook on previous renders. - - [**`useQueue`**](https://react-hookz.github.io/web/?path=/docs/state-usequeue--example) — - A state hook implementing FIFO queue. - - [**`useRafState`**](https://react-hookz.github.io/web/?path=/docs/state-userafstate--example) — - Like `React.useState`, but state is only updated within animation frame. - - [**`useRenderCount`**](https://react-hookz.github.io/web/?path=/docs/state-userendercount--example) — - Tracks component's render count including first render. - - [**`useSet`**](https://react-hookz.github.io/web/?path=/docs/state-useset--example) — Tracks the - state of a `Set`. - - [**`useToggle`**](https://react-hookz.github.io/web/?path=/docs/state-usetoggle--example) — Like - `useState`, but can only be `true` or `false`. - - [**`useThrottledState`**](https://react-hookz.github.io/web/?path=/docs/state-usethrottledstate--example) - — Like `useState` but its state setter is throttled. - - [**`useValidator`**](https://react-hookz.github.io/web/?path=/docs/state-usevalidator--example) - — Performs validation when any of the provided dependencies change. + - [**`useControlledRerenderState`**](./src/useControlledRerenderState/index.ts) + — Like `useState`, but its state setter accepts an extra argument, that allows cancelling + renders. + - [**`useCounter`**](./src/useCounter/index.ts) + — Tracks a numeric value and offers functions for manipulating it. + - [**`useDebouncedState`**](./src/useDebouncedState/index.ts) + — Like `useState` but its state setter is debounced. + - [**`useFunctionalState`**](./src/useFunctionalState/index.ts) + — Like `useState` but instead of raw state, a state getter function is returned. + - [**`useList`**](./src/useList/index.ts) + — Tracks a list and offers functions for manipulating it. + - [**`useMap`**](./src/useMap/index.ts) — Tracks the + state of a `Map`. + - [**`useMediatedState`**](./src/useMediatedState/index.ts) + — Like `useState`, but every value set is passed through a mediator function. + - [**`usePrevious`**](./src/usePrevious/index.ts) — + Returns the value passed to the hook on previous render. + - [**`usePreviousDistinct`**](./src/usePreviousDistinct/index.ts) — + Returns the most recent distinct value passed to the hook on previous renders. + - [**`useQueue`**](./src/useQueue/index.ts) — + A state hook implementing FIFO queue. + - [**`useRafState`**](./src/useRafState/index.ts) — + Like `React.useState`, but state is only updated within animation frame. + - [**`useRenderCount`**](./src/useRenderCount/index.ts) — + Tracks component's render count including first render. + - [**`useSet`**](./src/useSet/index.ts) — Tracks the + state of a `Set`. + - [**`useToggle`**](./src/useToggle/index.ts) — Like + `useState`, but can only be `true` or `false`. + - [**`useThrottledState`**](./src/useThrottledState/index.ts) + — Like `useState` but its state setter is throttled. + - [**`useValidator`**](./src/useValidator/index.ts) + — Performs validation when any of the provided dependencies change. - #### Navigator - - [**`useNetworkState`**](https://react-hookz.github.io/web/?path=/docs/navigator-usenetworkstate--example) - — Tracks the state of the browser's network connection. - - [**`useVibrate`**](https://react-hookz.github.io/web/?path=/docs/navigator-usevibrate--example) - — Provides vibration feedback using the Vibration API. - - [**`usePermission`**](https://react-hookz.github.io/web/?path=/docs/navigator-usepermission--example) - — Tracks the state of a permission. + - [**`useNetworkState`**](./src/useNetworkState/index.ts) + — Tracks the state of the browser's network connection. + - [**`useVibrate`**](./src/useVibrate/index.ts) + — Provides vibration feedback using the Vibration API. + - [**`usePermission`**](./src/usePermission/index.ts) + — Tracks the state of a permission. - #### Miscellaneous - - [**`useSyncedRef`**](https://react-hookz.github.io/web/?path=/docs/miscellaneous-usesyncedref--example) - — Like `useRef`, but it returns an immutable ref that contains the actual value. - - [**`useCustomCompareMemo`**](https://react-hookz.github.io/web/?path=/docs/miscellaneous-useCustomCompareMemo--example) - — Like `useMemo` but uses provided comparator function to validate dependency changes. - - [**`useDeepCompareMemo`**](https://react-hookz.github.io/web/?path=/docs/miscellaneous-useDeepCompareMemo--example) - — Like `useMemo` but uses `@react-hookz/deep-equal` comparator function to validate deep - dependency changes. - - [**`useHookableRef`**](https://react-hookz.github.io/web/?path=/docs/miscellaneous-usehookableref--example) - — Like `useRef` but it is possible to define handlers for getting and setting the value. + - [**`useSyncedRef`**](./src/useSyncedRef/index.ts) + — Like `useRef`, but it returns an immutable ref that contains the actual value. + - [**`useCustomCompareMemo`**](./src/useCustomCompareMemo/index.ts) + — Like `useMemo` but uses provided comparator function to validate dependency changes. + - [**`useDeepCompareMemo`**](./src/useDeepCompareMemo/index.ts) + — Like `useMemo` but uses `@react-hookz/deep-equal` comparator function to validate deep + dependency changes. + - [**`useHookableRef`**](./src/useHookableRef/index.ts) + — Like `useRef` but it is possible to define handlers for getting and setting the value. - #### Side-effect - - [**`useAsync`**](https://react-hookz.github.io/web/?path=/docs/side-effect-useasync--example) — - Executes provided async function and tracks its results and errors. - - [**`useAsyncAbortable`**](https://react-hookz.github.io/web/?path=/docs/side-effect-useasyncabortable--example) - — Like `useAsync`, but also provides `AbortSignal` as first function argument to the async function. - - [**`useCookieValue`**](https://react-hookz.github.io/web/?path=/docs/side-effect-usecookievalue--example) - — Manages a single cookie. - - [**`useLocalStorageValue`**](https://react-hookz.github.io/web/?path=/docs/side-effect-uselocalstoragevalue--example) - — Manages a single LocalStorage key. - - [**`useSessionStorageValue`**](https://react-hookz.github.io/web/?path=/docs/side-effect-usesessionstoragevalue--example) - — Manages a single SessionStorage key. + - [**`useAsync`**](./src/useAsync/index.ts) + — Executes provided async function and tracks its results and errors. + - [**`useAsyncAbortable`**](./src/useAsyncAbortable/index.ts) + — Like `useAsync`, but also provides `AbortSignal` as first function argument to the async + function. + - [**`useCookieValue`**](./src/useCookieValue/index.ts) + — Manages a single cookie. + - [**`useLocalStorageValue`**](./src/useLocalStorageValue/index.ts) + — Manages a single LocalStorage key. + - [**`useSessionStorageValue`**](./src/useSessionStorageValue/index.ts) + — Manages a single SessionStorage key. - #### Sensor - - [**`useIntersectionObserver`**](https://react-hookz.github.io/web/?path=/docs/sensor-useintersectionobserver--example) - — Observe changes in the intersection of a target element with an ancestor element or with the - viewport. - - [**`useMeasure`**](https://react-hookz.github.io/web/?path=/docs/sensor-usemeasure--example) — - Uses `ResizeObserver` to track an element's dimensions and to re-render the component when they change. - - [**`useMediaQuery`**](https://react-hookz.github.io/web/?path=/docs/sensor-usemediaquery--example) - — Tracks the state of a CSS media query. - - [**`useResizeObserver`**](https://react-hookz.github.io/web/?path=/docs/sensor-useresizeobserver--example) - — Invokes a callback whenever `ResizeObserver` detects a change to the target's size. - - [**`useScreenOrientation`**](https://react-hookz.github.io/web/?path=/docs/sensor-usescreenorientation--example) - — Checks if the screen is in `portrait` or `landscape` orientation and automatically re-renders on - orientation change. - - [**`useDocumentVisibility`**](https://react-hookz.github.io/web/?path=/docs/sensor-usedocumentvisibility--example) - — Tracks document visibility state. + - [**`useIntersectionObserver`**](./src/useIntersectionObserver/index.ts) + — Observe changes in the intersection of a target element with an ancestor element or with the + viewport. + - [**`useMeasure`**](./src/useMeasure/index.ts) — + Uses `ResizeObserver` to track an element's dimensions and to re-render the component when they + change. + - [**`useMediaQuery`**](./src/useMediaQuery/index.ts) + — Tracks the state of a CSS media query. + - [**`useResizeObserver`**](./src/useResizeObserver/index.ts) + — Invokes a callback whenever `ResizeObserver` detects a change to the target's size. + - [**`useScreenOrientation`**](./src/useScreenOrientation/index.ts) + — Checks if the screen is in `portrait` or `landscape` orientation and automatically re-renders + on orientation change. + - [**`useDocumentVisibility`**](./src/useDocumentVisibility/index.ts) + — Tracks document visibility state. - #### Dom - - [**`useClickOutside`**](https://react-hookz.github.io/web/?path=/docs/dom-useclickoutside--example) - — Triggers a callback when the user clicks outside a target element. - - [**`useEventListener`**](https://react-hookz.github.io/web/?path=/docs/dom-useeventlistener--example) - — Subscribes an event listener to a target element. - - [**`useKeyboardEvent`**](https://react-hookz.github.io/web/?path=/docs/dom-usekeyboardevent--example) - — Invokes a callback when a keyboard event occurs on the chosen target. - - [**`useWindowSize`**](https://react-hookz.github.io/web/?path=/docs/dom-usewindowsize--example) - — Tracks the inner dimensions of the browser window. + - [**`useClickOutside`**](./src/useClickOutside/index.ts) + — Triggers a callback when the user clicks outside a target element. + - [**`useEventListener`**](./src/useEventListener/index.ts) + — Subscribes an event listener to a target element. + - [**`useKeyboardEvent`**](./src/useKeyboardEvent/index.ts) + — Invokes a callback when a keyboard event occurs on the chosen target. + - [**`useWindowSize`**](./src/useWindowSize/index.ts) + — Tracks the inner dimensions of the browser window. ## Contributors diff --git a/yarn.lock b/yarn.lock index f6fed5cc..7251c5c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1140,9 +1140,9 @@ __metadata: linkType: hard "@react-hookz/deep-equal@npm:^3.0.1": - version: 3.0.1 - resolution: "@react-hookz/deep-equal@npm:3.0.1" - checksum: 10c0/b70ff07e85ea53e624b17321f29450a5e591d6dc5d4493deda4880e8c7f3b4e19f3b62dbf005afa25ccfd350fc4bc8c47e482a03cb995efd9eeade35bdf29dcf + version: 3.0.3 + resolution: "@react-hookz/deep-equal@npm:3.0.3" + checksum: 10c0/4ef12e7caaa3a17564bcc9f107ce167ae72e95d057614ff4a675e2ac2f64489c69a7d06f0f146de74c657dbc4d06234177fbc4d8b5af183b274ba888d5b44319 languageName: node linkType: hard @@ -1183,11 +1183,11 @@ __metadata: linkType: hard "@react-hookz/eslint-formatter-gha@npm:^3.0.2": - version: 3.0.2 - resolution: "@react-hookz/eslint-formatter-gha@npm:3.0.2" + version: 3.0.3 + resolution: "@react-hookz/eslint-formatter-gha@npm:3.0.3" dependencies: "@actions/core": "npm:^1.11.1" - checksum: 10c0/148b4427bfb3fb3aba1c5f566b25bb470c4e32b42fe67e21bd0b27681ac489ef414507d61be56d4fd37c3a41b99672dec2d8318f64ebf53f6c6eb8acb4784a26 + checksum: 10c0/6765a9fdc6e779b1809d97385bccaef8e0395e2ccf39479e39685e667db0e72ad11e4951bf4ff1f649fc8503404c80dbdf555c5475e59fd3a231ebbd9cbb0150 languageName: node linkType: hard @@ -1220,143 +1220,143 @@ __metadata: vitest: "npm:^2.1.8" peerDependencies: js-cookie: ^3.0.5 - react: ^16.8 || ^17 || ^18 || ^19 - react-dom: ^16.8 || ^17 || ^18 || ^19 + react: ^16.8 || ^17 || ^18 + react-dom: ^16.8 || ^17 || ^18 peerDependenciesMeta: js-cookie: optional: true languageName: unknown linkType: soft -"@rollup/rollup-android-arm-eabi@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.28.1" +"@rollup/rollup-android-arm-eabi@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.29.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-android-arm64@npm:4.28.1" +"@rollup/rollup-android-arm64@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-android-arm64@npm:4.29.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-darwin-arm64@npm:4.28.1" +"@rollup/rollup-darwin-arm64@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.29.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-darwin-x64@npm:4.28.1" +"@rollup/rollup-darwin-x64@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.29.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.28.1" +"@rollup/rollup-freebsd-arm64@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.29.1" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-freebsd-x64@npm:4.28.1" +"@rollup/rollup-freebsd-x64@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.29.1" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.28.1" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.29.1" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.28.1" +"@rollup/rollup-linux-arm-musleabihf@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.29.1" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.28.1" +"@rollup/rollup-linux-arm64-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.29.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.28.1" +"@rollup/rollup-linux-arm64-musl@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.29.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loongarch64-gnu@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.28.1" +"@rollup/rollup-linux-loongarch64-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.29.1" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.1" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.29.1" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.28.1" +"@rollup/rollup-linux-riscv64-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.29.1" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.28.1" +"@rollup/rollup-linux-s390x-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.29.1" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.28.1" +"@rollup/rollup-linux-x64-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.29.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.28.1" +"@rollup/rollup-linux-x64-musl@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.29.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.28.1" +"@rollup/rollup-win32-arm64-msvc@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.29.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.28.1" +"@rollup/rollup-win32-ia32-msvc@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.29.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.28.1": - version: 4.28.1 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.28.1" +"@rollup/rollup-win32-x64-msvc@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.29.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1794,15 +1794,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.18.1, @typescript-eslint/eslint-plugin@npm:^8.17.0": - version: 8.18.1 - resolution: "@typescript-eslint/eslint-plugin@npm:8.18.1" +"@typescript-eslint/eslint-plugin@npm:8.18.2, @typescript-eslint/eslint-plugin@npm:^8.17.0": + version: 8.18.2 + resolution: "@typescript-eslint/eslint-plugin@npm:8.18.2" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.18.1" - "@typescript-eslint/type-utils": "npm:8.18.1" - "@typescript-eslint/utils": "npm:8.18.1" - "@typescript-eslint/visitor-keys": "npm:8.18.1" + "@typescript-eslint/scope-manager": "npm:8.18.2" + "@typescript-eslint/type-utils": "npm:8.18.2" + "@typescript-eslint/utils": "npm:8.18.2" + "@typescript-eslint/visitor-keys": "npm:8.18.2" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -1811,64 +1811,64 @@ __metadata: "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/7994d323228f3fc3ec124291cd02761251bcd9a5a6356001d2cb8f68abdb400c3cfbeb343d6941d8e6b6c8d2d616a278bbb3b6d9ed839ba5148a05f60a1f67b4 + checksum: 10c0/ce854835a12747cd8efea5b70921e1a80b62af2a2d311b09343862a6af225b821a6729784547d37eb5f8eb286d1f086f41f305445adc3a054e37cc8c71561ccd languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.18.1, @typescript-eslint/parser@npm:^8.17.0": - version: 8.18.1 - resolution: "@typescript-eslint/parser@npm:8.18.1" +"@typescript-eslint/parser@npm:8.18.2, @typescript-eslint/parser@npm:^8.17.0": + version: 8.18.2 + resolution: "@typescript-eslint/parser@npm:8.18.2" dependencies: - "@typescript-eslint/scope-manager": "npm:8.18.1" - "@typescript-eslint/types": "npm:8.18.1" - "@typescript-eslint/typescript-estree": "npm:8.18.1" - "@typescript-eslint/visitor-keys": "npm:8.18.1" + "@typescript-eslint/scope-manager": "npm:8.18.2" + "@typescript-eslint/types": "npm:8.18.2" + "@typescript-eslint/typescript-estree": "npm:8.18.2" + "@typescript-eslint/visitor-keys": "npm:8.18.2" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/23ab30b3f00b86108137e7df03710a088046ead3582595b0f8e17d5062770365e24e0a1ae3398bb3a1c29aa0f05a0de30887e2e0f6fb86163e878dd0eed1b25c + checksum: 10c0/ea28130e0a2733e3e40708ddfbb7b6522d9644e49cae2c3dc3faddd7ac7e7f73ed9775f19463ca0deca55edb52f5d9d522c206bb2a14fe3c9c6eef03d144b41f languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.18.1": - version: 8.18.1 - resolution: "@typescript-eslint/scope-manager@npm:8.18.1" +"@typescript-eslint/scope-manager@npm:8.18.2": + version: 8.18.2 + resolution: "@typescript-eslint/scope-manager@npm:8.18.2" dependencies: - "@typescript-eslint/types": "npm:8.18.1" - "@typescript-eslint/visitor-keys": "npm:8.18.1" - checksum: 10c0/97c503b2ece79b6c99ca8e6a5f1f40855cf72f17fbf05e42e62d19c2666e7e6f5df9bf71f13dbc4720c5ee0397670ba8052482a90441fbffa901da5f2e739565 + "@typescript-eslint/types": "npm:8.18.2" + "@typescript-eslint/visitor-keys": "npm:8.18.2" + checksum: 10c0/2c05f5361e84d687555717bfb15988d5c11601c1094edeaafc8db5c961359982d7aeb192d775d348ab65ac43c5a6c968f3e8503ee1e6bf875aca27588907139f languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.18.1": - version: 8.18.1 - resolution: "@typescript-eslint/type-utils@npm:8.18.1" +"@typescript-eslint/type-utils@npm:8.18.2": + version: 8.18.2 + resolution: "@typescript-eslint/type-utils@npm:8.18.2" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.18.1" - "@typescript-eslint/utils": "npm:8.18.1" + "@typescript-eslint/typescript-estree": "npm:8.18.2" + "@typescript-eslint/utils": "npm:8.18.2" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/cfe5362a22fa5e18a2662928904da024e42c84cb58a46238b9b61edafcd046f53c9505637176c8cd1c386165c6a6ed15a2b51700495cad6c20e0e33499d483a1 + checksum: 10c0/0441ca33f7381abae559e188bd7b2844159806e8bf5ab8d6f6d9b3a7a6bf9f9d0babf8452e83565da0e9841f656b25f44fd96f40bda1006c934535e37a997c6a languageName: node linkType: hard -"@typescript-eslint/types@npm:8.18.1": - version: 8.18.1 - resolution: "@typescript-eslint/types@npm:8.18.1" - checksum: 10c0/0a2ca5f7cdebcc844b6bc1e5afc5d83b563f55917d20e3fea3a17ed39c54b003178e26b5ec535113f45c93c569b46628d9a67defa70c01cbdfa801573fed69a2 +"@typescript-eslint/types@npm:8.18.2": + version: 8.18.2 + resolution: "@typescript-eslint/types@npm:8.18.2" + checksum: 10c0/4abf252671dd7c3a5c9b7ae2f523d91b04d937dbb601f3bc0182c234d50e4958be67248c1bb37833584ff0128844243145753614c7e80615b6cd6813f0713872 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.18.1": - version: 8.18.1 - resolution: "@typescript-eslint/typescript-estree@npm:8.18.1" +"@typescript-eslint/typescript-estree@npm:8.18.2": + version: 8.18.2 + resolution: "@typescript-eslint/typescript-estree@npm:8.18.2" dependencies: - "@typescript-eslint/types": "npm:8.18.1" - "@typescript-eslint/visitor-keys": "npm:8.18.1" + "@typescript-eslint/types": "npm:8.18.2" + "@typescript-eslint/visitor-keys": "npm:8.18.2" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -1877,32 +1877,32 @@ __metadata: ts-api-utils: "npm:^1.3.0" peerDependencies: typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/7ecb061dc63c729b23f4f15db5736ca93b1ae633108400e6c31cf8af782494912f25c3683f9f952dbfd10cb96031caba247a1ad406abf5d163639a00ac3ce5a3 + checksum: 10c0/648296d6c95d80d37bdb5ee6662554af425ff85f1c4805ea344234a1c386c91a36b05cddf52c80264912b29693d3e1b9a45d84414a3aee1393ace2d0babc9e95 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.18.1, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.13.0": - version: 8.18.1 - resolution: "@typescript-eslint/utils@npm:8.18.1" +"@typescript-eslint/utils@npm:8.18.2, @typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.13.0": + version: 8.18.2 + resolution: "@typescript-eslint/utils@npm:8.18.2" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.18.1" - "@typescript-eslint/types": "npm:8.18.1" - "@typescript-eslint/typescript-estree": "npm:8.18.1" + "@typescript-eslint/scope-manager": "npm:8.18.2" + "@typescript-eslint/types": "npm:8.18.2" + "@typescript-eslint/typescript-estree": "npm:8.18.2" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/1e29408bd8fbda9f3386dabdb2b7471dacff28342d5bd6521ca3b7932df0cae100030d2eac75d946a82cbefa33f78000eed4ce789128fdea069ffeabd4429d80 + checksum: 10c0/1cb86e2e4f4e29cbaebe4272c15d98f6193b1476f65dd028d77bf4fd09e715b01d82619509c466b95056148db8d3e04f0a3ef27dc2f034a7c7ab4b2d429e58bb languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.18.1": - version: 8.18.1 - resolution: "@typescript-eslint/visitor-keys@npm:8.18.1" +"@typescript-eslint/visitor-keys@npm:8.18.2": + version: 8.18.2 + resolution: "@typescript-eslint/visitor-keys@npm:8.18.2" dependencies: - "@typescript-eslint/types": "npm:8.18.1" + "@typescript-eslint/types": "npm:8.18.2" eslint-visitor-keys: "npm:^4.2.0" - checksum: 10c0/68651ae1825dbd660ea39b4e1d1618f6ad0026fa3a04aecec296750977cab316564e3e2ace8edbebf1ae86bd17d86acc98cac7b6e9aad4e1c666bd26f18706ad + checksum: 10c0/b8fe05bc3bafa7930d6671c2e1807ae47788060eb573e6a000c9597690dfaff6a4eb9f6f934719a18bae631d238ca32847510aeecc61032170e58ab45244e869 languageName: node linkType: hard @@ -1933,8 +1933,8 @@ __metadata: linkType: hard "@vitest/eslint-plugin@npm:^1.1.14": - version: 1.1.18 - resolution: "@vitest/eslint-plugin@npm:1.1.18" + version: 1.1.20 + resolution: "@vitest/eslint-plugin@npm:1.1.20" peerDependencies: "@typescript-eslint/utils": ">= 8.0" eslint: ">= 8.57.0" @@ -1945,7 +1945,7 @@ __metadata: optional: true vitest: optional: true - checksum: 10c0/316a9a6b2b9b22fc36037446607ef9a53d7ee3983a9e340f769dc3c136dd90767c29a62c14b860abaf6288cdef8f84cb92f092d2c90bc31ce04cfccf022ef6f9 + checksum: 10c0/d6ef1a55d0763fb0d85e9464d6c24bdd840c78c98c0ffe990933dc0f44dde433dbd7235cd011930908a3a5e24d8c432ad34c6b7171dffccc75e9745b8e76b159 languageName: node linkType: hard @@ -2208,13 +2208,13 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" +"array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "array-buffer-byte-length@npm:1.0.2" dependencies: - call-bind: "npm:^1.0.5" - is-array-buffer: "npm:^3.0.4" - checksum: 10c0/f5cdf54527cd18a3d2852ddf73df79efec03829e7373a8322ef5df2b4ef546fb365c19c71d6b42d641cb6bfe0f1a2f19bc0ece5b533295f86d7c3d522f228917 + call-bound: "npm:^1.0.3" + is-array-buffer: "npm:^3.0.5" + checksum: 10c0/74e1d2d996941c7a1badda9cabb7caab8c449db9086407cad8a1b71d2604cc8abf105db8ca4e02c04579ec58b7be40279ddb09aea4784832984485499f48432d languageName: node linkType: hard @@ -2483,7 +2483,7 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": +"call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": version: 1.0.8 resolution: "call-bind@npm:1.0.8" dependencies: @@ -2513,9 +2513,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001688": - version: 1.0.30001689 - resolution: "caniuse-lite@npm:1.0.30001689" - checksum: 10c0/51cf99751dddfba24e13556ae0e0f38c062f76d49f2e24cce3d28e71a0325ca6fe04fe51b4a0e8467d601d94e72fea84f160bf577e7cbb5677f14ac673b6da20 + version: 1.0.30001690 + resolution: "caniuse-lite@npm:1.0.30001690" + checksum: 10c0/646bd469032afa90400a84dec30a2b00a6eda62c03ead358117e3f884cda8aacec02ec058a6dbee5eaf9714f83e483b9b0eb4fb42febb8076569f5ca40f1d347 languageName: node linkType: hard @@ -2560,7 +2560,14 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^5.3.0, chalk@npm:~5.3.0": +"chalk@npm:^5.3.0": + version: 5.4.1 + resolution: "chalk@npm:5.4.1" + checksum: 10c0/b23e88132c702f4855ca6d25cb5538b1114343e41472d5263ee8a37cccfccd9c4216d111e1097c6a27830407a1dc81fecdf2a56f2c63033d4dbbd88c10b0dcef + languageName: node + linkType: hard + +"chalk@npm:~5.3.0": version: 5.3.0 resolution: "chalk@npm:5.3.0" checksum: 10c0/8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09 @@ -3081,36 +3088,36 @@ __metadata: languageName: node linkType: hard -"data-view-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-buffer@npm:1.0.1" +"data-view-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-buffer@npm:1.0.2" dependencies: - call-bind: "npm:^1.0.6" + call-bound: "npm:^1.0.3" es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10c0/8984119e59dbed906a11fcfb417d7d861936f16697a0e7216fe2c6c810f6b5e8f4a5281e73f2c28e8e9259027190ac4a33e2a65fdd7fa86ac06b76e838918583 + is-data-view: "npm:^1.0.2" + checksum: 10c0/7986d40fc7979e9e6241f85db8d17060dd9a71bd53c894fa29d126061715e322a4cd47a00b0b8c710394854183d4120462b980b8554012acc1c0fa49df7ad38c languageName: node linkType: hard -"data-view-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-byte-length@npm:1.0.1" +"data-view-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-byte-length@npm:1.0.2" dependencies: - call-bind: "npm:^1.0.7" + call-bound: "npm:^1.0.3" es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10c0/b7d9e48a0cf5aefed9ab7d123559917b2d7e0d65531f43b2fd95b9d3a6b46042dd3fca597c42bba384e66b70d7ad66ff23932f8367b241f53d93af42cfe04ec2 + is-data-view: "npm:^1.0.2" + checksum: 10c0/f8a4534b5c69384d95ac18137d381f18a5cfae1f0fc1df0ef6feef51ef0d568606d970b69e02ea186c6c0f0eac77fe4e6ad96fec2569cc86c3afcc7475068c55 languageName: node linkType: hard -"data-view-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "data-view-byte-offset@npm:1.0.0" +"data-view-byte-offset@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-offset@npm:1.0.1" dependencies: - call-bind: "npm:^1.0.6" + call-bound: "npm:^1.0.2" es-errors: "npm:^1.3.0" is-data-view: "npm:^1.0.1" - checksum: 10c0/21b0d2e53fd6e20cc4257c873bf6d36d77bd6185624b84076c0a1ddaa757b49aaf076254006341d35568e89f52eecd1ccb1a502cfb620f2beca04f48a6a62a8f + checksum: 10c0/fa7aa40078025b7810dcffc16df02c480573b7b53ef1205aa6a61533011005c1890e5ba17018c692ce7c900212b547262d33279fde801ad9843edc0863bf78c4 languageName: node linkType: hard @@ -3251,7 +3258,7 @@ __metadata: languageName: node linkType: hard -"dunder-proto@npm:^1.0.0": +"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": version: 1.0.1 resolution: "dunder-proto@npm:1.0.1" dependencies: @@ -3279,9 +3286,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.5.73": - version: 1.5.74 - resolution: "electron-to-chromium@npm:1.5.74" - checksum: 10c0/1a93119adbdeb0bba4c29e3bad5a48e6a4626ae50fbff2bc5c207f32e67ed64a5d8db6500befb44080359be3b18be7bf830fb920d5199d935be95bb9f97deb10 + version: 1.5.76 + resolution: "electron-to-chromium@npm:1.5.76" + checksum: 10c0/5a977be9fd5810769a7b4eae0e4b41b6beca65f2b3f3b7442819f6c93366d767d183cfbf408714f944a9bf3aa304f8c9ab9d0cdfd8e878ab8f2cbb61f8b22acd languageName: node linkType: hard @@ -3323,12 +3330,12 @@ __metadata: linkType: hard "enhanced-resolve@npm:^5.17.1": - version: 5.17.1 - resolution: "enhanced-resolve@npm:5.17.1" + version: 5.18.0 + resolution: "enhanced-resolve@npm:5.18.0" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.2.0" - checksum: 10c0/81a0515675eca17efdba2cf5bad87abc91a528fc1191aad50e275e74f045b41506167d420099022da7181c8d787170ea41e4a11a0b10b7a16f6237daecb15370 + checksum: 10c0/5fcc264a6040754ab5b349628cac2bb5f89cee475cbe340804e657a5b9565f70e6aafb338d5895554eb0ced9f66c50f38a255274a0591dcb64ee17c549c459ce languageName: node linkType: hard @@ -3379,26 +3386,26 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5": - version: 1.23.6 - resolution: "es-abstract@npm:1.23.6" +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6": + version: 1.23.7 + resolution: "es-abstract@npm:1.23.7" dependencies: - array-buffer-byte-length: "npm:^1.0.1" + array-buffer-byte-length: "npm:^1.0.2" arraybuffer.prototype.slice: "npm:^1.0.4" available-typed-arrays: "npm:^1.0.7" call-bind: "npm:^1.0.8" call-bound: "npm:^1.0.3" - data-view-buffer: "npm:^1.0.1" - data-view-byte-length: "npm:^1.0.1" - data-view-byte-offset: "npm:^1.0.0" + data-view-buffer: "npm:^1.0.2" + data-view-byte-length: "npm:^1.0.2" + data-view-byte-offset: "npm:^1.0.1" es-define-property: "npm:^1.0.1" es-errors: "npm:^1.3.0" es-object-atoms: "npm:^1.0.0" es-set-tostringtag: "npm:^2.0.3" es-to-primitive: "npm:^1.3.0" - function.prototype.name: "npm:^1.1.7" + function.prototype.name: "npm:^1.1.8" get-intrinsic: "npm:^1.2.6" - get-symbol-description: "npm:^1.0.2" + get-symbol-description: "npm:^1.1.0" globalthis: "npm:^1.0.4" gopd: "npm:^1.2.0" has-property-descriptors: "npm:^1.0.2" @@ -3406,32 +3413,31 @@ __metadata: has-symbols: "npm:^1.1.0" hasown: "npm:^2.0.2" internal-slot: "npm:^1.1.0" - is-array-buffer: "npm:^3.0.4" + is-array-buffer: "npm:^3.0.5" is-callable: "npm:^1.2.7" is-data-view: "npm:^1.0.2" - is-negative-zero: "npm:^2.0.3" is-regex: "npm:^1.2.1" - is-shared-array-buffer: "npm:^1.0.3" + is-shared-array-buffer: "npm:^1.0.4" is-string: "npm:^1.1.1" - is-typed-array: "npm:^1.1.13" + is-typed-array: "npm:^1.1.15" is-weakref: "npm:^1.1.0" - math-intrinsics: "npm:^1.0.0" + math-intrinsics: "npm:^1.1.0" object-inspect: "npm:^1.13.3" object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.5" + object.assign: "npm:^4.1.7" regexp.prototype.flags: "npm:^1.5.3" safe-array-concat: "npm:^1.1.3" safe-regex-test: "npm:^1.1.0" string.prototype.trim: "npm:^1.2.10" string.prototype.trimend: "npm:^1.0.9" string.prototype.trimstart: "npm:^1.0.8" - typed-array-buffer: "npm:^1.0.2" - typed-array-byte-length: "npm:^1.0.1" - typed-array-byte-offset: "npm:^1.0.3" + typed-array-buffer: "npm:^1.0.3" + typed-array-byte-length: "npm:^1.0.3" + typed-array-byte-offset: "npm:^1.0.4" typed-array-length: "npm:^1.0.7" - unbox-primitive: "npm:^1.0.2" - which-typed-array: "npm:^1.1.16" - checksum: 10c0/87c9cd85264f42e993ee2f7157c5e49c2866651bd7ff89a0799cc5bcfb962b19814e1f58c9970101072bab2a68a4fb859f094c6e8f161ba8042569431f0c1ec4 + unbox-primitive: "npm:^1.1.0" + which-typed-array: "npm:^1.1.18" + checksum: 10c0/68d24e56f47d773639d49c561366c8d9e775187e0d64f011209261fcb3a63caf764f60c0e66940bbd8815a862f9ca8114f6a5dfdeb776da87436d46bcd82ae48 languageName: node linkType: hard @@ -3450,25 +3456,26 @@ __metadata: linkType: hard "es-iterator-helpers@npm:^1.1.0": - version: 1.2.0 - resolution: "es-iterator-helpers@npm:1.2.0" + version: 1.2.1 + resolution: "es-iterator-helpers@npm:1.2.1" dependencies: - call-bind: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.3" + es-abstract: "npm:^1.23.6" es-errors: "npm:^1.3.0" es-set-tostringtag: "npm:^2.0.3" function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.4" + get-intrinsic: "npm:^1.2.6" globalthis: "npm:^1.0.4" - gopd: "npm:^1.0.1" + gopd: "npm:^1.2.0" has-property-descriptors: "npm:^1.0.2" - has-proto: "npm:^1.0.3" - has-symbols: "npm:^1.0.3" - internal-slot: "npm:^1.0.7" - iterator.prototype: "npm:^1.1.3" - safe-array-concat: "npm:^1.1.2" - checksum: 10c0/2bd60580dfeae353f5b80445d2808da745e97eeacdb663a8c4d99a12046873830a06d377e9d5e88fe54eece7c94319a5ce5a01220e24d71394ceca8d3ef621d7 + has-proto: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + internal-slot: "npm:^1.1.0" + iterator.prototype: "npm:^1.1.4" + safe-array-concat: "npm:^1.1.3" + checksum: 10c0/97e3125ca472d82d8aceea11b790397648b52c26d8768ea1c1ee6309ef45a8755bb63225a43f3150c7591cffc17caf5752459f1e70d583b4184370a8f04ebd2f languageName: node linkType: hard @@ -3766,8 +3773,8 @@ __metadata: linkType: hard "eslint-plugin-jest@npm:^28.9.0": - version: 28.9.0 - resolution: "eslint-plugin-jest@npm:28.9.0" + version: 28.10.0 + resolution: "eslint-plugin-jest@npm:28.10.0" dependencies: "@typescript-eslint/utils": "npm:^6.0.0 || ^7.0.0 || ^8.0.0" peerDependencies: @@ -3779,7 +3786,7 @@ __metadata: optional: true jest: optional: true - checksum: 10c0/56b0d2fb18a32bf56b0eb8c7790c355513535a239451d9d00184829cbd0ba35b6c68eec64e850a6299453f9c37338b6797d3184594c0326c8fdcc029024065b8 + checksum: 10c0/f1eeabcc9bf650e755ef07da501271e9a54d2ef6414c648a33d5dc71f2545fcfc060d06846549ec7978e7bd9d11e6cb57b33ccd97ebf5a86ee4682853c06381b languageName: node linkType: hard @@ -3813,8 +3820,8 @@ __metadata: linkType: hard "eslint-plugin-n@npm:^17.14.0": - version: 17.15.0 - resolution: "eslint-plugin-n@npm:17.15.0" + version: 17.15.1 + resolution: "eslint-plugin-n@npm:17.15.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.1" enhanced-resolve: "npm:^5.17.1" @@ -3826,7 +3833,7 @@ __metadata: semver: "npm:^7.6.3" peerDependencies: eslint: ">=8.23.0" - checksum: 10c0/e874e77e9e463978ae556cefe70d7b90e53cc3286b0257ac81b639d5eaeffe8cb609e3bbf246c9f1c61f35589c22a449e3723d948e27d1bab5a0dfee9d8cea04 + checksum: 10c0/0b52ffed0b80d74977e1157b4c0cc79efcdf81ea35d2997bdbf02f3d41f428f52ccb7fb3a08cf02e6fed8ae1bf4708d69fdf496e75b8b2bd3e671029d89ccc6c languageName: node linkType: hard @@ -4185,11 +4192,11 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.17.1 - resolution: "fastq@npm:1.17.1" + version: 1.18.0 + resolution: "fastq@npm:1.18.0" dependencies: reusify: "npm:^1.0.4" - checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34 + checksum: 10c0/7be87ecc41762adbddf558d24182f50a4b1a3ef3ee807d33b7623da7aee5faecdcc94fce5aa13fe91df93e269f383232bbcdb2dc5338cd1826503d6063221f36 languageName: node linkType: hard @@ -4405,16 +4412,17 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.7": - version: 1.1.7 - resolution: "function.prototype.name@npm:1.1.7" +"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8": + version: 1.1.8 + resolution: "function.prototype.name@npm:1.1.8" dependencies: call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" define-properties: "npm:^1.2.1" functions-have-names: "npm:^1.2.3" hasown: "npm:^2.0.2" is-callable: "npm:^1.2.7" - checksum: 10c0/f369f794099a9883e8253290d84a7a3e37ed9d4e2b185bdb3034fcfe02d6ee9dd72b41ea1e6e556c49bce897c535aa373b8e31dab5b018875cf9bc0a70c5215f + checksum: 10c0/e920a2ab52663005f3cbe7ee3373e3c71c1fb5558b0b0548648cdf3e51961085032458e26c71ff1a8c8c20e7ee7caeb03d43a5d1fa8610c459333323a2e71253 languageName: node linkType: hard @@ -4495,7 +4503,7 @@ __metadata: languageName: node linkType: hard -"get-symbol-description@npm:^1.0.2": +"get-symbol-description@npm:^1.1.0": version: 1.1.0 resolution: "get-symbol-description@npm:1.1.0" dependencies: @@ -4609,9 +4617,9 @@ __metadata: linkType: hard "globals@npm:^15.11.0, globals@npm:^15.3.0, globals@npm:^15.9.0": - version: 15.13.0 - resolution: "globals@npm:15.13.0" - checksum: 10c0/640365115ca5f81d91e6a7667f4935021705e61a1a5a76a6ec5c3a5cdf6e53f165af7f9db59b7deb65cf2e1f83d03ac8d6660d0b14c569c831a9b6483eeef585 + version: 15.14.0 + resolution: "globals@npm:15.14.0" + checksum: 10c0/039deb8648bd373b7940c15df9f96ab7508fe92b31bbd39cbd1c1a740bd26db12457aa3e5d211553b234f30e9b1db2fee3683012f543a01a6942c9062857facb languageName: node linkType: hard @@ -4686,9 +4694,9 @@ __metadata: linkType: hard "has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 10c0/724eb1485bfa3cdff6f18d95130aa190561f00b3fcf9f19dc640baf8176b5917c143b81ec2123f8cddb6c05164a198c94b13e1377c497705ccc8e1a80306e83b + version: 1.1.0 + resolution: "has-bigints@npm:1.1.0" + checksum: 10c0/2de0cdc4a1ccf7a1e75ffede1876994525ac03cc6f5ae7392d3415dd475cd9eee5bceec63669ab61aa997ff6cceebb50ef75561c7002bed8988de2b9d1b40788 languageName: node linkType: hard @@ -4715,7 +4723,7 @@ __metadata: languageName: node linkType: hard -"has-proto@npm:^1.0.3, has-proto@npm:^1.2.0": +"has-proto@npm:^1.2.0": version: 1.2.0 resolution: "has-proto@npm:1.2.0" dependencies: @@ -4991,7 +4999,7 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.7, internal-slot@npm:^1.1.0": +"internal-slot@npm:^1.1.0": version: 1.1.0 resolution: "internal-slot@npm:1.1.0" dependencies: @@ -5063,7 +5071,7 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.4": +"is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": version: 3.0.5 resolution: "is-array-buffer@npm:3.0.5" dependencies: @@ -5135,11 +5143,11 @@ __metadata: linkType: hard "is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0": - version: 2.16.0 - resolution: "is-core-module@npm:2.16.0" + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" dependencies: hasown: "npm:^2.0.2" - checksum: 10c0/57e3b4bf3503a5ace3e61ef030a2eefa03d27827647b22968456e3e4befffed7c7aa849eea2e029f4f74a119a2d53cc391d5bad59c9352ecc9b79be3fd2acf79 + checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd languageName: node linkType: hard @@ -5282,13 +5290,6 @@ __metadata: languageName: node linkType: hard -"is-negative-zero@npm:^2.0.3": - version: 2.0.3 - resolution: "is-negative-zero@npm:2.0.3" - checksum: 10c0/bcdcf6b8b9714063ffcfa9929c575ac69bfdabb8f4574ff557dfc086df2836cf07e3906f5bbc4f2a5c12f8f3ba56af640c843cdfc74da8caed86c7c7d66fd08e - languageName: node - linkType: hard - "is-number-object@npm:^1.1.1": version: 1.1.1 resolution: "is-number-object@npm:1.1.1" @@ -5366,12 +5367,12 @@ __metadata: languageName: node linkType: hard -"is-shared-array-buffer@npm:^1.0.3": - version: 1.0.3 - resolution: "is-shared-array-buffer@npm:1.0.3" +"is-shared-array-buffer@npm:^1.0.4": + version: 1.0.4 + resolution: "is-shared-array-buffer@npm:1.0.4" dependencies: - call-bind: "npm:^1.0.7" - checksum: 10c0/adc11ab0acbc934a7b9e5e9d6c588d4ec6682f6fea8cda5180721704fa32927582ede5b123349e32517fdadd07958973d24716c80e7ab198970c47acc09e59c7 + call-bound: "npm:^1.0.3" + checksum: 10c0/65158c2feb41ff1edd6bbd6fd8403a69861cf273ff36077982b5d4d68e1d59278c71691216a4a64632bd76d4792d4d1d2553901b6666d84ade13bba5ea7bc7db languageName: node linkType: hard @@ -5419,12 +5420,12 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14": - version: 1.1.14 - resolution: "is-typed-array@npm:1.1.14" +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "is-typed-array@npm:1.1.15" dependencies: which-typed-array: "npm:^1.1.16" - checksum: 10c0/1dc1aee98fcdc016b941491f32327b6f651580efe8e0e0fe9a659f7f8a901c0047f9929de4fad08eb4a7f2b9ae42551c08fa054bfb6bfa16109e80b9abab66b2 + checksum: 10c0/415511da3669e36e002820584e264997ffe277ff136643a3126cc949197e6ca3334d0f12d084e83b1994af2e9c8141275c741cf2b7da5a2ff62dd0cac26f76c4 languageName: node linkType: hard @@ -5541,7 +5542,7 @@ __metadata: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.3": +"iterator.prototype@npm:^1.1.4": version: 1.1.4 resolution: "iterator.prototype@npm:1.1.4" dependencies: @@ -6308,10 +6309,10 @@ __metadata: languageName: node linkType: hard -"math-intrinsics@npm:^1.0.0": - version: 1.0.0 - resolution: "math-intrinsics@npm:1.0.0" - checksum: 10c0/470ee2f267b4b3698eb9faa7f0bcf88696d87e2eeab25bba867dc676c09ddbae9b6f2e8ac7a2c1f0c9c2c5299c2a89f4f1f6d0e70d682725e2e7fca7507eef9f +"math-intrinsics@npm:^1.0.0, math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 10c0/7579ff94e899e2f76ab64491d76cf606274c874d8f2af4a442c016bd85688927fcfca157ba6bf74b08e9439dc010b248ce05b96cc7c126a354c3bae7fcb48b7f languageName: node linkType: hard @@ -7480,15 +7481,17 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": - version: 4.1.5 - resolution: "object.assign@npm:4.1.5" +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.7": + version: 4.1.7 + resolution: "object.assign@npm:4.1.7" dependencies: - call-bind: "npm:^1.0.5" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" define-properties: "npm:^1.2.1" - has-symbols: "npm:^1.0.3" + es-object-atoms: "npm:^1.0.0" + has-symbols: "npm:^1.1.0" object-keys: "npm:^1.1.1" - checksum: 10c0/60108e1fa2706f22554a4648299b0955236c62b3685c52abf4988d14fffb0e7731e00aa8c6448397e3eb63d087dcc124a9f21e1980f36d0b2667f3c18bacd469 + checksum: 10c0/3b2732bd860567ea2579d1567525168de925a8d852638612846bd8082b3a1602b7b89b67b09913cbb5b9bd6e95923b2ae73580baa9d99cb4e990564e8cbf5ddc languageName: node linkType: hard @@ -7527,13 +7530,14 @@ __metadata: linkType: hard "object.values@npm:^1.1.6, object.values@npm:^1.2.0": - version: 1.2.0 - resolution: "object.values@npm:1.2.0" + version: 1.2.1 + resolution: "object.values@npm:1.2.1" dependencies: - call-bind: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" define-properties: "npm:^1.2.1" es-object-atoms: "npm:^1.0.0" - checksum: 10c0/15809dc40fd6c5529501324fec5ff08570b7d70fb5ebbe8e2b3901afec35cf2b3dc484d1210c6c642cd3e7e0a5e18dd1d6850115337fef46bdae14ab0cb18ac3 + checksum: 10c0/3c47814fdc64842ae3d5a74bc9d06bdd8d21563c04d9939bf6716a9c00596a4ebc342552f8934013d1ec991c74e3671b26710a0c51815f0b603795605ab6b2c9 languageName: node linkType: hard @@ -8373,19 +8377,19 @@ __metadata: languageName: node linkType: hard -"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.8": - version: 1.0.8 - resolution: "reflect.getprototypeof@npm:1.0.8" +"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.8, reflect.getprototypeof@npm:^1.0.9": + version: 1.0.9 + resolution: "reflect.getprototypeof@npm:1.0.9" dependencies: call-bind: "npm:^1.0.8" define-properties: "npm:^1.2.1" - dunder-proto: "npm:^1.0.0" - es-abstract: "npm:^1.23.5" + dunder-proto: "npm:^1.0.1" + es-abstract: "npm:^1.23.6" es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.4" + get-intrinsic: "npm:^1.2.6" gopd: "npm:^1.2.0" - which-builtin-type: "npm:^1.2.0" - checksum: 10c0/720479dd7a72a20d66efaca507ed7c7e18403d24ce764f436130464d4a516a12ed8a9a2714dcabc3e1296f9a31f914ba1095e2371619df23d3ac56c4f8c8bae1 + which-builtin-type: "npm:^1.2.1" + checksum: 10c0/db42118a8699fa8b5856e6aa06eac32498a7bbc3c22832729049501733d060662bf16f204c546db87df8bb78b36491ecd6b3b0478c0a27be6c8302cc0770a42e languageName: node linkType: hard @@ -8405,7 +8409,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.2, regexp.prototype.flags@npm:^1.5.3": +"regexp.prototype.flags@npm:^1.5.3": version: 1.5.3 resolution: "regexp.prototype.flags@npm:1.5.3" dependencies: @@ -8506,15 +8510,15 @@ __metadata: linkType: hard "resolve@npm:^1.10.0, resolve@npm:^1.22.4": - version: 1.22.9 - resolution: "resolve@npm:1.22.9" + version: 1.22.10 + resolution: "resolve@npm:1.22.10" dependencies: is-core-module: "npm:^2.16.0" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10c0/314cea2c47f956743f106256854203bd43a60a3ec6fb85ee6894e75cf4b16004952e4280319bfeb4c6fb1246e3ecd27f2699abb2e2b316b7c5727ec6491505c9 + checksum: 10c0/8967e1f4e2cc40f79b7e080b4582b9a8c5ee36ffb46041dccb20e6461161adf69f843b43067b4a375de926a2cd669157e29a29578191def399dd5ef89a1b5203 languageName: node linkType: hard @@ -8532,15 +8536,15 @@ __metadata: linkType: hard "resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": - version: 1.22.9 - resolution: "resolve@patch:resolve@npm%3A1.22.9#optional!builtin::version=1.22.9&hash=c3c19d" + version: 1.22.10 + resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d" dependencies: is-core-module: "npm:^2.16.0" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10c0/dadd8c85040784fdc18d6edc0cc27f7f35776c5d904b030ea67485ab9a5607568187afcfaf157e6fa9db9274481d155356bc42ca578c5578be25965b880d1e80 + checksum: 10c0/52a4e505bbfc7925ac8f4cd91fd8c4e096b6a89728b9f46861d3b405ac9a1ccf4dcbf8befb4e89a2e11370dacd0160918163885cbc669369590f2f31f4c58939 languageName: node linkType: hard @@ -8612,28 +8616,28 @@ __metadata: linkType: hard "rollup@npm:^4.20.0": - version: 4.28.1 - resolution: "rollup@npm:4.28.1" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.28.1" - "@rollup/rollup-android-arm64": "npm:4.28.1" - "@rollup/rollup-darwin-arm64": "npm:4.28.1" - "@rollup/rollup-darwin-x64": "npm:4.28.1" - "@rollup/rollup-freebsd-arm64": "npm:4.28.1" - "@rollup/rollup-freebsd-x64": "npm:4.28.1" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.28.1" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.28.1" - "@rollup/rollup-linux-arm64-gnu": "npm:4.28.1" - "@rollup/rollup-linux-arm64-musl": "npm:4.28.1" - "@rollup/rollup-linux-loongarch64-gnu": "npm:4.28.1" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.28.1" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.28.1" - "@rollup/rollup-linux-s390x-gnu": "npm:4.28.1" - "@rollup/rollup-linux-x64-gnu": "npm:4.28.1" - "@rollup/rollup-linux-x64-musl": "npm:4.28.1" - "@rollup/rollup-win32-arm64-msvc": "npm:4.28.1" - "@rollup/rollup-win32-ia32-msvc": "npm:4.28.1" - "@rollup/rollup-win32-x64-msvc": "npm:4.28.1" + version: 4.29.1 + resolution: "rollup@npm:4.29.1" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.29.1" + "@rollup/rollup-android-arm64": "npm:4.29.1" + "@rollup/rollup-darwin-arm64": "npm:4.29.1" + "@rollup/rollup-darwin-x64": "npm:4.29.1" + "@rollup/rollup-freebsd-arm64": "npm:4.29.1" + "@rollup/rollup-freebsd-x64": "npm:4.29.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.29.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.29.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.29.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.29.1" + "@rollup/rollup-linux-loongarch64-gnu": "npm:4.29.1" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.29.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.29.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.29.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.29.1" + "@rollup/rollup-linux-x64-musl": "npm:4.29.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.29.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.29.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.29.1" "@types/estree": "npm:1.0.6" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -8679,7 +8683,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/2d2d0433b7cb53153a04c7b406f342f31517608dc57510e49177941b9e68c30071674b83a0292ef1d87184e5f7c6d0f2945c8b3c74963074de10c75366fe2c14 + checksum: 10c0/fcd0321df78fdc74b36858e92c4b73ebf5aa8f0b9cf7c446f008e0dc3c5c4ed855d662dc44e5a09c7794bbe91017b4dd7be88b619c239f0494f9f0fbfa67c557 languageName: node linkType: hard @@ -8708,7 +8712,7 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.1.2, safe-array-concat@npm:^1.1.3": +"safe-array-concat@npm:^1.1.3": version: 1.1.3 resolution: "safe-array-concat@npm:1.1.3" dependencies: @@ -8931,7 +8935,7 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.6, side-channel@npm:^1.1.0": +"side-channel@npm:^1.1.0": version: 1.1.0 resolution: "side-channel@npm:1.1.0" dependencies: @@ -9220,22 +9224,23 @@ __metadata: linkType: hard "string.prototype.matchall@npm:^4.0.11": - version: 4.0.11 - resolution: "string.prototype.matchall@npm:4.0.11" + version: 4.0.12 + resolution: "string.prototype.matchall@npm:4.0.12" dependencies: - call-bind: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" + es-abstract: "npm:^1.23.6" es-errors: "npm:^1.3.0" es-object-atoms: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.4" - gopd: "npm:^1.0.1" - has-symbols: "npm:^1.0.3" - internal-slot: "npm:^1.0.7" - regexp.prototype.flags: "npm:^1.5.2" + get-intrinsic: "npm:^1.2.6" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + internal-slot: "npm:^1.1.0" + regexp.prototype.flags: "npm:^1.5.3" set-function-name: "npm:^2.0.2" - side-channel: "npm:^1.0.6" - checksum: 10c0/915a2562ac9ab5e01b7be6fd8baa0b2b233a0a9aa975fcb2ec13cc26f08fb9a3e85d5abdaa533c99c6fc4c5b65b914eba3d80c4aff9792a4c9fed403f28f7d9d + side-channel: "npm:^1.1.0" + checksum: 10c0/1a53328ada73f4a77f1fdf1c79414700cf718d0a8ef6672af5603e709d26a24f2181208144aed7e858b1bcc1a0d08567a570abfb45567db4ae47637ed2c2f85c languageName: node linkType: hard @@ -9611,21 +9616,21 @@ __metadata: languageName: node linkType: hard -"tldts-core@npm:^6.1.68": - version: 6.1.68 - resolution: "tldts-core@npm:6.1.68" - checksum: 10c0/7ce2d0526aaf80656e746e322f9632b92afd07702c5aa61f92f908d325d4878fe6654d94039f30f625b32e7ff934e36cb83722b2e62c752ae34beed40fa1d123 +"tldts-core@npm:^6.1.69": + version: 6.1.69 + resolution: "tldts-core@npm:6.1.69" + checksum: 10c0/654b7ca5e349c89613b99179c5a3f55870be0b77d4ce062eaf6cdda7b160dc454a79a48e825e711f89e93588e62cbb6b166171a044a7427f5987ae9602d68328 languageName: node linkType: hard "tldts@npm:^6.1.32": - version: 6.1.68 - resolution: "tldts@npm:6.1.68" + version: 6.1.69 + resolution: "tldts@npm:6.1.69" dependencies: - tldts-core: "npm:^6.1.68" + tldts-core: "npm:^6.1.69" bin: tldts: bin/cli.js - checksum: 10c0/adbc9b23fa18a150e5124daec853ec1a2c7b656e2e294855b52ef2f7f7d5266660392ae222840862b6360165f7adbc3ae731f78f0a0f96ee1b4558328e428a55 + checksum: 10c0/47ca3c435f3fbe325a263e07417079551911afce45be0cc8b4a1c9ba14b8e9e6c493c6260dc5f34d3c4b396671fe641b2ebea9646e34c4a4d03223da848c7658 languageName: node linkType: hard @@ -9774,18 +9779,18 @@ __metadata: languageName: node linkType: hard -"typed-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-buffer@npm:1.0.2" +"typed-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-buffer@npm:1.0.3" dependencies: - call-bind: "npm:^1.0.7" + call-bound: "npm:^1.0.3" es-errors: "npm:^1.3.0" - is-typed-array: "npm:^1.1.13" - checksum: 10c0/9e043eb38e1b4df4ddf9dde1aa64919ae8bb909571c1cc4490ba777d55d23a0c74c7d73afcdd29ec98616d91bb3ae0f705fad4421ea147e1daf9528200b562da + is-typed-array: "npm:^1.1.14" + checksum: 10c0/1105071756eb248774bc71646bfe45b682efcad93b55532c6ffa4518969fb6241354e4aa62af679ae83899ec296d69ef88f1f3763657cdb3a4d29321f7b83079 languageName: node linkType: hard -"typed-array-byte-length@npm:^1.0.1": +"typed-array-byte-length@npm:^1.0.3": version: 1.0.3 resolution: "typed-array-byte-length@npm:1.0.3" dependencies: @@ -9798,18 +9803,18 @@ __metadata: languageName: node linkType: hard -"typed-array-byte-offset@npm:^1.0.3": - version: 1.0.3 - resolution: "typed-array-byte-offset@npm:1.0.3" +"typed-array-byte-offset@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-byte-offset@npm:1.0.4" dependencies: available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" + call-bind: "npm:^1.0.8" for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - reflect.getprototypeof: "npm:^1.0.6" - checksum: 10c0/5da29585f96671c0521475226d3227000b3e01d1e99208b66bb05b75c7c8f4d0e9cc2e79920f3bfbc792a00102df1daa2608a2753e3f291b671d5a80245bde5b + gopd: "npm:^1.2.0" + has-proto: "npm:^1.2.0" + is-typed-array: "npm:^1.1.15" + reflect.getprototypeof: "npm:^1.0.9" + checksum: 10c0/3d805b050c0c33b51719ee52de17c1cd8e6a571abdf0fffb110e45e8dd87a657e8b56eee94b776b13006d3d347a0c18a730b903cf05293ab6d92e99ff8f77e53 languageName: node linkType: hard @@ -9835,16 +9840,16 @@ __metadata: linkType: hard "typescript-eslint@npm:^8.3.0": - version: 8.18.1 - resolution: "typescript-eslint@npm:8.18.1" + version: 8.18.2 + resolution: "typescript-eslint@npm:8.18.2" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.18.1" - "@typescript-eslint/parser": "npm:8.18.1" - "@typescript-eslint/utils": "npm:8.18.1" + "@typescript-eslint/eslint-plugin": "npm:8.18.2" + "@typescript-eslint/parser": "npm:8.18.2" + "@typescript-eslint/utils": "npm:8.18.2" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/cb75af9b7381051cf80a18d4d96782a23196f7500766fa52926c1515fd7eaa42cb01ed37582d1bf519860075bea3f5375e6fcbbaf7fed3e3ab1b0f6da95805ce + checksum: 10c0/30a0314a2484bcbe286fc6eda55784d9954605c7e60ddd35281da90c6fcb75a40bd3abd84617814dff4e1504d762234407c99153fdd812dce712cef11bbb9b3f languageName: node linkType: hard @@ -9877,7 +9882,7 @@ __metadata: languageName: node linkType: hard -"unbox-primitive@npm:^1.0.2": +"unbox-primitive@npm:^1.1.0": version: 1.1.0 resolution: "unbox-primitive@npm:1.1.0" dependencies: @@ -10378,7 +10383,7 @@ __metadata: languageName: node linkType: hard -"which-builtin-type@npm:^1.2.0": +"which-builtin-type@npm:^1.2.1": version: 1.2.1 resolution: "which-builtin-type@npm:1.2.1" dependencies: @@ -10411,16 +10416,17 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.16": - version: 1.1.16 - resolution: "which-typed-array@npm:1.1.16" +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.18": + version: 1.1.18 + resolution: "which-typed-array@npm:1.1.18" dependencies: available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" + gopd: "npm:^1.2.0" has-tostringtag: "npm:^1.0.2" - checksum: 10c0/a9075293200db4fbce7c24d52731843542c5a19edfc66e31aa2cbefa788b5caa7ef05008f6e60d2c38d8198add6b92d0ddc2937918c5c308be398b1ebd8721af + checksum: 10c0/0412f4a91880ca1a2a63056187c2e3de6b129b2b5b6c17bc3729f0f7041047ae48fb7424813e51506addb2c97320003ee18b8c57469d2cde37983ef62126143c languageName: node linkType: hard From d9bee2c0957aa86bd340a086926026db6dc1f332 Mon Sep 17 00:00:00 2001 From: xobotyi Date: Mon, 23 Dec 2024 23:37:36 +0100 Subject: [PATCH 11/13] docs: remove CHANGELOG.md, it is now accessible over GH releases page --- CHANGELOG.md | 1140 -------------------------------------------------- 1 file changed, 1140 deletions(-) delete mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 24cfc39e..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,1140 +0,0 @@ -## [24.0.4](https://github.com/react-hookz/web/compare/v24.0.3...v24.0.4) (2024-02-04) - - -### Bug Fixes - -* **useDebouncedCallback:** make invoked function to be updated with deps ([#1510](https://github.com/react-hookz/web/issues/1510)) ([12658ee](https://github.com/react-hookz/web/commit/12658ee8176fca60b212af6a1f935f9975239ed1)), closes [#1357](https://github.com/react-hookz/web/issues/1357) - -## [24.0.3](https://github.com/react-hookz/web/compare/v24.0.2...v24.0.3) (2024-02-03) - - -### Bug Fixes - -* get rid of import alias as it still breaks everything around ([#1509](https://github.com/react-hookz/web/issues/1509)) ([90e4f9d](https://github.com/react-hookz/web/commit/90e4f9d2b62677b9da412c6787c0b201d2ee6931)) - -## [24.0.2](https://github.com/react-hookz/web/compare/v24.0.1...v24.0.2) (2023-12-21) - - -### Bug Fixes - -* lower engines requirements to ease usage for consumers ([8bd29f7](https://github.com/react-hookz/web/commit/8bd29f74340c9684160aaa445d24b81f229976b8)) - -## [24.0.1](https://github.com/react-hookz/web/compare/v24.0.0...v24.0.1) (2023-12-20) - - -### Bug Fixes - -* change build so development and distributed imports match ([6383cdd](https://github.com/react-hookz/web/commit/6383cdd5581d60aac3c0000686ebd4139eac6e65)) - -# [24.0.0](https://github.com/react-hookz/web/compare/v23.1.0...v24.0.0) (2023-12-20) - - -### Features - -* switch package to module type ([#1472](https://github.com/react-hookz/web/issues/1472)) ([50921ef](https://github.com/react-hookz/web/commit/50921efda58aefcd52d50bfff27c31755c9253d9)) - - -### BREAKING CHANGES - -* Hooks are now distrubutes as JS built form TS with target ESNext and ESM module resolution. There is no more sense to distribute CJS version as package is ESM-only. - -Consequent of above - no more esm and cjs subfolders - hooks are importable from index.js or its own directory which don't have a prefix anymore, thanks to exports directive. All of below examples will lead to same result, choose any on your taste: - -import { useFirstMountState } from '@react-hookz/web'; -import { useFirstMountState } from '@react-hookz/web/'; -import { useFirstMountState } from '@react-hookz/web/useFirstMountState/'; -import { useFirstMountState } from '@react-hookz/web/useFirstMountState/index.js'; -Thought is seems not to have subfolder, it is only due to exports directive, in real it is -@react-hookz/web/dist/useFirstMountState/index.js. - -Pakage uses imports directive to define path alias #root - it stays so even in distributed code, thus, some may be affected in case their bundler configured to somehow handle such alias. Those developer shoud configure import rewriter not to handle node_modules or @react-hookz/web package exclusively. - -Side-effect for current PR - documentation is broken, as storybook 6 is not working within ESM packages and I'm planning to switch to another domenting engine anyway. - -# [23.1.0](https://github.com/react-hookz/web/compare/v23.0.1...v23.1.0) (2023-06-30) - - -### Features - -* conform new linting configuration ([#1296](https://github.com/react-hookz/web/issues/1296)) ([e0bc4e1](https://github.com/react-hookz/web/commit/e0bc4e199da399de68b0527724952111332e6f43)) - -## [23.0.1](https://github.com/react-hookz/web/compare/v23.0.0...v23.0.1) (2023-05-24) - - -### Bug Fixes - -* **useThrottleCallback:** Cleared timeout on unmount ([#1173](https://github.com/react-hookz/web/issues/1173)) ([8681ad8](https://github.com/react-hookz/web/commit/8681ad84044a78ddf868a1dbe3382cc846faec14)) - -# [23.0.0](https://github.com/react-hookz/web/compare/v22.0.0...v23.0.0) (2023-03-23) - - -* Deprecate useSafeState (#1096) ([284e499](https://github.com/react-hookz/web/commit/284e499aeee125ffa67ca499a0579b4050d2888f)), closes [#1096](https://github.com/react-hookz/web/issues/1096) - - -### BREAKING CHANGES - -* `useSafeState` hook is removed - -# [22.0.0](https://github.com/react-hookz/web/compare/v21.0.0...v22.0.0) (2023-01-05) - - -### Features - -* rename all hook implementation files to `index.ts` ([#1065](https://github.com/react-hookz/web/issues/1065)) ([34c36f2](https://github.com/react-hookz/web/commit/34c36f20bb41c11db55bbf0ba54d78d344024807)) - - -### BREAKING CHANGES - -* all current hook implementation fies renamed to index to allow usage of directory imports and avoid redundant reexporting. -Such change breaks previous direct imports, but simplifies import string and solves redundant hook name duplication. - -4ex: -``` -// previously -import { useUpdate } from "@react-hookz/web/useUpdate/useUpdate" - -// now -import { useUpdate } from "@react-hookz/web/useUpdate" -``` - -# [21.0.0](https://github.com/react-hookz/web/compare/v20.1.0...v21.0.0) (2023-01-04) - - -### Features - -* Drop es5 versions support, leave only ESNext ([#963](https://github.com/react-hookz/web/issues/963)) ([5a622af](https://github.com/react-hookz/web/commit/5a622afe3f106036b807865faf6231ab20427113)) - - -### BREAKING CHANGES - -* `CJS ES5` and `ESM ES5` versions are removed from distribution, leaving only `ESM ESNext` version. - -We understand that this change can break existing pipelines for some developers, but such move eases library maintenance and is one of several moves towards module package. Address [Usage](https://github.com/react-hookz/web#usage) docs to actualize your pipeline if needed. - -This change is one of several braking changes regarding distribution and package usage. - -Sorry for any inconvenience. - -# [20.1.0](https://github.com/react-hookz/web/compare/v20.0.3...v20.1.0) (2023-01-02) - - -### Features - -* implement `useDocumentVisibility` hook ([#1049](https://github.com/react-hookz/web/issues/1049)) ([b00f793](https://github.com/react-hookz/web/commit/b00f79353fd025c61de995e88148e377fffad848)) - -## [20.0.3](https://github.com/react-hookz/web/compare/v20.0.2...v20.0.3) (2022-12-20) - - -### Bug Fixes - -* **useEventListener:** change the way listener added and removed ([#1050](https://github.com/react-hookz/web/issues/1050)) ([f2936a5](https://github.com/react-hookz/web/commit/f2936a5b9a20b6e26f7eba0b34327fdd09762ee0)) - -## [20.0.2](https://github.com/react-hookz/web/compare/v20.0.1...v20.0.2) (2022-12-18) - - -### Bug Fixes - -* **docs:** update link to GHA actions badge ([348cba7](https://github.com/react-hookz/web/commit/348cba7a0ba241e15386066b5f3ea464531e5f09)) - -## [20.0.1](https://github.com/react-hookz/web/compare/v20.0.0...v20.0.1) (2022-12-07) - - -### Bug Fixes - -* **useMediaQuery:** On misconfiguration, cause hydration error instead of SSR crash ([#1042](https://github.com/react-hookz/web/issues/1042)) ([46e5bcc](https://github.com/react-hookz/web/commit/46e5bcc287ab79d6436465cf90dfd6a837a535eb)), closes [#1000](https://github.com/react-hookz/web/issues/1000) [#1000](https://github.com/react-hookz/web/issues/1000) - -# [20.0.0](https://github.com/react-hookz/web/compare/v19.2.0...v20.0.0) (2022-12-02) - - -### Bug Fixes - -* **useMediaQuery:** add option to martch media query on first render ([#1020](https://github.com/react-hookz/web/issues/1020)) ([087b2b1](https://github.com/react-hookz/web/commit/087b2b1eb8db625f85f606a98b17077616dac968)), closes [#1000](https://github.com/react-hookz/web/issues/1000) - - -### BREAKING CHANGES - -* **useMediaQuery:** `useMediaQuery` and `useScreenOrientation` now returns matched media query state -on first render by default, SSR users can change that behaviour via hook options. - -# [19.2.0](https://github.com/react-hookz/web/compare/v19.1.0...v19.2.0) (2022-11-20) - - -### Features - -* implement `useRenderCount` hook ([#990](https://github.com/react-hookz/web/issues/990)) ([efbeeb1](https://github.com/react-hookz/web/commit/efbeeb1e365c386bf1368e703a3da01302987557)) - -# [19.1.0](https://github.com/react-hookz/web/compare/v19.0.0...v19.1.0) (2022-11-12) - - -### Features - -* **useStorageValue:** add custom parse and stringify functions to options ([#913](https://github.com/react-hookz/web/issues/913)) ([095d371](https://github.com/react-hookz/web/commit/095d371a25363cfefa9c2df607c4af10ed8ef01d)) - -# [19.0.0](https://github.com/react-hookz/web/compare/v18.0.1...v19.0.0) (2022-11-12) - - -### Bug Fixes - -* **useMeasure:** only expose with and height properties ([#954](https://github.com/react-hookz/web/issues/954)) ([161c18d](https://github.com/react-hookz/web/commit/161c18dd2f16e9e4f5164b6bb78799df184dde13)), closes [#951](https://github.com/react-hookz/web/issues/951) - - -### BREAKING CHANGES - -* **useMeasure:** Only width and height are now exposed from the element instead of the whole DOMRect - -## [18.0.1](https://github.com/react-hookz/web/compare/v18.0.0...v18.0.1) (2022-11-10) - - -### Bug Fixes - -* **useStorageValue:** make methods to be stable between renders ([#1015](https://github.com/react-hookz/web/issues/1015)) ([2211bb7](https://github.com/react-hookz/web/commit/2211bb7379ade02511ea49266bad3d8817ea5514)), closes [#1014](https://github.com/react-hookz/web/issues/1014) - -# [18.0.0](https://github.com/react-hookz/web/compare/v17.0.1...v18.0.0) (2022-11-09) - - -* Remove hooks that modify the head element (#1004) ([12f723d](https://github.com/react-hookz/web/commit/12f723d0d368913e7198012fb18db683c2a97689)), closes [#1004](https://github.com/react-hookz/web/issues/1004) [#386](https://github.com/react-hookz/web/issues/386) [#386](https://github.com/react-hookz/web/issues/386) [#386](https://github.com/react-hookz/web/issues/386) - - -### BREAKING CHANGES - -* useDocumentTitle has been removed. - -## [17.0.1](https://github.com/react-hookz/web/compare/v17.0.0...v17.0.1) (2022-11-05) - - -### Bug Fixes - -* **useStorageValue:** respect `initializeWithValue` default, fix docs and tests ([#1003](https://github.com/react-hookz/web/issues/1003)) ([1f730d6](https://github.com/react-hookz/web/commit/1f730d6de3700dfffb60440af4039a49556d7f77)), closes [#1002](https://github.com/react-hookz/web/issues/1002) - -# [17.0.0](https://github.com/react-hookz/web/compare/v16.1.0...v17.0.0) (2022-11-03) - - -* Rework `useStorageValue` to more simple and robust variant (#960) ([7bcc385](https://github.com/react-hookz/web/commit/7bcc3858d882afcf8e3d79c2ac2a5c0996922926)), closes [#960](https://github.com/react-hookz/web/issues/960) - - -### BREAKING CHANGES - -* new implementation brings different API. -It is not backward compatible! - -Co-authored-by: Arttu Olli - -# [16.1.0](https://github.com/react-hookz/web/compare/v16.0.1...v16.1.0) (2022-10-23) - - -### Features - -* **useDeepCompareMemo:** Implement useDeepCompareMemo ([#979](https://github.com/react-hookz/web/issues/979)) ([532cc41](https://github.com/react-hookz/web/commit/532cc41f3b2d55a7f6f297ea9a4b652072e0d311)), closes [#871](https://github.com/react-hookz/web/issues/871) - -## [16.0.1](https://github.com/react-hookz/web/compare/v16.0.0...v16.0.1) (2022-10-22) - - -### Bug Fixes - -* **useCustomCompareMemo:** Correctly infer the type of the value returned by the factory function ([#976](https://github.com/react-hookz/web/issues/976)) ([a625c55](https://github.com/react-hookz/web/commit/a625c55bc544dc1bc7544a5ff8811a0a78c568bd)), closes [#975](https://github.com/react-hookz/web/issues/975) - -# [16.0.0](https://github.com/react-hookz/web/compare/v15.1.0...v16.0.0) (2022-10-09) - - -### Styles - -* remove I prefix from types and interfaces ([c2a1ff4](https://github.com/react-hookz/web/commit/c2a1ff40909f1ddf5066c5d038b800bd42410a21)) - - -### BREAKING CHANGES - -* `I` prefix removed from all types having it. - -# [15.1.0](https://github.com/react-hookz/web/compare/v15.0.1...v15.1.0) (2022-08-14) - - -### Features - -* `useCustomCompareMemo` - like useMemo but uses custom deps comparator ([#895](https://github.com/react-hookz/web/issues/895)) ([5b38e8d](https://github.com/react-hookz/web/commit/5b38e8d182c1642a12dbf44050c44bb56f1a4884)) -* implement useTimeoutEffect ([#886](https://github.com/react-hookz/web/issues/886)) ([a3f6f07](https://github.com/react-hookz/web/commit/a3f6f07d4f3a0ca91810a9c88e31891bdb46fe00)) - -## [15.0.1](https://github.com/react-hookz/web/compare/v15.0.0...v15.0.1) (2022-07-04) - - -### Bug Fixes - -* **useLifecycleLogger:** rework hook and improve tests coverage ([#868](https://github.com/react-hookz/web/issues/868)) ([bfba4c2](https://github.com/react-hookz/web/commit/bfba4c25389a81677925d71645dd41da307bfe24)) - -# [15.0.0](https://github.com/react-hookz/web/compare/v14.7.1...v15.0.0) (2022-07-04) - - -### Bug Fixes - -* **useMediaQuery:** fix state stuck for concurrent mode ([#866](https://github.com/react-hookz/web/issues/866)) ([75db2b5](https://github.com/react-hookz/web/commit/75db2b5d73ab07beb53f335274b4413f36d625ab)), closes [#849](https://github.com/react-hookz/web/issues/849) - - -### Features - -* implement `useControlledRerenderState` hook ([#865](https://github.com/react-hookz/web/issues/865)) ([ea4545b](https://github.com/react-hookz/web/commit/ea4545b7ee45019c68d0edb2332bd9478e50b820)) -* **useToggle:** ignore react events passed to state setter ([#867](https://github.com/react-hookz/web/issues/867)) ([085f711](https://github.com/react-hookz/web/commit/085f711200edc9beb7ed5adedcb83d8ce45c0f77)), closes [#861](https://github.com/react-hookz/web/issues/861) - - -### BREAKING CHANGES - -* **useToggle:** `useToggle` now ignores react events passed to its -state setter, so it can be used as event handler directly. -* **useMediaQuery:** `useMediaQuery` and `useScreenOrientation` are -asynchronous now and yields `undefined` at very first render, but -updates to actual value right after. - -## [14.7.1](https://github.com/react-hookz/web/compare/v14.7.0...v14.7.1) (2022-07-03) - - -### Bug Fixes - -* **useCookieValue:** proper js-cookie import ([#864](https://github.com/react-hookz/web/issues/864)) ([bb6464b](https://github.com/react-hookz/web/commit/bb6464b9893370c73edcf462a65f09de23efbf44)), closes [#280](https://github.com/react-hookz/web/issues/280) - -# [14.7.0](https://github.com/react-hookz/web/compare/v14.6.0...v14.7.0) (2022-06-30) - - -### Features - -* implement `useFunctionalState` ([#862](https://github.com/react-hookz/web/issues/862)) ([1491d38](https://github.com/react-hookz/web/commit/1491d38024cf2c5c3646e5dcf5a31e9f0a0e1aec)), closes [#530](https://github.com/react-hookz/web/issues/530) - -# [14.6.0](https://github.com/react-hookz/web/compare/v14.5.1...v14.6.0) (2022-06-30) - - -### Features - -* **useIsMounted:** allow to set initial value ([a63188a](https://github.com/react-hookz/web/commit/a63188a79e6b920fb6d2bd4fd18f26b3dadb7036)) -* **useSafeState:** fix issue with inability to set state before mount ([af8f4cd](https://github.com/react-hookz/web/commit/af8f4cdcc498260a6cdb763dc13605102ab9ba9b)) - -## [14.5.1](https://github.com/react-hookz/web/compare/v14.5.0...v14.5.1) (2022-06-30) - - -### Bug Fixes - -* **useMeasure:** support conditional rendering ([76ac155](https://github.com/react-hookz/web/commit/76ac155f65223bdc51570138f55a4ca89d299079)), closes [#755](https://github.com/react-hookz/web/issues/755) - -# [14.5.0](https://github.com/react-hookz/web/compare/v14.4.0...v14.5.0) (2022-06-30) - - -### Features - -* implement `useHookableRef` hook ([f41ab22](https://github.com/react-hookz/web/commit/f41ab226d4708a827724be3580d74dcef2baaee9)) - -# [14.4.0](https://github.com/react-hookz/web/compare/v14.3.0...v14.4.0) (2022-06-30) - - -### Features - -* implement `useIntervalEffect` ([a3869a3](https://github.com/react-hookz/web/commit/a3869a35b80ded1f0abd96366038ccd0b10d9040)), closes [#33](https://github.com/react-hookz/web/issues/33) [#452](https://github.com/react-hookz/web/issues/452) - -# [14.3.0](https://github.com/react-hookz/web/compare/v14.2.3...v14.3.0) (2022-06-25) - - -### Features - -* **useList:** port useList from react-use ([#810](https://github.com/react-hookz/web/issues/810)) ([73639fb](https://github.com/react-hookz/web/commit/73639fb55793c01ff8a8f1d7ad8bb3c7a9665561)) - -## [14.2.3](https://github.com/react-hookz/web/compare/v14.2.2...v14.2.3) (2022-06-22) - - -### Bug Fixes - -* apply correct order of operations in `useRerender` ([#850](https://github.com/react-hookz/web/issues/850)) ([5fc735a](https://github.com/react-hookz/web/commit/5fc735ad2b582394c913ffc2440495213d1dff2d)) -* change storybook builder to webpack5 ([#830](https://github.com/react-hookz/web/issues/830)) ([2df44c1](https://github.com/react-hookz/web/commit/2df44c1fc206dd0f6108da0bd282db259ab73010)) - -## [14.2.2](https://github.com/react-hookz/web/compare/v14.2.1...v14.2.2) (2022-05-12) - - -### Bug Fixes - -* `useResizeObserver` now respects element changes within ref object ([#759](https://github.com/react-hookz/web/issues/759)) ([2a4e848](https://github.com/react-hookz/web/commit/2a4e8482c29a8374bcd3eabb2e26c7899bc5a4a2)), closes [#755](https://github.com/react-hookz/web/issues/755) - -## [14.2.1](https://github.com/react-hookz/web/compare/v14.2.0...v14.2.1) (2022-05-12) - - -### Bug Fixes - -* `useUnmountEffect` now invokes changing effect functions ([#758](https://github.com/react-hookz/web/issues/758)) ([380637a](https://github.com/react-hookz/web/commit/380637a1bd1e91d1f22ad5fb9ef7557598700cb3)), closes [#756](https://github.com/react-hookz/web/issues/756) - -# [14.2.0](https://github.com/react-hookz/web/compare/v14.1.0...v14.2.0) (2022-05-12) - - -### Features - -* `useVibration` hook implementation and docs ([#757](https://github.com/react-hookz/web/issues/757)) ([db40294](https://github.com/react-hookz/web/commit/db4029403dfa11a0e00fda8cf2427c6f94e406d2)) - -# [14.1.0](https://github.com/react-hookz/web/compare/v14.0.0...v14.1.0) (2022-05-12) - - -### Features - -* **useCounter:** port `useCounter` from `react-use` ([#751](https://github.com/react-hookz/web/issues/751)) ([510947b](https://github.com/react-hookz/web/commit/510947bdd9006fc9c5f0c15c37f7983e950955e6)), closes [#33](https://github.com/react-hookz/web/issues/33) - -# [14.0.0](https://github.com/react-hookz/web/compare/v13.3.0...v14.0.0) (2022-05-11) - - -### Bug Fixes - -* **`useMediatedState`:** make initial state be passed through mediator ([#753](https://github.com/react-hookz/web/issues/753)) ([727d224](https://github.com/react-hookz/web/commit/727d224bf55373a6f0ea15bc661a666b3f1e1631)) - - -### BREAKING CHANGES - -* **`useMediatedState`:** `useMediatedState` now passes initial state through mediator - -# [13.3.0](https://github.com/react-hookz/web/compare/v13.2.1...v13.3.0) (2022-04-25) - - -### Features - -* implement `useLifecycleEffect` hook ([#652](https://github.com/react-hookz/web/issues/652)) ([357b018](https://github.com/react-hookz/web/commit/357b01802ef2d98a17a36f653a3e6aa90ad5b4ef)) - -## [13.2.1](https://github.com/react-hookz/web/compare/v13.2.0...v13.2.1) (2022-04-10) - - -### Bug Fixes - -* make `useRerender` operate integer increment instead of bool switch ([#711](https://github.com/react-hookz/web/issues/711)) ([409a21f](https://github.com/react-hookz/web/commit/409a21f73d3250ad08e5a46da59cc2db88f29390)), closes [#691](https://github.com/react-hookz/web/issues/691) - -# [13.2.0](https://github.com/react-hookz/web/compare/v13.1.0...v13.2.0) (2022-03-30) - - -### Features - -* create `useRafEffect` ([#693](https://github.com/react-hookz/web/issues/693)) ([6548831](https://github.com/react-hookz/web/commit/65488314e7a0845a10f263e05026490171891bda)) - -# [13.1.0](https://github.com/react-hookz/web/compare/v13.0.0...v13.1.0) (2022-03-14) - - -### Features - -* implement `useRafState` hook ([6cd44ec](https://github.com/react-hookz/web/commit/6cd44ecead3864aa1f0ece8ab3f5e02ae4e42cbf)) -* implement `useWindowSize` hook ([81819cf](https://github.com/react-hookz/web/commit/81819cf63315564ee5f41174f5a036c158dad913)) - -# [13.0.0](https://github.com/react-hookz/web/compare/v12.3.0...v13.0.0) (2022-02-25) - - -### Features - -* **`useMediaQuery`:** add synchronous mql state fetch ([0e0be56](https://github.com/react-hookz/web/commit/0e0be5626bbe3ab0815e25f9aef49dbb1be681b1)) -* implement new hook - `useScreenOrientation` ([107cc21](https://github.com/react-hookz/web/commit/107cc2116f09d44757495d688f41eeb5cad11760)) - - -### BREAKING CHANGES - -* **`useMediaQuery`:** `useMediaQuery` now does synchronous fetch, this means -that in browser it will return final state on first render, while SSR -mode still return `undefined`. -SSR users should set second parameter of this hook to `true`, to -postpone state fetch until effects phase. - -# [12.3.0](https://github.com/react-hookz/web/compare/v12.2.0...v12.3.0) (2022-01-17) - - -### Features - -* new hook `usePreviousDistinct` ([#585](https://github.com/react-hookz/web/issues/585)) ([1bf69d6](https://github.com/react-hookz/web/commit/1bf69d66e951e8a09427aa5f9f652fb8be5d8229)), closes [#33](https://github.com/react-hookz/web/issues/33) - -# [12.2.0](https://github.com/react-hookz/web/compare/v12.1.2...v12.2.0) (2022-01-14) - - -### Features - -* new hook `useDeepCompareEffect` ([#581](https://github.com/react-hookz/web/issues/581)) ([3dfa7b5](https://github.com/react-hookz/web/commit/3dfa7b5664746fd5288d488fb477c23f8e765f43)) - -## [12.1.2](https://github.com/react-hookz/web/compare/v12.1.1...v12.1.2) (2022-01-13) - - -### Bug Fixes - -* move to stricter linting configuration ([#580](https://github.com/react-hookz/web/issues/580)) ([f455992](https://github.com/react-hookz/web/commit/f455992a60b06846fa86a4627d206053b279e96c)) - -## [12.1.1](https://github.com/react-hookz/web/compare/v12.1.0...v12.1.1) (2022-01-11) - - -### Bug Fixes - -* **`useLocalStorage`, `useSessionStorage`:** replace hook with noop in case of storage absence. ([#540](https://github.com/react-hookz/web/issues/540)) ([790b302](https://github.com/react-hookz/web/commit/790b30257a15e936f5c4d776917fc2dd6dcad931)), closes [#521](https://github.com/react-hookz/web/issues/521) - -# [12.1.0](https://github.com/react-hookz/web/compare/v12.0.3...v12.1.0) (2022-01-11) - - -### Features - -* **useMeasure,useResizeObserver:** ability yo disable observation ([#573](https://github.com/react-hookz/web/issues/573)) ([4c6f074](https://github.com/react-hookz/web/commit/4c6f074eca31604d0975a9c8de1262b2fa8bda48)), closes [#523](https://github.com/react-hookz/web/issues/523) - -## [12.0.3](https://github.com/react-hookz/web/compare/v12.0.2...v12.0.3) (2021-12-23) - - -### Bug Fixes - -* **451:** attempt to fix issue [#451](https://github.com/react-hookz/web/issues/451) ([#539](https://github.com/react-hookz/web/issues/539)) ([c2f99da](https://github.com/react-hookz/web/commit/c2f99da82b88d78488c84ad793d3e4c99b4c2141)) - -# [12.0.0](https://github.com/react-hookz/web/compare/v11.1.0...v12.0.0) (2021-10-01) - - -### Features - -* exclude `@types/react` and `@types/react-dom` from deps ([bcaca2e](https://github.com/react-hookz/web/commit/bcaca2e045136033cf587348a0cf791aa9065954)), closes [#353](https://github.com/react-hookz/web/issues/353) - - -### BREAKING CHANGES - -* `@types/react` and `@types/react-dom` are no more -presented in `dependencies`. - -# [11.1.0](https://github.com/react-hookz/web/compare/v11.0.0...v11.1.0) (2021-09-28) - - -### Features - -* new hook `useCustomCompareEffect` ([#346](https://github.com/react-hookz/web/issues/346)) ([ef4248a](https://github.com/react-hookz/web/commit/ef4248a1ea2bcac86472675d07cd9928985419f3)) - -# [11.0.0](https://github.com/react-hookz/web/compare/v10.1.1...v11.0.0) (2021-09-28) - - -### Bug Fixes - -* proper links in readme that don't break in firefox ([b406dc6](https://github.com/react-hookz/web/commit/b406dc69d0ad5a08d26ab85144d056b6916b18f7)) - - -### Features - -* improve `useConditionalEffect` and remove `useConditionalUpdateEffect` ([#345](https://github.com/react-hookz/web/issues/345)) ([4474cf7](https://github.com/react-hookz/web/commit/4474cf730f9e02599eb3c2674ac3304d9f33ec93)) - - -### BREAKING CHANGES - -* `useConditionalEffect` conditions and deps arguments now switched places. - -* feat(useConditionalEffect): added ability to wrap other effect hooks - -* feat: remove `useConditionalUpdateEffect` -* `useConditionalUpdateEffect` removed in favor of -composition with `useConditionalEffect`. - -Now you should simpy pass extra argument to achieve same functionality: -`useConditionalEffect(()=>{}, undefined, [], truthyAndArrayPredicate, -useUpdateEffect)` -* Interface `IUseConditionalEffectPredicate` renamed to -`IConditionsPredicate` - -* docs: cleanup, remove `useConditionalUpdateEffect` from readme - -Co-authored-by: Joe Duncko - -## [10.1.1](https://github.com/react-hookz/web/compare/v10.1.0...v10.1.1) (2021-09-24) - - -### Bug Fixes - -* fix the examples of useAsync ([#344](https://github.com/react-hookz/web/issues/344)) ([ee064ec](https://github.com/react-hookz/web/commit/ee064ec21bfe1ba5570f48b4c21daff717885680)) - -# [10.1.0](https://github.com/react-hookz/web/compare/v10.0.0...v10.1.0) (2021-09-23) - - -### Features - -* new hook `useAsyncAbortable` ([#340](https://github.com/react-hookz/web/issues/340)) ([5604d9c](https://github.com/react-hookz/web/commit/5604d9cd6bcf4d980af1b2281b0f9f6c51f30e04)) - -# [10.0.0](https://github.com/react-hookz/web/compare/v9.0.0...v10.0.0) (2021-09-23) - - -### Features - -* **useAsync:** remove effector behaviour from hook ([#339](https://github.com/react-hookz/web/issues/339)) ([0e47ff2](https://github.com/react-hookz/web/commit/0e47ff2c540b22b503f2dba31706d0c2d3cf5fee)) - - -### BREAKING CHANGES - -* **useAsync:** `useAsync` hook now has only 2 arguments, `asyncFn` and `initialValue` -and do not execute provided function on its own. - -* chore(useAsync): remove unused `IUseAsyncOptions` interface - -# [9.0.0](https://github.com/react-hookz/web/compare/v8.0.0...v9.0.0) (2021-08-30) - - -### Documentation - -* fix error on `useCookieValue` page ([#296](https://github.com/react-hookz/web/issues/296)) ([a390f10](https://github.com/react-hookz/web/commit/a390f10fb657c24c893eeaaf13e7545ae87d1bb1)) - - -### BREAKING CHANGES - -* `IAnyPermissionDescriptor` type removed in favor of -built-in `PermissionDescriptor`. - -* docs(useCookieValue): example been using old index import - -# [8.0.0](https://github.com/react-hookz/web/compare/v7.0.0...v8.0.0) (2021-08-30) - - -### chore - -* **TS:** migrate to TypeScript 4.4 ([#295](https://github.com/react-hookz/web/issues/295)) ([91429f4](https://github.com/react-hookz/web/commit/91429f4723c370c32abc1bb4b6cf4ba72f3918ea)) - - -### BREAKING CHANGES - -* **TS:** `IAnyPermissionDescriptor` type removed in favor of -built-in `PermissionDescriptor`. - -# [7.0.0](https://github.com/react-hookz/web/compare/v6.1.0...v7.0.0) (2021-08-06) - - -### Bug Fixes - -* **useMediaQuery:** add support for safari 13- that has obsolete `useMediaQuery` implementation ([#249](https://github.com/react-hookz/web/issues/249)) ([25c8599](https://github.com/react-hookz/web/commit/25c85991c7e3af1f474b67b3264d76b74744f768)), closes [#242](https://github.com/react-hookz/web/issues/242) - - -### Code Refactoring - -* **useKeyboardEvent:** improve the code and change signature ([#248](https://github.com/react-hookz/web/issues/248)) ([a0e1b24](https://github.com/react-hookz/web/commit/a0e1b243f5ad899d5617ce50016902bfc775b5c2)) - - -### BREAKING CHANGES - -* **useKeyboardEvent:** hook call signature has changed. - -# [6.1.0](https://github.com/react-hookz/web/compare/v6.0.1...v6.1.0) (2021-08-04) - - -### Features - -* new hook `useKeyboardEvent` ([#240](https://github.com/react-hookz/web/issues/240)) ([8ca6713](https://github.com/react-hookz/web/commit/8ca6713123e090a92286071adf99783ef76147ac)) - -## [6.0.1](https://github.com/react-hookz/web/compare/v6.0.0...v6.0.1) (2021-07-25) - - -### Bug Fixes - -* make hooks that not listed in index.ts to be built too ([c119371](https://github.com/react-hookz/web/commit/c11937193d391da32c810eae63e4a6ea87edf679)) - -# [6.0.0](https://github.com/react-hookz/web/compare/v5.0.0...v6.0.0) (2021-07-25) - - -### Bug Fixes - -* remove `useCookieValue` from index ([#225](https://github.com/react-hookz/web/issues/225)) ([c3b708d](https://github.com/react-hookz/web/commit/c3b708d5b08680b36884e926aec62fed30062aed)) - - -### BREAKING CHANGES - -* `useCookieValue` is no more exported from index file. - -# [5.0.0](https://github.com/react-hookz/web/compare/v4.0.0...v5.0.0) (2021-07-20) - - -### Bug Fixes - -* improve `useThrottledCallback` and `useDebouncedCallback` types ([04e965a](https://github.com/react-hookz/web/commit/04e965a520a60fbd3d12e4de16ddc57c4d990112)) - - -### BREAKING CHANGES - -* types changed, now only one generic argument received -by `useThrottledCallback` and `useDebouncedCallback` - the original -function type. - -# [4.0.0](https://github.com/react-hookz/web/compare/v3.8.0...v4.0.0) (2021-07-16) - - -### Features - -* deps for `useConditionalUpdateEffect` and `useConditionalEffect` ([#201](https://github.com/react-hookz/web/issues/201)) ([bd56af3](https://github.com/react-hookz/web/commit/bd56af3c775123450867931aa07a33eaf08415e7)) - - -### BREAKING CHANGES - -* `useConditionalUpdateEffect` and `useConditionalEffect` -now has changed call signature (new argument). - -# [3.8.0](https://github.com/react-hookz/web/compare/v3.7.0...v3.8.0) (2021-07-03) - - -### Features - -* new hook useIntersectionObserver ([#170](https://github.com/react-hookz/web/issues/170)) ([e97c163](https://github.com/react-hookz/web/commit/e97c16317b8113d957a7eb8fd6856c405956cb67)) - -# [3.7.0](https://github.com/react-hookz/web/compare/v3.6.0...v3.7.0) (2021-07-03) - - -### Features - -* improve `useEventListener` ([#169](https://github.com/react-hookz/web/issues/169)) ([d016ea9](https://github.com/react-hookz/web/commit/d016ea9f0d1ab42712695e886c2b3794fdb629de)) - -# [3.6.0](https://github.com/react-hookz/web/compare/v3.5.0...v3.6.0) (2021-07-03) - - -### Features - -* improve `useResizeObserver` ([#168](https://github.com/react-hookz/web/issues/168)) ([f6fa33a](https://github.com/react-hookz/web/commit/f6fa33a7d135f85a75c5e12bb9b0cc8a4d412fb1)) - -# [3.5.0](https://github.com/react-hookz/web/compare/v3.4.0...v3.5.0) (2021-06-24) - - -### Features - -* new hook `useMap` ([#155](https://github.com/react-hookz/web/issues/155)) ([523dd81](https://github.com/react-hookz/web/commit/523dd818b2a99b0996654b49416b0499d27d0063)) - -# [3.4.0](https://github.com/react-hookz/web/compare/v3.3.0...v3.4.0) (2021-06-24) - - -### Features - -* new hook `useClickOutside` ([#147](https://github.com/react-hookz/web/issues/147)) ([3dece07](https://github.com/react-hookz/web/commit/3dece073a5444d6f5f5acfe7c67dbff2781ce1b3)) -* new hook `useSet` ([#154](https://github.com/react-hookz/web/issues/154)) ([f1d781c](https://github.com/react-hookz/web/commit/f1d781cef81b6664699d8a4d648af918117aff6d)) - -# [3.3.0](https://github.com/react-hookz/web/compare/v3.2.0...v3.3.0) (2021-06-22) - - -### Features - -* new hook `useEventListener` ([#140](https://github.com/react-hookz/web/issues/140)) ([9c5dce3](https://github.com/react-hookz/web/commit/9c5dce34d04584fba9990cde76b144e2eb19818c)) - -# [3.2.0](https://github.com/react-hookz/web/compare/v3.1.0...v3.2.0) (2021-06-22) - - -### Features - -* new hook `usePermission` ([#143](https://github.com/react-hookz/web/issues/143)) ([9eb06f4](https://github.com/react-hookz/web/commit/9eb06f455338b034b89d1b8137a45beac16029df)) - -# [3.1.0](https://github.com/react-hookz/web/compare/v3.0.1...v3.1.0) (2021-06-17) - - -### Features - -* new hooks `useThrottledEffect` and `useThrottledState` ([#137](https://github.com/react-hookz/web/issues/137)) ([1cc6677](https://github.com/react-hookz/web/commit/1cc66777c847c166e760f47ce4526350f54217a3)) - -## [3.0.1](https://github.com/react-hookz/web/compare/v3.0.0...v3.0.1) (2021-06-16) - - -### Bug Fixes - -* improve `useAsync` typings ([#135](https://github.com/react-hookz/web/issues/135)) ([73b42ff](https://github.com/react-hookz/web/commit/73b42ffd2442b56f1e2f1c98e2d2215fe966b533)), closes [#134](https://github.com/react-hookz/web/issues/134) - -# [3.0.0](https://github.com/react-hookz/web/compare/v2.2.0...v3.0.0) (2021-06-16) - - -### Bug Fixes - -* rename useThrottleCallback and useDebounceCallback ([#130](https://github.com/react-hookz/web/issues/130)) ([77f66d7](https://github.com/react-hookz/web/commit/77f66d7be8e985e19db4ca4d19b5f05efdc6019e)), closes [#129](https://github.com/react-hookz/web/issues/129) - - -### Features - -* add `maxWait` parameter to `useDebouncedCallback` hook ([#131](https://github.com/react-hookz/web/issues/131)) ([600baa8](https://github.com/react-hookz/web/commit/600baa89831fa5d41e001612d1e2d2d256bdcc90)) -* change args for `useThrottledCallback` and `useDebouncedCallback` ([#132](https://github.com/react-hookz/web/issues/132)) ([131d98e](https://github.com/react-hookz/web/commit/131d98eb254bf78084c8cf2d996e29d6ecb35bf1)) -* new hooks `useDebouncedEffect` and `useDebouncedState` ([#133](https://github.com/react-hookz/web/issues/133)) ([1d164ff](https://github.com/react-hookz/web/commit/1d164ffd9226fbee919d9cc768df35208d65db2b)) - - -### BREAKING CHANGES - -* `delay` and `deps` arguments are swapped position for -`useThrottledCallback` and `useDebouncedCallback` hooks to be aligned -with `useCallback` signature. -* `useDebounceCallback` renamed to `useDebouncedCallback` -`useThrottleCallback` renamed to `useThrottledCallback` - -# [2.2.0](https://github.com/react-hookz/web/compare/v2.1.0...v2.2.0) (2021-06-15) - - -### Features - -* new hook useThrottleCallback ([#118](https://github.com/react-hookz/web/issues/118)) ([afec60b](https://github.com/react-hookz/web/commit/afec60b8ca945872ca24f86fc854abb39cddfb9e)) - -# [2.1.0](https://github.com/react-hookz/web/compare/v2.0.0...v2.1.0) (2021-06-14) - - -### Features - -* import reused hooks from the index file instead of its definition ([f4bd609](https://github.com/react-hookz/web/commit/f4bd60984472c90d2a06cc8c21439f69fc490b12)) - -# [2.0.0](https://github.com/react-hookz/web/compare/v1.28.0...v2.0.0) (2021-06-14) - - -### Features - -* add `initializeWithValue` option to `useCookie` hook ([#120](https://github.com/react-hookz/web/issues/120)) ([17c9543](https://github.com/react-hookz/web/commit/17c9543926bf870ddf8c2c161f987a03841fc6d2)) - - -### BREAKING CHANGES - -* `useCookie` renamed to `useCookieValue` -* `useCookieValue` default behaviour for browsers -changed to fetch cookie value on state initialisation. - -SSR remains untouched, but requires implicit setting of -`initializeWithValue` option to false, to avoid hydration mismatch. - -# [1.28.0](https://github.com/react-hookz/web/compare/v1.27.0...v1.28.0) (2021-06-14) - - -### Features - -* new hook `useAsync` ([#119](https://github.com/react-hookz/web/issues/119)) ([54bbc00](https://github.com/react-hookz/web/commit/54bbc006fd606cd31ea03ad00a3903d95303783c)) - -# [1.27.0](https://github.com/react-hookz/web/compare/v1.26.0...v1.27.0) (2021-06-11) - - -### Features - -* new hook `useCookie` ([#117](https://github.com/react-hookz/web/issues/117)) ([faae68b](https://github.com/react-hookz/web/commit/faae68b6826916b8b2bb5ddff3b9cccabbb9219e)) - -# [1.26.0](https://github.com/react-hookz/web/compare/v1.25.1...v1.26.0) (2021-06-11) - - -### Features - -* new hook `useMediaQuery` ([#116](https://github.com/react-hookz/web/issues/116)) ([be6fff9](https://github.com/react-hookz/web/commit/be6fff9a4752b59a59e7e0f5b02aa6e05fbea62c)) - -## [1.25.1](https://github.com/react-hookz/web/compare/v1.25.0...v1.25.1) (2021-06-02) - - -### Bug Fixes - -* tsconfig.build.json missconfig ([ba92152](https://github.com/react-hookz/web/commit/ba921522169d9c64495e6c5b0467eb12a355821e)), closes [#102](https://github.com/react-hookz/web/issues/102) - -# [1.25.0](https://github.com/react-hookz/web/compare/v1.24.1...v1.25.0) (2021-06-02) - - -### Features - -* new hook `useValidator` ([#101](https://github.com/react-hookz/web/issues/101)) ([8c517e0](https://github.com/react-hookz/web/commit/8c517e097ba26bccc4ffdc18dd700799b73b0dc0)) - -## [1.24.1](https://github.com/react-hookz/web/compare/v1.24.0...v1.24.1) (2021-06-02) - - -### Bug Fixes - -* make `useDebounceCallback` and `useRafCallback` return proper fns ([#100](https://github.com/react-hookz/web/issues/100)) ([906d6e4](https://github.com/react-hookz/web/commit/906d6e46410a044522176168f2753781926e80d8)) -* make `useDebounceCallback` and `useRafCallback` return proper fns ([#100](https://github.com/react-hookz/web/issues/100)) ([2495e53](https://github.com/react-hookz/web/commit/2495e537563462250e9ba5fc17c16f3a29e916c4)) -* make `useDebounceCallback` and `useRafCallback` return proper fns ([#100](https://github.com/react-hookz/web/issues/100)) ([1dcb083](https://github.com/react-hookz/web/commit/1dcb083931f00f1b0569790a10fb2423fa9c26e3)) - -# [1.24.0](https://github.com/react-hookz/web/compare/v1.23.0...v1.24.0) (2021-05-26) - - -### Features - -* `useTitle` -> `useDocumentTitle` ([24daf77](https://github.com/react-hookz/web/commit/24daf778815564185fd0c7c34c19011dea8b1e37)) - -# [1.23.0](https://github.com/react-hookz/web/compare/v1.22.0...v1.23.0) (2021-05-25) - - -### Features - -* new hook `useTitle` ([#68](https://github.com/react-hookz/web/issues/68)) ([84e4cbf](https://github.com/react-hookz/web/commit/84e4cbf5d966b11a0e637937e4cc975360602f7e)) - -# [1.22.0](https://github.com/react-hookz/web/compare/v1.21.0...v1.22.0) (2021-05-25) - - -### Features - -* new hook `useMeasure` ([#80](https://github.com/react-hookz/web/issues/80)) ([354efc6](https://github.com/react-hookz/web/commit/354efc61883e8ffc7aeb468b9367197c63da170c)) - -# [1.21.0](https://github.com/react-hookz/web/compare/v1.20.4...v1.21.0) (2021-05-25) - - -### Features - -* new hook `useResizeObserver` ([#67](https://github.com/react-hookz/web/issues/67)) ([ccf2c26](https://github.com/react-hookz/web/commit/ccf2c268636f66194f96ef8f232a1fb46b6af056)) - -## [1.20.4](https://github.com/react-hookz/web/compare/v1.20.3...v1.20.4) (2021-05-24) - - -### Bug Fixes - -* add `module` field to package.json so bundlers use proper version ([b0119ce](https://github.com/react-hookz/web/commit/b0119ce2a68af5cb2a40a224074425525bc0f73b)) - -## [1.20.3](https://github.com/react-hookz/web/compare/v1.20.2...v1.20.3) (2021-05-24) - - -### Bug Fixes - -* mark package as side-effects free ([74d6f1c](https://github.com/react-hookz/web/commit/74d6f1ce4e1073171b24d69b3657131b3cd0afcc)) - -## [1.20.2](https://github.com/react-hookz/web/compare/v1.20.1...v1.20.2) (2021-05-24) - - -### Bug Fixes - -* proper 'types' and 'esnext' fields values ([069ae24](https://github.com/react-hookz/web/commit/069ae249301ae4d0529d43f1e643a7d4acfa2ee9)) - -## [1.20.1](https://github.com/react-hookz/web/compare/v1.20.0...v1.20.1) (2021-05-20) - - -### Bug Fixes - -* remove `types` field in package.json ([#75](https://github.com/react-hookz/web/issues/75)) ([340e7d7](https://github.com/react-hookz/web/commit/340e7d765bad760737b477c3139e55a218d2a3b0)) - -# [1.20.0](https://github.com/react-hookz/web/compare/v1.19.0...v1.20.0) (2021-05-18) - - -### Features - -* new hook `useRafCallback` ([#66](https://github.com/react-hookz/web/issues/66)) ([9e2255e](https://github.com/react-hookz/web/commit/9e2255eadfb184b081ee65d70608ed0b9c60f511)) - -# [1.19.0](https://github.com/react-hookz/web/compare/v1.18.0...v1.19.0) (2021-05-16) - - -### Features - -* new hooks `useLocalStorageValue` and `useSessionStorageValue` ([#43](https://github.com/react-hookz/web/issues/43)) ([f02e8ea](https://github.com/react-hookz/web/commit/f02e8ea61adffe8626d4e4b31073b24996802479)) - -# [1.18.0](https://github.com/react-hookz/web/compare/v1.17.0...v1.18.0) (2021-05-06) - - -### Features - -* new hook `useSyncedRef` ([#42](https://github.com/react-hookz/web/issues/42)) ([49810a0](https://github.com/react-hookz/web/commit/49810a0d4c1e9055db8bcbc614768707837224d8)) - -# [1.17.0](https://github.com/react-hookz/web/compare/v1.16.0...v1.17.0) (2021-05-06) - - -### Features - -* use stricter TS config and fix issues caused by this ([6af7867](https://github.com/react-hookz/web/commit/6af786767f4d68c64b4116eb2e92f1343100aaf8)) - -# [1.16.0](https://github.com/react-hookz/web/compare/v1.15.0...v1.16.0) (2021-05-06) - - -### Features - -* new hook `useDebounceCallback` ([#40](https://github.com/react-hookz/web/issues/40)) ([8018be1](https://github.com/react-hookz/web/commit/8018be1acbcdaef69f283444c7f6b38249734c65)) - -# [1.15.0](https://github.com/react-hookz/web/compare/v1.14.0...v1.15.0) (2021-05-06) - - -### Features - -* new hook `useIsomorphicLayoutEffect` ([#41](https://github.com/react-hookz/web/issues/41)) ([8e17b3c](https://github.com/react-hookz/web/commit/8e17b3c3390ece7ab39e989cfd81d80f5130d321)) - -# [1.14.0](https://github.com/react-hookz/web/compare/v1.13.0...v1.14.0) (2021-05-03) - - -### Features - -* new hook, useNetworkState ([#35](https://github.com/react-hookz/web/issues/35)) ([b5b082c](https://github.com/react-hookz/web/commit/b5b082cc67820fcf87f6fd529bf5cbaad91d9aff)) - -# [1.13.0](https://github.com/react-hookz/web/compare/v1.12.0...v1.13.0) (2021-05-02) - - -### Features - -* make stateful hooks use `useSafeState` ([d181c7f](https://github.com/react-hookz/web/commit/d181c7f56c5abab1c6e2b7064425a10bec668062)) - -# [1.12.0](https://github.com/react-hookz/web/compare/v1.11.0...v1.12.0) (2021-05-01) - - -### Features - -* new hook useMediatedState ([#32](https://github.com/react-hookz/web/issues/32)) ([9c99e61](https://github.com/react-hookz/web/commit/9c99e61bdcb6abf6f285d676d24de74cd5048c17)) - -# [1.11.0](https://github.com/react-hookz/web/compare/v1.10.0...v1.11.0) (2021-04-30) - - -### Features - -* new hook `useSafeState` ([#31](https://github.com/react-hookz/web/issues/31)) ([0718afe](https://github.com/react-hookz/web/commit/0718afe1569d2b900147bc9756ba3fba0a1bdde5)) - -# [1.10.0](https://github.com/react-hookz/web/compare/v1.9.1...v1.10.0) (2021-04-28) - - -### Features - -* new hooks, useConditionalEffect and useConditionalUpdateEffect ([#26](https://github.com/react-hookz/web/issues/26)) ([eb7f0a5](https://github.com/react-hookz/web/commit/eb7f0a525d00e9b66955177599a4a77ae1647867)) - -## [1.9.1](https://github.com/react-hookz/web/compare/v1.9.0...v1.9.1) (2021-04-28) - - -### Bug Fixes - -* default useUnmountEffect example to false ([#27](https://github.com/react-hookz/web/issues/27)) ([2ed0aa3](https://github.com/react-hookz/web/commit/2ed0aa382f2e6f597192ad323b1ba24121b10ab2)) - -# [1.9.0](https://github.com/react-hookz/web/compare/v1.8.0...v1.9.0) (2021-04-28) - - -### Features - -* new hook useIsMounted ([#24](https://github.com/react-hookz/web/issues/24)) ([7ad0d7e](https://github.com/react-hookz/web/commit/7ad0d7ed044463ef82987c44ae72f34ec4cd717a)) - -# [1.8.0](https://github.com/react-hookz/web/compare/v1.7.5...v1.8.0) (2021-04-28) - - -### Features - -* new hook usePrevious ([#25](https://github.com/react-hookz/web/issues/25)) ([132032a](https://github.com/react-hookz/web/commit/132032a6193a71e793f320233774d46d9613bc36)) - -## [1.7.5](https://github.com/react-hookz/web/compare/v1.7.4...v1.7.5) (2021-04-28) - - -### Bug Fixes - -* rollback husky version and add it to dependabot ignore ([099ea5b](https://github.com/react-hookz/web/commit/099ea5bb95208951e98ea6c894ce135a7b149668)) - -## [1.7.4](https://github.com/react-hookz/web/compare/v1.7.3...v1.7.4) (2021-04-25) - - -### Bug Fixes - -* lint issues auto-fix with ESLint ([9f9e53e](https://github.com/react-hookz/web/commit/9f9e53edb87065b9a2bbbc2d851d9f5d1ed67aa3)) - -## [1.7.3](https://github.com/react-hookz/web/compare/v1.7.2...v1.7.3) (2021-04-24) - -### Bug Fixes - -* better not to split declarations from files ([c6a2d92](https://github.com/react-hookz/web/commit/c6a2d9210e7886f490973994da12c3bb88c09020)) -* lint issues auto-fix with ESLint ([63bf8e2](https://github.com/react-hookz/web/commit/63bf8e26878a705e632c185f3bf6a2232633be19)) - -## [1.7.2](https://github.com/react-hookz/web/compare/v1.7.1...v1.7.2) (2021-04-24) - -### Bug Fixes - -* lint issues auto-fix with ESLint ([11b9a07](https://github.com/react-hookz/web/commit/11b9a07fe6f23a305a0581d0e05bf93f55ca53a2)) -* replace husky v6 with husky v4 as v5+ ruins CI lint autofix ([a50955a](https://github.com/react-hookz/web/commit/a50955a44d9fe0d7a90cc481f7d0f2855f708d9a)) - -## [1.7.1](https://github.com/react-hookz/web/compare/v1.7.0...v1.7.1) (2021-04-23) - -### Bug Fixes - -* add ci yarn caching layer ([5aa8ae1](https://github.com/react-hookz/web/commit/5aa8ae199e72a88d17809cf5cc5023c7344ed025)) - -# [1.7.0](https://github.com/react-hookz/web/compare/v1.6.2...v1.7.0) (2021-04-23) - -### Bug Fixes - -* add `md` and `mdx` files to lint-staged hook glob ([d1d3d72](https://github.com/react-hookz/web/commit/d1d3d7200313c023f874e74720f9d787a9321d78)) -* add readme clarification about different lang level usages ([0632992](https://github.com/react-hookz/web/commit/0632992a39f18e99ca4bd9929d6bdcdb236e9182)) -* exclude new distributed directories from eslint and tsconfig ([058960e](https://github.com/react-hookz/web/commit/058960e9eb60893ce94504a3aac68d4ec1e131a4)) - -### Features - -* package now has /cjs, /esm distibuted versions ([4911c9d](https://github.com/react-hookz/web/commit/4911c9d3c0813bff5e52ae98cfc4dfc542996a0b)) - -# [1.7.0](https://github.com/react-hookz/web/compare/v1.6.2...v1.7.0) (2021-04-23) - -### Features - -* package now has /cjs, /esm distibuted versions ([4911c9d](https://github.com/react-hookz/web/commit/4911c9d3c0813bff5e52ae98cfc4dfc542996a0b)) - -## [1.6.2](https://github.com/react-hookz/web/compare/v1.6.1...v1.6.2) (2021-04-22) - -### Bug Fixes - -* add hook link to README.md ([368f1d9](https://github.com/react-hookz/web/commit/368f1d9b595eec113cadffa217ef01041a6a4c72)) - -# [1.7.0](https://github.com/react-hookz/web/compare/v1.6.1...v1.7.0) (2021-04-22) - -### Features - -* add storybook docs with deploy to gh-pages ([84de312](https://github.com/react-hookz/web/commit/84de312a607f202c8957ae3f6d32c453cffe134a)) - -## [1.6.1](https://github.com/react-hookz/web/compare/v1.6.0...v1.6.1) (2021-04-21) - -### Bug Fixes - -* useUnmountEffect and useMountEffect typings fix ([32ec0c7](https://github.com/react-hookz/web/commit/32ec0c7f7b63c8d8941b95f5f8e5c369e5e87f1a)) - -# [1.6.0](https://github.com/react-hookz/web/compare/v1.5.0...v1.6.0) (2021-04-21) - -### Features - -* useToggle hook ([#3](https://github.com/react-hookz/web/issues/3)) ([3a51779](https://github.com/react-hookz/web/commit/3a51779e21c83c51994a3da59aaf88d729ecc43f)) - -# [1.5.0](https://github.com/react-hookz/web/compare/v1.4.3...v1.5.0) (2021-04-21) - -### Features - -* make tests import hooks from the index ([3210650](https://github.com/react-hookz/web/commit/3210650220f6e685d91bb7921c725596199eec84)) - -## [1.4.3](https://github.com/react-hookz/web/compare/v1.4.2...v1.4.3) (2021-04-21) - -### Bug Fixes - -* dist package returned to bundle ([e92bd18](https://github.com/react-hookz/web/commit/e92bd18a2feafe9ae1770b992d723d31027c72d9)) - -## [1.4.2](https://github.com/react-hookz/web/compare/v1.4.1...v1.4.2) (2021-04-18) - -### Bug Fixes - -* add @semantic-release/github plugin ([9f7e1b3](https://github.com/react-hookz/web/commit/9f7e1b3a441674c03ab29af3682f9619fc668806)) - -## [1.4.1](https://github.com/react-hookz/web/compare/v1.4.0...v1.4.1) (2021-04-16) - -### Bug Fixes - -* add types field to package json and tweak build ([8d64b9a](https://github.com/react-hookz/web/commit/8d64b9a1e240df938f177f565c0427b9bedfe934)) - -# [1.4.0](https://github.com/react-hookz/web/compare/v1.3.0...v1.4.0) (2021-04-16) - -### Features - -* add main file and reexport new hooks ([e2ea1cb](https://github.com/react-hookz/web/commit/e2ea1cbf6b5de909945fadde15eafd5ab70cea9f)) - -# [1.3.0](https://github.com/react-hookz/web/compare/v1.2.3...v1.3.0) (2021-04-16) - -### Features - -* useUpdateEffect hook ([bc3a655](https://github.com/react-hookz/web/commit/bc3a655f5cbfe3b4edb94c6084f62e95806ea6de)) - -## [1.2.3](https://github.com/react-hookz/web/compare/v1.2.2...v1.2.3) (2021-04-16) - -### Bug Fixes - -* properly name useMountEffect and useUnmountEffect parameter ([5218bfc](https://github.com/react-hookz/web/commit/5218bfcc359b34fe61a46a635c41fb093182a56e)) - -## [1.2.2](https://github.com/react-hookz/web/compare/v1.2.1...v1.2.2) (2021-04-15) - -### Bug Fixes - -* attempt to make codecov push only occur on release publish ([ac5c221](https://github.com/react-hookz/web/commit/ac5c221659ce8173268c88d9da385411a07009f3)) - -## [1.2.1](https://github.com/react-hookz/web/compare/v1.2.0...v1.2.1) (2021-04-15) - -### Bug Fixes - -* codecov push should only occur on release publish ([2a9e024](https://github.com/react-hookz/web/commit/2a9e0249d83bd7df2b126ad62e5b3aee3ca8dfbc)) - -# [1.2.0](https://github.com/react-hookz/web/compare/v1.1.0...v1.2.0) (2021-04-15) - -### Features - -* add codecov coverage reporting ([3254871](https://github.com/react-hookz/web/commit/325487121b3fb8a27ab129e31a0cec3bcf7cce1f)) - -# [1.1.0](https://github.com/react-hookz/web/compare/v1.0.0...v1.1.0) (2021-04-15) - -### Features - -* implement useMountEffect and useUnmountEffect hooks ([98ec434](https://github.com/react-hookz/web/commit/98ec434d3b9b9e56ebb92ce4bf047a2ef9d19c8f)) - -# 1.0.0 (2021-04-14) - -### Features - -* add .npmignore and filler .gitignore files. ([e12375f](https://github.com/react-hookz/web/commit/e12375f2d489938e85dd7abb0fac4dae6d5be7fa)) -* add CI workflow and dependabot config. ([7e365cf](https://github.com/react-hookz/web/commit/7e365cfe16fe1f7ce6c4a5792f7f490890dc14b5)) -* add semantic release dep. ([4e39fa3](https://github.com/react-hookz/web/commit/4e39fa3ee5de0d7a1712601985567320a44b04c6)) -* configure basic builds. ([34aafe4](https://github.com/react-hookz/web/commit/34aafe4d67ea2c27b2a321df8fed15b7e2d50bab)) -* improve ci config and set initial version to 0.0.1 ([adf4dca](https://github.com/react-hookz/web/commit/adf4dca9cbd4e76ffed71fddc05d4875cb67365c)) -* introduce useFirstMountState ([bd7123b](https://github.com/react-hookz/web/commit/bd7123b08dd1dd4d25ce8ae1765bfde19368a7fe)) - -# 1.0.0 (2021-04-14) - -### Features - -* add .npmignore and filler .gitignore files. ([e12375f](https://github.com/react-hookz/web/commit/e12375f2d489938e85dd7abb0fac4dae6d5be7fa)) -* add CI workflow and dependabot config. ([7e365cf](https://github.com/react-hookz/web/commit/7e365cfe16fe1f7ce6c4a5792f7f490890dc14b5)) -* add semantic release dep. ([4e39fa3](https://github.com/react-hookz/web/commit/4e39fa3ee5de0d7a1712601985567320a44b04c6)) -* configure basic builds. ([34aafe4](https://github.com/react-hookz/web/commit/34aafe4d67ea2c27b2a321df8fed15b7e2d50bab)) -* improve ci config and set initial version to 0.0.1 ([adf4dca](https://github.com/react-hookz/web/commit/adf4dca9cbd4e76ffed71fddc05d4875cb67365c)) -* introduce useFirstMountState ([bd7123b](https://github.com/react-hookz/web/commit/bd7123b08dd1dd4d25ce8ae1765bfde19368a7fe)) - -# 1.0.0 (2021-04-12) - -### Features - -* add .npmignore and filler .gitignore files. ([e12375f](https://github.com/react-hookz/web/commit/e12375f2d489938e85dd7abb0fac4dae6d5be7fa)) -* add CI workflow and dependabot config. ([7e365cf](https://github.com/react-hookz/web/commit/7e365cfe16fe1f7ce6c4a5792f7f490890dc14b5)) -* add semantic release dep. ([4e39fa3](https://github.com/react-hookz/web/commit/4e39fa3ee5de0d7a1712601985567320a44b04c6)) -* configure basic builds. ([34aafe4](https://github.com/react-hookz/web/commit/34aafe4d67ea2c27b2a321df8fed15b7e2d50bab)) -* improve ci config and set initial version to 0.0.1 ([adf4dca](https://github.com/react-hookz/web/commit/adf4dca9cbd4e76ffed71fddc05d4875cb67365c)) -* introduce useFirstMountState ([bd7123b](https://github.com/react-hookz/web/commit/bd7123b08dd1dd4d25ce8ae1765bfde19368a7fe)) From 21ae9c5b1cf4b27b5a73119d7bdb6b215b08fcbf Mon Sep 17 00:00:00 2001 From: xobotyi Date: Mon, 23 Dec 2024 23:44:39 +0100 Subject: [PATCH 12/13] test: replace istanbul coverage directives with v8 --- src/useCookieValue/index.ts | 6 +++--- src/useDebouncedCallback/index.ts | 2 +- src/useEventListener/index.ts | 2 +- src/useLocalStorageValue/index.ts | 2 +- src/useNetworkState/index.ts | 4 ++-- src/useSessionStorageValue/index.ts | 2 +- src/useStorageValue/index.ts | 8 ++++---- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/useCookieValue/index.ts b/src/useCookieValue/index.ts index 27f46954..62eef10a 100644 --- a/src/useCookieValue/index.ts +++ b/src/useCookieValue/index.ts @@ -22,7 +22,7 @@ const unregisterSetter = (key: string, setter: Dispatch): void => const setters = cookiesSetters.get(key); // Almost impossible to test in normal situation - /* istanbul ignore next */ + /* v8 ignore next */ if (!setters) { return; } @@ -42,7 +42,7 @@ const invokeRegisteredSetters = ( const setters = cookiesSetters.get(key); // Almost impossible to test in normal situation - /* istanbul ignore next */ + /* v8 ignore next */ if (!setters) { return; } @@ -91,7 +91,7 @@ export function useCookieValue( options: UseCookieValueOptions = {}, ): UseCookieValueReturn { // No need to test it, dev-only notification about 3rd party library requirement - /* istanbul ignore next */ + /* v8 ignore next */ if (process.env.NODE_ENV === 'development' && Cookies === undefined) { throw new ReferenceError( 'Dependency `js-cookies` is not installed, it is required for `useCookieValue` work.', diff --git a/src/useDebouncedCallback/index.ts b/src/useDebouncedCallback/index.ts index 005036dd..2102cdba 100644 --- a/src/useDebouncedCallback/index.ts +++ b/src/useDebouncedCallback/index.ts @@ -52,7 +52,7 @@ export function useDebouncedCallback any>( clear(); // Barely possible to test this line - /* istanbul ignore next */ + /* v8 ignore next */ if (!lastCall.current) { return; } diff --git a/src/useEventListener/index.ts b/src/useEventListener/index.ts index df8f04b0..842fbaf6 100644 --- a/src/useEventListener/index.ts +++ b/src/useEventListener/index.ts @@ -29,7 +29,7 @@ export function useEventListener( function (this: T, ...args) { // Normally, such situation should not happen, but better to // have back covered - /* istanbul ignore next */ + /* v8 ignore next */ if (!isMounted()) { return; } diff --git a/src/useLocalStorageValue/index.ts b/src/useLocalStorageValue/index.ts index e2cf7694..355e7c3b 100644 --- a/src/useLocalStorageValue/index.ts +++ b/src/useLocalStorageValue/index.ts @@ -11,7 +11,7 @@ try { IS_LOCAL_STORAGE_AVAILABLE = isBrowser && Boolean(globalThis.localStorage); } catch { // No need to test this flag leads to noop behaviour - /* istanbul ignore next */ + /* v8 ignore next */ IS_LOCAL_STORAGE_AVAILABLE = false; } diff --git a/src/useNetworkState/index.ts b/src/useNetworkState/index.ts index 8d88569e..20cb69d2 100644 --- a/src/useNetworkState/index.ts +++ b/src/useNetworkState/index.ts @@ -113,7 +113,7 @@ export function useNetworkState(initialState?: InitialState): U on(globalThis, 'offline', handleStateChange, {passive: true}); // It is quite hard to test it in jsdom environment maybe will be improved in future - /* istanbul ignore next */ + /* v8 ignore next */ if (conn) { on(conn, 'change', handleStateChange, {passive: true}); } @@ -122,7 +122,7 @@ export function useNetworkState(initialState?: InitialState): U off(globalThis, 'online', handleStateChange); off(globalThis, 'offline', handleStateChange); - /* istanbul ignore next */ + /* v8 ignore next */ if (conn) { off(conn, 'change', handleStateChange); } diff --git a/src/useSessionStorageValue/index.ts b/src/useSessionStorageValue/index.ts index 6f63561f..39df45ce 100644 --- a/src/useSessionStorageValue/index.ts +++ b/src/useSessionStorageValue/index.ts @@ -11,7 +11,7 @@ try { IS_SESSION_STORAGE_AVAILABLE = isBrowser && Boolean(globalThis.sessionStorage); } catch { // No need to test as this flag leads to noop behaviour - /* istanbul ignore next */ + /* v8 ignore next */ IS_SESSION_STORAGE_AVAILABLE = false; } diff --git a/src/useStorageValue/index.ts b/src/useStorageValue/index.ts index 0300570f..2ea838d8 100644 --- a/src/useStorageValue/index.ts +++ b/src/useStorageValue/index.ts @@ -58,13 +58,13 @@ const addStorageListener = (s: Storage, key: string, listener: CallableFunction) const removeStorageListener = (s: Storage, key: string, listener: CallableFunction) => { const keys = storageListeners.get(s); - /* istanbul ignore next */ + /* v8 ignore next */ if (!keys) { return; } const listeners = keys.get(key); - /* istanbul ignore next */ + /* v8 ignore next */ if (!listeners) { return; } @@ -279,7 +279,7 @@ export function useStorageValue< const defaultStringify = (data: unknown): string | null => { if (data === null) { - /* istanbul ignore next */ + /* v8 ignore next */ if (process.env.NODE_ENV === 'development') { console.warn( '\'null\' is not a valid data for useStorageValue hook, this operation will take no effect', @@ -291,7 +291,7 @@ const defaultStringify = (data: unknown): string | null => { try { return JSON.stringify(data); - } catch (error) /* istanbul ignore next */ { + } catch (error) /* v8 ignore next */ { // I have absolutely no idea how to cover this, since modern JSON.stringify does not throw on // cyclic references anymore From b13c66d59c6fc072c3230d5104acb7320846f607 Mon Sep 17 00:00:00 2001 From: xobotyi Date: Mon, 23 Dec 2024 23:52:37 +0100 Subject: [PATCH 13/13] test: just remove all coverage ignoring directive --- src/useCookieValue/index.ts | 6 ------ src/useDebouncedCallback/index.ts | 2 -- src/useEventListener/index.ts | 4 ---- src/useIntersectionObserver/index.ts | 2 -- src/useLocalStorageValue/index.ts | 2 -- src/useMediaQuery/index.ts | 1 - src/useNetworkState/index.ts | 3 --- src/useResizeObserver/index.ts | 2 -- src/useSessionStorageValue/index.ts | 2 -- src/useStorageValue/index.ts | 5 ++--- 10 files changed, 2 insertions(+), 27 deletions(-) diff --git a/src/useCookieValue/index.ts b/src/useCookieValue/index.ts index 62eef10a..ddc5e896 100644 --- a/src/useCookieValue/index.ts +++ b/src/useCookieValue/index.ts @@ -21,8 +21,6 @@ const registerSetter = (key: string, setter: Dispatch) => { const unregisterSetter = (key: string, setter: Dispatch): void => { const setters = cookiesSetters.get(key); - // Almost impossible to test in normal situation - /* v8 ignore next */ if (!setters) { return; } @@ -41,8 +39,6 @@ const invokeRegisteredSetters = ( ) => { const setters = cookiesSetters.get(key); - // Almost impossible to test in normal situation - /* v8 ignore next */ if (!setters) { return; } @@ -90,8 +86,6 @@ export function useCookieValue( key: string, options: UseCookieValueOptions = {}, ): UseCookieValueReturn { - // No need to test it, dev-only notification about 3rd party library requirement - /* v8 ignore next */ if (process.env.NODE_ENV === 'development' && Cookies === undefined) { throw new ReferenceError( 'Dependency `js-cookies` is not installed, it is required for `useCookieValue` work.', diff --git a/src/useDebouncedCallback/index.ts b/src/useDebouncedCallback/index.ts index 2102cdba..05fc4e7e 100644 --- a/src/useDebouncedCallback/index.ts +++ b/src/useDebouncedCallback/index.ts @@ -51,8 +51,6 @@ export function useDebouncedCallback any>( const execute = () => { clear(); - // Barely possible to test this line - /* v8 ignore next */ if (!lastCall.current) { return; } diff --git a/src/useEventListener/index.ts b/src/useEventListener/index.ts index 842fbaf6..de4c07b7 100644 --- a/src/useEventListener/index.ts +++ b/src/useEventListener/index.ts @@ -27,15 +27,11 @@ export function useEventListener( // infers call context function (this: T, ...args) { - // Normally, such situation should not happen, but better to - // have back covered - /* v8 ignore next */ if (!isMounted()) { return; } // We dont care if non-listener provided, simply dont do anything - /* istanbul ignore else */ if (typeof listenerRef.current === 'function') { listenerRef.current.apply(this, args); } else if (typeof listenerRef.current!.handleEvent === 'function') { diff --git a/src/useIntersectionObserver/index.ts b/src/useIntersectionObserver/index.ts index 6a38373b..fd81ae9f 100644 --- a/src/useIntersectionObserver/index.ts +++ b/src/useIntersectionObserver/index.ts @@ -66,7 +66,6 @@ const getObserverEntry = (options: IntersectionObserverInit): ObserverEntry => { // Else branch should never occur in case of normal execution // because callbacks map is hidden in closure - it is impossible to // simulate situation with non-existent `cbs` Set - /* istanbul ignore else */ if (cbs) { // Remove current observer cbs.delete(callback); @@ -156,7 +155,6 @@ export function useIntersectionObserver( const handler: IntersectionEntryCallback = (entry) => { // It is reinsurance for the highly asynchronous invocations, almost // impossible to achieve in tests, thus excluding from LOC - /* istanbul ignore else */ if (subscribed) { setState(entry); } diff --git a/src/useLocalStorageValue/index.ts b/src/useLocalStorageValue/index.ts index 355e7c3b..4eecb59d 100644 --- a/src/useLocalStorageValue/index.ts +++ b/src/useLocalStorageValue/index.ts @@ -10,8 +10,6 @@ let IS_LOCAL_STORAGE_AVAILABLE: boolean; try { IS_LOCAL_STORAGE_AVAILABLE = isBrowser && Boolean(globalThis.localStorage); } catch { - // No need to test this flag leads to noop behaviour - /* v8 ignore next */ IS_LOCAL_STORAGE_AVAILABLE = false; } diff --git a/src/useMediaQuery/index.ts b/src/useMediaQuery/index.ts index ef02b1f9..754137f8 100644 --- a/src/useMediaQuery/index.ts +++ b/src/useMediaQuery/index.ts @@ -42,7 +42,6 @@ const queryUnsubscribe = (query: string, setState: QueryStateSetter): void => { const entry = queriesMap.get(query); // Else path is impossible to test in normal situation - /* istanbul ignore else */ if (entry) { const {mql, dispatchers, listener} = entry; dispatchers.delete(setState); diff --git a/src/useNetworkState/index.ts b/src/useNetworkState/index.ts index 20cb69d2..f7837896 100644 --- a/src/useNetworkState/index.ts +++ b/src/useNetworkState/index.ts @@ -112,8 +112,6 @@ export function useNetworkState(initialState?: InitialState): U on(globalThis, 'online', handleStateChange, {passive: true}); on(globalThis, 'offline', handleStateChange, {passive: true}); - // It is quite hard to test it in jsdom environment maybe will be improved in future - /* v8 ignore next */ if (conn) { on(conn, 'change', handleStateChange, {passive: true}); } @@ -122,7 +120,6 @@ export function useNetworkState(initialState?: InitialState): U off(globalThis, 'online', handleStateChange); off(globalThis, 'offline', handleStateChange); - /* v8 ignore next */ if (conn) { off(conn, 'change', handleStateChange); } diff --git a/src/useResizeObserver/index.ts b/src/useResizeObserver/index.ts index 3293b34d..a4ce1e04 100644 --- a/src/useResizeObserver/index.ts +++ b/src/useResizeObserver/index.ts @@ -59,7 +59,6 @@ function getResizeObserver(): ResizeObserverSingleton | undefined { // Else branch should never occur in case of normal execution // because callbacks map is hidden in closure - it is impossible to // simulate situation with non-existent `cbs` Set - /* istanbul ignore else */ if (cbs) { // Remove current observer cbs.delete(callback); @@ -112,7 +111,6 @@ export function useResizeObserver( const handler: UseResizeObserverCallback = (...args) => { // It is reinsurance for the highly asynchronous invocations, almost // impossible to achieve in tests, thus excluding from LOC - /* istanbul ignore else */ if (subscribed) { cb.current(...args); } diff --git a/src/useSessionStorageValue/index.ts b/src/useSessionStorageValue/index.ts index 39df45ce..920bcfd2 100644 --- a/src/useSessionStorageValue/index.ts +++ b/src/useSessionStorageValue/index.ts @@ -10,8 +10,6 @@ let IS_SESSION_STORAGE_AVAILABLE: boolean; try { IS_SESSION_STORAGE_AVAILABLE = isBrowser && Boolean(globalThis.sessionStorage); } catch { - // No need to test as this flag leads to noop behaviour - /* v8 ignore next */ IS_SESSION_STORAGE_AVAILABLE = false; } diff --git a/src/useStorageValue/index.ts b/src/useStorageValue/index.ts index 2ea838d8..bc58ec8f 100644 --- a/src/useStorageValue/index.ts +++ b/src/useStorageValue/index.ts @@ -58,13 +58,13 @@ const addStorageListener = (s: Storage, key: string, listener: CallableFunction) const removeStorageListener = (s: Storage, key: string, listener: CallableFunction) => { const keys = storageListeners.get(s); - /* v8 ignore next */ + if (!keys) { return; } const listeners = keys.get(key); - /* v8 ignore next */ + if (!listeners) { return; } @@ -279,7 +279,6 @@ export function useStorageValue< const defaultStringify = (data: unknown): string | null => { if (data === null) { - /* v8 ignore next */ if (process.env.NODE_ENV === 'development') { console.warn( '\'null\' is not a valid data for useStorageValue hook, this operation will take no effect',
    -
    - Below scrollable container holds a rectangle that turns green when 50% or more of it is - visible. -
    - -
    -
    = 0.5 ? 'green' : 'red', - width: '10vw', - height: '10vw', - margin: '39vh auto', - }} /> -
    -
    -				{JSON.stringify(
    -					{
    -						boundingClientRect: intersection?.boundingClientRect,
    -						intersectionRatio: intersection?.intersectionRatio,
    -						intersectionRect: intersection?.intersectionRect,
    -						isIntersecting: intersection?.isIntersecting,
    -						rootBounds: intersection?.rootBounds,
    -						time: intersection?.time,
    -					},
    -					null,
    -					2,
    -				)}
    -			
    -
    - ); -} diff --git a/src/useIntersectionObserver/__docs__/story.mdx b/src/useIntersectionObserver/__docs__/story.mdx deleted file mode 100644 index 1507b683..00000000 --- a/src/useIntersectionObserver/__docs__/story.mdx +++ /dev/null @@ -1,43 +0,0 @@ -# useIntersectionObserver - -Tracks intersection of a target element with an ancestor element or with a top-level document's -viewport. - -- SSR-friendly. -- Effective - uses single `IntersectionObserver` for hooks with same options. -- Allows using React reference as root. -- Does not produce references for you. - -#### Example - -## Reference - -```ts -export function useIntersectionObserver( - target: RefObject | T | null, - { threshold = [0], root, rootMargin = '0px' }: IUseIntersectionObserverOptions = {} -): IntersectionObserverEntry | undefined; -``` - -#### Importing - -#### Arguments - -- **target** _`RefObject | T | null`_ - React reference or Element to track. -- **options** - Like `IntersectionObserver` options but `root` can also be react reference. -- **root** _`RefObject | Element | Document | null`_ _(default: `document`)_ - - An `Element` or `Document` object (or its react reference) which is an ancestor of the intended - target, whose bounding rectangle will be considered the viewport. Any part of the target not - visible in the visible area of the root is not considered visible. -- **rootMargin** _`string`_ _(default: `0px`)_ - A string which specifies a set of offsets to add - to the root's bounding_box when calculating intersections, effectively shrinking or growing the - root for calculation purposes. The syntax is approximately the same as that for the CSS margin - property. -- **threshold** _`number[]`_ _(default: `[0]`)_ - Array of numbers between 0.0 and 1.0, specifying - a ratio of intersection area to total bounding box area for the observed target. A value of 0.0 - means that even a single visible pixel counts as the target being visible. 1.0 means that the - entire target element is visible. - -#### Return - -`IntersectionObserverEntry` as it is returned from `IntersectionObserver` diff --git a/src/useIntervalEffect/__docs__/example.stories.tsx b/src/useIntervalEffect/__docs__/example.stories.tsx deleted file mode 100644 index 6e360a3e..00000000 --- a/src/useIntervalEffect/__docs__/example.stories.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import * as React from 'react'; -import { useState } from 'react'; -import { useIntervalEffect, useToggle } from '../../index.js'; - -export function Example() { - const [state, setState] = useState(); - const [enabled, toggleEnabled] = useToggle(); - - useIntervalEffect( - () => { - setState(new Date()); - }, - enabled ? 1000 : undefined - ); - - return ( -
    - Last interval invocation: {state?.toString()} -
    - -
    - ); -} diff --git a/src/useIntervalEffect/__docs__/story.mdx b/src/useIntervalEffect/__docs__/story.mdx deleted file mode 100644 index 49dccfe6..00000000 --- a/src/useIntervalEffect/__docs__/story.mdx +++ /dev/null @@ -1,24 +0,0 @@ -# useIntervalEffect - -Like `setInterval` but in the form of a React hook. - -- Automatically cancels the interval on component unmount. -- The interval is reset when the interval duration is changed. -- Changing the interval callback does not cause the interval to reset. -- Ability to disable the interval. - -#### Example - -## Reference - -```ts -export function useIntervalEffect(callback: () => void, ms?: number): void; -``` - -#### Importing - -#### Arguments - -- **callback** _`() => void`_ - Function to call within the interval. -- **ms** _`number | undefined`_ - Delay passed to the underlying `setInterval`. If set to - `undefined`, the interval will be cancelled. diff --git a/src/useIsMounted/__docs__/example.stories.tsx b/src/useIsMounted/__docs__/example.stories.tsx deleted file mode 100644 index cda0d46b..00000000 --- a/src/useIsMounted/__docs__/example.stories.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import * as React from 'react'; -import {useIsMounted, useMountEffect, useToggle} from '../../index.js'; - -export function Example() { - const [isToggled, toggle] = useToggle(false); - - function ToggledComponent() { - const isMounted = useIsMounted(); - - // As you can see, below effect has no dependencies, it will be executed - // anyway, but alert will be displayed only in case component persist mounted - useMountEffect(() => { - setTimeout(() => { - if (isMounted()) { - // eslint-disable-next-line no-alert - alert('Component was not unmounted!'); - } - }, 5000); - }); - - return ( -

    - This component will display an alert 5 seconds after mount. -
    - Unmounting the component will prevent it. -

    - ); - } - - return ( -
    - {!isToggled && ( -
    - Because the example component displays an alert without interaction, it is initially - unmounted. -
    - )} - - {' '} - {isToggled && } -
    - ); -} diff --git a/src/useIsMounted/__docs__/story.mdx b/src/useIsMounted/__docs__/story.mdx deleted file mode 100644 index 4b873a50..00000000 --- a/src/useIsMounted/__docs__/story.mdx +++ /dev/null @@ -1,24 +0,0 @@ -# useIsMounted - -Returns a function that returns the current mount state. This hook is useful when you have to detect -component mount state within async effects. - -> **_This hook provides stable API, meaning returned methods does not change between renders_** - -#### Example - -## Reference - -```ts -function useIsMounted(initialValue = false): () => boolean; -``` - -#### Importing - -#### Arguments - -- **initialState** _`boolean`_ _(default: `false`)_ - Initial value. - -#### Return - -Function that returns `true` only if the component is mounted. diff --git a/src/useIsomorphicLayoutEffect/__docs__/story.mdx b/src/useIsomorphicLayoutEffect/__docs__/story.mdx deleted file mode 100644 index 6e99c056..00000000 --- a/src/useIsomorphicLayoutEffect/__docs__/story.mdx +++ /dev/null @@ -1,13 +0,0 @@ -# useIsomorphicLayoutEffect - -Alias for `useLayoutEffect` in browser, but for `useEffect` at server side. Helps to avoid warning -shown during SSR. -[Read Alex Reardon's article](https://medium.com/@alexandereardon/uselayouteffect-and-ssr-192986cdcf7a) - -#### Example - -There is nothing to show in browser, as this hook affects SSR only. - -## Reference - -Use it exactly the same as `useLayoutEffect`. diff --git a/src/useKeyboardEvent/__docs__/example.stories.tsx b/src/useKeyboardEvent/__docs__/example.stories.tsx deleted file mode 100644 index ef1f0e54..00000000 --- a/src/useKeyboardEvent/__docs__/example.stories.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import * as React from 'react'; -import { useState } from 'react'; -import { useKeyboardEvent } from '../../index.js'; - -export function Example() { - const [list, setList] = useState([]); - - useKeyboardEvent( - true, - (ev) => { - setList((l) => [...l.slice(-10), ev.key]); - }, - [], - { eventOptions: { passive: true } } - ); - - return ( -
    -
    Press any keys on the keyboard and they will appear below.
    - -

    You have pressed

    -
      - {list.map((k, i) => ( - // eslint-disable-next-line react/no-array-index-key -
    • {k}
    • - ))} -
    -
    - ); -} diff --git a/src/useKeyboardEvent/__docs__/story.mdx b/src/useKeyboardEvent/__docs__/story.mdx deleted file mode 100644 index 7f669ce4..00000000 --- a/src/useKeyboardEvent/__docs__/story.mdx +++ /dev/null @@ -1,35 +0,0 @@ -# useKeyboardEvent - -Invokes a callback when a keyboard event occurs on the chosen target element. - -#### Example - -## Reference - -```ts -type UseKeyboardEventOptions = { - event?: 'keydown' | 'keypress' | 'keyup'; - target?: RefObject | T | null; - eventOptions?: boolean | AddEventListenerOptions; -}; - -function useKeyboardEvent( - keyOrPredicate: KeyboardEventFilter, - callback: KeyboardEventHandler, - deps?: DependencyList, - options: UseKeyboardEventOptions = {} -): void; -``` - -#### Importing - -#### Arguments - -- **keyOrPredicate** _`KeyboardEventFilter`_ - Filters key presses on which `callback` is invoked. -- **callback** _`KeyboardEventHandler`_ - Function to call when a key is pressed and `keyOrPredicate` - matches positive. -- **deps** _`DependencyList`_ - Dependencies list that is passed to the underlying `useMemo`. -- **options** - Hook options: -- **event** _`'keydown' | 'keypress' | 'keyup'`_ (default: `keydown`) - Keyboard event which triggers `callback`. -- **target** _`RefObject | T | null`_ (default: `window`) - Target element that emits `event`. -- **eventOptions** _`boolean | AddEventListenerOptions`_ - Options passed to the underlying `useEventListener` hook. diff --git a/src/useLifecycleLogger/__docs__/example.stories.tsx b/src/useLifecycleLogger/__docs__/example.stories.tsx deleted file mode 100644 index b044add4..00000000 --- a/src/useLifecycleLogger/__docs__/example.stories.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import * as React from 'react'; -import {useRerender, useLifecycleLogger} from '../../index.js'; - -export function Example() { - const rerender = useRerender(); - const dependency = 'test'; - useLifecycleLogger('Demo', [dependency]); - - return ( -
    -
    Check your console for useLifecycleLogger logs
    - -
    - ); -} diff --git a/src/useLifecycleLogger/__docs__/story.mdx b/src/useLifecycleLogger/__docs__/story.mdx deleted file mode 100644 index 4ee61636..00000000 --- a/src/useLifecycleLogger/__docs__/story.mdx +++ /dev/null @@ -1,18 +0,0 @@ -# useLifecycleLogger - -React lifecycle hook that console logs parameters as component transitions through lifecycles. - -#### Example - -## Reference - -```ts -function useLifecycleLogger(componentName: string, deps: []): void; -``` - -#### Importing - -#### Arguments - -- _**componentName**_ _`ComponentName`_ - String value to log the components name when logging the lifecycle. -- **deps** _`DependencyList`_ - Dependencies list that will be passed to underlying `useEffect`. diff --git a/src/useList/__docs__/example.stories.tsx b/src/useList/__docs__/example.stories.tsx deleted file mode 100644 index 7bf24e7b..00000000 --- a/src/useList/__docs__/example.stories.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import * as React from 'react'; -import { useList } from '../../index.js'; - -export function Example() { - const [ - list, - { - set, - push, - updateAt, - insertAt, - update, - updateFirst, - upsert, - sort, - filter, - removeAt, - clear, - reset, - }, - ] = useList([1, 2, 3, 4, 5]); - - return ( -
    - - - -
    -
    - - - -
    -
    - - - -
    -
    - - -
    -
    - - -
    {JSON.stringify(list, null, 2)}
    -
    - ); -} diff --git a/src/useList/__docs__/story.mdx b/src/useList/__docs__/story.mdx deleted file mode 100644 index 104715bc..00000000 --- a/src/useList/__docs__/story.mdx +++ /dev/null @@ -1,48 +0,0 @@ -# useList - -Tracks a list and offers functions for manipulating it. - -Manipulating the list directly will not cause a rerender. Instead, use the offered functions. - -> **_This hook provides a stable API, meaning the returned functions do not change between renders_** - -#### Example - -## Reference - -```ts -function useList(initialList: InitialState): [T[], ListActions]; -``` - -#### Importing - -#### Arguments - -- _**initialList**_ _`InitialState`_ - Initial list or function returning a list - -#### Return - -1. **list** - The current list. - -2. **actions** - -- **set** - Replaces the current list. -- **push** - Adds an item or items to the end of the list. -- **updateAt** - Replaces the item at the given index of the list. If the given index is out of - bounds, empty elements are appended to the list until the given item can be set to the given index. -- **insertAt** - Inserts an item at the given index of the list. All items following the given - index are shifted one position. If the given index is out of bounds, empty elements are appended - to the list until the given item can be set to the given index. -- **update** - Replaces all items of the list that match the given predicate with the given item. -- **updateFirst** - Replaces the first item of the list that matches the given predicate with the - given item. -- **upsert** - Replaces the first item of the list that matches the given predicate with the - given item. If none of the items match the predicate, the given item is pushed to the list. -- **sort** - Sorts the list with the given sorting function. If no sorting function is given, - the default Array.prototype.sort() sorting is used. -- **filter** - Filters the list with the given filter function. -- **removeAt** - Removes the item at the given index of the list. All items following the given - index will be shifted. If the given index is out of the bounds of the list, the list will not be - modified, but a rerender will occur. -- **clear** - Deletes all items of the list. -- **reset** - Replaces the current list with the initial list given to this hook. diff --git a/src/useLocalStorageValue/__docs__/example.stories.tsx b/src/useLocalStorageValue/__docs__/example.stories.tsx deleted file mode 100644 index 5111ea82..00000000 --- a/src/useLocalStorageValue/__docs__/example.stories.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { useLocalStorageValue } from '../../index.js'; - -type ExampleProps = { - /** - * Default value to return in case key not presented in LocalStorage. - */ - readonly defaultValue: string; - /** - * LocalStorage key to manage. - */ - readonly key: string; -}; - -export function Example({ - key = 'react-hookz-ls-test', - defaultValue = '@react-hookz is awesome', -}: ExampleProps) { - const lsValue = useLocalStorageValue(key, { - defaultValue, - }); - - return ( -
    -
    - Below input value will persist between page reloads and even browser restart as its value is - stored in LocalStorage. -
    -
    - { - lsValue.set(ev.currentTarget.value); - }} - /> - -
    - ); -} diff --git a/src/useLocalStorageValue/__docs__/story.mdx b/src/useLocalStorageValue/__docs__/story.mdx deleted file mode 100644 index 917f818b..00000000 --- a/src/useLocalStorageValue/__docs__/story.mdx +++ /dev/null @@ -1,59 +0,0 @@ -# useLocalStorageValue - -Manages a single LocalStorage key. - -- Uses JSON serialisation to handle non-string values. -- Tracks window's `storage` event. -- Synchronized between all hooks on the page with the same key. -- SSR compatible. - -> **_This hook provides a stable API, meaning the returned methods do not change between renders._** - -> Does not allow usage of `null` as a value, since JSON allows serializing `null` - it would be -> impossible to separate `null` value from 'no such value' API result which is also `null`. - -> If you are doing SSR, set `initializeWithValue` to `false` in order for this hook to return -> `undefined` on first render. The LocalStorage value will be fetched client-side when effects -> are executed. - -> If you are using useLocalStorageValue in multiple places with the same key, all instances must -> use compatible serializers if you are overriding the serializers with the `parse` and `stringify` options. - -#### Example - -## Reference - -```ts -function useLocalStorageValue< - Type, - Default extends Type = Type, - Initialize extends boolean | undefined = boolean | undefined, ->( - key: string, - options?: UseStorageValueOptions -): UseStorageValueResult; -``` - -#### Importing - -#### Arguments - -- **key** _`string`_ - LocalStorage key to manage. -- **options** _`object`_ - Hook options: -- **defaultValue** _`T | null`_ - Value to return if `key` is not present in LocalStorage. -- **initializeWithValue** _`boolean`_ _(default: true)_ - Fetch storage value on first render. If - set to `false` will make the hook yield `undefined` on first render and defer fetching of the - value until effects are executed. -- **parse** _`(str: string | null, fallback: T | null) => T | null`_ - Custom parse function to use instead of JSON.parse -- **stringify** _`(data: unknown) => string | null`_ - Custom stringify function to use instead of JSON.stringify - -#### Return - -Object with following properties. Note that this object changes with `value`, but its methods are -stable between renders. Thus, it is safe to pass them as props. - -- **value** - LocalStorage value of the given `key` argument or `defaultValue`, if the key was not - present. -- **set** - Set a new value for the managed `key`. -- **remove** - Remove the current value of `key`. -- **fetch** - Manually retrieve the value of `key`. diff --git a/src/useMap/__docs__/example.stories.tsx b/src/useMap/__docs__/example.stories.tsx deleted file mode 100644 index b7c7bba3..00000000 --- a/src/useMap/__docs__/example.stories.tsx +++ /dev/null @@ -1,32 +0,0 @@ -/* eslint-disable react/no-unescaped-entities */ -import * as React from 'react'; -import { useMap } from '../../index.js'; - -export function Example() { - const map = useMap([['@react-hooks', 'is awesome']]); - - return ( -
    - - - - -
    -
    {JSON.stringify([...map], null, 2)}
    -
    - ); -} diff --git a/src/useMap/__docs__/story.mdx b/src/useMap/__docs__/story.mdx deleted file mode 100644 index db635389..00000000 --- a/src/useMap/__docs__/story.mdx +++ /dev/null @@ -1,28 +0,0 @@ -# useMap - -Tracks the state of a `Map`. - -- Returned map does not change between renders. -- 1-to-1 signature with the native `Map` object, but its methods are wrapped to cause components to - rerender with changes. - Otherwise, it is the JavaScript native `Map` object. -- SSR-friendly. - -#### Example - -## Reference - -```ts -export function useMap(entries?: readonly (readonly [K, V])[] | null): Map; -``` - -#### Importing - -#### Arguments - -- **entries** _`readonly (readonly [K, V])[] | null`_ - Initial entries iterator for underlying - `Map` constructor. - -#### Return - -- `Map` instance. diff --git a/src/useMeasure/__docs__/example.stories.tsx b/src/useMeasure/__docs__/example.stories.tsx deleted file mode 100644 index 82345456..00000000 --- a/src/useMeasure/__docs__/example.stories.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import * as React from 'react'; -import { useMeasure } from '../../index.js'; - -export function Example() { - const [measurements, ref] = useMeasure(); - - return ( -
    -
    {JSON.stringify(measurements)}
    -
    - resize me UwU -
    -
    - ); -} diff --git a/src/useMeasure/__docs__/story.mdx b/src/useMeasure/__docs__/story.mdx deleted file mode 100644 index a6442b9b..00000000 --- a/src/useMeasure/__docs__/story.mdx +++ /dev/null @@ -1,34 +0,0 @@ -# useMeasure - -Uses ResizeObserver to track element dimensions and re-render component when they change. - -- Its ResizeObserver callback uses RAF debouncing, therefore it is pretty performant. -- SSR friendly, returns `undefined` on initial mount. -- Automatically creates ref for you, that you can easily pass to needed element. -- Allows to dynamically enable and disable observation. - -#### Example - -## Reference - -```ts -interface Measures { - width: number; - height: number; -} - -function useMeasure(enabled = true): [Measures | undefined, React.RefObject]; -``` - -#### Importing - -#### Arguments - -- **enabled** _`boolean`_ _(default: `true`)_ - Whether resize observer is enabled or not. - -#### Return - -Array of two elements: - -- **0** _`Measures | undefined`_ - Width and height of the tracked element's `contentRect` -- **1** _`RefObject`_ - Ref object that should be passed to tracked element diff --git a/src/useMediaQuery/__docs__/example.stories.tsx b/src/useMediaQuery/__docs__/example.stories.tsx deleted file mode 100644 index dc111d01..00000000 --- a/src/useMediaQuery/__docs__/example.stories.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import * as React from 'react'; -import {useMediaQuery} from '../../index.js'; - -export function Example() { - const isSmallDevice = useMediaQuery('only screen and (max-width : 768px)'); - const isMediumDevice = useMediaQuery( - 'only screen and (min-width : 769px) and (max-width : 992px)', - ); - const isLargeDevice = useMediaQuery( - 'only screen and (min-width : 993px) and (max-width : 1200px)', - ); - const isExtraLargeDevice = useMediaQuery('only screen and (min-width : 1201px)'); - - return ( -
    - Resize your browser windows to see changes. -
    -
    -
    - Small device ( - max-width : 768px - ): - {' '} - {isSmallDevice === undefined ? 'unknown' : (isSmallDevice ? 'yes' : 'no')} -
    -
    - Medium device ( - max-width : 992px - ): - {' '} - {isMediumDevice === undefined ? 'unknown' : (isMediumDevice ? 'yes' : 'no')} -
    -
    - Large device ( - max-width : 1200px - ): - {' '} - {isLargeDevice === undefined ? 'unknown' : (isLargeDevice ? 'yes' : 'no')} -
    -
    - Extra large device ( - min-width : 1201px - ): - {' '} - {isExtraLargeDevice === undefined ? 'unknown' : (isExtraLargeDevice ? 'yes' : 'no')} -
    -
    - ); -} diff --git a/src/useMediaQuery/__docs__/story.mdx b/src/useMediaQuery/__docs__/story.mdx deleted file mode 100644 index 0ca08de1..00000000 --- a/src/useMediaQuery/__docs__/story.mdx +++ /dev/null @@ -1,35 +0,0 @@ -# useMediaQuery - -Tracks the state of CSS media query. - -- Tracks the changes in media query. -- Automatically updates on media query status change. -- Performant, uses only single `matchMedia` entry to update all hooks using same key. -- SSR-friendly. - -#### Example - -## Reference - -```ts -interface UseMediaQueryOptions { - initializeWithValue?: boolean; -} - -export function useMediaQuery(query: string, options?: UseMediaQueryOptions): boolean | undefined; -``` - -#### Importing - -#### Arguments - -- **query** _`string`_ - CSS media query to track. -- **options** _`object`_ - Hook options: -- **initializeWithValue** _`boolean`_ _(default: true)_ - Determine media query match state on first - render. Setting this to false will make the hook yield `undefined` on first render. We suggest - setting this to `false` during SSR. - -#### Return - -`boolean` - `true` if document matches the media query, `false` if not. `undefined` on first render -if `initializeWithValue` was set to `false`. diff --git a/src/useMediatedState/__docs__/example.stories.tsx b/src/useMediatedState/__docs__/example.stories.tsx deleted file mode 100644 index 7702f934..00000000 --- a/src/useMediatedState/__docs__/example.stories.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { useMediatedState } from '../../index.js'; - -export function Example() { - const nonLetterRe = /[^a-z]+/gi; - const [state, setState] = useMediatedState('123', (value: string) => - value.replaceAll(nonLetterRe, '') - ); - - return ( -
    -
    Below input will only receive letters
    - { - setState(ev.currentTarget.value); - }} - /> -
    - ); -} diff --git a/src/useMediatedState/__docs__/story.mdx b/src/useMediatedState/__docs__/story.mdx deleted file mode 100644 index 1033512b..00000000 --- a/src/useMediatedState/__docs__/story.mdx +++ /dev/null @@ -1,18 +0,0 @@ -# useMediatedState - -Like `useState`, but every value (including initial) set is passed through mediator function. - -> `setState` returned by this hook is stable between renders. - -#### Example - -## Reference - -```ts -function useMediatedState( - initialState?: S | (() => S), - mediator?: (state: R) => S -): [S, (value: R | ((prevState: S) => R)) => void]; -``` - -#### Importing diff --git a/src/useMountEffect/__docs__/example.stories.tsx b/src/useMountEffect/__docs__/example.stories.tsx deleted file mode 100644 index 87e7fa5b..00000000 --- a/src/useMountEffect/__docs__/example.stories.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import * as React from 'react'; -import {useState} from 'react'; -import {useRerender, useMountEffect} from '../../index.js'; - -export function Example() { - const [count, setCount] = useState(0); - const rerender = useRerender(); - - useMountEffect(() => { - setCount(i => i + 1); - }); - - return ( -
    -
    useMountEffect has run {count} time(s)
    - -
    - ); -} diff --git a/src/useMountEffect/__docs__/story.mdx b/src/useMountEffect/__docs__/story.mdx deleted file mode 100644 index 7d84ef62..00000000 --- a/src/useMountEffect/__docs__/story.mdx +++ /dev/null @@ -1,22 +0,0 @@ -# useMountEffect - -Run effect only when component is first mounted. - -> This hook does not provide any cleanup functionality, meaning that effect's return not passed to -> underlying `useEffect`. - -#### Example - -## Reference - -```ts -function useMountEffect(effect: CallableFunction): void; -``` - -#### Importing - -#### Arguments - -- _**effect**_ _`CallableFunction`_ - Effector to call when component mounted. Can be a function - returning any value. In case the need of cleanup action - use common `useEffect` with empty deps - array. diff --git a/src/useNetworkState/__docs__/example.stories.tsx b/src/useNetworkState/__docs__/example.stories.tsx deleted file mode 100644 index a80f7082..00000000 --- a/src/useNetworkState/__docs__/example.stories.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import {useNetworkState} from '../../index.js'; - -export function Example() { - const onlineState = useNetworkState(); - - return ( -
    -
    Your current internet connection state:
    -
    {JSON.stringify(onlineState, null, 2)}
    -
    - ); -} diff --git a/src/useNetworkState/__docs__/story.mdx b/src/useNetworkState/__docs__/story.mdx deleted file mode 100644 index 09b2d096..00000000 --- a/src/useNetworkState/__docs__/story.mdx +++ /dev/null @@ -1,43 +0,0 @@ -# useNetworkState - -Tracks the state of browser's network connection. - -> As of the standard, it is not guaranteed that browser connected to the _Internet_, it only -> guarantees the network connection. -> [[MDN Docs]](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine) - -#### Example - -## Reference - -```ts -export interface IUseNetworkState { - online: boolean | undefined; - previous: boolean | undefined; - since: Date | undefined; - downlink: number | undefined; - downlinkMax: number | undefined; - effectiveType: 'slow-2g' | '2g' | '3g' | '4g' | undefined; - rtt: number | undefined; - saveData: boolean | undefined; - type: - | 'bluetooth' - | 'cellular' - | 'ethernet' - | 'none' - | 'wifi' - | 'wimax' - | 'other' - | 'unknown' - | undefined; -} - -export function useNetworkState(initialState?: InitialState): IUseNetworkState; -``` - -#### Importing - -#### Arguments - -- _**initialState**_ _`InitialState`_ - the value that will be used as default, - unless real network state is resolved. diff --git a/src/usePermission/__docs__/example.stories.tsx b/src/usePermission/__docs__/example.stories.tsx deleted file mode 100644 index 1e0e516e..00000000 --- a/src/usePermission/__docs__/example.stories.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import * as React from 'react'; -import {usePermission} from '../../index.js'; - -export function Example() { - const status = usePermission({name: 'notifications'}); - - return ( -
    -
    - - We do not use any notifications, notifications permission requested only for presentation - purposes. - -
    -
    -
    - Notifications status: - {' '} - {status} -
    -
    - {status === 'prompt' && ( - - )} -
    -
    - ); -} diff --git a/src/usePermission/__docs__/story.mdx b/src/usePermission/__docs__/story.mdx deleted file mode 100644 index bde32944..00000000 --- a/src/usePermission/__docs__/story.mdx +++ /dev/null @@ -1,29 +0,0 @@ -# usePermission - -Tracks a permission state. - -- SSR-compatible -- Automatically updates on permission state change. - -#### Example - -## Reference - -```ts -export function usePermission(descriptor: AnyPermissionDescriptor): UsePermissionState; -``` - -#### Importing - -#### Arguments - -#### Return - -0. **state** - Permission state, can be one of the following strings: - -- **`not-requested`** - State not requested yet, yielded only on mount, before permission state - requested. -- **`requested`** - State requested, but request promise is pending yet. -- **`prompt`** - Permission not requested from user, and can be requested via target API. -- **`denied`** - User denied permission. -- **`granted`** - User granted permission. diff --git a/src/usePrevious/__docs__/example.stories.tsx b/src/usePrevious/__docs__/example.stories.tsx deleted file mode 100644 index 6bff409d..00000000 --- a/src/usePrevious/__docs__/example.stories.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import {useState} from 'react'; -import {usePrevious} from '../../index.js'; - -export function Example() { - const [value, setValue] = useState(0); - const [unrelatedValue, setUnrelatedValue] = useState(0); - const previousValue = usePrevious(value); - - const increment = () => { - setValue(v => v + 1); - }; - - const decrement = () => { - setValue(v => v - 1); - }; - - const triggerUnrelatedRerender = () => { - setUnrelatedValue(v => v + 1); - }; - - return ( -
    - Current value: {value} - -
    -
    - - -
    - - -
    - -
    Previous value: "{previousValue ?? 'undefined'}"
    -
    - ); -} diff --git a/src/usePrevious/__docs__/story.mdx b/src/usePrevious/__docs__/story.mdx deleted file mode 100644 index 0f9ff282..00000000 --- a/src/usePrevious/__docs__/story.mdx +++ /dev/null @@ -1,24 +0,0 @@ -# usePrevious - -Returns the value passed to the hook on previous render. It is important to note that any renders -will cause an update if the value has changed. This is useful for keeping track of state changes; -however, if your desire is to track distinctly different values, you should use -[`usePreviousDistinct`](/docs/state-usepreviousdistinct--example). - -#### Example - -## Reference - -```ts -function usePrevious(value?: T): T | undefined; -``` - -#### Importing - -#### Arguments - -- _**value**_ _`T (any)`_ - the value that will be returned on next render - -#### Return - -Returns previously passed value or `undefined` for the case of first render. diff --git a/src/usePreviousDistinct/__docs__/example.stories.tsx b/src/usePreviousDistinct/__docs__/example.stories.tsx deleted file mode 100644 index 177eec68..00000000 --- a/src/usePreviousDistinct/__docs__/example.stories.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import {useState} from 'react'; -import {usePreviousDistinct} from '../../index.js'; - -export function Example() { - const [value, setValue] = useState(0); - const [unrelatedValue, setUnrelatedValue] = useState(0); - const previousDistinctValue = usePreviousDistinct(value); - - const increment = () => { - setValue(v => v + 1); - }; - - const decrement = () => { - setValue(v => v - 1); - }; - - const triggerUnrelatedRerender = () => { - setUnrelatedValue(v => v + 1); - }; - - return ( -
    - Current value: {value} - -
    -
    - - -
    - - -
    - -
    Previous value: "{previousDistinctValue ?? 'undefined'}"
    -
    - ); -} diff --git a/src/usePreviousDistinct/__docs__/story.mdx b/src/usePreviousDistinct/__docs__/story.mdx deleted file mode 100644 index 0d09bc20..00000000 --- a/src/usePreviousDistinct/__docs__/story.mdx +++ /dev/null @@ -1,34 +0,0 @@ -# usePreviousDistinct - -Returns the most recent _distinct_ value passed to the hook on previous render. Distinct here means -that the hook's return value will only update when the passed value updates. This is useful when -other renders are involved potentially making multiple, irrelevant updates. - -#### Example - -## Reference - -```ts -export type Predicate = (prev: T, next: any) => next is typeof prev; - -const isStrictEqual = (a: T, b: any): b is typeof a => a === b; - -export function usePreviousDistinct( - value: T, - predicate: Predicate = isStrictEqual -): T | undefined; -``` - -#### Importing - -#### Arguments - -- _**value**_ _`T (any)`_ - Value to yield on next render if it's different from the previous one. -- _**predicate**_ _`Predicate | undefined`_ - Optional predicate to determine if the value is - distinct. If not provided, the value will be updated if it is strictly equal (`===`) to the - previous value. - -#### Return - -Returns previously passed value (if different from previous) or `undefined` for the case of first -render. diff --git a/src/useQueue/__docs__/example.stories.tsx b/src/useQueue/__docs__/example.stories.tsx deleted file mode 100644 index 2de396f4..00000000 --- a/src/useQueue/__docs__/example.stories.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import * as React from 'react'; -import {useQueue} from '../../index.js'; - -export function Example() { - const {add, remove, first, last, size, items} = useQueue < number > ([1, 2, 3]); - - return ( -
    -
      -
    • first: {first}
    • -
    • last: {last}
    • -
    • size: {size}
    • -
    - - -

    All Items

    -
      - {items.map((item, idx) => ( - // eslint-disable-next-line react/no-array-index-key -
    • {item}
    • - ))} -
    -
    - ); -} diff --git a/src/useQueue/__docs__/story.mdx b/src/useQueue/__docs__/story.mdx deleted file mode 100644 index ff4ed78f..00000000 --- a/src/useQueue/__docs__/story.mdx +++ /dev/null @@ -1,34 +0,0 @@ -# useQueue - -A state hook implementing FIFO queue. - -#### Example - -## Reference - -```ts -export interface QueueMethods { - first: T; - last: T; - add: (item: T) => void; - remove: () => T; - size: number; - items: T[]; -} -export function useQueue(initialValue: T[] = []): QueueMethods; -``` - -#### Importing - -#### Arguments - -- **initialValue** _`T[]`_ - The initial value. Defaults to an empty array. - -#### Return - -- **first** _`T`_ - The first item in the queue. -- **last** _`T`_ - The last item in the queue. -- **add** _`(item: T) => void`_ - Adds an item to the end of the queue. -- **remove** _`() => T`_ - Removes and returns the head of the queue. -- **size** _`number`_ - The current size of the queue. -- **items** _`T[]`_ - The entire queue. diff --git a/src/useRafCallback/__docs__/example.stories.tsx b/src/useRafCallback/__docs__/example.stories.tsx deleted file mode 100644 index 29212cbb..00000000 --- a/src/useRafCallback/__docs__/example.stories.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { useCallback, useState } from 'react'; -import { useRafCallback } from '../../index.js'; - -export function Example() { - const [eventDate, setEventDate] = useState(); - const [frameDate, setFrameDate] = useState(); - - const [storeFrameDate] = useRafCallback(() => { - setFrameDate(new Date()); - }); - - const handleClick = useCallback(() => { - setEventDate(new Date()); - storeFrameDate(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - return ( -
    -
    - Below states displays dates when occurred event and animation frame that following it -
    -
    -
    Event occurred: {eventDate?.toISOString() ?? 'NOT TRIGGERED'}
    -
    Animation frame occurred: {frameDate?.toISOString()}
    -
    - -
    - ); -} diff --git a/src/useRafCallback/__docs__/story.mdx b/src/useRafCallback/__docs__/story.mdx deleted file mode 100644 index 1cc8c9d6..00000000 --- a/src/useRafCallback/__docs__/story.mdx +++ /dev/null @@ -1,33 +0,0 @@ -# useRafCallback - -Makes passed function to be called within next animation frame. - -Consequential calls, before the animation frame occurred, cancel previously scheduled call. - -> Returned function is always a void function, since original callback invoked later. - -> **_This hook provides stable API, meaning returned functions do not change between renders_** - -#### Example - -## Reference - -```ts -export function useRafCallback any>( - cb: T -): [(...args: Parameters) => void, () => void]; -``` - -#### Importing - -#### Arguments - -- **cb** _`(...args: T) => any`_ - function that will be invoked within animation frame. - -#### Return - -Returns array containing two functions. - -- _**[0]**_ _`(...args: Parameters) => void`_ - wrapped void function that takes same parameters - as original. -- _**[1]**_ _`() => void`_ - function that cancels scheduled invocation. diff --git a/src/useRafEffect/__docs__/example.stories.tsx b/src/useRafEffect/__docs__/example.stories.tsx deleted file mode 100644 index 065e055a..00000000 --- a/src/useRafEffect/__docs__/example.stories.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import * as React from 'react'; -import {useRef} from 'react'; -import {useRafEffect} from '../../index.js'; - -export function Example() { - const inputRef = useRef < HTMLInputElement > (null); - - useRafEffect(() => { - if (inputRef.current) { - inputRef.current.focus(); - } - }, [inputRef.current]); - - return ( -
    - ); -} diff --git a/src/useRafEffect/__docs__/story.mdx b/src/useRafEffect/__docs__/story.mdx deleted file mode 100644 index 5cf91cbc..00000000 --- a/src/useRafEffect/__docs__/story.mdx +++ /dev/null @@ -1,22 +0,0 @@ -# useRafEffect - -Like `React.useEffect`, but effect is only run within animation frame. - -- Auto-cancel animation frame on component unmount. -- SSR-friendly. - -#### Example - -## Reference - -```ts -export function useRafEffect(callback: (...args: any[]) => void, deps: DependencyList): void; -``` - -#### Importing - -#### Arguments - -- **callback** _`(...args: any[]) => void`_ - Callback like for `useEffect`, but without ability to - return a cleanup function. -- **deps** _`DependencyList`_ - Dependencies list that will be passed to underlying `useEffect`. diff --git a/src/useRafState/__docs__/example.stories.tsx b/src/useRafState/__docs__/example.stories.tsx deleted file mode 100644 index 6bf8e39f..00000000 --- a/src/useRafState/__docs__/example.stories.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import * as React from 'react'; -import { useMountEffect, useRafState } from '../../index.js'; - -export function Example() { - const [state, setState] = useRafState({ x: 0, y: 0 }); - - useMountEffect(() => { - // eslint-disable-next-line unicorn/consistent-function-scoping - const onMouseMove = (event: MouseEvent) => { - setState({ x: event.clientX, y: event.clientY }); - }; - - // eslint-disable-next-line unicorn/consistent-function-scoping - const onTouchMove = (event: TouchEvent) => { - setState({ x: event.changedTouches[0].clientX, y: event.changedTouches[0].clientY }); - }; - - document.addEventListener('mousemove', onMouseMove); - document.addEventListener('touchmove', onTouchMove); - - return () => { - document.removeEventListener('mousemove', onMouseMove); - document.removeEventListener('touchmove', onTouchMove); - }; - }); - - return ( -
    - Below state will be updated on mouse/cursor move within animation frame -
    {JSON.stringify(state, null, 2)}
    -
    - ); -} diff --git a/src/useRafState/__docs__/story.mdx b/src/useRafState/__docs__/story.mdx deleted file mode 100644 index 55a91010..00000000 --- a/src/useRafState/__docs__/story.mdx +++ /dev/null @@ -1,20 +0,0 @@ -# useRafState - -Like `React.useState`, but state is only updated within animation frame. - -- Auto-cancel animation frame on component unmount. -- SSR-friendly. - -#### Example - -## Reference - -```ts -export function useRafState(initialState: S | (() => S)): [S, Dispatch>]; -export function useRafState(): [ - S | undefined, - Dispatch>, -]; -``` - -#### Importing diff --git a/src/useRenderCount/__docs__/example.stories.tsx b/src/useRenderCount/__docs__/example.stories.tsx deleted file mode 100644 index d660c72c..00000000 --- a/src/useRenderCount/__docs__/example.stories.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import {useRerender, useRenderCount} from '../../index.js'; - -export function Example() { - const renders = useRenderCount(); - const rerender = useRerender(); - - return ( -
    -
    This component has rendered {renders} time(s)
    -
    - -
    - ); -} diff --git a/src/useRenderCount/__docs__/story.mdx b/src/useRenderCount/__docs__/story.mdx deleted file mode 100644 index 47fc6b47..00000000 --- a/src/useRenderCount/__docs__/story.mdx +++ /dev/null @@ -1,17 +0,0 @@ -# useRenderCount - -Tracks component's render count including the first render. - -#### Example - -## Reference - -```ts -export function useRenderCount(): number; -``` - -#### Importing - -#### Return - -- `number` of renders performed. diff --git a/src/useRerender/__docs__/example.stories.tsx b/src/useRerender/__docs__/example.stories.tsx deleted file mode 100644 index 91874730..00000000 --- a/src/useRerender/__docs__/example.stories.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import * as React from 'react'; -import {useRenderCount, useRerender} from '../../index.js'; - -export function Example() { - const renders = useRenderCount(); - const rerender = useRerender(); - - return ( -
    -
    This component has rendered {renders} time(s)
    -
    - -
    - ); -} diff --git a/src/useRerender/__docs__/story.mdx b/src/useRerender/__docs__/story.mdx deleted file mode 100644 index c99ec9b1..00000000 --- a/src/useRerender/__docs__/story.mdx +++ /dev/null @@ -1,19 +0,0 @@ -# useRerender - -Return callback function that re-renders component. - -> **_This hook provides stable API, meaning returned methods does not change between renders_** - -#### Example - -## Reference - -```ts -function useRerender(): () => void; -``` - -#### Importing - -#### Return - -Function that re-renders component when called. diff --git a/src/useResizeObserver/__docs__/example.stories.tsx b/src/useResizeObserver/__docs__/example.stories.tsx deleted file mode 100644 index 9859e9aa..00000000 --- a/src/useResizeObserver/__docs__/example.stories.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import * as React from 'react'; -import { useRef, useState } from 'react'; -import { - type UseResizeObserverCallback, - useDebouncedCallback, - useResizeObserver, -} from '../../index.js'; - -export function Example() { - const ref = useRef(null); - const [rect, setRect] = useState(); - useResizeObserver(ref, (e) => { - setRect(e.contentRect); - }); - - return ( -
    -
    {JSON.stringify(rect)}
    -
    - resize me UwU -
    -
    - ); -} - -export function ExampleDebounced() { - const ref = useRef(null); - const [rect, setRect] = useState(); - const cb = useDebouncedCallback( - ((e) => { - setRect(e.contentRect); - }) as UseResizeObserverCallback, - [setRect], - 500 - ); - useResizeObserver(ref, cb); - - return ( -
    -
    {JSON.stringify(rect)}
    -
    - resize me UwU -
    -
    - ); -} diff --git a/src/useResizeObserver/__docs__/story.mdx b/src/useResizeObserver/__docs__/story.mdx deleted file mode 100644 index c30298f7..00000000 --- a/src/useResizeObserver/__docs__/story.mdx +++ /dev/null @@ -1,32 +0,0 @@ -# useResizeObserver - -Invokes a callback whenever ResizeObserver detects a change to target's size. - -- Uses a singe ResizeObserver for all hook instances, as it is more effective than using per-hook - observers. -- No need to wrap callback with `useCallback`, because hook manages callback mutation internally. -- Does not apply any throttle or debounce mechanism - it is on end-developer side. -- Does not produce references for you. -- SSR friendly. -- Provides access to `ResizeObserverEntry`. -- Allows to dynamically enable and disable observation. - -#### Example - -## Reference - -```ts -export function useResizeObserver( - target: React.RefObject | T | null, - callback: (entry: ResizeObserverEntry) => void, - enabled = true -): void; -``` - -#### Importing - -#### Arguments - -- **target** _`RefObject | Element | null`_ - element to track. -- **callback** _`(entry: ResizeObserverEntry) => void`_ - Callback that will be invoked on resize. -- **enabled** _`boolean`_ _(default: `true`)_ - Whether resize observer is enabled or not. diff --git a/src/useScreenOrientation/__docs__/example.stories.tsx b/src/useScreenOrientation/__docs__/example.stories.tsx deleted file mode 100644 index 5ff4dc8e..00000000 --- a/src/useScreenOrientation/__docs__/example.stories.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import * as React from 'react'; -import {useScreenOrientation} from '../../index.js'; - -export function Example() { - const orientation = useScreenOrientation(); - - return ( -
    -
    - Orientation: - {' '} - {orientation} -
    -
    - Render time: - {' '} - {new Date().toLocaleString()} -
    -
    - ); -} diff --git a/src/useScreenOrientation/__docs__/story.mdx b/src/useScreenOrientation/__docs__/story.mdx deleted file mode 100644 index 63673ed7..00000000 --- a/src/useScreenOrientation/__docs__/story.mdx +++ /dev/null @@ -1,36 +0,0 @@ -# useScreenOrientation - -Checks if screen is in `portrait` or `landscape` orientation and automatically re-renders on -orientation change. - -As [Screen Orientation API](https://developer.mozilla.org/en-US/docs/Web/API/Screen_Orientation_API#browser_compatibility) -is still experimental and not supported by Safari, this hook uses CSS3 `orientation` media-query to -check screen orientation. - -- Automatically re-renders on screen orientation change. -- Works in sync with CSS, as it uses media-query. -- All hook instances use a single media query - therefore it is extremely performant. -- SSR-friendly. - -#### Example - -## Reference - -```ts -type ScreenOrientation = 'portrait' | 'landscape'; - -function useScreenOrientation(): ScreenOrientation; -``` - -#### Importing - -#### Arguments - -- **options** _`object`_ - Hook options: -- **initializeWithValue** _`boolean`_ _(default: true)_ - Determine the screen orientation on first - render. Setting this to `false` will make the hook yield `undefined` on first render. We suggest - setting this to `false` during SSR. - -#### Return - -A string representing the screen orientation. diff --git a/src/useSessionStorageValue/__docs__/example.stories.tsx b/src/useSessionStorageValue/__docs__/example.stories.tsx deleted file mode 100644 index 7bc61f07..00000000 --- a/src/useSessionStorageValue/__docs__/example.stories.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { useSessionStorageValue } from '../../index.js'; - -type ExampleProps = { - /** - * Default value to return in case key not presented in SessionStorage. - */ - readonly defaultValue: string; - /** - * SessionStorage key to manage. - */ - readonly key: string; -}; - -export function Example({ - key = 'react-hookz-ss-test', - defaultValue = '@react-hookz is awesome', -}: ExampleProps) { - const ssValue = useSessionStorageValue(key, { defaultValue }); - - return ( -
    -
    - Below input value will persist between page reloads and even browser restart as its value is - stored in SessionStorage. -
    -
    - { - ssValue.set(ev.currentTarget.value); - }} - /> - -
    - ); -} diff --git a/src/useSessionStorageValue/__docs__/story.mdx b/src/useSessionStorageValue/__docs__/story.mdx deleted file mode 100644 index 230cea98..00000000 --- a/src/useSessionStorageValue/__docs__/story.mdx +++ /dev/null @@ -1,59 +0,0 @@ -# useSessionStorageValue - -Manages a single SessionStorage key. - -- Uses JSON serialisation to handle non-string values. -- Tracks window's `storage` event. -- Synchronized between all hooks on the page with the same key. -- SSR compatible. - -> **_This hook provides a stable API, meaning the returned methods do not change between renders._** - -> Does not allow usage of `null` as a value, since JSON allows serializing `null` - it would be -> impossible to separate `null` value from 'no such value' API result which is also `null`. - -> If you are doing SSR, set `initializeWithValue` to `false` in order for this hook to return -> `undefined` on first render. The SessionStorage value will be fetched client-side when effects -> are executed. - -> If you are using useSessionStorageValue in multiple places with the same key, all instances must -> use compatible serializers if you are overriding the serializers with the `parse` and `stringify` options. - -#### Example - -## Reference - -```ts -function useSessionStorageValue< - Type, - Default extends Type = Type, - Initialize extends boolean | undefined = boolean | undefined, ->( - key: string, - options?: UseStorageValueOptions -): UseStorageValueResult; -``` - -#### Importing - -#### Arguments - -- **key** _`string`_ - SessionStorage key to manage. -- **options** _`object`_ - Hook options: -- **defaultValue** _`T | null`_ - Value to return if `key` is not present in SessionStorage. -- **initializeWithValue** _`boolean`_ _(default: true)_ - Fetch storage value on first render. If - set to `false` will make the hook yield `undefined` on first render and defer fetching of the - value until effects are executed. -- **parse** _`(str: string | null, fallback: T | null) => T | null`_ - Custom parse function to use instead of JSON.parse -- **stringify** _`(data: unknown) => string | null`_ - Custom stringify function to use instead of JSON.stringify - -#### Return - -Object with following properties. Note that this object changes with `value`, but its methods are -stable between renders. Thus, it is safe to pass them as props. - -- **value** - SessionStorage value of the given `key` argument or `defaultValue`, if the key was not - present. -- **set** - Set a new value for the managed `key`. -- **remove** - Remove the current value of `key`. -- **fetch** - Manually retrieve the value of `key`. diff --git a/src/useSet/__docs__/example.stories.tsx b/src/useSet/__docs__/example.stories.tsx deleted file mode 100644 index 1f75518e..00000000 --- a/src/useSet/__docs__/example.stories.tsx +++ /dev/null @@ -1,35 +0,0 @@ -/* eslint-disable react/no-unescaped-entities */ -import * as React from 'react'; -import {useSet} from '../../index.js'; - -export function Example() { - const set = useSet(['@react-hooks', 'is awesome']); - - return ( -
    - - - - -
    -
    {JSON.stringify([...set], null, 2)}
    -
    - ); -} diff --git a/src/useSet/__docs__/story.mdx b/src/useSet/__docs__/story.mdx deleted file mode 100644 index 4709ad1b..00000000 --- a/src/useSet/__docs__/story.mdx +++ /dev/null @@ -1,27 +0,0 @@ -# useSet - -Tracks the state of a `Set`. - -- Returned set does not change between renders. -- 1-to-1 signature with the native `Set` object, but its methods are wrapped to cause components to - rerender with changes. - Otherwise, it is the Javascript native `Set` object. -- SSR-friendly. - -#### Example - -## Reference - -```ts -export function useSet(values?: readonly T[] | null): Set; -``` - -#### Importing - -#### Arguments - -- **values** _`Iterable`_ - Initial values iterator for underlying `Set` constructor. - -#### Return - -- `Set` instance. diff --git a/src/useSyncedRef/__docs__/example.stories.tsx b/src/useSyncedRef/__docs__/example.stories.tsx deleted file mode 100644 index 47194d1a..00000000 --- a/src/useSyncedRef/__docs__/example.stories.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import {useRef} from 'react'; -import {useRerender, useSyncedRef} from '../../index.js'; - -export function Example() { - const ref = useRef(0); - const syncedRef = useSyncedRef(++ref.current); - const rerender = useRerender(); - - return ( -
    -
    As you may see in source code, ref value updated automatically
    - - {' '} - renders: {syncedRef.current} -
    - ); -} diff --git a/src/useSyncedRef/__docs__/story.mdx b/src/useSyncedRef/__docs__/story.mdx deleted file mode 100644 index f735dc2d..00000000 --- a/src/useSyncedRef/__docs__/story.mdx +++ /dev/null @@ -1,31 +0,0 @@ -# useSyncedRef - -Like `useRef`, but it returns immutable ref that contains actual value. - -> `useSyncedRef` returns frozen object, therefore any attempt to modify returned ref will end up -> exception throw. - -> This hook initially designed to simplify creation of stable APIs, which, alternatively, would -> require to write a lot of code like below: -> -> ```ts -> // before -> const someRef1 = React.useRef<() => void>(); -> someRef1.current = () => {}; -> // after -> const someRef = useSyncedRef(() => {}); -> ``` - -#### Example - -## Reference - -```ts -function useSyncedRef(value: T): { readonly current: T }; -``` - -#### Importing - -#### Arguments - -- **value** _`any`_ - actual ref value. diff --git a/src/useThrottledCallback/__docs__/example.stories.tsx b/src/useThrottledCallback/__docs__/example.stories.tsx deleted file mode 100644 index 1459d707..00000000 --- a/src/useThrottledCallback/__docs__/example.stories.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { type ComponentProps, useState } from 'react'; -import { useThrottledCallback } from '../../index.js'; - -export function Example() { - const [state, setState] = useState(''); - - const handleChange: React.ChangeEventHandler = useThrottledCallback< - NonNullable['onChange']> - >( - (ev) => { - setState(ev.target.value); - }, - [], - 500 - ); - - return ( -
    -
    Below state will update no more than once every 500ms
    -
    -
    The input`s value is: {state}
    - -
    - ); -} diff --git a/src/useThrottledCallback/__docs__/story.mdx b/src/useThrottledCallback/__docs__/story.mdx deleted file mode 100644 index d9dc2376..00000000 --- a/src/useThrottledCallback/__docs__/story.mdx +++ /dev/null @@ -1,34 +0,0 @@ -# useThrottledCallback - -Makes passed function throttled, otherwise acts like `useCallback`. -[What is throttling?](https://css-tricks.com/debouncing-throttling-explained-examples/#throttle) - -The third argument is dependencies list in `useCallback` manner, passed function will be re-wrapped -when delay or dependencies has changed. Changed throttle callbacks still have same timeout, meaning -that calling new throttled function will abort previously scheduled invocation. - -Throttled function is always a void function since original callback invoked later. - -#### Example - -## Reference - -```ts -export function useThrottledCallback( - callback: (this: This, ...args: Args) => any, - deps: DependencyList, - delay: number, - noTrailing = false -): ThrottledFunction; -``` - -#### Importing - -#### Arguments - -- **callback** _`(...args: T) => unknown`_ - function that will be throttled. -- **deps** _`React.DependencyList`_ - dependencies list when to update callback. -- **delay** _`number`_ - throttle delay. -- **noTrailing** _`boolean`_ _(default: false)_ - if `noTrailing` is true, callback will only - execute every `delay` milliseconds, otherwise, callback will be executed once, after the last - call. diff --git a/src/useThrottledEffect/__docs__/example.stories.tsx b/src/useThrottledEffect/__docs__/example.stories.tsx deleted file mode 100644 index 6a986735..00000000 --- a/src/useThrottledEffect/__docs__/example.stories.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import * as React from 'react'; -import {useState} from 'react'; -import {useThrottledEffect} from '../../index.js'; - -const HAS_DIGIT_REGEX = /\d/g; - -export function Example() { - const [state, setState] = useState(''); - const [hasNumbers, setHasNumbers] = useState(false); - - useThrottledEffect( - () => { - setHasNumbers(HAS_DIGIT_REGEX.test(state)); - }, - [state], - 200, - ); - - return ( -
    -
    Digit check will be performed no more than once every 200ms
    -
    -
    {hasNumbers ? 'Input has digits' : 'No digits found in input'}
    - { - setState(ev.target.value); - }} /> -
    - ); -} diff --git a/src/useThrottledEffect/__docs__/story.mdx b/src/useThrottledEffect/__docs__/story.mdx deleted file mode 100644 index 25ed1988..00000000 --- a/src/useThrottledEffect/__docs__/story.mdx +++ /dev/null @@ -1,29 +0,0 @@ -# useThrottledEffect - -Like `useEffect`, but passed function is throttled. - -#### Example - -## Reference - -```ts -export function useThrottledEffect( - callback: (...args: any[]) => void, - deps: DependencyList, - delay: number, - noTrailing = false -): void; -``` - -#### Importing - -#### Arguments - -- **callback** _`(...args: any[]) => void`_ - Callback like for `useEffect`, but without ability to - return a cleanup function. -- **deps** _`DependencyList`_ - Dependencies list that will be passed to underlying `useEffect` and - `useThrottledCallback`. -- **delay** _`number`_ - Throttle delay. -- **noTrailing** _`boolean`_ _(default: false)_ - If `noTrailing` is true, callback will only - execute every `delay` milliseconds, otherwise, callback will be executed once, after the last - call. diff --git a/src/useThrottledState/__docs__/example.stories.tsx b/src/useThrottledState/__docs__/example.stories.tsx deleted file mode 100644 index 67a6c106..00000000 --- a/src/useThrottledState/__docs__/example.stories.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import {useThrottledState} from '../../index.js'; - -export function Example() { - const [state, setState] = useThrottledState('', 500); - - return ( -
    -
    Below state will update no more than once every 500ms
    -
    -
    The input`s value is: {state}
    - { - setState(ev.target.value); - }} /> -
    - ); -} diff --git a/src/useThrottledState/__docs__/story.mdx b/src/useThrottledState/__docs__/story.mdx deleted file mode 100644 index 94fccc53..00000000 --- a/src/useThrottledState/__docs__/story.mdx +++ /dev/null @@ -1,30 +0,0 @@ -# useThrottledState - -Like `useState` but its state setter is throttled. - -#### Example - -## Reference - -```ts -export function useThrottledState( - initialState: S | (() => S), - delay: number, - noTrailing = false -): [S, Dispatch>]; -``` - -#### Importing - -#### Arguments - -- **initialState** _`S | (() => S)`_ - Initial state to pass to underlying `useState`. -- **delay** _`number`_ - Throttle delay. -- **noTrailing** _`boolean`_ _(default: false)_ - If `noTrailing` is true, callback will only - execute every `delay` milliseconds, otherwise, callback will be executed once, after the last - call. - -#### Return - -0. **state** - current state. -1. **setState** - throttled state setter. diff --git a/src/useTimeoutEffect/__docs__/example.stories.tsx b/src/useTimeoutEffect/__docs__/example.stories.tsx deleted file mode 100644 index aac9f524..00000000 --- a/src/useTimeoutEffect/__docs__/example.stories.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import * as React from 'react'; -import {useState} from 'react'; -import {useTimeoutEffect, useToggle} from '../../index.js'; - -export function Example() { - const [numberCalls, setNumberCalls] = useState < number > (0); - const [enabled, toggleEnabled] = useToggle(); - const [timeoutValue, setTimeoutValue] = useState < number > (1000); - const [cancelled, toggleCancelled] = useToggle(); - - let status; - if (cancelled) { - status = 'Cancelled'; - } else { - status = enabled ? 'Enabled' : 'Disabled'; - } - - const [cancel, reset] = useTimeoutEffect( - () => { - setNumberCalls(n => n + 1); - }, - enabled ? timeoutValue : undefined, - ); - - React.useEffect(() => { - setNumberCalls(0); - }, [timeoutValue, enabled]); - - return ( -
    - Has fired: - {' '} - {numberCalls.toString()} -
    - Status: - {' '} - {status} -
    - { - setTimeoutValue(Number(e.target.value)); - }} /> - - - -
    - ); -} diff --git a/src/useTimeoutEffect/__docs__/story.mdx b/src/useTimeoutEffect/__docs__/story.mdx deleted file mode 100644 index 33bbfa42..00000000 --- a/src/useTimeoutEffect/__docs__/story.mdx +++ /dev/null @@ -1,29 +0,0 @@ -# useTimeoutEffect - -Like `setTimeout` but in the form of a react hook. - -- Auto-cancels the timeout on component unmount. -- Resets the timeout on delay change. -- Changing the callback won't cause the timeout to reset. -- Ability to cancel the timeout. -- Ability to reset the timeout. - -#### Example - -## Reference - -```ts -export function useTimeoutEffect(callback: () => void, ms?: number): void; -``` - -#### Importing - -#### Arguments - -- **callback** _`() => void`_ - Function to be called after timeout. -- **ms** _`number | undefined`_ - Delay passed to underlying `setTimeout`. If `undefined` the interval will be cancelled. - -#### Return - -1. **cancel** _`() => void`_ - Function to cancel the timeout. -2. **reset** _`() => void`_ - Function to reset the timeout. diff --git a/src/useToggle/__docs__/example.stories.tsx b/src/useToggle/__docs__/example.stories.tsx deleted file mode 100644 index 15b1758a..00000000 --- a/src/useToggle/__docs__/example.stories.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import * as React from 'react'; -import {useToggle} from '../../index.js'; - -export function Example() { - const [isToggled, toggle] = useToggle(true); - - return ( -
    -
    {isToggled ? 'The toggle is on' : 'The toggle is off'}
    - -
    - ); -} diff --git a/src/useToggle/__docs__/story.mdx b/src/useToggle/__docs__/story.mdx deleted file mode 100644 index 01130468..00000000 --- a/src/useToggle/__docs__/story.mdx +++ /dev/null @@ -1,41 +0,0 @@ -# useToggle - -Like `useState`, but can only become `true` or `false`. - -State setter, in case called without arguments, will change the state to opposite. React synthetic -events are ignored by default so state setter can be used as event handler directly, such behaviour -can be changed by setting 2nd parameter to `false`. - -> **_This hook provides stable API, meaning returned functions do not change between renders_** - -#### Example - -## Reference - -```ts -export function useToggle( - initialState: InitialState, - ignoreReactEvents?: true -): [boolean, (nextState?: NextState | BaseSyntheticEvent) => void]; - -export function useToggle( - initialState: InitialState, - ignoreReactEvents: false -): [boolean, (nextState?: NextState) => void]; -``` - -#### Importing - -#### Arguments - -- _**initialState**_ _`InitialState`_ - initial state or initial state setter as for - `useState` -- _**ignoreReactEvents**_ _`boolean`_ _(default: true)_ - ignore received react synthetic events, so state setter can be used as event handler. - -#### Return - -Returns array alike `useState` does. - -- _**[0]**_ _`boolean`_ - current state -- _**[1]**_ _`(nextState?: NewState) => void`_ - state setter as for `useState`. In case - called without arguments will change state to opposite. diff --git a/src/useUnmountEffect/__docs__/example.stories.tsx b/src/useUnmountEffect/__docs__/example.stories.tsx deleted file mode 100644 index e4260b34..00000000 --- a/src/useUnmountEffect/__docs__/example.stories.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import * as React from 'react'; -import {useToggle, useUnmountEffect} from '../../index.js'; - -export function Example() { - const [isToggled, toggle] = useToggle(false); - - function ToggledComponent() { - useUnmountEffect(() => { - // eslint-disable-next-line no-alert - alert('UNMOUNTED'); - }); - - return

    Unmount me

    ; - } - - return ( -
    - - {' '} - {isToggled && } -
    - ); -} diff --git a/src/useUnmountEffect/__docs__/story.mdx b/src/useUnmountEffect/__docs__/story.mdx deleted file mode 100644 index 136d4b7f..00000000 --- a/src/useUnmountEffect/__docs__/story.mdx +++ /dev/null @@ -1,17 +0,0 @@ -# useUnmountEffect - -Run effect only when component is unmounted. - -#### Example - -## Reference - -```ts -function useUnmountEffect(effect: CallableFunction): void; -``` - -#### Importing - -#### Arguments - -- _**effect**_ _`CallableFunction`_ - Effector to run on unmount. diff --git a/src/useUpdateEffect/__docs__/example.stories.tsx b/src/useUpdateEffect/__docs__/example.stories.tsx deleted file mode 100644 index 91cf2751..00000000 --- a/src/useUpdateEffect/__docs__/example.stories.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import * as React from 'react'; -import {useState} from 'react'; -import {useRerender, useUpdateEffect} from '../../index.js'; - -export function Example() { - const [count, setCount] = useState(1); - const [isUpdated, setIsUpdated] = useState(false); - const rerender = useRerender(); - - useUpdateEffect(() => { - setIsUpdated(true); - }, [count]); - - return ( -
    -
    - Is counter updated: - {isUpdated ? 'yes' : 'no'} -
    - - {' '} - -
    - ); -} diff --git a/src/useUpdateEffect/__docs__/story.mdx b/src/useUpdateEffect/__docs__/story.mdx deleted file mode 100644 index 0ea65fad..00000000 --- a/src/useUpdateEffect/__docs__/story.mdx +++ /dev/null @@ -1,19 +0,0 @@ -# useUpdateEffect - -Effect hook that ignores the first render (not invoked on mount) - -#### Example - -## Reference - -```ts -function useUpdateEffect(effect: React.EffectCallback, deps?: React.DependencyList): void; -``` - -#### Importing - -#### Arguments - -- _**effect**_ _`React.EffectCallback`_ - Effect callback like for `React.useEffect` hook -- _**deps**_ _`React.DependencyList`_ _(default: `undefined`)_ - Dependencies list as for - `React.useEffect` hook diff --git a/src/useValidator/__docs__/example.tsx b/src/useValidator/__docs__/example.tsx deleted file mode 100644 index a2a11de7..00000000 --- a/src/useValidator/__docs__/example.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import * as React from 'react'; -import { useState } from 'react'; -import { type ValidatorDeferred, useDebouncedCallback, useValidator } from '../../index.js'; - -export function Example() { - const [text, setText] = useState(''); - - // As deferred validator is unable to infer the type of validity - // state - we should define it ourself - type TextValidityState = { isValid: boolean | undefined; error: Error | undefined }; - - // Debounced callback is deferred callback so we should use deferred type - // of validator (the one that receives dispatcher as an argument) - const validator = useDebouncedCallback>( - (d) => { - const isValid = text.length === 0 || text.length % 2 === 1; - - d({ - isValid, - error: isValid ? undefined : new Error('text length should be an odd length'), - }); - }, - [text], - 150 - ); - - // Validity state type if inferred from validator - const [validity] = useValidator(validator, [validator]); - - return ( -
    -
    The input below is only valid if it has an odd number of characters
    -
    - - {validity.isValid === false &&
    {validity.error?.message}
    } - { - setText(ev.target.value); - }} - /> -
    - ); -} diff --git a/src/useValidator/__docs__/story.mdx b/src/useValidator/__docs__/story.mdx deleted file mode 100644 index e5b6c1c4..00000000 --- a/src/useValidator/__docs__/story.mdx +++ /dev/null @@ -1,48 +0,0 @@ -# useValidator - -Performs validation when any of provided dependencies has changed. - -- Does _not_ perform re-validation on validator change. -- SSR-friendly. -- Supports deferred validators. - -> **_This hook provides stable API, meaning returned methods does not change between renders_** - -#### Example - -## Reference - -```ts -interface ValidityState extends Record { isValid: boolean | undefined; } -type ValidatorImmediate = () => V; -type ValidatorDeferred = (done: Dispatch>) => any; -type Validator = ValidatorImmediate | ValidatorDeferred; -type UseValidatorReturn = [V, () => void]; - -function useValidator( - validator: Validator, - deps: DependencyList, - initialValidity: InitialState = { isValid: undefined } as V -) => UseValidatorReturn; -``` - -#### Importing - -#### Arguments - -- **validator** _`Validator`_ - the function that performs validation, it can be of two types: -- _immediate validator_ - performs validation on the go and returns validity state as a function - result, expects 0 arguments. -- _deferred validator_ - performs any kind of asynchronous validation, expects 1 argument which is - the validity state setter. - > TypeScript warning: deferred validators are unable to infer the validity type, therefore it - > requires explicit validity state type definition, as it is shown in example. -- **deps** _`DependencyList`_ - dependencies list that will trigger automatic revalidation, as for - `useEffect` hook. -- **initialValidity** _`InitialState`_ _(default: `{ isValid: undefined }`)_ - initial validity - state, that is set before mount validation. - -#### Return - -0. **validity state** - current validity state returned by validator or initial validity. -1. **revalidate** - Method to perform revalidation by hand. diff --git a/src/useVibrate/__docs__/example.stories.tsx b/src/useVibrate/__docs__/example.stories.tsx deleted file mode 100644 index a252c78c..00000000 --- a/src/useVibrate/__docs__/example.stories.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import * as React from 'react'; -import {useToggle, useVibrate} from '../../index.js'; - -export function Example() { - const [doVibrate, setDoVibrate] = useToggle(false); - - useVibrate( - doVibrate, - [100, 30, 100, 30, 100, 30, 200, 30, 200, 30, 200, 30, 100, 30, 100, 30, 100], - true, - ); - - return ( -
    - -
    - ); -} diff --git a/src/useVibrate/__docs__/story.mdx b/src/useVibrate/__docs__/story.mdx deleted file mode 100644 index f3a9eee0..00000000 --- a/src/useVibrate/__docs__/story.mdx +++ /dev/null @@ -1,26 +0,0 @@ -# useVibrate - -Provides vibration feedback using the [Vibration API](https://developer.mozilla.org/en-US/docs/Web/API/Vibration_API). - -> Note: client may disable vibration for websites in browser settings. - -- SSR-friendly (do nothing during SSR). -- Supports vibration loops. -- Auto-cancel vibration on component unmount. - -#### Example - -## Reference - -```ts -function useVibrate(enabled: boolean, pattern: VibratePattern, loop?: boolean): void; -``` - -#### Importing - -#### Arguments - -- **enabled** _`boolean`_ - Whether to perform vibration or not. -- **pattern** _`number | number[]`_ - VibrationPattern passed down to `navigator.vibrate`. -- **loop** _`boolean | undefined`_ _(default: `undefined`)_ - If true - vibration will be looped - using `setInterval`. diff --git a/src/useWindowSize/__docs__/example.stories.tsx b/src/useWindowSize/__docs__/example.stories.tsx deleted file mode 100644 index 5196646a..00000000 --- a/src/useWindowSize/__docs__/example.stories.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import * as React from 'react'; -import {useWindowSize} from '../../index.js'; - -export function Example() { - const size = useWindowSize(); - - return ( -
    - Window dimensions: -
    {JSON.stringify(size, null, 2)}
    -
    - Note: this example is rendered within an iframe which is smaller than your browser window. -
    -
    - ); -} diff --git a/src/useWindowSize/__docs__/story.mdx b/src/useWindowSize/__docs__/story.mdx deleted file mode 100644 index b79b6939..00000000 --- a/src/useWindowSize/__docs__/story.mdx +++ /dev/null @@ -1,36 +0,0 @@ -# useWindowSize - -Tracks inner dimensions of the browser window. - -- Does not force `reflow` on every render - only on first mount and resizes. -- SSR-friendly - defaults to 0 during SSR and deferred measuring. -- Performant - uses a single passive event listener for all instances. - -#### Example - -## Reference - -```ts -export interface WindowSize { - width: number; - height: number; -} - -export function useWindowSize(stateHook = useRafState, measureOnMount?: boolean): WindowSize; -``` - -#### Importing - -#### Arguments - -- **stateHook** `(initialState?: S | (() => S)): [S | undefined, Dispatch>]` - - State hook that will be used to hold the dimensions of the window. -- **measureOnMount** `boolean` - If `true`, the size of the window will be measured during the effects - stage, after the component has mounted. If `false`, the window size is measured synchronously during - the component render. Set this to `true` during SSR. - -#### Return - -- `object` -- **width** `number` - Window's `innerWidth` -- **height** `number` - Window's `innerHeight` From 53011cffdeff32e95d4dc46cd1a7077d6aa4cf25 Mon Sep 17 00:00:00 2001 From: xobotyi Date: Wed, 18 Dec 2024 02:54:45 +0100 Subject: [PATCH 04/13] chore: move tests files higher --- src/__tests__/navigator.vibrate.ts | 3 --- src/__tests__/setup.ts | 7 ------- .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 src/useList/{__tests__/dom.ts => index.dom.test.ts} | 0 src/useList/{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 src/useMap/{__tests__/dom.ts => index.dom.test.ts} | 0 src/useMap/{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 src/useSet/{__tests__/dom.ts => index.dom.test.ts} | 0 src/useSet/{__tests__/ssr.ts => index.ssr.test.ts} | 0 src/useStorageValue/__tests__/misc.ts | 13 ------------- .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 .../{__tests__/dom.ts => index.dom.test.ts} | 0 .../{__tests__/ssr.ts => index.ssr.test.ts} | 0 src/util/{__tests__/dom.ts => index.dom.test.ts} | 0 tsconfig.build.json | 3 +-- vitest.config.ts | 5 +++++ 122 files changed, 6 insertions(+), 25 deletions(-) delete mode 100644 src/__tests__/navigator.vibrate.ts delete mode 100644 src/__tests__/setup.ts rename src/useAsync/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useAsync/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useAsyncAbortable/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useAsyncAbortable/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useClickOutside/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useClickOutside/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useConditionalEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useConditionalEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useControlledRerenderState/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useControlledRerenderState/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useCookieValue/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useCookieValue/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useCounter/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useCounter/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useCustomCompareEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useCustomCompareEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useCustomCompareMemo/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useCustomCompareMemo/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useDebouncedCallback/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useDebouncedCallback/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useDebouncedEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useDebouncedEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useDebouncedState/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useDebouncedState/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useDeepCompareEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useDeepCompareEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useDeepCompareMemo/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useDeepCompareMemo/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useDocumentVisibility/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useDocumentVisibility/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useEventListener/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useEventListener/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useFirstMountState/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useFirstMountState/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useFunctionalState/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useFunctionalState/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useHookableRef/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useHookableRef/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useIntersectionObserver/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useIntersectionObserver/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useIntervalEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useIntervalEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useIsMounted/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useIsMounted/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useIsomorphicLayoutEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useIsomorphicLayoutEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useKeyboardEvent/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useKeyboardEvent/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useLifecycleLogger/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useLifecycleLogger/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useList/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useList/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useLocalStorageValue/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useLocalStorageValue/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useMap/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useMap/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useMeasure/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useMeasure/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useMediaQuery/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useMediaQuery/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useMediatedState/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useMediatedState/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useMountEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useMountEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useNetworkState/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useNetworkState/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/usePermission/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/usePermission/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/usePrevious/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/usePrevious/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/usePreviousDistinct/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/usePreviousDistinct/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useQueue/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useQueue/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useRafCallback/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useRafCallback/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useRafEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useRafEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useRafState/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useRafState/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useRenderCount/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useRenderCount/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useRerender/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useRerender/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useResizeObserver/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useResizeObserver/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useScreenOrientation/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useScreenOrientation/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useSessionStorageValue/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useSessionStorageValue/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useSet/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useSet/{__tests__/ssr.ts => index.ssr.test.ts} (100%) delete mode 100644 src/useStorageValue/__tests__/misc.ts rename src/useStorageValue/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useStorageValue/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useSyncedRef/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useSyncedRef/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useThrottledCallback/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useThrottledCallback/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useThrottledEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useThrottledEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useThrottledState/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useThrottledState/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useTimeoutEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useTimeoutEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useToggle/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useToggle/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useUnmountEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useUnmountEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useUpdateEffect/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useUpdateEffect/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useValidator/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useValidator/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useVibrate/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useVibrate/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/useWindowSize/{__tests__/dom.ts => index.dom.test.ts} (100%) rename src/useWindowSize/{__tests__/ssr.ts => index.ssr.test.ts} (100%) rename src/util/{__tests__/dom.ts => index.dom.test.ts} (100%) create mode 100644 vitest.config.ts diff --git a/src/__tests__/navigator.vibrate.ts b/src/__tests__/navigator.vibrate.ts deleted file mode 100644 index 2ba25713..00000000 --- a/src/__tests__/navigator.vibrate.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const setupNavigatorVibrate = () => { - navigator.vibrate = (() => true) as typeof navigator.vibrate; -}; diff --git a/src/__tests__/setup.ts b/src/__tests__/setup.ts deleted file mode 100644 index 67891e49..00000000 --- a/src/__tests__/setup.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Here goes any setup code that should be performed before actual tests and/or code imports. - */ - -import {setupNavigatorVibrate} from './navigator.vibrate.js'; - -setupNavigatorVibrate(); diff --git a/src/useAsync/__tests__/dom.ts b/src/useAsync/index.dom.test.ts similarity index 100% rename from src/useAsync/__tests__/dom.ts rename to src/useAsync/index.dom.test.ts diff --git a/src/useAsync/__tests__/ssr.ts b/src/useAsync/index.ssr.test.ts similarity index 100% rename from src/useAsync/__tests__/ssr.ts rename to src/useAsync/index.ssr.test.ts diff --git a/src/useAsyncAbortable/__tests__/dom.ts b/src/useAsyncAbortable/index.dom.test.ts similarity index 100% rename from src/useAsyncAbortable/__tests__/dom.ts rename to src/useAsyncAbortable/index.dom.test.ts diff --git a/src/useAsyncAbortable/__tests__/ssr.ts b/src/useAsyncAbortable/index.ssr.test.ts similarity index 100% rename from src/useAsyncAbortable/__tests__/ssr.ts rename to src/useAsyncAbortable/index.ssr.test.ts diff --git a/src/useClickOutside/__tests__/dom.ts b/src/useClickOutside/index.dom.test.ts similarity index 100% rename from src/useClickOutside/__tests__/dom.ts rename to src/useClickOutside/index.dom.test.ts diff --git a/src/useClickOutside/__tests__/ssr.ts b/src/useClickOutside/index.ssr.test.ts similarity index 100% rename from src/useClickOutside/__tests__/ssr.ts rename to src/useClickOutside/index.ssr.test.ts diff --git a/src/useConditionalEffect/__tests__/dom.ts b/src/useConditionalEffect/index.dom.test.ts similarity index 100% rename from src/useConditionalEffect/__tests__/dom.ts rename to src/useConditionalEffect/index.dom.test.ts diff --git a/src/useConditionalEffect/__tests__/ssr.ts b/src/useConditionalEffect/index.ssr.test.ts similarity index 100% rename from src/useConditionalEffect/__tests__/ssr.ts rename to src/useConditionalEffect/index.ssr.test.ts diff --git a/src/useControlledRerenderState/__tests__/dom.ts b/src/useControlledRerenderState/index.dom.test.ts similarity index 100% rename from src/useControlledRerenderState/__tests__/dom.ts rename to src/useControlledRerenderState/index.dom.test.ts diff --git a/src/useControlledRerenderState/__tests__/ssr.ts b/src/useControlledRerenderState/index.ssr.test.ts similarity index 100% rename from src/useControlledRerenderState/__tests__/ssr.ts rename to src/useControlledRerenderState/index.ssr.test.ts diff --git a/src/useCookieValue/__tests__/dom.ts b/src/useCookieValue/index.dom.test.ts similarity index 100% rename from src/useCookieValue/__tests__/dom.ts rename to src/useCookieValue/index.dom.test.ts diff --git a/src/useCookieValue/__tests__/ssr.ts b/src/useCookieValue/index.ssr.test.ts similarity index 100% rename from src/useCookieValue/__tests__/ssr.ts rename to src/useCookieValue/index.ssr.test.ts diff --git a/src/useCounter/__tests__/dom.ts b/src/useCounter/index.dom.test.ts similarity index 100% rename from src/useCounter/__tests__/dom.ts rename to src/useCounter/index.dom.test.ts diff --git a/src/useCounter/__tests__/ssr.ts b/src/useCounter/index.ssr.test.ts similarity index 100% rename from src/useCounter/__tests__/ssr.ts rename to src/useCounter/index.ssr.test.ts diff --git a/src/useCustomCompareEffect/__tests__/dom.ts b/src/useCustomCompareEffect/index.dom.test.ts similarity index 100% rename from src/useCustomCompareEffect/__tests__/dom.ts rename to src/useCustomCompareEffect/index.dom.test.ts diff --git a/src/useCustomCompareEffect/__tests__/ssr.ts b/src/useCustomCompareEffect/index.ssr.test.ts similarity index 100% rename from src/useCustomCompareEffect/__tests__/ssr.ts rename to src/useCustomCompareEffect/index.ssr.test.ts diff --git a/src/useCustomCompareMemo/__tests__/dom.ts b/src/useCustomCompareMemo/index.dom.test.ts similarity index 100% rename from src/useCustomCompareMemo/__tests__/dom.ts rename to src/useCustomCompareMemo/index.dom.test.ts diff --git a/src/useCustomCompareMemo/__tests__/ssr.ts b/src/useCustomCompareMemo/index.ssr.test.ts similarity index 100% rename from src/useCustomCompareMemo/__tests__/ssr.ts rename to src/useCustomCompareMemo/index.ssr.test.ts diff --git a/src/useDebouncedCallback/__tests__/dom.ts b/src/useDebouncedCallback/index.dom.test.ts similarity index 100% rename from src/useDebouncedCallback/__tests__/dom.ts rename to src/useDebouncedCallback/index.dom.test.ts diff --git a/src/useDebouncedCallback/__tests__/ssr.ts b/src/useDebouncedCallback/index.ssr.test.ts similarity index 100% rename from src/useDebouncedCallback/__tests__/ssr.ts rename to src/useDebouncedCallback/index.ssr.test.ts diff --git a/src/useDebouncedEffect/__tests__/dom.ts b/src/useDebouncedEffect/index.dom.test.ts similarity index 100% rename from src/useDebouncedEffect/__tests__/dom.ts rename to src/useDebouncedEffect/index.dom.test.ts diff --git a/src/useDebouncedEffect/__tests__/ssr.ts b/src/useDebouncedEffect/index.ssr.test.ts similarity index 100% rename from src/useDebouncedEffect/__tests__/ssr.ts rename to src/useDebouncedEffect/index.ssr.test.ts diff --git a/src/useDebouncedState/__tests__/dom.ts b/src/useDebouncedState/index.dom.test.ts similarity index 100% rename from src/useDebouncedState/__tests__/dom.ts rename to src/useDebouncedState/index.dom.test.ts diff --git a/src/useDebouncedState/__tests__/ssr.ts b/src/useDebouncedState/index.ssr.test.ts similarity index 100% rename from src/useDebouncedState/__tests__/ssr.ts rename to src/useDebouncedState/index.ssr.test.ts diff --git a/src/useDeepCompareEffect/__tests__/dom.ts b/src/useDeepCompareEffect/index.dom.test.ts similarity index 100% rename from src/useDeepCompareEffect/__tests__/dom.ts rename to src/useDeepCompareEffect/index.dom.test.ts diff --git a/src/useDeepCompareEffect/__tests__/ssr.ts b/src/useDeepCompareEffect/index.ssr.test.ts similarity index 100% rename from src/useDeepCompareEffect/__tests__/ssr.ts rename to src/useDeepCompareEffect/index.ssr.test.ts diff --git a/src/useDeepCompareMemo/__tests__/dom.ts b/src/useDeepCompareMemo/index.dom.test.ts similarity index 100% rename from src/useDeepCompareMemo/__tests__/dom.ts rename to src/useDeepCompareMemo/index.dom.test.ts diff --git a/src/useDeepCompareMemo/__tests__/ssr.ts b/src/useDeepCompareMemo/index.ssr.test.ts similarity index 100% rename from src/useDeepCompareMemo/__tests__/ssr.ts rename to src/useDeepCompareMemo/index.ssr.test.ts diff --git a/src/useDocumentVisibility/__tests__/dom.ts b/src/useDocumentVisibility/index.dom.test.ts similarity index 100% rename from src/useDocumentVisibility/__tests__/dom.ts rename to src/useDocumentVisibility/index.dom.test.ts diff --git a/src/useDocumentVisibility/__tests__/ssr.ts b/src/useDocumentVisibility/index.ssr.test.ts similarity index 100% rename from src/useDocumentVisibility/__tests__/ssr.ts rename to src/useDocumentVisibility/index.ssr.test.ts diff --git a/src/useEventListener/__tests__/dom.ts b/src/useEventListener/index.dom.test.ts similarity index 100% rename from src/useEventListener/__tests__/dom.ts rename to src/useEventListener/index.dom.test.ts diff --git a/src/useEventListener/__tests__/ssr.ts b/src/useEventListener/index.ssr.test.ts similarity index 100% rename from src/useEventListener/__tests__/ssr.ts rename to src/useEventListener/index.ssr.test.ts diff --git a/src/useFirstMountState/__tests__/dom.ts b/src/useFirstMountState/index.dom.test.ts similarity index 100% rename from src/useFirstMountState/__tests__/dom.ts rename to src/useFirstMountState/index.dom.test.ts diff --git a/src/useFirstMountState/__tests__/ssr.ts b/src/useFirstMountState/index.ssr.test.ts similarity index 100% rename from src/useFirstMountState/__tests__/ssr.ts rename to src/useFirstMountState/index.ssr.test.ts diff --git a/src/useFunctionalState/__tests__/dom.ts b/src/useFunctionalState/index.dom.test.ts similarity index 100% rename from src/useFunctionalState/__tests__/dom.ts rename to src/useFunctionalState/index.dom.test.ts diff --git a/src/useFunctionalState/__tests__/ssr.ts b/src/useFunctionalState/index.ssr.test.ts similarity index 100% rename from src/useFunctionalState/__tests__/ssr.ts rename to src/useFunctionalState/index.ssr.test.ts diff --git a/src/useHookableRef/__tests__/dom.ts b/src/useHookableRef/index.dom.test.ts similarity index 100% rename from src/useHookableRef/__tests__/dom.ts rename to src/useHookableRef/index.dom.test.ts diff --git a/src/useHookableRef/__tests__/ssr.ts b/src/useHookableRef/index.ssr.test.ts similarity index 100% rename from src/useHookableRef/__tests__/ssr.ts rename to src/useHookableRef/index.ssr.test.ts diff --git a/src/useIntersectionObserver/__tests__/dom.ts b/src/useIntersectionObserver/index.dom.test.ts similarity index 100% rename from src/useIntersectionObserver/__tests__/dom.ts rename to src/useIntersectionObserver/index.dom.test.ts diff --git a/src/useIntersectionObserver/__tests__/ssr.ts b/src/useIntersectionObserver/index.ssr.test.ts similarity index 100% rename from src/useIntersectionObserver/__tests__/ssr.ts rename to src/useIntersectionObserver/index.ssr.test.ts diff --git a/src/useIntervalEffect/__tests__/dom.ts b/src/useIntervalEffect/index.dom.test.ts similarity index 100% rename from src/useIntervalEffect/__tests__/dom.ts rename to src/useIntervalEffect/index.dom.test.ts diff --git a/src/useIntervalEffect/__tests__/ssr.ts b/src/useIntervalEffect/index.ssr.test.ts similarity index 100% rename from src/useIntervalEffect/__tests__/ssr.ts rename to src/useIntervalEffect/index.ssr.test.ts diff --git a/src/useIsMounted/__tests__/dom.ts b/src/useIsMounted/index.dom.test.ts similarity index 100% rename from src/useIsMounted/__tests__/dom.ts rename to src/useIsMounted/index.dom.test.ts diff --git a/src/useIsMounted/__tests__/ssr.ts b/src/useIsMounted/index.ssr.test.ts similarity index 100% rename from src/useIsMounted/__tests__/ssr.ts rename to src/useIsMounted/index.ssr.test.ts diff --git a/src/useIsomorphicLayoutEffect/__tests__/dom.ts b/src/useIsomorphicLayoutEffect/index.dom.test.ts similarity index 100% rename from src/useIsomorphicLayoutEffect/__tests__/dom.ts rename to src/useIsomorphicLayoutEffect/index.dom.test.ts diff --git a/src/useIsomorphicLayoutEffect/__tests__/ssr.ts b/src/useIsomorphicLayoutEffect/index.ssr.test.ts similarity index 100% rename from src/useIsomorphicLayoutEffect/__tests__/ssr.ts rename to src/useIsomorphicLayoutEffect/index.ssr.test.ts diff --git a/src/useKeyboardEvent/__tests__/dom.ts b/src/useKeyboardEvent/index.dom.test.ts similarity index 100% rename from src/useKeyboardEvent/__tests__/dom.ts rename to src/useKeyboardEvent/index.dom.test.ts diff --git a/src/useKeyboardEvent/__tests__/ssr.ts b/src/useKeyboardEvent/index.ssr.test.ts similarity index 100% rename from src/useKeyboardEvent/__tests__/ssr.ts rename to src/useKeyboardEvent/index.ssr.test.ts diff --git a/src/useLifecycleLogger/__tests__/dom.ts b/src/useLifecycleLogger/index.dom.test.ts similarity index 100% rename from src/useLifecycleLogger/__tests__/dom.ts rename to src/useLifecycleLogger/index.dom.test.ts diff --git a/src/useLifecycleLogger/__tests__/ssr.ts b/src/useLifecycleLogger/index.ssr.test.ts similarity index 100% rename from src/useLifecycleLogger/__tests__/ssr.ts rename to src/useLifecycleLogger/index.ssr.test.ts diff --git a/src/useList/__tests__/dom.ts b/src/useList/index.dom.test.ts similarity index 100% rename from src/useList/__tests__/dom.ts rename to src/useList/index.dom.test.ts diff --git a/src/useList/__tests__/ssr.ts b/src/useList/index.ssr.test.ts similarity index 100% rename from src/useList/__tests__/ssr.ts rename to src/useList/index.ssr.test.ts diff --git a/src/useLocalStorageValue/__tests__/dom.ts b/src/useLocalStorageValue/index.dom.test.ts similarity index 100% rename from src/useLocalStorageValue/__tests__/dom.ts rename to src/useLocalStorageValue/index.dom.test.ts diff --git a/src/useLocalStorageValue/__tests__/ssr.ts b/src/useLocalStorageValue/index.ssr.test.ts similarity index 100% rename from src/useLocalStorageValue/__tests__/ssr.ts rename to src/useLocalStorageValue/index.ssr.test.ts diff --git a/src/useMap/__tests__/dom.ts b/src/useMap/index.dom.test.ts similarity index 100% rename from src/useMap/__tests__/dom.ts rename to src/useMap/index.dom.test.ts diff --git a/src/useMap/__tests__/ssr.ts b/src/useMap/index.ssr.test.ts similarity index 100% rename from src/useMap/__tests__/ssr.ts rename to src/useMap/index.ssr.test.ts diff --git a/src/useMeasure/__tests__/dom.ts b/src/useMeasure/index.dom.test.ts similarity index 100% rename from src/useMeasure/__tests__/dom.ts rename to src/useMeasure/index.dom.test.ts diff --git a/src/useMeasure/__tests__/ssr.ts b/src/useMeasure/index.ssr.test.ts similarity index 100% rename from src/useMeasure/__tests__/ssr.ts rename to src/useMeasure/index.ssr.test.ts diff --git a/src/useMediaQuery/__tests__/dom.ts b/src/useMediaQuery/index.dom.test.ts similarity index 100% rename from src/useMediaQuery/__tests__/dom.ts rename to src/useMediaQuery/index.dom.test.ts diff --git a/src/useMediaQuery/__tests__/ssr.ts b/src/useMediaQuery/index.ssr.test.ts similarity index 100% rename from src/useMediaQuery/__tests__/ssr.ts rename to src/useMediaQuery/index.ssr.test.ts diff --git a/src/useMediatedState/__tests__/dom.ts b/src/useMediatedState/index.dom.test.ts similarity index 100% rename from src/useMediatedState/__tests__/dom.ts rename to src/useMediatedState/index.dom.test.ts diff --git a/src/useMediatedState/__tests__/ssr.ts b/src/useMediatedState/index.ssr.test.ts similarity index 100% rename from src/useMediatedState/__tests__/ssr.ts rename to src/useMediatedState/index.ssr.test.ts diff --git a/src/useMountEffect/__tests__/dom.ts b/src/useMountEffect/index.dom.test.ts similarity index 100% rename from src/useMountEffect/__tests__/dom.ts rename to src/useMountEffect/index.dom.test.ts diff --git a/src/useMountEffect/__tests__/ssr.ts b/src/useMountEffect/index.ssr.test.ts similarity index 100% rename from src/useMountEffect/__tests__/ssr.ts rename to src/useMountEffect/index.ssr.test.ts diff --git a/src/useNetworkState/__tests__/dom.ts b/src/useNetworkState/index.dom.test.ts similarity index 100% rename from src/useNetworkState/__tests__/dom.ts rename to src/useNetworkState/index.dom.test.ts diff --git a/src/useNetworkState/__tests__/ssr.ts b/src/useNetworkState/index.ssr.test.ts similarity index 100% rename from src/useNetworkState/__tests__/ssr.ts rename to src/useNetworkState/index.ssr.test.ts diff --git a/src/usePermission/__tests__/dom.ts b/src/usePermission/index.dom.test.ts similarity index 100% rename from src/usePermission/__tests__/dom.ts rename to src/usePermission/index.dom.test.ts diff --git a/src/usePermission/__tests__/ssr.ts b/src/usePermission/index.ssr.test.ts similarity index 100% rename from src/usePermission/__tests__/ssr.ts rename to src/usePermission/index.ssr.test.ts diff --git a/src/usePrevious/__tests__/dom.ts b/src/usePrevious/index.dom.test.ts similarity index 100% rename from src/usePrevious/__tests__/dom.ts rename to src/usePrevious/index.dom.test.ts diff --git a/src/usePrevious/__tests__/ssr.ts b/src/usePrevious/index.ssr.test.ts similarity index 100% rename from src/usePrevious/__tests__/ssr.ts rename to src/usePrevious/index.ssr.test.ts diff --git a/src/usePreviousDistinct/__tests__/dom.ts b/src/usePreviousDistinct/index.dom.test.ts similarity index 100% rename from src/usePreviousDistinct/__tests__/dom.ts rename to src/usePreviousDistinct/index.dom.test.ts diff --git a/src/usePreviousDistinct/__tests__/ssr.ts b/src/usePreviousDistinct/index.ssr.test.ts similarity index 100% rename from src/usePreviousDistinct/__tests__/ssr.ts rename to src/usePreviousDistinct/index.ssr.test.ts diff --git a/src/useQueue/__tests__/dom.ts b/src/useQueue/index.dom.test.ts similarity index 100% rename from src/useQueue/__tests__/dom.ts rename to src/useQueue/index.dom.test.ts diff --git a/src/useQueue/__tests__/ssr.ts b/src/useQueue/index.ssr.test.ts similarity index 100% rename from src/useQueue/__tests__/ssr.ts rename to src/useQueue/index.ssr.test.ts diff --git a/src/useRafCallback/__tests__/dom.ts b/src/useRafCallback/index.dom.test.ts similarity index 100% rename from src/useRafCallback/__tests__/dom.ts rename to src/useRafCallback/index.dom.test.ts diff --git a/src/useRafCallback/__tests__/ssr.ts b/src/useRafCallback/index.ssr.test.ts similarity index 100% rename from src/useRafCallback/__tests__/ssr.ts rename to src/useRafCallback/index.ssr.test.ts diff --git a/src/useRafEffect/__tests__/dom.ts b/src/useRafEffect/index.dom.test.ts similarity index 100% rename from src/useRafEffect/__tests__/dom.ts rename to src/useRafEffect/index.dom.test.ts diff --git a/src/useRafEffect/__tests__/ssr.ts b/src/useRafEffect/index.ssr.test.ts similarity index 100% rename from src/useRafEffect/__tests__/ssr.ts rename to src/useRafEffect/index.ssr.test.ts diff --git a/src/useRafState/__tests__/dom.ts b/src/useRafState/index.dom.test.ts similarity index 100% rename from src/useRafState/__tests__/dom.ts rename to src/useRafState/index.dom.test.ts diff --git a/src/useRafState/__tests__/ssr.ts b/src/useRafState/index.ssr.test.ts similarity index 100% rename from src/useRafState/__tests__/ssr.ts rename to src/useRafState/index.ssr.test.ts diff --git a/src/useRenderCount/__tests__/dom.ts b/src/useRenderCount/index.dom.test.ts similarity index 100% rename from src/useRenderCount/__tests__/dom.ts rename to src/useRenderCount/index.dom.test.ts diff --git a/src/useRenderCount/__tests__/ssr.ts b/src/useRenderCount/index.ssr.test.ts similarity index 100% rename from src/useRenderCount/__tests__/ssr.ts rename to src/useRenderCount/index.ssr.test.ts diff --git a/src/useRerender/__tests__/dom.ts b/src/useRerender/index.dom.test.ts similarity index 100% rename from src/useRerender/__tests__/dom.ts rename to src/useRerender/index.dom.test.ts diff --git a/src/useRerender/__tests__/ssr.ts b/src/useRerender/index.ssr.test.ts similarity index 100% rename from src/useRerender/__tests__/ssr.ts rename to src/useRerender/index.ssr.test.ts diff --git a/src/useResizeObserver/__tests__/dom.ts b/src/useResizeObserver/index.dom.test.ts similarity index 100% rename from src/useResizeObserver/__tests__/dom.ts rename to src/useResizeObserver/index.dom.test.ts diff --git a/src/useResizeObserver/__tests__/ssr.ts b/src/useResizeObserver/index.ssr.test.ts similarity index 100% rename from src/useResizeObserver/__tests__/ssr.ts rename to src/useResizeObserver/index.ssr.test.ts diff --git a/src/useScreenOrientation/__tests__/dom.ts b/src/useScreenOrientation/index.dom.test.ts similarity index 100% rename from src/useScreenOrientation/__tests__/dom.ts rename to src/useScreenOrientation/index.dom.test.ts diff --git a/src/useScreenOrientation/__tests__/ssr.ts b/src/useScreenOrientation/index.ssr.test.ts similarity index 100% rename from src/useScreenOrientation/__tests__/ssr.ts rename to src/useScreenOrientation/index.ssr.test.ts diff --git a/src/useSessionStorageValue/__tests__/dom.ts b/src/useSessionStorageValue/index.dom.test.ts similarity index 100% rename from src/useSessionStorageValue/__tests__/dom.ts rename to src/useSessionStorageValue/index.dom.test.ts diff --git a/src/useSessionStorageValue/__tests__/ssr.ts b/src/useSessionStorageValue/index.ssr.test.ts similarity index 100% rename from src/useSessionStorageValue/__tests__/ssr.ts rename to src/useSessionStorageValue/index.ssr.test.ts diff --git a/src/useSet/__tests__/dom.ts b/src/useSet/index.dom.test.ts similarity index 100% rename from src/useSet/__tests__/dom.ts rename to src/useSet/index.dom.test.ts diff --git a/src/useSet/__tests__/ssr.ts b/src/useSet/index.ssr.test.ts similarity index 100% rename from src/useSet/__tests__/ssr.ts rename to src/useSet/index.ssr.test.ts diff --git a/src/useStorageValue/__tests__/misc.ts b/src/useStorageValue/__tests__/misc.ts deleted file mode 100644 index 836106a2..00000000 --- a/src/useStorageValue/__tests__/misc.ts +++ /dev/null @@ -1,13 +0,0 @@ -import Mocked = jest.Mocked; - -export const newStorage = ( - get: Storage['getItem'] = () => null, - set: Storage['setItem'] = () => {}, - remove: Storage['removeItem'] = () => {} -) => { - return { - getItem: jest.fn(get), - setItem: jest.fn(set), - removeItem: jest.fn(remove), - } as unknown as Mocked; -}; diff --git a/src/useStorageValue/__tests__/dom.ts b/src/useStorageValue/index.dom.test.ts similarity index 100% rename from src/useStorageValue/__tests__/dom.ts rename to src/useStorageValue/index.dom.test.ts diff --git a/src/useStorageValue/__tests__/ssr.ts b/src/useStorageValue/index.ssr.test.ts similarity index 100% rename from src/useStorageValue/__tests__/ssr.ts rename to src/useStorageValue/index.ssr.test.ts diff --git a/src/useSyncedRef/__tests__/dom.ts b/src/useSyncedRef/index.dom.test.ts similarity index 100% rename from src/useSyncedRef/__tests__/dom.ts rename to src/useSyncedRef/index.dom.test.ts diff --git a/src/useSyncedRef/__tests__/ssr.ts b/src/useSyncedRef/index.ssr.test.ts similarity index 100% rename from src/useSyncedRef/__tests__/ssr.ts rename to src/useSyncedRef/index.ssr.test.ts diff --git a/src/useThrottledCallback/__tests__/dom.ts b/src/useThrottledCallback/index.dom.test.ts similarity index 100% rename from src/useThrottledCallback/__tests__/dom.ts rename to src/useThrottledCallback/index.dom.test.ts diff --git a/src/useThrottledCallback/__tests__/ssr.ts b/src/useThrottledCallback/index.ssr.test.ts similarity index 100% rename from src/useThrottledCallback/__tests__/ssr.ts rename to src/useThrottledCallback/index.ssr.test.ts diff --git a/src/useThrottledEffect/__tests__/dom.ts b/src/useThrottledEffect/index.dom.test.ts similarity index 100% rename from src/useThrottledEffect/__tests__/dom.ts rename to src/useThrottledEffect/index.dom.test.ts diff --git a/src/useThrottledEffect/__tests__/ssr.ts b/src/useThrottledEffect/index.ssr.test.ts similarity index 100% rename from src/useThrottledEffect/__tests__/ssr.ts rename to src/useThrottledEffect/index.ssr.test.ts diff --git a/src/useThrottledState/__tests__/dom.ts b/src/useThrottledState/index.dom.test.ts similarity index 100% rename from src/useThrottledState/__tests__/dom.ts rename to src/useThrottledState/index.dom.test.ts diff --git a/src/useThrottledState/__tests__/ssr.ts b/src/useThrottledState/index.ssr.test.ts similarity index 100% rename from src/useThrottledState/__tests__/ssr.ts rename to src/useThrottledState/index.ssr.test.ts diff --git a/src/useTimeoutEffect/__tests__/dom.ts b/src/useTimeoutEffect/index.dom.test.ts similarity index 100% rename from src/useTimeoutEffect/__tests__/dom.ts rename to src/useTimeoutEffect/index.dom.test.ts diff --git a/src/useTimeoutEffect/__tests__/ssr.ts b/src/useTimeoutEffect/index.ssr.test.ts similarity index 100% rename from src/useTimeoutEffect/__tests__/ssr.ts rename to src/useTimeoutEffect/index.ssr.test.ts diff --git a/src/useToggle/__tests__/dom.ts b/src/useToggle/index.dom.test.ts similarity index 100% rename from src/useToggle/__tests__/dom.ts rename to src/useToggle/index.dom.test.ts diff --git a/src/useToggle/__tests__/ssr.ts b/src/useToggle/index.ssr.test.ts similarity index 100% rename from src/useToggle/__tests__/ssr.ts rename to src/useToggle/index.ssr.test.ts diff --git a/src/useUnmountEffect/__tests__/dom.ts b/src/useUnmountEffect/index.dom.test.ts similarity index 100% rename from src/useUnmountEffect/__tests__/dom.ts rename to src/useUnmountEffect/index.dom.test.ts diff --git a/src/useUnmountEffect/__tests__/ssr.ts b/src/useUnmountEffect/index.ssr.test.ts similarity index 100% rename from src/useUnmountEffect/__tests__/ssr.ts rename to src/useUnmountEffect/index.ssr.test.ts diff --git a/src/useUpdateEffect/__tests__/dom.ts b/src/useUpdateEffect/index.dom.test.ts similarity index 100% rename from src/useUpdateEffect/__tests__/dom.ts rename to src/useUpdateEffect/index.dom.test.ts diff --git a/src/useUpdateEffect/__tests__/ssr.ts b/src/useUpdateEffect/index.ssr.test.ts similarity index 100% rename from src/useUpdateEffect/__tests__/ssr.ts rename to src/useUpdateEffect/index.ssr.test.ts diff --git a/src/useValidator/__tests__/dom.ts b/src/useValidator/index.dom.test.ts similarity index 100% rename from src/useValidator/__tests__/dom.ts rename to src/useValidator/index.dom.test.ts diff --git a/src/useValidator/__tests__/ssr.ts b/src/useValidator/index.ssr.test.ts similarity index 100% rename from src/useValidator/__tests__/ssr.ts rename to src/useValidator/index.ssr.test.ts diff --git a/src/useVibrate/__tests__/dom.ts b/src/useVibrate/index.dom.test.ts similarity index 100% rename from src/useVibrate/__tests__/dom.ts rename to src/useVibrate/index.dom.test.ts diff --git a/src/useVibrate/__tests__/ssr.ts b/src/useVibrate/index.ssr.test.ts similarity index 100% rename from src/useVibrate/__tests__/ssr.ts rename to src/useVibrate/index.ssr.test.ts diff --git a/src/useWindowSize/__tests__/dom.ts b/src/useWindowSize/index.dom.test.ts similarity index 100% rename from src/useWindowSize/__tests__/dom.ts rename to src/useWindowSize/index.dom.test.ts diff --git a/src/useWindowSize/__tests__/ssr.ts b/src/useWindowSize/index.ssr.test.ts similarity index 100% rename from src/useWindowSize/__tests__/ssr.ts rename to src/useWindowSize/index.ssr.test.ts diff --git a/src/util/__tests__/dom.ts b/src/util/index.dom.test.ts similarity index 100% rename from src/util/__tests__/dom.ts rename to src/util/index.dom.test.ts diff --git a/tsconfig.build.json b/tsconfig.build.json index 7233efad..973d45a1 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -8,7 +8,6 @@ "./src" ], "exclude": [ - "**/__docs__", - "**/__tests__" + "./src/**/*.test.ts" ] } diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 00000000..e4dc4a62 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,5 @@ +import {defineConfig} from 'vitest/config'; + +export default defineConfig({ + test: {}, +}); From 59255a5677f916af849dedc03becb13de345be69 Mon Sep 17 00:00:00 2001 From: xobotyi Date: Wed, 18 Dec 2024 19:14:37 +0100 Subject: [PATCH 05/13] chore: migrate to vitest (easy part) --- .github/workflows/ci-cd.yml | 78 ++-- .releaserc.json | 6 - package.json | 10 +- src/index.ts | 6 +- src/types.ts | 2 +- src/useAsync/index.dom.test.ts | 79 ++-- src/useAsync/index.ssr.test.ts | 3 +- src/useAsync/index.ts | 50 +-- src/useAsyncAbortable/index.dom.test.ts | 29 +- src/useAsyncAbortable/index.ssr.test.ts | 3 +- src/useAsyncAbortable/index.ts | 14 +- src/useClickOutside/index.dom.test.ts | 47 +-- src/useClickOutside/index.ssr.test.ts | 3 +- src/useClickOutside/index.ts | 18 +- src/useConditionalEffect/index.dom.test.ts | 81 ++-- src/useConditionalEffect/index.ssr.test.ts | 11 +- src/useConditionalEffect/index.ts | 10 +- .../index.dom.test.ts | 3 +- .../index.ssr.test.ts | 3 +- src/useControlledRerenderState/index.ts | 16 +- src/useCookieValue/index.dom.test.ts | 36 +- src/useCookieValue/index.ssr.test.ts | 3 +- src/useCookieValue/index.ts | 60 +-- src/useCounter/index.dom.test.ts | 69 ++-- src/useCounter/index.ssr.test.ts | 3 +- src/useCounter/index.ts | 18 +- src/useCustomCompareEffect/index.dom.test.ts | 41 +- src/useCustomCompareEffect/index.ssr.test.ts | 5 +- src/useCustomCompareEffect/index.ts | 8 +- src/useCustomCompareMemo/index.dom.test.ts | 44 +- src/useCustomCompareMemo/index.ssr.test.ts | 3 +- src/useCustomCompareMemo/index.ts | 6 +- src/useDebouncedCallback/index.dom.test.ts | 106 ++--- src/useDebouncedCallback/index.ssr.test.ts | 29 +- src/useDebouncedCallback/index.ts | 18 +- src/useDebouncedEffect/index.dom.test.ts | 15 +- src/useDebouncedEffect/index.ssr.test.ts | 9 +- src/useDebouncedEffect/index.ts | 6 +- src/useDebouncedState/index.dom.test.ts | 15 +- src/useDebouncedState/index.ssr.test.ts | 9 +- src/useDebouncedState/index.ts | 6 +- src/useDeepCompareEffect/index.dom.test.ts | 5 +- src/useDeepCompareEffect/index.ssr.test.ts | 3 +- src/useDeepCompareEffect/index.ts | 8 +- src/useDeepCompareMemo/index.dom.test.ts | 7 +- src/useDeepCompareMemo/index.ssr.test.ts | 3 +- src/useDeepCompareMemo/index.ts | 6 +- src/useDocumentVisibility/index.dom.test.ts | 3 +- src/useDocumentVisibility/index.ssr.test.ts | 3 +- src/useDocumentVisibility/index.ts | 10 +- src/useEventListener/index.dom.test.ts | 35 +- src/useEventListener/index.ssr.test.ts | 3 +- src/useEventListener/index.ts | 24 +- src/useFirstMountState/index.dom.test.ts | 3 +- src/useFirstMountState/index.ssr.test.ts | 3 +- src/useFirstMountState/index.ts | 2 +- src/useFunctionalState/index.dom.test.ts | 3 +- src/useFunctionalState/index.ssr.test.ts | 3 +- src/useFunctionalState/index.ts | 6 +- src/useHookableRef/index.dom.test.ts | 21 +- src/useHookableRef/index.ssr.test.ts | 3 +- src/useHookableRef/index.ts | 6 +- src/useIntersectionObserver/index.dom.test.ts | 73 ++-- src/useIntersectionObserver/index.ssr.test.ts | 3 +- src/useIntersectionObserver/index.ts | 16 +- src/useIntervalEffect/index.dom.test.ts | 51 +-- src/useIntervalEffect/index.ssr.test.ts | 3 +- src/useIntervalEffect/index.ts | 4 +- src/useIsMounted/index.dom.test.ts | 3 +- src/useIsMounted/index.ssr.test.ts | 3 +- src/useIsMounted/index.ts | 2 +- .../index.dom.test.ts | 3 +- .../index.ssr.test.ts | 3 +- src/useKeyboardEvent/index.dom.test.ts | 63 +-- src/useKeyboardEvent/index.ssr.test.ts | 3 +- src/useKeyboardEvent/index.ts | 26 +- src/useLifecycleLogger/index.dom.test.ts | 27 +- src/useLifecycleLogger/index.ssr.test.ts | 3 +- src/useLifecycleLogger/index.ts | 2 +- src/useList/index.dom.test.ts | 127 +++--- src/useList/index.ssr.test.ts | 3 +- src/useList/index.ts | 13 +- src/useLocalStorageValue/index.dom.test.ts | 3 +- src/useLocalStorageValue/index.ssr.test.ts | 3 +- src/useLocalStorageValue/index.ts | 16 +- src/useMap/index.dom.test.ts | 26 +- src/useMap/index.ssr.test.ts | 26 +- src/useMap/index.ts | 6 +- src/useMeasure/index.dom.test.ts | 57 +-- src/useMeasure/index.ssr.test.ts | 29 +- src/useMeasure/index.ts | 12 +- src/useMediaQuery/index.dom.test.ts | 85 ++-- src/useMediaQuery/index.ssr.test.ts | 3 +- src/useMediaQuery/index.ts | 26 +- src/useMediatedState/index.dom.test.ts | 23 +- src/useMediatedState/index.ssr.test.ts | 14 +- src/useMediatedState/index.ts | 23 +- src/useMountEffect/index.dom.test.ts | 5 +- src/useMountEffect/index.ssr.test.ts | 5 +- src/useMountEffect/index.ts | 2 +- src/useNetworkState/index.dom.test.ts | 3 +- src/useNetworkState/index.ssr.test.ts | 3 +- src/useNetworkState/index.ts | 20 +- src/usePermission/index.dom.test.ts | 45 +- src/usePermission/index.ssr.test.ts | 3 +- src/usePermission/index.ts | 8 +- src/usePrevious/index.dom.test.ts | 3 +- src/usePrevious/index.ssr.test.ts | 3 +- src/usePrevious/index.ts | 2 +- src/usePreviousDistinct/index.dom.test.ts | 63 +-- src/usePreviousDistinct/index.ssr.test.ts | 5 +- src/usePreviousDistinct/index.ts | 10 +- src/useQueue/index.dom.test.ts | 3 +- src/useQueue/index.ssr.test.ts | 3 +- src/useQueue/index.ts | 10 +- src/useRafCallback/index.dom.test.ts | 57 +-- src/useRafCallback/index.ssr.test.ts | 5 +- src/useRafCallback/index.ts | 22 +- src/useRafEffect/index.dom.test.ts | 17 +- src/useRafEffect/index.ssr.test.ts | 3 +- src/useRafEffect/index.ts | 6 +- src/useRafState/index.dom.test.ts | 31 +- src/useRafState/index.ssr.test.ts | 3 +- src/useRafState/index.ts | 12 +- src/useRenderCount/index.dom.test.ts | 3 +- src/useRenderCount/index.ssr.test.ts | 3 +- src/useRenderCount/index.ts | 2 +- src/useRerender/index.dom.test.ts | 11 +- src/useRerender/index.ssr.test.ts | 9 +- src/useRerender/index.ts | 2 +- src/useResizeObserver/index.dom.test.ts | 81 ++-- src/useResizeObserver/index.ssr.test.ts | 3 +- src/useResizeObserver/index.ts | 28 +- src/useScreenOrientation/index.dom.test.ts | 41 +- src/useScreenOrientation/index.ssr.test.ts | 3 +- src/useScreenOrientation/index.ts | 6 +- src/useSessionStorageValue/index.dom.test.ts | 3 +- src/useSessionStorageValue/index.ssr.test.ts | 3 +- src/useSessionStorageValue/index.ts | 16 +- src/useSet/index.dom.test.ts | 23 +- src/useSet/index.ssr.test.ts | 25 +- src/useSet/index.ts | 4 +- src/useStorageValue/index.dom.test.ts | 157 +++---- src/useStorageValue/index.ssr.test.ts | 11 +- src/useStorageValue/index.ts | 58 +-- src/useSyncedRef/index.dom.test.ts | 25 +- src/useSyncedRef/index.ssr.test.ts | 3 +- src/useSyncedRef/index.ts | 6 +- src/useThrottledCallback/index.dom.test.ts | 60 +-- src/useThrottledCallback/index.ssr.test.ts | 23 +- src/useThrottledCallback/index.ts | 14 +- src/useThrottledEffect/index.dom.test.ts | 13 +- src/useThrottledEffect/index.ssr.test.ts | 9 +- src/useThrottledEffect/index.ts | 6 +- src/useThrottledState/index.dom.test.ts | 13 +- src/useThrottledState/index.ssr.test.ts | 9 +- src/useThrottledState/index.ts | 6 +- src/useTimeoutEffect/index.dom.test.ts | 99 ++--- src/useTimeoutEffect/index.ssr.test.ts | 13 +- src/useTimeoutEffect/index.ts | 10 +- src/useToggle/index.dom.test.ts | 23 +- src/useToggle/index.ssr.test.ts | 3 +- src/useToggle/index.ts | 8 +- src/useUnmountEffect/index.dom.test.ts | 27 +- src/useUnmountEffect/index.ssr.test.ts | 5 +- src/useUnmountEffect/index.ts | 6 +- src/useUpdateEffect/index.dom.test.ts | 7 +- src/useUpdateEffect/index.ssr.test.ts | 5 +- src/useUpdateEffect/index.ts | 6 +- src/useValidator/index.dom.test.ts | 45 +- src/useValidator/index.ssr.test.ts | 5 +- src/useValidator/index.ts | 8 +- src/useVibrate/index.dom.test.ts | 15 +- src/useVibrate/index.ssr.test.ts | 3 +- src/useVibrate/index.ts | 12 +- src/useWindowSize/index.dom.test.ts | 15 +- src/useWindowSize/index.ssr.test.ts | 3 +- src/useWindowSize/index.ts | 12 +- src/util/const.ts | 4 +- src/util/index.dom.test.ts | 20 +- src/util/misc.ts | 16 +- src/util/resolveHookState.ts | 7 +- vitest.config.ts | 8 +- yarn.lock | 391 +++++++++++++----- 184 files changed, 2040 insertions(+), 1691 deletions(-) diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index 3957d2e0..2ddcbb40 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -18,15 +18,15 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - + - name: 'Enable corepack' + run: corepack enable - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 + cache: 'yarn' - - uses: bahmutov/npm-install@v1 - with: - useRollingCache: true - install-command: yarn --frozen-lockfile + - name: "Install dependencies" + run: yarn install --immutable - name: "Lint" run: yarn lint -f @react-hookz/gha @@ -39,22 +39,19 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - + - name: 'Enable corepack' + run: corepack enable - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 + cache: 'yarn' - - uses: bahmutov/npm-install@v1 - with: - useRollingCache: true - install-command: yarn --frozen-lockfile + - name: "Install dependencies" + run: yarn install --immutable - name: "Build" run: yarn build - - name: "Tests against built package" - run: yarn test - test: name: "Test" runs-on: ubuntu-latest @@ -63,24 +60,32 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - + - name: 'Enable corepack' + run: corepack enable - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 + cache: 'yarn' - - uses: bahmutov/npm-install@v1 - with: - useRollingCache: true - install-command: yarn --frozen-lockfile + - name: "Install dependencies" + run: yarn install --immutable - name: "Test" - run: yarn build:clean && yarn test:coverage --testLocationInResults --reporters=default --reporters=@jamesacarr/jest-reporter-github-actions + run: yarn test:coverage --reporter='github-actions' --reporter='junit' --outputFile='./coverage/test-report.junit.xml' --reporter=default - name: "Upload coverage to Codecov" - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v5 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: coverage/test-report.junit.xml + fail_ci_if_error: true + + - name: "Upload test results to Codecov" + if: ${{ !cancelled() }} + uses: codecov/test-results-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} - files: coverage/lcov.info + files: coverage/test-report.junit.xml fail_ci_if_error: true dependabot-merge: @@ -95,7 +100,6 @@ jobs: - uses: fastify/github-action-merge-dependabot@v3 with: github-token: ${{ secrets.GITHUB_TOKEN }} - target: 'minor' semantic-release: name: "Release" @@ -108,26 +112,28 @@ jobs: - name: "Checkout" uses: actions/checkout@v4 with: - fetch-depth: 0 - + ref: "master" + - name: 'Enable corepack' + run: corepack enable - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 22 + cache: 'yarn' - - uses: bahmutov/npm-install@v1 - with: - useRollingCache: true - install-command: yarn --frozen-lockfile + - name: Install dependencies + run: yarn install --immutable - - name: "Build package" + - name: "disable postinstall" + run: yarn pinst --disable + + - name: "Build" run: yarn build - name: "Release" - id: "release" - uses: codfish/semantic-release-action@v3.1.1 env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: yarn semantic-release gen-contributors: name: "Generate Contributors List" @@ -138,7 +144,7 @@ jobs: contents: write steps: - name: Contribute List - uses: akhilmhdh/contributors-readme-action@v2.3.6 + uses: akhilmhdh/contributors-readme-action@v2.3.10 with: image_size: 100 columns_per_row: 8 diff --git a/.releaserc.json b/.releaserc.json index f2e20bdd..355240d4 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -3,12 +3,6 @@ "master" ], "plugins": [ - [ - "@semantic-release/exec", - { - "prepareCmd": "yarn pinst --disable" - } - ], "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", "@semantic-release/npm", diff --git a/package.json b/package.json index 2e2d6b48..0e20ba32 100644 --- a/package.json +++ b/package.json @@ -37,14 +37,12 @@ }, "scripts": { "postinstall": "husky", - "prepack": "pinst --disable", - "postpack": "pinst --enable", "build": "yarn build:clean && tsc --version && tsc --project ./tsconfig.build.json", "build:clean": "yarn rimraf ./dist", - "test": "jest --selectProjects dom ssr", - "test:coverage": "yarn test --coverage", "lint": "eslint", - "lint:fix": "yarn lint --fix" + "lint:fix": "eslint --fix", + "test": "vitest --run", + "test:coverage": "vitest --run --coverage" }, "dependencies": { "@react-hookz/deep-equal": "^3.0.1" @@ -64,7 +62,6 @@ "@commitlint/config-conventional": "^19.5.0", "@react-hookz/eslint-config": "^4.1.6", "@react-hookz/eslint-formatter-gha": "^3.0.2", - "@semantic-release/exec": "^6.0.3", "@testing-library/react-hooks": "^8.0.1", "@types/js-cookie": "^3.0.6", "@types/react": "^18.2.52", @@ -73,6 +70,7 @@ "eslint": "^9.17.0", "husky": "^9.1.7", "js-cookie": "^3.0.5", + "jsdom": "^25.0.1", "lint-staged": "^15.2.2", "pinst": "^3.0.0", "react": "^17.0.2", diff --git a/src/index.ts b/src/index.ts index 833a84ba..84100247 100644 --- a/src/index.ts +++ b/src/index.ts @@ -71,9 +71,9 @@ export * from './useEventListener/index.js'; export * from './useWindowSize/index.js'; // Utils -export { isStrictEqual, truthyAndArrayPredicate, truthyOrArrayPredicate } from './util/const.js'; -export type { EffectCallback, EffectHook } from './util/misc.js'; -export { resolveHookState } from './util/resolveHookState.js'; +export {isStrictEqual, truthyAndArrayPredicate, truthyOrArrayPredicate} from './util/const.js'; +export type {EffectCallback, EffectHook} from './util/misc.js'; +export {resolveHookState} from './util/resolveHookState.js'; // Types export type * from './types.js'; diff --git a/src/types.ts b/src/types.ts index 5ebd7c93..b9722c91 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,4 +1,4 @@ -import { type DependencyList } from 'react'; +import {type DependencyList} from 'react'; export type DependenciesComparator = ( a: Deps, diff --git a/src/useAsync/index.dom.test.ts b/src/useAsync/index.dom.test.ts index c77f0af3..43b0674d 100644 --- a/src/useAsync/index.dom.test.ts +++ b/src/useAsync/index.dom.test.ts @@ -1,18 +1,19 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useAsync } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {useAsync} from '../index.js'; -function getControllableAsync() { - const resolve: { current: undefined | ((result: Res) => void) } = { current: undefined }; - const reject: { current: undefined | ((err: Error) => void) } = { current: undefined }; +function getControllableAsync() { + const resolve: {current: undefined | ((result: Resp) => void)} = {current: undefined}; + const reject: {current: undefined | ((err: Error) => void)} = {current: undefined}; return [ - jest.fn( + vi.fn( (..._args: Args) => // eslint-disable-next-line promise/param-names - new Promise((res, rej) => { - resolve.current = res; + new Promise((reslv, rej) => { + resolve.current = reslv; reject.current = rej; - }) + }), ), resolve, reject, @@ -25,12 +26,12 @@ describe('useAsync', () => { }); it('should render', () => { - const { result } = renderHook(() => useAsync(async () => true)); + const {result} = renderHook(() => useAsync(async () => true)); expect(result.error).toBeUndefined(); }); it('should not invoke async function on mount if `skipMount` option is passed', () => { - const spy = jest.fn(async () => {}); + const spy = vi.fn(async () => {}); renderHook(() => useAsync(spy)); expect(spy).not.toHaveBeenCalled(); @@ -39,7 +40,7 @@ describe('useAsync', () => { it('should apply `initialValue` arg', async () => { await act(async () => { const [spy, resolve] = getControllableAsync(); - const { result } = renderHook(() => useAsync(spy, 3)); + const {result} = renderHook(() => useAsync(spy, 3)); expect(result.all[0][0]).toStrictEqual({ status: 'not-executed', @@ -56,7 +57,7 @@ describe('useAsync', () => { it('should have `not-executed` status initially', async () => { await act(async () => { const [spy, resolve] = getControllableAsync(); - const { result } = renderHook(() => useAsync(spy)); + const {result} = renderHook(() => useAsync(spy)); expect(result.current[0]).toStrictEqual({ status: 'not-executed', @@ -72,7 +73,7 @@ describe('useAsync', () => { it('should have `loading` status while promise invoked but not resolved', async () => { const [spy, resolve] = getControllableAsync(); - const { result } = renderHook(() => useAsync(spy)); + const {result} = renderHook(() => useAsync(spy)); expect(result.current[0]).toStrictEqual({ status: 'not-executed', @@ -99,7 +100,7 @@ describe('useAsync', () => { it('should set `success` status and store `result` state field on fulfill', async () => { const [spy, resolve] = getControllableAsync(); - const { result } = renderHook(() => useAsync(spy)); + const {result} = renderHook(() => useAsync(spy)); expect(result.current[0]).toStrictEqual({ status: 'not-executed', @@ -110,7 +111,9 @@ describe('useAsync', () => { await act(async () => { void result.current[1].execute(); - if (resolve.current) resolve.current(123); + if (resolve.current) { + resolve.current(123); + } }); expect(result.current[0]).toStrictEqual({ @@ -122,7 +125,7 @@ describe('useAsync', () => { it('should set `error` status and store `error` state field on reject', async () => { const [spy, , reject] = getControllableAsync(); - const { result } = renderHook(() => useAsync(spy)); + const {result} = renderHook(() => useAsync(spy)); expect(result.current[0]).toStrictEqual({ status: 'not-executed', @@ -135,7 +138,9 @@ describe('useAsync', () => { await act(async () => { void result.current[1].execute(); - if (reject.current) reject.current(err); + if (reject.current) { + reject.current(err); + } }); expect(result.current[0]).toStrictEqual({ @@ -147,7 +152,7 @@ describe('useAsync', () => { it('should rollback state to initial on `reset` method call', async () => { const [spy, resolve] = getControllableAsync(); - const { result } = renderHook(() => useAsync(spy, 42)); + const {result} = renderHook(() => useAsync(spy, 42)); expect(result.current[0]).toStrictEqual({ status: 'not-executed', @@ -158,7 +163,9 @@ describe('useAsync', () => { await act(async () => { void result.current[1].execute(); - if (resolve.current) resolve.current(1); + if (resolve.current) { + resolve.current(1); + } }); expect(result.current[0]).toStrictEqual({ @@ -180,7 +187,7 @@ describe('useAsync', () => { it('should not process results of promise if another was executed', async () => { const [spy, resolve] = getControllableAsync(); - const { result } = renderHook(() => useAsync(spy, 42)); + const {result} = renderHook(() => useAsync(spy, 42)); await act(async () => { void result.current[1].execute(); @@ -193,8 +200,13 @@ describe('useAsync', () => { const resolve2 = resolve.current; await act(async () => { - if (resolve1) resolve1(1); - if (resolve2) resolve2(2); + if (resolve1) { + resolve1(1); + } + + if (resolve2) { + resolve2(2); + } }); expect(result.current[0]).toStrictEqual({ @@ -206,7 +218,7 @@ describe('useAsync', () => { it('should not process error of promise if another was executed', async () => { const [spy, resolve, reject] = getControllableAsync(); - const { result } = renderHook(() => useAsync(spy, 42)); + const {result} = renderHook(() => useAsync(spy, 42)); await act(async () => { void result.current[1].execute(); @@ -219,8 +231,13 @@ describe('useAsync', () => { const resolve2 = resolve.current; await act(async () => { - if (reject1) reject1(new Error('some err')); - if (resolve2) resolve2(2); + if (reject1) { + reject1(new Error('some err')); + } + + if (resolve2) { + resolve2(2); + } }); expect(result.current[0]).toStrictEqual({ @@ -231,13 +248,13 @@ describe('useAsync', () => { }); it('should not change methods between renders', () => { - const spy = jest.fn(async () => {}); - const { rerender, result } = renderHook(() => useAsync(spy)); + const spy = vi.fn(async () => {}); + const {rerender, result} = renderHook(() => useAsync(spy)); - const res1 = result.current; + const previous = result.current; rerender(); - expect(res1[1].execute).toBe(result.current[1].execute); - expect(res1[1].reset).toBe(result.current[1].reset); + expect(previous[1].execute).toBe(result.current[1].execute); + expect(previous[1].reset).toBe(result.current[1].reset); }); }); diff --git a/src/useAsync/index.ssr.test.ts b/src/useAsync/index.ssr.test.ts index 51f05d3d..1d59583b 100644 --- a/src/useAsync/index.ssr.test.ts +++ b/src/useAsync/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useAsync} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useAsync} from '../index.js'; describe('useAsync', () => { it('should be defined', () => { diff --git a/src/useAsync/index.ts b/src/useAsync/index.ts index 23dcc444..669898d1 100644 --- a/src/useAsync/index.ts +++ b/src/useAsync/index.ts @@ -1,29 +1,29 @@ -import { useMemo, useRef, useState } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; +import {useMemo, useRef, useState} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; export type AsyncStatus = 'loading' | 'success' | 'error' | 'not-executed'; export type AsyncState = | { - status: 'not-executed'; - error: undefined; - result: Result; - } + status: 'not-executed'; + error: undefined; + result: Result; + } | { - status: 'success'; - error: undefined; - result: Result; - } + status: 'success'; + error: undefined; + result: Result; + } | { - status: 'error'; - error: Error; - result: Result; - } + status: 'error'; + error: Error; + result: Result; + } | { - status: AsyncStatus; - error: Error | undefined; - result: Result; - }; + status: AsyncStatus; + error: Error | undefined; + result: Result; + }; export type UseAsyncActions = { /** @@ -65,7 +65,7 @@ export function useAsync( */ export function useAsync( asyncFn: (...params: Args) => Promise, - initialValue?: Result + initialValue?: Result, ): [AsyncState, UseAsyncActions, UseAsyncMeta] { const [state, setState] = useState>({ status: 'not-executed', @@ -81,7 +81,7 @@ export function useAsync( const promise = asyncFn(...params); promiseRef.current = promise; - setState((s) => ({ ...s, status: 'loading' })); + setState(s => ({...s, status: 'loading'})); // eslint-disable-next-line promise/catch-or-return promise.then( @@ -90,16 +90,16 @@ export function useAsync( // this approach helps to avoid race conditions if (promise === promiseRef.current) { - setState((s) => ({ ...s, status: 'success', error: undefined, result })); + setState(s => ({...s, status: 'success', error: undefined, result})); } }, (error: Error) => { // We dont want to handle result/error of non-latest function // this approach helps to avoid race conditions if (promise === promiseRef.current) { - setState((s) => ({ ...s, status: 'error', error })); + setState(s => ({...s, status: 'error', error})); } - } + }, ); return promise; @@ -125,8 +125,8 @@ export function useAsync( execute: (...params: Args) => methods.current.execute(...params), }), // eslint-disable-next-line react-hooks/exhaustive-deps - [] + [], ), - { promise: promiseRef.current, lastArgs: argsRef.current }, + {promise: promiseRef.current, lastArgs: argsRef.current}, ]; } diff --git a/src/useAsyncAbortable/index.dom.test.ts b/src/useAsyncAbortable/index.dom.test.ts index 206eb0be..d879dae5 100644 --- a/src/useAsyncAbortable/index.dom.test.ts +++ b/src/useAsyncAbortable/index.dom.test.ts @@ -1,18 +1,19 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useAsyncAbortable } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {useAsyncAbortable} from '../index.js'; function getControllableAsync() { - const resolve: { current: undefined | ((result: Res) => void) } = { current: undefined }; - const reject: { current: undefined | ((err: Error) => void) } = { current: undefined }; + const resolve: {current: undefined | ((result: Res) => void)} = {current: undefined}; + const reject: {current: undefined | ((err: Error) => void)} = {current: undefined}; return [ - jest.fn( + vi.fn( (..._args: Args) => // eslint-disable-next-line promise/param-names new Promise((res, rej) => { resolve.current = res; reject.current = rej; - }) + }), ), resolve, reject, @@ -25,13 +26,13 @@ describe('useAsyncAbortable', () => { }); it('should render', () => { - const { result } = renderHook(() => useAsyncAbortable(async (_) => {})); + const {result} = renderHook(() => useAsyncAbortable(async (_) => {})); expect(result.error).toBeUndefined(); }); it('should not change methods between renders', () => { - const spy = jest.fn(async () => {}); - const { rerender, result } = renderHook(() => useAsyncAbortable(spy)); + const spy = vi.fn(async () => {}); + const {rerender, result} = renderHook(() => useAsyncAbortable(spy)); const res1 = result.current; rerender(); @@ -42,8 +43,8 @@ describe('useAsyncAbortable', () => { }); it('should pass abort signal as first argument', async () => { - const spy = jest.fn(async (s: AbortSignal, n: number) => n); - const { result } = renderHook(() => useAsyncAbortable(spy)); + const spy = vi.fn(async (s: AbortSignal, n: number) => n); + const {result} = renderHook(() => useAsyncAbortable(spy)); await act(async () => { void result.current[1].execute(123); @@ -62,7 +63,7 @@ describe('useAsyncAbortable', () => { it('should abort signal in case of actions.abort call', async () => { const [spy, resolve] = getControllableAsync(); - const { result } = renderHook(() => useAsyncAbortable(spy)); + const {result} = renderHook(() => useAsyncAbortable(spy)); await act(async () => { void result.current[1].execute(123); @@ -81,7 +82,7 @@ describe('useAsyncAbortable', () => { it('should also abort signal in case of actions.reset call', async () => { const [spy, resolve] = getControllableAsync(); - const { result } = renderHook(() => useAsyncAbortable(spy, 321)); + const {result} = renderHook(() => useAsyncAbortable(spy, 321)); await act(async () => { void result.current[1].execute(123); @@ -108,7 +109,7 @@ describe('useAsyncAbortable', () => { it('should abort previous async in case new one executed before first resolution', async () => { const [spy, resolve] = getControllableAsync(); - const { result } = renderHook(() => useAsyncAbortable(spy, 321)); + const {result} = renderHook(() => useAsyncAbortable(spy, 321)); await act(async () => { void result.current[1].execute(123); diff --git a/src/useAsyncAbortable/index.ssr.test.ts b/src/useAsyncAbortable/index.ssr.test.ts index beba9193..51900796 100644 --- a/src/useAsyncAbortable/index.ssr.test.ts +++ b/src/useAsyncAbortable/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useAsyncAbortable} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useAsyncAbortable} from '../index.js'; describe('useAsyncAbortable', () => { it('should be defined', () => { diff --git a/src/useAsyncAbortable/index.ts b/src/useAsyncAbortable/index.ts index dd2c02c6..8a80f2e0 100644 --- a/src/useAsyncAbortable/index.ts +++ b/src/useAsyncAbortable/index.ts @@ -1,4 +1,4 @@ -import { useMemo, useRef } from 'react'; +import {useMemo, useRef} from 'react'; import { type AsyncState, useAsync, @@ -53,12 +53,12 @@ export function useAsyncAbortable( */ export function useAsyncAbortable( asyncFn: (...params: ArgsWithAbortSignal) => Promise, - initialValue?: Result + initialValue?: Result, ): [ - AsyncState, - UseAsyncAbortableActions, - UseAsyncAbortableMeta, -] { + AsyncState, + UseAsyncAbortableActions, + UseAsyncAbortableMeta, + ] { const abortController = useRef(); const fn = async (...args: Args): Promise => { @@ -99,6 +99,6 @@ export function useAsyncAbortable( }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []), - { ...asyncMeta, abortController: abortController.current }, + {...asyncMeta, abortController: abortController.current}, ]; } diff --git a/src/useClickOutside/index.dom.test.ts b/src/useClickOutside/index.dom.test.ts index 828a7c29..563dd8f9 100644 --- a/src/useClickOutside/index.dom.test.ts +++ b/src/useClickOutside/index.dom.test.ts @@ -1,6 +1,7 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { type MutableRefObject } from 'react'; -import { useClickOutside } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {type MutableRefObject} from 'react'; +import {describe, expect, it, vi} from 'vitest'; +import {useClickOutside} from '../index.js'; describe('useClickOutside', () => { it('should be defined', () => { @@ -8,19 +9,19 @@ describe('useClickOutside', () => { }); it('should render', () => { - const { result } = renderHook(() => { - useClickOutside({ current: null }, () => {}); + const {result} = renderHook(() => { + useClickOutside({current: null}, () => {}); }); expect(result.error).toBeUndefined(); }); it('should bind document listener on mount and unbind on unmount', () => { const div = document.createElement('div'); - const addSpy = jest.spyOn(document, 'addEventListener'); - const removeSpy = jest.spyOn(document, 'removeEventListener'); + const addSpy = vi.spyOn(document, 'addEventListener'); + const removeSpy = vi.spyOn(document, 'removeEventListener'); - const { rerender, unmount } = renderHook(() => { - useClickOutside({ current: div }, () => {}); + const {rerender, unmount} = renderHook(() => { + useClickOutside({current: div}, () => {}); }); expect(addSpy).toHaveBeenCalledTimes(2); @@ -40,11 +41,11 @@ describe('useClickOutside', () => { it('should bind any events passed as 3rd parameter', () => { const div = document.createElement('div'); - const addSpy = jest.spyOn(document, 'addEventListener'); - const removeSpy = jest.spyOn(document, 'removeEventListener'); + const addSpy = vi.spyOn(document, 'addEventListener'); + const removeSpy = vi.spyOn(document, 'removeEventListener'); - const { unmount } = renderHook(() => { - useClickOutside({ current: div }, () => {}, ['click']); + const {unmount} = renderHook(() => { + useClickOutside({current: div}, () => {}, ['click']); }); expect(addSpy).toHaveBeenCalledTimes(1); @@ -61,41 +62,41 @@ describe('useClickOutside', () => { it('should invoke callback if event target is not a child of target', () => { const div = document.createElement('div'); const div2 = document.createElement('div2'); - const spy = jest.fn(); + const spy = vi.fn(); renderHook(() => { - useClickOutside({ current: div }, spy); + useClickOutside({current: div}, spy); }); document.body.append(div, div2); - div2.dispatchEvent(new Event('mousedown', { bubbles: true })); + div2.dispatchEvent(new Event('mousedown', {bubbles: true})); expect(spy).toHaveBeenCalledTimes(1); }); it('should not execute callback if event target is a child of target', () => { const div = document.createElement('div'); const div2 = document.createElement('div2'); - const spy = jest.fn(); + const spy = vi.fn(); renderHook(() => { - useClickOutside({ current: div }, spy); + useClickOutside({current: div}, spy); }); document.body.append(div); div.append(div2); - div2.dispatchEvent(new Event('mousedown', { bubbles: true })); + div2.dispatchEvent(new Event('mousedown', {bubbles: true})); expect(spy).not.toHaveBeenCalled(); }); it('should not execute callback if target is unmounted', () => { const div = document.createElement('div'); const div2 = document.createElement('div2'); - const spy = jest.fn(); - const ref: MutableRefObject = { current: div }; + const spy = vi.fn(); + const ref: MutableRefObject = {current: div}; - const { rerender } = renderHook(() => { + const {rerender} = renderHook(() => { useClickOutside(ref, spy); }); @@ -105,7 +106,7 @@ describe('useClickOutside', () => { ref.current = null; rerender(); - div2.dispatchEvent(new Event('mousedown', { bubbles: true })); + div2.dispatchEvent(new Event('mousedown', {bubbles: true})); expect(spy).not.toHaveBeenCalled(); }); }); diff --git a/src/useClickOutside/index.ssr.test.ts b/src/useClickOutside/index.ssr.test.ts index ab28bcc2..66cd7fc3 100644 --- a/src/useClickOutside/index.ssr.test.ts +++ b/src/useClickOutside/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useClickOutside} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useClickOutside} from '../index.js'; describe('useClickOutside', () => { it('should be defined', () => { diff --git a/src/useClickOutside/index.ts b/src/useClickOutside/index.ts index bbc76354..21e45fbb 100644 --- a/src/useClickOutside/index.ts +++ b/src/useClickOutside/index.ts @@ -1,6 +1,6 @@ -import { type MutableRefObject, type RefObject, useEffect } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { off, on } from '../util/misc.js'; +import {type MutableRefObject, type RefObject, useEffect} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {off, on} from '../util/misc.js'; const DEFAULT_EVENTS = ['mousedown', 'touchstart']; @@ -15,16 +15,18 @@ const DEFAULT_EVENTS = ['mousedown', 'touchstart']; export function useClickOutside( ref: RefObject | MutableRefObject, callback: EventListener, - events: string[] = DEFAULT_EVENTS + events: string[] = DEFAULT_EVENTS, ): void { const cbRef = useSyncedRef(callback); const refRef = useSyncedRef(ref); useEffect(() => { function handler(this: HTMLElement, event: Event) { - if (!refRef.current.current) return; + if (!refRef.current.current) { + return; + } - const { target: evtTarget } = event; + const {target: evtTarget} = event; const cb = cbRef.current; if ( @@ -36,12 +38,12 @@ export function useClickOutside( } for (const name of events) { - on(document, name, handler, { passive: true }); + on(document, name, handler, {passive: true}); } return () => { for (const name of events) { - off(document, name, handler, { passive: true }); + off(document, name, handler, {passive: true}); } }; // eslint-disable-next-line react-hooks/exhaustive-deps diff --git a/src/useConditionalEffect/index.dom.test.ts b/src/useConditionalEffect/index.dom.test.ts index 38e40c6f..1e37094c 100644 --- a/src/useConditionalEffect/index.dom.test.ts +++ b/src/useConditionalEffect/index.dom.test.ts @@ -1,11 +1,12 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { type DependencyList, type EffectCallback } from 'react'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {type DependencyList, type EffectCallback} from 'react'; +import {describe, expect, it, vi} from 'vitest'; import { truthyAndArrayPredicate, truthyOrArrayPredicate, useConditionalEffect, useUpdateEffect, -} from '../../index.js'; +} from '../index.js'; describe('useConditionalEffect', () => { it('should be defined', () => { @@ -13,113 +14,113 @@ describe('useConditionalEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useConditionalEffect(() => {}, undefined, []); }); expect(result.error).toBeUndefined(); }); it('by default should invoke effect only in case all conditions are truthy', () => { - const spy = jest.fn(); - const { rerender } = renderHook( - ({ cond }) => { + const spy = vi.fn(); + const {rerender} = renderHook( + ({cond}) => { useConditionalEffect(spy, undefined, cond); }, { - initialProps: { cond: [1] as unknown[] }, - } + initialProps: {cond: [1] as unknown[]}, + }, ); expect(spy).toHaveBeenCalledTimes(1); - rerender({ cond: [0, 1, 1] }); + rerender({cond: [0, 1, 1]}); expect(spy).toHaveBeenCalledTimes(1); - rerender({ cond: [1, {}, null] }); + rerender({cond: [1, {}, null]}); expect(spy).toHaveBeenCalledTimes(1); - rerender({ cond: [true, {}, [], 25] }); + rerender({cond: [true, {}, [], 25]}); expect(spy).toHaveBeenCalledTimes(2); }); it('should not be called on mount if conditions are falsy', () => { - const spy = jest.fn(); + const spy = vi.fn(); renderHook( - ({ cond }) => { + ({cond}) => { useConditionalEffect(spy, undefined, cond); }, { - initialProps: { cond: [null] as unknown[] }, - } + initialProps: {cond: [null] as unknown[]}, + }, ); expect(spy).toHaveBeenCalledTimes(0); }); it('should invoke callback only if deps are changed and conditions match predicate', () => { - const spy = jest.fn(); - const { rerender } = renderHook( - ({ cond, deps }) => { + const spy = vi.fn(); + const {rerender} = renderHook( + ({cond, deps}) => { useConditionalEffect(spy, deps, cond); }, { - initialProps: { cond: [false] as unknown[], deps: [1] as any[] }, - } + initialProps: {cond: [false] as unknown[], deps: [1] as any[]}, + }, ); expect(spy).toHaveBeenCalledTimes(0); - rerender({ cond: [false], deps: [2] }); + rerender({cond: [false], deps: [2]}); expect(spy).toHaveBeenCalledTimes(0); - rerender({ cond: [true], deps: [2] }); + rerender({cond: [true], deps: [2]}); expect(spy).toHaveBeenCalledTimes(0); - rerender({ cond: [true], deps: [3] }); + rerender({cond: [true], deps: [3]}); expect(spy).toHaveBeenCalledTimes(1); - rerender({ cond: [true], deps: [3] }); + rerender({cond: [true], deps: [3]}); expect(spy).toHaveBeenCalledTimes(1); - rerender({ cond: [true], deps: [4] }); + rerender({cond: [true], deps: [4]}); expect(spy).toHaveBeenCalledTimes(2); - rerender({ cond: [false], deps: [5] }); + rerender({cond: [false], deps: [5]}); expect(spy).toHaveBeenCalledTimes(2); }); it('should apply custom predicate', () => { - const spy = jest.fn(); - const predicateSpy = jest.fn((conditions: any[]) => truthyOrArrayPredicate(conditions)); - const { rerender } = renderHook( - ({ cond }) => { + const spy = vi.fn(); + const predicateSpy = vi.fn((conditions: any[]) => truthyOrArrayPredicate(conditions)); + const {rerender} = renderHook( + ({cond}) => { useConditionalEffect(spy, undefined, cond, predicateSpy); }, { - initialProps: { cond: [null] as unknown[] }, - } + initialProps: {cond: [null] as unknown[]}, + }, ); expect(predicateSpy).toHaveBeenCalledTimes(1); expect(spy).toHaveBeenCalledTimes(0); - rerender({ cond: [true, {}, [], 25] }); + rerender({cond: [true, {}, [], 25]}); expect(predicateSpy).toHaveBeenCalledTimes(2); expect(spy).toHaveBeenCalledTimes(1); - rerender({ cond: [true, false, 0, null] }); + rerender({cond: [true, false, 0, null]}); expect(predicateSpy).toHaveBeenCalledTimes(3); expect(spy).toHaveBeenCalledTimes(2); - rerender({ cond: [undefined, false, 0, null] }); + rerender({cond: [undefined, false, 0, null]}); expect(predicateSpy).toHaveBeenCalledTimes(4); expect(spy).toHaveBeenCalledTimes(2); }); it('should accept custom hooks and pass extra args to it', () => { - const callbackSpy = jest.fn(); - const effectSpy = jest.fn( + const callbackSpy = vi.fn(); + const effectSpy = vi.fn( (cb: EffectCallback, deps: DependencyList | undefined, _number: number) => { useUpdateEffect(cb, deps); - } + }, ); - const { rerender } = renderHook(() => { + const {rerender} = renderHook(() => { useConditionalEffect(callbackSpy, undefined, [true], truthyAndArrayPredicate, effectSpy, 123); }); diff --git a/src/useConditionalEffect/index.ssr.test.ts b/src/useConditionalEffect/index.ssr.test.ts index 1af8ecee..a67fe1f2 100644 --- a/src/useConditionalEffect/index.ssr.test.ts +++ b/src/useConditionalEffect/index.ssr.test.ts @@ -1,5 +1,6 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useConditionalEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {describe, expect, it, vi} from 'vitest'; +import {useConditionalEffect} from '../index.js'; describe('useConditionalEffect', () => { it('should be defined', () => { @@ -7,15 +8,15 @@ describe('useConditionalEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useConditionalEffect(() => {}, undefined, []); }); expect(result.error).toBeUndefined(); }); it('should not invoke nor effect nor predicate', () => { - const spy = jest.fn(); - const predicateSpy = jest.fn((array: unknown[]) => array.some(Boolean)); + const spy = vi.fn(); + const predicateSpy = vi.fn((array: unknown[]) => array.some(Boolean)); renderHook(() => { useConditionalEffect(spy, undefined, [true], predicateSpy); }); diff --git a/src/useConditionalEffect/index.ts b/src/useConditionalEffect/index.ts index 34613605..34e2d28d 100644 --- a/src/useConditionalEffect/index.ts +++ b/src/useConditionalEffect/index.ts @@ -1,7 +1,7 @@ -import { type DependencyList, useEffect } from 'react'; -import { type ConditionsList, type ConditionsPredicate } from '../types.js'; -import { truthyAndArrayPredicate } from '../util/const.js'; -import { type EffectCallback, type EffectHook } from '../util/misc.js'; +import {type DependencyList, useEffect} from 'react'; +import {type ConditionsList, type ConditionsPredicate} from '../types.js'; +import {truthyAndArrayPredicate} from '../util/const.js'; +import {type EffectCallback, type EffectHook} from '../util/misc.js'; /** * Like `useEffect` but its callback is invoked only if all given conditions match a given predicate. @@ -42,6 +42,6 @@ export function useConditionalEffect< } }) as Callback, deps, - ...effectHookRestArgs + ...effectHookRestArgs, ); } diff --git a/src/useControlledRerenderState/index.dom.test.ts b/src/useControlledRerenderState/index.dom.test.ts index b0b4bcb8..d70cefc8 100644 --- a/src/useControlledRerenderState/index.dom.test.ts +++ b/src/useControlledRerenderState/index.dom.test.ts @@ -1,5 +1,6 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; -import {useControlledRerenderState} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useControlledRerenderState} from '../index.js'; describe('useControlledRerenderState', () => { it('should be defined', () => { diff --git a/src/useControlledRerenderState/index.ssr.test.ts b/src/useControlledRerenderState/index.ssr.test.ts index 3f30a2f3..af91bce1 100644 --- a/src/useControlledRerenderState/index.ssr.test.ts +++ b/src/useControlledRerenderState/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useControlledRerenderState} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useControlledRerenderState} from '../index.js'; describe('useControlledRerenderState', () => { it('should be defined', () => { diff --git a/src/useControlledRerenderState/index.ts b/src/useControlledRerenderState/index.ts index 73d2806c..6be44ff9 100644 --- a/src/useControlledRerenderState/index.ts +++ b/src/useControlledRerenderState/index.ts @@ -1,7 +1,7 @@ -import { type SetStateAction, useCallback, useRef } from 'react'; -import { useFirstMountState } from '../useFirstMountState/index.js'; -import { useRerender } from '../useRerender/index.js'; -import { resolveHookState } from '../util/resolveHookState.js'; +import {type SetStateAction, useCallback, useRef} from 'react'; +import {useFirstMountState} from '../useFirstMountState/index.js'; +import {useRerender} from '../useRerender/index.js'; +import {resolveHookState} from '../util/resolveHookState.js'; export type ControlledRerenderDispatch = (value: A, rerender?: boolean) => void; @@ -9,8 +9,8 @@ export function useControlledRerenderState( initialState: S | (() => S) ): [S, ControlledRerenderDispatch>]; export function useControlledRerenderState(): [ - S | undefined, - ControlledRerenderDispatch>, + S | undefined, + ControlledRerenderDispatch>, ]; /** @@ -18,10 +18,10 @@ export function useControlledRerenderState(): [ * rerender. */ export function useControlledRerenderState( - initialState?: S | (() => S) + initialState?: S | (() => S), ): [S | undefined, ControlledRerenderDispatch>] { const state = useRef( - useFirstMountState() ? resolveHookState(initialState) : undefined + useFirstMountState() ? resolveHookState(initialState) : undefined, ); const rr = useRerender(); diff --git a/src/useCookieValue/index.dom.test.ts b/src/useCookieValue/index.dom.test.ts index cfeea9f7..d022ce6e 100644 --- a/src/useCookieValue/index.dom.test.ts +++ b/src/useCookieValue/index.dom.test.ts @@ -1,7 +1,8 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; import Cookies from 'js-cookie'; -import { type UseCookieValueReturn, useCookieValue } from '../index.js'; -import SpyInstance = jest.SpyInstance; +import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {useCookieValue, type UseCookieValueReturn} from './index.js'; +import SpyInstance = vi.SpyInstance; describe('useCookieValue', () => { type CookiesGet = typeof Cookies.get; @@ -13,9 +14,9 @@ describe('useCookieValue', () => { let removeSpy: SpyInstance, Parameters>; beforeAll(() => { - getSpy = jest.spyOn(Cookies, 'get'); - setSpy = jest.spyOn(Cookies, 'set'); - removeSpy = jest.spyOn(Cookies, 'remove'); + getSpy = vi.spyOn(Cookies, 'get'); + setSpy = vi.spyOn(Cookies, 'set'); + removeSpy = vi.spyOn(Cookies, 'remove'); }); afterAll(() => { @@ -35,34 +36,33 @@ describe('useCookieValue', () => { }); it('should render', () => { - const { result } = renderHook(() => useCookieValue('react-hookz')); + const {result} = renderHook(() => useCookieValue('react-hookz')); expect(result.error).toBeUndefined(); }); it('should return cookie value on first render', () => { Cookies.set('react-hookz', 'awesome'); - const { result } = renderHook(() => useCookieValue('react-hookz')); + const {result} = renderHook(() => useCookieValue('react-hookz')); expect((result.all[0] as UseCookieValueReturn)[0]).toBe('awesome'); Cookies.remove('react-hookz'); }); it('should return undefined on first render if `initializeWithValue` set to false', () => { - const { result } = renderHook(() => - useCookieValue('react-hookz', { initializeWithValue: false }) - ); + const {result} = renderHook(() => + useCookieValue('react-hookz', {initializeWithValue: false})); expect((result.all[0] as UseCookieValueReturn)[0]).toBeUndefined(); }); it('should return null if cookie not exists', () => { - const { result } = renderHook(() => useCookieValue('react-hookz')); + const {result} = renderHook(() => useCookieValue('react-hookz')); expect(result.current[0]).toBe(null); expect(getSpy).toHaveBeenCalledWith('react-hookz'); }); it('should set the cookie value on call to `set`', () => { - const { result } = renderHook(() => useCookieValue('react-hookz')); + const {result} = renderHook(() => useCookieValue('react-hookz')); expect(result.current[0]).toBe(null); act(() => { @@ -74,7 +74,7 @@ describe('useCookieValue', () => { }); it('should remove cookie value on call to `remove`', () => { - const { result } = renderHook(() => useCookieValue('react-hookz')); + const {result} = renderHook(() => useCookieValue('react-hookz')); expect(result.current[0]).toBe(null); act(() => { @@ -91,7 +91,7 @@ describe('useCookieValue', () => { }); it('should re-fetch cookie value on call to `fetch`', () => { - const { result } = renderHook(() => useCookieValue('react-hookz')); + const {result} = renderHook(() => useCookieValue('react-hookz')); Cookies.set('react-hookz', 'rulez'); expect(result.current[0]).toBe(null); @@ -104,8 +104,8 @@ describe('useCookieValue', () => { }); it('should be synchronized between several hooks with the same key', () => { - const { result: res1 } = renderHook(() => useCookieValue('react-hookz')); - const { result: res2 } = renderHook(() => useCookieValue('react-hookz')); + const {result: res1} = renderHook(() => useCookieValue('react-hookz')); + const {result: res2} = renderHook(() => useCookieValue('react-hookz')); expect(res1.current[0]).toBe(null); expect(res2.current[0]).toBe(null); @@ -126,7 +126,7 @@ describe('useCookieValue', () => { }); it('should return stable methods', () => { - const { result, rerender } = renderHook(() => useCookieValue('react-hookz')); + const {result, rerender} = renderHook(() => useCookieValue('react-hookz')); const res1 = result.current; diff --git a/src/useCookieValue/index.ssr.test.ts b/src/useCookieValue/index.ssr.test.ts index 89c8cf50..7f56a74f 100644 --- a/src/useCookieValue/index.ssr.test.ts +++ b/src/useCookieValue/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useCookieValue} from '../index.js'; +import {describe, expect, it} from 'vitest'; +import {useCookieValue} from './index.js'; describe('useCookieValue', () => { it('should be defined', () => { diff --git a/src/useCookieValue/index.ts b/src/useCookieValue/index.ts index aae012b5..27f46954 100644 --- a/src/useCookieValue/index.ts +++ b/src/useCookieValue/index.ts @@ -1,9 +1,9 @@ import Cookies from 'js-cookie'; -import { type Dispatch, useCallback, useEffect, useState } from 'react'; -import { useFirstMountState } from '../useFirstMountState/index.js'; -import { useMountEffect } from '../useMountEffect/index.js'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { isBrowser } from '../util/const.js'; +import {type Dispatch, useCallback, useEffect, useState} from 'react'; +import {useFirstMountState} from '../useFirstMountState/index.js'; +import {useMountEffect} from '../useMountEffect/index.js'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {isBrowser} from '../util/const.js'; const cookiesSetters = new Map>>(); @@ -23,7 +23,9 @@ const unregisterSetter = (key: string, setter: Dispatch): void => // Almost impossible to test in normal situation /* istanbul ignore next */ - if (!setters) return; + if (!setters) { + return; + } setters.delete(setter); @@ -35,36 +37,40 @@ const unregisterSetter = (key: string, setter: Dispatch): void => const invokeRegisteredSetters = ( key: string, value: string | null, - skipSetter?: Dispatch + skipSetter?: Dispatch, ) => { const setters = cookiesSetters.get(key); // Almost impossible to test in normal situation /* istanbul ignore next */ - if (!setters) return; + if (!setters) { + return; + } for (const s of setters) { - if (s !== skipSetter) s(value); + if (s !== skipSetter) { + s(value); + } } }; export type UseCookieValueOptions< InitializeWithValue extends boolean | undefined = boolean | undefined, > = Cookies.CookieAttributes & - (InitializeWithValue extends undefined - ? { - /** - * Whether to initialize state with the cookie value or `undefined`. - * - * _We suggest setting this to `false` during SSR._ - * - * @default true - */ - initializeWithValue?: InitializeWithValue; - } - : { - initializeWithValue: InitializeWithValue; - }); +(InitializeWithValue extends undefined + ? { + /** + * Whether to initialize state with the cookie value or `undefined`. + * + * _We suggest setting this to `false` during SSR._ + * + * @default true + */ + initializeWithValue?: InitializeWithValue; + } + : { + initializeWithValue: InitializeWithValue; + }); export type UseCookieValueReturn = [value: V, set: (value: string) => void, remove: () => void, fetch: () => void]; @@ -82,17 +88,17 @@ export function useCookieValue(key: string, options?: UseCookieValueOptions): Us */ export function useCookieValue( key: string, - options: UseCookieValueOptions = {} + options: UseCookieValueOptions = {}, ): UseCookieValueReturn { // No need to test it, dev-only notification about 3rd party library requirement /* istanbul ignore next */ if (process.env.NODE_ENV === 'development' && Cookies === undefined) { throw new ReferenceError( - 'Dependency `js-cookies` is not installed, it is required for `useCookieValue` work.' + 'Dependency `js-cookies` is not installed, it is required for `useCookieValue` work.', ); } - let { initializeWithValue = true, ...cookiesOptions } = options; + let {initializeWithValue = true, ...cookiesOptions} = options; if (!isBrowser) { initializeWithValue = false; @@ -120,7 +126,7 @@ export function useCookieValue( const isFirstMount = useFirstMountState(); const [state, setState] = useState( - isFirstMount && initializeWithValue ? methods.current.fetchVal() : undefined + isFirstMount && initializeWithValue ? methods.current.fetchVal() : undefined, ); useMountEffect(() => { diff --git a/src/useCounter/index.dom.test.ts b/src/useCounter/index.dom.test.ts index 8649cae5..0e8654c0 100644 --- a/src/useCounter/index.dom.test.ts +++ b/src/useCounter/index.dom.test.ts @@ -1,5 +1,6 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useCounter } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it} from 'vitest'; +import {useCounter} from '../index.js'; describe('useCounter', () => { it('should be defined', () => { @@ -7,43 +8,43 @@ describe('useCounter', () => { }); it('should render', () => { - const { result } = renderHook(() => useCounter()); + const {result} = renderHook(() => useCounter()); expect(result.error).toBeUndefined(); }); it('should have default initial value of 0', () => { - const { result } = renderHook(() => useCounter()); + const {result} = renderHook(() => useCounter()); const counter = result.current[0]; expect(counter).toEqual(0); }); it('should accept custom initial value', () => { - const { result } = renderHook(() => useCounter(5)); + const {result} = renderHook(() => useCounter(5)); const counter = result.current[0]; expect(counter).toEqual(5); }); it('should accept function returning a number as initial value', () => { - const { result } = renderHook(() => useCounter(() => 5)); + const {result} = renderHook(() => useCounter(() => 5)); const counter = result.current[0]; expect(counter).toEqual(5); }); it('should force initial value to be at least the given minimum value', () => { - const { result } = renderHook(() => useCounter(0, 10, 5)); + const {result} = renderHook(() => useCounter(0, 10, 5)); const counter = result.current[0]; expect(counter).toEqual(5); }); it('should force initial value to be at most the given maximum value', () => { - const { result } = renderHook(() => useCounter(10, 5)); + const {result} = renderHook(() => useCounter(10, 5)); const counter = result.current[0]; expect(counter).toEqual(5); }); it('get returns the current counter value', () => { - const { result } = renderHook(() => useCounter(0)); - const { get } = result.current[1]; + const {result} = renderHook(() => useCounter(0)); + const {get} = result.current[1]; act(() => { expect(get()).toEqual(result.current[0]); @@ -51,8 +52,8 @@ describe('useCounter', () => { }); it('set sets the counter to any value', () => { - const { result } = renderHook(() => useCounter(0)); - const { set } = result.current[1]; + const {result} = renderHook(() => useCounter(0)); + const {set} = result.current[1]; act(() => { set(2); @@ -74,8 +75,8 @@ describe('useCounter', () => { }); it('set respects min and max parameters', () => { - const { result } = renderHook(() => useCounter(0, 10, 0)); - const { set } = result.current[1]; + const {result} = renderHook(() => useCounter(0, 10, 0)); + const {set} = result.current[1]; act(() => { set(-2); @@ -91,8 +92,8 @@ describe('useCounter', () => { }); it('inc increments the counter by 1 if no delta given', () => { - const { result } = renderHook(() => useCounter(0)); - const { inc } = result.current[1]; + const {result} = renderHook(() => useCounter(0)); + const {inc} = result.current[1]; act(() => { inc(); @@ -103,8 +104,8 @@ describe('useCounter', () => { }); it('inc increments the counter by the given delta', () => { - const { result } = renderHook(() => useCounter(0)); - const { inc } = result.current[1]; + const {result} = renderHook(() => useCounter(0)); + const {inc} = result.current[1]; act(() => { inc(2); @@ -113,15 +114,15 @@ describe('useCounter', () => { expect(result.current[0]).toEqual(2); act(() => { - inc((current) => current + 1); + inc(current => current + 1); }); expect(result.current[0]).toEqual(5); }); it('inc respects min and max parameters', () => { - const { result } = renderHook(() => useCounter(0, 5, 0)); - const { inc } = result.current[1]; + const {result} = renderHook(() => useCounter(0, 5, 0)); + const {inc} = result.current[1]; act(() => { inc(-2); @@ -137,8 +138,8 @@ describe('useCounter', () => { }); it('dec decrements the counter by 1 if no delta given', () => { - const { result } = renderHook(() => useCounter(0)); - const { dec } = result.current[1]; + const {result} = renderHook(() => useCounter(0)); + const {dec} = result.current[1]; act(() => { dec(); @@ -149,8 +150,8 @@ describe('useCounter', () => { }); it('dec decrements the counter by the given delta', () => { - const { result } = renderHook(() => useCounter(0)); - const { dec } = result.current[1]; + const {result} = renderHook(() => useCounter(0)); + const {dec} = result.current[1]; act(() => { dec(2); @@ -159,15 +160,15 @@ describe('useCounter', () => { expect(result.current[0]).toEqual(-2); act(() => { - dec((current) => current + 1); + dec(current => current + 1); }); expect(result.current[0]).toEqual(-1); }); it('dec respects min and max parameters', () => { - const { result } = renderHook(() => useCounter(0, 5, 0)); - const { dec } = result.current[1]; + const {result} = renderHook(() => useCounter(0, 5, 0)); + const {dec} = result.current[1]; act(() => { dec(2); @@ -183,8 +184,8 @@ describe('useCounter', () => { }); it('reset without arguments sets the counter to its initial value', () => { - const { result } = renderHook(() => useCounter(0)); - const { reset, inc } = result.current[1]; + const {result} = renderHook(() => useCounter(0)); + const {reset, inc} = result.current[1]; act(() => { inc(); @@ -195,8 +196,8 @@ describe('useCounter', () => { }); it('reset with argument sets the counter to its new initial value', () => { - const { result } = renderHook(() => useCounter(0)); - const { reset, inc } = result.current[1]; + const {result} = renderHook(() => useCounter(0)); + const {reset, inc} = result.current[1]; act(() => { inc(); @@ -214,8 +215,8 @@ describe('useCounter', () => { }); it('reset respects min and max parameters', () => { - const { result } = renderHook(() => useCounter(0, 10, 0)); - const { reset } = result.current[1]; + const {result} = renderHook(() => useCounter(0, 10, 0)); + const {reset} = result.current[1]; act(() => { reset(25); diff --git a/src/useCounter/index.ssr.test.ts b/src/useCounter/index.ssr.test.ts index 0409512d..b2a0deb6 100644 --- a/src/useCounter/index.ssr.test.ts +++ b/src/useCounter/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useCounter} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useCounter} from '../index.js'; describe('useCounter', () => { it('should be defined', () => { diff --git a/src/useCounter/index.ts b/src/useCounter/index.ts index ffe264a3..4ee57053 100644 --- a/src/useCounter/index.ts +++ b/src/useCounter/index.ts @@ -1,7 +1,7 @@ -import { type SetStateAction, useMemo } from 'react'; -import { useMediatedState } from '../useMediatedState/index.js'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { type InitialState, resolveHookState } from '../util/resolveHookState.js'; +import {type SetStateAction, useMemo} from 'react'; +import {useMediatedState} from '../useMediatedState/index.js'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {type InitialState, resolveHookState} from '../util/resolveHookState.js'; export type CounterActions = { /** @@ -49,7 +49,7 @@ export type CounterActions = { export function useCounter( initialValue: InitialState = 0, max?: number, - min?: number + min?: number, ): [number, CounterActions] { const [state, setState] = useMediatedState(initialValue, (v: number): number => { if (max !== undefined) { @@ -71,16 +71,16 @@ export function useCounter( get: () => stateRef.current, set: setState, dec(delta = 1) { - setState((value) => value - resolveHookState(delta, value)); + setState(value => value - resolveHookState(delta, value)); }, inc(delta = 1) { - setState((value) => value + resolveHookState(delta, value)); + setState(value => value + resolveHookState(delta, value)); }, reset(value = initialValue) { - setState((v) => resolveHookState(value, v)); + setState(v => resolveHookState(value, v)); }, }), - [initialValue, setState, stateRef] + [initialValue, setState, stateRef], ), ]; } diff --git a/src/useCustomCompareEffect/index.dom.test.ts b/src/useCustomCompareEffect/index.dom.test.ts index c9a15b01..56abe902 100644 --- a/src/useCustomCompareEffect/index.dom.test.ts +++ b/src/useCustomCompareEffect/index.dom.test.ts @@ -1,6 +1,7 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { type DependencyList } from 'react'; -import { type EffectCallback, useCustomCompareEffect, useUpdateEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {type DependencyList} from 'react'; +import {describe, expect, it, vi} from 'vitest'; +import {type EffectCallback, useCustomCompareEffect, useUpdateEffect} from '../index.js'; describe('useCustomCompareEffect', () => { it('should be defined', () => { @@ -8,14 +9,14 @@ describe('useCustomCompareEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useCustomCompareEffect(() => {}, []); }); expect(result.error).toBeUndefined(); }); it('should not call provided comparator on render', () => { - const spy = jest.fn(); + const spy = vi.fn(); renderHook(() => { useCustomCompareEffect(() => {}, [], spy, useUpdateEffect); }); @@ -23,14 +24,14 @@ describe('useCustomCompareEffect', () => { }); it('should call comparator with previous and current deps as args', () => { - const spy = jest.fn(); - const { rerender } = renderHook( - ({ deps }) => { + const spy = vi.fn(); + const {rerender} = renderHook( + ({deps}) => { useCustomCompareEffect(() => {}, deps, spy, useUpdateEffect); }, - { initialProps: { deps: [1, 2] } } + {initialProps: {deps: [1, 2]}}, ); - rerender({ deps: [1, 3] }); + rerender({deps: [1, 3]}); expect(spy).toHaveBeenCalledTimes(1); expect(spy.mock.calls[0][0]).toStrictEqual([1, 2]); @@ -38,20 +39,20 @@ describe('useCustomCompareEffect', () => { }); it('should not pass new deps to underlying effect only if comparator reported unequal deps', () => { - const spy = jest.fn(useUpdateEffect); - const { rerender } = renderHook( - ({ deps }) => { + const spy = vi.fn(useUpdateEffect); + const {rerender} = renderHook( + ({deps}) => { useCustomCompareEffect(() => {}, deps, undefined, spy); }, - { initialProps: { deps: [1, 2] } } + {initialProps: {deps: [1, 2]}}, ); - rerender({ deps: [1, 2] }); + rerender({deps: [1, 2]}); expect(spy).toHaveBeenCalledTimes(2); expect(spy.mock.calls[0][1]).toStrictEqual([1, 2]); expect(spy.mock.calls[0][1]).toBe(spy.mock.calls[1][1]); - rerender({ deps: [1, 3] }); + rerender({deps: [1, 3]}); expect(spy).toHaveBeenCalledTimes(3); expect(spy.mock.calls[2][1]).toStrictEqual([1, 3]); @@ -59,16 +60,16 @@ describe('useCustomCompareEffect', () => { }); it('should pass res argument to underlying hook', () => { - const spy = jest.fn((c: EffectCallback, d: DependencyList, _n: number) => { + const spy = vi.fn((c: EffectCallback, d: DependencyList, _n: number) => { useUpdateEffect(c, d); }); renderHook( - ({ deps }) => { + ({deps}) => { useCustomCompareEffect(() => {}, deps, undefined, spy, 123); }, { - initialProps: { deps: [1, 2] }, - } + initialProps: {deps: [1, 2]}, + }, ); expect(spy.mock.calls[0][2]).toBe(123); diff --git a/src/useCustomCompareEffect/index.ssr.test.ts b/src/useCustomCompareEffect/index.ssr.test.ts index dba09483..3a1dd90f 100644 --- a/src/useCustomCompareEffect/index.ssr.test.ts +++ b/src/useCustomCompareEffect/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useCustomCompareEffect} from '../../index.js'; +import {describe, expect, it, vi} from 'vitest'; +import {useCustomCompareEffect} from '../index.js'; describe('useCustomCompareEffect', () => { it('should be defined', () => { @@ -14,7 +15,7 @@ describe('useCustomCompareEffect', () => { }); it('should not invoke comparator', () => { - const spy = jest.fn(); + const spy = vi.fn(); renderHook(() => { useCustomCompareEffect(() => {}, [], spy); }); diff --git a/src/useCustomCompareEffect/index.ts b/src/useCustomCompareEffect/index.ts index 32fe8edc..fe128ff3 100644 --- a/src/useCustomCompareEffect/index.ts +++ b/src/useCustomCompareEffect/index.ts @@ -1,7 +1,7 @@ -import { type DependencyList, useEffect, useRef } from 'react'; -import { type DependenciesComparator } from '../types.js'; -import { isBrowser } from '../util/const.js'; -import { basicDepsComparator, type EffectCallback, type EffectHook } from '../util/misc.js'; +import {type DependencyList, useEffect, useRef} from 'react'; +import {type DependenciesComparator} from '../types.js'; +import {isBrowser} from '../util/const.js'; +import {basicDepsComparator, type EffectCallback, type EffectHook} from '../util/misc.js'; /** * Like `useEffect` but uses provided comparator function to validate dependency changes. diff --git a/src/useCustomCompareMemo/index.dom.test.ts b/src/useCustomCompareMemo/index.dom.test.ts index e8e07b3a..7442ec71 100644 --- a/src/useCustomCompareMemo/index.dom.test.ts +++ b/src/useCustomCompareMemo/index.dom.test.ts @@ -1,7 +1,8 @@ -import { renderHook } from '@testing-library/react-hooks'; -import { useCustomCompareMemo } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks'; +import {describe, expect, it} from 'vitest'; +import {useCustomCompareMemo} from '../index.js'; -const mockUser = { name: 'John' }; +const mockUser = {name: 'John'}; type User = typeof mockUser; @@ -11,52 +12,51 @@ describe('useCustomCompareMemo', () => { }); it('should render', () => { - const { result } = renderHook(() => + const {result} = renderHook(() => useCustomCompareMemo( () => mockUser, [], - () => true - ) - ); + () => true, + )); expect(result.error).toBeUndefined(); }); - it(`should't invoke factory function on each rerender`, () => { - type Props = { user: User }; - const { result, rerender } = renderHook( - ({ user }: Props) => + it('should\'t invoke factory function on each rerender', () => { + type Props = {user: User}; + const {result, rerender} = renderHook( + ({user}: Props) => useCustomCompareMemo( () => user, [user], - () => true + () => true, ), - { initialProps: { user: mockUser } } + {initialProps: {user: mockUser}}, ); - rerender({ user: { name: 'Jack' } }); + rerender({user: {name: 'Jack'}}); expect(result.current).toBe(mockUser); }); it('should invoke factory function when user name is not the same', () => { - type Props = { user: User }; - const { result, rerender } = renderHook( - ({ user }: Props) => + type Props = {user: User}; + const {result, rerender} = renderHook( + ({user}: Props) => useCustomCompareMemo( () => user, [user], - (savedDeps, deps) => savedDeps[0].name === deps[0].name + (savedDeps, deps) => savedDeps[0].name === deps[0].name, ), - { initialProps: { user: mockUser } } + {initialProps: {user: mockUser}}, ); - rerender({ user: { name: 'John' } }); + rerender({user: {name: 'John'}}); expect(result.current).toBe(mockUser); - const newUser = { name: 'Mike' }; - rerender({ user: newUser }); + const newUser = {name: 'Mike'}; + rerender({user: newUser}); expect(result.current).toBe(newUser); }); diff --git a/src/useCustomCompareMemo/index.ssr.test.ts b/src/useCustomCompareMemo/index.ssr.test.ts index ab4072ee..b48c5df0 100644 --- a/src/useCustomCompareMemo/index.ssr.test.ts +++ b/src/useCustomCompareMemo/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useCustomCompareMemo} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useCustomCompareMemo} from '../index.js'; describe('useCustomCompareMemo', () => { it('should be defined', () => { diff --git a/src/useCustomCompareMemo/index.ts b/src/useCustomCompareMemo/index.ts index 6f6152ec..cbaf9708 100644 --- a/src/useCustomCompareMemo/index.ts +++ b/src/useCustomCompareMemo/index.ts @@ -1,5 +1,5 @@ -import { useMemo, useRef, type DependencyList } from 'react'; -import { type DependenciesComparator } from '../types.js'; +import {type DependencyList, useMemo, useRef} from 'react'; +import {type DependenciesComparator} from '../types.js'; /** * Like useMemo but uses provided comparator function to validate dependency changes. @@ -12,7 +12,7 @@ import { type DependenciesComparator } from '../types.js'; export const useCustomCompareMemo = ( factory: () => T, deps: Deps, - comparator: DependenciesComparator + comparator: DependenciesComparator, ): T => { const dependencies = useRef(); diff --git a/src/useDebouncedCallback/index.dom.test.ts b/src/useDebouncedCallback/index.dom.test.ts index 3a480f8f..64223d1a 100644 --- a/src/useDebouncedCallback/index.dom.test.ts +++ b/src/useDebouncedCallback/index.dom.test.ts @@ -1,19 +1,20 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useDebouncedCallback } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useDebouncedCallback} from '../index.js'; function testFn(_a: any, _b: any, _c: any) {} describe('useDebouncedCallback', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { @@ -21,72 +22,71 @@ describe('useDebouncedCallback', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useDebouncedCallback(() => {}, [], 200); }); expect(result.error).toBeUndefined(); }); it('should return function same length and wrapped name', () => { - let { result } = renderHook(() => - useDebouncedCallback((_a: any, _b: any, _c: any) => {}, [], 200) - ); + let {result} = renderHook(() => + useDebouncedCallback((_a: any, _b: any, _c: any) => {}, [], 200)); expect(result.current.length).toBe(3); - expect(result.current.name).toBe(`anonymous__debounced__200`); + expect(result.current.name).toBe('anonymous__debounced__200'); result = renderHook(() => useDebouncedCallback(testFn, [], 100)).result; expect(result.current.length).toBe(3); - expect(result.current.name).toBe(`testFn__debounced__100`); + expect(result.current.name).toBe('testFn__debounced__100'); }); it('should return new callback if delay is changed', () => { - const { result, rerender } = renderHook( - ({ delay }) => useDebouncedCallback(() => {}, [], delay), + const {result, rerender} = renderHook( + ({delay}) => useDebouncedCallback(() => {}, [], delay), { - initialProps: { delay: 200 }, - } + initialProps: {delay: 200}, + }, ); const cb1 = result.current; - rerender({ delay: 123 }); + rerender({delay: 123}); expect(cb1).not.toBe(result.current); }); it('should run given callback only after specified delay since last call', () => { - const cb = jest.fn(); - const { result } = renderHook(() => useDebouncedCallback(cb, [], 200)); + const cb = vi.fn(); + const {result} = renderHook(() => useDebouncedCallback(cb, [], 200)); result.current(); expect(cb).not.toHaveBeenCalled(); - jest.advanceTimersByTime(100); + vi.advanceTimersByTime(100); result.current(); - jest.advanceTimersByTime(199); + vi.advanceTimersByTime(199); expect(cb).not.toHaveBeenCalled(); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(cb).toHaveBeenCalledTimes(1); }); it('should pass parameters to callback', () => { - const cb = jest.fn((_a: number, _c: string) => {}); - const { result } = renderHook(() => useDebouncedCallback(cb, [], 200)); + const cb = vi.fn((_a: number, _c: string) => {}); + const {result} = renderHook(() => useDebouncedCallback(cb, [], 200)); result.current(1, 'abc'); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); expect(cb).toHaveBeenCalledWith(1, 'abc'); }); it('should cancel previously scheduled call even if parameters changed', () => { - const cb1 = jest.fn(() => {}); - const cb2 = jest.fn(() => {}); + const cb1 = vi.fn(() => {}); + const cb2 = vi.fn(() => {}); - const { result, rerender } = renderHook( - ({ i }) => + const {result, rerender} = renderHook( + ({i}) => useDebouncedCallback( () => { if (i === 1) { @@ -96,88 +96,88 @@ describe('useDebouncedCallback', () => { } }, [i], - 200 + 200, ), - { initialProps: { i: 1 } } + {initialProps: {i: 1}}, ); result.current(); - jest.advanceTimersByTime(100); + vi.advanceTimersByTime(100); - rerender({ i: 2 }); + rerender({i: 2}); result.current(); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); expect(cb1).not.toHaveBeenCalled(); expect(cb2).toHaveBeenCalledTimes(1); }); it('should cancel debounce execution after component unmount', () => { - const cb = jest.fn(); + const cb = vi.fn(); - const { result, unmount } = renderHook(() => useDebouncedCallback(cb, [], 150, 200)); + const {result, unmount} = renderHook(() => useDebouncedCallback(cb, [], 150, 200)); result.current(); expect(cb).not.toHaveBeenCalled(); - jest.advanceTimersByTime(149); + vi.advanceTimersByTime(149); expect(cb).not.toHaveBeenCalled(); unmount(); - jest.advanceTimersByTime(100); + vi.advanceTimersByTime(100); expect(cb).not.toHaveBeenCalled(); }); it('should force execute callback after maxWait milliseconds', () => { - const cb = jest.fn(); + const cb = vi.fn(); - const { result } = renderHook(() => useDebouncedCallback(cb, [], 150, 200)); + const {result} = renderHook(() => useDebouncedCallback(cb, [], 150, 200)); result.current(); expect(cb).not.toHaveBeenCalled(); - jest.advanceTimersByTime(149); + vi.advanceTimersByTime(149); result.current(); expect(cb).not.toHaveBeenCalled(); - jest.advanceTimersByTime(50); + vi.advanceTimersByTime(50); expect(cb).not.toHaveBeenCalled(); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(cb).toHaveBeenCalledTimes(1); }); it('should not execute callback twice if maxWait equals delay', () => { - const cb = jest.fn(); + const cb = vi.fn(); - const { result } = renderHook(() => useDebouncedCallback(cb, [], 200, 200)); + const {result} = renderHook(() => useDebouncedCallback(cb, [], 200, 200)); result.current(); expect(cb).not.toHaveBeenCalled(); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); expect(cb).toHaveBeenCalledTimes(1); }); it('should call updated function only when deps changed', () => { - const cb = jest.fn(); + const cb = vi.fn(); - const { result, rerender } = renderHook( - ({ cb, deps }: { cb: () => void; deps: any[] }) => useDebouncedCallback(cb, deps, 200, 200), + const {result, rerender} = renderHook( + ({cb, deps}: {cb: () => void; deps: any[]}) => useDebouncedCallback(cb, deps, 200, 200), { initialProps: { cb() {}, deps: [0], }, - } + }, ); result.current(); - rerender({ cb, deps: [0] }); + rerender({cb, deps: [0]}); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); expect(cb).toHaveBeenCalledTimes(0); result.current(); - rerender({ cb, deps: [1] }); + rerender({cb, deps: [1]}); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); expect(cb).toHaveBeenCalledTimes(1); }); }); diff --git a/src/useDebouncedCallback/index.ssr.test.ts b/src/useDebouncedCallback/index.ssr.test.ts index 75b2e23a..92699f3d 100644 --- a/src/useDebouncedCallback/index.ssr.test.ts +++ b/src/useDebouncedCallback/index.ssr.test.ts @@ -1,17 +1,18 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useDebouncedCallback } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useDebouncedCallback} from '../index.js'; describe('useDebouncedCallback', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { @@ -19,35 +20,35 @@ describe('useDebouncedCallback', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useDebouncedCallback(() => {}, [], 200); }); expect(result.error).toBeUndefined(); }); it('should run given callback only after specified delay since last call', () => { - const cb = jest.fn(); - const { result } = renderHook(() => useDebouncedCallback(cb, [], 200)); + const cb = vi.fn(); + const {result} = renderHook(() => useDebouncedCallback(cb, [], 200)); result.current(); expect(cb).not.toHaveBeenCalled(); - jest.advanceTimersByTime(100); + vi.advanceTimersByTime(100); result.current(); - jest.advanceTimersByTime(199); + vi.advanceTimersByTime(199); expect(cb).not.toHaveBeenCalled(); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(cb).toHaveBeenCalledTimes(1); }); it('should pass parameters to callback', () => { - const cb = jest.fn((_a: number, _c: string) => {}); - const { result } = renderHook(() => useDebouncedCallback(cb, [], 200)); + const cb = vi.fn((_a: number, _c: string) => {}); + const {result} = renderHook(() => useDebouncedCallback(cb, [], 200)); result.current(1, 'abc'); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); expect(cb).toHaveBeenCalledWith(1, 'abc'); }); }); diff --git a/src/useDebouncedCallback/index.ts b/src/useDebouncedCallback/index.ts index 60b3fd87..0636a85c 100644 --- a/src/useDebouncedCallback/index.ts +++ b/src/useDebouncedCallback/index.ts @@ -1,5 +1,5 @@ -import { type DependencyList, useEffect, useMemo, useRef } from 'react'; -import { useUnmountEffect } from '../useUnmountEffect/index.js'; +import {type DependencyList, useEffect, useMemo, useRef} from 'react'; +import {useUnmountEffect} from '../useUnmountEffect/index.js'; export type DebouncedFunction any> = ( this: ThisParameterType, @@ -20,12 +20,12 @@ export function useDebouncedCallback any>( callback: Fn, deps: DependencyList, delay: number, - maxWait = 0 + maxWait = 0, ): DebouncedFunction { const timeout = useRef>(); const waitTimeout = useRef>(); const cb = useRef(callback); - const lastCall = useRef<{ args: Parameters; this: ThisParameterType }>(); + const lastCall = useRef<{args: Parameters; this: ThisParameterType}>(); const clear = () => { if (timeout.current) { @@ -53,7 +53,9 @@ export function useDebouncedCallback any>( // Barely possible to test this line /* istanbul ignore next */ - if (!lastCall.current) return; + if (!lastCall.current) { + return; + } const context = lastCall.current; lastCall.current = undefined; @@ -66,7 +68,7 @@ export function useDebouncedCallback any>( clearTimeout(timeout.current); } - lastCall.current = { args, this: this }; + lastCall.current = {args, this: this}; // Plan regular execution timeout.current = setTimeout(execute, delay); @@ -78,8 +80,8 @@ export function useDebouncedCallback any>( } as DebouncedFunction; Object.defineProperties(wrapped, { - length: { value: callback.length }, - name: { value: `${callback.name || 'anonymous'}__debounced__${delay}` }, + length: {value: callback.length}, + name: {value: `${callback.name || 'anonymous'}__debounced__${delay}`}, }); return wrapped; diff --git a/src/useDebouncedEffect/index.dom.test.ts b/src/useDebouncedEffect/index.dom.test.ts index 6f4f6e81..483eca8b 100644 --- a/src/useDebouncedEffect/index.dom.test.ts +++ b/src/useDebouncedEffect/index.dom.test.ts @@ -1,17 +1,18 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {useDebouncedEffect} from '../../index.js'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useDebouncedEffect} from '../index.js'; describe('useDebouncedEffect', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { @@ -26,17 +27,17 @@ describe('useDebouncedEffect', () => { }); it('should call effect only after delay', () => { - const spy = jest.fn(); + const spy = vi.fn(); renderHook(() => { useDebouncedEffect(spy, [], 200); }); expect(spy).not.toHaveBeenCalled(); - jest.advanceTimersByTime(199); + vi.advanceTimersByTime(199); expect(spy).not.toHaveBeenCalled(); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy).toHaveBeenCalledTimes(1); }); }); diff --git a/src/useDebouncedEffect/index.ssr.test.ts b/src/useDebouncedEffect/index.ssr.test.ts index c11536a0..3e2b1b4a 100644 --- a/src/useDebouncedEffect/index.ssr.test.ts +++ b/src/useDebouncedEffect/index.ssr.test.ts @@ -1,17 +1,18 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useDebouncedEffect} from '../../index.js'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useDebouncedEffect} from '../index.js'; describe('useDebouncedEffect', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { diff --git a/src/useDebouncedEffect/index.ts b/src/useDebouncedEffect/index.ts index 63cd3567..c283ab9c 100644 --- a/src/useDebouncedEffect/index.ts +++ b/src/useDebouncedEffect/index.ts @@ -1,5 +1,5 @@ -import { type DependencyList, useEffect } from 'react'; -import { useDebouncedCallback } from '../useDebouncedCallback/index.js'; +import {type DependencyList, useEffect} from 'react'; +import {useDebouncedCallback} from '../useDebouncedCallback/index.js'; /** * Like `useEffect`, but the passed function is debounced. @@ -15,7 +15,7 @@ export function useDebouncedEffect( callback: (...args: any[]) => void, deps: DependencyList, delay: number, - maxWait = 0 + maxWait = 0, ): void { // eslint-disable-next-line react-hooks/exhaustive-deps useEffect(useDebouncedCallback(callback, deps, delay, maxWait), deps); diff --git a/src/useDebouncedState/index.dom.test.ts b/src/useDebouncedState/index.dom.test.ts index 5a8e3423..15d8f575 100644 --- a/src/useDebouncedState/index.dom.test.ts +++ b/src/useDebouncedState/index.dom.test.ts @@ -1,17 +1,18 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; -import {useDebouncedState} from '../../index.js'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useDebouncedState} from '../index.js'; describe('useDebouncedState', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { @@ -24,18 +25,18 @@ describe('useDebouncedState', () => { }); it('should debounce state set', () => { - const {result} = renderHook(() => useDebouncedState < string | undefined > (undefined, 200)); + const {result} = renderHook(() => useDebouncedState(undefined, 200)); expect(result.current[0]).toBe(undefined); result.current[1]('Hello world!'); act(() => { - jest.advanceTimersByTime(199); + vi.advanceTimersByTime(199); }); expect(result.current[0]).toBe(undefined); act(() => { - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); }); expect(result.current[0]).toBe('Hello world!'); }); diff --git a/src/useDebouncedState/index.ssr.test.ts b/src/useDebouncedState/index.ssr.test.ts index a82a246f..96b91cc4 100644 --- a/src/useDebouncedState/index.ssr.test.ts +++ b/src/useDebouncedState/index.ssr.test.ts @@ -1,17 +1,18 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useDebouncedState} from '../../index.js'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useDebouncedState} from '../index.js'; describe('useDebouncedState', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { diff --git a/src/useDebouncedState/index.ts b/src/useDebouncedState/index.ts index fbc8fc0a..9069621e 100644 --- a/src/useDebouncedState/index.ts +++ b/src/useDebouncedState/index.ts @@ -1,5 +1,5 @@ -import { type Dispatch, type SetStateAction, useState } from 'react'; -import { useDebouncedCallback } from '../useDebouncedCallback/index.js'; +import {type Dispatch, type SetStateAction, useState} from 'react'; +import {useDebouncedCallback} from '../useDebouncedCallback/index.js'; /** * Like `useState` but its state setter is debounced. @@ -12,7 +12,7 @@ import { useDebouncedCallback } from '../useDebouncedCallback/index.js'; export function useDebouncedState( initialState: S | (() => S), delay: number, - maxWait = 0 + maxWait = 0, ): [S, Dispatch>] { const [state, setState] = useState(initialState); diff --git a/src/useDeepCompareEffect/index.dom.test.ts b/src/useDeepCompareEffect/index.dom.test.ts index fec2c5fd..39cb0007 100644 --- a/src/useDeepCompareEffect/index.dom.test.ts +++ b/src/useDeepCompareEffect/index.dom.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {useDeepCompareEffect} from '../../index.js'; +import {describe, expect, it, vi} from 'vitest'; +import {useDeepCompareEffect} from '../index.js'; describe('useDeepCompareEffect', () => { it('should be defined', () => { @@ -14,7 +15,7 @@ describe('useDeepCompareEffect', () => { }); it('should run only in case deps are changed', () => { - const spy = jest.fn(); + const spy = vi.fn(); const {rerender} = renderHook( ({deps}) => { useDeepCompareEffect(spy, deps); diff --git a/src/useDeepCompareEffect/index.ssr.test.ts b/src/useDeepCompareEffect/index.ssr.test.ts index d3410b21..14e4fa5b 100644 --- a/src/useDeepCompareEffect/index.ssr.test.ts +++ b/src/useDeepCompareEffect/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useDeepCompareEffect} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useDeepCompareEffect} from '../index.js'; describe('useDeepCompareEffect', () => { it('should be defined', () => { diff --git a/src/useDeepCompareEffect/index.ts b/src/useDeepCompareEffect/index.ts index 0275e66d..d95c5f27 100644 --- a/src/useDeepCompareEffect/index.ts +++ b/src/useDeepCompareEffect/index.ts @@ -1,7 +1,7 @@ -import { isEqual } from '@react-hookz/deep-equal'; -import { type DependencyList, useEffect } from 'react'; -import { useCustomCompareEffect } from '../useCustomCompareEffect/index.js'; -import { type EffectCallback, type EffectHook } from '../util/misc.js'; +import {isEqual} from '@react-hookz/deep-equal'; +import {type DependencyList, useEffect} from 'react'; +import {useCustomCompareEffect} from '../useCustomCompareEffect/index.js'; +import {type EffectCallback, type EffectHook} from '../util/misc.js'; /** * Like `useEffect`, but uses `@react-hookz/deep-equal` comparator function to validate deep diff --git a/src/useDeepCompareMemo/index.dom.test.ts b/src/useDeepCompareMemo/index.dom.test.ts index a2664fb7..e5e619a6 100644 --- a/src/useDeepCompareMemo/index.dom.test.ts +++ b/src/useDeepCompareMemo/index.dom.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {useDeepCompareMemo} from '../../index.js'; +import {describe, expect, it, vi} from 'vitest'; +import {useDeepCompareMemo} from '../index.js'; describe('useDeepCompareMemo', () => { it('should be defined', () => { @@ -14,8 +15,8 @@ describe('useDeepCompareMemo', () => { }); it('should run only if dependencies change, defined by deep comparison', () => { - const spy = jest.fn(); - // eslint-disable-next-line @typescript-eslint/no-unsafe-return + const spy = vi.fn(); + const {rerender} = renderHook(({deps}) => useDeepCompareMemo(spy, deps), { initialProps: {deps: [{foo: 'bar'}]}, }); diff --git a/src/useDeepCompareMemo/index.ssr.test.ts b/src/useDeepCompareMemo/index.ssr.test.ts index 1ee6fa44..e4bd28aa 100644 --- a/src/useDeepCompareMemo/index.ssr.test.ts +++ b/src/useDeepCompareMemo/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useDeepCompareMemo} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useDeepCompareMemo} from '../index.js'; describe('useDeepCompareMemo', () => { it('should be defined', () => { diff --git a/src/useDeepCompareMemo/index.ts b/src/useDeepCompareMemo/index.ts index 1175707b..86af2f5b 100644 --- a/src/useDeepCompareMemo/index.ts +++ b/src/useDeepCompareMemo/index.ts @@ -1,6 +1,6 @@ -import { isEqual } from '@react-hookz/deep-equal'; -import { type DependencyList } from 'react'; -import { useCustomCompareMemo } from '../useCustomCompareMemo/index.js'; +import {isEqual} from '@react-hookz/deep-equal'; +import {type DependencyList} from 'react'; +import {useCustomCompareMemo} from '../useCustomCompareMemo/index.js'; /** * Like useMemo but validates dependency changes using deep equality check instead of reference check. diff --git a/src/useDocumentVisibility/index.dom.test.ts b/src/useDocumentVisibility/index.dom.test.ts index a63a6427..90b11790 100644 --- a/src/useDocumentVisibility/index.dom.test.ts +++ b/src/useDocumentVisibility/index.dom.test.ts @@ -1,5 +1,6 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; -import {useDocumentVisibility} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useDocumentVisibility} from '../index.js'; describe('useDocumentVisibility', () => { it('should be defined', () => { diff --git a/src/useDocumentVisibility/index.ssr.test.ts b/src/useDocumentVisibility/index.ssr.test.ts index ad21aa61..8affd2ba 100644 --- a/src/useDocumentVisibility/index.ssr.test.ts +++ b/src/useDocumentVisibility/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useDocumentVisibility} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useDocumentVisibility} from '../index.js'; describe('useDocumentVisibility', () => { it('should be defined', () => { diff --git a/src/useDocumentVisibility/index.ts b/src/useDocumentVisibility/index.ts index 15a6f8eb..c8377c4d 100644 --- a/src/useDocumentVisibility/index.ts +++ b/src/useDocumentVisibility/index.ts @@ -1,7 +1,7 @@ -import { useState } from 'react'; -import { useEventListener } from '../useEventListener/index.js'; -import { useMountEffect } from '../useMountEffect/index.js'; -import { isBrowser } from '../util/const.js'; +import {useState} from 'react'; +import {useEventListener} from '../useEventListener/index.js'; +import {useMountEffect} from '../useMountEffect/index.js'; +import {isBrowser} from '../util/const.js'; const isDocumentVisible = () => document.visibilityState === 'visible'; @@ -15,7 +15,7 @@ export function useDocumentVisibility(initializeWithValue?: true): boolean; */ export function useDocumentVisibility(initializeWithValue = true): boolean | undefined { const [isVisible, setIsVisible] = useState( - isBrowser && initializeWithValue ? isDocumentVisible() : undefined + isBrowser && initializeWithValue ? isDocumentVisible() : undefined, ); useMountEffect(() => { diff --git a/src/useEventListener/index.dom.test.ts b/src/useEventListener/index.dom.test.ts index e246da68..1c71e093 100644 --- a/src/useEventListener/index.dom.test.ts +++ b/src/useEventListener/index.dom.test.ts @@ -1,5 +1,6 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useEventListener } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {useEventListener} from '../index.js'; describe('useEventListener', () => { it('should be defined', () => { @@ -7,7 +8,7 @@ describe('useEventListener', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useEventListener(null, '', () => {}); }); expect(result.error).toBeUndefined(); @@ -15,11 +16,11 @@ describe('useEventListener', () => { it('should bind listener on mount and unbind on unmount', () => { const div = document.createElement('div'); - const addSpy = jest.spyOn(div, 'addEventListener'); - const removeSpy = jest.spyOn(div, 'removeEventListener'); + const addSpy = vi.spyOn(div, 'addEventListener'); + const removeSpy = vi.spyOn(div, 'removeEventListener'); - const { rerender, unmount } = renderHook(() => { - useEventListener(div, 'resize', () => {}, { passive: true }); + const {rerender, unmount} = renderHook(() => { + useEventListener(div, 'resize', () => {}, {passive: true}); }); expect(addSpy).toHaveBeenCalledTimes(1); @@ -36,16 +37,16 @@ describe('useEventListener', () => { it('should work with react refs', () => { const div = document.createElement('div'); - const addSpy = jest.spyOn(div, 'addEventListener'); - const removeSpy = jest.spyOn(div, 'removeEventListener'); + const addSpy = vi.spyOn(div, 'addEventListener'); + const removeSpy = vi.spyOn(div, 'removeEventListener'); - const ref = { current: div }; - const { rerender, unmount } = renderHook(() => { - useEventListener(ref, 'resize', () => {}, { passive: true }); + const ref = {current: div}; + const {rerender, unmount} = renderHook(() => { + useEventListener(ref, 'resize', () => {}, {passive: true}); }); expect(addSpy).toHaveBeenCalledTimes(1); - expect(addSpy.mock.calls[0][2]).toStrictEqual({ passive: true }); + expect(addSpy.mock.calls[0][2]).toStrictEqual({passive: true}); expect(removeSpy).toHaveBeenCalledTimes(0); rerender(); @@ -60,13 +61,13 @@ describe('useEventListener', () => { it('should invoke provided function on event trigger with proper context', () => { const div = document.createElement('div'); let context: any; - const spy = jest.fn(function (this: any) { + const spy = vi.fn(function (this: any) { // eslint-disable-next-line @typescript-eslint/no-this-alias,@typescript-eslint/no-unsafe-assignment,unicorn/no-this-assignment context = this; }); renderHook(() => { - useEventListener(div, 'resize', spy, { passive: true }); + useEventListener(div, 'resize', spy, {passive: true}); }); const evt = new Event('resize'); @@ -79,13 +80,13 @@ describe('useEventListener', () => { it('should properly handle event listener objects', () => { const div = document.createElement('div'); let context: any; - const spy = jest.fn(function (this: any) { + const spy = vi.fn(function (this: any) { // eslint-disable-next-line @typescript-eslint/no-this-alias,@typescript-eslint/no-unsafe-assignment,unicorn/no-this-assignment context = this; }); renderHook(() => { - useEventListener(div, 'resize', { handleEvent: spy }, { passive: true }); + useEventListener(div, 'resize', {handleEvent: spy}, {passive: true}); }); const evt = new Event('resize'); diff --git a/src/useEventListener/index.ssr.test.ts b/src/useEventListener/index.ssr.test.ts index d54818b0..5ebeb215 100644 --- a/src/useEventListener/index.ssr.test.ts +++ b/src/useEventListener/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useEventListener} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useEventListener} from '../index.js'; describe('useEventListener', () => { it('should be defined', () => { diff --git a/src/useEventListener/index.ts b/src/useEventListener/index.ts index a3d08921..df8f04b0 100644 --- a/src/useEventListener/index.ts +++ b/src/useEventListener/index.ts @@ -1,7 +1,7 @@ -import { type RefObject, useEffect, useMemo } from 'react'; -import { useIsMounted } from '../useIsMounted/index.js'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { hasOwnProperty, off, on } from '../util/misc.js'; +import {type RefObject, useEffect, useMemo} from 'react'; +import {useIsMounted} from '../useIsMounted/index.js'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {hasOwnProperty, off, on} from '../util/misc.js'; /** * An HTML element or ref object containing an HTML element. @@ -22,15 +22,17 @@ export function useEventListener( const listenerRef = useSyncedRef(params[1]); const eventListener = useMemo( () => - // As some event listeners designed to be used through `this` - // it is better to make listener a conventional function as it - // infers call context + // As some event listeners designed to be used through `this` + // it is better to make listener a conventional function as it + // infers call context function (this: T, ...args) { // Normally, such situation should not happen, but better to // have back covered /* istanbul ignore next */ - if (!isMounted()) return; + if (!isMounted()) { + return; + } // We dont care if non-listener provided, simply dont do anything /* istanbul ignore else */ @@ -42,12 +44,14 @@ export function useEventListener( }, // eslint-disable-next-line react-hooks/exhaustive-deps - [] + [], ); useEffect(() => { const tgt = isRefObject(target) ? target.current : target; - if (!tgt) return; + if (!tgt) { + return; + } const restParams: unknown[] = params.slice(2); diff --git a/src/useFirstMountState/index.dom.test.ts b/src/useFirstMountState/index.dom.test.ts index dffad4d4..46412b18 100644 --- a/src/useFirstMountState/index.dom.test.ts +++ b/src/useFirstMountState/index.dom.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {useFirstMountState} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useFirstMountState} from '../index.js'; describe('useFirstMountState', () => { it('should return true on first render', () => { diff --git a/src/useFirstMountState/index.ssr.test.ts b/src/useFirstMountState/index.ssr.test.ts index 27bffe7d..0c8882d4 100644 --- a/src/useFirstMountState/index.ssr.test.ts +++ b/src/useFirstMountState/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useFirstMountState} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useFirstMountState} from '../index.js'; describe('useFirstMountState', () => { it('should return true on first render', () => { diff --git a/src/useFirstMountState/index.ts b/src/useFirstMountState/index.ts index 57c39ba5..0117b5ef 100644 --- a/src/useFirstMountState/index.ts +++ b/src/useFirstMountState/index.ts @@ -1,4 +1,4 @@ -import { useEffect, useRef } from 'react'; +import {useEffect, useRef} from 'react'; /** * Returns a boolean that is `true` only on first render. diff --git a/src/useFunctionalState/index.dom.test.ts b/src/useFunctionalState/index.dom.test.ts index 9ec64fa8..298e00a3 100644 --- a/src/useFunctionalState/index.dom.test.ts +++ b/src/useFunctionalState/index.dom.test.ts @@ -1,5 +1,6 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; -import {useFunctionalState} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useFunctionalState} from '../index.js'; describe('useFunctionalState', () => { it('should be defined', () => { diff --git a/src/useFunctionalState/index.ssr.test.ts b/src/useFunctionalState/index.ssr.test.ts index 2417cac9..85b037d8 100644 --- a/src/useFunctionalState/index.ssr.test.ts +++ b/src/useFunctionalState/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useFunctionalState} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useFunctionalState} from '../index.js'; describe('useFunctionalState', () => { it('should be defined', () => { diff --git a/src/useFunctionalState/index.ts b/src/useFunctionalState/index.ts index 96e82819..07e41022 100644 --- a/src/useFunctionalState/index.ts +++ b/src/useFunctionalState/index.ts @@ -1,5 +1,5 @@ -import { type Dispatch, type SetStateAction, useCallback, useState } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; +import {type Dispatch, type SetStateAction, useCallback, useState} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; export function useFunctionalState( initialState: S | (() => S) @@ -13,7 +13,7 @@ export function useFunctionalState(): [ * Like `useState` but instead of raw state, state getter returned. */ export function useFunctionalState( - initialState?: S | (() => S) + initialState?: S | (() => S), ): [() => S | undefined, Dispatch>] { const [state, setState] = useState(initialState); const stateRef = useSyncedRef(state); diff --git a/src/useHookableRef/index.dom.test.ts b/src/useHookableRef/index.dom.test.ts index a55cd6b5..5afcd945 100644 --- a/src/useHookableRef/index.dom.test.ts +++ b/src/useHookableRef/index.dom.test.ts @@ -1,5 +1,6 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useHookableRef } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {useHookableRef} from '../index.js'; describe('useHookableRef', () => { it('should be defined', () => { @@ -7,17 +8,17 @@ describe('useHookableRef', () => { }); it('should render', () => { - const { result } = renderHook(() => useHookableRef()); + const {result} = renderHook(() => useHookableRef()); expect(result.error).toBeUndefined(); }); it('should return ref object with initial value', () => { - const { result } = renderHook(() => useHookableRef(123)); - expect(result.current).toEqual({ current: 123 }); + const {result} = renderHook(() => useHookableRef(123)); + expect(result.current).toEqual({current: 123}); }); it('should persist same reference between re-renders', () => { - const { result, rerender } = renderHook(() => useHookableRef(123)); + const {result, rerender} = renderHook(() => useHookableRef(123)); const firstResult = result.current; rerender(); @@ -28,10 +29,10 @@ describe('useHookableRef', () => { }); it('should call getter and setter hook', () => { - const getter = jest.fn((v: number) => v); - const setter = jest.fn((v: number) => v); + const getter = vi.fn((v: number) => v); + const setter = vi.fn((v: number) => v); - const { result } = renderHook(() => useHookableRef(123, setter, getter)); + const {result} = renderHook(() => useHookableRef(123, setter, getter)); expect(getter).not.toHaveBeenCalled(); expect(setter).not.toHaveBeenCalled(); @@ -46,7 +47,7 @@ describe('useHookableRef', () => { }); it('should work properly without getter and setter', () => { - const { result } = renderHook(() => useHookableRef(123)); + const {result} = renderHook(() => useHookableRef(123)); expect(result.current.current).toBe(123); result.current.current = 321; diff --git a/src/useHookableRef/index.ssr.test.ts b/src/useHookableRef/index.ssr.test.ts index 6d1a345a..86509872 100644 --- a/src/useHookableRef/index.ssr.test.ts +++ b/src/useHookableRef/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useHookableRef} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useHookableRef} from '../index.js'; describe('useHookableRef', () => { it('should be defined', () => { diff --git a/src/useHookableRef/index.ts b/src/useHookableRef/index.ts index feb950cc..698a7d54 100644 --- a/src/useHookableRef/index.ts +++ b/src/useHookableRef/index.ts @@ -1,5 +1,5 @@ -import { type MutableRefObject, useMemo } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; +import {type MutableRefObject, useMemo} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; export type HookableRefHandler = (v: T) => T; @@ -22,7 +22,7 @@ export function useHookableRef(): MutableRefObject export function useHookableRef( initialValue?: T, onSet?: HookableRefHandler, - onGet?: HookableRefHandler + onGet?: HookableRefHandler, ): MutableRefObject { const onSetRef = useSyncedRef(onSet); const onGetRef = useSyncedRef(onGet); diff --git a/src/useIntersectionObserver/index.dom.test.ts b/src/useIntersectionObserver/index.dom.test.ts index 1205d7b3..9e72d29f 100644 --- a/src/useIntersectionObserver/index.dom.test.ts +++ b/src/useIntersectionObserver/index.dom.test.ts @@ -1,24 +1,24 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useIntersectionObserver } from '../../index.js'; -import Mock = jest.Mock; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, beforeAll, beforeEach, describe, expect, it, type Mock, vi} from 'vitest'; +import {useIntersectionObserver} from '../index.js'; describe('useIntersectionObserver', () => { let IntersectionObserverSpy: Mock; - const initialRO = global.ResizeObserver; + const initialRO = globalThis.ResizeObserver; beforeAll(() => { - IntersectionObserverSpy = jest.fn(() => ({ - observe: jest.fn(), - unobserve: jest.fn(), - disconnect: jest.fn(), + IntersectionObserverSpy = vi.fn(() => ({ + observe: vi.fn(), + unobserve: vi.fn(), + disconnect: vi.fn(), takeRecords: () => [], root: document, rootMargin: '0px', thresholds: [0], })); - global.IntersectionObserver = IntersectionObserverSpy; - jest.useFakeTimers(); + globalThis.IntersectionObserver = IntersectionObserverSpy; + vi.useFakeTimers(); }); beforeEach(() => { @@ -26,8 +26,8 @@ describe('useIntersectionObserver', () => { }); afterAll(() => { - global.ResizeObserver = initialRO; - jest.useRealTimers(); + globalThis.ResizeObserver = initialRO; + vi.useRealTimers(); }); it('should be defined', () => { @@ -35,13 +35,13 @@ describe('useIntersectionObserver', () => { }); it('should render', () => { - const { result } = renderHook(() => useIntersectionObserver(null)); + const {result} = renderHook(() => useIntersectionObserver(null)); expect(result.error).toBeUndefined(); }); it('should return undefined on first render', () => { const div1 = document.createElement('div'); - const { result } = renderHook(() => useIntersectionObserver(div1)); + const {result} = renderHook(() => useIntersectionObserver(div1)); expect(result.current).toBeUndefined(); }); @@ -58,26 +58,24 @@ describe('useIntersectionObserver', () => { it('should return intersection entry', () => { const div1 = document.createElement('div'); - const div1Ref = { current: div1 }; + const div1Ref = {current: div1}; const div2 = document.createElement('div'); - const { result: res1 } = renderHook(() => useIntersectionObserver(div1Ref)); - const { result: res2, unmount } = renderHook(() => - useIntersectionObserver(div2, { threshold: [0, 1] }) - ); + const {result: res1} = renderHook(() => useIntersectionObserver(div1Ref)); + const {result: res2, unmount} = renderHook(() => + useIntersectionObserver(div2, {threshold: [0, 1]})); expect(res1.current).toBeUndefined(); expect(res2.current).toBeUndefined(); - const entry1 = { target: div1 }; - const entry2 = { target: div2 }; + const entry1 = {target: div1}; + const entry2 = {target: div2}; act(() => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-call IntersectionObserverSpy.mock.calls[0][0]([entry1]); - // eslint-disable-next-line @typescript-eslint/no-unsafe-call + IntersectionObserverSpy.mock.calls[1][0]([entry2]); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); }); expect(res1.current).toBe(entry1); @@ -85,11 +83,10 @@ describe('useIntersectionObserver', () => { unmount(); - const entry3 = { target: div1 }; + const entry3 = {target: div1}; act(() => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-call IntersectionObserverSpy.mock.calls[0][0]([entry3]); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); }); expect(res1.current).toBe(entry3); @@ -99,22 +96,19 @@ describe('useIntersectionObserver', () => { const div1 = document.createElement('div'); const div2 = document.createElement('div'); - const { result: res1 } = renderHook(() => - useIntersectionObserver(div1, { root: { current: div2 } }) - ); - const { result: res2 } = renderHook(() => - useIntersectionObserver(div1, { root: { current: div2 } }) - ); + const {result: res1} = renderHook(() => + useIntersectionObserver(div1, {root: {current: div2}})); + const {result: res2} = renderHook(() => + useIntersectionObserver(div1, {root: {current: div2}})); expect(res1.current).toBeUndefined(); expect(res2.current).toBeUndefined(); - const entry1 = { target: div1 }; + const entry1 = {target: div1}; act(() => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-call IntersectionObserverSpy.mock.calls[0][0]([entry1]); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); }); expect(res1.current).toBe(entry1); @@ -124,13 +118,12 @@ describe('useIntersectionObserver', () => { it('should disconnect observer if last hook unmounted', () => { const div1 = document.createElement('div'); - const { result, unmount } = renderHook(() => useIntersectionObserver(div1)); - const entry1 = { target: div1 }; + const {result, unmount} = renderHook(() => useIntersectionObserver(div1)); + const entry1 = {target: div1}; act(() => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-call IntersectionObserverSpy.mock.calls[0][0]([entry1]); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); }); expect(result.current).toBe(entry1); diff --git a/src/useIntersectionObserver/index.ssr.test.ts b/src/useIntersectionObserver/index.ssr.test.ts index ac6daddc..65903a2b 100644 --- a/src/useIntersectionObserver/index.ssr.test.ts +++ b/src/useIntersectionObserver/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useIntersectionObserver} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useIntersectionObserver} from '../index.js'; describe('useIntersectionObserver', () => { it('should be defined', () => { diff --git a/src/useIntersectionObserver/index.ts b/src/useIntersectionObserver/index.ts index d3b3f9fb..1a5953f6 100644 --- a/src/useIntersectionObserver/index.ts +++ b/src/useIntersectionObserver/index.ts @@ -1,4 +1,4 @@ -import { type RefObject, useEffect, useState } from 'react'; +import {type RefObject, useEffect, useState} from 'react'; const DEFAULT_THRESHOLD = [0]; const DEFAULT_ROOT_MARGIN = '0px'; @@ -31,12 +31,12 @@ const getObserverEntry = (options: IntersectionObserverInit): ObserverEntry => { const callbacks = new Map>(); const observer = new IntersectionObserver((entries) => { - for (const e of entries) - callbacks.get(e.target)?.forEach((cb) => + for (const e of entries) { + callbacks.get(e.target)?.forEach(cb => setTimeout(() => { cb(e); - }, 0) - ); + }, 0)); + } }, options); entry = { @@ -130,13 +130,15 @@ export function useIntersectionObserver( threshold = DEFAULT_THRESHOLD, root: r, rootMargin = DEFAULT_ROOT_MARGIN, - }: UseIntersectionObserverOptions = {} + }: UseIntersectionObserverOptions = {}, ): IntersectionObserverEntry | undefined { const [state, setState] = useState(); useEffect(() => { const tgt = target && 'current' in target ? target.current : target; - if (!tgt) return; + if (!tgt) { + return; + } let subscribed = true; const observerEntry = getObserverEntry({ diff --git a/src/useIntervalEffect/index.dom.test.ts b/src/useIntervalEffect/index.dom.test.ts index 41af8fc5..acd89231 100644 --- a/src/useIntervalEffect/index.dom.test.ts +++ b/src/useIntervalEffect/index.dom.test.ts @@ -1,18 +1,19 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useIntervalEffect } from '../../index.js'; -import advanceTimersByTime = jest.advanceTimersByTime; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {useIntervalEffect} from '../index.js'; +import advanceTimersByTime = vi.advanceTimersByTime; describe('useIntervalEffect', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); beforeEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { @@ -20,25 +21,25 @@ describe('useIntervalEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useIntervalEffect(() => {}, 123); }); expect(result.error).toBeUndefined(); }); it('should set interval and cancel it on unmount', () => { - const spy = jest.fn(); - const { unmount } = renderHook(() => { + const spy = vi.fn(); + const {unmount} = renderHook(() => { useIntervalEffect(spy, 100); }); - jest.advanceTimersByTime(99); + vi.advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy).toHaveBeenCalledTimes(1); - jest.advanceTimersByTime(300); + vi.advanceTimersByTime(300); expect(spy).toHaveBeenCalledTimes(4); unmount(); @@ -46,42 +47,42 @@ describe('useIntervalEffect', () => { }); it('should reset interval in delay change', () => { - const spy = jest.fn(); - const { rerender } = renderHook( - ({ delay }) => { + const spy = vi.fn(); + const {rerender} = renderHook( + ({delay}) => { useIntervalEffect(spy, delay); }, { - initialProps: { delay: 100 }, - } + initialProps: {delay: 100}, + }, ); advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); - rerender({ delay: 50 }); + rerender({delay: 50}); advanceTimersByTime(49); expect(spy).not.toHaveBeenCalled(); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy).toHaveBeenCalledTimes(1); }); it('should cancel interval if delay is undefined', () => { - const spy = jest.fn(); - const { rerender } = renderHook<{ delay: number | undefined }, void>( - ({ delay }) => { + const spy = vi.fn(); + const {rerender} = renderHook<{delay: number | undefined}, void>( + ({delay}) => { useIntervalEffect(spy, delay); }, { - initialProps: { delay: 100 }, - } + initialProps: {delay: 100}, + }, ); advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); - rerender({ delay: undefined }); + rerender({delay: undefined}); advanceTimersByTime(2000); expect(spy).not.toHaveBeenCalled(); }); diff --git a/src/useIntervalEffect/index.ssr.test.ts b/src/useIntervalEffect/index.ssr.test.ts index 8d78e98a..37f60377 100644 --- a/src/useIntervalEffect/index.ssr.test.ts +++ b/src/useIntervalEffect/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useIntervalEffect} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useIntervalEffect} from '../index.js'; describe('useIntervalEffect', () => { it('should be defined', () => { diff --git a/src/useIntervalEffect/index.ts b/src/useIntervalEffect/index.ts index 6a3a6de3..e7066cdf 100644 --- a/src/useIntervalEffect/index.ts +++ b/src/useIntervalEffect/index.ts @@ -1,5 +1,5 @@ -import { useEffect } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; +import {useEffect} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; /** * Like `setInterval` but in the form of a React hook. diff --git a/src/useIsMounted/index.dom.test.ts b/src/useIsMounted/index.dom.test.ts index ba864713..eff40bf5 100644 --- a/src/useIsMounted/index.dom.test.ts +++ b/src/useIsMounted/index.dom.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {useIsMounted} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useIsMounted} from '../index.js'; describe('useIsMounted', () => { it('should be defined', () => { diff --git a/src/useIsMounted/index.ssr.test.ts b/src/useIsMounted/index.ssr.test.ts index c37eb62c..f720e03e 100644 --- a/src/useIsMounted/index.ssr.test.ts +++ b/src/useIsMounted/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useIsMounted} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useIsMounted} from '../index.js'; describe('useIsMounted', () => { it('should be defined', () => { diff --git a/src/useIsMounted/index.ts b/src/useIsMounted/index.ts index 803b117e..d7172ab3 100644 --- a/src/useIsMounted/index.ts +++ b/src/useIsMounted/index.ts @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useRef } from 'react'; +import {useCallback, useEffect, useRef} from 'react'; /** * Returns a function that returns the current mount state. This hook is useful when you have to diff --git a/src/useIsomorphicLayoutEffect/index.dom.test.ts b/src/useIsomorphicLayoutEffect/index.dom.test.ts index a9a500b8..6635cc2c 100644 --- a/src/useIsomorphicLayoutEffect/index.dom.test.ts +++ b/src/useIsomorphicLayoutEffect/index.dom.test.ts @@ -1,5 +1,6 @@ import {useLayoutEffect} from 'react'; -import {useIsomorphicLayoutEffect} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useIsomorphicLayoutEffect} from '../index.js'; describe('useIsomorphicLayoutEffect', () => { it('should be defined', () => { diff --git a/src/useIsomorphicLayoutEffect/index.ssr.test.ts b/src/useIsomorphicLayoutEffect/index.ssr.test.ts index bd59884a..d679c236 100644 --- a/src/useIsomorphicLayoutEffect/index.ssr.test.ts +++ b/src/useIsomorphicLayoutEffect/index.ssr.test.ts @@ -1,5 +1,6 @@ import {useEffect} from 'react'; -import {useIsomorphicLayoutEffect} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useIsomorphicLayoutEffect} from '../index.js'; describe('useIsomorphicLayoutEffect', () => { it('should be defined', () => { diff --git a/src/useKeyboardEvent/index.dom.test.ts b/src/useKeyboardEvent/index.dom.test.ts index b7a60952..94e42720 100644 --- a/src/useKeyboardEvent/index.dom.test.ts +++ b/src/useKeyboardEvent/index.dom.test.ts @@ -1,5 +1,6 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { type KeyboardEventFilter, useKeyboardEvent } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {type KeyboardEventFilter, useKeyboardEvent} from '../index.js'; describe('useKeyboardEvent', () => { it('should be defined', () => { @@ -7,7 +8,7 @@ describe('useKeyboardEvent', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useKeyboardEvent('a', () => {}); }); expect(result.error).toBeUndefined(); @@ -15,15 +16,15 @@ describe('useKeyboardEvent', () => { it('should bind listener on mount and unbind on unmount', () => { const div = document.createElement('div'); - const addSpy = jest.spyOn(div, 'addEventListener'); - const removeSpy = jest.spyOn(div, 'removeEventListener'); + const addSpy = vi.spyOn(div, 'addEventListener'); + const removeSpy = vi.spyOn(div, 'removeEventListener'); - const { rerender, unmount } = renderHook(() => { + const {rerender, unmount} = renderHook(() => { useKeyboardEvent( () => true, () => {}, undefined, - { target: div, event: 'keydown', eventOptions: { passive: true } } + {target: div, event: 'keydown', eventOptions: {passive: true}}, ); }); @@ -41,21 +42,21 @@ describe('useKeyboardEvent', () => { it('should work with react refs', () => { const div = document.createElement('div'); - const addSpy = jest.spyOn(div, 'addEventListener'); - const removeSpy = jest.spyOn(div, 'removeEventListener'); + const addSpy = vi.spyOn(div, 'addEventListener'); + const removeSpy = vi.spyOn(div, 'removeEventListener'); - const ref = { current: div }; - const { rerender, unmount } = renderHook(() => { + const ref = {current: div}; + const {rerender, unmount} = renderHook(() => { useKeyboardEvent( () => true, () => {}, undefined, - { target: ref, eventOptions: { passive: true } } + {target: ref, eventOptions: {passive: true}}, ); }); expect(addSpy).toHaveBeenCalledTimes(1); - expect(addSpy.mock.calls[0][2]).toStrictEqual({ passive: true }); + expect(addSpy.mock.calls[0][2]).toStrictEqual({passive: true}); expect(removeSpy).toHaveBeenCalledTimes(0); rerender(); @@ -70,7 +71,7 @@ describe('useKeyboardEvent', () => { it('should invoke provided function on the event trigger with proper context', () => { const div = document.createElement('div'); let context: any; - const spy = jest.fn(function (this: any) { + const spy = vi.fn(function (this: any) { // eslint-disable-next-line @typescript-eslint/no-this-alias,@typescript-eslint/no-unsafe-assignment,unicorn/no-this-assignment context = this; }); @@ -79,23 +80,23 @@ describe('useKeyboardEvent', () => { useKeyboardEvent(() => true, spy, undefined, { target: div, event: 'keydown', - eventOptions: { passive: true }, + eventOptions: {passive: true}, }); }); - const evt = new KeyboardEvent('keydown', { key: 'a' }); + const evt = new KeyboardEvent('keydown', {key: 'a'}); div.dispatchEvent(evt); expect(context).toBe(div); expect(spy).toHaveBeenCalledWith(evt); - div.dispatchEvent(new KeyboardEvent('keyup', { key: 'a' })); + div.dispatchEvent(new KeyboardEvent('keyup', {key: 'a'})); expect(spy).toHaveBeenCalledTimes(1); }); it('should invoke provided function based on string key filter with proper context', () => { const div = document.createElement('div'); let context: any; - const spy = jest.fn(function (this: any) { + const spy = vi.fn(function (this: any) { // eslint-disable-next-line @typescript-eslint/no-this-alias,@typescript-eslint/no-unsafe-assignment,unicorn/no-this-assignment context = this; }); @@ -104,56 +105,56 @@ describe('useKeyboardEvent', () => { useKeyboardEvent('a', spy, undefined, { target: div, event: 'keydown', - eventOptions: { passive: true }, + eventOptions: {passive: true}, }); }); - const evt = new KeyboardEvent('keydown', { key: 'a' }); + const evt = new KeyboardEvent('keydown', {key: 'a'}); div.dispatchEvent(evt); expect(spy).toHaveBeenCalledWith(evt); expect(context).toBe(div); - div.dispatchEvent(new KeyboardEvent('keydown', { key: 'b' })); + div.dispatchEvent(new KeyboardEvent('keydown', {key: 'b'})); expect(spy).toHaveBeenCalledTimes(1); }); it('should invoke provided function based on function key filter with proper context', () => { const div = document.createElement('div'); let context: any; - const spy = jest.fn(function (this: any) { + const spy = vi.fn(function (this: any) { // eslint-disable-next-line @typescript-eslint/no-this-alias,@typescript-eslint/no-unsafe-assignment,unicorn/no-this-assignment context = this; }); renderHook(() => { - useKeyboardEvent((ev) => ev.metaKey, spy, undefined, { + useKeyboardEvent(ev => ev.metaKey, spy, undefined, { target: div, event: 'keydown', - eventOptions: { passive: true }, + eventOptions: {passive: true}, }); }); - const evt = new KeyboardEvent('keydown', { key: 'a', metaKey: true }); + const evt = new KeyboardEvent('keydown', {key: 'a', metaKey: true}); div.dispatchEvent(evt); expect(spy).toHaveBeenCalledWith(evt); expect(context).toBe(div); - div.dispatchEvent(new KeyboardEvent('keydown', { key: 'b' })); + div.dispatchEvent(new KeyboardEvent('keydown', {key: 'b'})); expect(spy).toHaveBeenCalledTimes(1); }); it('should fallback to boolean when key filter is not function or string', () => { const div = document.createElement('div'); - const spy = jest.fn(); + const spy = vi.fn(); - const { unmount } = renderHook(() => { + const {unmount} = renderHook(() => { useKeyboardEvent(null, spy, undefined, { target: div, event: 'keydown', - eventOptions: { passive: true }, + eventOptions: {passive: true}, }); }); - const evt = new KeyboardEvent('keydown', { key: 'a', metaKey: true }); + const evt = new KeyboardEvent('keydown', {key: 'a', metaKey: true}); div.dispatchEvent(evt); expect(spy).not.toHaveBeenCalledWith(evt); unmount(); @@ -162,7 +163,7 @@ describe('useKeyboardEvent', () => { useKeyboardEvent({} as KeyboardEventFilter, spy, undefined, { target: div, event: 'keydown', - eventOptions: { passive: true }, + eventOptions: {passive: true}, }); }); diff --git a/src/useKeyboardEvent/index.ssr.test.ts b/src/useKeyboardEvent/index.ssr.test.ts index 36acacbf..9d6d04ed 100644 --- a/src/useKeyboardEvent/index.ssr.test.ts +++ b/src/useKeyboardEvent/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useKeyboardEvent} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useKeyboardEvent} from '../index.js'; describe('useKeyboardEvent', () => { it('should be defined', () => { diff --git a/src/useKeyboardEvent/index.ts b/src/useKeyboardEvent/index.ts index 906b67f3..19759bff 100644 --- a/src/useKeyboardEvent/index.ts +++ b/src/useKeyboardEvent/index.ts @@ -1,8 +1,8 @@ -import { type DependencyList, type RefObject, useMemo } from 'react'; -import { useEventListener } from '../useEventListener/index.js'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { isBrowser } from '../util/const.js'; -import { yieldFalse, yieldTrue } from '../util/misc.js'; +import {type DependencyList, type RefObject, useMemo} from 'react'; +import {useEventListener} from '../useEventListener/index.js'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {isBrowser} from '../util/const.js'; +import {yieldFalse, yieldTrue} from '../util/misc.js'; export type KeyboardEventPredicate = (event: KeyboardEvent) => boolean; export type KeyboardEventFilter = null | string | boolean | KeyboardEventPredicate; @@ -26,12 +26,18 @@ export type UseKeyboardEventOptions = { }; const createKeyPredicate = (keyFilter: KeyboardEventFilter): KeyboardEventPredicate => { - if (typeof keyFilter === 'function') return keyFilter; - if (typeof keyFilter === 'string') return (ev) => ev.key === keyFilter; + if (typeof keyFilter === 'function') { + return keyFilter; + } + + if (typeof keyFilter === 'string') { + return ev => ev.key === keyFilter; + } + return keyFilter ? yieldTrue : yieldFalse; }; -const WINDOW_OR_NULL = isBrowser ? window : null; +const WINDOW_OR_NULL = isBrowser ? globalThis : null; /** * Invokes a callback when a keyboard event occurs on the chosen target element. @@ -45,9 +51,9 @@ export function useKeyboardEvent( keyOrPredicate: KeyboardEventFilter, callback: KeyboardEventHandler, deps: DependencyList = [], - options: UseKeyboardEventOptions = {} + options: UseKeyboardEventOptions = {}, ): void { - const { event = 'keydown', target = WINDOW_OR_NULL, eventOptions } = options; + const {event = 'keydown', target = WINDOW_OR_NULL, eventOptions} = options; const cbRef = useSyncedRef(callback); const handler = useMemo>(() => { diff --git a/src/useLifecycleLogger/index.dom.test.ts b/src/useLifecycleLogger/index.dom.test.ts index 9a1bee43..d38f9db8 100644 --- a/src/useLifecycleLogger/index.dom.test.ts +++ b/src/useLifecycleLogger/index.dom.test.ts @@ -1,11 +1,12 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useLifecycleLogger } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {useLifecycleLogger} from '../index.js'; describe('useLifecycleLogger', () => { - let logSpy: jest.SpyInstance; + let logSpy: vi.SpyInstance; beforeAll(() => { - logSpy = jest.spyOn(console, 'log'); + logSpy = vi.spyOn(console, 'log'); }); afterAll(() => { @@ -17,29 +18,29 @@ describe('useLifecycleLogger', () => { }); it('should log whole component lifecycle', () => { - const { unmount, rerender } = renderHook( - ({ deps }) => { + const {unmount, rerender} = renderHook( + ({deps}) => { useLifecycleLogger('TestComponent', deps); }, - { initialProps: { deps: [1, 2, 3] } } + {initialProps: {deps: [1, 2, 3]}}, ); expect(logSpy).toHaveBeenCalledTimes(1); - expect(logSpy).toHaveBeenCalledWith(`TestComponent mounted`, [1, 2, 3]); + expect(logSpy).toHaveBeenCalledWith('TestComponent mounted', [1, 2, 3]); - rerender({ deps: [3, 2, 1] }); + rerender({deps: [3, 2, 1]}); expect(logSpy).toHaveBeenCalledTimes(2); - expect(logSpy).toHaveBeenCalledWith(`TestComponent updated`, [3, 2, 1]); + expect(logSpy).toHaveBeenCalledWith('TestComponent updated', [3, 2, 1]); - rerender({ deps: [1, 5, 6] }); + rerender({deps: [1, 5, 6]}); expect(logSpy).toHaveBeenCalledTimes(3); - expect(logSpy).toHaveBeenCalledWith(`TestComponent updated`, [1, 5, 6]); + expect(logSpy).toHaveBeenCalledWith('TestComponent updated', [1, 5, 6]); unmount(); expect(logSpy).toHaveBeenCalledTimes(4); - expect(logSpy).toHaveBeenCalledWith(`TestComponent unmounted`); + expect(logSpy).toHaveBeenCalledWith('TestComponent unmounted'); }); }); diff --git a/src/useLifecycleLogger/index.ssr.test.ts b/src/useLifecycleLogger/index.ssr.test.ts index 95257cef..e553b615 100644 --- a/src/useLifecycleLogger/index.ssr.test.ts +++ b/src/useLifecycleLogger/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useLifecycleLogger} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useLifecycleLogger} from '../index.js'; describe('useLifecycleLogger', () => { it('should be defined', () => { diff --git a/src/useLifecycleLogger/index.ts b/src/useLifecycleLogger/index.ts index 10bb74c2..e7f4b38e 100644 --- a/src/useLifecycleLogger/index.ts +++ b/src/useLifecycleLogger/index.ts @@ -1,4 +1,4 @@ -import { type DependencyList, useEffect, useRef } from 'react'; +import {type DependencyList, useEffect, useRef} from 'react'; /** * This hook provides a console log when the component mounts, updates and unmounts. diff --git a/src/useList/index.dom.test.ts b/src/useList/index.dom.test.ts index fd508a15..409ddaa8 100644 --- a/src/useList/index.dom.test.ts +++ b/src/useList/index.dom.test.ts @@ -1,6 +1,7 @@ /* eslint-disable max-nested-callbacks */ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useList } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {useList} from '../index.js'; describe('useList', () => { it('should be defined', () => { @@ -8,17 +9,17 @@ describe('useList', () => { }); it('should render', () => { - const { result } = renderHook(() => useList([])); + const {result} = renderHook(() => useList([])); expect(result.error).toBeUndefined(); }); it('should accept an initial list', () => { - const { result } = renderHook(() => useList([0, 1, 2])); + const {result} = renderHook(() => useList([0, 1, 2])); expect(result.current[0]).toEqual([0, 1, 2]); }); it('should return same actions object on every render', () => { - const { result } = renderHook(() => useList([0, 1, 2])); + const {result} = renderHook(() => useList([0, 1, 2])); const actions = result.current[1]; act(() => { @@ -30,8 +31,8 @@ describe('useList', () => { describe('set', () => { it('should replace the current list', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { set } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {set} = result.current[1]; act(() => { set([3, 4, 5]); @@ -41,8 +42,8 @@ describe('useList', () => { }); it('should replace the current list with empty list', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { set } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {set} = result.current[1]; act(() => { set([]); @@ -52,11 +53,11 @@ describe('useList', () => { }); it('should functionally replace the current list', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { set } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {set} = result.current[1]; act(() => { - set((current) => [...current, 3]); + set(current => [...current, 3]); }); expect(result.current[0]).toEqual([0, 1, 2, 3]); @@ -65,8 +66,8 @@ describe('useList', () => { describe('push', () => { it('should push a new item to the list', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { push } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {push} = result.current[1]; act(() => { push(3); @@ -76,8 +77,8 @@ describe('useList', () => { }); it('should push multiple items to the list', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { push } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {push} = result.current[1]; act(() => { push(3, 4, 5); @@ -89,8 +90,8 @@ describe('useList', () => { describe('updateAt', () => { it('should update item at given position', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { updateAt } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {updateAt} = result.current[1]; act(() => { updateAt(1, 0); @@ -100,8 +101,8 @@ describe('useList', () => { }); it('should update item at position that is out of of bounds', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { updateAt } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {updateAt} = result.current[1]; act(() => { updateAt(4, 0); @@ -113,8 +114,8 @@ describe('useList', () => { describe('insertAt', () => { it('should insert item into given position in the list', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { insertAt } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {insertAt} = result.current[1]; act(() => { insertAt(1, 0); @@ -124,8 +125,8 @@ describe('useList', () => { }); it('should insert item into position that is out of bounds', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { insertAt } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {insertAt} = result.current[1]; act(() => { insertAt(4, 0); @@ -137,8 +138,8 @@ describe('useList', () => { describe('update', () => { it('should update all items that match given predicate', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { update } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {update} = result.current[1]; act(() => { update((iteratedItem: number) => iteratedItem > 0, 0); @@ -148,9 +149,9 @@ describe('useList', () => { }); it('should pass update predicate the iterated element and the replacement', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { update } = result.current[1]; - const predicate = jest.fn((_iteratedItem, _newElement) => false); + const {result} = renderHook(() => useList([0, 1, 2])); + const {update} = result.current[1]; + const predicate = vi.fn((_iteratedItem, _newElement) => false); act(() => { update(predicate, 0); @@ -162,8 +163,8 @@ describe('useList', () => { }); it('should not update any items if none match given predicate', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { update } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {update} = result.current[1]; act(() => { update((iteratedItem: number) => iteratedItem > 3, 0); @@ -175,8 +176,8 @@ describe('useList', () => { describe('updateFirst', () => { it('should update the first item matching the given predicate', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { updateFirst } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {updateFirst} = result.current[1]; act(() => { updateFirst((iteratedItem: number) => iteratedItem > 0, 0); @@ -186,8 +187,8 @@ describe('useList', () => { }); it('should not update any items if none match given predicate', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { updateFirst } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {updateFirst} = result.current[1]; act(() => { updateFirst((iteratedItem: number) => iteratedItem > 3, 0); @@ -199,8 +200,8 @@ describe('useList', () => { describe('upsert', () => { it('should update the first item matching the given predicate', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { upsert } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {upsert} = result.current[1]; act(() => { upsert((iteratedItem: number) => iteratedItem > 0, 0); @@ -210,8 +211,8 @@ describe('useList', () => { }); it('should push given item to list, if no item matches the predicate', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { upsert } = result.current[1]; + const {result} = renderHook(() => useList([0, 1, 2])); + const {upsert} = result.current[1]; act(() => { upsert((iteratedItem: number) => iteratedItem > 3, 0); @@ -221,9 +222,9 @@ describe('useList', () => { }); it('should pass predicate the iterated element and the new element', () => { - const { result } = renderHook(() => useList([0, 1, 2])); - const { upsert } = result.current[1]; - const predicate = jest.fn((_iteratedItem, _newElement) => false); + const {result} = renderHook(() => useList([0, 1, 2])); + const {upsert} = result.current[1]; + const predicate = vi.fn((_iteratedItem, _newElement) => false); act(() => { upsert(predicate, 0); @@ -237,8 +238,8 @@ describe('useList', () => { describe('sort', () => { it('should sort list with given sorting function', () => { - const { result } = renderHook(() => useList([1, 0, 2])); - const { sort } = result.current[1]; + const {result} = renderHook(() => useList([1, 0, 2])); + const {sort} = result.current[1]; act(() => { sort((a, b) => b - a); @@ -248,8 +249,8 @@ describe('useList', () => { }); it('should use default sorting if sort is called without arguments', () => { - const { result } = renderHook(() => useList([1, 0, 2])); - const { sort } = result.current[1]; + const {result} = renderHook(() => useList([1, 0, 2])); + const {sort} = result.current[1]; act(() => { sort(); @@ -261,20 +262,20 @@ describe('useList', () => { describe('filter', () => { it('should filter list with given filter function', () => { - const { result } = renderHook(() => useList([1, 0, 2])); - const { filter } = result.current[1]; + const {result} = renderHook(() => useList([1, 0, 2])); + const {filter} = result.current[1]; act(() => { - filter((a) => a > 0); + filter(a => a > 0); }); expect(result.current[0]).toEqual([1, 2]); }); it('should pass element, its index and iterated list to filter function', () => { - const { result } = renderHook(() => useList([1, 0, 2])); - const { filter } = result.current[1]; - const filterFunction = jest.fn((_element, _index, _list) => false); + const {result} = renderHook(() => useList([1, 0, 2])); + const {filter} = result.current[1]; + const filterFunction = vi.fn((_element, _index, _list) => false); act(() => { filter(filterFunction); @@ -289,8 +290,8 @@ describe('useList', () => { describe('removeAt', () => { it('should remove item from given index', () => { - const { result } = renderHook(() => useList([1, 0, 2])); - const { removeAt } = result.current[1]; + const {result} = renderHook(() => useList([1, 0, 2])); + const {removeAt} = result.current[1]; act(() => { removeAt(1); @@ -300,8 +301,8 @@ describe('useList', () => { }); it('should not remove items if given index is out of bounds', () => { - const { result } = renderHook(() => useList([1, 0, 2])); - const { removeAt } = result.current[1]; + const {result} = renderHook(() => useList([1, 0, 2])); + const {removeAt} = result.current[1]; act(() => { removeAt(6); @@ -313,8 +314,8 @@ describe('useList', () => { describe('clear', () => { it('should clear the list', () => { - const { result } = renderHook(() => useList([1, 0, 2])); - const { clear } = result.current[1]; + const {result} = renderHook(() => useList([1, 0, 2])); + const {clear} = result.current[1]; act(() => { clear(); @@ -326,8 +327,8 @@ describe('useList', () => { describe('reset', () => { it('should reset the list to initial value', () => { - const { result } = renderHook(() => useList([1, 0, 2])); - const { reset, set } = result.current[1]; + const {result} = renderHook(() => useList([1, 0, 2])); + const {reset, set} = result.current[1]; act(() => { set([1, 1, 1]); @@ -339,14 +340,14 @@ describe('useList', () => { }); }); -function numberOfMockFunctionCalls(mockFunction: jest.Mock) { +function numberOfMockFunctionCalls(mockFunction: vi.Mock) { return mockFunction.mock.calls.length; } function mockFunctionCallArgument( - mockFunction: jest.Mock, + mockFunction: vi.Mock, callIndex: number, - argumentIndex: number + argumentIndex: number, ) { // eslint-disable-next-line @typescript-eslint/no-unsafe-return return mockFunction.mock.calls[callIndex][argumentIndex]; diff --git a/src/useList/index.ssr.test.ts b/src/useList/index.ssr.test.ts index ce42c5f1..a7965169 100644 --- a/src/useList/index.ssr.test.ts +++ b/src/useList/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useList} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useList} from '../index.js'; describe('useList', () => { it('should be defined', () => { diff --git a/src/useList/index.ts b/src/useList/index.ts index 7c805313..80175e61 100644 --- a/src/useList/index.ts +++ b/src/useList/index.ts @@ -1,7 +1,7 @@ -import { type SetStateAction, useMemo, useRef } from 'react'; -import { useRerender } from '../useRerender/index.js'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { type InitialState, resolveHookState } from '../util/resolveHookState.js'; +import {type SetStateAction, useMemo, useRef} from 'react'; +import {useRerender} from '../useRerender/index.js'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {type InitialState, resolveHookState} from '../util/resolveHookState.js'; export type ListActions = { /** @@ -114,8 +114,7 @@ export function useList(initialList: InitialState): [T[], ListActions update(predicate: (iteratedItem: T, newItem: T) => boolean, newItem: T) { actions.set((currentList: T[]) => - currentList.map((item: T) => (predicate(item, newItem) ? newItem : item)) - ); + currentList.map((item: T) => (predicate(item, newItem) ? newItem : item))); }, updateFirst(predicate: (iteratedItem: T, newItem: T) => boolean, newItem: T) { @@ -166,7 +165,7 @@ export function useList(initialList: InitialState): [T[], ListActions actions.set([...resolveHookState(initial.current)]); }, }), - [initial, rerender] + [initial, rerender], ); return [list.current, actions]; diff --git a/src/useLocalStorageValue/index.dom.test.ts b/src/useLocalStorageValue/index.dom.test.ts index 84b0d7a4..4f6161c3 100644 --- a/src/useLocalStorageValue/index.dom.test.ts +++ b/src/useLocalStorageValue/index.dom.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {useLocalStorageValue} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useLocalStorageValue} from '../index.js'; describe('useLocalStorageValue', () => { it('should be defined', () => { diff --git a/src/useLocalStorageValue/index.ssr.test.ts b/src/useLocalStorageValue/index.ssr.test.ts index 85f62dca..e5c7f91d 100644 --- a/src/useLocalStorageValue/index.ssr.test.ts +++ b/src/useLocalStorageValue/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useLocalStorageValue} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useLocalStorageValue} from '../index.js'; describe('useLocalStorageValue', () => { it('should be defined', () => { diff --git a/src/useLocalStorageValue/index.ts b/src/useLocalStorageValue/index.ts index 8c055778..e2cf7694 100644 --- a/src/useLocalStorageValue/index.ts +++ b/src/useLocalStorageValue/index.ts @@ -3,12 +3,12 @@ import { type UseStorageValueOptions, type UseStorageValueResult, } from '../useStorageValue/index.js'; -import { isBrowser, noop } from '../util/const.js'; +import {isBrowser, noop} from '../util/const.js'; let IS_LOCAL_STORAGE_AVAILABLE: boolean; try { - IS_LOCAL_STORAGE_AVAILABLE = isBrowser && Boolean(window.localStorage); + IS_LOCAL_STORAGE_AVAILABLE = isBrowser && Boolean(globalThis.localStorage); } catch { // No need to test this flag leads to noop behaviour /* istanbul ignore next */ @@ -27,21 +27,19 @@ type UseLocalStorageValue = < /** * Manages a single localStorage key. */ -export const useLocalStorageValue: UseLocalStorageValue = IS_LOCAL_STORAGE_AVAILABLE - ? (key, options) => { - return useStorageValue(localStorage, key, options); - } - : < +export const useLocalStorageValue: UseLocalStorageValue = IS_LOCAL_STORAGE_AVAILABLE ? + (key, options) => useStorageValue(localStorage, key, options) : + < Type, Default extends Type = Type, Initialize extends boolean | undefined = boolean | undefined, >( _key: string, - _options?: UseStorageValueOptions + _options?: UseStorageValueOptions, ): UseStorageValueResult => { if (isBrowser && process.env.NODE_ENV === 'development') { console.warn('LocalStorage is not available in this environment'); } - return { value: undefined as Type, set: noop, remove: noop, fetch: noop }; + return {value: undefined as Type, set: noop, remove: noop, fetch: noop}; }; diff --git a/src/useMap/index.dom.test.ts b/src/useMap/index.dom.test.ts index 73795054..29c93e4c 100644 --- a/src/useMap/index.dom.test.ts +++ b/src/useMap/index.dom.test.ts @@ -1,5 +1,6 @@ -import { renderHook, act } from '@testing-library/react-hooks/dom'; -import { useMap } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {useMap} from '../index.js'; describe('useMap', () => { it('should be defined', () => { @@ -7,12 +8,12 @@ describe('useMap', () => { }); it('should render', () => { - const { result } = renderHook(() => useMap()); + const {result} = renderHook(() => useMap()); expect(result.error).toBeUndefined(); }); it('should return a Map instance with altered add, clear and delete methods', () => { - const { result } = renderHook(() => useMap()); + const {result} = renderHook(() => useMap()); expect(result.current).toBeInstanceOf(Map); expect(result.current.set).not.toBe(Map.prototype.set); expect(result.current.clear).not.toBe(Map.prototype.clear); @@ -20,13 +21,12 @@ describe('useMap', () => { }); it('should accept initial values', () => { - const { result } = renderHook(() => + const {result} = renderHook(() => useMap([ ['foo', 1], ['bar', 2], ['baz', 3], - ]) - ); + ])); expect(result.current.get('foo')).toBe(1); expect(result.current.get('bar')).toBe(2); expect(result.current.get('baz')).toBe(3); @@ -34,9 +34,9 @@ describe('useMap', () => { }); it('`set` should invoke original method and rerender component', () => { - const spy = jest.spyOn(Map.prototype, 'set'); + const spy = vi.spyOn(Map.prototype, 'set'); let i = 0; - const { result } = renderHook(() => [++i, useMap()] as const); + const {result} = renderHook(() => [++i, useMap()] as const); act(() => { expect(result.current[1].set('foo', 'bar')).toBe(result.current[1]); @@ -49,9 +49,9 @@ describe('useMap', () => { }); it('`clear` should invoke original method and rerender component', () => { - const spy = jest.spyOn(Map.prototype, 'clear'); + const spy = vi.spyOn(Map.prototype, 'clear'); let i = 0; - const { result } = renderHook(() => [++i, useMap()] as const); + const {result} = renderHook(() => [++i, useMap()] as const); act(() => { result.current[1].clear(); @@ -63,9 +63,9 @@ describe('useMap', () => { }); it('`delete` should invoke original method and rerender component', () => { - const spy = jest.spyOn(Map.prototype, 'delete'); + const spy = vi.spyOn(Map.prototype, 'delete'); let i = 0; - const { result } = renderHook(() => [++i, useMap([['foo', 1]])] as const); + const {result} = renderHook(() => [++i, useMap([['foo', 1]])] as const); act(() => { expect(result.current[1].delete('foo')).toBe(true); diff --git a/src/useMap/index.ssr.test.ts b/src/useMap/index.ssr.test.ts index 1f6f6714..78a59897 100644 --- a/src/useMap/index.ssr.test.ts +++ b/src/useMap/index.ssr.test.ts @@ -1,5 +1,6 @@ -import { renderHook, act } from '@testing-library/react-hooks/server'; -import { useMap } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/server'; +import {describe, expect, it, vi} from 'vitest'; +import {useMap} from '../index.js'; describe('useMap', () => { it('should be defined', () => { @@ -7,12 +8,12 @@ describe('useMap', () => { }); it('should render', () => { - const { result } = renderHook(() => useMap()); + const {result} = renderHook(() => useMap()); expect(result.error).toBeUndefined(); }); it('should return a Map instance with altered set, clear and delete methods', () => { - const { result } = renderHook(() => useMap()); + const {result} = renderHook(() => useMap()); expect(result.current).toBeInstanceOf(Map); expect(result.current.set).not.toBe(Map.prototype.set); expect(result.current.clear).not.toBe(Map.prototype.clear); @@ -20,13 +21,12 @@ describe('useMap', () => { }); it('should accept initial values', () => { - const { result } = renderHook(() => + const {result} = renderHook(() => useMap([ ['foo', 1], ['bar', 2], ['baz', 3], - ]) - ); + ])); expect(result.current.get('foo')).toBe(1); expect(result.current.get('bar')).toBe(2); expect(result.current.get('baz')).toBe(3); @@ -34,9 +34,9 @@ describe('useMap', () => { }); it('`set` should invoke original method and not rerender component', () => { - const spy = jest.spyOn(Map.prototype, 'set'); + const spy = vi.spyOn(Map.prototype, 'set'); let i = 0; - const { result } = renderHook(() => [++i, useMap()] as const); + const {result} = renderHook(() => [++i, useMap()] as const); act(() => { expect(result.current[1].set('foo', 'bar')).toBe(result.current[1]); @@ -49,9 +49,9 @@ describe('useMap', () => { }); it('`clear` should invoke original method and not rerender component', () => { - const spy = jest.spyOn(Map.prototype, 'clear'); + const spy = vi.spyOn(Map.prototype, 'clear'); let i = 0; - const { result } = renderHook(() => [++i, useMap()] as const); + const {result} = renderHook(() => [++i, useMap()] as const); act(() => { result.current[1].clear(); @@ -63,9 +63,9 @@ describe('useMap', () => { }); it('`delete` should invoke original method and not rerender component', () => { - const spy = jest.spyOn(Map.prototype, 'delete'); + const spy = vi.spyOn(Map.prototype, 'delete'); let i = 0; - const { result } = renderHook(() => [++i, useMap([['foo', 1]])] as const); + const {result} = renderHook(() => [++i, useMap([['foo', 1]])] as const); act(() => { expect(result.current[1].delete('foo')).toBe(true); diff --git a/src/useMap/index.ts b/src/useMap/index.ts index dbf86f9d..01c5d218 100644 --- a/src/useMap/index.ts +++ b/src/useMap/index.ts @@ -1,5 +1,5 @@ -import { useRef } from 'react'; -import { useRerender } from '../useRerender/index.js'; +import {useRef} from 'react'; +import {useRerender} from '../useRerender/index.js'; const proto = Map.prototype; @@ -10,7 +10,7 @@ const proto = Map.prototype; */ export function useMap( - entries?: ReadonlyArray | null + entries?: ReadonlyArray | null, ): Map { const mapRef = useRef>(); const rerender = useRerender(); diff --git a/src/useMeasure/index.dom.test.ts b/src/useMeasure/index.dom.test.ts index 4836ee8d..8db326d8 100644 --- a/src/useMeasure/index.dom.test.ts +++ b/src/useMeasure/index.dom.test.ts @@ -1,33 +1,34 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useEffect } from 'react'; -import { useMeasure } from '../../index.js'; -import Mock = jest.Mock; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {useEffect} from 'react'; +import {afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {useMeasure} from '../index.js'; +import Mock = vi.Mock; describe('useMeasure', () => { - const raf = global.requestAnimationFrame; - const caf = global.cancelAnimationFrame; - const observeSpy = jest.fn(); - const unobserveSpy = jest.fn(); - const disconnectSpy = jest.fn(); + const raf = globalThis.requestAnimationFrame; + const caf = globalThis.cancelAnimationFrame; + const observeSpy = vi.fn(); + const unobserveSpy = vi.fn(); + const disconnectSpy = vi.fn(); let ResizeObserverSpy: Mock; - const initialRO = global.ResizeObserver; + const initialRO = globalThis.ResizeObserver; beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); - global.requestAnimationFrame = (cb) => setTimeout(cb, 1); - global.cancelAnimationFrame = (cb) => { + globalThis.requestAnimationFrame = cb => setTimeout(cb, 1); + globalThis.cancelAnimationFrame = (cb) => { clearTimeout(cb); }; - ResizeObserverSpy = jest.fn(() => ({ + ResizeObserverSpy = vi.fn(() => ({ observe: observeSpy, unobserve: unobserveSpy, disconnect: disconnectSpy, })); - global.ResizeObserver = ResizeObserverSpy; + globalThis.ResizeObserver = ResizeObserverSpy; }); beforeEach(() => { @@ -37,16 +38,16 @@ describe('useMeasure', () => { }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); - global.ResizeObserver = initialRO; + globalThis.ResizeObserver = initialRO; - global.requestAnimationFrame = raf; - global.cancelAnimationFrame = caf; + globalThis.requestAnimationFrame = raf; + globalThis.cancelAnimationFrame = caf; }); it('should be defined', () => { @@ -54,26 +55,26 @@ describe('useMeasure', () => { }); it('should render', () => { - const { result } = renderHook(() => useMeasure()); + const {result} = renderHook(() => useMeasure()); expect(result.error).toBeUndefined(); }); it('should return undefined sate on initial render', () => { - const { result } = renderHook(() => useMeasure()); + const {result} = renderHook(() => useMeasure()); expect(result.current[0]).toBeUndefined(); }); it('should return reference as a second array element', () => { - const { result } = renderHook(() => useMeasure()); + const {result} = renderHook(() => useMeasure()); - expect(result.current[1]).toStrictEqual({ current: null }); + expect(result.current[1]).toStrictEqual({current: null}); }); it('should only set state within animation frame', () => { const div = document.createElement('div'); - const { result } = renderHook(() => { + const {result} = renderHook(() => { const res = useMeasure(); useEffect(() => { @@ -90,7 +91,7 @@ describe('useMeasure', () => { const entry = { target: div, - contentRect: { width: 0, height: 0 }, + contentRect: {width: 0, height: 0}, borderBoxSize: {}, contentBoxSize: {}, } as unknown as ResizeObserverEntry; @@ -100,10 +101,10 @@ describe('useMeasure', () => { expect(result.current[0]).toBeUndefined(); act(() => { - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); }); - expect(result.current[1]).toStrictEqual({ current: div }); + expect(result.current[1]).toStrictEqual({current: div}); expect(result.current[0]).toStrictEqual(measures); }); }); diff --git a/src/useMeasure/index.ssr.test.ts b/src/useMeasure/index.ssr.test.ts index 4f9797e5..74f054f8 100644 --- a/src/useMeasure/index.ssr.test.ts +++ b/src/useMeasure/index.ssr.test.ts @@ -1,23 +1,24 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useMeasure } from '../../index.js'; -import Mock = jest.Mock; +import {renderHook} from '@testing-library/react-hooks/server'; +import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {useMeasure} from '../index.js'; +import Mock = vi.Mock; describe('useMeasure', () => { - const observeSpy = jest.fn(); - const unobserveSpy = jest.fn(); - const disconnectSpy = jest.fn(); + const observeSpy = vi.fn(); + const unobserveSpy = vi.fn(); + const disconnectSpy = vi.fn(); let ResizeObserverSpy: Mock; - const initialRO = global.ResizeObserver; + const initialRO = globalThis.ResizeObserver; beforeAll(() => { - ResizeObserverSpy = jest.fn(() => ({ + ResizeObserverSpy = vi.fn(() => ({ observe: observeSpy, unobserve: unobserveSpy, disconnect: disconnectSpy, })); - global.ResizeObserver = ResizeObserverSpy; + globalThis.ResizeObserver = ResizeObserverSpy; }); beforeEach(() => { @@ -27,7 +28,7 @@ describe('useMeasure', () => { }); afterAll(() => { - global.ResizeObserver = initialRO; + globalThis.ResizeObserver = initialRO; }); it('should be defined', () => { @@ -35,20 +36,20 @@ describe('useMeasure', () => { }); it('should render', () => { - const { result } = renderHook(() => useMeasure()); + const {result} = renderHook(() => useMeasure()); expect(result.error).toBeUndefined(); }); it('should return undefined sate on initial render', () => { - const { result } = renderHook(() => useMeasure()); + const {result} = renderHook(() => useMeasure()); expect(result.current[0]).toBeUndefined(); }); it('should return reference as a second array element', () => { - const { result } = renderHook(() => useMeasure()); + const {result} = renderHook(() => useMeasure()); - expect(result.current[1]).toStrictEqual({ current: null }); + expect(result.current[1]).toStrictEqual({current: null}); }); }); diff --git a/src/useMeasure/index.ts b/src/useMeasure/index.ts index 9a8e54cd..d45b2c9a 100644 --- a/src/useMeasure/index.ts +++ b/src/useMeasure/index.ts @@ -1,7 +1,7 @@ -import { type MutableRefObject, useState } from 'react'; -import { useHookableRef } from '../useHookableRef/index.js'; -import { useRafCallback } from '../useRafCallback/index.js'; -import { useResizeObserver, type UseResizeObserverCallback } from '../useResizeObserver/index.js'; +import {type MutableRefObject, useState} from 'react'; +import {useHookableRef} from '../useHookableRef/index.js'; +import {useRafCallback} from '../useRafCallback/index.js'; +import {useResizeObserver, type UseResizeObserverCallback} from '../useResizeObserver/index.js'; export type Measures = { width: number; @@ -14,7 +14,7 @@ export type Measures = { * @param enabled Whether resize observer is enabled or not. */ export function useMeasure( - enabled = true + enabled = true, ): [Measures | undefined, MutableRefObject] { const [element, setElement] = useState(null); const elementRef = useHookableRef(null, (v) => { @@ -25,7 +25,7 @@ export function useMeasure( const [measures, setMeasures] = useState(); const [observerHandler] = useRafCallback((entry) => { - setMeasures({ width: entry.contentRect.width, height: entry.contentRect.height }); + setMeasures({width: entry.contentRect.width, height: entry.contentRect.height}); }); useResizeObserver(element, observerHandler, enabled); diff --git a/src/useMediaQuery/index.dom.test.ts b/src/useMediaQuery/index.dom.test.ts index 8776ab8d..554976ec 100644 --- a/src/useMediaQuery/index.dom.test.ts +++ b/src/useMediaQuery/index.dom.test.ts @@ -1,31 +1,32 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useMediaQuery } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {useMediaQuery} from '../index.js'; describe('useMediaQuery', () => { type MutableMediaQueryList = { matches: boolean; media: string; onchange: null; - addListener: jest.Mock; // Deprecated - removeListener: jest.Mock; // Deprecated - addEventListener: jest.Mock; - removeEventListener: jest.Mock; - dispatchEvent: jest.Mock; + addListener: vi.Mock; // Deprecated + removeListener: vi.Mock; // Deprecated + addEventListener: vi.Mock; + removeEventListener: vi.Mock; + dispatchEvent: vi.Mock; }; - const matchMediaMock = jest.fn(); - let initialMatchMedia: typeof window.matchMedia; + const matchMediaMock = vi.fn(); + let initialMatchMedia: typeof globalThis.matchMedia; beforeAll(() => { - initialMatchMedia = window.matchMedia; - Object.defineProperty(window, 'matchMedia', { + initialMatchMedia = globalThis.matchMedia; + Object.defineProperty(globalThis, 'matchMedia', { writable: true, value: matchMediaMock, }); }); afterAll(() => { - window.matchMedia = initialMatchMedia; + globalThis.matchMedia = initialMatchMedia; }); beforeEach(() => { @@ -33,11 +34,11 @@ describe('useMediaQuery', () => { matches: false, media: query, onchange: null, - addListener: jest.fn(), // Deprecated - removeListener: jest.fn(), // Deprecated - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), + addListener: vi.fn(), // Deprecated + removeListener: vi.fn(), // Deprecated + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + dispatchEvent: vi.fn(), })); }); @@ -50,34 +51,32 @@ describe('useMediaQuery', () => { }); it('should render', () => { - const { result } = renderHook(() => useMediaQuery('max-width : 768px')); + const {result} = renderHook(() => useMediaQuery('max-width : 768px')); expect(result.error).toBeUndefined(); }); it('should return undefined on first render, if initializeWithValue is false', () => { - const { result } = renderHook(() => - useMediaQuery('max-width : 768px', { initializeWithValue: false }) - ); + const {result} = renderHook(() => + useMediaQuery('max-width : 768px', {initializeWithValue: false})); expect(result.all.length).toBe(2); expect(result.all[0]).toBe(undefined); expect(result.current).toBe(false); }); it('should return value on first render, if initializeWithValue is true', () => { - const { result } = renderHook(() => - useMediaQuery('max-width : 768px', { initializeWithValue: true }) - ); + const {result} = renderHook(() => + useMediaQuery('max-width : 768px', {initializeWithValue: true})); expect(result.all.length).toBe(1); expect(result.current).toBe(false); }); it('should return match state', () => { - const { result } = renderHook(() => useMediaQuery('max-width : 768px')); + const {result} = renderHook(() => useMediaQuery('max-width : 768px')); expect(result.current).toBe(false); }); it('should update state if query state changed', () => { - const { result } = renderHook(() => useMediaQuery('max-width : 768px')); + const {result} = renderHook(() => useMediaQuery('max-width : 768px')); expect(result.current).toBe(false); const mql = matchMediaMock.mock.results[0].value as MutableMediaQueryList; @@ -91,9 +90,9 @@ describe('useMediaQuery', () => { }); it('several hooks tracking same rule must listen same mql', () => { - const { result: result1 } = renderHook(() => useMediaQuery('max-width : 768px')); - const { result: result2 } = renderHook(() => useMediaQuery('max-width : 768px')); - const { result: result3 } = renderHook(() => useMediaQuery('max-width : 768px')); + const {result: result1} = renderHook(() => useMediaQuery('max-width : 768px')); + const {result: result2} = renderHook(() => useMediaQuery('max-width : 768px')); + const {result: result3} = renderHook(() => useMediaQuery('max-width : 768px')); expect(result1.current).toBe(false); expect(result2.current).toBe(false); expect(result3.current).toBe(false); @@ -111,19 +110,19 @@ describe('useMediaQuery', () => { }); it('should unsubscribe from previous mql when query changed', () => { - const { result: result1 } = renderHook(() => useMediaQuery('max-width : 768px')); - const { result: result2 } = renderHook(() => useMediaQuery('max-width : 768px')); - const { result: result3, rerender: rerender3 } = renderHook( - ({ query }) => useMediaQuery(query), + const {result: result1} = renderHook(() => useMediaQuery('max-width : 768px')); + const {result: result2} = renderHook(() => useMediaQuery('max-width : 768px')); + const {result: result3, rerender: rerender3} = renderHook( + ({query}) => useMediaQuery(query), { - initialProps: { query: 'max-width : 768px' }, - } + initialProps: {query: 'max-width : 768px'}, + }, ); expect(result1.current).toBe(false); expect(result2.current).toBe(false); expect(result3.current).toBe(false); - rerender3({ query: 'max-width : 760px' }); + rerender3({query: 'max-width : 760px'}); expect(matchMediaMock).toHaveBeenCalledTimes(2); @@ -140,9 +139,9 @@ describe('useMediaQuery', () => { }); it('should unsubscribe from mql only when no hooks are awaiting such value', () => { - const { unmount: unmount1 } = renderHook(() => useMediaQuery('max-width : 768px')); - const { unmount: unmount2 } = renderHook(() => useMediaQuery('max-width : 768px')); - const { unmount: unmount3 } = renderHook(() => useMediaQuery('max-width : 768px')); + const {unmount: unmount1} = renderHook(() => useMediaQuery('max-width : 768px')); + const {unmount: unmount2} = renderHook(() => useMediaQuery('max-width : 768px')); + const {unmount: unmount3} = renderHook(() => useMediaQuery('max-width : 768px')); const mql = matchMediaMock.mock.results[0].value as MutableMediaQueryList; expect(mql.removeEventListener).not.toHaveBeenCalled(); @@ -159,12 +158,12 @@ describe('useMediaQuery', () => { matches: false, media: query, onchange: null, - addListener: jest.fn(), - removeListener: jest.fn(), - dispatchEvent: jest.fn(), + addListener: vi.fn(), + removeListener: vi.fn(), + dispatchEvent: vi.fn(), })); - const { unmount } = renderHook(() => useMediaQuery('max-width : 1024px')); + const {unmount} = renderHook(() => useMediaQuery('max-width : 1024px')); const mql = matchMediaMock.mock.results[0].value as MutableMediaQueryList; expect(mql.addListener).toHaveBeenCalledTimes(1); diff --git a/src/useMediaQuery/index.ssr.test.ts b/src/useMediaQuery/index.ssr.test.ts index ca912c08..d2e05c9c 100644 --- a/src/useMediaQuery/index.ssr.test.ts +++ b/src/useMediaQuery/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useMediaQuery} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useMediaQuery} from '../index.js'; describe('useMediaQuery', () => { it('should be defined', () => { diff --git a/src/useMediaQuery/index.ts b/src/useMediaQuery/index.ts index e4d43b38..cc788525 100644 --- a/src/useMediaQuery/index.ts +++ b/src/useMediaQuery/index.ts @@ -1,9 +1,9 @@ -import { type Dispatch, useEffect, useState } from 'react'; -import { isBrowser } from '../util/const.js'; +import {type Dispatch, useEffect, useState} from 'react'; +import {isBrowser} from '../util/const.js'; const queriesMap = new Map< string, - { mql: MediaQueryList; dispatchers: Set>; listener: () => void } + {mql: MediaQueryList; dispatchers: Set>; listener: () => void} >(); type QueryStateSetter = (matches: boolean) => void; @@ -17,8 +17,11 @@ const createQueryEntry = (query: string) => { } }; - if (mql.addEventListener) mql.addEventListener('change', listener, { passive: true }); - else mql.addListener(listener); + if (mql.addEventListener) { + mql.addEventListener('change', listener, {passive: true}); + } else { + mql.addListener(listener); + } return { mql, @@ -45,14 +48,17 @@ const queryUnsubscribe = (query: string, setState: QueryStateSetter): void => { // Else path is impossible to test in normal situation /* istanbul ignore else */ if (entry) { - const { mql, dispatchers, listener } = entry; + const {mql, dispatchers, listener} = entry; dispatchers.delete(setState); if (dispatchers.size === 0) { queriesMap.delete(query); - if (mql.removeEventListener) mql.removeEventListener('change', listener); - else mql.removeListener(listener); + if (mql.removeEventListener) { + mql.removeEventListener('change', listener); + } else { + mql.removeListener(listener); + } } } }; @@ -71,9 +77,9 @@ type UseMediaQueryOptions = { */ export function useMediaQuery( query: string, - options: UseMediaQueryOptions = {} + options: UseMediaQueryOptions = {}, ): boolean | undefined { - let { initializeWithValue = true } = options; + let {initializeWithValue = true} = options; if (!isBrowser) { initializeWithValue = false; diff --git a/src/useMediatedState/index.dom.test.ts b/src/useMediatedState/index.dom.test.ts index 0268c8c4..3c1ca36f 100644 --- a/src/useMediatedState/index.dom.test.ts +++ b/src/useMediatedState/index.dom.test.ts @@ -1,5 +1,6 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useMediatedState } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {useMediatedState} from '../index.js'; describe('useMediatedState', () => { it('should be defined', () => { @@ -7,12 +8,12 @@ describe('useMediatedState', () => { }); it('should render', () => { - const { result } = renderHook(() => useMediatedState()); + const {result} = renderHook(() => useMediatedState()); expect(result.error).toBeUndefined(); }); it('should act like useState if mediator not passed', () => { - const { result } = renderHook(() => useMediatedState(123)); + const {result} = renderHook(() => useMediatedState(123)); expect(result.current[0]).toBe(123); act(() => { @@ -22,8 +23,8 @@ describe('useMediatedState', () => { }); it('should pass received sate through mediator', () => { - const spy = jest.fn((value: string) => Number.parseInt(value, 10)); - const { result } = renderHook(() => useMediatedState(123, spy)); + const spy = vi.fn((value: string) => Number.parseInt(value, 10)); + const {result} = renderHook(() => useMediatedState(123, spy)); expect(result.current[0]).toBe(123); act(() => { @@ -35,17 +36,15 @@ describe('useMediatedState', () => { }); it('should pass initial sate through mediator', () => { - const { result } = renderHook(() => - useMediatedState('a123', (value: string) => value.replaceAll(/[^a-z]+/gi, '')) - ); + const {result} = renderHook(() => + useMediatedState('a123', (value: string) => value.replaceAll(/[^a-z]+/gi, ''))); expect(result.current[0]).toBe('a'); }); it('should return same setState method each render even if callback is changed', () => { - const { result, rerender } = renderHook(() => - useMediatedState(123, (value: string) => Number.parseInt(value, 10)) - ); + const {result, rerender} = renderHook(() => + useMediatedState(123, (value: string) => Number.parseInt(value, 10))); const f1 = result.current[1]; rerender(); diff --git a/src/useMediatedState/index.ssr.test.ts b/src/useMediatedState/index.ssr.test.ts index b4d13be5..a0f9202c 100644 --- a/src/useMediatedState/index.ssr.test.ts +++ b/src/useMediatedState/index.ssr.test.ts @@ -1,5 +1,6 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useMediatedState } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {describe, expect, it} from 'vitest'; +import {useMediatedState} from '../index.js'; describe('useMediatedState', () => { it('should be defined', () => { @@ -7,18 +8,17 @@ describe('useMediatedState', () => { }); it('should render', () => { - const { result } = renderHook(() => useMediatedState()); + const {result} = renderHook(() => useMediatedState()); expect(result.error).toBeUndefined(); }); it('should return initial state on first mount', () => { - const { result } = renderHook(() => useMediatedState(123)); + const {result} = renderHook(() => useMediatedState(123)); expect(result.current[0]).toBe(123); - const { result: result2 } = renderHook(() => - useMediatedState(123, (value: string) => Number.parseInt(value, 10)) - ); + const {result: result2} = renderHook(() => + useMediatedState(123, (value: string) => Number.parseInt(value, 10))); expect(result2.current[0]).toBe(123); }); diff --git a/src/useMediatedState/index.ts b/src/useMediatedState/index.ts index b1e38fb9..90d5f43e 100644 --- a/src/useMediatedState/index.ts +++ b/src/useMediatedState/index.ts @@ -1,10 +1,10 @@ -import { type Dispatch, useCallback, useState } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { type InitialState, type NextState, resolveHookState } from '../util/resolveHookState.js'; +import {type Dispatch, useCallback, useState} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {type InitialState, type NextState, resolveHookState} from '../util/resolveHookState.js'; export function useMediatedState(): [ - State | undefined, - Dispatch>, + State | undefined, + Dispatch>, ]; export function useMediatedState( initialState: InitialState @@ -19,22 +19,19 @@ export function useMediatedState( */ export function useMediatedState( initialState?: InitialState, - mediator?: (state: RawState | State | undefined) => State + mediator?: (state: RawState | State | undefined) => State, ): [State | undefined, Dispatch>] { - const [state, setState] = useState(() => { - return mediator ? mediator(resolveHookState(initialState)) : initialState; - }); + const [state, setState] = useState(() => mediator ? mediator(resolveHookState(initialState)) : initialState); const mediatorRef = useSyncedRef(mediator); return [ state as State, useCallback((value) => { if (mediatorRef.current) { - setState((previousState) => + setState(previousState => mediatorRef.current?.( - resolveHookState(value, previousState as State) - ) - ); + resolveHookState(value, previousState as State), + )); } else { setState(value as unknown as State); } diff --git a/src/useMountEffect/index.dom.test.ts b/src/useMountEffect/index.dom.test.ts index 2cf3f687..330c9607 100644 --- a/src/useMountEffect/index.dom.test.ts +++ b/src/useMountEffect/index.dom.test.ts @@ -1,9 +1,10 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {useMountEffect} from '../../index.js'; +import {describe, expect, it, vi} from 'vitest'; +import {useMountEffect} from '../index.js'; describe('useMountEffect', () => { it('should call effector only on first render', () => { - const spy = jest.fn(); + const spy = vi.fn(); const {result, rerender, unmount} = renderHook(() => { useMountEffect(spy); diff --git a/src/useMountEffect/index.ssr.test.ts b/src/useMountEffect/index.ssr.test.ts index 17bde280..b602d744 100644 --- a/src/useMountEffect/index.ssr.test.ts +++ b/src/useMountEffect/index.ssr.test.ts @@ -1,9 +1,10 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useMountEffect} from '../../index.js'; +import {describe, expect, it, vi} from 'vitest'; +import {useMountEffect} from '../index.js'; describe('useMountEffect', () => { it('should call effector only on first render', () => { - const spy = jest.fn(); + const spy = vi.fn(); renderHook(() => { useMountEffect(spy); diff --git a/src/useMountEffect/index.ts b/src/useMountEffect/index.ts index 6c40cf40..678ab27f 100644 --- a/src/useMountEffect/index.ts +++ b/src/useMountEffect/index.ts @@ -1,4 +1,4 @@ -import { useEffect } from 'react'; +import {useEffect} from 'react'; /** * Run effect only when component is first mounted. diff --git a/src/useNetworkState/index.dom.test.ts b/src/useNetworkState/index.dom.test.ts index b5e104a9..079a763b 100644 --- a/src/useNetworkState/index.dom.test.ts +++ b/src/useNetworkState/index.dom.test.ts @@ -1,6 +1,7 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; import {useRef} from 'react'; -import {useNetworkState} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useNetworkState} from '../index.js'; describe('useNetworkState', () => { it('should be defined', () => { diff --git a/src/useNetworkState/index.ssr.test.ts b/src/useNetworkState/index.ssr.test.ts index 60caa258..1b7010e0 100644 --- a/src/useNetworkState/index.ssr.test.ts +++ b/src/useNetworkState/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useNetworkState} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useNetworkState} from '../index.js'; describe('useNetworkState', () => { it('should be defined', () => { diff --git a/src/useNetworkState/index.ts b/src/useNetworkState/index.ts index 59ce823a..ee6ab138 100644 --- a/src/useNetworkState/index.ts +++ b/src/useNetworkState/index.ts @@ -1,7 +1,7 @@ -import { useEffect, useState } from 'react'; -import { isBrowser } from '../util/const.js'; -import { off, on } from '../util/misc.js'; -import { type InitialState } from '../util/resolveHookState.js'; +import {useEffect, useState} from 'react'; +import {isBrowser} from '../util/const.js'; +import {off, on} from '../util/misc.js'; +import {type InitialState} from '../util/resolveHookState.js'; export type NetworkInformation = { readonly downlink: number; @@ -76,7 +76,7 @@ export type UseNetworkState = { type NavigatorWithConnection = Navigator & Partial>; -const navigator = isBrowser ? (window.navigator as NavigatorWithConnection) : undefined; +const navigator = isBrowser ? (globalThis.navigator as NavigatorWithConnection) : undefined; const conn: NetworkInformation | undefined = navigator && (navigator.connection ?? navigator.mozConnection ?? navigator.webkitConnection); @@ -109,18 +109,18 @@ export function useNetworkState(initialState?: InitialState): U setState(getConnectionState); }; - on(window, 'online', handleStateChange, { passive: true }); - on(window, 'offline', handleStateChange, { passive: true }); + on(globalThis, 'online', handleStateChange, {passive: true}); + on(globalThis, 'offline', handleStateChange, {passive: true}); // It is quite hard to test it in jsdom environment maybe will be improved in future /* istanbul ignore next */ if (conn) { - on(conn, 'change', handleStateChange, { passive: true }); + on(conn, 'change', handleStateChange, {passive: true}); } return () => { - off(window, 'online', handleStateChange); - off(window, 'offline', handleStateChange); + off(globalThis, 'online', handleStateChange); + off(globalThis, 'offline', handleStateChange); /* istanbul ignore next */ if (conn) { diff --git a/src/usePermission/index.dom.test.ts b/src/usePermission/index.dom.test.ts index 313955ed..7574f734 100644 --- a/src/usePermission/index.dom.test.ts +++ b/src/usePermission/index.dom.test.ts @@ -1,33 +1,34 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { usePermission } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {usePermission} from '../index.js'; describe('usePermission', () => { - let querySpy: jest.SpyInstance; + let querySpy: vi.SpyInstance; const initialPermissions = navigator.permissions; beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); - querySpy = jest.fn( + querySpy = vi.fn( () => new Promise((resolve) => { setTimeout(() => { - resolve({ state: 'prompt' } as PermissionStatus); + resolve({state: 'prompt'} as PermissionStatus); }, 1); - }) + }), ); - (global.navigator.permissions as any) = { query: querySpy }; + (globalThis.navigator.permissions as any) = {query: querySpy}; }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); querySpy.mockClear(); }); afterAll(() => { - jest.useRealTimers(); - (global.navigator.permissions as any) = initialPermissions; + vi.useRealTimers(); + (globalThis.navigator.permissions as any) = initialPermissions; }); it('should be defined', () => { @@ -35,30 +36,30 @@ describe('usePermission', () => { }); it('should render', () => { - const { result } = renderHook(() => usePermission({ name: 'geolocation' })); + const {result} = renderHook(() => usePermission({name: 'geolocation'})); expect(result.error).toBeUndefined(); }); it('should have `not-requested` state initially', () => { - const { result } = renderHook(() => usePermission({ name: 'geolocation' })); + const {result} = renderHook(() => usePermission({name: 'geolocation'})); expect(result.all[0]).toBe('not-requested'); }); it('should have `requested` state initially', () => { - const { result } = renderHook(() => usePermission({ name: 'geolocation' })); + const {result} = renderHook(() => usePermission({name: 'geolocation'})); expect(result.current).toBe('requested'); }); it('should request permission state from `navigator.permissions.query`', () => { - renderHook(() => usePermission({ name: 'geolocation' })); - expect(querySpy).toHaveBeenCalledWith({ name: 'geolocation' }); + renderHook(() => usePermission({name: 'geolocation'})); + expect(querySpy).toHaveBeenCalledWith({name: 'geolocation'}); }); it('should have permission state on promise resolve', async () => { - const { result, waitForNextUpdate } = renderHook(() => usePermission({ name: 'geolocation' })); + const {result, waitForNextUpdate} = renderHook(() => usePermission({name: 'geolocation'})); act(() => { - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); }); await waitForNextUpdate(); @@ -81,18 +82,18 @@ describe('usePermission', () => { resolve(status); }, 1); - }) + }), ); - const { result, waitForNextUpdate } = renderHook(() => usePermission({ name: 'geolocation' })); + const {result, waitForNextUpdate} = renderHook(() => usePermission({name: 'geolocation'})); act(() => { - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); }); await waitForNextUpdate(); expect(result.current).toBe('prompt'); act(() => { - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); }); expect(result.current).toBe('granted'); }); diff --git a/src/usePermission/index.ssr.test.ts b/src/usePermission/index.ssr.test.ts index 49fc0475..62c056c8 100644 --- a/src/usePermission/index.ssr.test.ts +++ b/src/usePermission/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {usePermission} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {usePermission} from '../index.js'; describe('usePermission', () => { it('should be defined', () => { diff --git a/src/usePermission/index.ts b/src/usePermission/index.ts index 1736878f..db5c05f4 100644 --- a/src/usePermission/index.ts +++ b/src/usePermission/index.ts @@ -1,5 +1,5 @@ -import { type MutableRefObject, useEffect, useState } from 'react'; -import { off, on } from '../util/misc.js'; +import {type MutableRefObject, useEffect, useState} from 'react'; +import {off, on} from '../util/misc.js'; export type UsePermissionState = PermissionState | 'not-requested' | 'requested'; @@ -12,7 +12,7 @@ export function usePermission(descriptor: PermissionDescriptor): UsePermissionSt const [state, setState] = useState('not-requested'); useEffect(() => { - const unmount: MutableRefObject<(() => void) | null> = { current: null }; + const unmount: MutableRefObject<(() => void) | null> = {current: null}; setState('requested'); @@ -26,7 +26,7 @@ export function usePermission(descriptor: PermissionDescriptor): UsePermissionSt }; setState(status.state); - on(status, 'change', handleChange, { passive: true }); + on(status, 'change', handleChange, {passive: true}); unmount.current = () => { off(status, 'change', handleChange); diff --git a/src/usePrevious/index.dom.test.ts b/src/usePrevious/index.dom.test.ts index aab84207..4ff8e22d 100644 --- a/src/usePrevious/index.dom.test.ts +++ b/src/usePrevious/index.dom.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {usePrevious} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {usePrevious} from '../index.js'; describe('usePrevious', () => { it('should be defined', () => { diff --git a/src/usePrevious/index.ssr.test.ts b/src/usePrevious/index.ssr.test.ts index 4f06d65d..0507a081 100644 --- a/src/usePrevious/index.ssr.test.ts +++ b/src/usePrevious/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {usePrevious} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {usePrevious} from '../index.js'; describe('usePrevious', () => { it('should be defined', () => { diff --git a/src/usePrevious/index.ts b/src/usePrevious/index.ts index 4e6d020d..ce2ac7c7 100644 --- a/src/usePrevious/index.ts +++ b/src/usePrevious/index.ts @@ -1,4 +1,4 @@ -import { useEffect, useRef } from 'react'; +import {useEffect, useRef} from 'react'; /** * Returns the value passed to the hook on previous render. diff --git a/src/usePreviousDistinct/index.dom.test.ts b/src/usePreviousDistinct/index.dom.test.ts index c20e85e0..5825c81c 100644 --- a/src/usePreviousDistinct/index.dom.test.ts +++ b/src/usePreviousDistinct/index.dom.test.ts @@ -1,7 +1,8 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { usePreviousDistinct } from '../../index.js'; -import { type Predicate } from '../../types.js'; -import { isStrictEqual } from '../../util/const.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {usePreviousDistinct} from '../index.js'; +import {type Predicate} from '../types.js'; +import {isStrictEqual} from '../util/const.js'; describe('usePreviousDistinct', () => { it('should be defined', () => { @@ -9,31 +10,31 @@ describe('usePreviousDistinct', () => { }); it('should render', () => { - const { result } = renderHook(() => usePreviousDistinct(0)); + const {result} = renderHook(() => usePreviousDistinct(0)); expect(result.error).toBeUndefined(); }); it('should return undefined on first render', () => { - const { result } = renderHook(() => usePreviousDistinct(0)); + const {result} = renderHook(() => usePreviousDistinct(0)); expect(result.current).toBeUndefined(); }); it('should return undefined on first render with compare function passed', () => { - const { result } = renderHook(() => usePreviousDistinct(0, isStrictEqual)); + const {result} = renderHook(() => usePreviousDistinct(0, isStrictEqual)); expect(result.current).toBeUndefined(); }); it('should not invoke predicate on first render', () => { - const mockedCompare = jest.fn() as Predicate; + const mockedCompare = vi.fn() as Predicate; - const { result } = renderHook(() => usePreviousDistinct(0, mockedCompare)); + const {result} = renderHook(() => usePreviousDistinct(0, mockedCompare)); expect(result.current).toBeUndefined(); expect(mockedCompare).not.toHaveBeenCalled(); }); it('should not return passed value after unrelated rerender', () => { - const { result, rerender } = renderHook(({ state }) => usePreviousDistinct(state), { - initialProps: { state: 0 }, + const {result, rerender} = renderHook(({state}) => usePreviousDistinct(state), { + initialProps: {state: 0}, }); expect(result.current).toBeUndefined(); @@ -43,57 +44,57 @@ describe('usePreviousDistinct', () => { }); it('should return passed value after related rerender', () => { - const { result, rerender } = renderHook(({ state }) => usePreviousDistinct(state), { - initialProps: { state: 0 }, + const {result, rerender} = renderHook(({state}) => usePreviousDistinct(state), { + initialProps: {state: 0}, }); expect(result.current).toBeUndefined(); // Asserting against initial render. - rerender({ state: 1 }); + rerender({state: 1}); expect(result.current).toBe(0); // Asserting against first re-render. value has now changed }); it('should update previous value only after render with different value', () => { - const { result, rerender } = renderHook(({ state }) => usePreviousDistinct(state), { - initialProps: { state: 0 }, + const {result, rerender} = renderHook(({state}) => usePreviousDistinct(state), { + initialProps: {state: 0}, }); expect(result.current).toBeUndefined(); - rerender({ state: 1 }); // Update + rerender({state: 1}); // Update expect(result.current).toBe(0); - rerender({ state: 5 }); // Update + rerender({state: 5}); // Update expect(result.current).toBe(1); - rerender({ state: 5 }); // No update + rerender({state: 5}); // No update expect(result.current).toBe(1); }); it('should not update to value if it never changes, depsite rerenders', () => { const value = 'yo'; - const { result, rerender } = renderHook(({ state }) => usePreviousDistinct(state), { - initialProps: { state: value }, + const {result, rerender} = renderHook(({state}) => usePreviousDistinct(state), { + initialProps: {state: value}, }); expect(result.current).toBeUndefined(); - rerender({ state: value }); + rerender({state: value}); expect(result.current).toBeUndefined(); - rerender({ state: value }); + rerender({state: value}); expect(result.current).toBeUndefined(); - rerender({ state: value }); + rerender({state: value}); }); it('should update even when going between defined and undefined values', () => { - const { result, rerender } = renderHook<{ state: number | undefined }, number | undefined>( - ({ state }: { state: number | undefined }) => usePreviousDistinct(state), + const {result, rerender} = renderHook<{state: number | undefined}, number | undefined>( + ({state}: {state: number | undefined}) => usePreviousDistinct(state), { - initialProps: { state: 0 }, - } + initialProps: {state: 0}, + }, ); expect(result.current).toBeUndefined(); - rerender({ state: 1 }); + rerender({state: 1}); expect(result.current).toBe(0); - rerender({ state: undefined }); + rerender({state: undefined}); expect(result.current).toBe(1); - rerender({ state: 10 }); + rerender({state: 10}); expect(result.current).toBeUndefined(); }); }); diff --git a/src/usePreviousDistinct/index.ssr.test.ts b/src/usePreviousDistinct/index.ssr.test.ts index 5e7f19b0..7305df6b 100644 --- a/src/usePreviousDistinct/index.ssr.test.ts +++ b/src/usePreviousDistinct/index.ssr.test.ts @@ -1,6 +1,7 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {usePreviousDistinct} from '../../index.js'; -import {isStrictEqual} from '../../util/const.js'; +import {describe, expect, it} from 'vitest'; +import {usePreviousDistinct} from '../index.js'; +import {isStrictEqual} from '../util/const.js'; describe('usePreviousDistinct', () => { it('should be defined', () => { diff --git a/src/usePreviousDistinct/index.ts b/src/usePreviousDistinct/index.ts index 056996bd..a9a20340 100644 --- a/src/usePreviousDistinct/index.ts +++ b/src/usePreviousDistinct/index.ts @@ -1,7 +1,7 @@ -import { useRef, useState } from 'react'; -import { type Predicate } from '../types.js'; -import { useUpdateEffect } from '../useUpdateEffect/index.js'; -import { isStrictEqual } from '../util/const.js'; +import {useRef, useState} from 'react'; +import {type Predicate} from '../types.js'; +import {useUpdateEffect} from '../useUpdateEffect/index.js'; +import {isStrictEqual} from '../util/const.js'; /** * Returns the most recent _distinct_ value passed to the hook on previous render. Distinct here @@ -16,7 +16,7 @@ import { isStrictEqual } from '../util/const.js'; */ export function usePreviousDistinct( value: T, - predicate: Predicate = isStrictEqual + predicate: Predicate = isStrictEqual, ): T | undefined { const [previousState, setPreviousState] = useState(); const currentRef = useRef(value); diff --git a/src/useQueue/index.dom.test.ts b/src/useQueue/index.dom.test.ts index 1c9a9807..f3af9f2f 100644 --- a/src/useQueue/index.dom.test.ts +++ b/src/useQueue/index.dom.test.ts @@ -1,5 +1,6 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; -import {useQueue} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useQueue} from '../index.js'; describe('useQueue', () => { it('should be defined', () => { diff --git a/src/useQueue/index.ssr.test.ts b/src/useQueue/index.ssr.test.ts index 12a9304f..462ead17 100644 --- a/src/useQueue/index.ssr.test.ts +++ b/src/useQueue/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useQueue} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useQueue} from '../index.js'; describe('useQueue', () => { it('should be defined', () => { diff --git a/src/useQueue/index.ts b/src/useQueue/index.ts index 3efc597e..52dfec7a 100644 --- a/src/useQueue/index.ts +++ b/src/useQueue/index.ts @@ -1,6 +1,6 @@ -import { useMemo } from 'react'; -import { useList } from '../useList/index.js'; -import { useSyncedRef } from '../useSyncedRef/index.js'; +import {useMemo} from 'react'; +import {useList} from '../useList/index.js'; +import {useSyncedRef} from '../useSyncedRef/index.js'; export type QueueMethods = { /** @@ -36,7 +36,7 @@ export type QueueMethods = { * @param initialValue The initial value. Defaults to an empty array. */ export function useQueue(initialValue: T[] = []): QueueMethods { - const [list, { removeAt, push }] = useList(initialValue); + const [list, {removeAt, push}] = useList(initialValue); const listRef = useSyncedRef(list); return useMemo( @@ -65,6 +65,6 @@ export function useQueue(initialValue: T[] = []): QueueMethods { }, }), // eslint-disable-next-line react-hooks/exhaustive-deps - [] + [], ); } diff --git a/src/useRafCallback/index.dom.test.ts b/src/useRafCallback/index.dom.test.ts index 84176ce6..513eedf2 100644 --- a/src/useRafCallback/index.dom.test.ts +++ b/src/useRafCallback/index.dom.test.ts @@ -1,30 +1,31 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useRafCallback } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useRafCallback} from '../index.js'; function testFn(_a: any, _b: any, _c: any) {} describe('useRafCallback', () => { - const raf = global.requestAnimationFrame; - const caf = global.cancelAnimationFrame; + const raf = globalThis.requestAnimationFrame; + const caf = globalThis.cancelAnimationFrame; beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); - global.requestAnimationFrame = (cb) => setTimeout(cb); - global.cancelAnimationFrame = (cb) => { + globalThis.requestAnimationFrame = cb => setTimeout(cb); + globalThis.cancelAnimationFrame = (cb) => { clearTimeout(cb); }; }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); - global.requestAnimationFrame = raf; - global.cancelAnimationFrame = caf; + globalThis.requestAnimationFrame = raf; + globalThis.cancelAnimationFrame = caf; }); it('should be defined', () => { @@ -32,24 +33,24 @@ describe('useRafCallback', () => { }); it('should render', () => { - const { result } = renderHook(() => useRafCallback(() => {})); + const {result} = renderHook(() => useRafCallback(() => {})); expect(result.error).toBeUndefined(); }); it('should return function same length and wrapped name', () => { - let { result } = renderHook(() => useRafCallback((_a: any, _b: any, _c: any) => {})); + let {result} = renderHook(() => useRafCallback((_a: any, _b: any, _c: any) => {})); expect(result.current[0].length).toBe(3); - expect(result.current[0].name).toBe(`anonymous__raf`); + expect(result.current[0].name).toBe('anonymous__raf'); result = renderHook(() => useRafCallback(testFn)).result; expect(result.current[0].length).toBe(3); - expect(result.current[0].name).toBe(`testFn__raf`); + expect(result.current[0].name).toBe('testFn__raf'); }); it('should return array of functions', () => { - const { result } = renderHook(() => useRafCallback(() => {})); + const {result} = renderHook(() => useRafCallback(() => {})); expect(result.current).toBeInstanceOf(Array); expect(result.current[0]).toBeInstanceOf(Function); @@ -57,21 +58,21 @@ describe('useRafCallback', () => { }); it('should invoke passed function only on next raf', () => { - const spy = jest.fn(); - const { result } = renderHook(() => useRafCallback(spy)); + const spy = vi.fn(); + const {result} = renderHook(() => useRafCallback(spy)); result.current[0](); expect(spy).not.toHaveBeenCalled(); - jest.advanceTimersToNextTimer(); + vi.advanceTimersToNextTimer(); expect(spy).toHaveBeenCalled(); }); it('should auto-cancel scheduled invocation on consequential calls', () => { - const spy = jest.fn(); - const { result } = renderHook(() => useRafCallback(spy)); + const spy = vi.fn(); + const {result} = renderHook(() => useRafCallback(spy)); result.current[0](); result.current[0](); @@ -80,33 +81,33 @@ describe('useRafCallback', () => { expect(spy).not.toHaveBeenCalled(); - jest.advanceTimersToNextTimer(5); + vi.advanceTimersToNextTimer(5); expect(spy).toHaveBeenCalledTimes(1); }); it('should cancel scheduled invocation on second function call', () => { - const spy = jest.fn(); - const { result } = renderHook(() => useRafCallback(spy)); + const spy = vi.fn(); + const {result} = renderHook(() => useRafCallback(spy)); result.current[0](); result.current[1](); - jest.advanceTimersToNextTimer(5); + vi.advanceTimersToNextTimer(5); expect(spy).not.toHaveBeenCalled(); }); it('should auto-cancel scheduled invocation on component unmount', () => { - const spy = jest.fn(); - const { result, unmount } = renderHook(() => useRafCallback(spy)); + const spy = vi.fn(); + const {result, unmount} = renderHook(() => useRafCallback(spy)); result.current[0](); unmount(); - jest.advanceTimersToNextTimer(5); + vi.advanceTimersToNextTimer(5); expect(spy).not.toHaveBeenCalled(); }); diff --git a/src/useRafCallback/index.ssr.test.ts b/src/useRafCallback/index.ssr.test.ts index b1cf1afc..02231864 100644 --- a/src/useRafCallback/index.ssr.test.ts +++ b/src/useRafCallback/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useRafCallback} from '../../index.js'; +import {describe, expect, it, vi} from 'vitest'; +import {useRafCallback} from '../index.js'; describe('useRafCallback', () => { it('should be defined', () => { @@ -20,7 +21,7 @@ describe('useRafCallback', () => { }); it('should not do anything on returned functions invocation', () => { - const spy = jest.fn(); + const spy = vi.fn(); const {result} = renderHook(() => useRafCallback(spy)); result.current[0](); diff --git a/src/useRafCallback/index.ts b/src/useRafCallback/index.ts index f88c7f1c..dfbacbcb 100644 --- a/src/useRafCallback/index.ts +++ b/src/useRafCallback/index.ts @@ -1,7 +1,7 @@ -import { useCallback, useMemo, useRef } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { useUnmountEffect } from '../useUnmountEffect/index.js'; -import { isBrowser } from '../util/const.js'; +import {useCallback, useMemo, useRef} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {useUnmountEffect} from '../useUnmountEffect/index.js'; +import {isBrowser} from '../util/const.js'; /** * Makes passed function to be called within next animation frame. @@ -12,13 +12,15 @@ import { isBrowser } from '../util/const.js'; */ export function useRafCallback any>( - cb: T + cb: T, ): [(...args: Parameters) => void, () => void] { const cbRef = useSyncedRef(cb); const frame = useRef(0); const cancel = useCallback(() => { - if (!isBrowser) return; + if (!isBrowser) { + return; + } if (frame.current) { cancelAnimationFrame(frame.current); @@ -31,7 +33,9 @@ export function useRafCallback any>( return [ useMemo(() => { const wrapped = (...args: Parameters) => { - if (!isBrowser) return; + if (!isBrowser) { + return; + } cancel(); @@ -42,8 +46,8 @@ export function useRafCallback any>( }; Object.defineProperties(wrapped, { - length: { value: cb.length }, - name: { value: `${cb.name || 'anonymous'}__raf` }, + length: {value: cb.length}, + name: {value: `${cb.name || 'anonymous'}__raf`}, }); return wrapped; diff --git a/src/useRafEffect/index.dom.test.ts b/src/useRafEffect/index.dom.test.ts index 1bd5ac24..d4a65174 100644 --- a/src/useRafEffect/index.dom.test.ts +++ b/src/useRafEffect/index.dom.test.ts @@ -1,12 +1,13 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; -import {useRafEffect} from '../../index.js'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useRafEffect} from '../index.js'; describe('useRafEffect', () => { const raf = globalThis.requestAnimationFrame; const caf = globalThis.cancelAnimationFrame; beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); globalThis.requestAnimationFrame = cb => setTimeout(cb); globalThis.cancelAnimationFrame = (cb) => { @@ -15,11 +16,11 @@ describe('useRafEffect', () => { }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); globalThis.requestAnimationFrame = raf; globalThis.cancelAnimationFrame = caf; @@ -37,7 +38,7 @@ describe('useRafEffect', () => { }); it('should not run unless animation frame', () => { - const spy = jest.fn(); + const spy = vi.fn(); const {rerender} = renderHook( (dep) => { useRafEffect(spy, [dep]); @@ -54,14 +55,14 @@ describe('useRafEffect', () => { expect(spy).toHaveBeenCalledTimes(0); act(() => { - jest.advanceTimersToNextTimer(); + vi.advanceTimersToNextTimer(); }); expect(spy).toHaveBeenCalledTimes(1); }); it('should cancel animation frame on unmount', () => { - const spy = jest.fn(); + const spy = vi.fn(); const {rerender, unmount} = renderHook( (dep) => { useRafEffect(spy, [dep]); @@ -80,7 +81,7 @@ describe('useRafEffect', () => { unmount(); act(() => { - jest.advanceTimersToNextTimer(); + vi.advanceTimersToNextTimer(); }); expect(spy).toHaveBeenCalledTimes(0); diff --git a/src/useRafEffect/index.ssr.test.ts b/src/useRafEffect/index.ssr.test.ts index bfba1b1c..09e7c901 100644 --- a/src/useRafEffect/index.ssr.test.ts +++ b/src/useRafEffect/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useRafEffect} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useRafEffect} from '../index.js'; describe('useRafEffect', () => { it('should be defined', () => { diff --git a/src/useRafEffect/index.ts b/src/useRafEffect/index.ts index e394a2d3..251587a4 100644 --- a/src/useRafEffect/index.ts +++ b/src/useRafEffect/index.ts @@ -1,5 +1,5 @@ -import { type DependencyList, useEffect } from 'react'; -import { useRafCallback } from '../useRafCallback/index.js'; +import {type DependencyList, useEffect} from 'react'; +import {useRafCallback} from '../useRafCallback/index.js'; /** * Like `React.useEffect`, but state is only updated within animation frame. @@ -18,6 +18,6 @@ export function useRafEffect(callback: (...args: any[]) => void, deps: Dependenc return cancelRaf; }, // eslint-disable-next-line react-hooks/exhaustive-deps - deps + deps, ); } diff --git a/src/useRafState/index.dom.test.ts b/src/useRafState/index.dom.test.ts index 43580e99..d0169706 100644 --- a/src/useRafState/index.dom.test.ts +++ b/src/useRafState/index.dom.test.ts @@ -1,28 +1,29 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useRafState } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useRafState} from '../index.js'; describe('useRafState', () => { - const raf = global.requestAnimationFrame; - const caf = global.cancelAnimationFrame; + const raf = globalThis.requestAnimationFrame; + const caf = globalThis.cancelAnimationFrame; beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); - global.requestAnimationFrame = (cb) => setTimeout(cb); - global.cancelAnimationFrame = (cb) => { + globalThis.requestAnimationFrame = cb => setTimeout(cb); + globalThis.cancelAnimationFrame = (cb) => { clearTimeout(cb); }; }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); - global.requestAnimationFrame = raf; - global.cancelAnimationFrame = caf; + globalThis.requestAnimationFrame = raf; + globalThis.cancelAnimationFrame = caf; }); it('should be defined', () => { @@ -30,12 +31,12 @@ describe('useRafState', () => { }); it('should render', () => { - const { result } = renderHook(() => useRafState()); + const {result} = renderHook(() => useRafState()); expect(result.error).toBeUndefined(); }); it('should not update state unless animation frame', () => { - const { result } = renderHook(() => useRafState()); + const {result} = renderHook(() => useRafState()); act(() => { result.current[1](1); @@ -46,7 +47,7 @@ describe('useRafState', () => { expect(result.current[0]).toBeUndefined(); act(() => { - jest.advanceTimersToNextTimer(); + vi.advanceTimersToNextTimer(); }); expect(result.current[0]).toBe(3); @@ -54,7 +55,7 @@ describe('useRafState', () => { }); it('should cancel animation frame on unmount', () => { - const { result, unmount } = renderHook(() => useRafState()); + const {result, unmount} = renderHook(() => useRafState()); act(() => { result.current[1](1); diff --git a/src/useRafState/index.ssr.test.ts b/src/useRafState/index.ssr.test.ts index 86cd8031..b8aac6cd 100644 --- a/src/useRafState/index.ssr.test.ts +++ b/src/useRafState/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useRafState} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useRafState} from '../index.js'; describe('useRafState', () => { it('should be defined', () => { diff --git a/src/useRafState/index.ts b/src/useRafState/index.ts index 8a4201ab..9f499616 100644 --- a/src/useRafState/index.ts +++ b/src/useRafState/index.ts @@ -1,18 +1,18 @@ -import { type Dispatch, type SetStateAction, useState } from 'react'; -import { useRafCallback } from '../useRafCallback/index.js'; -import { useUnmountEffect } from '../useUnmountEffect/index.js'; +import {type Dispatch, type SetStateAction, useState} from 'react'; +import {useRafCallback} from '../useRafCallback/index.js'; +import {useUnmountEffect} from '../useUnmountEffect/index.js'; export function useRafState(initialState: S | (() => S)): [S, Dispatch>]; export function useRafState(): [ - S | undefined, - Dispatch>, + S | undefined, + Dispatch>, ]; /** * Like `React.useState`, but state is only updated within animation frame. */ export function useRafState( - initialState?: S | (() => S) + initialState?: S | (() => S), ): [S | undefined, Dispatch>] { // eslint-disable-next-line react/hook-use-state const [state, innerSetState] = useState(initialState); diff --git a/src/useRenderCount/index.dom.test.ts b/src/useRenderCount/index.dom.test.ts index 2ac4eef5..4ee70694 100644 --- a/src/useRenderCount/index.dom.test.ts +++ b/src/useRenderCount/index.dom.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks'; -import {useRenderCount} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useRenderCount} from '../index.js'; describe('useRendersCount', () => { it('should be defined', () => { diff --git a/src/useRenderCount/index.ssr.test.ts b/src/useRenderCount/index.ssr.test.ts index e713e5b2..7d52a74b 100644 --- a/src/useRenderCount/index.ssr.test.ts +++ b/src/useRenderCount/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useRenderCount} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useRenderCount} from '../index.js'; describe('useRendersCount', () => { it('should be defined', () => { diff --git a/src/useRenderCount/index.ts b/src/useRenderCount/index.ts index bb4f7b20..67988ce6 100644 --- a/src/useRenderCount/index.ts +++ b/src/useRenderCount/index.ts @@ -1,4 +1,4 @@ -import { useRef } from 'react'; +import {useRef} from 'react'; /** * Tracks component's render count including first render. diff --git a/src/useRerender/index.dom.test.ts b/src/useRerender/index.dom.test.ts index dd3f3cbd..0767a4bb 100644 --- a/src/useRerender/index.dom.test.ts +++ b/src/useRerender/index.dom.test.ts @@ -1,6 +1,7 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useRef } from 'react'; -import { useRerender } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {useRef} from 'react'; +import {describe, expect, it} from 'vitest'; +import {useRerender} from '../index.js'; describe('useRerender', () => { it('should be defined', () => { @@ -8,7 +9,7 @@ describe('useRerender', () => { }); it('should return same function on each re-render', () => { - const { result, rerender } = renderHook(() => useRerender()); + const {result, rerender} = renderHook(() => useRerender()); const fn1 = result.current; rerender(); const fn2 = result.current; @@ -21,7 +22,7 @@ describe('useRerender', () => { }); it('should rerender component on returned function invocation', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { const cnt = useRef(0); const rerender = useRerender(); diff --git a/src/useRerender/index.ssr.test.ts b/src/useRerender/index.ssr.test.ts index ac93df85..ba3fd385 100644 --- a/src/useRerender/index.ssr.test.ts +++ b/src/useRerender/index.ssr.test.ts @@ -1,6 +1,7 @@ -import { act, renderHook } from '@testing-library/react-hooks/server'; -import { useRef } from 'react'; -import { useRerender } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/server'; +import {useRef} from 'react'; +import {describe, expect, it} from 'vitest'; +import {useRerender} from '../index.js'; describe('useRerender', () => { it('should be defined', () => { @@ -8,7 +9,7 @@ describe('useRerender', () => { }); it('should do nothing on returned function invocation', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { const cnt = useRef(0); const rerender = useRerender(); diff --git a/src/useRerender/index.ts b/src/useRerender/index.ts index bb04120b..b0727c0a 100644 --- a/src/useRerender/index.ts +++ b/src/useRerender/index.ts @@ -1,4 +1,4 @@ -import { useCallback, useState } from 'react'; +import {useCallback, useState} from 'react'; const stateChanger = (state: number) => (state + 1) % Number.MAX_SAFE_INTEGER; diff --git a/src/useResizeObserver/index.dom.test.ts b/src/useResizeObserver/index.dom.test.ts index e27291e2..69dd4898 100644 --- a/src/useResizeObserver/index.dom.test.ts +++ b/src/useResizeObserver/index.dom.test.ts @@ -1,24 +1,25 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useResizeObserver } from '../../index.js'; -import Mock = jest.Mock; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {useResizeObserver} from '../index.js'; +import Mock = vi.Mock; describe('useResizeObserver', () => { - const observeSpy = jest.fn(); - const unobserveSpy = jest.fn(); - const disconnectSpy = jest.fn(); + const observeSpy = vi.fn(); + const unobserveSpy = vi.fn(); + const disconnectSpy = vi.fn(); let ResizeObserverSpy: Mock; - const initialRO = global.ResizeObserver; + const initialRO = globalThis.ResizeObserver; beforeAll(() => { - ResizeObserverSpy = jest.fn(() => ({ + ResizeObserverSpy = vi.fn(() => ({ observe: observeSpy, unobserve: unobserveSpy, disconnect: disconnectSpy, })); - global.ResizeObserver = ResizeObserverSpy; - jest.useFakeTimers(); + globalThis.ResizeObserver = ResizeObserverSpy; + vi.useFakeTimers(); }); beforeEach(() => { @@ -28,8 +29,8 @@ describe('useResizeObserver', () => { }); afterAll(() => { - global.ResizeObserver = initialRO; - jest.useRealTimers(); + globalThis.ResizeObserver = initialRO; + vi.useRealTimers(); }); it('should be defined', () => { @@ -37,7 +38,7 @@ describe('useResizeObserver', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useResizeObserver(null, () => {}); }); @@ -59,22 +60,22 @@ describe('useResizeObserver', () => { it('should subscribe in case ref first was empty but then gained element', () => { const div = document.createElement('div'); - const ref: React.MutableRefObject = { current: null }; - const spy = jest.fn(); + const ref: React.MutableRefObject = {current: null}; + const spy = vi.fn(); - const { rerender } = renderHook( - ({ ref }) => { + const {rerender} = renderHook( + ({ref}) => { useResizeObserver(ref, spy); }, { - initialProps: { ref }, - } + initialProps: {ref}, + }, ); expect(observeSpy).toHaveBeenCalledTimes(0); ref.current = div; - rerender({ ref }); + rerender({ref}); expect(observeSpy).toHaveBeenCalledTimes(1); @@ -90,15 +91,15 @@ describe('useResizeObserver', () => { expect(spy).not.toHaveBeenCalledWith(entry); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy).toHaveBeenCalledWith(entry); }); it('should invoke each callback listening same element asynchronously using setTimeout0', () => { const div = document.createElement('div'); - const spy1 = jest.fn(); - const spy2 = jest.fn(); + const spy1 = vi.fn(); + const spy2 = vi.fn(); renderHook(() => { useResizeObserver(div, spy1); @@ -122,7 +123,7 @@ describe('useResizeObserver', () => { expect(spy1).not.toHaveBeenCalledWith(entry); expect(spy2).not.toHaveBeenCalledWith(entry); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy1).toHaveBeenCalledWith(entry); expect(spy2).toHaveBeenCalledWith(entry); @@ -131,14 +132,14 @@ describe('useResizeObserver', () => { it('should invoke each callback listening different element', () => { const div = document.createElement('div'); const div2 = document.createElement('div'); - const spy1 = jest.fn(); - const spy2 = jest.fn(); + const spy1 = vi.fn(); + const spy2 = vi.fn(); renderHook(() => { useResizeObserver(div, spy1); }); renderHook(() => { - useResizeObserver({ current: div2 }, spy2); + useResizeObserver({current: div2}, spy2); }); expect(observeSpy).toHaveBeenCalledTimes(2); @@ -162,7 +163,7 @@ describe('useResizeObserver', () => { expect(spy1).not.toHaveBeenCalledWith(entry1); expect(spy2).not.toHaveBeenCalledWith(entry2); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy1).toHaveBeenCalledWith(entry1); expect(spy2).toHaveBeenCalledWith(entry2); @@ -170,8 +171,8 @@ describe('useResizeObserver', () => { it('should unsubscribe on component unmount', () => { const div = document.createElement('div'); - const spy = jest.fn(); - const { unmount } = renderHook(() => { + const spy = vi.fn(); + const {unmount} = renderHook(() => { useResizeObserver(div, spy); }); @@ -190,14 +191,14 @@ describe('useResizeObserver', () => { it('should not subscribe in case observer is disabled', () => { const div = document.createElement('div'); const div2 = document.createElement('div'); - const spy1 = jest.fn(); - const spy2 = jest.fn(); + const spy1 = vi.fn(); + const spy2 = vi.fn(); renderHook(() => { useResizeObserver(div, spy1); }); renderHook(() => { - useResizeObserver({ current: div2 }, spy2, false); + useResizeObserver({current: div2}, spy2, false); }); expect(observeSpy).toHaveBeenCalledTimes(1); @@ -205,26 +206,26 @@ describe('useResizeObserver', () => { it('should unsubscribe and resubscribe in case of observer toggling', () => { const div = document.createElement('div'); - const spy1 = jest.fn(); + const spy1 = vi.fn(); - const { rerender } = renderHook( - ({ enabled }) => { + const {rerender} = renderHook( + ({enabled}) => { useResizeObserver(div, spy1, enabled); }, { - initialProps: { enabled: false }, - } + initialProps: {enabled: false}, + }, ); expect(observeSpy).toHaveBeenCalledTimes(0); expect(unobserveSpy).toHaveBeenCalledTimes(0); - rerender({ enabled: true }); + rerender({enabled: true}); expect(observeSpy).toHaveBeenCalledTimes(1); expect(unobserveSpy).toHaveBeenCalledTimes(0); - rerender({ enabled: false }); + rerender({enabled: false}); expect(observeSpy).toHaveBeenCalledTimes(1); expect(unobserveSpy).toHaveBeenCalledTimes(1); diff --git a/src/useResizeObserver/index.ssr.test.ts b/src/useResizeObserver/index.ssr.test.ts index b139aa50..439e6fbb 100644 --- a/src/useResizeObserver/index.ssr.test.ts +++ b/src/useResizeObserver/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useResizeObserver} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useResizeObserver} from '../index.js'; describe('useResizeObserver', () => { it('should be defined', () => { diff --git a/src/useResizeObserver/index.ts b/src/useResizeObserver/index.ts index 4611a72e..b310bb33 100644 --- a/src/useResizeObserver/index.ts +++ b/src/useResizeObserver/index.ts @@ -1,6 +1,6 @@ -import { type RefObject, useEffect } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { isBrowser } from '../util/const.js'; +import {type RefObject, useEffect} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {isBrowser} from '../util/const.js'; export type UseResizeObserverCallback = (entry: ResizeObserverEntry) => void; @@ -13,19 +13,23 @@ type ResizeObserverSingleton = { let observerSingleton: ResizeObserverSingleton; function getResizeObserver(): ResizeObserverSingleton | undefined { - if (!isBrowser) return undefined; + if (!isBrowser) { + return undefined; + } - if (observerSingleton) return observerSingleton; + if (observerSingleton) { + return observerSingleton; + } const callbacks = new Map>(); const observer = new ResizeObserver((entries) => { - for (const entry of entries) - callbacks.get(entry.target)?.forEach((cb) => + for (const entry of entries) { + callbacks.get(entry.target)?.forEach(cb => setTimeout(() => { cb(entry); - }, 0) - ); + }, 0)); + } }); observerSingleton = { @@ -76,7 +80,7 @@ function getResizeObserver(): ResizeObserverSingleton | undefined { export function useResizeObserver( target: RefObject | T | null, callback: UseResizeObserverCallback, - enabled = true + enabled = true, ): void { const ro = enabled && getResizeObserver(); const cb = useSyncedRef(callback); @@ -90,7 +94,9 @@ export function useResizeObserver( const tgt = target && 'current' in target ? target.current : target; - if (!ro || !tgt) return; + if (!ro || !tgt) { + return; + } // As unsubscription in internals of our ResizeObserver abstraction can // happen a bit later than effect cleanup invocation - we need a marker, diff --git a/src/useScreenOrientation/index.dom.test.ts b/src/useScreenOrientation/index.dom.test.ts index 94d3bc46..80ef1a8f 100644 --- a/src/useScreenOrientation/index.dom.test.ts +++ b/src/useScreenOrientation/index.dom.test.ts @@ -1,5 +1,6 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useScreenOrientation } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {useScreenOrientation} from '../index.js'; describe('useScreenOrientation', () => { // Have to copy implementation as jsdom lacks of it @@ -7,26 +8,26 @@ describe('useScreenOrientation', () => { matches: boolean; media: string; onchange: null; - addListener: jest.Mock; // Deprecated - removeListener: jest.Mock; // Deprecated - addEventListener: jest.Mock; - removeEventListener: jest.Mock; - dispatchEvent: jest.Mock; + addListener: vi.Mock; // Deprecated + removeListener: vi.Mock; // Deprecated + addEventListener: vi.Mock; + removeEventListener: vi.Mock; + dispatchEvent: vi.Mock; }; - const matchMediaMock = jest.fn(); - let initialMatchMedia: typeof window.matchMedia; + const matchMediaMock = vi.fn(); + let initialMatchMedia: typeof globalThis.matchMedia; beforeAll(() => { - initialMatchMedia = window.matchMedia; - Object.defineProperty(window, 'matchMedia', { + initialMatchMedia = globalThis.matchMedia; + Object.defineProperty(globalThis, 'matchMedia', { writable: true, value: matchMediaMock, }); }); afterAll(() => { - window.matchMedia = initialMatchMedia; + globalThis.matchMedia = initialMatchMedia; }); beforeEach(() => { @@ -34,11 +35,11 @@ describe('useScreenOrientation', () => { matches: false, media: query, onchange: null, - addListener: jest.fn(), // Deprecated - removeListener: jest.fn(), // Deprecated - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), + addListener: vi.fn(), // Deprecated + removeListener: vi.fn(), // Deprecated + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + dispatchEvent: vi.fn(), })); }); @@ -51,18 +52,18 @@ describe('useScreenOrientation', () => { }); it('should render', () => { - const { result } = renderHook(() => useScreenOrientation()); + const {result} = renderHook(() => useScreenOrientation()); expect(result.error).toBeUndefined(); }); it('should initialize without value if initializeWithValue option is set to false', () => { - const { result } = renderHook(() => useScreenOrientation({ initializeWithValue: false })); + const {result} = renderHook(() => useScreenOrientation({initializeWithValue: false})); expect(result.all[0]).toBeUndefined(); expect(result.all[1]).toBe('landscape'); }); it('should return `portrait` in case media query matches and `landscape` otherwise', () => { - const { result } = renderHook(() => useScreenOrientation()); + const {result} = renderHook(() => useScreenOrientation()); expect(result.current).toBe('landscape'); const mql = matchMediaMock.mock.results[0].value as MutableMediaQueryList; diff --git a/src/useScreenOrientation/index.ssr.test.ts b/src/useScreenOrientation/index.ssr.test.ts index 57f7f7aa..b87eb382 100644 --- a/src/useScreenOrientation/index.ssr.test.ts +++ b/src/useScreenOrientation/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useScreenOrientation} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useScreenOrientation} from '../index.js'; describe('useScreenOrientation', () => { it('should be defined', () => { diff --git a/src/useScreenOrientation/index.ts b/src/useScreenOrientation/index.ts index 020ab4da..342b14bc 100644 --- a/src/useScreenOrientation/index.ts +++ b/src/useScreenOrientation/index.ts @@ -1,4 +1,4 @@ -import { useMediaQuery } from '../useMediaQuery/index.js'; +import {useMediaQuery} from '../useMediaQuery/index.js'; export type ScreenOrientation = 'portrait' | 'landscape'; @@ -13,11 +13,11 @@ type UseScreenOrientationOptions = { * hook uses CSS3 `orientation` media-query to check screen orientation. */ export function useScreenOrientation( - options?: UseScreenOrientationOptions + options?: UseScreenOrientationOptions, ): ScreenOrientation | undefined { const matches = useMediaQuery('(orientation: portrait)', { initializeWithValue: options?.initializeWithValue ?? true, }); - return matches === undefined ? undefined : matches ? 'portrait' : 'landscape'; + return matches === undefined ? undefined : (matches ? 'portrait' : 'landscape'); } diff --git a/src/useSessionStorageValue/index.dom.test.ts b/src/useSessionStorageValue/index.dom.test.ts index ca75e1d6..d6bc4201 100644 --- a/src/useSessionStorageValue/index.dom.test.ts +++ b/src/useSessionStorageValue/index.dom.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {useSessionStorageValue} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useSessionStorageValue} from '../index.js'; describe('useSessionStorageValue', () => { it('should be defined', () => { diff --git a/src/useSessionStorageValue/index.ssr.test.ts b/src/useSessionStorageValue/index.ssr.test.ts index c000df88..727752a8 100644 --- a/src/useSessionStorageValue/index.ssr.test.ts +++ b/src/useSessionStorageValue/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useSessionStorageValue} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useSessionStorageValue} from '../index.js'; describe('useSessionStorageValue', () => { it('should be defined', () => { diff --git a/src/useSessionStorageValue/index.ts b/src/useSessionStorageValue/index.ts index 3df9f31c..6f63561f 100644 --- a/src/useSessionStorageValue/index.ts +++ b/src/useSessionStorageValue/index.ts @@ -3,12 +3,12 @@ import { type UseStorageValueOptions, type UseStorageValueResult, } from '../useStorageValue/index.js'; -import { isBrowser, noop } from '../util/const.js'; +import {isBrowser, noop} from '../util/const.js'; let IS_SESSION_STORAGE_AVAILABLE: boolean; try { - IS_SESSION_STORAGE_AVAILABLE = isBrowser && Boolean(window.sessionStorage); + IS_SESSION_STORAGE_AVAILABLE = isBrowser && Boolean(globalThis.sessionStorage); } catch { // No need to test as this flag leads to noop behaviour /* istanbul ignore next */ @@ -27,21 +27,19 @@ type UseSessionStorageValue = < /** * Manages a single sessionStorage key. */ -export const useSessionStorageValue: UseSessionStorageValue = IS_SESSION_STORAGE_AVAILABLE - ? (key, options) => { - return useStorageValue(sessionStorage, key, options); - } - : < +export const useSessionStorageValue: UseSessionStorageValue = IS_SESSION_STORAGE_AVAILABLE ? + (key, options) => useStorageValue(sessionStorage, key, options) : + < Type, Default extends Type = Type, Initialize extends boolean | undefined = boolean | undefined, >( _key: string, - _options?: UseStorageValueOptions + _options?: UseStorageValueOptions, ): UseStorageValueResult => { if (isBrowser && process.env.NODE_ENV === 'development') { console.warn('SessionStorage is not available in this environment'); } - return { value: undefined as Type, set: noop, remove: noop, fetch: noop }; + return {value: undefined as Type, set: noop, remove: noop, fetch: noop}; }; diff --git a/src/useSet/index.dom.test.ts b/src/useSet/index.dom.test.ts index 6cffa389..f9049f7b 100644 --- a/src/useSet/index.dom.test.ts +++ b/src/useSet/index.dom.test.ts @@ -1,5 +1,6 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useSet } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {useSet} from '../index.js'; describe('useSet', () => { it('should be defined', () => { @@ -7,12 +8,12 @@ describe('useSet', () => { }); it('should render', () => { - const { result } = renderHook(() => useSet()); + const {result} = renderHook(() => useSet()); expect(result.error).toBeUndefined(); }); it('should return a Set instance with altered add, clear and delete methods', () => { - const { result } = renderHook(() => useSet()); + const {result} = renderHook(() => useSet()); expect(result.current).toBeInstanceOf(Set); expect(result.current.add).not.toBe(Set.prototype.add); expect(result.current.clear).not.toBe(Set.prototype.clear); @@ -20,7 +21,7 @@ describe('useSet', () => { }); it('should accept initial values', () => { - const { result } = renderHook(() => useSet([1, 2, 3])); + const {result} = renderHook(() => useSet([1, 2, 3])); expect(result.current.has(1)).toBe(true); expect(result.current.has(2)).toBe(true); expect(result.current.has(3)).toBe(true); @@ -28,9 +29,9 @@ describe('useSet', () => { }); it('`add` should invoke original method and rerender component', async () => { - const spy = jest.spyOn(Set.prototype, 'add'); + const spy = vi.spyOn(Set.prototype, 'add'); let i = 0; - const { result, waitForNextUpdate } = renderHook(() => [++i, useSet()] as const); + const {result, waitForNextUpdate} = renderHook(() => [++i, useSet()] as const); await act(async () => { expect(result.current[1].add(1)).toBe(result.current[1]); @@ -44,9 +45,9 @@ describe('useSet', () => { }); it('`clear` should invoke original method and rerender component', async () => { - const spy = jest.spyOn(Set.prototype, 'clear'); + const spy = vi.spyOn(Set.prototype, 'clear'); let i = 0; - const { result, waitForNextUpdate } = renderHook(() => [++i, useSet()] as const); + const {result, waitForNextUpdate} = renderHook(() => [++i, useSet()] as const); await act(async () => { result.current[1].clear(); @@ -59,9 +60,9 @@ describe('useSet', () => { }); it('`delete` should invoke original method and rerender component', async () => { - const spy = jest.spyOn(Set.prototype, 'delete'); + const spy = vi.spyOn(Set.prototype, 'delete'); let i = 0; - const { result, waitForNextUpdate } = renderHook(() => [++i, useSet([1])] as const); + const {result, waitForNextUpdate} = renderHook(() => [++i, useSet([1])] as const); await act(async () => { expect(result.current[1].delete(1)).toBe(true); diff --git a/src/useSet/index.ssr.test.ts b/src/useSet/index.ssr.test.ts index efbc2b45..2e0ceeb2 100644 --- a/src/useSet/index.ssr.test.ts +++ b/src/useSet/index.ssr.test.ts @@ -1,6 +1,7 @@ -import { act } from '@testing-library/react-hooks/dom'; -import { renderHook } from '@testing-library/react-hooks/server'; -import { useSet } from '../../index.js'; +import {act} from '@testing-library/react-hooks/dom'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {describe, expect, it, vi} from 'vitest'; +import {useSet} from '../index.js'; describe('useSet', () => { it('should be defined', () => { @@ -8,12 +9,12 @@ describe('useSet', () => { }); it('should render', () => { - const { result } = renderHook(() => useSet()); + const {result} = renderHook(() => useSet()); expect(result.error).toBeUndefined(); }); it('should return a Set instance with altered add, clear and delete methods', () => { - const { result } = renderHook(() => useSet()); + const {result} = renderHook(() => useSet()); expect(result.current).toBeInstanceOf(Set); expect(result.current.add).not.toBe(Set.prototype.add); expect(result.current.clear).not.toBe(Set.prototype.clear); @@ -21,7 +22,7 @@ describe('useSet', () => { }); it('should accept initial values', () => { - const { result } = renderHook(() => useSet([1, 2, 3])); + const {result} = renderHook(() => useSet([1, 2, 3])); expect(result.current.has(1)).toBe(true); expect(result.current.has(2)).toBe(true); expect(result.current.has(3)).toBe(true); @@ -29,9 +30,9 @@ describe('useSet', () => { }); it('`add` should invoke original method and rerender component', () => { - const spy = jest.spyOn(Set.prototype, 'add'); + const spy = vi.spyOn(Set.prototype, 'add'); let i = 0; - const { result } = renderHook(() => [++i, useSet()] as const); + const {result} = renderHook(() => [++i, useSet()] as const); act(() => { expect(result.current[1].add(1)).toBe(result.current[1]); @@ -44,9 +45,9 @@ describe('useSet', () => { }); it('`clear` should invoke original method and rerender component', () => { - const spy = jest.spyOn(Set.prototype, 'clear'); + const spy = vi.spyOn(Set.prototype, 'clear'); let i = 0; - const { result } = renderHook(() => [++i, useSet()] as const); + const {result} = renderHook(() => [++i, useSet()] as const); act(() => { result.current[1].clear(); @@ -58,9 +59,9 @@ describe('useSet', () => { }); it('`delete` should invoke original method and rerender component', () => { - const spy = jest.spyOn(Set.prototype, 'delete'); + const spy = vi.spyOn(Set.prototype, 'delete'); let i = 0; - const { result } = renderHook(() => [++i, useSet([1])] as const); + const {result} = renderHook(() => [++i, useSet([1])] as const); act(() => { expect(result.current[1].delete(1)).toBe(true); diff --git a/src/useSet/index.ts b/src/useSet/index.ts index 4976a3e1..77d329f3 100644 --- a/src/useSet/index.ts +++ b/src/useSet/index.ts @@ -1,5 +1,5 @@ -import { useRef } from 'react'; -import { useRerender } from '../useRerender/index.js'; +import {useRef} from 'react'; +import {useRerender} from '../useRerender/index.js'; const proto = Set.prototype; diff --git a/src/useStorageValue/index.dom.test.ts b/src/useStorageValue/index.dom.test.ts index b942109b..43605f37 100644 --- a/src/useStorageValue/index.dom.test.ts +++ b/src/useStorageValue/index.dom.test.ts @@ -1,6 +1,16 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useStorageValue } from '../index.js'; -import { newStorage } from './misc.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, type Mocked, vi} from 'vitest'; +import {useStorageValue} from './index.js'; + +export const newStorage = ( + get: Storage['getItem'] = () => null, + set: Storage['setItem'] = () => {}, + remove: Storage['removeItem'] = () => {}, +) => ({ + getItem: vi.fn(get), + setItem: vi.fn(set), + removeItem: vi.fn(remove), +} as Mocked); describe('useStorageValue', () => { it('should be defined', () => { @@ -8,13 +18,13 @@ describe('useStorageValue', () => { }); it('should render', () => { - const { result } = renderHook(() => useStorageValue(newStorage(), 'foo')); + const {result} = renderHook(() => useStorageValue(newStorage(), 'foo')); expect(result.error).toBeUndefined(); }); it('should action methods should be stable between renders', () => { - const { result, rerender } = renderHook(() => useStorageValue(newStorage(), 'foo')); + const {result, rerender} = renderHook(() => useStorageValue(newStorage(), 'foo')); rerender(); act(() => { @@ -22,7 +32,7 @@ describe('useStorageValue', () => { }); rerender(); - const firstResult = result.all[0] as ReturnType; + const firstResult = result.all[0]; expect(firstResult.set).toBe(result.current.set); expect(firstResult.fetch).toBe(result.current.fetch); @@ -30,8 +40,8 @@ describe('useStorageValue', () => { }); it('should fetch value from storage only on init', () => { - const storage = newStorage((key) => `"${key}"`); - const { result, rerender } = renderHook(() => useStorageValue(storage, 'foo')); + const storage = newStorage(key => `"${key}"`); + const {result, rerender} = renderHook(() => useStorageValue(storage, 'foo')); expect(result.current.value).toBe('foo'); expect(storage.getItem).toHaveBeenCalledWith('foo'); @@ -44,9 +54,9 @@ describe('useStorageValue', () => { }); it('should pass value through JSON.parse during fetch', () => { - const JSONParseSpy = jest.spyOn(JSON, 'parse'); - const storage = newStorage((key) => `"${key}"`); - const { result } = renderHook(() => useStorageValue(storage, 'foo')); + const JSONParseSpy = vi.spyOn(JSON, 'parse'); + const storage = newStorage(key => `"${key}"`); + const {result} = renderHook(() => useStorageValue(storage, 'foo')); expect(result.current.value).toBe('foo'); expect(JSONParseSpy).toHaveBeenCalledWith('"foo"'); @@ -55,22 +65,20 @@ describe('useStorageValue', () => { }); it('should yield default value in case storage returned null during fetch', () => { - const { result } = renderHook(() => - useStorageValue(newStorage(), 'foo', { defaultValue: 'defaultValue' }) - ); + const {result} = renderHook(() => + useStorageValue(newStorage(), 'foo', {defaultValue: 'defaultValue'})); expect(result.current.value).toBe('defaultValue'); }); it('should yield default value and console.warn in case storage returned corrupted JSON', () => { - const warnSpy = jest.spyOn(console, 'warn').mockImplementationOnce(() => {}); - const { result } = renderHook(() => + const warnSpy = vi.spyOn(console, 'warn').mockImplementationOnce(() => {}); + const {result} = renderHook(() => useStorageValue( newStorage(() => 'corrupted JSON'), 'foo', - { defaultValue: 'defaultValue' } - ) - ); + {defaultValue: 'defaultValue'}, + )); expect(result.current.value).toBe('defaultValue'); expect(warnSpy.mock.calls[0][0]).toBeInstanceOf(SyntaxError); @@ -79,13 +87,12 @@ describe('useStorageValue', () => { }); it('should not fetch value on first render in case `initializeWithValue` options is set to false', () => { - const { result } = renderHook(() => + const {result} = renderHook(() => useStorageValue( newStorage(() => '"bar"'), 'foo', - { initializeWithValue: false } - ) - ); + {initializeWithValue: false}, + )); // @ts-expect-error invalid typings of testing library expect(result.all[0].value).toBe(undefined); @@ -94,19 +101,18 @@ describe('useStorageValue', () => { }); it('should fetch value on first render in case `initializeWithValue` options is set to true', () => { - const { result } = renderHook(() => + const {result} = renderHook(() => useStorageValue( newStorage(() => '"bar"'), 'foo', - { initializeWithValue: true } - ) - ); + {initializeWithValue: true}, + )); // @ts-expect-error invalid typings of testing library expect(result.all[0].value).toBe('bar'); }); it('should set storage value on .set() call', () => { - const { result } = renderHook(() => useStorageValue(newStorage(), 'foo')); + const {result} = renderHook(() => useStorageValue(newStorage(), 'foo')); expect(result.current.value).toBe(null); act(() => { @@ -114,7 +120,7 @@ describe('useStorageValue', () => { }); expect(result.current.value).toBe('bar'); - const spySetter = jest.fn(() => 'baz'); + const spySetter = vi.fn(() => 'baz'); act(() => { result.current.set(spySetter); }); @@ -123,8 +129,8 @@ describe('useStorageValue', () => { }); it('should call JSON.stringify on setState call', () => { - const JSONStringifySpy = jest.spyOn(JSON, 'stringify'); - const { result } = renderHook(() => useStorageValue(newStorage(), 'foo')); + const JSONStringifySpy = vi.spyOn(JSON, 'stringify'); + const {result} = renderHook(() => useStorageValue(newStorage(), 'foo')); expect(result.current.value).toBe(null); act(() => { @@ -136,16 +142,15 @@ describe('useStorageValue', () => { }); it('should not store null or data that cannot be processed by JSON serializer', () => { - const { result } = renderHook(() => + const {result} = renderHook(() => useStorageValue( newStorage(() => '"bar"'), 'foo', - { defaultValue: 'default value' } - ) - ); + {defaultValue: 'default value'}, + )); - const invalidData: { a?: unknown } = {}; - invalidData.a = { b: invalidData }; + const invalidData: {a?: unknown} = {}; + invalidData.a = {b: invalidData}; expect(result.current.value).toBe('bar'); act(() => { @@ -157,7 +162,7 @@ describe('useStorageValue', () => { it('should call storage`s removeItem on .remove() call', () => { const storage = newStorage(); - const { result } = renderHook(() => useStorageValue(storage, 'foo')); + const {result} = renderHook(() => useStorageValue(storage, 'foo')); act(() => { result.current.remove(); @@ -166,13 +171,12 @@ describe('useStorageValue', () => { }); it('should set state to default value on item remove', () => { - const { result } = renderHook(() => + const {result} = renderHook(() => useStorageValue( newStorage(() => '"bar"'), 'foo', - { defaultValue: 'default value' } - ) - ); + {defaultValue: 'default value'}, + )); expect(result.current.value).toBe('bar'); act(() => { @@ -183,9 +187,8 @@ describe('useStorageValue', () => { it('should refetch value from store on .fetch() call', () => { const storage = newStorage(() => '"bar"'); - const { result } = renderHook(() => - useStorageValue(storage, 'foo', { defaultValue: 'default value' }) - ); + const {result} = renderHook(() => + useStorageValue(storage, 'foo', {defaultValue: 'default value'})); expect(storage.getItem).toHaveBeenCalledTimes(1); expect(result.current.value).toBe('bar'); @@ -200,33 +203,36 @@ describe('useStorageValue', () => { }); it('should refetch value on key change', () => { - const storage = newStorage((k) => `"${k}"`); - const { result, rerender } = renderHook( - ({ key }) => useStorageValue(storage, key, { defaultValue: 'default value' }), - { initialProps: { key: 'foo' } } + const storage = newStorage(k => `"${k}"`); + const {result, rerender} = renderHook( + ({key}) => useStorageValue(storage, key, {defaultValue: 'default value'}), + {initialProps: {key: 'foo'}}, ); expect(result.current.value).toBe('foo'); - rerender({ key: 'bar' }); + rerender({key: 'bar'}); expect(result.current.value).toBe('bar'); }); it('should use custom stringify option', () => { const storage = newStorage(); - const { result } = renderHook(() => + const {result} = renderHook(() => useStorageValue(storage, 'foo', { stringify(data) { - return data.map((number_) => number_.toString(16)).join(':'); + return data.map(number_ => number_.toString(16)).join(':'); }, parse(str, fallback) { - if (str === null) return fallback; + if (str === null) { + return fallback; + } - if (str === '') return []; + if (str === '') { + return []; + } - return str.split(':').map((number_) => Number.parseInt(number_, 16)); + return str.split(':').map(number_ => Number.parseInt(number_, 16)); }, - }) - ); + })); expect(result.current.value).toBe(null); act(() => { @@ -238,32 +244,35 @@ describe('useStorageValue', () => { it('should use custom parse option', () => { const storage = newStorage(); storage.getItem.mockImplementationOnce(() => '1:2:3'); - const { result } = renderHook(() => + const {result} = renderHook(() => useStorageValue(storage, 'foo', { stringify(data) { - return data.map((number_) => number_.toString(16)).join(':'); + return data.map(number_ => number_.toString(16)).join(':'); }, parse(str, fallback) { - if (str === null) return fallback; + if (str === null) { + return fallback; + } - if (str === '') return []; + if (str === '') { + return []; + } - return str.split(':').map((number_) => Number.parseInt(number_, 16)); + return str.split(':').map(number_ => Number.parseInt(number_, 16)); }, - }) - ); + })); expect(result.current.value).toEqual([1, 2, 3]); }); describe('should handle window`s `storage` event', () => { it('should update state if tracked key is updated', () => { - const { result } = renderHook(() => useStorageValue(localStorage, 'foo')); + const {result} = renderHook(() => useStorageValue(localStorage, 'foo')); expect(result.current.value).toBe(null); localStorage.setItem('foo', 'bar'); act(() => { - window.dispatchEvent( - new StorageEvent('storage', { key: 'foo', storageArea: localStorage, newValue: '"foo"' }) + globalThis.dispatchEvent( + new StorageEvent('storage', {key: 'foo', storageArea: localStorage, newValue: '"foo"'}), ); }); @@ -272,27 +281,27 @@ describe('useStorageValue', () => { }); it('should not update data on event storage or key mismatch', () => { - const { result } = renderHook(() => useStorageValue(localStorage, 'foo')); + const {result} = renderHook(() => useStorageValue(localStorage, 'foo')); expect(result.current.value).toBe(null); act(() => { - window.dispatchEvent( + globalThis.dispatchEvent( new StorageEvent('storage', { key: 'foo', storageArea: sessionStorage, newValue: '"foo"', - }) + }), ); }); expect(result.current.value).toBe(null); act(() => { - window.dispatchEvent( + globalThis.dispatchEvent( new StorageEvent('storage', { key: 'bar', storageArea: localStorage, newValue: 'foo', - }) + }), ); }); expect(result.current.value).toBe(null); @@ -303,8 +312,8 @@ describe('useStorageValue', () => { describe('synchronisation', () => { it('should update state of all hooks with the same key in same storage', () => { - const { result: res } = renderHook(() => useStorageValue(localStorage, 'foo')); - const { result: res1 } = renderHook(() => useStorageValue(localStorage, 'foo')); + const {result: res} = renderHook(() => useStorageValue(localStorage, 'foo')); + const {result: res1} = renderHook(() => useStorageValue(localStorage, 'foo')); expect(res.current.value).toBe(null); expect(res1.current.value).toBe(null); diff --git a/src/useStorageValue/index.ssr.test.ts b/src/useStorageValue/index.ssr.test.ts index 9744c407..300bcc94 100644 --- a/src/useStorageValue/index.ssr.test.ts +++ b/src/useStorageValue/index.ssr.test.ts @@ -1,6 +1,7 @@ import {act, renderHook} from '@testing-library/react-hooks/server'; -import {useStorageValue} from '../index.js'; -import {newStorage} from './misc.js'; +import {describe, expect, it} from 'vitest'; +import {newStorage} from './index.dom.test.js'; +import {useStorageValue} from './index.js'; describe('useStorageValue', () => { it('should be defined', () => { @@ -38,7 +39,7 @@ describe('useStorageValue', () => { it('should not set storage value on .set() call', () => { const storage = newStorage(); const {result} = renderHook(() => - useStorageValue < string > (storage, 'foo', {initializeWithValue: false})); + useStorageValue(storage, 'foo', {initializeWithValue: false})); expect(result.current.value).toBe(undefined); act(() => { @@ -51,7 +52,7 @@ describe('useStorageValue', () => { it('should not call storage`s removeItem on .remove() call', () => { const storage = newStorage(); const {result} = renderHook(() => - useStorageValue < string > (storage, 'foo', {initializeWithValue: false})); + useStorageValue(storage, 'foo', {initializeWithValue: false})); act(() => { result.current.remove(); @@ -62,7 +63,7 @@ describe('useStorageValue', () => { it('should not set state to default value on item remove', () => { const storage = newStorage(() => '"bar"'); const {result} = renderHook(() => - useStorageValue < string > (storage, 'foo', { + useStorageValue(storage, 'foo', { defaultValue: 'default value', initializeWithValue: false, })); diff --git a/src/useStorageValue/index.ts b/src/useStorageValue/index.ts index fb5e71db..63b9c361 100644 --- a/src/useStorageValue/index.ts +++ b/src/useStorageValue/index.ts @@ -1,11 +1,11 @@ -import { useEffect, useMemo, useState } from 'react'; -import { useFirstMountState } from '../useFirstMountState/index.js'; -import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/index.js'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { useUpdateEffect } from '../useUpdateEffect/index.js'; -import { isBrowser } from '../util/const.js'; -import { off, on } from '../util/misc.js'; -import { type NextState, resolveHookState } from '../util/resolveHookState.js'; +import {useEffect, useMemo, useState} from 'react'; +import {useFirstMountState} from '../useFirstMountState/index.js'; +import {useIsomorphicLayoutEffect} from '../useIsomorphicLayoutEffect/index.js'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {useUpdateEffect} from '../useUpdateEffect/index.js'; +import {isBrowser} from '../util/const.js'; +import {off, on} from '../util/misc.js'; +import {type NextState, resolveHookState} from '../util/resolveHookState.js'; const storageListeners = new Map>>(); @@ -13,7 +13,7 @@ const invokeStorageKeyListeners = ( s: Storage, key: string, value: string | null, - skipListener?: CallableFunction + skipListener?: CallableFunction, ) => { storageListeners .get(s) @@ -35,7 +35,7 @@ const addStorageListener = (s: Storage, key: string, listener: CallableFunction) // In case of first listener added within browser environment we // want to bind single storage event handler if (isBrowser && storageListeners.size === 0) { - on(window, 'storage', storageEventHandler, { passive: true }); + on(globalThis, 'storage', storageEventHandler, {passive: true}); } let keys = storageListeners.get(s); @@ -79,7 +79,7 @@ const removeStorageListener = (s: Storage, key: string, listener: CallableFuncti // Unbind storage event handler in browser environment in case there is no // storage keys listeners left if (isBrowser && storageListeners.size === 0) { - off(window, 'storage', storageEventHandler); + off(globalThis, 'storage', storageEventHandler); } }; @@ -142,9 +142,9 @@ export function useStorageValue< >( storage: Storage, key: string, - options?: UseStorageValueOptions + options?: UseStorageValueOptions, ): UseStorageValueResult { - const optionsRef = useSyncedRef({ ...DEFAULT_OPTIONS, ...options }); + const optionsRef = useSyncedRef({...DEFAULT_OPTIONS, ...options}); const parse = (str: string | null, fallback: Type | null): Type | null => { const parseFunction = optionsRef.current.parse ?? defaultParse; return parseFunction(str, fallback); @@ -160,7 +160,7 @@ export function useStorageValue< fetch: () => parse( storageActions.current.fetchRaw(), - optionsRef.current.defaultValue as Required | null + optionsRef.current.defaultValue as Required | null, ), remove() { storage.removeItem(key); @@ -178,9 +178,9 @@ export function useStorageValue< const isFirstMount = useFirstMountState(); const [state, setState] = useState( - optionsRef.current?.initializeWithValue && isFirstMount - ? storageActions.current.fetch() - : undefined + optionsRef.current?.initializeWithValue && isFirstMount ? + storageActions.current.fetch() : + undefined, ); const stateRef = useSyncedRef(state); @@ -216,11 +216,13 @@ export function useStorageValue< const actions = useSyncedRef({ set(value: NextState>) { - if (!isBrowser) return; + if (!isBrowser) { + return; + } const s = resolveHookState( value, - stateRef.current as UseStorageValueValue + stateRef.current as UseStorageValueValue, ); const storeValue = storageActions.current.store(s); @@ -229,13 +231,17 @@ export function useStorageValue< } }, delete() { - if (!isBrowser) return; + if (!isBrowser) { + return; + } storageActions.current.remove(); invokeStorageKeyListeners(storage, key, null); }, fetch() { - if (!isBrowser) return; + if (!isBrowser) { + return; + } invokeStorageKeyListeners(storage, key, storageActions.current.fetchRaw()); }, @@ -255,7 +261,7 @@ export function useStorageValue< }, }), // eslint-disable-next-line react-hooks/exhaustive-deps - [] + [], ); return useMemo( @@ -264,7 +270,7 @@ export function useStorageValue< ...staticActions, }), // eslint-disable-next-line react-hooks/exhaustive-deps - [state] + [state], ); } @@ -273,7 +279,7 @@ const defaultStringify = (data: unknown): string | null => { /* istanbul ignore next */ if (process.env.NODE_ENV === 'development') { console.warn( - `'null' is not a valid data for useStorageValue hook, this operation will take no effect` + '\'null\' is not a valid data for useStorageValue hook, this operation will take no effect', ); } @@ -292,7 +298,9 @@ const defaultStringify = (data: unknown): string | null => { }; const defaultParse = (str: string | null, fallback: T | null): T | null => { - if (str === null) return fallback; + if (str === null) { + return fallback; + } try { // eslint-disable-next-line @typescript-eslint/no-unsafe-return diff --git a/src/useSyncedRef/index.dom.test.ts b/src/useSyncedRef/index.dom.test.ts index 4b37930d..8eaa2b3d 100644 --- a/src/useSyncedRef/index.dom.test.ts +++ b/src/useSyncedRef/index.dom.test.ts @@ -1,5 +1,6 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useSyncedRef } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it} from 'vitest'; +import {useSyncedRef} from '../index.js'; describe('useSyncedRef', () => { it('should be defined', () => { @@ -7,18 +8,18 @@ describe('useSyncedRef', () => { }); it('should render', () => { - const { result } = renderHook(() => useSyncedRef(1)); + const {result} = renderHook(() => useSyncedRef(1)); expect(result.error).toBeUndefined(); }); it('should return ref object', () => { - const { result } = renderHook(() => useSyncedRef(1)); + const {result} = renderHook(() => useSyncedRef(1)); - expect(result.current).toEqual({ current: 1 }); + expect(result.current).toEqual({current: 1}); }); it('should return same ref between renders', () => { - const { result, rerender } = renderHook(() => useSyncedRef(1)); + const {result, rerender} = renderHook(() => useSyncedRef(1)); const ref = result.current; rerender(); @@ -30,22 +31,22 @@ describe('useSyncedRef', () => { }); it('should contain actual value on each render', () => { - const { result, rerender } = renderHook(({ val }) => useSyncedRef(val), { + const {result, rerender} = renderHook(({val}) => useSyncedRef(val), { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - initialProps: { val: 1 as any }, + initialProps: {val: 1 as any}, }); expect(result.current.current).toBe(1); - const value1 = { foo: 'bar' }; - rerender({ val: value1 }); + const value1 = {foo: 'bar'}; + rerender({val: value1}); expect(result.current.current).toBe(value1); const value2 = ['a', 'b', 'c']; - rerender({ val: value2 }); + rerender({val: value2}); expect(result.current.current).toBe(value2); }); it('should throw on attempt to change ref', () => { - const { result } = renderHook(() => useSyncedRef(1)); + const {result} = renderHook(() => useSyncedRef(1)); expect(() => { // @ts-expect-error testing irrelevant usage diff --git a/src/useSyncedRef/index.ssr.test.ts b/src/useSyncedRef/index.ssr.test.ts index 3fd337d3..a4f0974f 100644 --- a/src/useSyncedRef/index.ssr.test.ts +++ b/src/useSyncedRef/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useSyncedRef} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useSyncedRef} from '../index.js'; describe('useSyncedRef', () => { it('should be defined', () => { diff --git a/src/useSyncedRef/index.ts b/src/useSyncedRef/index.ts index 8581564a..8beafdd3 100644 --- a/src/useSyncedRef/index.ts +++ b/src/useSyncedRef/index.ts @@ -1,11 +1,11 @@ -import { useMemo, useRef } from 'react'; +import {useMemo, useRef} from 'react'; /** * Like `useRef`, but it returns immutable ref that contains actual value. * * @param value */ -export function useSyncedRef(value: T): { readonly current: T } { +export function useSyncedRef(value: T): {readonly current: T} { const ref = useRef(value); ref.current = value; @@ -17,6 +17,6 @@ export function useSyncedRef(value: T): { readonly current: T } { return ref.current; }, }), - [] + [], ); } diff --git a/src/useThrottledCallback/index.dom.test.ts b/src/useThrottledCallback/index.dom.test.ts index eeb9e3bd..a108b718 100644 --- a/src/useThrottledCallback/index.dom.test.ts +++ b/src/useThrottledCallback/index.dom.test.ts @@ -1,19 +1,20 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useThrottledCallback } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useThrottledCallback} from '../index.js'; function testFn(_a: any, _b: any, _c: any) {} describe('useThrottledCallback', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { @@ -21,95 +22,94 @@ describe('useThrottledCallback', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useThrottledCallback(() => {}, [], 200); }); expect(result.error).toBeUndefined(); }); it('should return function same length and wrapped name', () => { - let { result } = renderHook(() => - useThrottledCallback((_a: any, _b: any, _c: any) => {}, [], 200) - ); + let {result} = renderHook(() => + useThrottledCallback((_a: any, _b: any, _c: any) => {}, [], 200)); expect(result.current.length).toBe(3); - expect(result.current.name).toBe(`anonymous__throttled__200`); + expect(result.current.name).toBe('anonymous__throttled__200'); result = renderHook(() => useThrottledCallback(testFn, [], 100)).result; expect(result.current.length).toBe(3); - expect(result.current.name).toBe(`testFn__throttled__100`); + expect(result.current.name).toBe('testFn__throttled__100'); }); it('should return new callback if delay is changed', () => { - const { result, rerender } = renderHook( - ({ delay }) => useThrottledCallback(() => {}, [], delay), + const {result, rerender} = renderHook( + ({delay}) => useThrottledCallback(() => {}, [], delay), { - initialProps: { delay: 200 }, - } + initialProps: {delay: 200}, + }, ); const cb1 = result.current; - rerender({ delay: 123 }); + rerender({delay: 123}); expect(cb1).not.toBe(result.current); }); it('should invoke given callback immediately', () => { - const cb = jest.fn(); - const { result } = renderHook(() => useThrottledCallback(cb, [], 200)); + const cb = vi.fn(); + const {result} = renderHook(() => useThrottledCallback(cb, [], 200)); result.current(); expect(cb).toHaveBeenCalledTimes(1); }); it('should pass parameters to callback', () => { - const cb = jest.fn((_a: number, _c: string) => {}); - const { result } = renderHook(() => useThrottledCallback(cb, [], 200)); + const cb = vi.fn((_a: number, _c: string) => {}); + const {result} = renderHook(() => useThrottledCallback(cb, [], 200)); result.current(1, 'abc'); expect(cb).toHaveBeenCalledWith(1, 'abc'); }); it('should ignore consequential calls occurred within delay, but execute last call after delay is passed', () => { - const cb = jest.fn(); - const { result } = renderHook(() => useThrottledCallback(cb, [], 200)); + const cb = vi.fn(); + const {result} = renderHook(() => useThrottledCallback(cb, [], 200)); result.current(); result.current(); result.current(); result.current(); expect(cb).toHaveBeenCalledTimes(1); - jest.advanceTimersByTime(199); + vi.advanceTimersByTime(199); result.current(); expect(cb).toHaveBeenCalledTimes(1); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(cb).toHaveBeenCalledTimes(2); result.current(); expect(cb).toHaveBeenCalledTimes(2); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); expect(cb).toHaveBeenCalledTimes(3); }); it('should drop trailing execution if `noTrailing is set to true`', () => { - const cb = jest.fn(); - const { result } = renderHook(() => useThrottledCallback(cb, [], 200, true)); + const cb = vi.fn(); + const {result} = renderHook(() => useThrottledCallback(cb, [], 200, true)); result.current(); result.current(); result.current(); result.current(); expect(cb).toHaveBeenCalledTimes(1); - jest.advanceTimersByTime(199); + vi.advanceTimersByTime(199); result.current(); expect(cb).toHaveBeenCalledTimes(1); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(cb).toHaveBeenCalledTimes(1); result.current(); result.current(); result.current(); expect(cb).toHaveBeenCalledTimes(2); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); expect(cb).toHaveBeenCalledTimes(2); }); }); diff --git a/src/useThrottledCallback/index.ssr.test.ts b/src/useThrottledCallback/index.ssr.test.ts index 06f6a844..999183ab 100644 --- a/src/useThrottledCallback/index.ssr.test.ts +++ b/src/useThrottledCallback/index.ssr.test.ts @@ -1,17 +1,18 @@ -import { renderHook } from '@testing-library/react-hooks/server'; -import { useThrottledCallback } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/server'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useThrottledCallback} from '../index.js'; describe('useThrottledCallback', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { @@ -19,26 +20,26 @@ describe('useThrottledCallback', () => { }); it('should render', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { useThrottledCallback(() => {}, [], 200); }); expect(result.error).toBeUndefined(); }); it('should invoke given callback immediately', () => { - const cb = jest.fn(); - const { result } = renderHook(() => useThrottledCallback(cb, [], 200)); + const cb = vi.fn(); + const {result} = renderHook(() => useThrottledCallback(cb, [], 200)); result.current(); expect(cb).toHaveBeenCalledTimes(1); }); it('should pass parameters to callback', () => { - const cb = jest.fn((_a: number, _c: string) => {}); - const { result } = renderHook(() => useThrottledCallback(cb, [], 200)); + const cb = vi.fn((_a: number, _c: string) => {}); + const {result} = renderHook(() => useThrottledCallback(cb, [], 200)); result.current(1, 'abc'); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); expect(cb).toHaveBeenCalledWith(1, 'abc'); }); }); diff --git a/src/useThrottledCallback/index.ts b/src/useThrottledCallback/index.ts index c8965bc1..dcce6111 100644 --- a/src/useThrottledCallback/index.ts +++ b/src/useThrottledCallback/index.ts @@ -1,5 +1,5 @@ -import { type DependencyList, useMemo, useRef } from 'react'; -import { useUnmountEffect } from '../useUnmountEffect/index.js'; +import {type DependencyList, useMemo, useRef} from 'react'; +import {useUnmountEffect} from '../useUnmountEffect/index.js'; export type ThrottledFunction any> = ( this: ThisParameterType, @@ -20,10 +20,10 @@ export function useThrottledCallback any>( callback: Fn, deps: DependencyList, delay: number, - noTrailing = false + noTrailing = false, ): ThrottledFunction { const timeout = useRef>(); - const lastCall = useRef<{ args: Parameters; this: ThisParameterType }>(); + const lastCall = useRef<{args: Parameters; this: ThisParameterType}>(); useUnmountEffect(() => { if (timeout.current) { @@ -54,7 +54,7 @@ export function useThrottledCallback any>( if (timeout.current) { // If we cant execute callback immediately - save its arguments and // context to execute it when delay is passed - lastCall.current = { args, this: this }; + lastCall.current = {args, this: this}; return; } @@ -63,8 +63,8 @@ export function useThrottledCallback any>( } as ThrottledFunction; Object.defineProperties(wrapped, { - length: { value: callback.length }, - name: { value: `${callback.name || 'anonymous'}__throttled__${delay}` }, + length: {value: callback.length}, + name: {value: `${callback.name || 'anonymous'}__throttled__${delay}`}, }); return wrapped; diff --git a/src/useThrottledEffect/index.dom.test.ts b/src/useThrottledEffect/index.dom.test.ts index 98145653..5041e096 100644 --- a/src/useThrottledEffect/index.dom.test.ts +++ b/src/useThrottledEffect/index.dom.test.ts @@ -1,17 +1,18 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {useThrottledEffect} from '../../index.js'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useThrottledEffect} from '../index.js'; describe('useThrottledEffect', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { @@ -26,7 +27,7 @@ describe('useThrottledEffect', () => { }); it('should throttle passed callback', () => { - const spy = jest.fn(); + const spy = vi.fn(); const {rerender} = renderHook( (dep) => { useThrottledEffect(spy, [dep], 200, true); @@ -42,7 +43,7 @@ describe('useThrottledEffect', () => { rerender(4); expect(spy).toHaveBeenCalledTimes(1); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); expect(spy).toHaveBeenCalledTimes(1); rerender(5); expect(spy).toHaveBeenCalledTimes(2); diff --git a/src/useThrottledEffect/index.ssr.test.ts b/src/useThrottledEffect/index.ssr.test.ts index 7c365594..eca691ea 100644 --- a/src/useThrottledEffect/index.ssr.test.ts +++ b/src/useThrottledEffect/index.ssr.test.ts @@ -1,17 +1,18 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useThrottledEffect} from '../../index.js'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useThrottledEffect} from '../index.js'; describe('useThrottledEffect', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { diff --git a/src/useThrottledEffect/index.ts b/src/useThrottledEffect/index.ts index 39606f3a..415d98cd 100644 --- a/src/useThrottledEffect/index.ts +++ b/src/useThrottledEffect/index.ts @@ -1,5 +1,5 @@ -import { type DependencyList, useEffect } from 'react'; -import { useThrottledCallback } from '../useThrottledCallback/index.js'; +import {type DependencyList, useEffect} from 'react'; +import {useThrottledCallback} from '../useThrottledCallback/index.js'; /** * Like `useEffect`, but passed function is throttled. @@ -17,7 +17,7 @@ export function useThrottledEffect( callback: (...args: any[]) => void, deps: DependencyList, delay: number, - noTrailing = false + noTrailing = false, ): void { // eslint-disable-next-line react-hooks/exhaustive-deps useEffect(useThrottledCallback(callback, deps, delay, noTrailing), deps); diff --git a/src/useThrottledState/index.dom.test.ts b/src/useThrottledState/index.dom.test.ts index 9974810c..b47e0f81 100644 --- a/src/useThrottledState/index.dom.test.ts +++ b/src/useThrottledState/index.dom.test.ts @@ -1,17 +1,18 @@ -import {renderHook, act} from '@testing-library/react-hooks/dom'; -import {useThrottledState} from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useThrottledState} from '../index.js'; describe('useThrottledState', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { @@ -35,7 +36,7 @@ describe('useThrottledState', () => { result.current[1]('foo'); result.current[1]('bar'); expect(result.current[0]).toBe('hello world!'); - jest.advanceTimersByTime(200); + vi.advanceTimersByTime(200); act(() => { result.current[1]('baz'); }); diff --git a/src/useThrottledState/index.ssr.test.ts b/src/useThrottledState/index.ssr.test.ts index 611dd879..e81d8547 100644 --- a/src/useThrottledState/index.ssr.test.ts +++ b/src/useThrottledState/index.ssr.test.ts @@ -1,17 +1,18 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useThrottledState} from '../../index.js'; +import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; +import {useThrottledState} from '../index.js'; describe('useThrottledState', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); afterEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { diff --git a/src/useThrottledState/index.ts b/src/useThrottledState/index.ts index cef465c1..1a5ff667 100644 --- a/src/useThrottledState/index.ts +++ b/src/useThrottledState/index.ts @@ -1,5 +1,5 @@ -import { type Dispatch, type SetStateAction, useState } from 'react'; -import { useThrottledCallback } from '../useThrottledCallback/index.js'; +import {type Dispatch, type SetStateAction, useState} from 'react'; +import {useThrottledCallback} from '../useThrottledCallback/index.js'; /** * Like `useState` but its state setter is throttled. @@ -13,7 +13,7 @@ import { useThrottledCallback } from '../useThrottledCallback/index.js'; export function useThrottledState( initialState: S | (() => S), delay: number, - noTrailing = false + noTrailing = false, ): [S, Dispatch>] { const [state, setState] = useState(initialState); diff --git a/src/useTimeoutEffect/index.dom.test.ts b/src/useTimeoutEffect/index.dom.test.ts index 025ad519..67a82309 100644 --- a/src/useTimeoutEffect/index.dom.test.ts +++ b/src/useTimeoutEffect/index.dom.test.ts @@ -1,17 +1,18 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useTimeoutEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {useTimeoutEffect} from '../index.js'; describe('useTimeoutEffect', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); beforeEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { @@ -19,116 +20,118 @@ describe('useTimeoutEffect', () => { }); it('should render', () => { - const { result } = renderHook(() => useTimeoutEffect(() => {}, 123)); + const {result} = renderHook(() => useTimeoutEffect(() => {}, 123)); expect(result.error).toBeUndefined(); }); it('should set and call function after timeout', () => { - const spy = jest.fn(); + const spy = vi.fn(); renderHook(() => useTimeoutEffect(spy, 100)); - jest.advanceTimersByTime(99); + vi.advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy).toHaveBeenCalledTimes(1); }); it('should set timeout and cancel on unmount', () => { - const spy = jest.fn(); - const { unmount } = renderHook(() => useTimeoutEffect(spy, 100)); + const spy = vi.fn(); + const {unmount} = renderHook(() => useTimeoutEffect(spy, 100)); - jest.advanceTimersByTime(99); + vi.advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); unmount(); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy).not.toHaveBeenCalled(); }); it('should reset timeout in delay change', () => { - const spy = jest.fn(); - const { rerender } = renderHook(({ delay }) => useTimeoutEffect(spy, delay), { - initialProps: { delay: 100 }, + const spy = vi.fn(); + const {rerender} = renderHook(({delay}) => useTimeoutEffect(spy, delay), { + initialProps: {delay: 100}, }); - jest.advanceTimersByTime(99); + vi.advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); - rerender({ delay: 50 }); - jest.advanceTimersByTime(49); + rerender({delay: 50}); + vi.advanceTimersByTime(49); expect(spy).not.toHaveBeenCalled(); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy).toHaveBeenCalledTimes(1); }); it('should not reset timeout in callback change', () => { - const spy = jest.fn(); - const { rerender } = renderHook<{ callback: () => void }, void>( - ({ callback }) => useTimeoutEffect(callback, 100), - { - initialProps: { callback() {} }, - } + const spy = vi.fn(); + const {rerender} = renderHook<{callback: () => void}, void>( + ({callback}) => useTimeoutEffect(callback, 100), + { + initialProps: { + callback() {}, + }, + }, ); - jest.advanceTimersByTime(99); + vi.advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); // eslint-disable-next-line @typescript-eslint/no-unsafe-return - rerender({ callback: () => spy() }); - jest.advanceTimersByTime(1); + rerender({callback: () => spy()}); + vi.advanceTimersByTime(1); expect(spy).toHaveBeenCalledTimes(1); }); it('should cancel timeout if delay is undefined', () => { - const spy = jest.fn(); - const { rerender } = renderHook<{ delay: number | undefined }, void>( - ({ delay }) => useTimeoutEffect(spy, delay), + const spy = vi.fn(); + const {rerender} = renderHook<{delay: number | undefined}, void>( + ({delay}) => useTimeoutEffect(spy, delay), { - initialProps: { delay: 100 }, - } + initialProps: {delay: 100}, + }, ); - jest.advanceTimersByTime(99); + vi.advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); - rerender({ delay: undefined }); - jest.advanceTimersByTime(2000); + rerender({delay: undefined}); + vi.advanceTimersByTime(2000); expect(spy).not.toHaveBeenCalled(); }); it('should not cancel timeout if delay is 0', () => { - const spy = jest.fn(); + const spy = vi.fn(); renderHook(() => useTimeoutEffect(spy, 0)); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy).toHaveBeenCalledTimes(1); }); it('should cancel timeout if cancel method is called', () => { - const spy = jest.fn(); - const { result } = renderHook(() => useTimeoutEffect(spy, 100)); + const spy = vi.fn(); + const {result} = renderHook(() => useTimeoutEffect(spy, 100)); - jest.advanceTimersByTime(99); + vi.advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); result.current[0](); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy).not.toHaveBeenCalled(); }); it('should reset timeout if reset method is called', () => { - const spy = jest.fn(); - const { result } = renderHook(() => useTimeoutEffect(spy, 100)); + const spy = vi.fn(); + const {result} = renderHook(() => useTimeoutEffect(spy, 100)); - jest.advanceTimersByTime(99); + vi.advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); result.current[1](); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(spy).not.toHaveBeenCalled(); - jest.advanceTimersByTime(100); + vi.advanceTimersByTime(100); expect(spy).toHaveBeenCalledTimes(1); }); }); diff --git a/src/useTimeoutEffect/index.ssr.test.ts b/src/useTimeoutEffect/index.ssr.test.ts index 10b842cf..550930ac 100644 --- a/src/useTimeoutEffect/index.ssr.test.ts +++ b/src/useTimeoutEffect/index.ssr.test.ts @@ -1,17 +1,18 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useTimeoutEffect} from '../../index.js'; +import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {useTimeoutEffect} from '../index.js'; describe('useTimeoutEffect', () => { beforeAll(() => { - jest.useFakeTimers(); + vi.useFakeTimers(); }); beforeEach(() => { - jest.clearAllTimers(); + vi.clearAllTimers(); }); afterAll(() => { - jest.useRealTimers(); + vi.useRealTimers(); }); it('should be defined', () => { @@ -24,10 +25,10 @@ describe('useTimeoutEffect', () => { }); it('should not invoke callback after timeout', () => { - const spy = jest.fn(); + const spy = vi.fn(); renderHook(() => useTimeoutEffect(spy, 100)); - jest.advanceTimersByTime(100); + vi.advanceTimersByTime(100); expect(spy).not.toHaveBeenCalled(); }); }); diff --git a/src/useTimeoutEffect/index.ts b/src/useTimeoutEffect/index.ts index 98e4966e..e20696aa 100644 --- a/src/useTimeoutEffect/index.ts +++ b/src/useTimeoutEffect/index.ts @@ -1,5 +1,5 @@ -import { useCallback, useEffect, useRef } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; +import {useCallback, useEffect, useRef} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; type TimeoutID = ReturnType | null; @@ -20,7 +20,7 @@ const cancelTimeout = (id: TimeoutID) => { */ export function useTimeoutEffect( callback: () => void, - ms?: number + ms?: number, ): [cancel: () => void, reset: () => void] { const cbRef = useSyncedRef(callback); const msRef = useSyncedRef(ms); @@ -31,7 +31,9 @@ export function useTimeoutEffect( }, []); const reset = useCallback(() => { - if (msRef.current === undefined) return; + if (msRef.current === undefined) { + return; + } cancel(); timeoutIdRef.current = setTimeout(() => { diff --git a/src/useToggle/index.dom.test.ts b/src/useToggle/index.dom.test.ts index 5b10a6cf..17b8487f 100644 --- a/src/useToggle/index.dom.test.ts +++ b/src/useToggle/index.dom.test.ts @@ -1,6 +1,7 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { type BaseSyntheticEvent, useRef } from 'react'; -import { useToggle } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {type BaseSyntheticEvent, useRef} from 'react'; +import {describe, expect, it} from 'vitest'; +import {useToggle} from '../index.js'; describe('useToggle', () => { it('should be defined', () => { @@ -8,13 +9,13 @@ describe('useToggle', () => { }); it('should default to false', () => { - const { result } = renderHook(() => useToggle()); + const {result} = renderHook(() => useToggle()); expect(result.current[0]).toBe(false); }); it('should be instantiatable with value', () => { - let { result } = renderHook(() => useToggle(true)); + let {result} = renderHook(() => useToggle(true)); expect(result.current[0]).toBe(true); result = renderHook(() => useToggle(() => true)).result; @@ -25,7 +26,7 @@ describe('useToggle', () => { }); it('should change state to the opposite when toggler called without args or undefined', () => { - const { result } = renderHook(() => useToggle()); + const {result} = renderHook(() => useToggle()); act(() => { result.current[1](); }); @@ -38,7 +39,7 @@ describe('useToggle', () => { }); it('should not rerender when toggler called with same value', () => { - const { result } = renderHook(() => { + const {result} = renderHook(() => { const cnt = useRef(0); return [...useToggle(), ++cnt.current] as const; @@ -58,7 +59,7 @@ describe('useToggle', () => { }); it('should change state to one that passed to toggler', () => { - const { result } = renderHook(() => useToggle(false, false)); + const {result} = renderHook(() => useToggle(false, false)); act(() => { result.current[1](false); }); @@ -81,12 +82,12 @@ describe('useToggle', () => { }); it('should not account react events', () => { - const { result } = renderHook(() => useToggle()); + const {result} = renderHook(() => useToggle()); act(() => { - result.current[1]({ _reactName: 'abcdef' } as unknown as BaseSyntheticEvent); + result.current[1]({_reactName: 'abcdef'} as unknown as BaseSyntheticEvent); - result.current[1]({ _reactName: 'abcdef' } as unknown as BaseSyntheticEvent); + result.current[1]({_reactName: 'abcdef'} as unknown as BaseSyntheticEvent); }); expect(result.current[0]).toBe(false); diff --git a/src/useToggle/index.ssr.test.ts b/src/useToggle/index.ssr.test.ts index 90c9ad81..be600452 100644 --- a/src/useToggle/index.ssr.test.ts +++ b/src/useToggle/index.ssr.test.ts @@ -1,5 +1,6 @@ import {act, renderHook} from '@testing-library/react-hooks/server'; -import {useToggle} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useToggle} from '../index.js'; describe('useToggle', () => { it('should be defined', () => { diff --git a/src/useToggle/index.ts b/src/useToggle/index.ts index 7e035c1d..a03ed19f 100644 --- a/src/useToggle/index.ts +++ b/src/useToggle/index.ts @@ -1,6 +1,6 @@ -import { type BaseSyntheticEvent, useCallback, useState } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { type InitialState, type NextState, resolveHookState } from '../util/resolveHookState.js'; +import {type BaseSyntheticEvent, useCallback, useState} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {type InitialState, type NextState, resolveHookState} from '../util/resolveHookState.js'; export function useToggle( initialState: InitialState, @@ -20,7 +20,7 @@ export function useToggle( */ export function useToggle( initialState: InitialState = false, - ignoreReactEvents = true + ignoreReactEvents = true, ): [boolean, (nextState?: NextState | BaseSyntheticEvent) => void] { // We don't use useReducer (which would end up with less code), because exposed // action does not provide functional updates feature. diff --git a/src/useUnmountEffect/index.dom.test.ts b/src/useUnmountEffect/index.dom.test.ts index 2f743895..d505d3f4 100644 --- a/src/useUnmountEffect/index.dom.test.ts +++ b/src/useUnmountEffect/index.dom.test.ts @@ -1,11 +1,12 @@ -import { renderHook } from '@testing-library/react-hooks/dom'; -import { useUnmountEffect } from '../../index.js'; +import {renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {useUnmountEffect} from '../index.js'; describe('useUnmountEffect', () => { it('should call effector only when component unmounted', () => { - const spy = jest.fn(); + const spy = vi.fn(); - const { result, rerender, unmount } = renderHook(() => { + const {result, rerender, unmount} = renderHook(() => { useUnmountEffect(spy); }); @@ -19,20 +20,20 @@ describe('useUnmountEffect', () => { }); it('should call effect even if it has been updated', () => { - const spy = jest.fn(); + const spy = vi.fn(); - const { rerender, unmount } = renderHook<{ fn: () => void }, void>( - ({ fn }) => { + const {rerender, unmount} = renderHook<{fn: () => void}, void>( + ({fn}) => { useUnmountEffect(fn); }, - { - initialProps: { - fn() {}, - }, - } + { + initialProps: { + fn() {}, + }, + }, ); - rerender({ fn: spy }); + rerender({fn: spy}); unmount(); expect(spy).toHaveBeenCalled(); diff --git a/src/useUnmountEffect/index.ssr.test.ts b/src/useUnmountEffect/index.ssr.test.ts index f04f1e37..704a4e46 100644 --- a/src/useUnmountEffect/index.ssr.test.ts +++ b/src/useUnmountEffect/index.ssr.test.ts @@ -1,9 +1,10 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useUnmountEffect} from '../../index.js'; +import {describe, expect, it, vi} from 'vitest'; +import {useUnmountEffect} from '../index.js'; describe('useUnmountEffect', () => { it('should call effector only when component unmounted', () => { - const spy = jest.fn(); + const spy = vi.fn(); renderHook(() => { useUnmountEffect(spy); diff --git a/src/useUnmountEffect/index.ts b/src/useUnmountEffect/index.ts index 3a0dcb52..077909f0 100644 --- a/src/useUnmountEffect/index.ts +++ b/src/useUnmountEffect/index.ts @@ -1,5 +1,5 @@ -import { useEffect } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; +import {useEffect} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; /** * Run effect only when component is unmounted. @@ -14,6 +14,6 @@ export function useUnmountEffect(effect: CallableFunction): void { effectRef.current(); }, // eslint-disable-next-line react-hooks/exhaustive-deps - [] + [], ); } diff --git a/src/useUpdateEffect/index.dom.test.ts b/src/useUpdateEffect/index.dom.test.ts index 4a52139b..2f7dc75b 100644 --- a/src/useUpdateEffect/index.dom.test.ts +++ b/src/useUpdateEffect/index.dom.test.ts @@ -1,9 +1,10 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {useUpdateEffect} from '../../index.js'; +import {describe, expect, it, vi} from 'vitest'; +import {useUpdateEffect} from '../index.js'; describe('useUpdateEffect', () => { it('should call effector only on updates (after first render)', () => { - const spy = jest.fn(); + const spy = vi.fn(); const {rerender, unmount} = renderHook(() => { useUpdateEffect(spy); @@ -22,7 +23,7 @@ describe('useUpdateEffect', () => { }); it('should accept dependencies as useEffect', () => { - const spy = jest.fn(); + const spy = vi.fn(); const {rerender, unmount} = renderHook( ({deps}) => { diff --git a/src/useUpdateEffect/index.ssr.test.ts b/src/useUpdateEffect/index.ssr.test.ts index 1ef7d048..f2d1d572 100644 --- a/src/useUpdateEffect/index.ssr.test.ts +++ b/src/useUpdateEffect/index.ssr.test.ts @@ -1,9 +1,10 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useUpdateEffect} from '../../index.js'; +import {describe, expect, it, vi} from 'vitest'; +import {useUpdateEffect} from '../index.js'; describe('useUpdateEffect', () => { it('should not call effector on mount', () => { - const spy = jest.fn(); + const spy = vi.fn(); renderHook(() => { useUpdateEffect(spy); diff --git a/src/useUpdateEffect/index.ts b/src/useUpdateEffect/index.ts index 090c4cfb..ca599d34 100644 --- a/src/useUpdateEffect/index.ts +++ b/src/useUpdateEffect/index.ts @@ -1,6 +1,6 @@ -import { type DependencyList, type EffectCallback, useEffect } from 'react'; -import { useFirstMountState } from '../useFirstMountState/index.js'; -import { noop } from '../util/const.js'; +import {type DependencyList, type EffectCallback, useEffect} from 'react'; +import {useFirstMountState} from '../useFirstMountState/index.js'; +import {noop} from '../util/const.js'; /** * Effect hook that ignores the first render (not invoked on mount). diff --git a/src/useValidator/index.dom.test.ts b/src/useValidator/index.dom.test.ts index 95891f48..55b621c0 100644 --- a/src/useValidator/index.dom.test.ts +++ b/src/useValidator/index.dom.test.ts @@ -1,5 +1,6 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useValidator, type UseValidatorReturn } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {describe, expect, it, vi} from 'vitest'; +import {useValidator, type UseValidatorReturn} from '../index.js'; describe('useValidator', () => { it('should be defined', () => { @@ -7,44 +8,43 @@ describe('useValidator', () => { }); it('should render', () => { - const { result } = renderHook(() => useValidator(() => ({ isValid: false }), [])); + const {result} = renderHook(() => useValidator(() => ({isValid: false}), [])); expect(result.error).toBeUndefined(); }); it('should return undefined validity on first render', () => { - const { result } = renderHook(() => useValidator(() => ({ isValid: true }), [])); - expect((result.all[0] as UseValidatorReturn<{ isValid: boolean }>)[0].isValid).toBeUndefined(); + const {result} = renderHook(() => useValidator(() => ({isValid: true}), [])); + expect((result.all[0] as UseValidatorReturn<{isValid: boolean}>)[0].isValid).toBeUndefined(); }); it('should apply initial state parameter', () => { - const { result } = renderHook(() => - useValidator(() => ({ isValid: true }), [], { isValid: true }) - ); - expect((result.all[0] as UseValidatorReturn<{ isValid: boolean }>)[0].isValid).toBe(true); + const {result} = renderHook(() => + useValidator(() => ({isValid: true}), [], {isValid: true})); + expect((result.all[0] as UseValidatorReturn<{isValid: boolean}>)[0].isValid).toBe(true); }); it('should call validator on first render', () => { - const spy = jest.fn(() => ({ isValid: true })); - const { result } = renderHook(() => useValidator(spy, [])); + const spy = vi.fn(() => ({isValid: true})); + const {result} = renderHook(() => useValidator(spy, [])); expect(spy).toHaveBeenCalledTimes(1); expect(result.current[0].isValid).toBe(true); }); it('should call validator on if deps changed', () => { - const spy = jest.fn(() => ({ isValid: true })); - const { rerender } = renderHook(({ dep }) => useValidator(spy, [dep]), { - initialProps: { dep: 1 }, + const spy = vi.fn(() => ({isValid: true})); + const {rerender} = renderHook(({dep}) => useValidator(spy, [dep]), { + initialProps: {dep: 1}, }); expect(spy).toHaveBeenCalledTimes(1); - rerender({ dep: 2 }); + rerender({dep: 2}); expect(spy).toHaveBeenCalledTimes(2); }); it('should call validator on revalidator invocation', () => { - const spy = jest.fn(() => ({ isValid: true })); - const { result } = renderHook(({ dep }) => useValidator(spy, [dep]), { - initialProps: { dep: 1 }, + const spy = vi.fn(() => ({isValid: true})); + const {result} = renderHook(({dep}) => useValidator(spy, [dep]), { + initialProps: {dep: 1}, }); expect(spy).toHaveBeenCalledTimes(1); @@ -55,11 +55,10 @@ describe('useValidator', () => { }); it('should pass the validity setter if validator expects it', () => { - const { result } = renderHook(() => - useValidator<{ isValid: false; customError: Error }>((d) => { - d({ isValid: false, customError: new Error('this is custom error') }); - }, []) - ); + const {result} = renderHook(() => + useValidator<{isValid: false; customError: Error}>((d) => { + d({isValid: false, customError: new Error('this is custom error')}); + }, [])); expect(result.current[0]).toStrictEqual({ isValid: false, diff --git a/src/useValidator/index.ssr.test.ts b/src/useValidator/index.ssr.test.ts index 4815e7c9..7545c6f2 100644 --- a/src/useValidator/index.ssr.test.ts +++ b/src/useValidator/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useValidator} from '../../index.js'; +import {describe, expect, it, vi} from 'vitest'; +import {useValidator} from '../index.js'; describe('useValidator', () => { it('should be defined', () => { @@ -17,7 +18,7 @@ describe('useValidator', () => { }); it('should not call validator on first render', () => { - const spy = jest.fn(() => ({isValid: true})); + const spy = vi.fn(() => ({isValid: true})); renderHook(() => useValidator(spy, [])); expect(spy).not.toHaveBeenCalled(); }); diff --git a/src/useValidator/index.ts b/src/useValidator/index.ts index 21721cde..794e29b6 100644 --- a/src/useValidator/index.ts +++ b/src/useValidator/index.ts @@ -1,6 +1,6 @@ -import { type DependencyList, type Dispatch, useCallback, useEffect, useState } from 'react'; -import { useSyncedRef } from '../useSyncedRef/index.js'; -import { type InitialState, type NextState } from '../util/resolveHookState.js'; +import {type DependencyList, type Dispatch, useCallback, useEffect, useState} from 'react'; +import {useSyncedRef} from '../useSyncedRef/index.js'; +import {type InitialState, type NextState} from '../util/resolveHookState.js'; export type ValidityState = { isValid: boolean | undefined; @@ -27,7 +27,7 @@ export type UseValidatorReturn = [V, () => void]; export function useValidator( validator: Validator, deps: DependencyList, - initialValidity: InitialState = { isValid: undefined } as V + initialValidity: InitialState = {isValid: undefined} as V, ): UseValidatorReturn { const [validity, setValidity] = useState(initialValidity); const validatorRef = useSyncedRef(() => { diff --git a/src/useVibrate/index.dom.test.ts b/src/useVibrate/index.dom.test.ts index ea9ca4cc..72af593c 100644 --- a/src/useVibrate/index.dom.test.ts +++ b/src/useVibrate/index.dom.test.ts @@ -1,8 +1,9 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {useVibrate} from '../../index.js'; +import {afterAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {useVibrate} from '../index.js'; describe('useVibrate', () => { - const vibrateSpy = jest.spyOn(navigator, 'vibrate'); + const vibrateSpy = vi.spyOn(navigator, 'vibrate'); beforeEach(() => { vibrateSpy.mockReset(); @@ -41,7 +42,7 @@ describe('useVibrate', () => { }); it('should vibrate constantly using interval', () => { - jest.useFakeTimers(); + vi.useFakeTimers(); renderHook(() => { useVibrate(true, 300, true); }); @@ -49,17 +50,17 @@ describe('useVibrate', () => { expect(vibrateSpy).toHaveBeenCalledTimes(1); expect(vibrateSpy.mock.calls[0][0]).toEqual(300); - jest.advanceTimersByTime(299); + vi.advanceTimersByTime(299); expect(vibrateSpy).toHaveBeenCalledTimes(1); - jest.advanceTimersByTime(1); + vi.advanceTimersByTime(1); expect(vibrateSpy).toHaveBeenCalledTimes(2); expect(vibrateSpy.mock.calls[1][0]).toEqual(300); - jest.advanceTimersByTime(300); + vi.advanceTimersByTime(300); expect(vibrateSpy).toHaveBeenCalledTimes(3); expect(vibrateSpy.mock.calls[2][0]).toEqual(300); - jest.useRealTimers(); + vi.useRealTimers(); }); }); diff --git a/src/useVibrate/index.ssr.test.ts b/src/useVibrate/index.ssr.test.ts index c8bf954f..c53f679a 100644 --- a/src/useVibrate/index.ssr.test.ts +++ b/src/useVibrate/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useVibrate} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useVibrate} from '../index.js'; describe('useVibrate', () => { it('should be defined', () => { diff --git a/src/useVibrate/index.ts b/src/useVibrate/index.ts index 91f2d971..dbb09619 100644 --- a/src/useVibrate/index.ts +++ b/src/useVibrate/index.ts @@ -1,5 +1,5 @@ -import { useEffect } from 'react'; -import { isBrowser, noop } from '../util/const.js'; +import {useEffect} from 'react'; +import {isBrowser, noop} from '../util/const.js'; /** * Provides vibration feedback using the Vibration API. @@ -9,9 +9,9 @@ import { isBrowser, noop } from '../util/const.js'; * @param loop If true - vibration will be looped using `setInterval`. */ export const useVibrate = - !isBrowser || navigator.vibrate === undefined - ? noop - : (enabled: boolean, pattern: VibratePattern, loop?: boolean): void => { + !isBrowser || navigator.vibrate === undefined ? + noop : + (enabled: boolean, pattern: VibratePattern, loop?: boolean): void => { useEffect(() => { let interval: undefined | ReturnType; @@ -23,7 +23,7 @@ export const useVibrate = () => { navigator.vibrate(pattern); }, - Array.isArray(pattern) ? pattern.reduce((a, n) => a + n, 0) : pattern + Array.isArray(pattern) ? pattern.reduce((a, n) => a + n, 0) : pattern, ); } diff --git a/src/useWindowSize/index.dom.test.ts b/src/useWindowSize/index.dom.test.ts index 9117c383..768e22cc 100644 --- a/src/useWindowSize/index.dom.test.ts +++ b/src/useWindowSize/index.dom.test.ts @@ -1,6 +1,7 @@ -import { act, renderHook } from '@testing-library/react-hooks/dom'; -import { useState } from 'react'; -import { useWindowSize, type WindowSize } from '../../index.js'; +import {act, renderHook} from '@testing-library/react-hooks/dom'; +import {useState} from 'react'; +import {beforeEach, describe, expect, it} from 'vitest'; +import {useWindowSize, type WindowSize} from '../index.js'; const triggerResize = (dimension: 'width' | 'height', value: number) => { if (dimension === 'width') { @@ -10,7 +11,7 @@ const triggerResize = (dimension: 'width' | 'height', value: number) => { } act(() => { - window.dispatchEvent(new Event('resize')); + globalThis.dispatchEvent(new Event('resize')); }); }; @@ -25,12 +26,12 @@ describe('useWindowSize', () => { }); it('should render', () => { - const { result } = renderHook(() => useWindowSize()); + const {result} = renderHook(() => useWindowSize()); expect(result.error).toBeUndefined(); }); it('should use provided state hook', () => { - const { result } = renderHook(() => useWindowSize(useState)); + const {result} = renderHook(() => useWindowSize(useState)); expect(result.current.width).toBe(100); expect(result.current.height).toBe(100); @@ -48,7 +49,7 @@ describe('useWindowSize', () => { }); it('should delay measurement to effects stage if 2nd argument is `true`', () => { - const { result } = renderHook(() => useWindowSize(useState, true)); + const {result} = renderHook(() => useWindowSize(useState, true)); expect((result.all[0] as WindowSize).width).toBe(0); expect((result.all[0] as WindowSize).height).toBe(0); diff --git a/src/useWindowSize/index.ssr.test.ts b/src/useWindowSize/index.ssr.test.ts index d698b6f3..61d4b026 100644 --- a/src/useWindowSize/index.ssr.test.ts +++ b/src/useWindowSize/index.ssr.test.ts @@ -1,5 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/server'; -import {useWindowSize} from '../../index.js'; +import {describe, expect, it} from 'vitest'; +import {useWindowSize} from '../index.js'; describe('useWindowSize', () => { it('should be defined', () => { diff --git a/src/useWindowSize/index.ts b/src/useWindowSize/index.ts index f6d2cd19..f31fd4de 100644 --- a/src/useWindowSize/index.ts +++ b/src/useWindowSize/index.ts @@ -1,8 +1,8 @@ -import { useEffect } from 'react'; -import { useFirstMountState } from '../useFirstMountState/index.js'; -import { useMountEffect } from '../useMountEffect/index.js'; -import { useRafState } from '../useRafState/index.js'; -import { isBrowser } from '../util/const.js'; +import {useEffect} from 'react'; +import {useFirstMountState} from '../useFirstMountState/index.js'; +import {useMountEffect} from '../useMountEffect/index.js'; +import {useRafState} from '../useRafState/index.js'; +import {isBrowser} from '../util/const.js'; export type WindowSize = { width: number; @@ -46,7 +46,7 @@ export function useWindowSize(stateHook = useRafState, measureOnMount?: boolean) useEffect(() => { if (listeners.size === 0) { - window.addEventListener('resize', callAllListeners, { passive: true }); + window.addEventListener('resize', callAllListeners, {passive: true}); } listeners.add(setSize); diff --git a/src/util/const.ts b/src/util/const.ts index f0b7a65f..a6e51a89 100644 --- a/src/util/const.ts +++ b/src/util/const.ts @@ -1,9 +1,9 @@ -import { type Predicate, type ConditionsPredicate } from '../types.js'; +import {type ConditionsPredicate, type Predicate} from '../types.js'; export const noop = (): void => {}; export const isBrowser = - typeof window !== 'undefined' && + typeof globalThis !== 'undefined' && typeof navigator !== 'undefined' && typeof document !== 'undefined'; diff --git a/src/util/index.dom.test.ts b/src/util/index.dom.test.ts index c2ddf6c8..83e19fcd 100644 --- a/src/util/index.dom.test.ts +++ b/src/util/index.dom.test.ts @@ -1,6 +1,6 @@ -/* eslint-disable max-nested-callbacks */ -import { resolveHookState } from '../../index.js'; -import { basicDepsComparator, off, on } from '../misc.js'; +import {describe, expect, it, vi} from 'vitest'; +import {resolveHookState} from '../index.js'; +import {basicDepsComparator, off, on} from './misc.js'; describe('resolveHookState', () => { it('should be defined', () => { @@ -10,22 +10,22 @@ describe('resolveHookState', () => { it('should return value itself if it is not function', () => { expect(resolveHookState(123)).toBe(123); - const object = { foo: 'bar' }; + const object = {foo: 'bar'}; expect(resolveHookState(object)).toBe(object); }); it('should return call result in case function received', () => { expect(resolveHookState(() => 123)).toBe(123); - const object = { foo: 'bar' }; + const object = {foo: 'bar'}; expect(resolveHookState(() => object)).toBe(object); }); it('should pass second parameter to received function', () => { - expect(resolveHookState((state) => state, 123)).toBe(123); + expect(resolveHookState(state => state, 123)).toBe(123); - const object = { foo: 'bar' }; - expect(resolveHookState((state) => state, object)).toBe(object); + const object = {foo: 'bar'}; + expect(resolveHookState(state => state, object)).toBe(object); }); }); @@ -35,7 +35,7 @@ describe('misc', () => { describe('on', () => { it("should call object's `addEventListener` with passed parameters", () => { const object = { - addEventListener: jest.fn(), + addEventListener: vi.fn(), }; on(object as unknown as EventTarget, 'evtName', cb); expect(object.addEventListener).toHaveBeenCalledWith('evtName', cb); @@ -51,7 +51,7 @@ describe('misc', () => { describe('off', () => { it("should call object's `removeEventListener` with passed parameters", () => { const object = { - removeEventListener: jest.fn(), + removeEventListener: vi.fn(), }; off(object as unknown as EventTarget, 'evtName', cb); diff --git a/src/util/misc.ts b/src/util/misc.ts index b882b06e..efdeb21d 100644 --- a/src/util/misc.ts +++ b/src/util/misc.ts @@ -1,5 +1,5 @@ -import { type DependencyList } from 'react'; -import { type DependenciesComparator } from '../types.js'; +import {type DependencyList} from 'react'; +import {type DependenciesComparator} from '../types.js'; export function on( object: T | null, @@ -24,16 +24,20 @@ export const hasOwnProperty = < K extends string | number | symbol, >( object: T, - property: K -): object is T & Record => Object.prototype.hasOwnProperty.call(object, property); + property: K, +): object is T & Record => Object.hasOwn(object, property); export const yieldTrue = () => true as const; export const yieldFalse = () => false as const; export const basicDepsComparator: DependenciesComparator = (d1, d2) => { - if (d1 === d2) return true; + if (d1 === d2) { + return true; + } - if (d1.length !== d2.length) return false; + if (d1.length !== d2.length) { + return false; + } for (const [i, element] of d1.entries()) { if (element !== d2[i]) { diff --git a/src/util/resolveHookState.ts b/src/util/resolveHookState.ts index 90cf9bb4..476928e1 100644 --- a/src/util/resolveHookState.ts +++ b/src/util/resolveHookState.ts @@ -10,10 +10,11 @@ export function resolveHookState( ): State; export function resolveHookState( nextState: InitialState | NextState, - previousState?: PreviousState + previousState?: PreviousState, ): State { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - if (typeof nextState === 'function') return (nextState as CallableFunction)(previousState); + if (typeof nextState === 'function') { + return (nextState as CallableFunction)(previousState); + } return nextState; } diff --git a/vitest.config.ts b/vitest.config.ts index e4dc4a62..2132a7a3 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,5 +1,11 @@ import {defineConfig} from 'vitest/config'; export default defineConfig({ - test: {}, + test: { + dir: './src', + environmentMatchGlobs: [ + ['**/*.dom.test.ts', 'jsdom'], + ['**/*.ssr.test.ts', 'node'], + ], + }, }); diff --git a/yarn.lock b/yarn.lock index e25b88f3..97784044 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1113,7 +1113,6 @@ __metadata: "@react-hookz/deep-equal": "npm:^3.0.1" "@react-hookz/eslint-config": "npm:^4.1.6" "@react-hookz/eslint-formatter-gha": "npm:^3.0.2" - "@semantic-release/exec": "npm:^6.0.3" "@testing-library/react-hooks": "npm:^8.0.1" "@types/js-cookie": "npm:^3.0.6" "@types/react": "npm:^18.2.52" @@ -1122,6 +1121,7 @@ __metadata: eslint: "npm:^9.17.0" husky: "npm:^9.1.7" js-cookie: "npm:^3.0.5" + jsdom: "npm:^25.0.1" lint-staged: "npm:^15.2.2" pinst: "npm:^3.0.0" react: "npm:^17.0.2" @@ -1305,13 +1305,6 @@ __metadata: languageName: node linkType: hard -"@semantic-release/error@npm:^3.0.0": - version: 3.0.0 - resolution: "@semantic-release/error@npm:3.0.0" - checksum: 10c0/51f06d11186a6efc543b44996ca1c368a77c6ed18dd823f0362188c37b7ef32f3580bd17654f594e6a72b931ebe69b44bbcb1ee16c755a1d3e44dcb652b47275 - languageName: node - linkType: hard - "@semantic-release/error@npm:^4.0.0": version: 4.0.0 resolution: "@semantic-release/error@npm:4.0.0" @@ -1319,22 +1312,6 @@ __metadata: languageName: node linkType: hard -"@semantic-release/exec@npm:^6.0.3": - version: 6.0.3 - resolution: "@semantic-release/exec@npm:6.0.3" - dependencies: - "@semantic-release/error": "npm:^3.0.0" - aggregate-error: "npm:^3.0.0" - debug: "npm:^4.0.0" - execa: "npm:^5.0.0" - lodash: "npm:^4.17.4" - parse-json: "npm:^5.0.0" - peerDependencies: - semantic-release: ">=18.0.0" - checksum: 10c0/87c1f5dcd96e8b51cfa084ff2fd570fa1e2b6368064fba54403797636279e1159b62c199b3e8219d31189acfe8aa6f1b596f6cda6508fd3e1a7e5739c86a1a65 - languageName: node - linkType: hard - "@semantic-release/github@npm:^11.0.0": version: 11.0.1 resolution: "@semantic-release/github@npm:11.0.1" @@ -2227,6 +2204,13 @@ __metadata: languageName: node linkType: hard +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d + languageName: node + linkType: hard + "available-typed-arrays@npm:^1.0.7": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" @@ -2705,6 +2689,15 @@ __metadata: languageName: node linkType: hard +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 + languageName: node + linkType: hard + "commander@npm:~12.1.0": version: 12.1.0 resolution: "commander@npm:12.1.0" @@ -2933,6 +2926,15 @@ __metadata: languageName: node linkType: hard +"cssstyle@npm:^4.1.0": + version: 4.1.0 + resolution: "cssstyle@npm:4.1.0" + dependencies: + rrweb-cssom: "npm:^0.7.1" + checksum: 10c0/05c6597e5d3e0ec6b15221f2c0ce9a0443a46cc50a6089a3ba9ee1ac27f83ff86a445a8f95435137dadd859f091fc61b6d342abaf396d3c910471b5b33cfcbfa + languageName: node + linkType: hard + "csstype@npm:^3.0.2": version: 3.1.3 resolution: "csstype@npm:3.1.3" @@ -2947,6 +2949,16 @@ __metadata: languageName: node linkType: hard +"data-urls@npm:^5.0.0": + version: 5.0.0 + resolution: "data-urls@npm:5.0.0" + dependencies: + whatwg-mimetype: "npm:^4.0.0" + whatwg-url: "npm:^14.0.0" + checksum: 10c0/1b894d7d41c861f3a4ed2ae9b1c3f0909d4575ada02e36d3d3bc584bdd84278e20709070c79c3b3bff7ac98598cb191eb3e86a89a79ea4ee1ef360e1694f92ad + languageName: node + linkType: hard + "data-view-buffer@npm:^1.0.1": version: 1.0.1 resolution: "data-view-buffer@npm:1.0.1" @@ -3001,6 +3013,13 @@ __metadata: languageName: node linkType: hard +"decimal.js@npm:^10.4.3": + version: 10.4.3 + resolution: "decimal.js@npm:10.4.3" + checksum: 10c0/6d60206689ff0911f0ce968d40f163304a6c1bc739927758e6efc7921cfa630130388966f16bf6ef6b838cb33679fbe8e7a78a2f3c478afce841fd55ac8fb8ee + languageName: node + linkType: hard + "decode-named-character-reference@npm:^1.0.0": version: 1.0.2 resolution: "decode-named-character-reference@npm:1.0.2" @@ -3053,6 +3072,13 @@ __metadata: languageName: node linkType: hard +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 + languageName: node + linkType: hard + "dequal@npm:^2.0.0": version: 2.0.3 resolution: "dequal@npm:2.0.3" @@ -3184,6 +3210,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^4.5.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250 + languageName: node + linkType: hard + "env-ci@npm:^11.0.0": version: 11.1.0 resolution: "env-ci@npm:11.1.0" @@ -3923,23 +3956,6 @@ __metadata: languageName: node linkType: hard -"execa@npm:^5.0.0": - version: 5.1.1 - resolution: "execa@npm:5.1.1" - dependencies: - cross-spawn: "npm:^7.0.3" - get-stream: "npm:^6.0.0" - human-signals: "npm:^2.1.0" - is-stream: "npm:^2.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^4.0.1" - onetime: "npm:^5.1.2" - signal-exit: "npm:^3.0.3" - strip-final-newline: "npm:^2.0.0" - checksum: 10c0/c8e615235e8de4c5addf2fa4c3da3e3aa59ce975a3e83533b4f6a71750fb816a2e79610dc5f1799b6e28976c9ae86747a36a606655bf8cb414a74d8d507b304f - languageName: node - linkType: hard - "execa@npm:^8.0.0, execa@npm:~8.0.1": version: 8.0.1 resolution: "execa@npm:8.0.1" @@ -4184,6 +4200,17 @@ __metadata: languageName: node linkType: hard +"form-data@npm:^4.0.0": + version: 4.0.1 + resolution: "form-data@npm:4.0.1" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + mime-types: "npm:^2.1.12" + checksum: 10c0/bb102d570be8592c23f4ea72d7df9daa50c7792eb0cf1c5d7e506c1706e7426a4e4ae48a35b109e91c85f1c0ec63774a21ae252b66f4eb981cb8efef7d0463c8 + languageName: node + linkType: hard + "from2@npm:^2.3.0": version: 2.3.0 resolution: "from2@npm:2.3.0" @@ -4639,6 +4666,15 @@ __metadata: languageName: node linkType: hard +"html-encoding-sniffer@npm:^4.0.0": + version: 4.0.0 + resolution: "html-encoding-sniffer@npm:4.0.0" + dependencies: + whatwg-encoding: "npm:^3.1.1" + checksum: 10c0/523398055dc61ac9b34718a719cb4aa691e4166f29187e211e1607de63dc25ac7af52ca7c9aead0c4b3c0415ffecb17326396e1202e2e86ff4bca4c0ee4c6140 + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -4646,7 +4682,7 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^7.0.0": +"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2": version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" dependencies: @@ -4656,7 +4692,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1": +"https-proxy-agent@npm:^7.0.0, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.5": version: 7.0.6 resolution: "https-proxy-agent@npm:7.0.6" dependencies: @@ -4666,13 +4702,6 @@ __metadata: languageName: node linkType: hard -"human-signals@npm:^2.1.0": - version: 2.1.0 - resolution: "human-signals@npm:2.1.0" - checksum: 10c0/695edb3edfcfe9c8b52a76926cd31b36978782062c0ed9b1192b36bebc75c4c87c82e178dfcb0ed0fc27ca59d434198aac0bd0be18f5781ded775604db22304a - languageName: node - linkType: hard - "human-signals@npm:^5.0.0": version: 5.0.0 resolution: "human-signals@npm:5.0.0" @@ -4696,7 +4725,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:^0.6.2": +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: @@ -5172,6 +5201,13 @@ __metadata: languageName: node linkType: hard +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: 10c0/b73e2f22bc863b0939941d369486d308b43d7aef1f9439705e3582bfccaa4516406865e32c968a35f97a99396dac84e2624e67b0a16b0a15086a785e16ce7db9 + languageName: node + linkType: hard + "is-proto-prop@npm:^3.0.1": version: 3.0.1 resolution: "is-proto-prop@npm:3.0.1" @@ -5210,13 +5246,6 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^2.0.0": - version: 2.0.1 - resolution: "is-stream@npm:2.0.1" - checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 - languageName: node - linkType: hard - "is-stream@npm:^3.0.0": version: 3.0.0 resolution: "is-stream@npm:3.0.0" @@ -5435,6 +5464,40 @@ __metadata: languageName: node linkType: hard +"jsdom@npm:^25.0.1": + version: 25.0.1 + resolution: "jsdom@npm:25.0.1" + dependencies: + cssstyle: "npm:^4.1.0" + data-urls: "npm:^5.0.0" + decimal.js: "npm:^10.4.3" + form-data: "npm:^4.0.0" + html-encoding-sniffer: "npm:^4.0.0" + http-proxy-agent: "npm:^7.0.2" + https-proxy-agent: "npm:^7.0.5" + is-potential-custom-element-name: "npm:^1.0.1" + nwsapi: "npm:^2.2.12" + parse5: "npm:^7.1.2" + rrweb-cssom: "npm:^0.7.1" + saxes: "npm:^6.0.0" + symbol-tree: "npm:^3.2.4" + tough-cookie: "npm:^5.0.0" + w3c-xmlserializer: "npm:^5.0.0" + webidl-conversions: "npm:^7.0.0" + whatwg-encoding: "npm:^3.1.1" + whatwg-mimetype: "npm:^4.0.0" + whatwg-url: "npm:^14.0.0" + ws: "npm:^8.18.0" + xml-name-validator: "npm:^5.0.0" + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10c0/6bda32a6dfe4e37a30568bf51136bdb3ba9c0b72aadd6356280404275a34c9e097c8c25b5eb3c742e602623741e172da977ff456684befd77c9042ed9bf8c2b4 + languageName: node + linkType: hard + "jsesc@npm:^3.0.2": version: 3.1.0 resolution: "jsesc@npm:3.1.0" @@ -5944,13 +6007,6 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.4": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c - languageName: node - linkType: hard - "log-update@npm:^6.1.0": version: 6.1.0 resolution: "log-update@npm:6.1.0" @@ -6602,6 +6658,22 @@ __metadata: languageName: node linkType: hard +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + "mime@npm:^4.0.0": version: 4.0.6 resolution: "mime@npm:4.0.6" @@ -6611,13 +6683,6 @@ __metadata: languageName: node linkType: hard -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: 10c0/b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 - languageName: node - linkType: hard - "mimic-fn@npm:^4.0.0": version: 4.0.0 resolution: "mimic-fn@npm:4.0.0" @@ -7087,15 +7152,6 @@ __metadata: languageName: node linkType: hard -"npm-run-path@npm:^4.0.1": - version: 4.0.1 - resolution: "npm-run-path@npm:4.0.1" - dependencies: - path-key: "npm:^3.0.0" - checksum: 10c0/6f9353a95288f8455cf64cbeb707b28826a7f29690244c1e4bb61ec573256e021b6ad6651b394eb1ccfd00d6ec50147253aba2c5fe58a57ceb111fad62c519ac - languageName: node - linkType: hard - "npm-run-path@npm:^5.1.0": version: 5.3.0 resolution: "npm-run-path@npm:5.3.0" @@ -7201,6 +7257,13 @@ __metadata: languageName: node linkType: hard +"nwsapi@npm:^2.2.12": + version: 2.2.16 + resolution: "nwsapi@npm:2.2.16" + checksum: 10c0/0aa0637f4d51043d0183d994e08336bae996b03b42984381bf09ebdf3ff4909c018eda6b2a8aba0a08f3ea8303db8a0dad0608b38dc0bff15fd87017286ae21a + languageName: node + linkType: hard + "obj-props@npm:^2.0.0": version: 2.0.0 resolution: "obj-props@npm:2.0.0" @@ -7286,15 +7349,6 @@ __metadata: languageName: node linkType: hard -"onetime@npm:^5.1.2": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: "npm:^2.1.0" - checksum: 10c0/ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f - languageName: node - linkType: hard - "onetime@npm:^6.0.0": version: 6.0.0 resolution: "onetime@npm:6.0.0" @@ -7645,6 +7699,15 @@ __metadata: languageName: node linkType: hard +"parse5@npm:^7.1.2": + version: 7.2.1 + resolution: "parse5@npm:7.2.1" + dependencies: + entities: "npm:^4.5.0" + checksum: 10c0/829d37a0c709215a887e410a7118d754f8e1afd7edb529db95bc7bbf8045fb0266a7b67801331d8e8d9d073ea75793624ec27ce9ff3b96862c3b9008f4d68e80 + languageName: node + linkType: hard + "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -7666,7 +7729,7 @@ __metadata: languageName: node linkType: hard -"path-key@npm:^3.0.0, path-key@npm:^3.1.0": +"path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c @@ -7935,7 +7998,7 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.1.0": +"punycode@npm:^2.1.0, punycode@npm:^2.3.1": version: 2.3.1 resolution: "punycode@npm:2.3.1" checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 @@ -8432,6 +8495,13 @@ __metadata: languageName: node linkType: hard +"rrweb-cssom@npm:^0.7.1": + version: 0.7.1 + resolution: "rrweb-cssom@npm:0.7.1" + checksum: 10c0/127b8ca6c8aac45e2755abbae6138d4a813b1bedc2caabf79466ae83ab3cfc84b5bfab513b7033f0aa4561c7753edf787d0dd01163ceacdee2e8eb1b6bf7237e + languageName: node + linkType: hard + "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -8495,6 +8565,15 @@ __metadata: languageName: node linkType: hard +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: "npm:^2.2.0" + checksum: 10c0/3847b839f060ef3476eb8623d099aa502ad658f5c40fd60c105ebce86d244389b0d76fcae30f4d0c728d7705ceb2f7e9b34bb54717b6a7dbedaf5dad2d9a4b74 + languageName: node + linkType: hard + "scheduler@npm:^0.20.2": version: 0.20.2 resolution: "scheduler@npm:0.20.2" @@ -8684,13 +8763,6 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^3.0.3": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 - languageName: node - linkType: hard - "signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" @@ -9080,13 +9152,6 @@ __metadata: languageName: node linkType: hard -"strip-final-newline@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-final-newline@npm:2.0.0" - checksum: 10c0/bddf8ccd47acd85c0e09ad7375409d81653f645fda13227a9d459642277c253d877b68f2e5e4d819fe75733b0e626bac7e954c04f3236f6d196f79c94fa4a96f - languageName: node - linkType: hard - "strip-final-newline@npm:^3.0.0": version: 3.0.0 resolution: "strip-final-newline@npm:3.0.0" @@ -9176,6 +9241,13 @@ __metadata: languageName: node linkType: hard +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 10c0/dfbe201ae09ac6053d163578778c53aa860a784147ecf95705de0cd23f42c851e1be7889241495e95c37cabb058edb1052f141387bef68f705afc8f9dd358509 + languageName: node + linkType: hard + "synckit@npm:^0.9.0": version: 0.9.2 resolution: "synckit@npm:0.9.2" @@ -9340,6 +9412,24 @@ __metadata: languageName: node linkType: hard +"tldts-core@npm:^6.1.68": + version: 6.1.68 + resolution: "tldts-core@npm:6.1.68" + checksum: 10c0/7ce2d0526aaf80656e746e322f9632b92afd07702c5aa61f92f908d325d4878fe6654d94039f30f625b32e7ff934e36cb83722b2e62c752ae34beed40fa1d123 + languageName: node + linkType: hard + +"tldts@npm:^6.1.32": + version: 6.1.68 + resolution: "tldts@npm:6.1.68" + dependencies: + tldts-core: "npm:^6.1.68" + bin: + tldts: bin/cli.js + checksum: 10c0/adbc9b23fa18a150e5124daec853ec1a2c7b656e2e294855b52ef2f7f7d5266660392ae222840862b6360165f7adbc3ae731f78f0a0f96ee1b4558328e428a55 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -9349,6 +9439,24 @@ __metadata: languageName: node linkType: hard +"tough-cookie@npm:^5.0.0": + version: 5.0.0 + resolution: "tough-cookie@npm:5.0.0" + dependencies: + tldts: "npm:^6.1.32" + checksum: 10c0/4a69c885bf6f45c5a64e60262af99e8c0d58a33bd3d0ce5da62121eeb9c00996d0128a72df8fc4614cbde59cc8b70aa3e21e4c3c98c2bbde137d7aba7fa00124 + languageName: node + linkType: hard + +"tr46@npm:^5.0.0": + version: 5.0.0 + resolution: "tr46@npm:5.0.0" + dependencies: + punycode: "npm:^2.3.1" + checksum: 10c0/1521b6e7bbc8adc825c4561480f9fe48eb2276c81335eed9fa610aa4c44a48a3221f78b10e5f18b875769eb3413e30efbf209ed556a17a42aa8d690df44b7bee + languageName: node + linkType: hard + "traverse@npm:0.6.8": version: 0.6.8 resolution: "traverse@npm:0.6.8" @@ -10009,6 +10117,15 @@ __metadata: languageName: node linkType: hard +"w3c-xmlserializer@npm:^5.0.0": + version: 5.0.0 + resolution: "w3c-xmlserializer@npm:5.0.0" + dependencies: + xml-name-validator: "npm:^5.0.0" + checksum: 10c0/8712774c1aeb62dec22928bf1cdfd11426c2c9383a1a63f2bcae18db87ca574165a0fbe96b312b73652149167ac6c7f4cf5409f2eb101d9c805efe0e4bae798b + languageName: node + linkType: hard + "walk-up-path@npm:^3.0.1": version: 3.0.1 resolution: "walk-up-path@npm:3.0.1" @@ -10016,6 +10133,39 @@ __metadata: languageName: node linkType: hard +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: 10c0/228d8cb6d270c23b0720cb2d95c579202db3aaf8f633b4e9dd94ec2000a04e7e6e43b76a94509cdb30479bd00ae253ab2371a2da9f81446cc313f89a4213a2c4 + languageName: node + linkType: hard + +"whatwg-encoding@npm:^3.1.1": + version: 3.1.1 + resolution: "whatwg-encoding@npm:3.1.1" + dependencies: + iconv-lite: "npm:0.6.3" + checksum: 10c0/273b5f441c2f7fda3368a496c3009edbaa5e43b71b09728f90425e7f487e5cef9eb2b846a31bd760dd8077739c26faf6b5ca43a5f24033172b003b72cf61a93e + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^4.0.0": + version: 4.0.0 + resolution: "whatwg-mimetype@npm:4.0.0" + checksum: 10c0/a773cdc8126b514d790bdae7052e8bf242970cebd84af62fb2f35a33411e78e981f6c0ab9ed1fe6ec5071b09d5340ac9178e05b52d35a9c4bcf558ba1b1551df + languageName: node + linkType: hard + +"whatwg-url@npm:^14.0.0": + version: 14.1.0 + resolution: "whatwg-url@npm:14.1.0" + dependencies: + tr46: "npm:^5.0.0" + webidl-conversions: "npm:^7.0.0" + checksum: 10c0/f00104f1c67ce086ba8ffedab529cbbd9aefd8c0a6555320026de7aeff31f91c38680f95818b140a7c9cc657cde3781e567835dda552ddb1e2b8faaba0ac3cb6 + languageName: node + linkType: hard + "which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": version: 1.1.1 resolution: "which-boxed-primitive@npm:1.1.1" @@ -10177,6 +10327,35 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.18.0": + version: 8.18.0 + resolution: "ws@npm:8.18.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06 + languageName: node + linkType: hard + +"xml-name-validator@npm:^5.0.0": + version: 5.0.0 + resolution: "xml-name-validator@npm:5.0.0" + checksum: 10c0/3fcf44e7b73fb18be917fdd4ccffff3639373c7cb83f8fc35df6001fecba7942f1dbead29d91ebb8315e2f2ff786b508f0c9dc0215b6353f9983c6b7d62cb1f5 + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 10c0/b64b535861a6f310c5d9bfa10834cf49127c71922c297da9d4d1b45eeaae40bf9b4363275876088fbe2667e5db028d2cd4f8ee72eed9bede840a67d57dab7593 + languageName: node + linkType: hard + "xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" From 5f77ad68eb640caa908a0bb64948cd15f26d679e Mon Sep 17 00:00:00 2001 From: xobotyi Date: Wed, 18 Dec 2024 19:21:49 +0100 Subject: [PATCH 06/13] test: fix coverage generation --- package.json | 1 + yarn.lock | 199 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 196 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 0e20ba32..a3c6d570 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "@types/js-cookie": "^3.0.6", "@types/react": "^18.2.52", "@types/react-dom": "^18.2.6", + "@vitest/coverage-v8": "^2.1.8", "commitlint": "^19.5.0", "eslint": "^9.17.0", "husky": "^9.1.7", diff --git a/yarn.lock b/yarn.lock index 97784044..85bdf4a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -41,6 +41,16 @@ __metadata: languageName: node linkType: hard +"@ampproject/remapping@npm:^2.3.0": + version: 2.3.0 + resolution: "@ampproject/remapping@npm:2.3.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.22.13": version: 7.26.2 resolution: "@babel/code-frame@npm:7.26.2" @@ -52,6 +62,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.24.7, @babel/helper-validator-identifier@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-identifier@npm:7.25.9" @@ -59,6 +76,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.25.4": + version: 7.26.3 + resolution: "@babel/parser@npm:7.26.3" + dependencies: + "@babel/types": "npm:^7.26.3" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/48f736374e61cfd10ddbf7b80678514ae1f16d0e88bc793d2b505d73d9b987ea786fc8c2f7ee8f8b8c467df062030eb07fd0eb2168f0f541ca1f542775852cad + languageName: node + linkType: hard + "@babel/runtime@npm:^7.12.5": version: 7.26.0 resolution: "@babel/runtime@npm:7.26.0" @@ -68,6 +96,23 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.25.4, @babel/types@npm:^7.26.3": + version: 7.26.3 + resolution: "@babel/types@npm:7.26.3" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10c0/966c5242c5e55c8704bf7a7418e7be2703a0afa4d19a8480999d5a4ef13d095dd60686615fe5983cb7593b4b06ba3a7de8d6ca501c1d78bdd233a10d90be787b + languageName: node + linkType: hard + +"@bcoe/v8-coverage@npm:^0.2.3": + version: 0.2.3 + resolution: "@bcoe/v8-coverage@npm:0.2.3" + checksum: 10c0/6b80ae4cb3db53f486da2dc63b6e190a74c8c3cca16bb2733f234a0b6a9382b09b146488ae08e2b22cf00f6c83e20f3e040a2f7894f05c045c946d6a090b1d52 + languageName: node + linkType: hard + "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" @@ -580,13 +625,55 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.5.0": +"@istanbuljs/schema@npm:^0.1.2": + version: 0.1.3 + resolution: "@istanbuljs/schema@npm:0.1.3" + checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.8 + resolution: "@jridgewell/gen-mapping@npm:0.3.8" + dependencies: + "@jridgewell/set-array": "npm:^1.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/c668feaf86c501d7c804904a61c23c67447b2137b813b9ce03eca82cb9d65ac7006d766c218685d76e3d72828279b6ee26c347aa1119dab23fbaf36aed51585a + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4 + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4 + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -1117,6 +1204,7 @@ __metadata: "@types/js-cookie": "npm:^3.0.6" "@types/react": "npm:^18.2.52" "@types/react-dom": "npm:^18.2.6" + "@vitest/coverage-v8": "npm:^2.1.8" commitlint: "npm:^19.5.0" eslint: "npm:^9.17.0" husky: "npm:^9.1.7" @@ -1810,6 +1898,32 @@ __metadata: languageName: node linkType: hard +"@vitest/coverage-v8@npm:^2.1.8": + version: 2.1.8 + resolution: "@vitest/coverage-v8@npm:2.1.8" + dependencies: + "@ampproject/remapping": "npm:^2.3.0" + "@bcoe/v8-coverage": "npm:^0.2.3" + debug: "npm:^4.3.7" + istanbul-lib-coverage: "npm:^3.2.2" + istanbul-lib-report: "npm:^3.0.1" + istanbul-lib-source-maps: "npm:^5.0.6" + istanbul-reports: "npm:^3.1.7" + magic-string: "npm:^0.30.12" + magicast: "npm:^0.3.5" + std-env: "npm:^3.8.0" + test-exclude: "npm:^7.0.1" + tinyrainbow: "npm:^1.2.0" + peerDependencies: + "@vitest/browser": 2.1.8 + vitest: 2.1.8 + peerDependenciesMeta: + "@vitest/browser": + optional: true + checksum: 10c0/b228a23bbaf0eae07ac939399f968b0def2df786091948a12d614919db3f5b6e46db7a1ab4f9d05d5d7f696afd53133a67abc25915f85480cd032442664ac725 + languageName: node + linkType: hard + "@vitest/eslint-plugin@npm:^1.1.14": version: 1.1.18 resolution: "@vitest/eslint-plugin@npm:1.1.18" @@ -2992,7 +3106,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6, debug@npm:^4.3.7, debug@npm:~4.4.0": +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6, debug@npm:^4.3.7, debug@npm:~4.4.0": version: 4.4.0 resolution: "debug@npm:4.4.0" dependencies: @@ -4438,7 +4552,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7, glob@npm:^10.4.5": +"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7, glob@npm:^10.4.1, glob@npm:^10.4.5": version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: @@ -4675,6 +4789,13 @@ __metadata: languageName: node linkType: hard +"html-escaper@npm:^2.0.0": + version: 2.0.2 + resolution: "html-escaper@npm:2.0.2" + checksum: 10c0/208e8a12de1a6569edbb14544f4567e6ce8ecc30b9394fcaa4e7bb1e60c12a7c9a1ed27e31290817157e8626f3a4f29e76c8747030822eb84a6abb15c255f0a0 + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -5373,6 +5494,45 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.2": + version: 3.2.2 + resolution: "istanbul-lib-coverage@npm:3.2.2" + checksum: 10c0/6c7ff2106769e5f592ded1fb418f9f73b4411fd5a084387a5410538332b6567cd1763ff6b6cadca9b9eb2c443cce2f7ea7d7f1b8d315f9ce58539793b1e0922b + languageName: node + linkType: hard + +"istanbul-lib-report@npm:^3.0.0, istanbul-lib-report@npm:^3.0.1": + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" + dependencies: + istanbul-lib-coverage: "npm:^3.0.0" + make-dir: "npm:^4.0.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/84323afb14392de8b6a5714bd7e9af845cfbd56cfe71ed276cda2f5f1201aea673c7111901227ee33e68e4364e288d73861eb2ed48f6679d1e69a43b6d9b3ba7 + languageName: node + linkType: hard + +"istanbul-lib-source-maps@npm:^5.0.6": + version: 5.0.6 + resolution: "istanbul-lib-source-maps@npm:5.0.6" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.23" + debug: "npm:^4.1.1" + istanbul-lib-coverage: "npm:^3.0.0" + checksum: 10c0/ffe75d70b303a3621ee4671554f306e0831b16f39ab7f4ab52e54d356a5d33e534d97563e318f1333a6aae1d42f91ec49c76b6cd3f3fb378addcb5c81da0255f + languageName: node + linkType: hard + +"istanbul-reports@npm:^3.1.7": + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" + dependencies: + html-escaper: "npm:^2.0.0" + istanbul-lib-report: "npm:^3.0.0" + checksum: 10c0/a379fadf9cf8dc5dfe25568115721d4a7eb82fbd50b005a6672aff9c6989b20cc9312d7865814e0859cd8df58cbf664482e1d3604be0afde1f7fc3ccc1394a51 + languageName: node + linkType: hard + "iterator.prototype@npm:^1.1.3": version: 1.1.4 resolution: "iterator.prototype@npm:1.1.4" @@ -6075,6 +6235,26 @@ __metadata: languageName: node linkType: hard +"magicast@npm:^0.3.5": + version: 0.3.5 + resolution: "magicast@npm:0.3.5" + dependencies: + "@babel/parser": "npm:^7.25.4" + "@babel/types": "npm:^7.25.4" + source-map-js: "npm:^1.2.0" + checksum: 10c0/a6cacc0a848af84f03e3f5bda7b0de75e4d0aa9ddce5517fd23ed0f31b5ddd51b2d0ff0b7e09b51f7de0f4053c7a1107117edda6b0732dca3e9e39e6c5a68c64 + languageName: node + linkType: hard + +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" + dependencies: + semver: "npm:^7.5.3" + checksum: 10c0/69b98a6c0b8e5c4fe9acb61608a9fbcfca1756d910f51e5dbe7a9e5cfb74fca9b8a0c8a0ffdf1294a740826c1ab4871d5bf3f62f72a3049e5eac6541ddffed68 + languageName: node + linkType: hard + "make-fetch-happen@npm:^14.0.0, make-fetch-happen@npm:^14.0.1, make-fetch-happen@npm:^14.0.3": version: 14.0.3 resolution: "make-fetch-happen@npm:14.0.3" @@ -8859,7 +9039,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.2.1": +"source-map-js@npm:^1.2.0, source-map-js@npm:^1.2.1": version: 1.2.1 resolution: "source-map-js@npm:1.2.1" checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf @@ -9312,6 +9492,17 @@ __metadata: languageName: node linkType: hard +"test-exclude@npm:^7.0.1": + version: 7.0.1 + resolution: "test-exclude@npm:7.0.1" + dependencies: + "@istanbuljs/schema": "npm:^0.1.2" + glob: "npm:^10.4.1" + minimatch: "npm:^9.0.4" + checksum: 10c0/6d67b9af4336a2e12b26a68c83308c7863534c65f27ed4ff7068a56f5a58f7ac703e8fc80f698a19bb154fd8f705cdf7ec347d9512b2c522c737269507e7b263 + languageName: node + linkType: hard + "text-extensions@npm:^2.0.0": version: 2.4.0 resolution: "text-extensions@npm:2.4.0" From 28ab336f38ba6caf30ad839d947e79f4e5a0fdd9 Mon Sep 17 00:00:00 2001 From: xobotyi Date: Mon, 23 Dec 2024 17:04:56 +0100 Subject: [PATCH 07/13] test: finalize tests migrations --- eslint.config.js | 4 + package.json | 10 +- src/useIntersectionObserver/index.dom.test.ts | 97 +++++++++---------- src/useMediaQuery/index.dom.test.ts | 74 +++----------- src/useMediaQuery/index.ts | 6 +- src/useScreenOrientation/index.dom.test.ts | 50 +++------- src/useStorageValue/index.dom.test.ts | 41 +++----- src/useStorageValue/index.ssr.test.ts | 2 +- src/useStorageValue/misc.test.ts | 11 +++ src/useVibrate/index.dom.test.ts | 28 +++--- src/useVibrate/index.ts | 2 +- src/util/testing/setup/react-hooks.test.ts | 4 + src/util/testing/setup/vibrate.test.ts | 5 + vitest.config.ts | 5 + yarn.lock | 34 ++++--- 15 files changed, 161 insertions(+), 212 deletions(-) create mode 100644 src/useStorageValue/misc.test.ts create mode 100644 src/util/testing/setup/react-hooks.test.ts create mode 100644 src/util/testing/setup/vibrate.test.ts diff --git a/eslint.config.js b/eslint.config.js index e87ea8cf..0cdd43a1 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -15,6 +15,10 @@ const config = [ ...mdConfig, ...typescriptConfig, ...vitestConfig, + { + files: ['*.js', '*.ts'], + rules: {}, + }, ]; export default config; diff --git a/package.json b/package.json index a3c6d570..7a70b7b6 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "postinstall": "husky", "build": "yarn build:clean && tsc --version && tsc --project ./tsconfig.build.json", "build:clean": "yarn rimraf ./dist", - "lint": "eslint", + "lint": "eslint --version && eslint", "lint:fix": "eslint --fix", "test": "vitest --run", "test:coverage": "vitest --run --coverage" @@ -49,8 +49,8 @@ }, "peerDependencies": { "js-cookie": "^3.0.5", - "react": "^16.8 || ^17 || ^18", - "react-dom": "^16.8 || ^17 || ^18" + "react": "^16.8 || ^17 || ^18 || ^19", + "react-dom": "^16.8 || ^17 || ^18 || ^19" }, "peerDependenciesMeta": { "js-cookie": { @@ -64,8 +64,8 @@ "@react-hookz/eslint-formatter-gha": "^3.0.2", "@testing-library/react-hooks": "^8.0.1", "@types/js-cookie": "^3.0.6", - "@types/react": "^18.2.52", - "@types/react-dom": "^18.2.6", + "@types/react": "^17.0.83", + "@types/react-dom": "^17.0.26", "@vitest/coverage-v8": "^2.1.8", "commitlint": "^19.5.0", "eslint": "^9.17.0", diff --git a/src/useIntersectionObserver/index.dom.test.ts b/src/useIntersectionObserver/index.dom.test.ts index 9e72d29f..4916094e 100644 --- a/src/useIntersectionObserver/index.dom.test.ts +++ b/src/useIntersectionObserver/index.dom.test.ts @@ -1,32 +1,28 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; -import {afterAll, beforeAll, beforeEach, describe, expect, it, type Mock, vi} from 'vitest'; +import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; import {useIntersectionObserver} from '../index.js'; describe('useIntersectionObserver', () => { - let IntersectionObserverSpy: Mock; - const initialRO = globalThis.ResizeObserver; + const IntersectionObserverMock = vi.fn((_cb: (entries: IntersectionObserverEntry[]) => void) => ({ + observe: vi.fn(), + unobserve: vi.fn(), + disconnect: vi.fn(), + takeRecords: () => [], + root: document, + rootMargin: '0px', + thresholds: [0], + })); + vi.stubGlobal('IntersectionObserver', IntersectionObserverMock); - beforeAll(() => { - IntersectionObserverSpy = vi.fn(() => ({ - observe: vi.fn(), - unobserve: vi.fn(), - disconnect: vi.fn(), - takeRecords: () => [], - root: document, - rootMargin: '0px', - thresholds: [0], - })); - - globalThis.IntersectionObserver = IntersectionObserverSpy; - vi.useFakeTimers(); + beforeEach(() => { + IntersectionObserverMock.mockClear(); }); - beforeEach(() => { - IntersectionObserverSpy.mockClear(); + beforeAll(() => { + vi.useFakeTimers(); }); afterAll(() => { - globalThis.ResizeObserver = initialRO; vi.useRealTimers(); }); @@ -45,15 +41,13 @@ describe('useIntersectionObserver', () => { expect(result.current).toBeUndefined(); }); - it('should create IntersectionObserver instance only for unique set of options', () => { - expect(IntersectionObserverSpy).toHaveBeenCalledTimes(0); - const div1 = document.createElement('div'); - const div2 = document.createElement('div'); + it('should create IntersectionObserver instance only for unique set of options', async () => { + expect(IntersectionObserverMock).toHaveBeenCalledTimes(0); - renderHook(() => useIntersectionObserver(div1)); - renderHook(() => useIntersectionObserver(div2)); + renderHook(() => useIntersectionObserver(document.createElement('div'))); + renderHook(() => useIntersectionObserver(document.createElement('div'))); - expect(IntersectionObserverSpy).toHaveBeenCalledTimes(1); + expect(IntersectionObserverMock).toHaveBeenCalledTimes(1); }); it('should return intersection entry', () => { @@ -61,74 +55,73 @@ describe('useIntersectionObserver', () => { const div1Ref = {current: div1}; const div2 = document.createElement('div'); - const {result: res1} = renderHook(() => useIntersectionObserver(div1Ref)); - const {result: res2, unmount} = renderHook(() => + const hook1 = renderHook(() => useIntersectionObserver(div1Ref)); + const hook2 = renderHook(() => useIntersectionObserver(div2, {threshold: [0, 1]})); - expect(res1.current).toBeUndefined(); - expect(res2.current).toBeUndefined(); + expect(hook1.result.current).toBeUndefined(); + expect(hook2.result.current).toBeUndefined(); - const entry1 = {target: div1}; - const entry2 = {target: div2}; + const entry1 = {target: div1} as unknown as IntersectionObserverEntry; + const entry2 = {target: div2} as unknown as IntersectionObserverEntry; act(() => { - IntersectionObserverSpy.mock.calls[0][0]([entry1]); - - IntersectionObserverSpy.mock.calls[1][0]([entry2]); + IntersectionObserverMock.mock.calls[0][0]([entry1]); + IntersectionObserverMock.mock.calls[1][0]([entry2]); vi.advanceTimersByTime(1); }); - expect(res1.current).toBe(entry1); - expect(res2.current).toBe(entry2); + expect(hook1.result.current).toBe(entry1); + expect(hook2.result.current).toBe(entry2); - unmount(); + hook2.unmount(); - const entry3 = {target: div1}; + const entry3 = {target: div1} as unknown as IntersectionObserverEntry; act(() => { - IntersectionObserverSpy.mock.calls[0][0]([entry3]); + IntersectionObserverMock.mock.calls[0][0]([entry3]); vi.advanceTimersByTime(1); }); - expect(res1.current).toBe(entry3); + expect(hook1.result.current).toBe(entry3); }); it('two hooks observing same target should use single observer', () => { const div1 = document.createElement('div'); const div2 = document.createElement('div'); - const {result: res1} = renderHook(() => + const hook1 = renderHook(() => useIntersectionObserver(div1, {root: {current: div2}})); - const {result: res2} = renderHook(() => + const hook2 = renderHook(() => useIntersectionObserver(div1, {root: {current: div2}})); - expect(res1.current).toBeUndefined(); - expect(res2.current).toBeUndefined(); + expect(hook1.result.current).toBeUndefined(); + expect(hook2.result.current).toBeUndefined(); - const entry1 = {target: div1}; + const entry1 = {target: div1} as unknown as IntersectionObserverEntry; act(() => { - IntersectionObserverSpy.mock.calls[0][0]([entry1]); + IntersectionObserverMock.mock.calls[0][0]([entry1]); vi.advanceTimersByTime(1); }); - expect(res1.current).toBe(entry1); - expect(res2.current).toBe(entry1); + expect(hook1.result.current).toBe(entry1); + expect(hook1.result.current).toBe(entry1); }); it('should disconnect observer if last hook unmounted', () => { const div1 = document.createElement('div'); const {result, unmount} = renderHook(() => useIntersectionObserver(div1)); - const entry1 = {target: div1}; + const entry1 = {target: div1} as unknown as IntersectionObserverEntry; act(() => { - IntersectionObserverSpy.mock.calls[0][0]([entry1]); + IntersectionObserverMock.mock.calls[0][0]([entry1]); vi.advanceTimersByTime(1); }); expect(result.current).toBe(entry1); unmount(); - expect(IntersectionObserverSpy.mock.results[0].value.disconnect).toHaveBeenCalled(); + expect(IntersectionObserverMock.mock.results[0].value.disconnect).toHaveBeenCalled(); }); }); diff --git a/src/useMediaQuery/index.dom.test.ts b/src/useMediaQuery/index.dom.test.ts index 554976ec..178b5f74 100644 --- a/src/useMediaQuery/index.dom.test.ts +++ b/src/useMediaQuery/index.dom.test.ts @@ -1,47 +1,22 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; -import {afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'; import {useMediaQuery} from '../index.js'; describe('useMediaQuery', () => { - type MutableMediaQueryList = { - matches: boolean; - media: string; - onchange: null; - addListener: vi.Mock; // Deprecated - removeListener: vi.Mock; // Deprecated - addEventListener: vi.Mock; - removeEventListener: vi.Mock; - dispatchEvent: vi.Mock; - }; - - const matchMediaMock = vi.fn(); - let initialMatchMedia: typeof globalThis.matchMedia; - - beforeAll(() => { - initialMatchMedia = globalThis.matchMedia; - Object.defineProperty(globalThis, 'matchMedia', { - writable: true, - value: matchMediaMock, - }); - }); + const matchMediaMock = vi.fn((query: string) => ({ + matches: false, + media: query, + onchange: null, + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + dispatchEvent: vi.fn(), + })); - afterAll(() => { - globalThis.matchMedia = initialMatchMedia; - }); + vi.stubGlobal('matchMedia', matchMediaMock); beforeEach(() => { - matchMediaMock.mockImplementation((query: string) => ({ - matches: false, - media: query, - onchange: null, - addListener: vi.fn(), // Deprecated - removeListener: vi.fn(), // Deprecated - addEventListener: vi.fn(), - removeEventListener: vi.fn(), - dispatchEvent: vi.fn(), - })); + matchMediaMock.mockClear(); }); - afterEach(() => { matchMediaMock.mockClear(); }); @@ -79,7 +54,7 @@ describe('useMediaQuery', () => { const {result} = renderHook(() => useMediaQuery('max-width : 768px')); expect(result.current).toBe(false); - const mql = matchMediaMock.mock.results[0].value as MutableMediaQueryList; + const mql = matchMediaMock.mock.results[0].value; mql.matches = true; act(() => { @@ -97,7 +72,7 @@ describe('useMediaQuery', () => { expect(result2.current).toBe(false); expect(result3.current).toBe(false); - const mql = matchMediaMock.mock.results[0].value as MutableMediaQueryList; + const mql = matchMediaMock.mock.results[0].value; mql.matches = true; act(() => { @@ -126,7 +101,7 @@ describe('useMediaQuery', () => { expect(matchMediaMock).toHaveBeenCalledTimes(2); - const mql = matchMediaMock.mock.results[0].value as MutableMediaQueryList; + const mql = matchMediaMock.mock.results[0].value; mql.matches = true; act(() => { @@ -143,7 +118,7 @@ describe('useMediaQuery', () => { const {unmount: unmount2} = renderHook(() => useMediaQuery('max-width : 768px')); const {unmount: unmount3} = renderHook(() => useMediaQuery('max-width : 768px')); - const mql = matchMediaMock.mock.results[0].value as MutableMediaQueryList; + const mql = matchMediaMock.mock.results[0].value; expect(mql.removeEventListener).not.toHaveBeenCalled(); unmount3(); expect(mql.removeEventListener).not.toHaveBeenCalled(); @@ -152,23 +127,4 @@ describe('useMediaQuery', () => { unmount1(); expect(mql.removeEventListener).toHaveBeenCalledTimes(1); }); - - it('should use addListener and removeListener in case of absence of modern methods', () => { - matchMediaMock.mockImplementation((query: string) => ({ - matches: false, - media: query, - onchange: null, - addListener: vi.fn(), - removeListener: vi.fn(), - dispatchEvent: vi.fn(), - })); - - const {unmount} = renderHook(() => useMediaQuery('max-width : 1024px')); - - const mql = matchMediaMock.mock.results[0].value as MutableMediaQueryList; - expect(mql.addListener).toHaveBeenCalledTimes(1); - - unmount(); - expect(mql.removeListener).toHaveBeenCalledTimes(1); - }); }); diff --git a/src/useMediaQuery/index.ts b/src/useMediaQuery/index.ts index cc788525..0c56ffea 100644 --- a/src/useMediaQuery/index.ts +++ b/src/useMediaQuery/index.ts @@ -17,11 +17,7 @@ const createQueryEntry = (query: string) => { } }; - if (mql.addEventListener) { - mql.addEventListener('change', listener, {passive: true}); - } else { - mql.addListener(listener); - } + mql.addEventListener('change', listener, {passive: true}); return { mql, diff --git a/src/useScreenOrientation/index.dom.test.ts b/src/useScreenOrientation/index.dom.test.ts index 80ef1a8f..df548499 100644 --- a/src/useScreenOrientation/index.dom.test.ts +++ b/src/useScreenOrientation/index.dom.test.ts @@ -1,48 +1,22 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; -import {afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'; import {useScreenOrientation} from '../index.js'; describe('useScreenOrientation', () => { - // Have to copy implementation as jsdom lacks of it - type MutableMediaQueryList = { - matches: boolean; - media: string; - onchange: null; - addListener: vi.Mock; // Deprecated - removeListener: vi.Mock; // Deprecated - addEventListener: vi.Mock; - removeEventListener: vi.Mock; - dispatchEvent: vi.Mock; - }; + const matchMediaMock = vi.fn((query: string) => ({ + matches: false, + media: query, + onchange: null, + addEventListener: vi.fn(), + removeEventListener: vi.fn(), + dispatchEvent: vi.fn(), + })); - const matchMediaMock = vi.fn(); - let initialMatchMedia: typeof globalThis.matchMedia; - - beforeAll(() => { - initialMatchMedia = globalThis.matchMedia; - Object.defineProperty(globalThis, 'matchMedia', { - writable: true, - value: matchMediaMock, - }); - }); - - afterAll(() => { - globalThis.matchMedia = initialMatchMedia; - }); + vi.stubGlobal('matchMedia', matchMediaMock); beforeEach(() => { - matchMediaMock.mockImplementation((query: string) => ({ - matches: false, - media: query, - onchange: null, - addListener: vi.fn(), // Deprecated - removeListener: vi.fn(), // Deprecated - addEventListener: vi.fn(), - removeEventListener: vi.fn(), - dispatchEvent: vi.fn(), - })); + matchMediaMock.mockClear(); }); - afterEach(() => { matchMediaMock.mockClear(); }); @@ -66,7 +40,7 @@ describe('useScreenOrientation', () => { const {result} = renderHook(() => useScreenOrientation()); expect(result.current).toBe('landscape'); - const mql = matchMediaMock.mock.results[0].value as MutableMediaQueryList; + const mql = matchMediaMock.mock.results[0].value; mql.matches = true; act(() => { diff --git a/src/useStorageValue/index.dom.test.ts b/src/useStorageValue/index.dom.test.ts index 43605f37..1e953363 100644 --- a/src/useStorageValue/index.dom.test.ts +++ b/src/useStorageValue/index.dom.test.ts @@ -1,17 +1,8 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; -import {describe, expect, it, type Mocked, vi} from 'vitest'; +import {describe, expect, it, vi} from 'vitest'; +import {newStorage} from './misc.test.js'; import {useStorageValue} from './index.js'; -export const newStorage = ( - get: Storage['getItem'] = () => null, - set: Storage['setItem'] = () => {}, - remove: Storage['removeItem'] = () => {}, -) => ({ - getItem: vi.fn(get), - setItem: vi.fn(set), - removeItem: vi.fn(remove), -} as Mocked); - describe('useStorageValue', () => { it('should be defined', () => { expect(useStorageValue).toBeDefined(); @@ -32,7 +23,7 @@ describe('useStorageValue', () => { }); rerender(); - const firstResult = result.all[0]; + const firstResult = result.all[0] as ReturnType; expect(firstResult.set).toBe(result.current.set); expect(firstResult.fetch).toBe(result.current.fetch); @@ -312,30 +303,30 @@ describe('useStorageValue', () => { describe('synchronisation', () => { it('should update state of all hooks with the same key in same storage', () => { - const {result: res} = renderHook(() => useStorageValue(localStorage, 'foo')); - const {result: res1} = renderHook(() => useStorageValue(localStorage, 'foo')); + const hook1 = renderHook(() => useStorageValue(localStorage, 'foo')); + const hook2 = renderHook(() => useStorageValue(localStorage, 'foo')); - expect(res.current.value).toBe(null); - expect(res1.current.value).toBe(null); + expect(hook1.result.current.value).toBe(null); + expect(hook2.result.current.value).toBe(null); act(() => { - res.current.set('bar'); + hook1.result.current.set('bar'); }); - expect(res.current.value).toBe('bar'); - expect(res1.current.value).toBe('bar'); + expect(hook1.result.current.value).toBe('bar'); + expect(hook2.result.current.value).toBe('bar'); act(() => { - res.current.remove(); + hook1.result.current.remove(); }); - expect(res.current.value).toBe(null); - expect(res1.current.value).toBe(null); + expect(hook1.result.current.value).toBe(null); + expect(hook2.result.current.value).toBe(null); localStorage.setItem('foo', '"123"'); act(() => { - res.current.fetch(); + hook1.result.current.fetch(); }); - expect(res.current.value).toBe('123'); - expect(res1.current.value).toBe('123'); + expect(hook1.result.current.value).toBe('123'); + expect(hook2.result.current.value).toBe('123'); localStorage.removeItem('foo'); }); }); diff --git a/src/useStorageValue/index.ssr.test.ts b/src/useStorageValue/index.ssr.test.ts index 300bcc94..907b4cc5 100644 --- a/src/useStorageValue/index.ssr.test.ts +++ b/src/useStorageValue/index.ssr.test.ts @@ -1,6 +1,6 @@ import {act, renderHook} from '@testing-library/react-hooks/server'; import {describe, expect, it} from 'vitest'; -import {newStorage} from './index.dom.test.js'; +import {newStorage} from './misc.test.js'; import {useStorageValue} from './index.js'; describe('useStorageValue', () => { diff --git a/src/useStorageValue/misc.test.ts b/src/useStorageValue/misc.test.ts new file mode 100644 index 00000000..eec071b9 --- /dev/null +++ b/src/useStorageValue/misc.test.ts @@ -0,0 +1,11 @@ +import {type Mocked, vi} from 'vitest'; + +export const newStorage = ( + get: Storage['getItem'] = () => null, + set: Storage['setItem'] = () => {}, + remove: Storage['removeItem'] = () => {}, +) => ({ + getItem: vi.fn(get), + setItem: vi.fn(set), + removeItem: vi.fn(remove), +} as unknown as Mocked); diff --git a/src/useVibrate/index.dom.test.ts b/src/useVibrate/index.dom.test.ts index 72af593c..0b83c0ce 100644 --- a/src/useVibrate/index.dom.test.ts +++ b/src/useVibrate/index.dom.test.ts @@ -3,14 +3,16 @@ import {afterAll, beforeEach, describe, expect, it, vi} from 'vitest'; import {useVibrate} from '../index.js'; describe('useVibrate', () => { - const vibrateSpy = vi.spyOn(navigator, 'vibrate'); + const vibrateMock = vi.fn(() => true); + + globalThis.navigator.vibrate = (vibrateMock) as typeof navigator.vibrate; beforeEach(() => { - vibrateSpy.mockReset(); + vibrateMock.mockReset(); }); afterAll(() => { - vibrateSpy.mockRestore(); + vibrateMock.mockRestore(); }); it('should be defined', () => { @@ -28,8 +30,8 @@ describe('useVibrate', () => { renderHook(() => { useVibrate(true, [100, 200]); }); - expect(vibrateSpy).toHaveBeenCalledTimes(1); - expect(vibrateSpy.mock.calls[0][0]).toEqual([100, 200]); + expect(vibrateMock).toHaveBeenCalledTimes(1); + expect(vibrateMock.mock.calls[0][0]).toEqual([100, 200]); }); it('should call navigator.vibrate(0) on unmount', () => { @@ -38,7 +40,7 @@ describe('useVibrate', () => { }); unmount(); - expect(vibrateSpy.mock.calls[1][0]).toEqual(0); + expect(vibrateMock.mock.calls[1][0]).toEqual(0); }); it('should vibrate constantly using interval', () => { @@ -47,19 +49,19 @@ describe('useVibrate', () => { useVibrate(true, 300, true); }); - expect(vibrateSpy).toHaveBeenCalledTimes(1); - expect(vibrateSpy.mock.calls[0][0]).toEqual(300); + expect(vibrateMock).toHaveBeenCalledTimes(1); + expect(vibrateMock.mock.calls[0][0]).toEqual(300); vi.advanceTimersByTime(299); - expect(vibrateSpy).toHaveBeenCalledTimes(1); + expect(vibrateMock).toHaveBeenCalledTimes(1); vi.advanceTimersByTime(1); - expect(vibrateSpy).toHaveBeenCalledTimes(2); - expect(vibrateSpy.mock.calls[1][0]).toEqual(300); + expect(vibrateMock).toHaveBeenCalledTimes(2); + expect(vibrateMock.mock.calls[1][0]).toEqual(300); vi.advanceTimersByTime(300); - expect(vibrateSpy).toHaveBeenCalledTimes(3); - expect(vibrateSpy.mock.calls[2][0]).toEqual(300); + expect(vibrateMock).toHaveBeenCalledTimes(3); + expect(vibrateMock.mock.calls[2][0]).toEqual(300); vi.useRealTimers(); }); diff --git a/src/useVibrate/index.ts b/src/useVibrate/index.ts index dbb09619..6c8563bc 100644 --- a/src/useVibrate/index.ts +++ b/src/useVibrate/index.ts @@ -9,7 +9,7 @@ import {isBrowser, noop} from '../util/const.js'; * @param loop If true - vibration will be looped using `setInterval`. */ export const useVibrate = - !isBrowser || navigator.vibrate === undefined ? + (!isBrowser || navigator.vibrate === undefined) ? noop : (enabled: boolean, pattern: VibratePattern, loop?: boolean): void => { useEffect(() => { diff --git a/src/util/testing/setup/react-hooks.test.ts b/src/util/testing/setup/react-hooks.test.ts new file mode 100644 index 00000000..b6550589 --- /dev/null +++ b/src/util/testing/setup/react-hooks.test.ts @@ -0,0 +1,4 @@ +import {cleanup} from '@testing-library/react-hooks'; +import {afterEach} from 'vitest'; + +afterEach(cleanup); diff --git a/src/util/testing/setup/vibrate.test.ts b/src/util/testing/setup/vibrate.test.ts new file mode 100644 index 00000000..3c92efb3 --- /dev/null +++ b/src/util/testing/setup/vibrate.test.ts @@ -0,0 +1,5 @@ +import {vi} from 'vitest'; + +const vibrateMock = vi.fn(() => true); + +globalThis.navigator.vibrate = (vibrateMock) as typeof navigator.vibrate; diff --git a/vitest.config.ts b/vitest.config.ts index 2132a7a3..04652150 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -3,6 +3,11 @@ import {defineConfig} from 'vitest/config'; export default defineConfig({ test: { dir: './src', + setupFiles: [ + './src/util/testing/setup/react-hooks.test.ts', + './src/util/testing/setup/vibrate.test.ts', + ], + passWithNoTests: true, environmentMatchGlobs: [ ['**/*.dom.test.ts', 'jsdom'], ['**/*.ssr.test.ts', 'node'], diff --git a/yarn.lock b/yarn.lock index 85bdf4a7..f6fed5cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1202,8 +1202,8 @@ __metadata: "@react-hookz/eslint-formatter-gha": "npm:^3.0.2" "@testing-library/react-hooks": "npm:^8.0.1" "@types/js-cookie": "npm:^3.0.6" - "@types/react": "npm:^18.2.52" - "@types/react-dom": "npm:^18.2.6" + "@types/react": "npm:^17.0.83" + "@types/react-dom": "npm:^17.0.26" "@vitest/coverage-v8": "npm:^2.1.8" commitlint: "npm:^19.5.0" eslint: "npm:^9.17.0" @@ -1220,8 +1220,8 @@ __metadata: vitest: "npm:^2.1.8" peerDependencies: js-cookie: ^3.0.5 - react: ^16.8 || ^17 || ^18 - react-dom: ^16.8 || ^17 || ^18 + react: ^16.8 || ^17 || ^18 || ^19 + react-dom: ^16.8 || ^17 || ^18 || ^19 peerDependenciesMeta: js-cookie: optional: true @@ -1739,22 +1739,30 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.2.6": - version: 18.3.5 - resolution: "@types/react-dom@npm:18.3.5" +"@types/react-dom@npm:^17.0.26": + version: 17.0.26 + resolution: "@types/react-dom@npm:17.0.26" peerDependencies: - "@types/react": ^18.0.0 - checksum: 10c0/b163d35a6b32a79f5782574a7aeb12a31a647e248792bf437e6d596e2676961c394c5e3c6e91d1ce44ae90441dbaf93158efb4f051c0d61e2612f1cb04ce4faa + "@types/react": ^17.0.0 + checksum: 10c0/8363921f08afe3f2ef82fe293301a0809ec646975fe9f5bfeb2e823f7237b97e47d27e1c6c2ffff27d15c12ab3cad1de6c77a737e37499fcc52793b0fd674f3f languageName: node linkType: hard -"@types/react@npm:^18.2.52": - version: 18.3.17 - resolution: "@types/react@npm:18.3.17" +"@types/react@npm:^17.0.83": + version: 17.0.83 + resolution: "@types/react@npm:17.0.83" dependencies: "@types/prop-types": "npm:*" + "@types/scheduler": "npm:^0.16" csstype: "npm:^3.0.2" - checksum: 10c0/475191e9cd0ab5bef35cc1868295d6526cd78b25c1bb816f0747a1e92261688305f81c0e29aff52e6ea70397f133e34c399dc936cb5072f1acf465d9daacc0da + checksum: 10c0/c8f76790190a9df42099f5f78d08dd4095f2da3bd97ff7cce0001d5a97ff3ffb31f703575acf2c457606e0d0b229ca8d1ba0ff459b77a4e44c5ea5154fe3fb4b + languageName: node + linkType: hard + +"@types/scheduler@npm:^0.16": + version: 0.16.8 + resolution: "@types/scheduler@npm:0.16.8" + checksum: 10c0/f86de504945b8fc41b1f391f847444d542e2e4067cf7e5d9bfeb5d2d2393d3203b1161bc0ef3b1e104d828dabfb60baf06e8d2c27e27ff7e8258e6e618d8c4ec languageName: node linkType: hard From 1635b75d6393c49bfe83ee6bee685b45c7f9a9d7 Mon Sep 17 00:00:00 2001 From: xobotyi Date: Mon, 23 Dec 2024 18:06:34 +0100 Subject: [PATCH 08/13] feat: improve `resolveHookState` function It has better typings overall and passes previous state to state updater only in case it is being passed to `resolveHookState` function. BREAKING CHANGE: resolve hook state does not pass `undefined` to `nextState` function when while being called without `previousState` --- src/index.ts | 2 +- src/useControlledRerenderState/index.ts | 2 +- src/useCounter/index.ts | 2 +- src/useList/index.ts | 2 +- src/useMediatedState/index.ts | 2 +- src/useNetworkState/index.ts | 2 +- src/useStorageValue/index.ts | 2 +- src/useToggle/index.ts | 2 +- src/useValidator/index.ts | 2 +- src/util/index.dom.test.ts | 28 ------------------- src/util/resolve-hook-state.test.ts | 34 +++++++++++++++++++++++ src/util/resolve-hook-state.ts | 36 +++++++++++++++++++++++++ src/util/resolveHookState.ts | 20 -------------- 13 files changed, 79 insertions(+), 57 deletions(-) create mode 100644 src/util/resolve-hook-state.test.ts create mode 100644 src/util/resolve-hook-state.ts delete mode 100644 src/util/resolveHookState.ts diff --git a/src/index.ts b/src/index.ts index 84100247..ffcac791 100644 --- a/src/index.ts +++ b/src/index.ts @@ -73,7 +73,7 @@ export * from './useWindowSize/index.js'; // Utils export {isStrictEqual, truthyAndArrayPredicate, truthyOrArrayPredicate} from './util/const.js'; export type {EffectCallback, EffectHook} from './util/misc.js'; -export {resolveHookState} from './util/resolveHookState.js'; +export {resolveHookState} from './util/resolve-hook-state.js'; // Types export type * from './types.js'; diff --git a/src/useControlledRerenderState/index.ts b/src/useControlledRerenderState/index.ts index 6be44ff9..f4525901 100644 --- a/src/useControlledRerenderState/index.ts +++ b/src/useControlledRerenderState/index.ts @@ -1,7 +1,7 @@ import {type SetStateAction, useCallback, useRef} from 'react'; import {useFirstMountState} from '../useFirstMountState/index.js'; import {useRerender} from '../useRerender/index.js'; -import {resolveHookState} from '../util/resolveHookState.js'; +import {resolveHookState} from '../util/resolve-hook-state.js'; export type ControlledRerenderDispatch = (value: A, rerender?: boolean) => void; diff --git a/src/useCounter/index.ts b/src/useCounter/index.ts index 4ee57053..79f1bd33 100644 --- a/src/useCounter/index.ts +++ b/src/useCounter/index.ts @@ -1,7 +1,7 @@ import {type SetStateAction, useMemo} from 'react'; import {useMediatedState} from '../useMediatedState/index.js'; import {useSyncedRef} from '../useSyncedRef/index.js'; -import {type InitialState, resolveHookState} from '../util/resolveHookState.js'; +import {type InitialState, resolveHookState} from '../util/resolve-hook-state.js'; export type CounterActions = { /** diff --git a/src/useList/index.ts b/src/useList/index.ts index 80175e61..b0360158 100644 --- a/src/useList/index.ts +++ b/src/useList/index.ts @@ -1,7 +1,7 @@ import {type SetStateAction, useMemo, useRef} from 'react'; import {useRerender} from '../useRerender/index.js'; import {useSyncedRef} from '../useSyncedRef/index.js'; -import {type InitialState, resolveHookState} from '../util/resolveHookState.js'; +import {type InitialState, resolveHookState} from '../util/resolve-hook-state.js'; export type ListActions = { /** diff --git a/src/useMediatedState/index.ts b/src/useMediatedState/index.ts index 90d5f43e..b1ac48ca 100644 --- a/src/useMediatedState/index.ts +++ b/src/useMediatedState/index.ts @@ -1,6 +1,6 @@ import {type Dispatch, useCallback, useState} from 'react'; import {useSyncedRef} from '../useSyncedRef/index.js'; -import {type InitialState, type NextState, resolveHookState} from '../util/resolveHookState.js'; +import {type InitialState, type NextState, resolveHookState} from '../util/resolve-hook-state.js'; export function useMediatedState(): [ State | undefined, diff --git a/src/useNetworkState/index.ts b/src/useNetworkState/index.ts index ee6ab138..8d88569e 100644 --- a/src/useNetworkState/index.ts +++ b/src/useNetworkState/index.ts @@ -1,7 +1,7 @@ import {useEffect, useState} from 'react'; import {isBrowser} from '../util/const.js'; import {off, on} from '../util/misc.js'; -import {type InitialState} from '../util/resolveHookState.js'; +import {type InitialState} from '../util/resolve-hook-state.js'; export type NetworkInformation = { readonly downlink: number; diff --git a/src/useStorageValue/index.ts b/src/useStorageValue/index.ts index 63b9c361..3b51584b 100644 --- a/src/useStorageValue/index.ts +++ b/src/useStorageValue/index.ts @@ -5,7 +5,7 @@ import {useSyncedRef} from '../useSyncedRef/index.js'; import {useUpdateEffect} from '../useUpdateEffect/index.js'; import {isBrowser} from '../util/const.js'; import {off, on} from '../util/misc.js'; -import {type NextState, resolveHookState} from '../util/resolveHookState.js'; +import {type NextState, resolveHookState} from '../util/resolve-hook-state.js'; const storageListeners = new Map>>(); diff --git a/src/useToggle/index.ts b/src/useToggle/index.ts index a03ed19f..6edc1969 100644 --- a/src/useToggle/index.ts +++ b/src/useToggle/index.ts @@ -1,6 +1,6 @@ import {type BaseSyntheticEvent, useCallback, useState} from 'react'; import {useSyncedRef} from '../useSyncedRef/index.js'; -import {type InitialState, type NextState, resolveHookState} from '../util/resolveHookState.js'; +import {type InitialState, type NextState, resolveHookState} from '../util/resolve-hook-state.js'; export function useToggle( initialState: InitialState, diff --git a/src/useValidator/index.ts b/src/useValidator/index.ts index 794e29b6..20826f8a 100644 --- a/src/useValidator/index.ts +++ b/src/useValidator/index.ts @@ -1,6 +1,6 @@ import {type DependencyList, type Dispatch, useCallback, useEffect, useState} from 'react'; import {useSyncedRef} from '../useSyncedRef/index.js'; -import {type InitialState, type NextState} from '../util/resolveHookState.js'; +import {type InitialState, type NextState} from '../util/resolve-hook-state.js'; export type ValidityState = { isValid: boolean | undefined; diff --git a/src/util/index.dom.test.ts b/src/util/index.dom.test.ts index 83e19fcd..1e1de82a 100644 --- a/src/util/index.dom.test.ts +++ b/src/util/index.dom.test.ts @@ -1,34 +1,6 @@ import {describe, expect, it, vi} from 'vitest'; -import {resolveHookState} from '../index.js'; import {basicDepsComparator, off, on} from './misc.js'; -describe('resolveHookState', () => { - it('should be defined', () => { - expect(resolveHookState).toBeDefined(); - }); - - it('should return value itself if it is not function', () => { - expect(resolveHookState(123)).toBe(123); - - const object = {foo: 'bar'}; - expect(resolveHookState(object)).toBe(object); - }); - - it('should return call result in case function received', () => { - expect(resolveHookState(() => 123)).toBe(123); - - const object = {foo: 'bar'}; - expect(resolveHookState(() => object)).toBe(object); - }); - - it('should pass second parameter to received function', () => { - expect(resolveHookState(state => state, 123)).toBe(123); - - const object = {foo: 'bar'}; - expect(resolveHookState(state => state, object)).toBe(object); - }); -}); - const cb = () => {}; describe('misc', () => { diff --git a/src/util/resolve-hook-state.test.ts b/src/util/resolve-hook-state.test.ts new file mode 100644 index 00000000..382354be --- /dev/null +++ b/src/util/resolve-hook-state.test.ts @@ -0,0 +1,34 @@ +import {describe, expect, it, vi} from 'vitest'; +import {resolveHookState} from '../index.js'; + +describe('resolveHookState', () => { + it('should be defined', () => { + expect(resolveHookState).toBeDefined(); + }); + + it('should return value itself if it is not function', () => { + expect(resolveHookState(123)).toBe(123); + + const object = {foo: 'bar'}; + expect(resolveHookState(object)).toBe(object); + }); + + it('should only call passed function with provided arguments', () => { + // state initializer + const initializer = vi.fn(() => 123); + expect(resolveHookState(initializer)).toBe(123); + expect(initializer).toHaveBeenCalledTimes(1); + expect(initializer.mock.calls[0]).toHaveLength(0); + + // state updater + const updater = vi.fn((previousState?: number) => (previousState ?? 0) + 1); + expect(resolveHookState(updater, 1)).toBe(2); + expect(updater).toHaveBeenCalledTimes(1); + expect(updater.mock.calls[0]).toHaveLength(1); + + // function suitable for both initializer and updater + expect(resolveHookState(updater)).toBe(1); + expect(updater).toHaveBeenCalledTimes(2); + expect(updater.mock.calls[1]).toHaveLength(0); + }); +}); diff --git a/src/util/resolve-hook-state.ts b/src/util/resolve-hook-state.ts new file mode 100644 index 00000000..46ccc9d4 --- /dev/null +++ b/src/util/resolve-hook-state.ts @@ -0,0 +1,36 @@ +type StateInitializerFN = () => State; +type StateUpdaterFN = (previousState: PreviousState) => State; + +export type InitialState = State | StateInitializerFN; +export type NextState = State | StateUpdaterFN; + +function initState(initialState: InitialState): State { + if (typeof initialState === 'function') { + initialState = (initialState as StateInitializerFN)(); + } + + return initialState; +} + +function updateState( + nextState: NextState, + previousState: PreviousState, +): State { + if (typeof nextState === 'function') { + return (nextState as StateUpdaterFN)(previousState); + } + + return nextState; +} + +export function resolveHookState( + ...args: + | Parameters> + | Parameters> +) { + if (args.length === 1) { + return initState(args[0]); + } + + return updateState(args[0], args[1]); +} diff --git a/src/util/resolveHookState.ts b/src/util/resolveHookState.ts deleted file mode 100644 index 476928e1..00000000 --- a/src/util/resolveHookState.ts +++ /dev/null @@ -1,20 +0,0 @@ -export type InitialState = State | (() => State); -export type NextState = - | State - | ((previousState: PreviousState) => State); - -export function resolveHookState(nextState: InitialState): State; -export function resolveHookState( - nextState: NextState, - previousState: PreviousState -): State; -export function resolveHookState( - nextState: InitialState | NextState, - previousState?: PreviousState, -): State { - if (typeof nextState === 'function') { - return (nextState as CallableFunction)(previousState); - } - - return nextState; -} From 062d168e232c92878257811d39bfdd6c691413ad Mon Sep 17 00:00:00 2001 From: xobotyi Date: Mon, 23 Dec 2024 23:24:50 +0100 Subject: [PATCH 09/13] feat: address all linting issues --- eslint.config.js | 4 --- package.json | 4 +-- src/useAsync/index.dom.test.ts | 20 ++++++----- src/useAsync/index.ts | 5 +-- src/useAsyncAbortable/index.dom.test.ts | 18 +++++----- src/useCookieValue/index.dom.test.ts | 39 ++++++++++------------ src/useDebouncedCallback/index.ts | 2 +- src/useDeepCompareMemo/index.dom.test.ts | 2 +- src/useIntersectionObserver/index.ts | 24 ++++++++----- src/useIntervalEffect/index.dom.test.ts | 9 +++-- src/useLifecycleLogger/index.dom.test.ts | 8 ++--- src/useLifecycleLogger/index.ts | 2 ++ src/useList/index.dom.test.ts | 6 ++-- src/useMap/index.ts | 4 +-- src/useMeasure/index.dom.test.ts | 27 +++++++-------- src/useMeasure/index.ssr.test.ts | 16 ++++----- src/useMediaQuery/index.dom.test.ts | 20 +++++++++++ src/useMediaQuery/index.ts | 1 + src/useMountEffect/index.ts | 1 + src/usePermission/index.dom.test.ts | 18 +++++----- src/useResizeObserver/index.dom.test.ts | 18 ++++------ src/useResizeObserver/index.ts | 10 ++++-- src/useScreenOrientation/index.dom.test.ts | 5 +++ src/useSet/index.ts | 4 +-- src/useStorageValue/index.ts | 19 ++++++----- src/useThrottledCallback/index.ts | 2 +- src/useUnmountEffect/index.ts | 1 + src/util/index.dom.test.ts | 2 ++ 28 files changed, 158 insertions(+), 133 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 0cdd43a1..e87ea8cf 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -15,10 +15,6 @@ const config = [ ...mdConfig, ...typescriptConfig, ...vitestConfig, - { - files: ['*.js', '*.ts'], - rules: {}, - }, ]; export default config; diff --git a/package.json b/package.json index 7a70b7b6..6efe7509 100644 --- a/package.json +++ b/package.json @@ -49,8 +49,8 @@ }, "peerDependencies": { "js-cookie": "^3.0.5", - "react": "^16.8 || ^17 || ^18 || ^19", - "react-dom": "^16.8 || ^17 || ^18 || ^19" + "react": "^16.8 || ^17 || ^18", + "react-dom": "^16.8 || ^17 || ^18" }, "peerDependenciesMeta": { "js-cookie": { diff --git a/src/useAsync/index.dom.test.ts b/src/useAsync/index.dom.test.ts index 43b0674d..a6ffb87a 100644 --- a/src/useAsync/index.dom.test.ts +++ b/src/useAsync/index.dom.test.ts @@ -39,9 +39,13 @@ describe('useAsync', () => { it('should apply `initialValue` arg', async () => { await act(async () => { - const [spy, resolve] = getControllableAsync(); + const [spy, resolve] = getControllableAsync(); const {result} = renderHook(() => useAsync(spy, 3)); + if (result.all[0] instanceof Error) { + throw result.all[0]; + } + expect(result.all[0][0]).toStrictEqual({ status: 'not-executed', error: undefined, @@ -56,7 +60,7 @@ describe('useAsync', () => { it('should have `not-executed` status initially', async () => { await act(async () => { - const [spy, resolve] = getControllableAsync(); + const [spy, resolve] = getControllableAsync(); const {result} = renderHook(() => useAsync(spy)); expect(result.current[0]).toStrictEqual({ @@ -72,7 +76,7 @@ describe('useAsync', () => { }); it('should have `loading` status while promise invoked but not resolved', async () => { - const [spy, resolve] = getControllableAsync(); + const [spy, resolve] = getControllableAsync(); const {result} = renderHook(() => useAsync(spy)); expect(result.current[0]).toStrictEqual({ @@ -99,7 +103,7 @@ describe('useAsync', () => { }); it('should set `success` status and store `result` state field on fulfill', async () => { - const [spy, resolve] = getControllableAsync(); + const [spy, resolve] = getControllableAsync(); const {result} = renderHook(() => useAsync(spy)); expect(result.current[0]).toStrictEqual({ @@ -124,7 +128,7 @@ describe('useAsync', () => { }); it('should set `error` status and store `error` state field on reject', async () => { - const [spy, , reject] = getControllableAsync(); + const [spy, , reject] = getControllableAsync(); const {result} = renderHook(() => useAsync(spy)); expect(result.current[0]).toStrictEqual({ @@ -151,7 +155,7 @@ describe('useAsync', () => { }); it('should rollback state to initial on `reset` method call', async () => { - const [spy, resolve] = getControllableAsync(); + const [spy, resolve] = getControllableAsync(); const {result} = renderHook(() => useAsync(spy, 42)); expect(result.current[0]).toStrictEqual({ @@ -186,7 +190,7 @@ describe('useAsync', () => { }); it('should not process results of promise if another was executed', async () => { - const [spy, resolve] = getControllableAsync(); + const [spy, resolve] = getControllableAsync(); const {result} = renderHook(() => useAsync(spy, 42)); await act(async () => { @@ -217,7 +221,7 @@ describe('useAsync', () => { }); it('should not process error of promise if another was executed', async () => { - const [spy, resolve, reject] = getControllableAsync(); + const [spy, resolve, reject] = getControllableAsync(); const {result} = renderHook(() => useAsync(spy, 42)); await act(async () => { diff --git a/src/useAsync/index.ts b/src/useAsync/index.ts index 669898d1..402631c1 100644 --- a/src/useAsync/index.ts +++ b/src/useAsync/index.ts @@ -93,11 +93,12 @@ export function useAsync( setState(s => ({...s, status: 'success', error: undefined, result})); } }, + // eslint-disable-next-line @typescript-eslint/use-unknown-in-catch-callback-variable (error: Error) => { - // We dont want to handle result/error of non-latest function + // We don't want to handle result/error of non-latest function // this approach helps to avoid race conditions if (promise === promiseRef.current) { - setState(s => ({...s, status: 'error', error})); + setState(previousState => ({...previousState, status: 'error', error})); } }, ); diff --git a/src/useAsyncAbortable/index.dom.test.ts b/src/useAsyncAbortable/index.dom.test.ts index d879dae5..37a7dfa2 100644 --- a/src/useAsyncAbortable/index.dom.test.ts +++ b/src/useAsyncAbortable/index.dom.test.ts @@ -2,17 +2,17 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; import {describe, expect, it, vi} from 'vitest'; import {useAsyncAbortable} from '../index.js'; -function getControllableAsync() { - const resolve: {current: undefined | ((result: Res) => void)} = {current: undefined}; +function getControllableAsync() { + const resolve: {current: undefined | ((result: Response) => void)} = {current: undefined}; const reject: {current: undefined | ((err: Error) => void)} = {current: undefined}; return [ vi.fn( (..._args: Args) => // eslint-disable-next-line promise/param-names - new Promise((res, rej) => { - resolve.current = res; - reject.current = rej; + new Promise((reslv, rejct) => { + resolve.current = reslv; + reject.current = rejct; }), ), resolve, @@ -34,12 +34,12 @@ describe('useAsyncAbortable', () => { const spy = vi.fn(async () => {}); const {rerender, result} = renderHook(() => useAsyncAbortable(spy)); - const res1 = result.current; + const result1 = result.current; rerender(); - expect(res1[1].execute).toBe(result.current[1].execute); - expect(res1[1].reset).toBe(result.current[1].reset); - expect(res1[1].abort).toBe(result.current[1].abort); + expect(result1[1].execute).toBe(result.current[1].execute); + expect(result1[1].reset).toBe(result.current[1].reset); + expect(result1[1].abort).toBe(result.current[1].abort); }); it('should pass abort signal as first argument', async () => { diff --git a/src/useCookieValue/index.dom.test.ts b/src/useCookieValue/index.dom.test.ts index d022ce6e..35055b1f 100644 --- a/src/useCookieValue/index.dom.test.ts +++ b/src/useCookieValue/index.dom.test.ts @@ -2,16 +2,11 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; import Cookies from 'js-cookie'; import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; import {useCookieValue, type UseCookieValueReturn} from './index.js'; -import SpyInstance = vi.SpyInstance; describe('useCookieValue', () => { - type CookiesGet = typeof Cookies.get; - type CookiesSet = typeof Cookies.set; - type CookiesRemove = typeof Cookies.remove; - - let getSpy: SpyInstance, Parameters>; - let setSpy: SpyInstance, Parameters>; - let removeSpy: SpyInstance, Parameters>; + let getSpy = vi.spyOn(Cookies, 'get'); + let setSpy = vi.spyOn(Cookies, 'set'); + let removeSpy = vi.spyOn(Cookies, 'remove'); beforeAll(() => { getSpy = vi.spyOn(Cookies, 'get'); @@ -104,36 +99,36 @@ describe('useCookieValue', () => { }); it('should be synchronized between several hooks with the same key', () => { - const {result: res1} = renderHook(() => useCookieValue('react-hookz')); - const {result: res2} = renderHook(() => useCookieValue('react-hookz')); + const {result: result1} = renderHook(() => useCookieValue('react-hookz')); + const {result: result2} = renderHook(() => useCookieValue('react-hookz')); - expect(res1.current[0]).toBe(null); - expect(res2.current[0]).toBe(null); + expect(result1.current[0]).toBe(null); + expect(result2.current[0]).toBe(null); act(() => { - res1.current[1]('awesome'); + result1.current[1]('awesome'); }); - expect(res1.current[0]).toBe('awesome'); - expect(res2.current[0]).toBe('awesome'); + expect(result1.current[0]).toBe('awesome'); + expect(result2.current[0]).toBe('awesome'); act(() => { - res2.current[2](); + result2.current[2](); }); - expect(res1.current[0]).toBe(null); - expect(res2.current[0]).toBe(null); + expect(result1.current[0]).toBe(null); + expect(result2.current[0]).toBe(null); }); it('should return stable methods', () => { const {result, rerender} = renderHook(() => useCookieValue('react-hookz')); - const res1 = result.current; + const result1 = result.current; rerender(); - expect(res1[1]).toBe(result.current[1]); - expect(res1[2]).toBe(result.current[2]); - expect(res1[3]).toBe(result.current[3]); + expect(result1[1]).toBe(result.current[1]); + expect(result1[2]).toBe(result.current[2]); + expect(result1[3]).toBe(result.current[3]); }); }); diff --git a/src/useDebouncedCallback/index.ts b/src/useDebouncedCallback/index.ts index 0636a85c..005036dd 100644 --- a/src/useDebouncedCallback/index.ts +++ b/src/useDebouncedCallback/index.ts @@ -85,6 +85,6 @@ export function useDebouncedCallback any>( }); return wrapped; - // eslint-disable-next-line react-hooks/exhaustive-deps + // eslint-disable-next-line react-hooks/exhaustive-deps,@typescript-eslint/no-unsafe-assignment }, [delay, maxWait, ...deps]); } diff --git a/src/useDeepCompareMemo/index.dom.test.ts b/src/useDeepCompareMemo/index.dom.test.ts index e5e619a6..2f13d6a3 100644 --- a/src/useDeepCompareMemo/index.dom.test.ts +++ b/src/useDeepCompareMemo/index.dom.test.ts @@ -15,7 +15,7 @@ describe('useDeepCompareMemo', () => { }); it('should run only if dependencies change, defined by deep comparison', () => { - const spy = vi.fn(); + const spy = vi.fn(() => 1); const {rerender} = renderHook(({deps}) => useDeepCompareMemo(spy, deps), { initialProps: {deps: [{foo: 'bar'}]}, diff --git a/src/useIntersectionObserver/index.ts b/src/useIntersectionObserver/index.ts index 1a5953f6..6a38373b 100644 --- a/src/useIntersectionObserver/index.ts +++ b/src/useIntersectionObserver/index.ts @@ -25,21 +25,27 @@ const getObserverEntry = (options: IntersectionObserverInit): ObserverEntry => { const opt = JSON.stringify([options.rootMargin, options.threshold]); - let entry = rootObservers.get(opt); + let observerEntry = rootObservers.get(opt); - if (!entry) { + if (!observerEntry) { const callbacks = new Map>(); const observer = new IntersectionObserver((entries) => { - for (const e of entries) { - callbacks.get(e.target)?.forEach(cb => + for (const entry of entries) { + const cbs = callbacks.get(entry.target); + if (cbs === undefined || cbs.size === 0) { + continue; + } + + for (const cb of cbs) { setTimeout(() => { - cb(e); - }, 0)); + cb(entry); + }, 0); + } } }, options); - entry = { + observerEntry = { observer, observe(target, callback) { let cbs = callbacks.get(target); @@ -85,10 +91,10 @@ const getObserverEntry = (options: IntersectionObserverInit): ObserverEntry => { }, }; - rootObservers.set(opt, entry); + rootObservers.set(opt, observerEntry); } - return entry; + return observerEntry; }; export type UseIntersectionObserverOptions = { diff --git a/src/useIntervalEffect/index.dom.test.ts b/src/useIntervalEffect/index.dom.test.ts index acd89231..f8f390ba 100644 --- a/src/useIntervalEffect/index.dom.test.ts +++ b/src/useIntervalEffect/index.dom.test.ts @@ -1,7 +1,6 @@ import {renderHook} from '@testing-library/react-hooks/dom'; import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; import {useIntervalEffect} from '../index.js'; -import advanceTimersByTime = vi.advanceTimersByTime; describe('useIntervalEffect', () => { beforeAll(() => { @@ -57,11 +56,11 @@ describe('useIntervalEffect', () => { }, ); - advanceTimersByTime(99); + vi.advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); rerender({delay: 50}); - advanceTimersByTime(49); + vi.advanceTimersByTime(49); expect(spy).not.toHaveBeenCalled(); vi.advanceTimersByTime(1); @@ -79,11 +78,11 @@ describe('useIntervalEffect', () => { }, ); - advanceTimersByTime(99); + vi.advanceTimersByTime(99); expect(spy).not.toHaveBeenCalled(); rerender({delay: undefined}); - advanceTimersByTime(2000); + vi.advanceTimersByTime(2000); expect(spy).not.toHaveBeenCalled(); }); }); diff --git a/src/useLifecycleLogger/index.dom.test.ts b/src/useLifecycleLogger/index.dom.test.ts index d38f9db8..dd237122 100644 --- a/src/useLifecycleLogger/index.dom.test.ts +++ b/src/useLifecycleLogger/index.dom.test.ts @@ -1,13 +1,9 @@ import {renderHook} from '@testing-library/react-hooks/dom'; -import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import {afterAll, beforeEach, describe, expect, it, vi} from 'vitest'; import {useLifecycleLogger} from '../index.js'; describe('useLifecycleLogger', () => { - let logSpy: vi.SpyInstance; - - beforeAll(() => { - logSpy = vi.spyOn(console, 'log'); - }); + const logSpy = vi.spyOn(console, 'log'); afterAll(() => { logSpy.mockRestore(); diff --git a/src/useLifecycleLogger/index.ts b/src/useLifecycleLogger/index.ts index e7f4b38e..9e513f1a 100644 --- a/src/useLifecycleLogger/index.ts +++ b/src/useLifecycleLogger/index.ts @@ -11,6 +11,7 @@ export function useLifecycleLogger(componentName: string, deps?: DependencyList) useEffect(() => { if (mountedRef.current) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment console.log(`${componentName} updated`, deps && [...deps]); } // eslint-disable-next-line react-hooks/exhaustive-deps @@ -18,6 +19,7 @@ export function useLifecycleLogger(componentName: string, deps?: DependencyList) useEffect(() => { mountedRef.current = true; + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment console.log(`${componentName} mounted`, deps && [...deps]); return () => { diff --git a/src/useList/index.dom.test.ts b/src/useList/index.dom.test.ts index 409ddaa8..3c5a2d26 100644 --- a/src/useList/index.dom.test.ts +++ b/src/useList/index.dom.test.ts @@ -1,6 +1,6 @@ /* eslint-disable max-nested-callbacks */ import {act, renderHook} from '@testing-library/react-hooks/dom'; -import {describe, expect, it, vi} from 'vitest'; +import {describe, expect, it, type Mock, vi} from 'vitest'; import {useList} from '../index.js'; describe('useList', () => { @@ -340,12 +340,12 @@ describe('useList', () => { }); }); -function numberOfMockFunctionCalls(mockFunction: vi.Mock) { +function numberOfMockFunctionCalls(mockFunction: Mock): number { return mockFunction.mock.calls.length; } function mockFunctionCallArgument( - mockFunction: vi.Mock, + mockFunction: Mock, callIndex: number, argumentIndex: number, ) { diff --git a/src/useMap/index.ts b/src/useMap/index.ts index 01c5d218..9b1435f3 100644 --- a/src/useMap/index.ts +++ b/src/useMap/index.ts @@ -32,10 +32,10 @@ export function useMap( }; map.delete = (...args) => { - const res = proto.delete.apply(map, args); + const existed = proto.delete.apply(map, args); rerender(); - return res; + return existed; }; } diff --git a/src/useMeasure/index.dom.test.ts b/src/useMeasure/index.dom.test.ts index 8db326d8..abe132bf 100644 --- a/src/useMeasure/index.dom.test.ts +++ b/src/useMeasure/index.dom.test.ts @@ -2,18 +2,22 @@ import {act, renderHook} from '@testing-library/react-hooks/dom'; import {useEffect} from 'react'; import {afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; import {useMeasure} from '../index.js'; -import Mock = vi.Mock; describe('useMeasure', () => { - const raf = globalThis.requestAnimationFrame; - const caf = globalThis.cancelAnimationFrame; const observeSpy = vi.fn(); const unobserveSpy = vi.fn(); const disconnectSpy = vi.fn(); - let ResizeObserverSpy: Mock; + const ResizeObserverSpy = vi.fn((_cb: (entries: ResizeObserverEntry[]) => void) => ({ + observe: observeSpy, + unobserve: unobserveSpy, + disconnect: disconnectSpy, + })); const initialRO = globalThis.ResizeObserver; + const raf = globalThis.requestAnimationFrame; + const caf = globalThis.cancelAnimationFrame; + beforeAll(() => { vi.useFakeTimers(); @@ -22,13 +26,7 @@ describe('useMeasure', () => { clearTimeout(cb); }; - ResizeObserverSpy = vi.fn(() => ({ - observe: observeSpy, - unobserve: unobserveSpy, - disconnect: disconnectSpy, - })); - - globalThis.ResizeObserver = ResizeObserverSpy; + vi.stubGlobal('ResizeObserver', ResizeObserverSpy); }); beforeEach(() => { @@ -75,13 +73,13 @@ describe('useMeasure', () => { it('should only set state within animation frame', () => { const div = document.createElement('div'); const {result} = renderHook(() => { - const res = useMeasure(); + const measure = useMeasure(); useEffect(() => { - res[1].current = div; + measure[1].current = div; }); - return res; + return measure; }); const measures = { @@ -96,7 +94,6 @@ describe('useMeasure', () => { contentBoxSize: {}, } as unknown as ResizeObserverEntry; - // eslint-disable-next-line @typescript-eslint/no-unsafe-call ResizeObserverSpy.mock.calls[0][0]([entry]); expect(result.current[0]).toBeUndefined(); diff --git a/src/useMeasure/index.ssr.test.ts b/src/useMeasure/index.ssr.test.ts index 74f054f8..659a389a 100644 --- a/src/useMeasure/index.ssr.test.ts +++ b/src/useMeasure/index.ssr.test.ts @@ -1,24 +1,22 @@ import {renderHook} from '@testing-library/react-hooks/server'; import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; import {useMeasure} from '../index.js'; -import Mock = vi.Mock; describe('useMeasure', () => { const observeSpy = vi.fn(); const unobserveSpy = vi.fn(); const disconnectSpy = vi.fn(); - let ResizeObserverSpy: Mock; + const ResizeObserverSpy = vi.fn((_cb: (entries: ResizeObserverEntry[]) => void) => ({ + observe: observeSpy, + unobserve: unobserveSpy, + disconnect: disconnectSpy, + })); const initialRO = globalThis.ResizeObserver; beforeAll(() => { - ResizeObserverSpy = vi.fn(() => ({ - observe: observeSpy, - unobserve: unobserveSpy, - disconnect: disconnectSpy, - })); - - globalThis.ResizeObserver = ResizeObserverSpy; + vi.stubGlobal('ResizeObserver', ResizeObserverSpy); + vi.useFakeTimers(); }); beforeEach(() => { diff --git a/src/useMediaQuery/index.dom.test.ts b/src/useMediaQuery/index.dom.test.ts index 178b5f74..4fa343a3 100644 --- a/src/useMediaQuery/index.dom.test.ts +++ b/src/useMediaQuery/index.dom.test.ts @@ -54,6 +54,11 @@ describe('useMediaQuery', () => { const {result} = renderHook(() => useMediaQuery('max-width : 768px')); expect(result.current).toBe(false); + expect(matchMediaMock.mock.results[0].type).toEqual('return'); + if (matchMediaMock.mock.results[0].type !== 'return') { + return; + } + const mql = matchMediaMock.mock.results[0].value; mql.matches = true; @@ -72,6 +77,11 @@ describe('useMediaQuery', () => { expect(result2.current).toBe(false); expect(result3.current).toBe(false); + expect(matchMediaMock.mock.results[0].type).toEqual('return'); + if (matchMediaMock.mock.results[0].type !== 'return') { + return; + } + const mql = matchMediaMock.mock.results[0].value; mql.matches = true; @@ -101,6 +111,11 @@ describe('useMediaQuery', () => { expect(matchMediaMock).toHaveBeenCalledTimes(2); + expect(matchMediaMock.mock.results[0].type).toEqual('return'); + if (matchMediaMock.mock.results[0].type !== 'return') { + return; + } + const mql = matchMediaMock.mock.results[0].value; mql.matches = true; @@ -118,6 +133,11 @@ describe('useMediaQuery', () => { const {unmount: unmount2} = renderHook(() => useMediaQuery('max-width : 768px')); const {unmount: unmount3} = renderHook(() => useMediaQuery('max-width : 768px')); + expect(matchMediaMock.mock.results[0].type).toEqual('return'); + if (matchMediaMock.mock.results[0].type !== 'return') { + return; + } + const mql = matchMediaMock.mock.results[0].value; expect(mql.removeEventListener).not.toHaveBeenCalled(); unmount3(); diff --git a/src/useMediaQuery/index.ts b/src/useMediaQuery/index.ts index 0c56ffea..ef02b1f9 100644 --- a/src/useMediaQuery/index.ts +++ b/src/useMediaQuery/index.ts @@ -53,6 +53,7 @@ const queryUnsubscribe = (query: string, setState: QueryStateSetter): void => { if (mql.removeEventListener) { mql.removeEventListener('change', listener); } else { + // eslint-disable-next-line @typescript-eslint/no-deprecated mql.removeListener(listener); } } diff --git a/src/useMountEffect/index.ts b/src/useMountEffect/index.ts index 678ab27f..f94ab2ab 100644 --- a/src/useMountEffect/index.ts +++ b/src/useMountEffect/index.ts @@ -7,6 +7,7 @@ import {useEffect} from 'react'; */ export function useMountEffect(effect: CallableFunction): void { useEffect(() => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call effect(); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); diff --git a/src/usePermission/index.dom.test.ts b/src/usePermission/index.dom.test.ts index 7574f734..7d5df95c 100644 --- a/src/usePermission/index.dom.test.ts +++ b/src/usePermission/index.dom.test.ts @@ -3,21 +3,19 @@ import {afterAll, afterEach, beforeAll, describe, expect, it, vi} from 'vitest'; import {usePermission} from '../index.js'; describe('usePermission', () => { - let querySpy: vi.SpyInstance; + const querySpy = vi.fn( + () => + new Promise((resolve) => { + setTimeout(() => { + resolve({state: 'prompt'} as PermissionStatus); + }, 1); + }), + ); const initialPermissions = navigator.permissions; beforeAll(() => { vi.useFakeTimers(); - querySpy = vi.fn( - () => - new Promise((resolve) => { - setTimeout(() => { - resolve({state: 'prompt'} as PermissionStatus); - }, 1); - }), - ); - (globalThis.navigator.permissions as any) = {query: querySpy}; }); diff --git a/src/useResizeObserver/index.dom.test.ts b/src/useResizeObserver/index.dom.test.ts index 69dd4898..3da713bc 100644 --- a/src/useResizeObserver/index.dom.test.ts +++ b/src/useResizeObserver/index.dom.test.ts @@ -1,24 +1,21 @@ import {renderHook} from '@testing-library/react-hooks/dom'; import {afterAll, beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; import {useResizeObserver} from '../index.js'; -import Mock = vi.Mock; describe('useResizeObserver', () => { const observeSpy = vi.fn(); const unobserveSpy = vi.fn(); const disconnectSpy = vi.fn(); - let ResizeObserverSpy: Mock; + const ResizeObserverSpy = vi.fn((_cb: (entries: ResizeObserverEntry[]) => void) => ({ + observe: observeSpy, + unobserve: unobserveSpy, + disconnect: disconnectSpy, + })); const initialRO = globalThis.ResizeObserver; beforeAll(() => { - ResizeObserverSpy = vi.fn(() => ({ - observe: observeSpy, - unobserve: unobserveSpy, - disconnect: disconnectSpy, - })); - - globalThis.ResizeObserver = ResizeObserverSpy; + vi.stubGlobal('ResizeObserver', ResizeObserverSpy); vi.useFakeTimers(); }); @@ -86,7 +83,6 @@ describe('useResizeObserver', () => { contentBoxSize: {}, } as unknown as ResizeObserverEntry; - // eslint-disable-next-line @typescript-eslint/no-unsafe-call ResizeObserverSpy.mock.calls[0][0]([entry]); expect(spy).not.toHaveBeenCalledWith(entry); @@ -117,7 +113,6 @@ describe('useResizeObserver', () => { contentBoxSize: {}, } as unknown as ResizeObserverEntry; - // eslint-disable-next-line @typescript-eslint/no-unsafe-call ResizeObserverSpy.mock.calls[0][0]([entry]); expect(spy1).not.toHaveBeenCalledWith(entry); @@ -157,7 +152,6 @@ describe('useResizeObserver', () => { contentBoxSize: {}, } as unknown as ResizeObserverEntry; - // eslint-disable-next-line @typescript-eslint/no-unsafe-call ResizeObserverSpy.mock.calls[0][0]([entry1, entry2]); expect(spy1).not.toHaveBeenCalledWith(entry1); diff --git a/src/useResizeObserver/index.ts b/src/useResizeObserver/index.ts index b310bb33..3293b34d 100644 --- a/src/useResizeObserver/index.ts +++ b/src/useResizeObserver/index.ts @@ -25,10 +25,16 @@ function getResizeObserver(): ResizeObserverSingleton | undefined { const observer = new ResizeObserver((entries) => { for (const entry of entries) { - callbacks.get(entry.target)?.forEach(cb => + const cbs = callbacks.get(entry.target); + if (cbs === undefined || cbs.size === 0) { + continue; + } + + for (const cb of cbs) { setTimeout(() => { cb(entry); - }, 0)); + }, 0); + } } }); diff --git a/src/useScreenOrientation/index.dom.test.ts b/src/useScreenOrientation/index.dom.test.ts index df548499..340e30d3 100644 --- a/src/useScreenOrientation/index.dom.test.ts +++ b/src/useScreenOrientation/index.dom.test.ts @@ -40,6 +40,11 @@ describe('useScreenOrientation', () => { const {result} = renderHook(() => useScreenOrientation()); expect(result.current).toBe('landscape'); + expect(matchMediaMock.mock.results[0].type).toEqual('return'); + if (matchMediaMock.mock.results[0].type !== 'return') { + return; + } + const mql = matchMediaMock.mock.results[0].value; mql.matches = true; diff --git a/src/useSet/index.ts b/src/useSet/index.ts index 77d329f3..a55ca582 100644 --- a/src/useSet/index.ts +++ b/src/useSet/index.ts @@ -30,10 +30,10 @@ export function useSet(values?: readonly T[] | null): Set { }; set.delete = (...args) => { - const res = proto.delete.apply(set, args); + const result = proto.delete.apply(set, args); rerender(); - return res; + return result; }; } diff --git a/src/useStorageValue/index.ts b/src/useStorageValue/index.ts index 3b51584b..0300570f 100644 --- a/src/useStorageValue/index.ts +++ b/src/useStorageValue/index.ts @@ -15,14 +15,17 @@ const invokeStorageKeyListeners = ( value: string | null, skipListener?: CallableFunction, ) => { - storageListeners - .get(s) - ?.get(key) - ?.forEach((listener) => { - if (listener !== skipListener) { - listener(value); - } - }); + const listeners = storageListeners.get(s)?.get(key); + if (listeners === undefined || listeners.size === 0) { + return; + } + + for (const listener of listeners) { + if (listener !== skipListener) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + listener(value); + } + } }; const storageEventHandler = (evt: StorageEvent) => { diff --git a/src/useThrottledCallback/index.ts b/src/useThrottledCallback/index.ts index dcce6111..0ac7a1de 100644 --- a/src/useThrottledCallback/index.ts +++ b/src/useThrottledCallback/index.ts @@ -68,6 +68,6 @@ export function useThrottledCallback any>( }); return wrapped; - // eslint-disable-next-line react-hooks/exhaustive-deps + // eslint-disable-next-line react-hooks/exhaustive-deps,@typescript-eslint/no-unsafe-assignment }, [delay, noTrailing, ...deps]); } diff --git a/src/useUnmountEffect/index.ts b/src/useUnmountEffect/index.ts index 077909f0..76868bca 100644 --- a/src/useUnmountEffect/index.ts +++ b/src/useUnmountEffect/index.ts @@ -11,6 +11,7 @@ export function useUnmountEffect(effect: CallableFunction): void { useEffect( () => () => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call effectRef.current(); }, // eslint-disable-next-line react-hooks/exhaustive-deps diff --git a/src/util/index.dom.test.ts b/src/util/index.dom.test.ts index 1e1de82a..64ee5f83 100644 --- a/src/util/index.dom.test.ts +++ b/src/util/index.dom.test.ts @@ -15,6 +15,7 @@ describe('misc', () => { it("should not throw in case 'undefined' element passed", () => { expect(() => { // @ts-expect-error testing inappropriate usage + // eslint-disable-next-line max-nested-callbacks on(undefined, 'evtName', () => {}); }).not.toThrow(); }); @@ -33,6 +34,7 @@ describe('misc', () => { it("should not throw in case 'undefined' element passed", () => { expect(() => { // @ts-expect-error testing inappropriate usage + // eslint-disable-next-line max-nested-callbacks off(undefined, 'evtName', () => {}); }).not.toThrow(); }); From ecf46bca0be292ac0f39b06bdbba5f1fe3fa9448 Mon Sep 17 00:00:00 2001 From: xobotyi Date: Mon, 23 Dec 2024 23:36:36 +0100 Subject: [PATCH 10/13] docs: remove links to old site from readme Yet, while documentation site being rebuilt - all links to it removed. --- README.md | 256 ++++++++++----------- yarn.lock | 670 +++++++++++++++++++++++++++--------------------------- 2 files changed, 466 insertions(+), 460 deletions(-) diff --git a/README.md b/README.md index eb7cf7d3..f37d1f74 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ [![Types](https://flat.badgen.net/npm/types/@react-hookz/web)](https://www.npmjs.com/package/@react-hookz/web) [![Tree Shaking](https://flat.badgen.net/bundlephobia/tree-shaking/@react-hookz/web)](https://bundlephobia.com/result?p=@react-hookz/web) -× **[DOCS](https://react-hookz.github.io/web/)** × **[DISCORD](https://discord.gg/Fjwphtu65f)** × -**[CHANGELOG](https://github.com/react-hookz/web/blob/master/CHANGELOG.md)** × +× **[DISCORD](https://discord.gg/Fjwphtu65f)** × +**[RELEASES](https://github.com/react-hookz/web/releases)** ×