diff --git a/tests/ctst/package.json b/tests/ctst/package.json index 631c9a7601..2a273e1e15 100644 --- a/tests/ctst/package.json +++ b/tests/ctst/package.json @@ -21,9 +21,9 @@ "scubaclient": "git+https://github.com/scality/scubaclient#^1.1.2" }, "devDependencies": { - "@aws-sdk/client-iam": "^3.582.0", - "@aws-sdk/client-s3": "^3.583.0", - "@aws-sdk/client-sts": "^3.583.0", + "@aws-sdk/client-iam": "^3.901.0", + "@aws-sdk/client-s3": "^3.901.0", + "@aws-sdk/client-sts": "^3.901.0", "@eslint/compat": "^1.1.1", "cli-testing": "github:scality/cli-testing.git#1.2.4", "eslint": "^9.9.1", diff --git a/tests/ctst/yarn.lock b/tests/ctst/yarn.lock index b87653453a..06a6b8722f 100644 --- a/tests/ctst/yarn.lock +++ b/tests/ctst/yarn.lock @@ -80,15 +80,15 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-iam@^3.582.0", "@aws-sdk/client-iam@^3.637.0": - version "3.864.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.864.0.tgz#8d250deb90f2f6e628c2bfc4d2da8520b2246fc8" - integrity sha512-uTlSDLJntfHSC4LZVfuf8xhPx907cPlLYf00Wsz4gEPPLFkKNOPCbxzRqEsFG4haGkBENMc3U1cMt3iE/BGnSg== +"@aws-sdk/client-iam@^3.637.0": + version "3.872.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.872.0.tgz#a710ffae686c12f61ff6a26a576c6285ba935e37" + integrity sha512-YYQQTcoXcAwERHjQZfNoeM2CmC9sejfCxzAfeJrXyr+mW35g3kBfbsY+PhBdiMC8KNbuULlhoSlfqFLzeNTOWA== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" "@aws-sdk/core" "3.864.0" - "@aws-sdk/credential-provider-node" "3.864.0" + "@aws-sdk/credential-provider-node" "3.872.0" "@aws-sdk/middleware-host-header" "3.862.0" "@aws-sdk/middleware-logger" "3.862.0" "@aws-sdk/middleware-recursion-detection" "3.862.0" @@ -126,16 +126,62 @@ "@smithy/util-waiter" "^4.0.7" tslib "^2.6.2" -"@aws-sdk/client-s3@^3.583.0", "@aws-sdk/client-s3@^3.637.0": - version "3.864.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.864.0.tgz#ffbcbf0ba861fad711261b4174da3be19b1c7d5f" - integrity sha512-QGYi9bWliewxumsvbJLLyx9WC0a4DP4F+utygBcq0zwPxaM0xDfBspQvP1dsepi7mW5aAjZmJ2+Xb7X0EhzJ/g== +"@aws-sdk/client-iam@^3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.901.0.tgz#38a6a9615863f7b8c78bd389be2f2e6b093f6df9" + integrity sha512-rQAMK+hAyOUHW5ZOk94UyHCDndklSW1Aq2OIZa9l9icwdQpDPZQSAWb+ki+GVk9eII8Hpwq+BCc18Fki1lvtLw== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-node" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + "@smithy/util-waiter" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/client-s3@^3.637.0": + version "3.872.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.872.0.tgz#d2da3a2f20084cab08082664bb3470477ff69906" + integrity sha512-TYXRjjb6fzVzZuDK+6BNdfFLOZXazaaB5l7eESr1NYPKGQB6OxgcLC+NfaA6dKCwShpSglKUUrXFe26kX24Tcg== dependencies: "@aws-crypto/sha1-browser" "5.2.0" "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" "@aws-sdk/core" "3.864.0" - "@aws-sdk/credential-provider-node" "3.864.0" + "@aws-sdk/credential-provider-node" "3.872.0" "@aws-sdk/middleware-bucket-endpoint" "3.862.0" "@aws-sdk/middleware-expect-continue" "3.862.0" "@aws-sdk/middleware-flexible-checksums" "3.864.0" @@ -190,10 +236,73 @@ tslib "^2.6.2" uuid "^9.0.1" -"@aws-sdk/client-sso@3.864.0": - version "3.864.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.864.0.tgz#4099313516d61ed61791551c6f0683259b9cbf5e" - integrity sha512-THiOp0OpQROEKZ6IdDCDNNh3qnNn/kFFaTSOiugDpgcE5QdsOxh1/RXq7LmHpTJum3cmnFf8jG59PHcz9Tjnlw== +"@aws-sdk/client-s3@^3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.901.0.tgz#42e9faf3b9943c56e86ade41a36950dfb231d095" + integrity sha512-wyKhZ51ur1tFuguZ6PgrUsot9KopqD0Tmxw8O8P/N3suQDxFPr0Yo7Y77ezDRDZQ95Ml3C0jlvx79HCo8VxdWA== + dependencies: + "@aws-crypto/sha1-browser" "5.2.0" + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-node" "3.901.0" + "@aws-sdk/middleware-bucket-endpoint" "3.901.0" + "@aws-sdk/middleware-expect-continue" "3.901.0" + "@aws-sdk/middleware-flexible-checksums" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-location-constraint" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-sdk-s3" "3.901.0" + "@aws-sdk/middleware-ssec" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/signature-v4-multi-region" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@aws-sdk/xml-builder" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/eventstream-serde-browser" "^4.2.0" + "@smithy/eventstream-serde-config-resolver" "^4.3.0" + "@smithy/eventstream-serde-node" "^4.2.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-blob-browser" "^4.2.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/hash-stream-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/md5-js" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + "@smithy/util-waiter" "^4.2.0" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso@3.872.0": + version "3.872.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.872.0.tgz#9d8a1c0d6fcad46ae332d2792a116faa649b20d7" + integrity sha512-ZCiZk4TslnhhcFbo95HfNxwtNBXJ5jE/WxhJrFJPMJfAlSuaMu3H3LdfVwgzWs9vBtk2yTRX3gF+clKtZb6D2Q== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" @@ -234,15 +343,59 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" -"@aws-sdk/client-sts@^3.4.1", "@aws-sdk/client-sts@^3.583.0", "@aws-sdk/client-sts@^3.637.0": - version "3.864.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.864.0.tgz#67eb3e35953a552331d999ed8f26ec458bdf6d15" - integrity sha512-g3To8L5T9rRoF1Nsx7Bf7VxBd/6fYu/YdSnLmjAW7QJ4yGvP4l4gTY//jFksapniD/kLVJXyNuS5PJBwGzvw5Q== +"@aws-sdk/client-sso@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.901.0.tgz#bad08910097ffa0458c2fe662dd4f8439c6e7eeb" + integrity sha512-sGyDjjkJ7ppaE+bAKL/Q5IvVCxtoyBIzN+7+hWTS/mUxWJ9EOq9238IqmVIIK6sYNIzEf9yhobfMARasPYVTNg== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/client-sts@^3.4.1", "@aws-sdk/client-sts@^3.637.0": + version "3.872.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.872.0.tgz#ebbd6b4396844e07dce646838a366e67a41d69be" + integrity sha512-DSYRAx3vjdH6DZ5UJMAu1j9F7QY/pRm4dxxE/bbiTG+X9Xp8DWd6niM1KegFydWJwJUKa8tzN/EGVNCcNd16Pw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" "@aws-sdk/core" "3.864.0" - "@aws-sdk/credential-provider-node" "3.864.0" + "@aws-sdk/credential-provider-node" "3.872.0" "@aws-sdk/middleware-host-header" "3.862.0" "@aws-sdk/middleware-logger" "3.862.0" "@aws-sdk/middleware-recursion-detection" "3.862.0" @@ -279,6 +432,51 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@aws-sdk/client-sts@^3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.901.0.tgz#19c245446862d78926a1a24c9ec61c49db771147" + integrity sha512-3NQm7RShoX+cqhFcECMunNh5B2emGM5Yfi/HhMi4ZawjwTYh28pnFmc7d30zj7KG0PYQp9cUXUi5eKlCwIsx+g== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-node" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@aws-sdk/core@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.864.0.tgz#5ea4e400bb479faf4e0aa71a32ec89e8a3f2ceaf" @@ -300,6 +498,25 @@ fast-xml-parser "5.2.5" tslib "^2.6.2" +"@aws-sdk/core@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.901.0.tgz#054341ff9ddede525a7bc3881872a97598fe757f" + integrity sha512-brKAc3y64tdhyuEf+OPIUln86bRTqkLgb9xkd6kUdIeA5+qmp/N6amItQz+RN4k4O3kqkCPYnAd3LonTKluobw== + dependencies: + "@aws-sdk/types" "3.901.0" + "@aws-sdk/xml-builder" "3.901.0" + "@smithy/core" "^3.14.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-env@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.864.0.tgz#32e048eafaad51e3c67ef34d1310cc19f2f67c38" @@ -311,6 +528,17 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/credential-provider-env@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.901.0.tgz#d3192a091a94931b2fbc2ef82a278d8daea06f43" + integrity sha512-5hAdVl3tBuARh3zX5MLJ1P/d+Kr5kXtDU3xm1pxUEF4xt2XkEEpwiX5fbkNkz2rbh3BCt2gOHsAbh6b3M7n+DA== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-http@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.864.0.tgz#e312b137c1fdce87adb5140b039516c077726f5c" @@ -327,16 +555,32 @@ "@smithy/util-stream" "^4.2.4" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.864.0": - version "3.864.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.864.0.tgz#3149745e91d030f191ad618e7ee15c92101ad24e" - integrity sha512-PlxrijguR1gxyPd5EYam6OfWLarj2MJGf07DvCx9MAuQkw77HBnsu6+XbV8fQriFuoJVTBLn9ROhMr/ROAYfUg== +"@aws-sdk/credential-provider-http@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.901.0.tgz#40bbaa9e62431741d8ea7ed31c8e10de75a9ecde" + integrity sha512-Ggr7+0M6QZEsrqRkK7iyJLf4LkIAacAxHz9c4dm9hnDdU7vqrlJm6g73IxMJXWN1bIV7IxfpzB11DsRrB/oNjQ== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-stream" "^4.4.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@3.872.0": + version "3.872.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.872.0.tgz#45a36aec5e27762170c86f9662aa0a0fedb665c5" + integrity sha512-OItc+c6Yu5UUTmHVXpcqiQEkOIAZMWpzM9iXlz+CtzE0njft2obvGtIWQgZl7yVuaROtin4YwPAJscWmKhsb/A== dependencies: "@aws-sdk/core" "3.864.0" "@aws-sdk/credential-provider-env" "3.864.0" "@aws-sdk/credential-provider-http" "3.864.0" "@aws-sdk/credential-provider-process" "3.864.0" - "@aws-sdk/credential-provider-sso" "3.864.0" + "@aws-sdk/credential-provider-sso" "3.872.0" "@aws-sdk/credential-provider-web-identity" "3.864.0" "@aws-sdk/nested-clients" "3.864.0" "@aws-sdk/types" "3.862.0" @@ -346,16 +590,35 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.864.0": - version "3.864.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.864.0.tgz#d01277b53ac179d2ea97ba16147ba0cb3f710aae" - integrity sha512-2BEymFeXURS+4jE9tP3vahPwbYRl0/1MVaFZcijj6pq+nf5EPGvkFillbdBRdc98ZI2NedZgSKu3gfZXgYdUhQ== +"@aws-sdk/credential-provider-ini@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.901.0.tgz#83ada385ae94fed0a362f3be4689cf0a0284847d" + integrity sha512-zxadcDS0hNJgv8n4hFYJNOXyfjaNE1vvqIiF/JzZSQpSSYXzCd+WxXef5bQh+W3giDtRUmkvP5JLbamEFjZKyw== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-env" "3.901.0" + "@aws-sdk/credential-provider-http" "3.901.0" + "@aws-sdk/credential-provider-process" "3.901.0" + "@aws-sdk/credential-provider-sso" "3.901.0" + "@aws-sdk/credential-provider-web-identity" "3.901.0" + "@aws-sdk/nested-clients" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/credential-provider-imds" "^4.2.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@3.872.0": + version "3.872.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.872.0.tgz#44e3b1bf85f6623b401c647f3f0754c8255bb786" + integrity sha512-VpzTBfd0a19+5y7obIXzkhjC60yHsom7JNCqymWft+eJJN/6I817ti/59vtwdtujmG/UpLtszy7YGGo8V9oF1g== dependencies: "@aws-sdk/credential-provider-env" "3.864.0" "@aws-sdk/credential-provider-http" "3.864.0" - "@aws-sdk/credential-provider-ini" "3.864.0" + "@aws-sdk/credential-provider-ini" "3.872.0" "@aws-sdk/credential-provider-process" "3.864.0" - "@aws-sdk/credential-provider-sso" "3.864.0" + "@aws-sdk/credential-provider-sso" "3.872.0" "@aws-sdk/credential-provider-web-identity" "3.864.0" "@aws-sdk/types" "3.862.0" "@smithy/credential-provider-imds" "^4.0.7" @@ -364,6 +627,24 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/credential-provider-node@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.901.0.tgz#b48ddc78998e6a96ad14ecec22d81714c59ff6d1" + integrity sha512-dPuFzMF7L1s/lQyT3wDxqLe82PyTH+5o1jdfseTEln64LJMl0ZMWaKX/C1UFNDxaTd35Cgt1bDbjjAWHMiKSFQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.901.0" + "@aws-sdk/credential-provider-http" "3.901.0" + "@aws-sdk/credential-provider-ini" "3.901.0" + "@aws-sdk/credential-provider-process" "3.901.0" + "@aws-sdk/credential-provider-sso" "3.901.0" + "@aws-sdk/credential-provider-web-identity" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/credential-provider-imds" "^4.2.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-process@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.864.0.tgz#5f39e34a084cfa07966874955fa3aa0f966bcf15" @@ -376,12 +657,24 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.864.0": - version "3.864.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.864.0.tgz#1556640016f9bd3dd1c2e140270098a75c922ca3" - integrity sha512-UPyPNQbxDwHVGmgWdGg9/9yvzuedRQVF5jtMkmP565YX9pKZ8wYAcXhcYdNPWFvH0GYdB0crKOmvib+bmCuwkw== +"@aws-sdk/credential-provider-process@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.901.0.tgz#0e388fe22f357adb9c07b5f4a055eff6ba99dcff" + integrity sha512-/IWgmgM3Cl1wTdJA5HqKMAojxLkYchh5kDuphApxKhupLu6Pu0JBOHU8A5GGeFvOycyaVwosod6zDduINZxe+A== dependencies: - "@aws-sdk/client-sso" "3.864.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@3.872.0": + version "3.872.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.872.0.tgz#a07e31d84172643302d7c9dc8903d1b70cf17c54" + integrity sha512-+wmvQe1D3GrgfHRvmupvSTmt76ynNrWLNm17Bg1ofeYKFThlPWUNhwZ2rFXwZadksQfdmwfPYRxjo8Eg4xogWA== + dependencies: + "@aws-sdk/client-sso" "3.872.0" "@aws-sdk/core" "3.864.0" "@aws-sdk/token-providers" "3.864.0" "@aws-sdk/types" "3.862.0" @@ -390,6 +683,20 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/credential-provider-sso@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.901.0.tgz#b60d8619edeb6b45c79a3f7cc0392a899de44886" + integrity sha512-SjmqZQHmqFSET7+6xcZgtH7yEyh5q53LN87GqwYlJZ6KJ5oNw11acUNEhUOL1xTSJEvaWqwTIkS2zqrzLcM9bw== + dependencies: + "@aws-sdk/client-sso" "3.901.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/token-providers" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/credential-provider-web-identity@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.864.0.tgz#5cf54ec064957552e4c8c9070fd2b313f152a776" @@ -402,6 +709,19 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/credential-provider-web-identity@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.901.0.tgz#512ad0d35e59bc669b41e18479e6b92d62a2d42a" + integrity sha512-NYjy/6NLxH9m01+pfpB4ql8QgAorJcu8tw69kzHwUd/ql6wUDTbC7HcXqtKlIwWjzjgj2BKL7j6SyFapgCuafA== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/nested-clients" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/hash-node@^3.110.0": version "3.374.0" resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.374.0.tgz#fad2ddb51ae7091b91ed1308836fe3385d128f9e" @@ -423,6 +743,19 @@ "@smithy/util-config-provider" "^4.0.0" tslib "^2.6.2" +"@aws-sdk/middleware-bucket-endpoint@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.901.0.tgz#5b7f740cff9f91d21084b666be225876d72e634b" + integrity sha512-mPF3N6eZlVs9G8aBSzvtoxR1RZqMo1aIwR+X8BAZSkhfj55fVF2no4IfPXfdFO3I66N+zEQ8nKoB0uTATWrogQ== + dependencies: + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-arn-parser" "3.893.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + tslib "^2.6.2" + "@aws-sdk/middleware-expect-continue@3.862.0": version "3.862.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.862.0.tgz#f53c28c41f63859362797fd76e993365b598d0ba" @@ -433,6 +766,16 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/middleware-expect-continue@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.901.0.tgz#bd6c1fde979808418ce013c6f5f379e67ef2f4c4" + integrity sha512-bwq9nj6MH38hlJwOY9QXIDwa6lI48UsaZpaXbdD71BljEIRlxDzfB4JaYb+ZNNK7RIAdzsP/K05mJty6KJAQHw== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/middleware-flexible-checksums@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.864.0.tgz#fcbb40ae1513f96185ec961693c0f55ec1f4da18" @@ -452,6 +795,25 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@aws-sdk/middleware-flexible-checksums@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.901.0.tgz#373449d1609c9af810a824b395633ce6d1fc03f1" + integrity sha512-63lcKfggVUFyXhE4SsFXShCTCyh7ZHEqXLyYEL4DwX+VWtxutf9t9m3fF0TNUYDE8eEGWiRXhegj8l4FjuW+wA== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@aws-crypto/crc32c" "5.2.0" + "@aws-crypto/util" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/is-array-buffer" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@aws-sdk/middleware-host-header@3.862.0": version "3.862.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.862.0.tgz#9b5fa0ad4c17a84816b4bfde7cda949116374042" @@ -462,6 +824,16 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/middleware-host-header@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.901.0.tgz#e6b3a6706601d93949ca25167ecec50c40e3d9de" + integrity sha512-yWX7GvRmqBtbNnUW7qbre3GvZmyYwU0WHefpZzDTYDoNgatuYq6LgUIQ+z5C04/kCRoFkAFrHag8a3BXqFzq5A== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/middleware-location-constraint@3.862.0": version "3.862.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.862.0.tgz#d55babadc9f9b7150c56b028fc6953021a5a565a" @@ -471,6 +843,15 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/middleware-location-constraint@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.901.0.tgz#0a74fdd450cdec336f3ccdcb7b2fdbf4ce8b9e0b" + integrity sha512-MuCS5R2ngNoYifkVt05CTULvYVWX0dvRT0/Md4jE3a0u0yMygYy31C1zorwfE/SUgAQXyLmUx8ATmPp9PppImQ== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/middleware-logger@3.862.0": version "3.862.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.862.0.tgz#fba26924421135c824dec7e1cd0f75990a588fdb" @@ -480,6 +861,15 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/middleware-logger@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.901.0.tgz#30562184bd0b6a90d30f2d6d58ef5054300f2652" + integrity sha512-UoHebjE7el/tfRo8/CQTj91oNUm+5Heus5/a4ECdmWaSCHCS/hXTsU3PTTHAY67oAQR8wBLFPfp3mMvXjB+L2A== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/middleware-recursion-detection@3.862.0": version "3.862.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.862.0.tgz#d83433251e550b7ed9cd731a447c92aaec378f01" @@ -490,6 +880,17 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/middleware-recursion-detection@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.901.0.tgz#8492bd83aeee52f4e1b4194a81d044f46acf8c5b" + integrity sha512-Wd2t8qa/4OL0v/oDpCHHYkgsXJr8/ttCxrvCKAt0H1zZe2LlRhY9gpDVKqdertfHrHDj786fOvEQA28G1L75Dg== + dependencies: + "@aws-sdk/types" "3.901.0" + "@aws/lambda-invoke-store" "^0.0.1" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/middleware-sdk-s3@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.864.0.tgz#5142210471ed702452277ad653af483147c42598" @@ -510,6 +911,26 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@aws-sdk/middleware-sdk-s3@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.901.0.tgz#65ae0e84b020a1dd28278a1610cc4c8978edf853" + integrity sha512-prgjVC3fDT2VIlmQPiw/cLee8r4frTam9GILRUVQyDdNtshNwV3MiaSCLzzQJjKJlLgnBLNUHJCSmvUVtg+3iA== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-arn-parser" "3.893.0" + "@smithy/core" "^3.14.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@aws-sdk/middleware-ssec@3.862.0": version "3.862.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.862.0.tgz#d6c7d03c966cb6642acec8c7f046afd3a72c0f7c" @@ -519,6 +940,15 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/middleware-ssec@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.901.0.tgz#9a08f8a90a12c5d3eccabd884d8dfdd2f76473a4" + integrity sha512-YiLLJmA3RvjL38mFLuu8fhTTGWtp2qT24VqpucgfoyziYcTgIQkJJmKi90Xp6R6/3VcArqilyRgM1+x8i/em+Q== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/middleware-user-agent@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.864.0.tgz#7c8a5e7f09eb2855f9a045cdfeee56e099e15552" @@ -532,6 +962,19 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/middleware-user-agent@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.901.0.tgz#ff6ff86115e1c580f369d33a25213e336896c548" + integrity sha512-Zby4F03fvD9xAgXGPywyk4bC1jCbnyubMEYChLYohD+x20ULQCf+AimF/Btn7YL+hBpzh1+RmqmvZcx+RgwgNQ== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@smithy/core" "^3.14.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/nested-clients@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.864.0.tgz#8d8b7e8e481649ae0f6ef37339b07cd8f6405e74" @@ -576,6 +1019,50 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@aws-sdk/nested-clients@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.901.0.tgz#8fcd2c48a0132ef1623b243ec88b6aff3164e76a" + integrity sha512-feAAAMsVwctk2Tms40ONybvpfJPLCmSdI+G+OTrNpizkGLNl6ik2Ng2RzxY6UqOfN8abqKP/DOUj1qYDRDG8ag== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@aws-sdk/region-config-resolver@3.862.0": version "3.862.0" resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.862.0.tgz#99e7942be513abacb715d06781e6f4d62b3e9cf2" @@ -588,6 +1075,18 @@ "@smithy/util-middleware" "^4.0.5" tslib "^2.6.2" +"@aws-sdk/region-config-resolver@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.901.0.tgz#6673eeda4ecc0747f93a084e876cab71431a97ca" + integrity sha512-7F0N888qVLHo4CSQOsnkZ4QAp8uHLKJ4v3u09Ly5k4AEStrSlFpckTPyUx6elwGL+fxGjNE2aakK8vEgzzCV0A== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + tslib "^2.6.2" + "@aws-sdk/signature-v4-multi-region@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.864.0.tgz#75e24f5382aa77b7e629f8feb366bcf2a358ffb8" @@ -600,6 +1099,18 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/signature-v4-multi-region@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.901.0.tgz#773cd83ab38efe8bd5c1e563e5bd8b79391dfa12" + integrity sha512-2IWxbll/pRucp1WQkHi2W5E2SVPGBvk4Is923H7gpNksbVFws18ItjMM8ZpGm44cJEoy1zR5gjhLFklatpuoOw== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/token-providers@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.864.0.tgz#c5f88c34bf268435a5b64b7814193c63ae330a68" @@ -613,6 +1124,19 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/token-providers@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.901.0.tgz#1f506f169cde6342c8bad75c068a719453ebcf54" + integrity sha512-pJEr1Ggbc/uVTDqp9IbNu9hdr0eQf3yZix3s4Nnyvmg4xmJSGAlbPC9LrNr5u3CDZoc8Z9CuLrvbP4MwYquNpQ== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/nested-clients" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/types@3.862.0", "@aws-sdk/types@^3.222.0": version "3.862.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.862.0.tgz#2f5622e1aa3a5281d4f419f5d2c90f87dd5ff0cf" @@ -621,6 +1145,14 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/types@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.901.0.tgz#b5a2e26c7b3fb3bbfe4c7fc24873646992a1c56c" + integrity sha512-FfEM25hLEs4LoXsLXQ/q6X6L4JmKkKkbVFpKD4mwfVHtRVQG6QxJiCPcrkcPISquiy6esbwK2eh64TWbiD60cg== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/util-arn-parser@3.804.0": version "3.804.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.804.0.tgz#d0b52bf5f9ae5b2c357a635551e5844dcad074c8" @@ -628,6 +1160,13 @@ dependencies: tslib "^2.6.2" +"@aws-sdk/util-arn-parser@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.893.0.tgz#fcc9b792744b9da597662891c2422dda83881d8d" + integrity sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA== + dependencies: + tslib "^2.6.2" + "@aws-sdk/util-endpoints@3.862.0": version "3.862.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.862.0.tgz#d66975bbedc1899721e3bf2a548fadfaee2ba2ee" @@ -639,6 +1178,17 @@ "@smithy/util-endpoints" "^3.0.7" tslib "^2.6.2" +"@aws-sdk/util-endpoints@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.901.0.tgz#be6296739d0f446b89a3f497c3a85afeb6cddd92" + integrity sha512-5nZP3hGA8FHEtKvEQf4Aww5QZOkjLW1Z+NixSd+0XKfHvA39Ah5sZboScjLx0C9kti/K3OGW1RCx5K9Zc3bZqg== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + tslib "^2.6.2" + "@aws-sdk/util-locate-window@^3.0.0": version "3.804.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.804.0.tgz#a2ee8dc5d9c98276986e8e1ba03c0c84d9afb0f5" @@ -656,6 +1206,16 @@ bowser "^2.11.0" tslib "^2.6.2" +"@aws-sdk/util-user-agent-browser@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.901.0.tgz#2c0e71e9019f054fb6a6061f99f55c13fb92830f" + integrity sha512-Ntb6V/WFI21Ed4PDgL/8NSfoZQQf9xzrwNgiwvnxgAl/KvAvRBgQtqj5gHsDX8Nj2YmJuVoHfH9BGjL9VQ4WNg== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + bowser "^2.11.0" + tslib "^2.6.2" + "@aws-sdk/util-user-agent-node@3.864.0": version "3.864.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.864.0.tgz#2fd8276a6d7d0ee3d6fe75421c5565e63ae6a0d5" @@ -667,6 +1227,17 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/util-user-agent-node@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.901.0.tgz#3a0a59a93229016f011e7ee0533d36275e3063bd" + integrity sha512-l59KQP5TY7vPVUfEURc7P5BJKuNg1RSsAKBQW7LHLECXjLqDUbo2SMLrexLBEoArSt6E8QOrIN0C8z/0Xk0jYw== + dependencies: + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@aws-sdk/xml-builder@3.862.0": version "3.862.0" resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.862.0.tgz#d368c76f0f129d43b3ffbc2dc18f53ddd64ec328" @@ -675,6 +1246,20 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@aws-sdk/xml-builder@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.901.0.tgz#3cd2e3929cefafd771c8bd790ec6965faa1be49d" + integrity sha512-pxFCkuAP7Q94wMTNPAwi6hEtNrp/BdFf+HOrIEeFQsk4EoOmpKY3I6S+u6A9Wg295J80Kh74LqDWM22ux3z6Aw== + dependencies: + "@smithy/types" "^4.6.0" + fast-xml-parser "5.2.5" + tslib "^2.6.2" + +"@aws/lambda-invoke-store@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz#92d792a7dda250dfcb902e13228f37a81be57c8f" + integrity sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw== + "@azure/abort-controller@^2.0.0", "@azure/abort-controller@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-2.1.2.tgz#42fe0ccab23841d9905812c58f1082d27784566d" @@ -1185,6 +1770,14 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/abort-controller@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.0.tgz#ced549ad5e74232bdcb3eec990b02b1c6d81003d" + integrity sha512-PLUYa+SUKOEZtXFURBu/CNxlsxfaFGxSBPcStL13KpVeVWIfdezWyDqkz7iDLmwnxojXD0s5KzuB5HGHvt4Aeg== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/chunked-blob-reader-native@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.0.0.tgz#33cbba6deb8a3c516f98444f65061784f7cd7f8c" @@ -1193,6 +1786,14 @@ "@smithy/util-base64" "^4.0.0" tslib "^2.6.2" +"@smithy/chunked-blob-reader-native@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.0.tgz#3115cfb230f20da21d1011ee2b47165f4c2773e3" + integrity sha512-HNbGWdyTfSM1nfrZKQjYTvD8k086+M8s1EYkBUdGC++lhxegUp2HgNf5RIt6oOGVvsC26hBCW/11tv8KbwLn/Q== + dependencies: + "@smithy/util-base64" "^4.2.0" + tslib "^2.6.2" + "@smithy/chunked-blob-reader@^5.0.0": version "5.0.0" resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.0.0.tgz#3f6ea5ff4e2b2eacf74cefd737aa0ba869b2e0f6" @@ -1200,6 +1801,13 @@ dependencies: tslib "^2.6.2" +"@smithy/chunked-blob-reader@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.0.tgz#776fec5eaa5ab5fa70d0d0174b7402420b24559c" + integrity sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA== + dependencies: + tslib "^2.6.2" + "@smithy/config-resolver@^4.1.5": version "4.1.5" resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.1.5.tgz#3cb7cde8d13ca64630e5655812bac9ffe8182469" @@ -1211,6 +1819,33 @@ "@smithy/util-middleware" "^4.0.5" tslib "^2.6.2" +"@smithy/config-resolver@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.3.0.tgz#a8bb72a21ff99ac91183a62fcae94f200762c256" + integrity sha512-9oH+n8AVNiLPK/iK/agOsoWfrKZ3FGP3502tkksd6SRsKMYiu7AFX0YXo6YBADdsAj7C+G/aLKdsafIJHxuCkQ== + dependencies: + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + tslib "^2.6.2" + +"@smithy/core@^3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.14.0.tgz#22bdb346b171c76b629c4f59dc496c27e10f1c82" + integrity sha512-XJ4z5FxvY/t0Dibms/+gLJrI5niRoY0BCmE02fwmPcRYFPI4KI876xaE79YGWIKnEslMbuQPsIEsoU/DXa0DoA== + dependencies: + "@smithy/middleware-serde" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + "@smithy/core@^3.8.0": version "3.8.0" resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.8.0.tgz#321d03564b753025b92e4476579efcd5c505ab1f" @@ -1239,6 +1874,17 @@ "@smithy/url-parser" "^4.0.5" tslib "^2.6.2" +"@smithy/credential-provider-imds@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.0.tgz#21855ceb157afeea60d74c61fe7316e90d8ec545" + integrity sha512-SOhFVvFH4D5HJZytb0bLKxCrSnwcqPiNlrw+S4ZXjMnsC+o9JcUQzbZOEQcA8yv9wJFNhfsUiIUKiEnYL68Big== + dependencies: + "@smithy/node-config-provider" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + tslib "^2.6.2" + "@smithy/eventstream-codec@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.0.5.tgz#e742a4badaaf985ac9abcf4283ff4c39d7e48438" @@ -1249,6 +1895,16 @@ "@smithy/util-hex-encoding" "^4.0.0" tslib "^2.6.2" +"@smithy/eventstream-codec@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.0.tgz#ea8514363278d062b574859d663f131238a6920c" + integrity sha512-XE7CtKfyxYiNZ5vz7OvyTf1osrdbJfmUy+rbh+NLQmZumMGvY0mT0Cq1qKSfhrvLtRYzMsOBuRpi10dyI0EBPg== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@smithy/types" "^4.6.0" + "@smithy/util-hex-encoding" "^4.2.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-browser@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.0.5.tgz#fbebe76edf542d656fe3b187ac6b1e47a63f735f" @@ -1258,6 +1914,15 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/eventstream-serde-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.0.tgz#d97c4a3f185459097c00e05a23007ffa074f972d" + integrity sha512-U53p7fcrk27k8irLhOwUu+UYnBqsXNLKl1XevOpsxK3y1Lndk8R7CSiZV6FN3fYFuTPuJy5pP6qa/bjDzEkRvA== + dependencies: + "@smithy/eventstream-serde-universal" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-config-resolver@^4.1.3": version "4.1.3" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.1.3.tgz#59a01611feaef9830da592bf726ee8eef4f2c11d" @@ -1266,6 +1931,14 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/eventstream-serde-config-resolver@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.0.tgz#5ee07ed6808c3cac2e4b7ef5059fd9be6aff4a4a" + integrity sha512-uwx54t8W2Yo9Jr3nVF5cNnkAAnMCJ8Wrm+wDlQY6rY/IrEgZS3OqagtCu/9ceIcZFQ1zVW/zbN9dxb5esuojfA== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-node@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.0.5.tgz#44f962898cfb3de806725ea5d88e904c7f3955d7" @@ -1275,6 +1948,15 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/eventstream-serde-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.0.tgz#397640826f72082e4d33e02525603dcf1baf756f" + integrity sha512-yjM2L6QGmWgJjVu/IgYd6hMzwm/tf4VFX0lm8/SvGbGBwc+aFl3hOzvO/e9IJ2XI+22Tx1Zg3vRpFRs04SWFcg== + dependencies: + "@smithy/eventstream-serde-universal" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/eventstream-serde-universal@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.0.5.tgz#ec34b9999c7db3e057d67acb14ec0c8627c7ae2e" @@ -1284,6 +1966,15 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/eventstream-serde-universal@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.0.tgz#e556f85638c7037cbd17f72a1cbd2dcdd3185f7d" + integrity sha512-C3jxz6GeRzNyGKhU7oV656ZbuHY93mrfkT12rmjDdZch142ykjn8do+VOkeRNjSGKw01p4g+hdalPYPhmMwk1g== + dependencies: + "@smithy/eventstream-codec" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/fetch-http-handler@^5.1.1": version "5.1.1" resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.1.1.tgz#a444c99bffdf314deb447370429cc3e719f1a866" @@ -1295,6 +1986,17 @@ "@smithy/util-base64" "^4.0.0" tslib "^2.6.2" +"@smithy/fetch-http-handler@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.0.tgz#1c5205642a9295f44441d8763e7c3a51a747fc95" + integrity sha512-BG3KSmsx9A//KyIfw+sqNmWFr1YBUr+TwpxFT7yPqAk0yyDh7oSNgzfNH7pS6OC099EGx2ltOULvumCFe8bcgw== + dependencies: + "@smithy/protocol-http" "^5.3.0" + "@smithy/querystring-builder" "^4.2.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + tslib "^2.6.2" + "@smithy/hash-blob-browser@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.0.5.tgz#f8f2857e59907c3359dc451a22c1623373115aea" @@ -1305,6 +2007,16 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/hash-blob-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.0.tgz#b7bd8c5b379ebfae5b8ce10312da1351d7ff5ff4" + integrity sha512-MWmrRTPqVKpN8NmxmJPTeQuhewTt8Chf+waB38LXHZoA02+BeWYVQ9ViAwHjug8m7lQb1UWuGqp3JoGDOWvvuA== + dependencies: + "@smithy/chunked-blob-reader" "^5.2.0" + "@smithy/chunked-blob-reader-native" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/hash-node@^1.0.1": version "1.1.0" resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-1.1.0.tgz#a8da64fa4b2e2c64185df92897165c8113b499b2" @@ -1325,6 +2037,16 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@smithy/hash-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.0.tgz#d2de380cb88a3665d5e3f5bbe901cfb46867c74f" + integrity sha512-ugv93gOhZGysTctZh9qdgng8B+xO0cj+zN0qAZ+Sgh7qTQGPOJbMdIuyP89KNfUyfAqFSNh5tMvC+h2uCpmTtA== + dependencies: + "@smithy/types" "^4.6.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@smithy/hash-stream-node@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.0.5.tgz#823a120823de313e72c0be2cdd440925075665f8" @@ -1334,6 +2056,15 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@smithy/hash-stream-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.0.tgz#7d3067d566e32167ebcb80f22260cc57de036ec9" + integrity sha512-8dELAuGv+UEjtzrpMeNBZc1sJhO8GxFVV/Yh21wE35oX4lOE697+lsMHBoUIFAUuYkTMIeu0EuJSEsH7/8Y+UQ== + dependencies: + "@smithy/types" "^4.6.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@smithy/invalid-dependency@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.0.5.tgz#ed88e209668266b09c4b501f9bd656728b5ece60" @@ -1342,6 +2073,14 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/invalid-dependency@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.0.tgz#749c741c1b01bcdb12c0ec24701db655102f6ea7" + integrity sha512-ZmK5X5fUPAbtvRcUPtk28aqIClVhbfcmfoS4M7UQBTnDdrNxhsrxYVv0ZEl5NaPSyExsPWqL4GsPlRvtlwg+2A== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/is-array-buffer@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-1.1.0.tgz#29948072da2b57575aa9898cda863932e842ab11" @@ -1370,6 +2109,13 @@ dependencies: tslib "^2.6.2" +"@smithy/is-array-buffer@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz#b0f874c43887d3ad44f472a0f3f961bcce0550c2" + integrity sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ== + dependencies: + tslib "^2.6.2" + "@smithy/md5-js@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.0.5.tgz#77216159386050dbcf6b58f16f4ac14ac5183474" @@ -1379,6 +2125,15 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@smithy/md5-js@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.0.tgz#46bb7b122d9de1aa306e767ae64230fc6c8d67c2" + integrity sha512-LFEPniXGKRQArFmDQ3MgArXlClFJMsXDteuQQY8WG1/zzv6gVSo96+qpkuu1oJp4MZsKrwchY0cuAoPKzEbaNA== + dependencies: + "@smithy/types" "^4.6.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@smithy/middleware-content-length@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.0.5.tgz#c5d6e47f5a9fbba20433602bec9bffaeeb821ff3" @@ -1388,6 +2143,15 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/middleware-content-length@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.0.tgz#bf1bea6e7c0e35e8c6d4825880e4cfa903cbd501" + integrity sha512-6ZAnwrXFecrA4kIDOcz6aLBhU5ih2is2NdcZtobBDSdSHtE9a+MThB5uqyK4XXesdOCvOcbCm2IGB95birTSOQ== + dependencies: + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/middleware-endpoint@^4.1.18": version "4.1.18" resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.18.tgz#81b2f85e3c72b0f1a2d8776e01b0a2968af62c0a" @@ -1402,6 +2166,20 @@ "@smithy/util-middleware" "^4.0.5" tslib "^2.6.2" +"@smithy/middleware-endpoint@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.0.tgz#407ce4051be2f1855259a02900a957e9b347fdfd" + integrity sha512-jFVjuQeV8TkxaRlcCNg0GFVgg98tscsmIrIwRFeC74TIUyLE3jmY9xgc1WXrPQYRjQNK3aRoaIk6fhFRGOIoGw== + dependencies: + "@smithy/core" "^3.14.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + tslib "^2.6.2" + "@smithy/middleware-retry@^4.1.19": version "4.1.19" resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.1.19.tgz#19c013c1a548e1185cc1bfabfab3f498667c9e89" @@ -1418,6 +2196,21 @@ tslib "^2.6.2" uuid "^9.0.1" +"@smithy/middleware-retry@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.0.tgz#7f4b313a808aa8ac1a5922aff355e12c5a270de1" + integrity sha512-yaVBR0vQnOnzex45zZ8ZrPzUnX73eUC8kVFaAAbn04+6V7lPtxn56vZEBBAhgS/eqD6Zm86o6sJs6FuQVoX5qg== + dependencies: + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/service-error-classification" "^4.2.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + "@smithy/middleware-serde@^4.0.9": version "4.0.9" resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.0.9.tgz#71213158bb11c1d632829001ca3f233323fb2a7c" @@ -1427,6 +2220,15 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/middleware-serde@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.0.tgz#1b7fcaa699d1c48f2c3cbbce325aa756895ddf0f" + integrity sha512-rpTQ7D65/EAbC6VydXlxjvbifTf4IH+sADKg6JmAvhkflJO2NvDeyU9qsWUNBelJiQFcXKejUHWRSdmpJmEmiw== + dependencies: + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/middleware-stack@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.0.5.tgz#577050d4c0afe816f1ea85f335b2ef64f73e4328" @@ -1435,6 +2237,14 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/middleware-stack@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.0.tgz#fa2f7dcdb0f3a1649d1d2ec3dc4841d9c2f70e67" + integrity sha512-G5CJ//eqRd9OARrQu9MK1H8fNm2sMtqFh6j8/rPozhEL+Dokpvi1Og+aCixTuwDAGZUkJPk6hJT5jchbk/WCyg== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/node-config-provider@^4.1.4": version "4.1.4" resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.1.4.tgz#42f231b7027e5a7ce003fd80180e586fe814944a" @@ -1445,6 +2255,16 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/node-config-provider@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.0.tgz#619ba522d683081d06f112a581b9009988cb38eb" + integrity sha512-5QgHNuWdT9j9GwMPPJCKxy2KDxZ3E5l4M3/5TatSZrqYVoEiqQrDfAq8I6KWZw7RZOHtVtCzEPdYz7rHZixwcA== + dependencies: + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/node-http-handler@^4.1.1": version "4.1.1" resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.1.1.tgz#dd806d9e08b6e73125040dd0808ab56d16a178e9" @@ -1456,6 +2276,17 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/node-http-handler@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.3.0.tgz#783d3dbdf5b90b9e0ca1e56070a3be38b3836b7d" + integrity sha512-RHZ/uWCmSNZ8cneoWEVsVwMZBKy/8123hEpm57vgGXA3Irf/Ja4v9TVshHK2ML5/IqzAZn0WhINHOP9xl+Qy6Q== + dependencies: + "@smithy/abort-controller" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/querystring-builder" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/property-provider@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.0.5.tgz#d3b368b31d5b130f4c30cc0c91f9ebb28d9685fc" @@ -1464,6 +2295,14 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/property-provider@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.0.tgz#431c573326f572ae9063d58c21690f28251f9dce" + integrity sha512-rV6wFre0BU6n/tx2Ztn5LdvEdNZ2FasQbPQmDOPfV9QQyDmsCkOAB0osQjotRCQg+nSKFmINhyda0D3AnjSBJw== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/protocol-http@^4.1.8": version "4.1.8" resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.8.tgz#0461758671335f65e8ff3fc0885ab7ed253819c9" @@ -1480,6 +2319,14 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/protocol-http@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.0.tgz#2a2834386b706b959d20e7841099b1780ae62ace" + integrity sha512-6POSYlmDnsLKb7r1D3SVm7RaYW6H1vcNcTWGWrF7s9+2noNYvUsm7E4tz5ZQ9HXPmKn6Hb67pBDRIjrT4w/d7Q== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/querystring-builder@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.0.5.tgz#158ae170f8ec2d8af6b84cdaf774205a7dfacf68" @@ -1489,6 +2336,15 @@ "@smithy/util-uri-escape" "^4.0.0" tslib "^2.6.2" +"@smithy/querystring-builder@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.0.tgz#a6191d2eccc14ffce821a559ec26c94c636a39c6" + integrity sha512-Q4oFD0ZmI8yJkiPPeGUITZj++4HHYCW3pYBYfIobUCkYpI6mbkzmG1MAQQ3lJYYWj3iNqfzOenUZu+jqdPQ16A== + dependencies: + "@smithy/types" "^4.6.0" + "@smithy/util-uri-escape" "^4.2.0" + tslib "^2.6.2" + "@smithy/querystring-parser@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.0.5.tgz#95706e56aa769f09dc8922d1b19ffaa06946e252" @@ -1497,6 +2353,14 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/querystring-parser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.0.tgz#4c4ebe257e951dff91f9db65f9558752641185e8" + integrity sha512-BjATSNNyvVbQxOOlKse0b0pSezTWGMvA87SvoFoFlkRsKXVsN3bEtjCxvsNXJXfnAzlWFPaT9DmhWy1vn0sNEA== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/service-error-classification@^4.0.7": version "4.0.7" resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.0.7.tgz#24072198a8c110d29677762162a5096e29eb4862" @@ -1504,6 +2368,13 @@ dependencies: "@smithy/types" "^4.3.2" +"@smithy/service-error-classification@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.0.tgz#d98d9b351d05c21b83c5a012194480a8c2eae5b7" + integrity sha512-Ylv1ttUeKatpR0wEOMnHf1hXMktPUMObDClSWl2TpCVT4DwtJhCeighLzSLbgH3jr5pBNM0LDXT5yYxUvZ9WpA== + dependencies: + "@smithy/types" "^4.6.0" + "@smithy/shared-ini-file-loader@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.5.tgz#8d8a493276cd82a7229c755bef8d375256c5ebb9" @@ -1512,6 +2383,14 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/shared-ini-file-loader@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.3.0.tgz#241a493ea7fa7faeaefccf6a5fa81af521d91cfa" + integrity sha512-VCUPPtNs+rKWlqqntX0CbVvWyjhmX30JCtzO+s5dlzzxrvSfRh5SY0yxnkirvc1c80vdKQttahL71a9EsdolSQ== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/signature-v4@^2.1.1": version "2.3.0" resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.3.0.tgz#c30dd4028ae50c607db99459981cce8cdab7a3fd" @@ -1553,6 +2432,20 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@smithy/signature-v4@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.0.tgz#05d459cc4ec8f9d7300bb6b488cccedf2b73b7fb" + integrity sha512-MKNyhXEs99xAZaFhm88h+3/V+tCRDQ+PrDzRqL0xdDpq4gjxcMmf5rBA3YXgqZqMZ/XwemZEurCBQMfxZOWq/g== + dependencies: + "@smithy/is-array-buffer" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-uri-escape" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@smithy/smithy-client@^4.4.10": version "4.4.10" resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.4.10.tgz#c4b49c1d1ff9eb813f88f1e425a5dfac25a03180" @@ -1566,6 +2459,19 @@ "@smithy/util-stream" "^4.2.4" tslib "^2.6.2" +"@smithy/smithy-client@^4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.7.0.tgz#1b0b74a3f58bdf7a77024473b6fe6ec1aa9556c2" + integrity sha512-3BDx/aCCPf+kkinYf5QQhdQ9UAGihgOVqI3QO5xQfSaIWvUE4KYLtiGRWsNe1SR7ijXC0QEPqofVp5Sb0zC8xQ== + dependencies: + "@smithy/core" "^3.14.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-stream" "^4.4.0" + tslib "^2.6.2" + "@smithy/types@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.2.0.tgz#9dc65767b0ee3d6681704fcc67665d6fc9b6a34e" @@ -1594,6 +2500,13 @@ dependencies: tslib "^2.6.2" +"@smithy/types@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.6.0.tgz#8ea8b15fedee3cdc555e8f947ce35fb1e973bb7a" + integrity sha512-4lI9C8NzRPOv66FaY1LL1O/0v0aLVrq/mXP/keUa9mJOApEeae43LsLd2kZRUJw91gxOQfLIrV3OvqPgWz1YsA== + dependencies: + tslib "^2.6.2" + "@smithy/url-parser@^4.0.5": version "4.0.5" resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.0.5.tgz#1824a9c108b85322c5a31f345f608d47d06f073a" @@ -1603,6 +2516,15 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/url-parser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.0.tgz#b6d6e739233ae120e4d6725b04375cb87791491f" + integrity sha512-AlBmD6Idav2ugmoAL6UtR6ItS7jU5h5RNqLMZC7QrLCoITA9NzIN3nx9GWi8g4z1pfWh2r9r96SX/jHiNwPJ9A== + dependencies: + "@smithy/querystring-parser" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/util-base64@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.0.0.tgz#8345f1b837e5f636e5f8470c4d1706ae0c6d0358" @@ -1612,6 +2534,15 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@smithy/util-base64@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.2.0.tgz#677f616772389adbad278b05d84835abbfe63bbc" + integrity sha512-+erInz8WDv5KPe7xCsJCp+1WCjSbah9gWcmUXc9NqmhyPx59tf7jqFz+za1tRG1Y5KM1Cy1rWCcGypylFp4mvA== + dependencies: + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@smithy/util-body-length-browser@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.0.0.tgz#965d19109a4b1e5fe7a43f813522cce718036ded" @@ -1619,6 +2550,13 @@ dependencies: tslib "^2.6.2" +"@smithy/util-body-length-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz#04e9fc51ee7a3e7f648a4b4bcdf96c350cfa4d61" + integrity sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg== + dependencies: + tslib "^2.6.2" + "@smithy/util-body-length-node@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.0.0.tgz#3db245f6844a9b1e218e30c93305bfe2ffa473b3" @@ -1626,6 +2564,13 @@ dependencies: tslib "^2.6.2" +"@smithy/util-body-length-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.0.tgz#ea6a0fdabb48dd0b212e17e42b1f07bb7373147b" + integrity sha512-U8q1WsSZFjXijlD7a4wsDQOvOwV+72iHSfq1q7VD+V75xP/pdtm0WIGuaFJ3gcADDOKj2MIBn4+zisi140HEnQ== + dependencies: + tslib "^2.6.2" + "@smithy/util-buffer-from@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-1.1.0.tgz#a000bd9f95c0e8d5b0edb0112f2a586daa5bed49" @@ -1658,6 +2603,14 @@ "@smithy/is-array-buffer" "^4.0.0" tslib "^2.6.2" +"@smithy/util-buffer-from@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz#7abd12c4991b546e7cee24d1e8b4bfaa35c68a9d" + integrity sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew== + dependencies: + "@smithy/is-array-buffer" "^4.2.0" + tslib "^2.6.2" + "@smithy/util-config-provider@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.0.0.tgz#e0c7c8124c7fba0b696f78f0bd0ccb060997d45e" @@ -1665,6 +2618,13 @@ dependencies: tslib "^2.6.2" +"@smithy/util-config-provider@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz#2e4722937f8feda4dcb09672c59925a4e6286cfc" + integrity sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q== + dependencies: + tslib "^2.6.2" + "@smithy/util-defaults-mode-browser@^4.0.26": version "4.0.26" resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.26.tgz#fc04cd466bbb0d80e41930af8d6a8c33c48490f2" @@ -1676,6 +2636,17 @@ bowser "^2.11.0" tslib "^2.6.2" +"@smithy/util-defaults-mode-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.2.0.tgz#7b9f0299203aaa48953c4997c1630bdeffd80ec0" + integrity sha512-qzHp7ZDk1Ba4LDwQVCNp90xPGqSu7kmL7y5toBpccuhi3AH7dcVBIT/pUxYcInK4jOy6FikrcTGq5wxcka8UaQ== + dependencies: + "@smithy/property-provider" "^4.2.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + bowser "^2.11.0" + tslib "^2.6.2" + "@smithy/util-defaults-mode-node@^4.0.26": version "4.0.26" resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.26.tgz#adfee8c54301ec4cbabed58cd604995a81b4a8dc" @@ -1689,6 +2660,19 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/util-defaults-mode-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.0.tgz#efe5a6be134755317a0edf9595582bd6732e493a" + integrity sha512-FxUHS3WXgx3bTWR6yQHNHHkQHZm/XKIi/CchTnKvBulN6obWpcbzJ6lDToXn+Wp0QlVKd7uYAz2/CTw1j7m+Kg== + dependencies: + "@smithy/config-resolver" "^4.3.0" + "@smithy/credential-provider-imds" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/util-endpoints@^3.0.7": version "3.0.7" resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.0.7.tgz#9d52f2e7e7a1ea4814ae284270a5f1d3930b3773" @@ -1698,6 +2682,15 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/util-endpoints@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.0.tgz#4bdc4820ceab5d66365ee72cfb14226e10bb0e24" + integrity sha512-TXeCn22D56vvWr/5xPqALc9oO+LN+QpFjrSM7peG/ckqEPoI3zaKZFp+bFwfmiHhn5MGWPaLCqDOJPPIixk9Wg== + dependencies: + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/util-hex-encoding@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz#87edb7c88c2f422cfca4bb21f1394ae9602c5085" @@ -1719,6 +2712,13 @@ dependencies: tslib "^2.6.2" +"@smithy/util-hex-encoding@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz#1c22ea3d1e2c3a81ff81c0a4f9c056a175068a7b" + integrity sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw== + dependencies: + tslib "^2.6.2" + "@smithy/util-middleware@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.2.0.tgz#80cfad40f6cca9ffe42a5899b5cb6abd53a50006" @@ -1743,6 +2743,14 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/util-middleware@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.0.tgz#85973ae0db65af4ab4bedf12f31487a4105d1158" + integrity sha512-u9OOfDa43MjagtJZ8AapJcmimP+K2Z7szXn8xbty4aza+7P1wjFmy2ewjSbhEiYQoW1unTlOAIV165weYAaowA== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/util-retry@^4.0.7": version "4.0.7" resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.0.7.tgz#3169450193e917da170a87557fcbdfe0faa86779" @@ -1752,6 +2760,15 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/util-retry@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.0.tgz#1fa58e277b62df98d834e6c8b7d57f4c62ff1baf" + integrity sha512-BWSiuGbwRnEE2SFfaAZEX0TqaxtvtSYPM/J73PFVm+A29Fg1HTPiYFb8TmX1DXp4hgcdyJcNQmprfd5foeORsg== + dependencies: + "@smithy/service-error-classification" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + "@smithy/util-stream@^4.2.4": version "4.2.4" resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.2.4.tgz#fa9f0e2fd5a8a5adbd013066b475ea8f9d4f900f" @@ -1766,6 +2783,20 @@ "@smithy/util-utf8" "^4.0.0" tslib "^2.6.2" +"@smithy/util-stream@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.4.0.tgz#e203c74b8664d0e3f537185de5da960655333a45" + integrity sha512-vtO7ktbixEcrVzMRmpQDnw/Ehr9UWjBvSJ9fyAbadKkC4w5Cm/4lMO8cHz8Ysb8uflvQUNRcuux/oNHKPXkffg== + dependencies: + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + "@smithy/util-uri-escape@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz#56f5764051a33b67bc93fdd2a869f971b0635406" @@ -1787,6 +2818,13 @@ dependencies: tslib "^2.6.2" +"@smithy/util-uri-escape@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz#096a4cec537d108ac24a68a9c60bee73fc7e3a9e" + integrity sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA== + dependencies: + tslib "^2.6.2" + "@smithy/util-utf8@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-1.1.0.tgz#b791ab1e3f694374edfe22811e39dd8424a1be69" @@ -1819,6 +2857,14 @@ "@smithy/util-buffer-from" "^4.0.0" tslib "^2.6.2" +"@smithy/util-utf8@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz#8b19d1514f621c44a3a68151f3d43e51087fed9d" + integrity sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw== + dependencies: + "@smithy/util-buffer-from" "^4.2.0" + tslib "^2.6.2" + "@smithy/util-waiter@^4.0.7": version "4.0.7" resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.0.7.tgz#c013cf6a5918c21f8b430b4a825dbac132163f4a" @@ -1828,6 +2874,22 @@ "@smithy/types" "^4.3.2" tslib "^2.6.2" +"@smithy/util-waiter@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.0.tgz#fcf5609143fa745d45424b0463560425b39c34eb" + integrity sha512-0Z+nxUU4/4T+SL8BCNN4ztKdQjToNvUYmkF1kXO5T7Yz3Gafzh0HeIG6mrkN8Fz3gn9hSyxuAT+6h4vM+iQSBQ== + dependencies: + "@smithy/abort-controller" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/uuid@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/uuid/-/uuid-1.1.0.tgz#9fd09d3f91375eab94f478858123387df1cda987" + integrity sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw== + dependencies: + tslib "^2.6.2" + "@teppeis/multimaps@3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@teppeis/multimaps/-/multimaps-3.0.0.tgz#bb9c3f8d569f589e548586fa0bbf423010ddfdc5" diff --git a/tests/zenko_tests/node_tests/VaultClient.js b/tests/zenko_tests/node_tests/VaultClient.js index b5f511d928..4ef985b10d 100644 --- a/tests/zenko_tests/node_tests/VaultClient.js +++ b/tests/zenko_tests/node_tests/VaultClient.js @@ -1,130 +1,83 @@ -const async = require('async'); const fs = require('fs'); -const { IAM } = require('aws-sdk'); +const { + IAMClient, + DetachUserPolicyCommand, + DetachRolePolicyCommand, + DeleteUserCommand, + DeleteRoleCommand, + DeletePolicyCommand, + paginateListAttachedUserPolicies, + paginateListAttachedRolePolicies, + paginateListUsers, + paginateListRoles, + paginateListPolicies, +} = require('@aws-sdk/client-iam'); +const { NodeHttpHandler } = require('@aws-sdk/node-http-handler'); const vaultclient = require('vaultclient'); const https = require('https'); -function _deleteAttachedUserPolicies(iamClient, userName, cb) { - let truncated = true; - - async.whilst( - () => truncated, - done => iamClient.listAttachedUserPolicies( - { UserName: userName }, - (err, res) => { - if (err) { - return done(err); - } - - truncated = res.IsTruncated; - return async.forEach( - res.AttachedPolicies, - (policy, next) => iamClient.detachUserPolicy({ - PolicyArn: policy.PolicyArn, - UserName: userName, - }, next), - done, - ); - }, - ), - cb, - ); +async function _deleteAttachedUserPolicies(iamClient, userName) { + const paginator = paginateListAttachedUserPolicies({ client: iamClient }, { UserName: userName }); + // eslint-disable-next-line no-restricted-syntax + for await (const page of paginator) { + if (page.AttachedPolicies && page.AttachedPolicies.length > 0) { + await Promise.all(page.AttachedPolicies.map(policy => iamClient.send(new DetachUserPolicyCommand({ + PolicyArn: policy.PolicyArn, + UserName: userName, + })))); + } + } } -function _deleteAttachedRolePolicies(iamClient, roleName, cb) { - let truncated = true; - - async.whilst( - () => truncated, - done => iamClient.listAttachedRolePolicies( - { RoleName: roleName }, - (err, res) => { - if (err) { - return done(err); - } - - truncated = res.IsTruncated; - return async.forEach( - res.AttachedPolicies, - (policy, next) => iamClient.detachRolePolicy({ - PolicyArn: policy.PolicyArn, - RoleName: roleName, - }, next), - done, - ); - }, - ), - cb, - ); +async function _deleteAttachedRolePolicies(iamClient, roleName) { + const paginator = paginateListAttachedRolePolicies({ client: iamClient }, { RoleName: roleName }); + // eslint-disable-next-line no-restricted-syntax + for await (const page of paginator) { + if (page.AttachedPolicies && page.AttachedPolicies.length > 0) { + await Promise.all(page.AttachedPolicies.map(policy => iamClient.send(new DetachRolePolicyCommand({ + PolicyArn: policy.PolicyArn, + RoleName: roleName, + })))); + } + } } -function _deleteUsers(iamClient, cb) { - let truncated = true; - - async.whilst( - () => truncated, - done => iamClient.listUsers((err, res) => { - if (err) { - return done(err); - } - - truncated = res.IsTruncated; - return async.forEach( - res.Users, - (user, next) => async.series([ - next => _deleteAttachedUserPolicies(iamClient, user.UserName, next), - next => iamClient.deleteUser({ UserName: user.UserName }, next), - ], next), - done, - ); - }), - cb, - ); +async function _deleteUsers(iamClient) { + const paginator = paginateListUsers({ client: iamClient }, {}); + // eslint-disable-next-line no-restricted-syntax + for await (const page of paginator) { + if (page.Users && page.Users.length > 0) { + await Promise.all(page.Users.map(async user => { + await _deleteAttachedUserPolicies(iamClient, user.UserName); + await iamClient.send(new DeleteUserCommand({ UserName: user.UserName })); + })); + } + } } -function _deleteRoles(iamClient, cb) { - let truncated = true; - - async.whilst( - () => truncated, - done => iamClient.listRoles((err, res) => { - if (err) { - return done(err); - } - - truncated = res.IsTruncated; - return async.forEach( - res.Roles, - (role, next) => async.series([ - next => _deleteAttachedRolePolicies(iamClient, role.RoleName, next), - next => iamClient.deleteRole({ RoleName: role.RoleName }, next), - ], next), - done, - ); - }), - cb, - ); +async function _deleteRoles(iamClient) { + const paginator = paginateListRoles({ client: iamClient }, {}); + // eslint-disable-next-line no-restricted-syntax + for await (const page of paginator) { + if (page.Roles && page.Roles.length > 0) { + await Promise.all(page.Roles.map(async role => { + await _deleteAttachedRolePolicies(iamClient, role.RoleName); + await iamClient.send(new DeleteRoleCommand({ RoleName: role.RoleName })); + })); + } + } } -function _deletePolicies(iamClient, cb) { - let truncated = true; - - async.whilst( - () => truncated, - done => iamClient.listPolicies((err, res) => { - if (err) { - return done(err); - } - - truncated = res.IsTruncated; - return async.forEach( - res.Policies, - (policy, next) => iamClient.deletePolicy({ PolicyArn: policy.Arn }, next), - done, - ); - }), - cb, - ); +async function _deletePolicies(iamClient) { + const paginator = paginateListPolicies({ client: iamClient }, { Scope: 'Local' }); + // eslint-disable-next-line no-restricted-syntax + for await (const page of paginator) { + if (page.Policies && page.Policies.length > 0) { + await Promise.all(page.Policies.map(policy => iamClient.send( + new DeletePolicyCommand({ PolicyArn: policy.Arn }), + ))); + } + } } class VaultClient { @@ -140,40 +93,40 @@ class VaultClient { static getIamClient(accessKey, secretKey, sessionToken) { const endpoint = process.env.VAULT_ENDPOINT || 'http://localhost:8600'; - let ca; - let httpOptions; + const info = { + endpoint, + region: 'us-east-1', + maxAttempts: 1, + tls: false, + credentials: { + accessKeyId: accessKey, + secretAccessKey: secretKey, + }, + }; + if (endpoint.startsWith('https://')) { - ca = fs.readFileSync( + const ca = fs.readFileSync( process.env.VAULT_SSL_CA || '/conf/ca.crt', 'ascii', ); - httpOptions = { - agent: new https.Agent({ + info.requestHandler = new NodeHttpHandler({ + httpsAgent: new https.Agent({ ca: [ca], }), - }; + }); + info.tls = true; } - const info = { - endpoint, - httpOptions, - sslEnabled: httpOptions !== undefined, - region: 'us-east-1', - apiVersion: '2010-05-08', - signatureVersion: 'v4', - accessKeyId: accessKey, - secretAccessKey: secretKey, - maxRetries: 0, - }; + if (sessionToken) { - info.sessionToken = sessionToken; + info.credentials.sessionToken = sessionToken; } - return new IAM(info); + return new IAMClient(info); } /** * Get endpoint information * - * @return {object} Vault endpoint information + * @returns {object} Vault endpoint information */ static getEndpointInformation() { let host = '127.0.0.1'; @@ -215,7 +168,7 @@ class VaultClient { /** * Get an admin client * - * @return {vaultclient.Client} Vault client for admin calls + * @returns {vaultclient.Client} Vault client for admin calls */ static getAdminClient() { const adminCredentials = { @@ -241,17 +194,21 @@ class VaultClient { * @param {vaultclient.Client} adminClient - Vault client for admin calls * @param {object} iamClient - IAM client * @param {string} accountName - account name - * @param {function} cb - callback * - * @return {undefined} + * @returns {Promise} Promise that resolves when account deletion is complete */ - static deleteVaultAccount(adminClient, iamClient, accountName, cb) { - async.waterfall([ - next => _deleteUsers(iamClient, next), - next => _deleteRoles(iamClient, next), - next => _deletePolicies(iamClient, next), - next => adminClient.deleteAccount(accountName, next), - ], cb); + static async deleteVaultAccount(adminClient, iamClient, accountName) { + await _deleteUsers(iamClient); + await _deleteRoles(iamClient); + await _deletePolicies(iamClient); + await new Promise((resolve, reject) => { + adminClient.deleteAccount(accountName, err => { + if (err) { + return reject(err); + } + return resolve(); + }); + }); } } module.exports = VaultClient; diff --git a/tests/zenko_tests/node_tests/backbeat/IngestionUtility.js b/tests/zenko_tests/node_tests/backbeat/IngestionUtility.js index de221bd28c..a768891082 100644 --- a/tests/zenko_tests/node_tests/backbeat/IngestionUtility.js +++ b/tests/zenko_tests/node_tests/backbeat/IngestionUtility.js @@ -1,6 +1,13 @@ const assert = require('assert'); const async = require('async'); +const { + CreateBucketCommand, + GetObjectCommand, + HeadObjectCommand, + ListObjectVersionsCommand, + PutObjectCommand, +} = require('@aws-sdk/client-s3'); const { scalityS3Client, ringS3Client } = require('../s3SDK'); const ReplicationUtility = require('./ReplicationUtility'); const BackbeatAPIUtility = require('./BackbeatAPIUtility'); @@ -14,53 +21,78 @@ class IngestionUtility extends ReplicationUtility { } getSourceObject(bucketName, objName, versionId, cb) { - this.ringS3C.getObject({ + this.ringS3C.send(new GetObjectCommand({ Bucket: bucketName, Key: objName, VersionId: versionId, - }, cb); + })) + .then(async (data) => { + if (data.Body) { + const chunks = []; + // eslint-disable-next-line no-restricted-syntax + for await (const chunk of data.Body) { + chunks.push(chunk); + } + data.Body = Buffer.concat(chunks); + } + cb(null, data); + }) + .catch(cb); } getDestObject(bucketName, objName, versionId, cb) { - this.s3.getObject({ + this.s3.send(new GetObjectCommand({ Bucket: bucketName, Key: objName, VersionId: versionId, - }, cb); + })) + .then(async (data) => { + if (data.Body) { + const chunks = []; + // eslint-disable-next-line no-restricted-syntax + for await (const chunk of data.Body) { + chunks.push(chunk); + } + data.Body = Buffer.concat(chunks); + } + cb(null, data); + }) + .catch(cb); } createIngestionBucket(bucketName, locationName, cb) { const locationNameWithSuffix = `${locationName}:ingest`; - return this.s3.createBucket({ + this.s3.send(new CreateBucketCommand({ Bucket: bucketName, CreateBucketConfiguration: { LocationConstraint: locationNameWithSuffix, }, - }, err => { - if (err) { - return cb(err); - } - // When resuming an ingestion-enabled location, - // backbeat gets the list of buckets with ingestion-enabled - // to check if the location is valid. - // Backbeat sets the list of buckets with ingestion-enabled periodically, - // so the list might be outdated for few seconds leading to a 404 API error response. - // Also backbeat "ingestion producer" process applies update every 5 seconds. - // For this reason, we are waiting 10 seconds to make sure ingestion processes are up-to-date. - return setTimeout(() => backbeatAPIUtils.resumeIngestion(locationName, false, null, (err, body) => { - if (err) { - return cb(err); - } - if (body.code) { - return cb(`error resuming ingestion: ${JSON.stringify(body)}`); - } - return cb(); - }), 10000); - }); + })) + .then(() => { + // When resuming an ingestion-enabled location, + // backbeat gets the list of buckets with ingestion-enabled + // to check if the location is valid. + // Backbeat sets the list of buckets with ingestion-enabled periodically, + // so the list might be outdated for few seconds leading to a 404 API error response. + // Also backbeat "ingestion producer" process applies update every 5 seconds. + // For this reason, we are waiting 10 seconds to make sure ingestion processes are up-to-date. + setTimeout(() => { + backbeatAPIUtils.resumeIngestion(locationName, false, null, (err, body) => { + if (err) { + return cb(err); + } + if (body.code) { + return cb(`error resuming ingestion: ${JSON.stringify(body)}`); + } + return cb(); + }); + }, 10000); + }) + .catch(cb); } putObjectWithProperties(bucketName, objectName, content, cb) { - this.s3.putObject({ + this.s3.send(new PutObjectCommand({ Bucket: bucketName, Key: objectName, ContentType: 'image/png', @@ -68,27 +100,29 @@ class IngestionUtility extends ReplicationUtility { ContentDisposition: 'test-content-disposition', ContentEncoding: 'ascii', Body: content, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } waitUntilIngested(bucketName, key, versionId, cb) { - let status; - const expectedCode = 'NotFound'; + let status = false; return async.doWhilst( - callback => this.s3.headObject({ + callback => this.s3.send(new HeadObjectCommand({ Bucket: bucketName, Key: key, VersionId: versionId, - }, err => { - if (err && err.code !== expectedCode) { - return callback(err); - } - status = !err; - if (!status) { + })) + .then(() => { + status = true; + return callback(); + }) + .catch(err => { + if (err.name !== 'NotFound') { + return callback(err); + } return setTimeout(callback, 2000); - } - return callback(); - }), + }), () => !status, cb, ); @@ -115,18 +149,17 @@ class IngestionUtility extends ReplicationUtility { waitUntilEmpty(bucketName, cb) { let objectsEmpty; return async.doWhilst( - callback => this.s3.listObjectVersions({ Bucket: bucketName }, (err, data) => { - if (err) { - return cb(err); - } - const versionLength = data.Versions.length; - const deleteLength = data.DeleteMarkers.length; - objectsEmpty = (versionLength + deleteLength) === 0; - if (objectsEmpty) { - return callback(); - } - return setTimeout(callback, 2000); - }), + callback => this.s3.send(new ListObjectVersionsCommand({ Bucket: bucketName })) + .then(data => { + const versionLength = (data.Versions || []).length; + const deleteLength = (data.DeleteMarkers || []).length; + objectsEmpty = (versionLength + deleteLength) === 0; + if (objectsEmpty) { + return callback(); + } + return setTimeout(callback, 2000); + }) + .catch(callback), () => !objectsEmpty, cb, ); @@ -134,12 +167,7 @@ class IngestionUtility extends ReplicationUtility { compareObjectsRINGS3C(srcBucket, destBucket, key, versionId, optionalFields, cb) { return async.series([ - next => this.waitUntilIngested( - destBucket, - key, - versionId, - next, - ), + next => this.waitUntilIngested(destBucket, key, versionId, next), next => this.getSourceObject(srcBucket, key, versionId, next), next => this.getDestObject(destBucket, key, versionId, next), ], (err, data) => { diff --git a/tests/zenko_tests/node_tests/backbeat/LifecycleUtility.js b/tests/zenko_tests/node_tests/backbeat/LifecycleUtility.js index d7954d6fd4..9958276b39 100644 --- a/tests/zenko_tests/node_tests/backbeat/LifecycleUtility.js +++ b/tests/zenko_tests/node_tests/backbeat/LifecycleUtility.js @@ -1,5 +1,21 @@ const async = require('async'); +const { + CreateBucketCommand, + CreateMultipartUploadCommand, + DeleteBucketCommand, + DeleteObjectCommand, + GetObjectCommand, + HeadObjectCommand, + ListObjectsCommand, + ListObjectVersionsCommand, + ListMultipartUploadsCommand, + PutBucketLifecycleConfigurationCommand, + PutBucketVersioningCommand, + PutObjectLegalHoldCommand, + PutObjectLockConfigurationCommand, + RestoreObjectCommand, +} = require('@aws-sdk/client-s3'); const ReplicationUtility = require('./ReplicationUtility'); const BUCKET_CHECK_TIMEOUT_S = process.env.BACKBEAT_BUCKET_CHECK_TIMEOUT_S @@ -38,31 +54,37 @@ class LifecycleUtility extends ReplicationUtility { } createBucket(bucket, cb) { - this.s3.createBucket({ + this.s3.send(new CreateBucketCommand({ Bucket: bucket, CreateBucketConfiguration: { LocationConstraint: this.sourceLocation, }, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } createVersionedBucket(bucket, cb) { return async.series([ next => this.createBucket(bucket, next), - next => this.s3.putBucketVersioning({ + next => this.s3.send(new PutBucketVersioningCommand({ Bucket: bucket, VersioningConfiguration: { Status: 'Enabled', }, - }, next), - ], err => cb(err)); + })) + .then(() => next()) + .catch(next), + ], cb); } deleteVersionedBucket(bucketName, cb) { return async.series([ next => this.deleteAllVersions(bucketName, undefined, next), - next => this.s3.deleteBucket({ Bucket: bucketName }, next), - ], err => cb(err)); + next => this.s3.send(new DeleteBucketCommand({ Bucket: bucketName })) + .then(() => next()) + .catch(cb), + ], cb); } putObject(data, cb) { @@ -88,12 +110,14 @@ class LifecycleUtility extends ReplicationUtility { async.forEachSeries(keys, (key, done) => { async.timesLimit(count, 10, (n, tdone) => async.waterfall([ next => super.putObject(bucket, key, Buffer.alloc(1024), next), - (info, next) => this.s3.putObjectLegalHold({ + (info, next) => this.s3.send(new PutObjectLegalHoldCommand({ Bucket: bucket, Key: key, LegalHold: { Status: 'ON' }, VersionId: info.VersionId, - }, next), + })) + .then(data => next(null, data)) + .catch(cb), ], tdone), done); }, cb); } @@ -107,22 +131,38 @@ class LifecycleUtility extends ReplicationUtility { if (versionId) { params.VersionId = versionId; } - this.s3.getObject(params, cb); + this.s3.send(new GetObjectCommand(params)) + .then(async (data) => { + if (data.Body) { + const chunks = []; + // eslint-disable-next-line no-restricted-syntax + for await (const chunk of data.Body) { + chunks.push(chunk); + } + data.Body = Buffer.concat(chunks); + } + cb(null, data); + }) + .catch(cb); } deleteObject(bucket, key, versionId, cb) { - this.s3.deleteObject({ + this.s3.send(new DeleteObjectCommand({ Bucket: bucket, Key: key, VersionId: versionId, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } createMultipartUpload(bucket, key, cb) { - this.s3.createMultipartUpload({ + this.s3.send(new CreateMultipartUploadCommand({ Bucket: bucket, Key: key, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putMPU(howManyParts, cb) { @@ -176,16 +216,18 @@ class LifecycleUtility extends ReplicationUtility { } putBucketVersioningConfiguration(status, cb) { - this.s3.putBucketVersioning({ + this.s3.send(new PutBucketVersioningCommand({ Bucket: this.bucket, VersioningConfiguration: { Status: status, }, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putBucketLifecycleConfiguration(transitionDate, cb) { - this.s3.putBucketLifecycleConfiguration({ + const lifecycleConfig = { Bucket: this.bucket, LifecycleConfiguration: { Rules: [{ @@ -199,7 +241,11 @@ class LifecycleUtility extends ReplicationUtility { ], }], }, - }, cb); + }; + + this.s3.send(new PutBucketLifecycleConfigurationCommand(lifecycleConfig)) + .then(data => cb(null, data)) + .catch(cb); } /** @@ -210,7 +256,7 @@ class LifecycleUtility extends ReplicationUtility { * @returns {undefined} undefined */ putBucketNCVTLifecycleConfiguration(cb) { - this.s3.putBucketLifecycleConfiguration({ + this.s3.send(new PutBucketLifecycleConfigurationCommand({ Bucket: this.bucket, LifecycleConfiguration: { Rules: [{ @@ -224,14 +270,18 @@ class LifecycleUtility extends ReplicationUtility { ], }], }, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putBucketExpiration(bucket, rules, cb) { - this.s3.putBucketLifecycleConfiguration({ + this.s3.send(new PutBucketLifecycleConfigurationCommand({ Bucket: bucket, LifecycleConfiguration: { Rules: rules }, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } waitUntilTransitioned(versionId, cb) { @@ -244,16 +294,15 @@ class LifecycleUtility extends ReplicationUtility { params.VersionId = versionId; } return async.doWhilst( - next => this.s3.headObject(params, (err, data) => { - if (err) { - return next(err); - } - shouldContinue = data.StorageClass !== this.destinationLocation; - if (shouldContinue) { - return setTimeout(next, 5000); - } - return next(); - }), + next => this.s3.send(new HeadObjectCommand(params)) + .then(data => { + shouldContinue = data.StorageClass !== this.destinationLocation; + if (shouldContinue) { + return setTimeout(next, 5000); + } + return next(); + }) + .catch(cb), () => shouldContinue, cb, ); @@ -264,7 +313,7 @@ class LifecycleUtility extends ReplicationUtility { return process.nextTick(cb); } - return this.s3.putObjectLockConfiguration({ + return this.s3.send(new PutObjectLockConfigurationCommand({ Bucket: bucket, ObjectLockConfiguration: { ObjectLockEnabled: 'Enabled', @@ -275,17 +324,21 @@ class LifecycleUtility extends ReplicationUtility { }, }, }, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } createObjectLockedBucket(bucket, mode, cb) { return async.series([ - next => this.s3.createBucket({ + next => this.s3.send(new CreateBucketCommand({ Bucket: bucket, ObjectLockEnabledForBucket: true, - }, next), + })) + .then(() => next()) + .catch(cb), next => this.putObjectLockConfiguration(bucket, mode, next), - ], err => cb(err)); + ], cb); } waitUntilBucketState(bucket, expectedState, cb) { @@ -319,51 +372,51 @@ class LifecycleUtility extends ReplicationUtility { } hasObjects(bucket, count, cb) { - this.s3.listObjects({ Bucket: bucket }, (err, res) => { - if (err) { - return cb(err); - } - if (typeof count === 'number') { - return cb(null, res.Contents.length === count); - } - return cb(null, res.Contents.length > 0); - }); + this.s3.send(new ListObjectsCommand({ Bucket: bucket })) + .then(res => { + const contents = res.Contents || []; + if (typeof count === 'number') { + return cb(null, contents.length === count); + } + return cb(null, contents.length > 0); + }) + .catch(cb); } hasDeleteMarkers(bucket, count, cb) { - this.s3.listObjectVersions({ Bucket: bucket }, (err, res) => { - if (err) { - return cb(err); - } - if (typeof count === 'number') { - return cb(null, res.DeleteMarkers.length === count); - } - return cb(null, res.DeleteMarkers.length > 0); - }); + this.s3.send(new ListObjectVersionsCommand({ Bucket: bucket })) + .then(res => { + const deleteMarkers = res.DeleteMarkers || []; + if (typeof count === 'number') { + return cb(null, deleteMarkers.length === count); + } + return cb(null, deleteMarkers.length > 0); + }) + .catch(cb); } hasVersionedObjects(bucket, count, cb) { - this.s3.listObjectVersions({ Bucket: bucket }, (err, res) => { - if (err) { - return cb(err); - } - if (typeof count === 'number') { - return cb(null, res.Versions.length === count); - } - return cb(null, res.Versions.length > 0); - }); + this.s3.send(new ListObjectVersionsCommand({ Bucket: bucket })) + .then(res => { + const versions = res.Versions || []; + if (typeof count === 'number') { + return cb(null, versions.length === count); + } + return cb(null, versions.length > 0); + }) + .catch(cb); } hasIncompleteMPUs(bucket, count, cb) { - this.s3.listMultipartUploads({ Bucket: bucket }, (err, res) => { - if (err) { - return cb(err); - } - if (typeof count === 'number') { - return cb(null, res.Uploads.length === count); - } - return cb(null, res.Uploads.length > 0); - }); + this.s3.send(new ListMultipartUploadsCommand({ Bucket: bucket })) + .then(res => { + const uploads = res.Uploads || []; + if (typeof count === 'number') { + return cb(null, uploads.length === count); + } + return cb(null, uploads.length > 0); + }) + .catch(cb); } /** @@ -386,7 +439,9 @@ class LifecycleUtility extends ReplicationUtility { if (versionId) { params.VersionId = versionId; } - this.s3.restoreObject(params, cb); + this.s3.send(new RestoreObjectCommand(params)) + .then(data => cb(null, data)) + .catch(cb); } /** @@ -407,16 +462,15 @@ class LifecycleUtility extends ReplicationUtility { params.VersionId = versionId; } return async.doWhilst( - next => this.s3.headObject(params, (err, data) => { - if (err) { - return next(err); - } - shouldContinue = data.Restore && data.Restore.includes('ongoing-request="false", expiry-date='); - if (shouldContinue) { - return setTimeout(next, 5000); - } - return next(); - }), + next => this.s3.send(new HeadObjectCommand(params)) + .then(data => { + shouldContinue = data.Restore && data.Restore.includes('ongoing-request="false", expiry-date='); + if (shouldContinue) { + return setTimeout(next, 5000); + } + return next(); + }) + .catch(next), () => shouldContinue, cb, ); diff --git a/tests/zenko_tests/node_tests/backbeat/ReplicationUtility.js b/tests/zenko_tests/node_tests/backbeat/ReplicationUtility.js index 4fbf2272a3..b4550bd92f 100644 --- a/tests/zenko_tests/node_tests/backbeat/ReplicationUtility.js +++ b/tests/zenko_tests/node_tests/backbeat/ReplicationUtility.js @@ -3,6 +3,29 @@ const crypto = require('crypto'); const async = require('async'); const { jsutil } = require('arsenal'); +const { + ListObjectVersionsCommand, + PutObjectCommand, + CopyObjectCommand, + CreateMultipartUploadCommand, + UploadPartCommand, + CompleteMultipartUploadCommand, + AbortMultipartUploadCommand, + UploadPartCopyCommand, + GetObjectCommand, + CreateBucketCommand, + PutBucketVersioningCommand, + DeleteBucketCommand, + PutBucketReplicationCommand, + DeleteBucketReplicationCommand, + HeadObjectCommand, + GetObjectAclCommand, + PutObjectAclCommand, + PutObjectTaggingCommand, + DeleteObjectTaggingCommand, + GetObjectTaggingCommand, + DeleteObjectCommand, +} = require('@aws-sdk/client-s3'); const { scalityS3Client, awsS3Client } = require('../s3SDK'); const srcLocation = process.env.AWS_BACKEND_SOURCE_LOCATION; @@ -38,16 +61,21 @@ class ReplicationUtility { if (versionList.length < 1) { return cb(); } - const params = { - Bucket: bucketName, - Delete: { - Objects: versionList.map(item => { - const temp = { Key: item.Key, VersionId: item.VersionId }; - return temp; - }), - }, - }; - return this.s3.deleteObjects(params, cb); + + const deletePromises = versionList.map(item => { + const params = { + Bucket: bucketName, + Key: item.Key, + }; + if (item.VersionId) { + params.VersionId = item.VersionId; + } + return this.s3.send(new DeleteObjectCommand(params)); + }); + + return Promise.all(deletePromises) + .then(() => cb()) + .catch(cb); } _setS3Client(s3Client) { @@ -56,27 +84,28 @@ class ReplicationUtility { } deleteAllVersions(bucketName, keyPrefix, cb) { - this.s3.listObjectVersions({ Bucket: bucketName }, (err, data) => { - if (err) { - return cb(err); - } - let versions = data.Versions; - let deleteMarkers = data.DeleteMarkers; - // If replicating to a multiple backend bucket, we only want to - // remove versions that we have put with our tests. - if (keyPrefix) { - versions = versions.filter(version => version.Key.startsWith(keyPrefix)); - deleteMarkers = deleteMarkers.filter(marker => marker.Key.startsWith(keyPrefix)); - } - return async.series([ - next => this._deleteVersionList( - deleteMarkers, - bucketName, - next, - ), - next => this._deleteVersionList(versions, bucketName, next), - ], err => cb(err)); - }); + this.s3.send(new ListObjectVersionsCommand({ Bucket: bucketName })) + .then(data => { + let versions = data.Versions || []; + let deleteMarkers = data.DeleteMarkers || []; + + // If replicating to a multiple backend bucket, we only want to + // remove versions that we have put with our tests. + if (keyPrefix) { + versions = versions.filter(version => version.Key.startsWith(keyPrefix)); + deleteMarkers = deleteMarkers.filter(marker => marker.Key.startsWith(keyPrefix)); + } + + if (versions.length === 0 && deleteMarkers.length === 0) { + return cb(); + } + + return async.series([ + next => this._deleteVersionList(deleteMarkers, bucketName, next), + next => this._deleteVersionList(versions, bucketName, next), + ], cb); + }) + .catch(cb); } deleteAllBlobs(containerName, keyPrefix, cb) { @@ -102,69 +131,86 @@ class ReplicationUtility { } putObject(bucketName, objectName, content, cb) { - this.s3.putObject({ + const params = { Bucket: bucketName, Key: objectName, - Body: content, - }, cb); + }; + if (content) { + params.Body = content; + } + this.s3.send(new PutObjectCommand(params)) + .then(data => cb(null, data)) + .catch(cb); } putObjectWithContentType(bucketName, objectName, content, cb) { - this.s3.putObject({ + this.s3.send(new PutObjectCommand({ Bucket: bucketName, Key: objectName, ContentType: 'image/png', Body: content, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putObjectWithUserMetadata(bucketName, objectName, content, cb) { - this.s3.putObject({ + this.s3.send(new PutObjectCommand({ Bucket: bucketName, Key: objectName, Metadata: { customKey: 'customValue' }, Body: content, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putObjectWithCacheControl(bucketName, objectName, content, cb) { - this.s3.putObject({ + this.s3.send(new PutObjectCommand({ Bucket: bucketName, Key: objectName, CacheControl: 'test-cache-control', Body: content, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putObjectWithContentDisposition(bucketName, objectName, content, cb) { - this.s3.putObject({ + this.s3.send(new PutObjectCommand({ Bucket: bucketName, Key: objectName, ContentDisposition: 'test-content-disposition', Body: content, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putObjectWithContentEncoding(bucketName, objectName, content, cb) { - this.s3.putObject({ + this.s3.send(new PutObjectCommand({ Bucket: bucketName, Key: objectName, ContentEncoding: 'ascii', Body: content, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putObjectWithContentLanguage(bucketName, objectName, content, cb) { - this.s3.putObject({ + this.s3.send(new PutObjectCommand({ Bucket: bucketName, Key: objectName, ContentLanguage: 'test-content-language', Body: content, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putObjectWithProperties(bucketName, objectName, content, cb) { - this.s3.putObject({ + this.s3.send(new PutObjectCommand({ Bucket: bucketName, Key: objectName, Metadata: { customKey: 'customValue' }, @@ -174,15 +220,19 @@ class ReplicationUtility { ContentEncoding: 'ascii', ContentLanguage: 'test-content-language', Body: content, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } copyObject(bucketName, copySource, objectName, cb) { - this.s3.copyObject({ + this.s3.send(new CopyObjectCommand({ Bucket: bucketName, CopySource: copySource, Key: objectName, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } genericCompleteMPU( @@ -214,16 +264,12 @@ class ReplicationUtility { }); } return async.waterfall([ - next => this.s3.createMultipartUpload( - initiateMPUParams, - (err, data) => { - if (err) { - return next(err); - } + next => this.s3.send(new CreateMultipartUploadCommand(initiateMPUParams)) + .then(data => { uploadId = data.UploadId; return next(); - }, - ), + }) + .catch(next), next => async.mapLimit(partNumbers, 2, (partNumber, callback) => { const uploadPartParams = { Bucket: bucketName, @@ -233,15 +279,9 @@ class ReplicationUtility { Body: Buffer.alloc(partSize).fill(partNumber + 1), }; - return this.s3.uploadPart( - uploadPartParams, - (err, data) => { - if (err) { - return callback(err); - } - return callback(null, data.ETag); - }, - ); + return this.s3.send(new UploadPartCommand(uploadPartParams)) + .then(data => callback(null, data.ETag)) + .catch(callback); }, (err, results) => { if (err) { return next(err); @@ -261,15 +301,17 @@ class ReplicationUtility { }, UploadId: uploadId, }; - return this.s3.completeMultipartUpload(params, next); + return this.s3.send(new CompleteMultipartUploadCommand(params)) + .then(data => next(null, data)) + .catch(next); }, ], (err, data) => { if (err) { - return this.s3.abortMultipartUpload({ + return this.s3.send(new AbortMultipartUploadCommand({ Bucket: bucketName, Key: objectName, UploadId: uploadId, - }, () => cb(err)); + })).then(() => cb(err)).catch(() => cb(err)); } return cb(null, data); }); @@ -347,16 +389,15 @@ class ReplicationUtility { let ETags = []; const partNumbers = Array.from(Array(howManyParts).keys()); return async.waterfall([ - next => this.s3.createMultipartUpload({ + next => this.s3.send(new CreateMultipartUploadCommand({ Bucket: bucketName, Key: objectName, - }, (err, data) => { - if (err) { - return next(err); - } - uploadId = data.UploadId; - return next(); - }), + })) + .then(data => { + uploadId = data.UploadId; + return next(); + }) + .catch(next), next => async.mapLimit(partNumbers, 2, (partNumber, callback) => { const uploadPartCopyParams = { Bucket: bucketName, @@ -367,15 +408,9 @@ class ReplicationUtility { PartNumber: partNumber + 1, UploadId: uploadId, }; - return this.s3.uploadPartCopy( - uploadPartCopyParams, - (err, data) => { - if (err) { - return callback(err); - } - return callback(null, data.ETag); - }, - ); + return this.s3.send(new UploadPartCopyCommand(uploadPartCopyParams)) + .then(data => callback(null, data.ETag)) + .catch(callback); }, (err, results) => { if (err) { return next(err); @@ -383,7 +418,7 @@ class ReplicationUtility { ETags = results; return next(); }), - next => this.s3.completeMultipartUpload({ + next => this.s3.send(new CompleteMultipartUploadCommand({ Bucket: bucketName, Key: objectName, MultipartUpload: { @@ -393,30 +428,44 @@ class ReplicationUtility { })), }, UploadId: uploadId, - }, next), + })) + .then(data => next(null, data)) + .catch(next), ], err => { if (err) { - return this.s3.abortMultipartUpload({ + return this.s3.send(new AbortMultipartUploadCommand({ Bucket: bucketName, Key: objectName, UploadId: uploadId, - }, () => cb(err)); + })).then(() => cb(err)).catch(() => cb(err)); } return cb(); }); } getObject(bucketName, objName, cb) { - this.s3.getObject({ + this.s3.send(new GetObjectCommand({ Bucket: bucketName, Key: objName, - }, cb); + })) + .then(async (data) => { + if (data.Body) { + const chunks = []; + // eslint-disable-next-line no-restricted-syntax + for await (const chunk of data.Body) { + chunks.push(chunk); + } + data.Body = Buffer.concat(chunks); + } + cb(null, data); + }) + .catch(cb); } getBlobToText(containerName, blob, cb) { this.azure.getContainerClient(containerName).downloadToBuffer(blob).then( buffer => cb(null, buffer.toString()), - err => cb(err), + cb, ); } @@ -432,7 +481,7 @@ class ReplicationUtility { cb(null, Buffer.concat(data, totalLength)); }); rsp.readableStreamBody.on('error', err => cb(err)); - }, err => cb(err)); + }, cb); } getMetadata(bucketName, fileName, cb) { @@ -448,52 +497,66 @@ class ReplicationUtility { } createBucket(bucketName, cb) { - this.s3.createBucket({ Bucket: bucketName }, cb); + this.s3.send(new CreateBucketCommand({ Bucket: bucketName })) + .then(data => cb(null, data)) + .catch(cb); } createVersionedBucket(bucketName, cb) { return async.series([ - next => this.s3.createBucket({ Bucket: bucketName }, next), - next => this.s3.putBucketVersioning({ + next => this.s3.send(new CreateBucketCommand({ Bucket: bucketName })) + .then(() => next()) + .catch(next), + next => this.s3.send(new PutBucketVersioningCommand({ Bucket: bucketName, VersioningConfiguration: { Status: 'Enabled', }, - }, next), - ], err => cb(err)); + })) + .then(() => next()) + .catch(next), + ], cb); } createVersionedBucketAWS(bucketName, cb) { return async.series([ - next => this.s3.createBucket({ + next => this.s3.send(new CreateBucketCommand({ Bucket: bucketName, CreateBucketConfiguration: { LocationConstraint: srcLocation, }, - }, next), - next => this.s3.putBucketVersioning({ + })) + .then(() => next()) + .catch(next), + next => this.s3.send(new PutBucketVersioningCommand({ Bucket: bucketName, VersioningConfiguration: { Status: 'Enabled', }, - }, next), - ], err => cb(err)); + })) + .then(() => next()) + .catch(next), + ], cb); } deleteVersionedBucket(bucketName, cb) { return async.series([ next => this.deleteAllVersions(bucketName, undefined, next), - next => this.s3.deleteBucket({ Bucket: bucketName }, next), - ], err => cb(err)); + next => this.s3.send(new DeleteBucketCommand({ Bucket: bucketName })) + .then(() => next()) + .catch(next), + ], cb); } putBucketVersioning(bucketName, status, cb) { - this.s3.putBucketVersioning({ + this.s3.send(new PutBucketVersioningCommand({ Bucket: bucketName, VersioningConfiguration: { Status: status, }, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putBucketReplication( @@ -503,7 +566,7 @@ class ReplicationUtility { storageClass, cb, ) { - this.s3.putBucketReplication({ + this.s3.send(new PutBucketReplicationCommand({ Bucket: srcBucket, ReplicationConfiguration: { Role: roleArn, @@ -518,39 +581,49 @@ class ReplicationUtility { }, ], }, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } deleteBucketReplication(bucketName, cb) { - this.s3.deleteBucketReplication({ + this.s3.send(new DeleteBucketReplicationCommand({ Bucket: bucketName, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } getHeadObject(bucketName, key, cb) { - this.s3.headObject({ + this.s3.send(new HeadObjectCommand({ Bucket: bucketName, Key: key, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } getObjectACL(bucketName, key, cb) { - this.s3.getObjectAcl({ + this.s3.send(new GetObjectAclCommand({ Bucket: bucketName, Key: key, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putObjectACL(bucketName, key, cb) { - this.s3.putObjectAcl({ + this.s3.send(new PutObjectAclCommand({ Bucket: bucketName, Key: key, ACL: 'public-read', - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } putObjectTagging(bucketName, key, versionId, cb) { - this.s3.putObjectTagging({ + this.s3.send(new PutObjectTaggingCommand({ Bucket: bucketName, Key: key, VersionId: versionId, @@ -562,70 +635,84 @@ class ReplicationUtility { }, ], }, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } deleteObjectTagging(bucketName, key, versionId, cb) { - this.s3.deleteObjectTagging({ + this.s3.send(new DeleteObjectTaggingCommand({ Bucket: bucketName, Key: key, VersionId: versionId, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } getObjectTagging(bucketName, key, versionId, cb) { - this.s3.getObjectTagging({ + this.s3.send(new GetObjectTaggingCommand({ Bucket: bucketName, Key: key, VersionId: versionId, - }, cb); + })) + .then(data => cb(null, data)) + .catch(cb); } deleteObject(bucketName, key, versionId, cb) { - this.s3.deleteObject({ + const params = { Bucket: bucketName, Key: key, - VersionId: versionId, - }, cb); + }; + if (versionId) { + params.VersionId = versionId; + } + this.s3.send(new DeleteObjectCommand(params)) + .then(data => { + cb(null, data); + }) + .catch(cb); } expectReplicationStatus(bucketName, key, versionId, expectedStatus, cb) { - this.s3.headObject({ + this.s3.send(new HeadObjectCommand({ Bucket: bucketName, Key: key, VersionId: versionId, - }, (err, data) => { - if (err) { - return cb(err); - } - assert.strictEqual(data.ReplicationStatus, expectedStatus); - return cb(); - }); + })) + .then(data => { + assert.strictEqual(data.ReplicationStatus, expectedStatus); + return cb(); + }) + .catch(cb); } // Continue getting head object while the status is PENDING or PROCESSING. waitUntilReplicated(bucketName, key, versionId, cb) { return async.doWhilst( - callback => this.s3.headObject({ + callback => this.s3.send(new HeadObjectCommand({ Bucket: bucketName, Key: key, VersionId: versionId, - }, (err, data) => { - const cbOnce = jsutil.once(callback); - if (err) { + })) + .then(data => { + const cbOnce = jsutil.once(callback); + const status = data.ReplicationStatus; + assert.notStrictEqual( + status, + 'FAILED', + `Unexpected CRR failure occurred: ${JSON.stringify(data)}`, + ); + if (status === 'PENDING' || status === 'PROCESSING') { + return setTimeout(() => cbOnce(null, status), 2000); + } + return cbOnce(null, status); + }) + .catch(err => { + const cbOnce = jsutil.once(callback); return cbOnce(err); - } - const status = data.ReplicationStatus; - assert.notStrictEqual( - status, - 'FAILED', - `Unexpected CRR failure occurred: ${JSON.stringify(data)}`, - ); - if (status === 'PENDING' || status === 'PROCESSING') { - return setTimeout(() => cbOnce(null, status), 2000); - } - return cbOnce(null, status); - }), + }), status => (status === 'PENDING' || status === 'PROCESSING'), cb, ); @@ -639,8 +726,11 @@ class ReplicationUtility { return async.doWhilst( callback => this[method](bucketName, key, err => { const cbOnce = jsutil.once(callback); - if (err && err.code !== expectedCode) { - return cbOnce(err); + if (err) { + const errorCode = err.name || err.code; + if (errorCode !== expectedCode) { + return cbOnce(err); + } } objectExists = err === null; if (!objectExists) { @@ -657,28 +747,30 @@ class ReplicationUtility { waitWhilePendingCRR(bucketName, key, cb) { let shouldContinue; return async.doWhilst( - callback => this.s3.headObject({ + callback => this.s3.send(new HeadObjectCommand({ Bucket: bucketName, Key: key, - }, (err, data) => { - const cbOnce = jsutil.once(callback); - if (err) { - return cbOnce(err); - } - const statuses = []; - // We cannot rely on the global status for one-to-many, so check - // each of the destination statuses. - Object.keys(data.Metadata).forEach(key => { - if (key.includes('replication-status')) { - statuses.push(data.Metadata[key]); + })) + .then(data => { + const cbOnce = jsutil.once(callback); + const statuses = []; + // We cannot rely on the global status for one-to-many, so check + // each of the destination statuses. + Object.keys(data.Metadata).forEach(key => { + if (key.includes('replication-status')) { + statuses.push(data.Metadata[key]); + } + }); + shouldContinue = statuses.includes('PENDING'); + if (shouldContinue) { + return setTimeout(cbOnce, 2000); } - }); - shouldContinue = statuses.includes('PENDING'); - if (shouldContinue) { - return setTimeout(cbOnce, 2000); - } - return cbOnce(); - }), + return cbOnce(); + }) + .catch(err => { + const cbOnce = jsutil.once(callback); + return cbOnce(err); + }), () => shouldContinue, cb, ); @@ -688,20 +780,22 @@ class ReplicationUtility { waitWhileFailedCRR(bucketName, key, cb) { let shouldContinue; return async.doWhilst( - callback => this.s3.headObject({ + callback => this.s3.send(new HeadObjectCommand({ Bucket: bucketName, Key: key, - }, (err, data) => { - const cbOnce = jsutil.once(callback); - if (err) { + })) + .then(data => { + const cbOnce = jsutil.once(callback); + shouldContinue = data.ReplicationStatus === 'FAILED'; + if (shouldContinue) { + return setTimeout(cbOnce, 2000); + } + return cbOnce(); + }) + .catch(err => { + const cbOnce = jsutil.once(callback); return cbOnce(err); - } - shouldContinue = data.ReplicationStatus === 'FAILED'; - if (shouldContinue) { - return setTimeout(cbOnce, 2000); - } - return cbOnce(); - }), + }), () => shouldContinue, cb, ); @@ -718,6 +812,7 @@ class ReplicationUtility { if (err) { return cb(err); } + const srcData = data[1]; const destData = data[2]; assert.strictEqual(srcData.ReplicationStatus, 'COMPLETED'); @@ -1185,22 +1280,23 @@ class ReplicationUtility { assertNoObject(bucketName, key, cb) { this.getObject(bucketName, key, err => { - assert.strictEqual(err.code, 'NoSuchKey'); + assert.strictEqual(err.name, 'NoSuchKey'); return cb(); }); } assertVersionCount(bucketName, expectedCount, cb) { - this.s3.listObjectVersions({ + this.s3.send(new ListObjectVersionsCommand({ Bucket: bucketName, - }, (err, data) => { - if (err) { - return cb(err); - } - const totalCount = data.Versions.length + data.DeleteMarkers.length; - assert.strictEqual(totalCount, expectedCount); - return cb(); - }); + })) + .then(data => { + const versions = data.Versions || []; + const deleteMarkers = data.DeleteMarkers || []; + const totalCount = versions.length + deleteMarkers.length; + assert.strictEqual(totalCount, expectedCount); + cb(); + }) + .catch(cb); } } diff --git a/tests/zenko_tests/node_tests/backbeat/tests/ingestion/ingestionS3C.js b/tests/zenko_tests/node_tests/backbeat/tests/ingestion/ingestionS3C.js index 605e8d084c..a9b57562e7 100644 --- a/tests/zenko_tests/node_tests/backbeat/tests/ingestion/ingestionS3C.js +++ b/tests/zenko_tests/node_tests/backbeat/tests/ingestion/ingestionS3C.js @@ -2,6 +2,7 @@ const assert = require('assert'); const async = require('async'); const uuid = require('uuid/v4'); +const { ListObjectVersionsCommand } = require('@aws-sdk/client-s3'); const { scalityS3Client, ringS3Client } = require('../../../s3SDK'); const IngestionUtility = require('../../IngestionUtility'); @@ -193,12 +194,16 @@ describe('Ingesting existing data from RING S3C bucket', () => { next, ), next => scalityUtils.waitUntilDeleted(INGESTION_DEST_BUCKET, OBJ_KEY, null, next), - next => scalityUtils.s3.listObjectVersions({ + next => scalityUtils.s3.send(new ListObjectVersionsCommand({ Bucket: INGESTION_DEST_BUCKET, - }, (err, data) => next(err, data)), - (zenkoData, next) => ringS3CUtils.s3.listObjectVersions({ + })) + .then(data => next(null, data)) + .catch(next), + (zenkoData, next) => ringS3CUtils.s3.send(new ListObjectVersionsCommand({ Bucket: ingestionSrcBucket, - }, (err, data) => next(err, zenkoData, data)), + })) + .then(data => next(null, zenkoData, data)) + .catch(next), ], (err, zenkoData, s3cData) => { if (err) { return done(err); @@ -384,13 +389,19 @@ describe('Ingesting existing data from RING S3C bucket', () => { srcNonVersionedLocation, next, ), - next => ringS3CUtils.s3.listObjectVersions({ - Bucket: ingestionNonVersionedSrcBucket, - }, next), + next => { + ringS3CUtils.s3.send(new ListObjectVersionsCommand({ + Bucket: ingestionNonVersionedSrcBucket, + })) + .then(data => next(null, data)) + .catch(next); + }, (data, next) => { - assert.strictEqual(data.Versions.length, nonVersionedObjectCount); - assert.strictEqual(data.DeleteMarkers.length, 0); - async.forEach(data.Versions, (version, cb) => { + const versions = data.Versions || []; + const deleteMarkers = data.DeleteMarkers || []; + assert.strictEqual(versions.length, nonVersionedObjectCount); + assert.strictEqual(deleteMarkers.length, 0); + async.forEach(versions, (version, cb) => { scalityUtils.compareObjectsRINGS3C( ingestionNonVersionedSrcBucket, INGESTION_DEST_BUCKET, diff --git a/tests/zenko_tests/node_tests/backbeat/tests/ingestion/oobS3C.js b/tests/zenko_tests/node_tests/backbeat/tests/ingestion/oobS3C.js index 867441391d..6b517e3023 100644 --- a/tests/zenko_tests/node_tests/backbeat/tests/ingestion/oobS3C.js +++ b/tests/zenko_tests/node_tests/backbeat/tests/ingestion/oobS3C.js @@ -1,6 +1,7 @@ const async = require('async'); const uuid = require('uuid/v4'); +const { ListObjectVersionsCommand } = require('@aws-sdk/client-s3'); const { scalityS3Client, ringS3Client } = require('../../../s3SDK'); const IngestionUtility = require('../../IngestionUtility'); @@ -109,9 +110,11 @@ describe('OOB updates for RING S3C bucket', () => { null, next, ), - (objData, next) => ringS3CUtils.s3.listObjectVersions({ + (objData, next) => ringS3CUtils.s3.send(new ListObjectVersionsCommand({ Bucket: ingestionSrcBucket, - }, next), + })) + .then(data => next(null, data)) + .catch(next), (objData1, next) => scalityUtils.compareObjectsRINGS3C( ingestionSrcBucket, INGESTION_DEST_BUCKET, diff --git a/tests/zenko_tests/node_tests/backbeat/tests/lifecycle/transition.js b/tests/zenko_tests/node_tests/backbeat/tests/lifecycle/transition.js index b98cbc13d7..39f8ecea36 100644 --- a/tests/zenko_tests/node_tests/backbeat/tests/lifecycle/transition.js +++ b/tests/zenko_tests/node_tests/backbeat/tests/lifecycle/transition.js @@ -1,5 +1,4 @@ const assert = require('assert'); -const console = require('console'); const uuid = require('uuid/v4'); const { series } = require('async'); @@ -39,8 +38,10 @@ function checkRestoration(destination, sourceClient, versionId, cb) { } return series([ next => sourceClient.getObject(versionId, err => { - assert.strictEqual(err.code, 'InvalidObjectState'); - assert.strictEqual(err.statusCode, 403); + const errorCode = err.Code || err.code; + const statusCode = err.$metadata?.httpStatusCode || err.statusCode; + assert.strictEqual(errorCode, 'InvalidObjectState'); + assert.strictEqual(statusCode, 403); return next(); }), next => sourceClient.putRestoreObject(versionId, next), @@ -130,6 +131,7 @@ testsToRun.forEach(test => { if (err || (!this.currentTest.isPending() && !this.currentTest.isPassed())) { const testName = this.currentTest.fullTitle(); const retry = this.currentTest.currentRetry(); + // eslint-disable-next-line no-console console.log(` FAILED ${testName} [retry #${retry}] : ${srcBucket}`); } done(err); diff --git a/tests/zenko_tests/node_tests/cloudserver/bucketGetV2/tests/bucketGetV2.js b/tests/zenko_tests/node_tests/cloudserver/bucketGetV2/tests/bucketGetV2.js index a4b14a61b4..d91061a3f7 100644 --- a/tests/zenko_tests/node_tests/cloudserver/bucketGetV2/tests/bucketGetV2.js +++ b/tests/zenko_tests/node_tests/cloudserver/bucketGetV2/tests/bucketGetV2.js @@ -1,6 +1,13 @@ const assert = require('assert'); const async = require('async'); const uuidV4 = require('uuid/v4'); +const { + CreateBucketCommand, + PutObjectCommand, + DeleteObjectCommand, + DeleteBucketCommand, + ListObjectsV2Command, +} = require('@aws-sdk/client-s3'); const s3 = require('../../../s3SDK').scalityS3Client; @@ -8,13 +15,17 @@ const bucket = `list-v2-${uuidV4()}`; function putObjects(cb) { async.times(10, (n, next) => { - s3.putObject({ Bucket: bucket, Key: `key-${n}` }, next); + s3.send(new PutObjectCommand({ Bucket: bucket, Key: `key-${n}` })) + .then(() => next()) + .catch(next); }, cb); } function emptyBucket(cb) { async.times(10, (n, next) => { - s3.deleteObject({ Bucket: bucket, Key: `key-${n}` }, next); + s3.send(new DeleteObjectCommand({ Bucket: bucket, Key: `key-${n}` })) + .then(() => next()) + .catch(next); }, cb); } @@ -29,7 +40,11 @@ function expectedKeyList(startKey, endKey) { describe('Bucket GET V2 api', () => { before(done => { async.series([ - next => s3.createBucket({ Bucket: bucket }, next), + next => { + s3.send(new CreateBucketCommand({ Bucket: bucket })) + .then(() => next()) + .catch(next); + }, next => putObjects(next), ], err => { assert.ifError(err); @@ -40,90 +55,67 @@ describe('Bucket GET V2 api', () => { after(done => { async.series([ next => emptyBucket(next), - next => s3.deleteBucket({ Bucket: bucket }, next), + next => { + s3.send(new DeleteBucketCommand({ Bucket: bucket })) + .then(() => next()) + .catch(next); + }, ], err => { assert.ifError(err); done(); }); }); - it('should list objects in V2 format', done => { - s3.listObjectsV2({ Bucket: bucket }, (err, res) => { - assert.ifError(err); - const keyList = []; - res.Contents.forEach(object => keyList.push(object.Key)); - assert.deepStrictEqual(keyList, expectedKeyList(0, 9)); - done(); - }); + it('should list objects in V2 format', async () => { + const res = await s3.send(new ListObjectsV2Command({ Bucket: bucket })); + const keyList = []; + res.Contents.forEach(object => keyList.push(object.Key)); + assert.deepStrictEqual(keyList, expectedKeyList(0, 9)); }); - it('should list only objects after startAfter value', done => { - s3.listObjectsV2( - { Bucket: bucket, StartAfter: 'key-7' }, - (err, res) => { - assert.ifError(err); - const keyList = []; - res.Contents.forEach(object => keyList.push(object.Key)); - assert.deepStrictEqual(keyList, expectedKeyList(8, 9)); - done(); - }, - ); + it('should list only objects after startAfter value', async () => { + const res = await s3.send(new ListObjectsV2Command({ Bucket: bucket, StartAfter: 'key-7' })); + const keyList = []; + res.Contents.forEach(object => keyList.push(object.Key)); + assert.deepStrictEqual(keyList, expectedKeyList(8, 9)); }); - it('should include NextContinuationToken in truncated response', done => { - s3.listObjectsV2({ Bucket: bucket, MaxKeys: 5 }, (err, res) => { - assert.ifError(err); - assert(res.NextContinuationToken); - done(); - }); + it('should include NextContinuationToken in truncated response', async () => { + const res = await s3.send(new ListObjectsV2Command({ Bucket: bucket, MaxKeys: 5 })); + assert(res.NextContinuationToken); }); - it('should list objects after continuation token value', done => { - async.waterfall([ - next => s3.listObjectsV2({ Bucket: bucket, MaxKeys: 5 }, next), - (objList, next) => s3.listObjectsV2({ - Bucket: bucket, - MaxKeys: 5, - ContinuationToken: objList.NextContinuationToken, - }, next), - ], (err, objList2) => { - assert.ifError(err); - const keyList = []; - objList2.Contents.forEach(object => keyList.push(object.Key)); - assert.deepStrictEqual(keyList, expectedKeyList(5, 9)); - done(); - }); + it('should list objects after continuation token value', async () => { + const objList = await s3.send(new ListObjectsV2Command({ Bucket: bucket, MaxKeys: 5 })); + const objList2 = await s3.send(new ListObjectsV2Command({ + Bucket: bucket, + MaxKeys: 5, + ContinuationToken: objList.NextContinuationToken, + })); + const keyList = []; + objList2.Contents.forEach(object => keyList.push(object.Key)); + assert.deepStrictEqual(keyList, expectedKeyList(5, 9)); }); it('should ignore startAfter value if both startAfter and ' - + 'continuationToken are included', done => { - async.waterfall([ - next => s3.listObjectsV2({ Bucket: bucket, MaxKeys: 5 }, next), - (objList, next) => { - s3.listObjectsV2({ - Bucket: bucket, - MaxKeys: 5, - StartAfter: 'key-7', - ContinuationToken: objList.NextContinuationToken, - }, next); - }, - ], (err, objList2) => { - assert.ifError(err); - const keyList = []; - objList2.Contents.forEach(object => keyList.push(object.Key)); - assert.deepStrictEqual(keyList, expectedKeyList(5, 9)); - done(); - }); + + 'continuationToken are included', async () => { + const objList = await s3.send(new ListObjectsV2Command({ Bucket: bucket, MaxKeys: 5 })); + const objList2 = await s3.send(new ListObjectsV2Command({ + Bucket: bucket, + MaxKeys: 5, + StartAfter: 'key-7', + ContinuationToken: objList.NextContinuationToken, + })); + const keyList = []; + objList2.Contents.forEach(object => keyList.push(object.Key)); + assert.deepStrictEqual(keyList, expectedKeyList(5, 9)); }); it( 'should include Owner in response if fetchOwner is included in request', - done => { - s3.listObjectsV2({ Bucket: bucket, FetchOwner: true }, (err, res) => { - assert.ifError(err); - res.Contents.forEach(object => assert(object.Owner)); - done(); - }); + async () => { + const res = await s3.send(new ListObjectsV2Command({ Bucket: bucket, FetchOwner: true })); + res.Contents.forEach(object => assert(object.Owner)); }, ); }); diff --git a/tests/zenko_tests/node_tests/cloudserver/bucketPolicy/tests/bucketPolicy.js b/tests/zenko_tests/node_tests/cloudserver/bucketPolicy/tests/bucketPolicy.js index 0fda02e1eb..91e84d2433 100644 --- a/tests/zenko_tests/node_tests/cloudserver/bucketPolicy/tests/bucketPolicy.js +++ b/tests/zenko_tests/node_tests/cloudserver/bucketPolicy/tests/bucketPolicy.js @@ -4,6 +4,14 @@ const assert = require('assert'); const async = require('async'); const uuidV4 = require('uuid/v4'); +const { + CreateBucketCommand, + PutBucketPolicyCommand, + DeleteBucketPolicyCommand, + CreateMultipartUploadCommand, + AbortMultipartUploadCommand, + GetBucketLocationCommand, +} = require('@aws-sdk/client-s3'); const { scalityS3Client, altScalityS3Client } = require('../../../s3SDK'); const testUtils = require('../../../utils/testUtils'); @@ -90,58 +98,57 @@ function getPolicyParams(paramsToChange) { } describe('Bucket policies', () => { - beforeEach(done => { - scalityS3Client.createBucket( - { - Bucket: bucket, - CreateBucketConfiguration: { LocationConstraint: 'us-east-1' }, - }, - done, - ); + beforeEach(async () => { + await scalityS3Client.send(new CreateBucketCommand({ + Bucket: bucket, + CreateBucketConfiguration: { LocationConstraint: 'us-east-1' }, + })); }); - afterEach(done => testUtils.emptyDeleteBucket(bucket, done)); + afterEach(async () => { + await testUtils.emptyDeleteBucket(bucket); + }); describe('with no bucket policy', () => { - it('should deny request from alternate account', done => { - altScalityS3Client.getBucketLocation(bParam, err => { - assert.strictEqual(err.code, 'AccessDenied'); - done(); - }); + it('should deny request from alternate account', async () => { + try { + await altScalityS3Client.send(new GetBucketLocationCommand(bParam)); + throw new Error('Expected AccessDenied error'); + } catch (err) { + assert.strictEqual(err.name, 'AccessDenied'); + } }); }); describe('with basic bucket policy', () => { - it(`should ${allow}: Abort MPU`, done => { + it(`should ${allow}: Abort MPU`, async () => { const params = getPolicyParams([ { key: 'Action', value: 's3:AbortMultipartUpload' }, { key: 'Resource', value: objArn }, ]); - async.waterfall([ - next => scalityS3Client.putBucketPolicy(params, next), - (policyData, next) => scalityS3Client.createMultipartUpload({ Bucket: bucket, Key: mpuKey }, next), - (mpuData, next) => { - const uId = mpuData.UploadId; - altScalityS3Client.abortMultipartUpload({ Bucket: bucket, Key: mpuKey, UploadId: uId }, next); - }, - ], err => { - assert.ifError(err); - done(); - }); + + await scalityS3Client.send(new PutBucketPolicyCommand(params)); + const mpuData = await scalityS3Client.send(new CreateMultipartUploadCommand( + { Bucket: bucket, Key: mpuKey }, + )); + const uId = mpuData.UploadId; + await altScalityS3Client.send(new AbortMultipartUploadCommand( + { Bucket: bucket, Key: mpuKey, UploadId: uId }, + )); }); it(`should not ${allow} because bucket owner action: ` - + 'DeleteBucketPolicy', done => { + + 'DeleteBucketPolicy', async () => { const params = getPolicyParams( [{ key: 'Action', value: 's3:DeleteBucketPolicy' }], ); - scalityS3Client.putBucketPolicy(params, err => { - assert.ifError(err); - altScalityS3Client.deleteBucketPolicy(bParam, err => { - assert.strictEqual(err.code, 'MethodNotAllowed'); - done(); - }); - }); + await scalityS3Client.send(new PutBucketPolicyCommand(params)); + try { + await altScalityS3Client.send(new DeleteBucketPolicyCommand(bParam)); + throw new Error('Expected MethodNotAllowed error'); + } catch (err) { + assert.strictEqual(err.name, 'MethodNotAllowed'); + } }); it(`should ${allow}: DeleteBucketWebsite`, done => { diff --git a/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/nonVersionedBucket.js b/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/nonVersionedBucket.js index ea6b1f2923..cd24eb1343 100644 --- a/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/nonVersionedBucket.js +++ b/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/nonVersionedBucket.js @@ -1,9 +1,16 @@ const assert = require('assert'); -const async = require('async'); const werelogs = require('werelogs'); const { MetadataWrapper } = require('arsenal').storage.metadata; const { versioning } = require('arsenal'); const { BucketInfo } = require('arsenal').models; +const { + CreateBucketCommand, + DeleteBucketCommand, + PutObjectCommand, + DeleteObjectCommand, + GetObjectCommand, + ListObjectsV2Command, +} = require('@aws-sdk/client-s3'); const s3 = require('../../../s3SDK').scalityS3Client; const logger = new werelogs.Logger('keyFormatVersion', 'debug', 'debug'); @@ -16,16 +23,16 @@ const BUCKET_NAME = { }; const ownerInfo = {}; -function putObjects(bucketName, cb) { - async.timesSeries(10, (n, next) => { - s3.putObject({ Bucket: bucketName, Key: `key-${n}` }, next); - }, cb); +async function putObjects(bucketName) { + await Promise.all(Array.from({ length: 10 }, (_, n) => s3.send(new PutObjectCommand( + { Bucket: bucketName, Key: `key-${n}` }, + )))); } -function emptyBucket(bucketName, cb) { - async.timesSeries(10, (n, next) => { - s3.deleteObject({ Bucket: bucketName, Key: `key-${n}` }, next); - }, cb); +async function emptyBucket(bucketName) { + await Promise.all(Array.from({ length: 10 }, (_, n) => s3.send(new DeleteObjectCommand( + { Bucket: bucketName, Key: `key-${n}` }, + )))); } function expectedKeyList(startKey, endKey) { @@ -39,22 +46,20 @@ function expectedKeyList(startKey, endKey) { describe('Cloudserver : keyFormatVersion : non versioned bucket', () => { let metadata; - function getBucketOwnerInfo(cb) { - async.series([ - next => s3.createBucket({ Bucket: 'tmp-bucket' }, next), - next => metadata.getBucket('tmp-bucket', logger, (err, res) => { - if (err) { - return next(err); - } - ownerInfo._owner = res._owner; - ownerInfo._ownerDisplayName = res._ownerDisplayName; - return next(); - }), - next => s3.deleteBucket({ Bucket: 'tmp-bucket' }, next), - ], cb); + async function getBucketOwnerInfo() { + await s3.send(new CreateBucketCommand({ Bucket: 'tmp-bucket' })); + const bucketInfo = await new Promise((resolve, reject) => { + metadata.getBucket('tmp-bucket', logger, (err, res) => { + if (err) return reject(err); + return resolve(res); + }); + }); + ownerInfo._owner = bucketInfo._owner; + ownerInfo._ownerDisplayName = bucketInfo._ownerDisplayName; + await s3.send(new DeleteBucketCommand({ Bucket: 'tmp-bucket' })); } - function createBucket(vFormat, cb) { + async function createBucket(vFormat) { const bucketMD = BucketInfo.fromObj({ _name: BUCKET_NAME[vFormat], _owner: ownerInfo._owner, @@ -82,113 +87,111 @@ describe('Cloudserver : keyFormatVersion : non versioned bucket', () => { _isNFS: null, ingestion: null, }); - async.series([ - next => { - metadata.client.defaultBucketKeyFormat = vFormat; - return next(); - }, - next => metadata.createBucket(BUCKET_NAME[vFormat], bucketMD, logger, next), - ], cb); + + metadata.client.defaultBucketKeyFormat = vFormat; + + await new Promise((resolve, reject) => { + metadata.createBucket(BUCKET_NAME[vFormat], bucketMD, logger, (err) => { + if (err) return reject(err); + return resolve(); + }); + }); } - before(done => { - async.series([ - next => { - const opts = { - mongodb: { - replicaSetHosts: process.env.MONGO_REPLICA_SET_HOSTS, - // TODO: replace with env var - replicaSet: 'rs0', - writeConcern: process.env.MONGO_WRITE_CONCERN, - readPreference: process.env.MONGO_READ_PREFERENCE, - shardCollections: process.env.MONGO_SHARD_COLLECTION === 'true', - database: process.env.MONGO_DATABASE, - authCredentials: { - password: process.env.MONGO_AUTH_PASSWORD, - username: process.env.MONGO_AUTH_USERNAME, - }, - }, - }; - metadata = new MetadataWrapper(IMPL_NAME, opts, null, logger); - metadata.setup(next); + before(async function () { + this.timeout(60000); + + const opts = { + mongodb: { + replicaSetHosts: process.env.MONGO_REPLICA_SET_HOSTS, + // TODO: replace with env var + replicaSet: 'rs0', + writeConcern: process.env.MONGO_WRITE_CONCERN, + readPreference: process.env.MONGO_READ_PREFERENCE, + shardCollections: process.env.MONGO_SHARD_COLLECTION === 'true', + database: process.env.MONGO_DATABASE, + authCredentials: { + password: process.env.MONGO_AUTH_PASSWORD, + username: process.env.MONGO_AUTH_USERNAME, + }, }, - next => getBucketOwnerInfo(next), - next => createBucket(BucketVersioningKeyFormat.v0, next), - next => createBucket(BucketVersioningKeyFormat.v1, next), - next => putObjects(BUCKET_NAME.v0, next), - next => putObjects(BUCKET_NAME.v1, next), - ], err => { - assert.ifError(err); - done(); + }; + metadata = new MetadataWrapper(IMPL_NAME, opts, null, logger); + await new Promise((resolve, reject) => { + metadata.setup(err => { + if (err) return reject(err); + return resolve(); + }); }); + + await getBucketOwnerInfo(); + await createBucket(BucketVersioningKeyFormat.v0); + await createBucket(BucketVersioningKeyFormat.v1); + await putObjects(BUCKET_NAME.v0); + await putObjects(BUCKET_NAME.v1); }); - after(done => { - async.series([ - next => emptyBucket(BUCKET_NAME.v0, next), - next => emptyBucket(BUCKET_NAME.v1, next), - next => s3.deleteBucket({ Bucket: BUCKET_NAME.v0 }, next), - next => s3.deleteBucket({ Bucket: BUCKET_NAME.v1 }, next), - next => metadata.close(next), - ], err => { - assert.ifError(err); - done(); + after(async function () { + this.timeout(60000); + + await emptyBucket(BUCKET_NAME.v0); + await emptyBucket(BUCKET_NAME.v1); + await s3.send(new DeleteBucketCommand({ Bucket: BUCKET_NAME.v0 })); + await s3.send(new DeleteBucketCommand({ Bucket: BUCKET_NAME.v1 })); + + await new Promise((resolve, reject) => { + metadata.close((err) => { + if (err) return reject(err); + return resolve(); + }); }); }); ['v0', 'v1'].forEach(vFormat => { - it(`Should return object metadata ${vFormat}`, done => { + it(`Should return object metadata ${vFormat}`, async () => { const params = { Bucket: BUCKET_NAME[vFormat], Key: 'key-2', }; - s3.getObject(params, (err, data) => { - assert.ifError(err); - assert(data); - return done(); - }); + const data = await s3.send(new GetObjectCommand(params)); + assert(data); }); - it(`Should list all objects in bucket ${vFormat}`, done => { + it(`Should list all objects in bucket ${vFormat}`, async () => { const params = { Bucket: BUCKET_NAME[vFormat], }; - s3.listObjectsV2(params, (err, data) => { - assert.ifError(err); - const keyList = []; - data.Contents.forEach(object => keyList.push(object.Key)); - assert.deepStrictEqual(keyList, expectedKeyList(0, 9)); - return done(); - }); + const data = await s3.send(new ListObjectsV2Command(params)); + const keyList = []; + data.Contents.forEach(object => keyList.push(object.Key)); + assert.deepStrictEqual(keyList, expectedKeyList(0, 9)); }); - it(`Should only list object with prefix ${vFormat}`, done => { + it(`Should only list object with prefix ${vFormat}`, async () => { const params = { Bucket: BUCKET_NAME[vFormat], Prefix: 'key-2', }; - s3.listObjectsV2(params, (err, data) => { - assert.ifError(err); - assert.strictEqual(data.Contents.length, 1); - assert.strictEqual(data.Contents[0].Key, 'key-2'); - return done(); - }); + const data = await s3.send(new ListObjectsV2Command(params)); + assert.strictEqual(data.Contents.length, 1); + assert.strictEqual(data.Contents[0].Key, 'key-2'); }); - it(`Should remove object from bucket ${vFormat}`, done => { - async.series([ - next => s3.putObject({ Bucket: BUCKET_NAME[vFormat], Key: 'key-to-delete' }, next), - next => s3.deleteObject({ Bucket: BUCKET_NAME[vFormat], Key: 'key-to-delete' }, next), - next => s3.getObject({ Bucket: BUCKET_NAME[vFormat], Key: 'key-to-delete' }, err => { - assert.strictEqual(err.code, 'NoSuchKey'); - return next(); - }), - next => s3.listObjectsV2({ Bucket: BUCKET_NAME[vFormat] }, (err, data) => { - assert.ifError(err); - assert.strictEqual(data.Contents.length, 10); - return next(); - }), - ], done); + it(`Should remove object from bucket ${vFormat}`, async () => { + await s3.send(new PutObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: 'key-to-delete' })); + await s3.send(new DeleteObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: 'key-to-delete' })); + + try { + await s3.send(new GetObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: 'key-to-delete' })); + throw new Error('Expected NoSuchKey error'); + } catch (err) { + if (err.name !== 'NoSuchKey') { + throw err; + } + } + + const data = await s3.send(new ListObjectsV2Command({ Bucket: BUCKET_NAME[vFormat] })); + assert.strictEqual(data.Contents.length, 10); }); }); }); diff --git a/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/versionedBucket.js b/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/versionedBucket.js index ed9b0a2221..e79f8d35ac 100644 --- a/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/versionedBucket.js +++ b/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/versionedBucket.js @@ -1,9 +1,18 @@ const assert = require('assert'); -const async = require('async'); const werelogs = require('werelogs'); const { MetadataWrapper } = require('arsenal').storage.metadata; const { versioning } = require('arsenal'); const { BucketInfo } = require('arsenal').models; +const { + CreateBucketCommand, + DeleteBucketCommand, + PutObjectCommand, + DeleteObjectCommand, + GetObjectCommand, + ListObjectsV2Command, + ListObjectVersionsCommand, + PutBucketVersioningCommand, +} = require('@aws-sdk/client-s3'); const s3 = require('../../../s3SDK').scalityS3Client; const logger = new werelogs.Logger('keyFormatVersion', 'debug', 'debug'); @@ -26,45 +35,42 @@ const versionIds = { }; const ownerInfo = {}; -function putObjectVersions(objName, vFormat, cb) { - async.timesSeries(3, (n, next) => { - s3.putObject({ Bucket: BUCKET_NAME[vFormat], Key: objName }, (err, res) => { - assert.ifError(err); - versionIds[vFormat][objName].push(res.VersionId); - return next(); - }); - }, cb); +async function putObjectVersions(objName, vFormat) { + for (let i = 0; i < 3; i++) { + // eslint-disable-next-line no-await-in-loop + const result = await s3.send(new PutObjectCommand( + { Bucket: BUCKET_NAME[vFormat], Key: objName }, + )); + versionIds[vFormat][objName].push(result.VersionId); + } } -function deleteObjectVersions(objName, vFormat, cb) { - async.timesSeries(3, (n, next) => { - s3.deleteObject({ - Bucket: BUCKET_NAME[vFormat], - Key: objName, - VersionId: versionIds[vFormat][objName][n], - }, next); - }, cb); +async function deleteObjectVersions(objName, vFormat) { + const promises = Array.from({ length: 3 }, (_, i) => s3.send(new DeleteObjectCommand({ + Bucket: BUCKET_NAME[vFormat], + Key: objName, + VersionId: versionIds[vFormat][objName][i], + }))); + await Promise.all(promises); } describe('Cloudserver : keyFormatVersion : versioned bucket', () => { let metadata; - function getBucketOwnerInfo(cb) { - async.series([ - next => s3.createBucket({ Bucket: 'tmp-bucket' }, next), - next => metadata.getBucket('tmp-bucket', logger, (err, res) => { - if (err) { - return next(err); - } - ownerInfo._owner = res._owner; - ownerInfo._ownerDisplayName = res._ownerDisplayName; - return next(); - }), - next => s3.deleteBucket({ Bucket: 'tmp-bucket' }, next), - ], cb); + async function getBucketOwnerInfo() { + await s3.send(new CreateBucketCommand({ Bucket: 'tmp-bucket' })); + const res = await new Promise((resolve, reject) => { + metadata.getBucket('tmp-bucket', logger, (err, result) => { + if (err) return reject(err); + return resolve(result); + }); + }); + ownerInfo._owner = res._owner; + ownerInfo._ownerDisplayName = res._ownerDisplayName; + await s3.send(new DeleteBucketCommand({ Bucket: 'tmp-bucket' })); } - function createBucket(vFormat, cb) { + async function createBucket(vFormat) { const bucketMD = BucketInfo.fromObj({ _name: BUCKET_NAME[vFormat], _owner: ownerInfo._owner, @@ -92,192 +98,166 @@ describe('Cloudserver : keyFormatVersion : versioned bucket', () => { _isNFS: null, ingestion: null, }); - async.series([ - next => { - metadata.client.defaultBucketKeyFormat = vFormat; - return next(); - }, - next => metadata.createBucket(BUCKET_NAME[vFormat], bucketMD, logger, next), - ], cb); + + metadata.client.defaultBucketKeyFormat = vFormat; + await new Promise((resolve, reject) => { + metadata.createBucket(BUCKET_NAME[vFormat], bucketMD, logger, err => (err ? reject(err) : resolve())); + }); } - function createAndPopulateVersionedBucket(vFormat, cb) { - async.series([ - next => createBucket(vFormat, next), - next => { - const params = { - Bucket: BUCKET_NAME[vFormat], - VersioningConfiguration: { - MFADelete: 'Disabled', - Status: 'Enabled', - }, - }; - return s3.putBucketVersioning(params, next); + async function createAndPopulateVersionedBucket(vFormat) { + await createBucket(vFormat); + const params = { + Bucket: BUCKET_NAME[vFormat], + VersioningConfiguration: { + MFADelete: 'Disabled', + Status: 'Enabled', }, - next => putObjectVersions('first-key', vFormat, next), - next => putObjectVersions('second-key', vFormat, next), - ], cb); + }; + await s3.send(new PutBucketVersioningCommand(params)); + await putObjectVersions('first-key', vFormat); + await putObjectVersions('second-key', vFormat); } - function emptyAndDeleteBucket(vFormat, cb) { - async.series([ - next => deleteObjectVersions('first-key', vFormat, next), - next => deleteObjectVersions('second-key', vFormat, next), - next => s3.deleteBucket({ Bucket: BUCKET_NAME[vFormat] }, next), - ], cb); + async function emptyAndDeleteBucket(vFormat) { + await deleteObjectVersions('first-key', vFormat); + await deleteObjectVersions('second-key', vFormat); + await s3.send(new DeleteBucketCommand({ Bucket: BUCKET_NAME[vFormat] })); } - before(done => { - async.series([ - next => { - const opts = { - mongodb: { - replicaSetHosts: process.env.MONGO_REPLICA_SET_HOSTS, - // TODO: replace with env var - replicaSet: 'rs0', - writeConcern: process.env.MONGO_WRITE_CONCERN, - readPreference: process.env.MONGO_READ_PREFERENCE, - shardCollections: process.env.MONGO_SHARD_COLLECTION === 'true', - database: process.env.MONGO_DATABASE, - authCredentials: { - password: process.env.MONGO_AUTH_PASSWORD, - username: process.env.MONGO_AUTH_USERNAME, - }, - }, - }; - metadata = new MetadataWrapper(IMPL_NAME, opts, null, logger); - metadata.setup(next); + before(async () => { + const opts = { + mongodb: { + replicaSetHosts: process.env.MONGO_REPLICA_SET_HOSTS, + // TODO: replace with env var + replicaSet: 'rs0', + writeConcern: process.env.MONGO_WRITE_CONCERN, + readPreference: process.env.MONGO_READ_PREFERENCE, + shardCollections: process.env.MONGO_SHARD_COLLECTION === 'true', + database: process.env.MONGO_DATABASE, + authCredentials: { + password: process.env.MONGO_AUTH_PASSWORD, + username: process.env.MONGO_AUTH_USERNAME, + }, }, - next => getBucketOwnerInfo(next), - next => createAndPopulateVersionedBucket(BucketVersioningKeyFormat.v0, next), - next => createAndPopulateVersionedBucket(BucketVersioningKeyFormat.v1, next), - ], err => { - assert.ifError(err); - done(); + }; + metadata = new MetadataWrapper(IMPL_NAME, opts, null, logger); + await new Promise((resolve, reject) => { + metadata.setup(err => { + if (err) return reject(err); + return resolve(); + }); }); + await getBucketOwnerInfo(); + await createAndPopulateVersionedBucket(BucketVersioningKeyFormat.v0); + await createAndPopulateVersionedBucket(BucketVersioningKeyFormat.v1); }); - after(done => { - async.series([ - next => emptyAndDeleteBucket(BucketVersioningKeyFormat.v0, next), - next => emptyAndDeleteBucket(BucketVersioningKeyFormat.v1, next), - next => metadata.close(next), - ], err => { - assert.ifError(err); - done(); + after(async () => { + await emptyAndDeleteBucket(BucketVersioningKeyFormat.v0); + await emptyAndDeleteBucket(BucketVersioningKeyFormat.v1); + await new Promise((resolve, reject) => { + metadata.close(err => { + if (err) return reject(err); + return resolve(); + }); }); }); ['v0', 'v1'].forEach(vFormat => { - it(`Should return metadata of last version ${vFormat}`, done => { + it(`Should return metadata of last version ${vFormat}`, async () => { const params = { Bucket: BUCKET_NAME[vFormat], Key: 'first-key', }; - s3.getObject(params, (err, data) => { - assert.ifError(err); - assert.strictEqual(data.VersionId, versionIds[vFormat]['first-key'][2]); - return done(); - }); + const data = await s3.send(new GetObjectCommand(params)); + assert.strictEqual(data.VersionId, versionIds[vFormat]['first-key'][2]); }); - it(`Should return metadata of specified version ${vFormat}`, done => { + it(`Should return metadata of specified version ${vFormat}`, async () => { const params = { Bucket: BUCKET_NAME[vFormat], Key: 'second-key', VersionId: versionIds[vFormat]['second-key'][1], }; - s3.getObject(params, (err, data) => { - assert.ifError(err); - assert.strictEqual(data.VersionId, versionIds[vFormat]['second-key'][1]); - return done(); - }); + const data = await s3.send(new GetObjectCommand(params)); + assert.strictEqual(data.VersionId, versionIds[vFormat]['second-key'][1]); }); - it(`Should only list last versions ${vFormat}`, done => { + it(`Should only list last versions ${vFormat}`, async () => { const params = { Bucket: BUCKET_NAME[vFormat], }; - s3.listObjectsV2(params, (err, data) => { - assert.ifError(err); - assert.strictEqual(data.Contents.length, 2); - const keys = data.Contents.map(object => object.Key); - assert(keys.includes('first-key')); - assert(keys.includes('second-key')); - return done(); - }); + const data = await s3.send(new ListObjectsV2Command(params)); + assert.strictEqual(data.Contents.length, 2); + const keys = data.Contents.map(object => object.Key); + assert(keys.includes('first-key')); + assert(keys.includes('second-key')); }); - it(`Should list all versions ${vFormat}`, done => { + it(`Should list all versions ${vFormat}`, async () => { const params = { Bucket: BUCKET_NAME[vFormat], }; - s3.listObjectVersions(params, (err, data) => { - assert.ifError(err); - assert.strictEqual(data.Versions.length, 6); - const versions = data.Versions.map(object => object.VersionId); - assert(versionIds[vFormat]['first-key'].every(version => versions.includes(version))); - assert(versionIds[vFormat]['second-key'].every(version => versions.includes(version))); - const keyCount = {}; - data.Versions.forEach(object => { - keyCount[object.Key] = (keyCount[object.Key] | 0) + 1; - }); - assert(keyCount['second-key'], 3); - assert(keyCount['second-key'], 3); - return done(); + const data = await s3.send(new ListObjectVersionsCommand(params)); + assert.strictEqual(data.Versions.length, 6); + const versions = data.Versions.map(object => object.VersionId); + assert(versionIds[vFormat]['first-key'].every(version => versions.includes(version))); + assert(versionIds[vFormat]['second-key'].every(version => versions.includes(version))); + const keyCount = {}; + data.Versions.forEach(object => { + keyCount[object.Key] = (keyCount[object.Key] | 0) + 1; }); + assert(keyCount['second-key'], 3); + assert(keyCount['second-key'], 3); }); - it(`Should delete specified version ${vFormat}`, done => { - let tmpVersionId; - async.series([ - next => s3.putObject({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' }, (err, res) => { - assert.ifError(err); - tmpVersionId = res.VersionId; - return next(); - }), - next => s3.deleteObject({ - Bucket: BUCKET_NAME[vFormat], - Key: 'first-key', - VersionId: tmpVersionId, - }, next), - next => s3.getObject({ + it(`Should delete specified version ${vFormat}`, async () => { + const res = await s3.send(new PutObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' })); + const tmpVersionId = res.VersionId; + + await s3.send(new DeleteObjectCommand({ + Bucket: BUCKET_NAME[vFormat], + Key: 'first-key', + VersionId: tmpVersionId, + })); + + try { + await s3.send(new GetObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key', VersionId: tmpVersionId, - }, err => { - assert.strictEqual(err.code, 'NoSuchVersion'); - return next(); - }), - ], done); + })); + throw new Error('Expected NoSuchVersion error'); + } catch (err) { + assert.strictEqual(err.name, 'NoSuchVersion'); + } }); - it(`Should create a delete marker ${vFormat}`, done => { - let deleteMarkerVersionId; - async.series([ - next => s3.deleteObject({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' }, (err, data) => { - assert.ifError(err); - assert(data.DeleteMarker); - deleteMarkerVersionId = data.VersionId; - return next(); - }), - next => s3.getObject({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' }, err => { - assert.strictEqual(err.code, 'NoSuchKey'); - return next(); - }), - next => s3.listObjectVersions({ Bucket: BUCKET_NAME[vFormat] }, (err, data) => { - assert.ifError(err); - assert.strictEqual(data.DeleteMarkers.length, 1); - assert.strictEqual(data.DeleteMarkers[0].Key, 'first-key'); - assert.strictEqual(data.DeleteMarkers[0].VersionId, deleteMarkerVersionId); - return next(); - }), - next => s3.deleteObject({ - Bucket: BUCKET_NAME[vFormat], - Key: 'first-key', - VersionId: deleteMarkerVersionId, - }, next), - ], done); + it(`Should create a delete marker ${vFormat}`, async () => { + const deleteData = await s3.send(new DeleteObjectCommand( + { Bucket: BUCKET_NAME[vFormat], Key: 'first-key' }, + )); + assert(deleteData.DeleteMarker); + const deleteMarkerVersionId = deleteData.VersionId; + + try { + await s3.send(new GetObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' })); + throw new Error('Expected NoSuchKey error'); + } catch (err) { + assert.strictEqual(err.name, 'NoSuchKey'); + } + + const listData = await s3.send(new ListObjectVersionsCommand({ Bucket: BUCKET_NAME[vFormat] })); + assert.strictEqual(listData.DeleteMarkers.length, 1); + assert.strictEqual(listData.DeleteMarkers[0].Key, 'first-key'); + assert.strictEqual(listData.DeleteMarkers[0].VersionId, deleteMarkerVersionId); + + await s3.send(new DeleteObjectCommand({ + Bucket: BUCKET_NAME[vFormat], + Key: 'first-key', + VersionId: deleteMarkerVersionId, + })); }); }); }); diff --git a/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/versioningSuspended.js b/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/versioningSuspended.js index dd00d7e3f5..ee52bce225 100644 --- a/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/versioningSuspended.js +++ b/tests/zenko_tests/node_tests/cloudserver/keyFormatVersion/tests/versioningSuspended.js @@ -1,9 +1,18 @@ const assert = require('assert'); -const async = require('async'); const werelogs = require('werelogs'); const { MetadataWrapper } = require('arsenal').storage.metadata; const { versioning } = require('arsenal'); const { BucketInfo } = require('arsenal').models; +const { + CreateBucketCommand, + DeleteBucketCommand, + PutObjectCommand, + DeleteObjectCommand, + GetObjectCommand, + ListObjectsV2Command, + ListObjectVersionsCommand, + PutBucketVersioningCommand, +} = require('@aws-sdk/client-s3'); const s3 = require('../../../s3SDK').scalityS3Client; const logger = new werelogs.Logger('keyFormatVersion', 'debug', 'debug'); @@ -26,45 +35,42 @@ const versionIds = { }; const ownerInfo = {}; -function putObjectVersions(objName, vFormat, cb) { - async.timesSeries(3, (n, next) => { - s3.putObject({ Bucket: BUCKET_NAME[vFormat], Key: objName }, (err, res) => { - assert.ifError(err); - versionIds[vFormat][objName].push(res.VersionId); - return next(); - }); - }, cb); +async function putObjectVersions(objName, vFormat) { + for (let i = 0; i < 3; i++) { + // eslint-disable-next-line no-await-in-loop + const result = await s3.send(new PutObjectCommand( + { Bucket: BUCKET_NAME[vFormat], Key: objName }, + )); + versionIds[vFormat][objName].push(result.VersionId); + } } -function deleteObjectVersions(objName, vFormat, cb) { - async.timesSeries(3, (n, next) => { - s3.deleteObject({ - Bucket: BUCKET_NAME[vFormat], - Key: objName, - VersionId: versionIds[vFormat][objName][n], - }, next); - }, cb); +async function deleteObjectVersions(objName, vFormat) { + const promises = Array.from({ length: 3 }, (_, i) => s3.send(new DeleteObjectCommand({ + Bucket: BUCKET_NAME[vFormat], + Key: objName, + VersionId: versionIds[vFormat][objName][i], + }))); + await Promise.all(promises); } describe('Cloudserver : keyFormatVersion : versioning suspended bucket', () => { let metadata; - function getBucketOwnerInfo(cb) { - async.series([ - next => s3.createBucket({ Bucket: 'tmp-bucket' }, next), - next => metadata.getBucket('tmp-bucket', logger, (err, res) => { - if (err) { - return next(err); - } - ownerInfo._owner = res._owner; - ownerInfo._ownerDisplayName = res._ownerDisplayName; - return next(); - }), - next => s3.deleteBucket({ Bucket: 'tmp-bucket' }, next), - ], cb); + async function getBucketOwnerInfo() { + await s3.send(new CreateBucketCommand({ Bucket: 'tmp-bucket' })); + const res = await new Promise((resolve, reject) => { + metadata.getBucket('tmp-bucket', logger, (err, result) => { + if (err) return reject(err); + return resolve(result); + }); + }); + ownerInfo._owner = res._owner; + ownerInfo._ownerDisplayName = res._ownerDisplayName; + await s3.send(new DeleteBucketCommand({ Bucket: 'tmp-bucket' })); } - function createBucket(vFormat, cb) { + async function createBucket(vFormat) { const bucketMD = BucketInfo.fromObj({ _name: BUCKET_NAME[vFormat], _owner: ownerInfo._owner, @@ -92,34 +98,29 @@ describe('Cloudserver : keyFormatVersion : versioning suspended bucket', () => { _isNFS: null, ingestion: null, }); - async.series([ - next => { - metadata.client.defaultBucketKeyFormat = vFormat; - return next(); - }, - next => metadata.createBucket(BUCKET_NAME[vFormat], bucketMD, logger, next), - ], cb); + + metadata.client.defaultBucketKeyFormat = vFormat; + await new Promise((resolve, reject) => { + metadata.createBucket(BUCKET_NAME[vFormat], bucketMD, logger, err => (err ? reject(err) : resolve())); + }); } - function createAndPopulateVersionedBucket(vFormat, cb) { - async.series([ - next => createBucket(vFormat, next), - next => { - const params = { - Bucket: BUCKET_NAME[vFormat], - VersioningConfiguration: { - MFADelete: 'Disabled', - Status: 'Enabled', - }, - }; - return s3.putBucketVersioning(params, next); + async function createAndPopulateVersionedBucket(vFormat) { + await createBucket(vFormat); + + const params = { + Bucket: BUCKET_NAME[vFormat], + VersioningConfiguration: { + MFADelete: 'Disabled', + Status: 'Enabled', }, - next => putObjectVersions('first-key', vFormat, next), - next => putObjectVersions('second-key', vFormat, next), - ], cb); + }; + await s3.send(new PutBucketVersioningCommand(params)); + await putObjectVersions('first-key', vFormat); + await putObjectVersions('second-key', vFormat); } - function suspendBucketVersioning(vFormat, cb) { + async function suspendBucketVersioning(vFormat) { const params = { Bucket: BUCKET_NAME[vFormat], VersioningConfiguration: { @@ -127,188 +128,164 @@ describe('Cloudserver : keyFormatVersion : versioning suspended bucket', () => { Status: 'Suspended', }, }; - return s3.putBucketVersioning(params, cb); + await s3.send(new PutBucketVersioningCommand(params)); } - function emptyAndDeleteBucket(vFormat, cb) { - async.series([ - next => deleteObjectVersions('first-key', vFormat, next), - next => deleteObjectVersions('second-key', vFormat, next), - next => s3.deleteBucket({ Bucket: BUCKET_NAME[vFormat] }, next), - ], cb); + async function emptyAndDeleteBucket(vFormat) { + await deleteObjectVersions('first-key', vFormat); + await deleteObjectVersions('second-key', vFormat); + await s3.send(new DeleteBucketCommand({ Bucket: BUCKET_NAME[vFormat] })); } - before(done => { - async.series([ - next => { - const opts = { - mongodb: { - replicaSetHosts: process.env.MONGO_REPLICA_SET_HOSTS, - // TODO: replace with env var - replicaSet: 'rs0', - writeConcern: process.env.MONGO_WRITE_CONCERN, - readPreference: process.env.MONGO_READ_PREFERENCE, - shardCollections: process.env.MONGO_SHARD_COLLECTION === 'true', - database: process.env.MONGO_DATABASE, - authCredentials: { - password: process.env.MONGO_AUTH_PASSWORD, - username: process.env.MONGO_AUTH_USERNAME, - }, - }, - }; - metadata = new MetadataWrapper(IMPL_NAME, opts, null, logger); - metadata.setup(next); + before(async () => { + const opts = { + mongodb: { + replicaSetHosts: process.env.MONGO_REPLICA_SET_HOSTS, + // TODO: replace with env var + replicaSet: 'rs0', + writeConcern: process.env.MONGO_WRITE_CONCERN, + readPreference: process.env.MONGO_READ_PREFERENCE, + shardCollections: process.env.MONGO_SHARD_COLLECTION === 'true', + database: process.env.MONGO_DATABASE, + authCredentials: { + password: process.env.MONGO_AUTH_PASSWORD, + username: process.env.MONGO_AUTH_USERNAME, + }, }, - next => getBucketOwnerInfo(next), - next => createAndPopulateVersionedBucket(BucketVersioningKeyFormat.v0, next), - next => createAndPopulateVersionedBucket(BucketVersioningKeyFormat.v1, next), - next => suspendBucketVersioning(BucketVersioningKeyFormat.v0, next), - next => suspendBucketVersioning(BucketVersioningKeyFormat.v1, next), - ], err => { - assert.ifError(err); - done(); + }; + metadata = new MetadataWrapper(IMPL_NAME, opts, null, logger); + await new Promise((resolve, reject) => { + metadata.setup(err => { + if (err) return reject(err); + return resolve(); + }); }); + await getBucketOwnerInfo(); + await createAndPopulateVersionedBucket(BucketVersioningKeyFormat.v0); + await createAndPopulateVersionedBucket(BucketVersioningKeyFormat.v1); + await suspendBucketVersioning(BucketVersioningKeyFormat.v0); + await suspendBucketVersioning(BucketVersioningKeyFormat.v1); }); - after(done => { - async.series([ - next => emptyAndDeleteBucket(BucketVersioningKeyFormat.v0, next), - next => emptyAndDeleteBucket(BucketVersioningKeyFormat.v1, next), - next => metadata.close(next), - ], err => { - assert.ifError(err); - done(); + after(async () => { + await emptyAndDeleteBucket(BucketVersioningKeyFormat.v0); + await emptyAndDeleteBucket(BucketVersioningKeyFormat.v1); + await new Promise((resolve, reject) => { + metadata.close(err => { + if (err) return reject(err); + return resolve(); + }); }); }); ['v0', 'v1'].forEach(vFormat => { - it(`Should create new null version ${vFormat}`, done => { - async.series([ - next => s3.putObject({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' }, next), - next => s3.getObject( - { Bucket: BUCKET_NAME[vFormat], Key: 'first-key', VersionId: 'null' }, - (err, data) => { - assert.ifError(err); - assert.strictEqual(data.VersionId, 'null'); - return next(); - }, - ), - next => s3.deleteObject({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key', VersionId: 'null' }, next), - ], done); + it(`Should create new null version ${vFormat}`, async () => { + await s3.send(new PutObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' })); + const data = await s3.send(new GetObjectCommand( + { Bucket: BUCKET_NAME[vFormat], Key: 'first-key', VersionId: 'null' }, + )); + assert.strictEqual(data.VersionId, 'null'); + await s3.send(new DeleteObjectCommand( + { Bucket: BUCKET_NAME[vFormat], Key: 'first-key', VersionId: 'null' }, + )); }); - it(`Should not list DeleteMarkers ${vFormat}`, done => { + it(`Should not list DeleteMarkers ${vFormat}`, async () => { const key = 'first-key-test-delete-marker'; + await s3.send(new PutObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: key })); + + const listData1 = await s3.send(new ListObjectsV2Command({ Bucket: BUCKET_NAME[vFormat] })); + const countObjects = listData1.Contents.length; + assert.strictEqual(listData1.Contents.some(c => c.Key === key), true); + + await s3.send(new DeleteObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: key })); + + const listData2 = await s3.send(new ListObjectsV2Command({ Bucket: BUCKET_NAME[vFormat] })); + assert.strictEqual(listData2.Contents.length, countObjects - 1); + assert.strictEqual(listData2.Contents.some(c => c.Key === key), false); - let countObjects = 0; - async.series([ - next => s3.putObject({ Bucket: BUCKET_NAME[vFormat], Key: key }, next), - next => s3.listObjectsV2({ Bucket: BUCKET_NAME[vFormat] }, (err, data) => { - countObjects = data.Contents.length; - assert.strictEqual(data.Contents.some(c => c.Key === key), true); - return next(err); - }), - next => s3.deleteObject({ Bucket: BUCKET_NAME[vFormat], Key: key }, next), - next => s3.listObjectsV2({ Bucket: BUCKET_NAME[vFormat] }, (err, data) => { - assert.strictEqual(data.Contents.length, countObjects - 1); - assert.strictEqual(data.Contents.some(c => c.Key === key), false); - return next(err); - }), - next => s3.deleteObject({ Bucket: BUCKET_NAME[vFormat], Key: key, VersionId: 'null' }, next), - ], done); + await s3.send(new DeleteObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: key, VersionId: 'null' })); }); - it(`Should return metadata of last version ${vFormat}`, done => { + it(`Should return metadata of last version ${vFormat}`, async () => { const params = { Bucket: BUCKET_NAME[vFormat], Key: 'first-key', }; - s3.getObject(params, (err, data) => { - assert.ifError(err); - assert.strictEqual(data.VersionId, versionIds[vFormat]['first-key'][2]); - return done(); - }); + const data = await s3.send(new GetObjectCommand(params)); + assert.strictEqual(data.VersionId, versionIds[vFormat]['first-key'][2]); }); - it(`Should return metadata of specified version ${vFormat}`, done => { + it(`Should return metadata of specified version ${vFormat}`, async () => { const params = { Bucket: BUCKET_NAME[vFormat], Key: 'second-key', VersionId: versionIds[vFormat]['second-key'][1], }; - s3.getObject(params, (err, data) => { - assert.ifError(err); - assert.strictEqual(data.VersionId, versionIds[vFormat]['second-key'][1]); - return done(); - }); + const data = await s3.send(new GetObjectCommand(params)); + assert.strictEqual(data.VersionId, versionIds[vFormat]['second-key'][1]); }); - it(`Should only list last versions ${vFormat}`, done => { + it(`Should only list last versions ${vFormat}`, async () => { const params = { Bucket: BUCKET_NAME[vFormat], }; - s3.listObjectsV2(params, (err, data) => { - assert.ifError(err); - assert.strictEqual(data.Contents.length, 2); - const keys = data.Contents.map(object => object.Key); - assert(keys.includes('first-key')); - assert(keys.includes('second-key')); - return done(); - }); + const data = await s3.send(new ListObjectsV2Command(params)); + assert.strictEqual(data.Contents.length, 2); + const keys = data.Contents.map(object => object.Key); + assert(keys.includes('first-key')); + assert(keys.includes('second-key')); }); - it(`Should list all versions ${vFormat}`, done => { + it(`Should list all versions ${vFormat}`, async () => { const params = { Bucket: BUCKET_NAME[vFormat], }; - s3.listObjectVersions(params, (err, data) => { - assert.ifError(err); - assert.strictEqual(data.Versions.length, 6); - const versions = data.Versions.map(object => object.VersionId); - assert(versionIds[vFormat]['first-key'].every(version => versions.includes(version))); - assert(versionIds[vFormat]['second-key'].every(version => versions.includes(version))); - return done(); - }); + const data = await s3.send(new ListObjectVersionsCommand(params)); + assert.strictEqual(data.Versions.length, 6); + const versions = data.Versions.map(object => object.VersionId); + assert(versionIds[vFormat]['first-key'].every(version => versions.includes(version))); + assert(versionIds[vFormat]['second-key'].every(version => versions.includes(version))); }); - it(`Should delete specified version ${vFormat}`, done => { - let tmpVersionId; - async.series([ - next => s3.putObject({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' }, (err, res) => { - assert.ifError(err); - tmpVersionId = res.VersionId; - return next(); - }), - next => s3.deleteObject({ - Bucket: BUCKET_NAME[vFormat], - Key: 'first-key', - VersionId: tmpVersionId, - }, next), - next => s3.getObject({ + it(`Should delete specified version ${vFormat}`, async () => { + const res = await s3.send(new PutObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' })); + const tmpVersionId = res.VersionId; + await s3.send(new DeleteObjectCommand({ + Bucket: BUCKET_NAME[vFormat], + Key: 'first-key', + VersionId: tmpVersionId, + })); + + try { + await s3.send(new GetObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key', VersionId: tmpVersionId, - }, err => { - assert.strictEqual(err.code, 'NoSuchKey'); - return next(); - }), - ], done); + })); + throw new Error('Expected NoSuchKey error'); + } catch (err) { + assert.strictEqual(err.name, 'NoSuchKey'); + } }); - it(`Should create a delete marker with null versionId ${vFormat}`, done => { - async.series([ - next => s3.deleteObject({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' }, (err, data) => { - assert.ifError(err); - assert(data.DeleteMarker); - assert.strictEqual(data.VersionId, 'null'); - return next(); - }), - next => s3.getObject({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' }, err => { - assert.strictEqual(err.code, 'NoSuchKey'); - return next(); - }), - next => s3.deleteObject({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key', VersionId: 'null' }, next), - ], done); + it(`Should create a delete marker with null versionId ${vFormat}`, async () => { + const deleteData = await s3.send(new DeleteObjectCommand( + { Bucket: BUCKET_NAME[vFormat], Key: 'first-key' }, + )); + assert(deleteData.DeleteMarker); + assert.strictEqual(deleteData.VersionId, 'null'); + + try { + await s3.send(new GetObjectCommand({ Bucket: BUCKET_NAME[vFormat], Key: 'first-key' })); + throw new Error('Expected NoSuchKey error'); + } catch (err) { + assert.strictEqual(err.name, 'NoSuchKey'); + } + + await s3.send(new DeleteObjectCommand( + { Bucket: BUCKET_NAME[vFormat], Key: 'first-key', VersionId: 'null' }, + )); }); }); }); diff --git a/tests/zenko_tests/node_tests/cloudserver/locationQuota/QuotaUtility.js b/tests/zenko_tests/node_tests/cloudserver/locationQuota/QuotaUtility.js index fe08da34c7..be405fe3a4 100644 --- a/tests/zenko_tests/node_tests/cloudserver/locationQuota/QuotaUtility.js +++ b/tests/zenko_tests/node_tests/cloudserver/locationQuota/QuotaUtility.js @@ -1,6 +1,17 @@ const crypto = require('crypto'); const async = require('async'); const assert = require('assert'); +const { + CreateBucketCommand, + DeleteBucketCommand, + PutObjectCommand, + DeleteObjectCommand, + ListObjectsV2Command, + CreateMultipartUploadCommand, + AbortMultipartUploadCommand, + ListMultipartUploadsCommand, + UploadPartCommand, +} = require('@aws-sdk/client-s3'); const quotaLocation = process.env.LOCATION_QUOTA_BACKEND; const quotaSize = 0.1; @@ -17,7 +28,11 @@ class QuotaUtility { _deleteAllObjects(objList, bucketName, cb) { async.each( objList.Contents, - (obj, next) => this.s3.deleteObject({ Bucket: bucketName, Key: obj.Key }, next), + (obj, next) => { + this.s3.send(new DeleteObjectCommand({ Bucket: bucketName, Key: obj.Key })) + .then(() => next()) + .catch(next); + }, cb, ); } @@ -25,11 +40,15 @@ class QuotaUtility { _abortAllMpus(mpuList, bucketName, cb) { async.each( mpuList.Uploads, - (mpu, next) => this.s3.abortMultipartUpload({ - Bucket: bucketName, - Key: mpu.Key, - UploadId: mpu.UploadId, - }, next), + (mpu, next) => { + this.s3.send(new AbortMultipartUploadCommand({ + Bucket: bucketName, + Key: mpu.Key, + UploadId: mpu.UploadId, + })) + .then(() => next()) + .catch(next); + }, cb, ); } @@ -53,7 +72,9 @@ class QuotaUtility { LocationConstraint: quotaLocation, }, }; - return this.s3.createBucket(params, cb); + return this.s3.send(new CreateBucketCommand(params)) + .then(() => cb()) + .catch(cb); } /** @@ -64,15 +85,19 @@ class QuotaUtility { */ deleteQuotaBucket(bucketName, cb) { async.series({ - objList: next => this.s3.listObjects({ Bucket: bucketName }, next), - mpuList: next => this.s3.listMultipartUploads({ Bucket: bucketName }, next), + objList: async () => this.s3.send(new ListObjectsV2Command({ Bucket: bucketName })), + mpuList: async () => this.s3.send(new ListMultipartUploadsCommand({ Bucket: bucketName })), }, (err, results) => { assert.ifError(err, `Error listing: ${err}`); async.series([ next => this._deleteAllObjects(results.objList, bucketName, next), next => this._abortAllMpus(results.mpuList, bucketName, next), - next => this.deleteBucket(bucketName, next), - ], err => cb(err)); + next => { + this.deleteBucket(bucketName) + .then(() => next()) + .catch(next); + }, + ], cb); }); } @@ -92,37 +117,39 @@ class QuotaUtility { async.times(numberObjs, (n, next) => { const key = `${bucketName}/${hex}/quota-object${Date.now()}${n}`; process.stdout.write(`Putting object ${n + 1}/${numberObjs}\n`); - this.putObject(bucketName, key, body, next); + this.putObject(bucketName, key, body) + .then(() => next()) + .catch(next); }, cb); } - putObject(bucketName, objectName, body, cb) { - this.s3.putObject({ + async putObject(bucketName, objectName, body) { + return this.s3.send(new PutObjectCommand({ Bucket: bucketName, Key: objectName, Body: body, - }, cb); + })); } - createMPU(bucketName, objectName, cb) { - this.s3.createMultipartUpload({ + async createMPU(bucketName, objectName) { + return this.s3.send(new CreateMultipartUploadCommand({ Bucket: bucketName, Key: objectName, - }, cb); + })); } - putPart(bucketName, objectName, body, uploadId, partNumber, cb) { - this.s3.uploadPart({ + async putPart(bucketName, objectName, body, uploadId, partNumber) { + return this.s3.send(new UploadPartCommand({ Bucket: bucketName, Key: objectName, Body: body, UploadId: uploadId, PartNumber: partNumber, - }, cb); + })); } - deleteBucket(bucketName, cb) { - this.s3.deleteBucket({ Bucket: bucketName }, cb); + async deleteBucket(bucketName) { + return this.s3.send(new DeleteBucketCommand({ Bucket: bucketName })); } } diff --git a/tests/zenko_tests/node_tests/iam_policies/cloudserver/AssumeRole.js b/tests/zenko_tests/node_tests/iam_policies/cloudserver/AssumeRole.js index 39e7d95564..40ac2a631d 100644 --- a/tests/zenko_tests/node_tests/iam_policies/cloudserver/AssumeRole.js +++ b/tests/zenko_tests/node_tests/iam_policies/cloudserver/AssumeRole.js @@ -1,6 +1,23 @@ const assert = require('assert'); -const async = require('async'); const { errors } = require('arsenal'); +const { + CreateRoleCommand, + DeleteRoleCommand, + AttachRolePolicyCommand, + DetachRolePolicyCommand, + CreatePolicyCommand, + DeletePolicyCommand, + CreateUserCommand, + CreateAccessKeyCommand, + AttachUserPolicyCommand, +} = require('@aws-sdk/client-iam'); +const { AssumeRoleCommand } = require('@aws-sdk/client-sts'); +const { + CreateBucketCommand, + PutObjectCommand, + DeleteObjectCommand, + DeleteBucketCommand, +} = require('@aws-sdk/client-s3'); const VaultClient = require('../../VaultClient'); const { getS3Client } = require('../../s3SDK'); const { getSTSClient } = require('../../stsSDK'); @@ -77,107 +94,99 @@ testAPIs.forEach(testAPI => { describe(`iam policies - cloudserver - AssumeRole - ${testAPI.API}`, () => { - before(done => { - async.series([ - // create account1, generateAccountAccessKey for it and get account1 iam client - next => clientAdmin.createAccount(account1Name, account1Info, (err, res) => { - if (err) { - return next(err); - } - iamAccount1Id = res.account.id; - return next(); - }), - next => clientAdmin.generateAccountAccessKey( + before(async () => { + // create account1, generateAccountAccessKey for it and get account1 iam client + const res = await new Promise((resolve, reject) => { + clientAdmin.createAccount(account1Name, account1Info, (err, res) => { + if (err) return reject(err); + return resolve(res); + }); + }); + iamAccount1Id = res.account.id; + + await new Promise((resolve, reject) => { + clientAdmin.generateAccountAccessKey( account1Name, - next, + (err) => { + if (err) return reject(err); + return resolve(); + }, { externalAccessKey: externalAccessKey1, externalSecretKey: externalSecretKey1 }, - ), - next => { - iamAccount1Client = VaultClient.getIamClient(externalAccessKey1, externalSecretKey1); - next(); - }, - // create account2, generateAccountAccessKey for it, get account2 iam client - // create a user under account2, create access key for the user and get user sts client - next => clientAdmin.createAccount(account2Name, account2Info, next), - next => clientAdmin.generateAccountAccessKey( + ); + }); + + iamAccount1Client = VaultClient.getIamClient(externalAccessKey1, externalSecretKey1); + + // create account2, generateAccountAccessKey for it, get account2 iam client + // create a user under account2, create access key for the user and get user sts client + await new Promise((resolve, reject) => { + clientAdmin.createAccount(account2Name, account2Info, (err) => { + if (err) return reject(err); + return resolve(); + }); + }); + + await new Promise((resolve, reject) => { + clientAdmin.generateAccountAccessKey( account2Name, - () => next(), - { externalAccessKey: externalAccessKey2, externalSecretKey: externalSecretKey2 }, - ), - next => { - iamAccount2Client = VaultClient.getIamClient(externalAccessKey2, externalSecretKey2); - next(); - }, - next => iamAccount2Client.createUser({ UserName: userName }, next), - next => iamAccount2Client.createAccessKey( - { UserName: userName }, - (err, result) => { - if (err) { - return next(err); - } - stsClient = getSTSClient(result.AccessKey.AccessKeyId, result.AccessKey.SecretAccessKey); - return next(); + (err) => { + if (err) return reject(err); + return resolve(); }, - ), - // create allowAssumeRole policy and attach it to the user created above - next => iamAccount2Client.createPolicy({ - PolicyName: 'allowAssumeRolePolicy', - PolicyDocument: allowAssumeRolePolicy, - }, (err, result) => { - if (err) { - return next(err); - } - allowAssumeRolePolicyArn = result.Policy.Arn; - return iamAccount2Client.attachUserPolicy({ - UserName: userName, - PolicyArn: allowAssumeRolePolicyArn, - }, next); - }), - // get account1 s3 client, create 2 buckets and put 2 objects respectively - next => { - s3Account1Client = getS3Client(externalAccessKey1, externalSecretKey1); - next(); - }, - next => s3Account1Client.createBucket({ Bucket: bucket1 }, next), - next => s3Account1Client.putObject({ Bucket: bucket1, Key: 'file1' }, next), - next => s3Account1Client.createBucket({ Bucket: bucket2 }, next), - next => s3Account1Client.putObject({ Bucket: bucket2, Key: 'file1' }, next), - ], done); + { externalAccessKey: externalAccessKey2, externalSecretKey: externalSecretKey2 }, + ); + }); + + iamAccount2Client = VaultClient.getIamClient(externalAccessKey2, externalSecretKey2); + await iamAccount2Client.send(new CreateUserCommand({ UserName: userName })); + const result = await iamAccount2Client.send(new CreateAccessKeyCommand({ UserName: userName })); + stsClient = getSTSClient(result.AccessKey.AccessKeyId, result.AccessKey.SecretAccessKey); + // create allowAssumeRole policy and attach it to the user created above + const policyResult = await iamAccount2Client.send(new CreatePolicyCommand({ + PolicyName: 'allowAssumeRolePolicy', + PolicyDocument: allowAssumeRolePolicy, + })); + allowAssumeRolePolicyArn = policyResult.Policy.Arn; + await iamAccount2Client.send(new AttachUserPolicyCommand({ + UserName: userName, + PolicyArn: allowAssumeRolePolicyArn, + })); + + // get account1 s3 client, create 2 buckets and put 2 objects respectively + s3Account1Client = getS3Client(externalAccessKey1, externalSecretKey1); + await s3Account1Client.send(new CreateBucketCommand({ Bucket: bucket1 })); + await s3Account1Client.send(new PutObjectCommand({ Bucket: bucket1, Key: 'file1' })); + await s3Account1Client.send(new CreateBucketCommand({ Bucket: bucket2 })); + await s3Account1Client.send(new PutObjectCommand({ Bucket: bucket2, Key: 'file1' })); }); - after(done => { - async.series([ - next => s3Account1Client.deleteObject({ - Bucket: bucket1, - Key: 'file1', - }, next), - next => s3Account1Client.deleteObject({ - Bucket: bucket2, - Key: 'file1', - }, next), - next => s3Account1Client.deleteBucket({ Bucket: bucket1 }, next), - next => s3Account1Client.deleteBucket({ Bucket: bucket2 }, next), - next => VaultClient.deleteVaultAccount(clientAdmin, iamAccount1Client, account1Name, next), - next => VaultClient.deleteVaultAccount(clientAdmin, iamAccount2Client, account2Name, next), - ], done); + after(async () => { + await s3Account1Client.send(new DeleteObjectCommand({ + Bucket: bucket1, + Key: 'file1', + })); + await s3Account1Client.send(new DeleteObjectCommand({ + Bucket: bucket2, + Key: 'file1', + })); + await s3Account1Client.send(new DeleteBucketCommand({ Bucket: bucket1 })); + await s3Account1Client.send(new DeleteBucketCommand({ Bucket: bucket2 })); + await VaultClient.deleteVaultAccount(clientAdmin, iamAccount1Client, account1Name); + await VaultClient.deleteVaultAccount(clientAdmin, iamAccount2Client, account2Name); }); - function cleanUp(roleName, policyArn, err, done) { - return async.series([ - next => iamAccount1Client.detachRolePolicy({ + async function cleanUp(roleName, policyArn, err) { + try { + await iamAccount1Client.send(new DetachRolePolicyCommand({ RoleName: roleName, PolicyArn: policyArn, - }, next), - next => iamAccount1Client.deletePolicy({ PolicyArn: policyArn }, next), - next => iamAccount1Client.deleteRole({ RoleName: roleName }, next), - ], _err => { - if (err) { - return done(err); - } - if (_err) { - return done(_err); - } - return done(); - }); + })); + await iamAccount1Client.send(new DeletePolicyCommand({ PolicyArn: policyArn })); + await iamAccount1Client.send(new DeleteRoleCommand({ RoleName: roleName })); + } catch (cleanupErr) { + if (err) throw err; + throw cleanupErr; + } + if (err) throw err; } const tests = [ @@ -314,55 +323,58 @@ testAPIs.forEach(testAPI => { tests.forEach((test, i) => { it( test.name, - done => { + async () => { const roleName = `test-role-${i}`; const policyName = `test-policy-${i}`; let policyArn = null; - async.series([ + + try { // create a role under account1 and attach different policy to it - next => iamAccount1Client.createRole({ + await iamAccount1Client.send(new CreateRoleCommand({ RoleName: roleName, AssumeRolePolicyDocument: trustPolicy, - }, next), - next => iamAccount1Client.createPolicy({ + })); + + const res = await iamAccount1Client.send(new CreatePolicyCommand({ PolicyName: policyName, PolicyDocument: JSON.stringify(test.policy), - }, (err, res) => { - if (err) { - return done(err); - } - policyArn = res.Policy.Arn; - return iamAccount1Client.attachRolePolicy({ - RoleName: roleName, - PolicyArn: policyArn, - }, next); - }), + })); + policyArn = res.Policy.Arn; + await iamAccount1Client.send(new AttachRolePolicyCommand({ + RoleName: roleName, + PolicyArn: policyArn, + })); + // user under account2 assume the role under account1 - next => stsClient.assumeRole({ + const assumeRoleRes = await stsClient.send(new AssumeRoleCommand({ RoleArn: `arn:aws:iam::${iamAccount1Id}:role/${roleName}`, RoleSessionName: 'test-session', - }, (err, res) => { - if (err) { - return done(err); - } - const sessionUserCredentials = { - accessKeyId: res.Credentials.AccessKeyId, - secretAccessKey: res.Credentials.SecretAccessKey, - sessionToken: res.Credentials.SessionToken, - }; - return async.eachOf(test.buckets, (bucket, idx, eachCb) => { - // make request on specific buckets using session user's credentials - // and see if can get the correct response - testAPI.checkResponse(sessionUserCredentials, bucket, (err, res) => { - if (err) { - assert.ifError(err); - return done(err); - } - test.assertions[idx](res); - return eachCb(); - }, 'file1'); - }, next); - })], err => cleanUp(roleName, policyArn, err, done)); + })); + + const sessionUserCredentials = { + accessKeyId: assumeRoleRes.Credentials.AccessKeyId, + secretAccessKey: assumeRoleRes.Credentials.SecretAccessKey, + sessionToken: assumeRoleRes.Credentials.SessionToken, + }; + + // Test each bucket + const results = await Promise.all(test.buckets.map(bucket => new Promise((resolve, reject) => { + // make request on specific buckets using session user's credentials + // and see if can get the correct response + testAPI.checkResponse(sessionUserCredentials, bucket, (err, res) => { + if (err) return reject(err); + return resolve(res); + }, 'file1'); + }))); + + results.forEach((result, idx) => { + test.assertions[idx](result); + }); + + await cleanUp(roleName, policyArn); + } catch (err) { + await cleanUp(roleName, policyArn, err); + } }, ); }); diff --git a/tests/zenko_tests/node_tests/iam_policies/cloudserver/AssumeRoleWithWebIdentity.js b/tests/zenko_tests/node_tests/iam_policies/cloudserver/AssumeRoleWithWebIdentity.js index 692b6e620a..5055aeafed 100644 --- a/tests/zenko_tests/node_tests/iam_policies/cloudserver/AssumeRoleWithWebIdentity.js +++ b/tests/zenko_tests/node_tests/iam_policies/cloudserver/AssumeRoleWithWebIdentity.js @@ -1,6 +1,14 @@ const assert = require('assert'); const async = require('async'); const { errors } = require('arsenal'); +const { + CreateBucketCommand, + PutObjectCommand, + DeleteObjectCommand, + DeleteBucketCommand, +} = require('@aws-sdk/client-s3'); +const { GetRoleCommand } = require('@aws-sdk/client-iam'); +const { AssumeRoleWithWebIdentityCommand } = require('@aws-sdk/client-sts'); const VaultClient = require('../../VaultClient'); const { getS3Client } = require('../../s3SDK'); const { getSTSClient } = require('../../stsSDK'); @@ -62,7 +70,7 @@ const accountInfo = { const externalAccessKey = 'DZMMJUPWIUK8IWXRP0HQ'; const externalSecretKey = 'iTuJdlidzrLipymvAGrLP66Yxghl4NQxLZR3cLlu'; -const duration = '1000'; +const duration = 1000; const storageManagerName = 'storage_manager'; const storageAccountOwnerName = 'storage_account_owner'; @@ -242,7 +250,6 @@ testAPIs.forEach(testAPI => { const bucket1 = `bucket1-${testAPI.API.toLowerCase()}`; describe(`iam policies - cloudserver - AssumeRoleWithWebIdentity - ${testAPI.API}`, () => { - before(done => { async.series([ // create an account, generateAccountAccessKey for it @@ -262,22 +269,28 @@ testAPIs.forEach(testAPI => { // use s3 client to create a bucket and put 2 objects next => { async.series([ - next => s3Client.createBucket({ Bucket: bucket1 }, next), - next => s3Client.putObject({ Bucket: bucket1, Key: 'file1' }, next), + next => { + s3Client.send(new CreateBucketCommand({ Bucket: bucket1 })) + .then(() => next()) + .catch(next); + }, + next => { + s3Client.send(new PutObjectCommand({ Bucket: bucket1, Key: 'file1' })) + .then(() => next()) + .catch(next); + }, ], next); }, ], done); }); - after(done => { - async.series([ - next => s3Client.deleteObject({ - Bucket: bucket1, - Key: 'file1', - }, next), - next => s3Client.deleteBucket({ Bucket: bucket1 }, next), - next => VaultClient.deleteVaultAccount(clientAdmin, iamClient, accountName, next), - ], done); + after(async () => { + await s3Client.send(new DeleteObjectCommand({ + Bucket: bucket1, + Key: 'file1', + })); + await s3Client.send(new DeleteBucketCommand({ Bucket: bucket1 })); + await VaultClient.deleteVaultAccount(clientAdmin, iamClient, accountName); }); const tests = [ @@ -302,46 +315,42 @@ testAPIs.forEach(testAPI => { ]; tests.forEach((test, i) => { - it(test.name, done => { - let jwtToken = null; - let roleArn = null; - async.waterfall([ - next => getTokenForIdentity(test.oidcIdentity, (err, token) => { - assert.ifError(err); - jwtToken = token; - next(); - }), - next => iamClient.getRole({ RoleName: test.roleName }, (err, res) => { - assert.ifError(err); - roleArn = res.Role.Arn; - next(); - }), - next => stsClient.assumeRoleWithWebIdentity({ - RoleArn: roleArn, - DurationSeconds: duration, - WebIdentityToken: jwtToken, - RoleSessionName: `session-name-test-${i}-${testAPI.API.toLowerCase()}`, - }, (err, res) => { - assert.ifError(err); - return next(null, res); - }), - (res, next) => { - const sessionUserCredentials = { - accessKeyId: res.Credentials.AccessKeyId, - secretAccessKey: res.Credentials.SecretAccessKey, - sessionToken: res.Credentials.SessionToken, - }; - // make metadataSearch request using session user's credentials - // and see if can get the correct response - testAPI.checkResponse(sessionUserCredentials, bucket1, (err, res) => { - if (err) { - assert.ifError(err); - return done(err); - } - test.assertion(res); - return next(); - }, 'file1'); - }], done); + it(test.name, async () => { + const jwtToken = await new Promise((resolve, reject) => { + getTokenForIdentity(test.oidcIdentity, (err, token) => { + if (err) { + reject(err); + } else { + resolve(token); + } + }); + }); + + const roleRes = await iamClient.send(new GetRoleCommand({ RoleName: test.roleName })); + const roleArn = roleRes.Role.Arn; + const assumeRoleRes = await stsClient.send(new AssumeRoleWithWebIdentityCommand({ + RoleArn: roleArn, + DurationSeconds: duration, + WebIdentityToken: jwtToken, + RoleSessionName: `session-name-test-${i}-${testAPI.API.toLowerCase()}`, + })); + const sessionUserCredentials = { + accessKeyId: assumeRoleRes.Credentials.AccessKeyId, + secretAccessKey: assumeRoleRes.Credentials.SecretAccessKey, + sessionToken: assumeRoleRes.Credentials.SessionToken, + }; + + const result = await new Promise((resolve, reject) => { + testAPI.checkResponse(sessionUserCredentials, bucket1, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }, 'file1'); + }); + + test.assertion(result); }); }); }); diff --git a/tests/zenko_tests/node_tests/iam_policies/cloudserver/IAMUser.js b/tests/zenko_tests/node_tests/iam_policies/cloudserver/IAMUser.js index b07fe32a1d..47d96b47de 100644 --- a/tests/zenko_tests/node_tests/iam_policies/cloudserver/IAMUser.js +++ b/tests/zenko_tests/node_tests/iam_policies/cloudserver/IAMUser.js @@ -1,6 +1,20 @@ const assert = require('assert'); -const async = require('async'); const { errors } = require('arsenal'); +const { + CreateBucketCommand, + PutObjectCommand, + DeleteObjectCommand, + DeleteBucketCommand, +} = require('@aws-sdk/client-s3'); +const { + CreateUserCommand, + CreateAccessKeyCommand, + DeleteUserCommand, + CreatePolicyCommand, + AttachUserPolicyCommand, + DetachUserPolicyCommand, + DeletePolicyCommand, +} = require('@aws-sdk/client-iam'); const { metadataSearchResponseCode, createPolicy, restoreObjectResponseCode } = require('./utils'); const iam = require('../../s3SDK').scalityIAMClient; @@ -19,6 +33,18 @@ const testAPIs = [ }, ]; +function checkResponseAsync(checkResponseFn, credentials, bucket, object) { + return new Promise((resolve, reject) => { + checkResponseFn(credentials, bucket, (err, res) => { + if (err) { + reject(err); + return; + } + resolve(res); + }, object); + }); +} + testAPIs.forEach(testAPI => { const userName = `username-policy-test-${testAPI.API.toLowerCase()}`; @@ -37,239 +63,148 @@ testAPIs.forEach(testAPI => { secretAccessKey: '', }; - before(done => { - async.series([ - next => s3.createBucket({ Bucket: bucketName }, next), - next => s3.putObject({ Bucket: bucketName, Key: objectName }, next), - next => s3.createBucket({ Bucket: bucketName2 }, next), - next => s3.putObject({ Bucket: bucketName2, Key: objectName2 }, next), - next => iam.createUser({ UserName: userName }, next), - next => iam.createAccessKey({ UserName: userName }, next), - ], (err, res) => { - assert.ifError(err); - userCredentials.accessKeyId = res[5].AccessKey.AccessKeyId; - userCredentials.secretAccessKey = res[5].AccessKey.SecretAccessKey; - done(); - }); + before(async () => { + await s3.send(new CreateBucketCommand({ Bucket: bucketName })); + await s3.send(new PutObjectCommand({ Bucket: bucketName, Key: objectName })); + await s3.send(new CreateBucketCommand({ Bucket: bucketName2 })); + await s3.send(new PutObjectCommand({ Bucket: bucketName2, Key: objectName2 })); + await iam.send(new CreateUserCommand({ UserName: userName })); + const accessKeyRes = await iam.send(new CreateAccessKeyCommand({ UserName: userName })); + userCredentials.accessKeyId = accessKeyRes.AccessKey.AccessKeyId; + userCredentials.secretAccessKey = accessKeyRes.AccessKey.SecretAccessKey; }); - after(done => { - async.series([ - next => iam.deleteUser({ UserName: userName }, next), - next => s3.deleteObject({ Bucket: bucketName, Key: objectName }, next), - next => s3.deleteBucket({ Bucket: bucketName }, next), - next => s3.deleteObject({ Bucket: bucketName2, Key: objectName2 }, next), - next => s3.deleteBucket({ Bucket: bucketName2 }, next), - ], err => { - assert.ifError(err); - done(); - }); + after(async () => { + await iam.send(new DeleteUserCommand({ UserName: userName })); + await s3.send(new DeleteObjectCommand({ Bucket: bucketName, Key: objectName })); + await s3.send(new DeleteBucketCommand({ Bucket: bucketName })); + await s3.send(new DeleteObjectCommand({ Bucket: bucketName2, Key: objectName2 })); + await s3.send(new DeleteBucketCommand({ Bucket: bucketName2 })); }); it( `should not be able to ${testAPI.API} without the permission s3:${testAPI.API}`, - done => testAPI.checkResponse(userCredentials, bucketName, (err, res) => { - if (err) { - assert.ifError(err); - return done(err); - } + async () => { + const res = await checkResponseAsync(testAPI.checkResponse, userCredentials, bucketName, objectName); assert.strictEqual(res.statusCode, 403); assert.strictEqual(res.code, errors.AccessDenied.message); - return done(); - }, objectName), + }, ); - it(`should be able to ${testAPI.API} with the permission s3:${testAPI.API} allowed`, done => { + it(`should be able to ${testAPI.API} with the permission s3:${testAPI.API} allowed`, async () => { const policyArns = []; - async.series( - [ - next => iam.createPolicy({ - PolicyName: allowPolicyName, - PolicyDocument: createPolicy(`s3:${testAPI.API}`), - }, (err, res) => { - if (err) { return next(err); } - policyArns.push(res.Policy.Arn); - return iam.attachUserPolicy({ - UserName: userName, - PolicyArn: res.Policy.Arn, - }, next); - }), - next => testAPI.checkResponse(userCredentials, bucketName, (err, res) => { - if (err) { - assert.ifError(err); - return next(err); - } - if (testAPI.API === 'RestoreObject') { - assert.strictEqual(res.statusCode, 403); - assert.strictEqual(res.code, errors.InvalidObjectState.message); - } else { - assert.strictEqual(res.statusCode, 200); - } - return next(); - }, objectName), - ], - err => { - assert.ifError(err); - async.eachSeries(policyArns, (arn, eachCb) => iam.detachUserPolicy( - { UserName: userName, PolicyArn: arn }, - () => iam.deletePolicy({ PolicyArn: arn }, (err, res) => { - assert.ifError(err); - return eachCb(err, res); - }), - ), done); - }, - ); + try { + const res = await iam.send(new CreatePolicyCommand({ + PolicyName: allowPolicyName, + PolicyDocument: createPolicy(`s3:${testAPI.API}`), + })); + policyArns.push(res.Policy.Arn); + await iam.send(new AttachUserPolicyCommand({ + UserName: userName, + PolicyArn: res.Policy.Arn, + })); + const res2 = await checkResponseAsync(testAPI.checkResponse, userCredentials, bucketName, objectName); + if (testAPI.API === 'RestoreObject') { + assert.strictEqual(res2.statusCode, 403); + assert.strictEqual(res2.code, errors.InvalidObjectState.message); + } else { + assert.strictEqual(res2.statusCode, 200); + } + } finally { + await Promise.all(policyArns.map(async arn => { + await iam.send(new DetachUserPolicyCommand({ UserName: userName, PolicyArn: arn })); + await iam.send(new DeletePolicyCommand({ PolicyArn: arn })); + })); + } }); it(`should be able to ${testAPI.API} with the permission s3:${testAPI.API} allowed` - + 'on specific bucket but not on others', done => { + + 'on specific bucket but not on others', async () => { const policyArns = []; - async.series( - [ - next => iam.createPolicy({ - PolicyName: allowPolicyName, - PolicyDocument: createPolicy( - `s3:${testAPI.API}`, - true, - `arn:aws:s3:::${bucketName}${testAPI.resource}`, - ), - }, (err, res) => { - if (err) { return next(err); } - policyArns.push(res.Policy.Arn); - return iam.attachUserPolicy({ UserName: userName, PolicyArn: res.Policy.Arn }, next); - }), - next => testAPI.checkResponse(userCredentials, bucketName, (err, res) => { - if (err) { - assert.ifError(err); - return next(err); - } - if (testAPI.API === 'RestoreObject') { - assert.strictEqual(res.statusCode, 403); - assert.strictEqual(res.code, errors.InvalidObjectState.message); - } else { - assert.strictEqual(res.statusCode, 200); - } - return next(); - }, objectName), - next => testAPI.checkResponse(userCredentials, bucketName2, (err, res) => { - if (err) { - assert.ifError(err); - return next(err); - } - assert.strictEqual(res.statusCode, 403); - assert.strictEqual(res.code, errors.AccessDenied.message); - return next(); - }, objectName2), - ], - err => { - assert.ifError(err); - async.eachSeries(policyArns, (arn, eachCb) => iam.detachUserPolicy( - { UserName: userName, PolicyArn: arn }, - () => iam.deletePolicy({ PolicyArn: arn }, (err, res) => { - assert.ifError(err); - return eachCb(err, res); - }), - ), done); - }, - ); + try { + const res = await iam.send(new CreatePolicyCommand({ + PolicyName: allowPolicyName, + PolicyDocument: createPolicy( + `s3:${testAPI.API}`, + true, + `arn:aws:s3:::${bucketName}${testAPI.resource}`, + ), + })); + policyArns.push(res.Policy.Arn); + await iam.send(new AttachUserPolicyCommand({ UserName: userName, PolicyArn: res.Policy.Arn })); + const res2 = await checkResponseAsync(testAPI.checkResponse, userCredentials, bucketName, objectName); + if (testAPI.API === 'RestoreObject') { + assert.strictEqual(res2.statusCode, 403); + assert.strictEqual(res2.code, errors.InvalidObjectState.message); + } else { + assert.strictEqual(res2.statusCode, 200); + } + const res3 = await checkResponseAsync(testAPI.checkResponse, userCredentials, bucketName2, objectName2); + assert.strictEqual(res3.statusCode, 403); + assert.strictEqual(res3.code, errors.AccessDenied.message); + } finally { + await Promise.all(policyArns.map(async arn => { + await iam.send(new DetachUserPolicyCommand({ UserName: userName, PolicyArn: arn })); + await iam.send(new DeletePolicyCommand({ PolicyArn: arn })); + })); + } }); - it(`should not be able to ${testAPI.API} with the permission s3:${testAPI.API} denied`, done => { + it(`should not be able to ${testAPI.API} with the permission s3:${testAPI.API} denied`, async () => { const policyArns = []; - async.series( - [ - next => iam.createPolicy( - { - PolicyName: denyPolicyName, - PolicyDocument: createPolicy(`s3:${testAPI.API}`, false), - }, - (err, res) => { - if (err) { return next(err); } - policyArns.push(res.Policy.Arn); - return iam.attachUserPolicy({ UserName: userName, PolicyArn: res.Policy.Arn }, next); - }, - ), - next => testAPI.checkResponse(userCredentials, bucketName, (err, res) => { - if (err) { - assert.ifError(err); - return next(err); - } - assert.strictEqual(res.statusCode, 403); - assert.strictEqual(res.code, errors.AccessDenied.message); - return next(); - }, objectName), - ], - err => { - assert.ifError(err); - async.eachSeries(policyArns, (arn, eachCb) => iam.detachUserPolicy( - { UserName: userName, PolicyArn: arn }, - () => iam.deletePolicy({ PolicyArn: arn }, (err, res) => { - assert.ifError(err); - return eachCb(err, res); - }), - ), done); - }, - ); + try { + const res = await iam.send(new CreatePolicyCommand({ + PolicyName: denyPolicyName, + PolicyDocument: createPolicy(`s3:${testAPI.API}`, false), + })); + policyArns.push(res.Policy.Arn); + await iam.send(new AttachUserPolicyCommand({ UserName: userName, PolicyArn: res.Policy.Arn })); + const res2 = await checkResponseAsync(testAPI.checkResponse, userCredentials, bucketName, objectName); + assert.strictEqual(res2.statusCode, 403); + assert.strictEqual(res2.code, errors.AccessDenied.message); + } finally { + await Promise.all(policyArns.map(async arn => { + await iam.send(new DetachUserPolicyCommand({ UserName: userName, PolicyArn: arn })); + await iam.send(new DeletePolicyCommand({ PolicyArn: arn })); + })); + } }); - it(`should be able to ${testAPI.API} on all buckets except for denied ones`, done => { + it(`should be able to ${testAPI.API} on all buckets except for denied ones`, async () => { const policyArns = []; - async.series( - [ - next => iam.createPolicy({ - PolicyName: allowPolicyName, - PolicyDocument: createPolicy(`s3:${testAPI.API}`), - }, (err, res) => { - if (err) { return next(err); } - policyArns.push(res.Policy.Arn); - return iam.attachUserPolicy({ UserName: userName, PolicyArn: res.Policy.Arn }, next); - }), - next => iam.createPolicy({ - PolicyName: denyPolicyName, - PolicyDocument: createPolicy( - `s3:${testAPI.API}`, - false, - `arn:aws:s3:::${bucketName}${testAPI.resource}`, - ), - }, (err, res) => { - if (err) { return next(err); } - policyArns.push(res.Policy.Arn); - return iam.attachUserPolicy({ UserName: userName, PolicyArn: res.Policy.Arn }, next); - }), - next => testAPI.checkResponse(userCredentials, bucketName, (err, res) => { - if (err) { - assert.ifError(err); - return next(err); - } - assert.strictEqual(res.statusCode, 403); - assert.strictEqual(res.code, errors.AccessDenied.message); - return next(); - }, objectName), - next => testAPI.checkResponse(userCredentials, bucketName2, (err, res) => { - if (err) { - assert.ifError(err); - return next(err); - } - if (testAPI.API === 'RestoreObject') { - assert.strictEqual(res.statusCode, 403); - assert.strictEqual(res.code, errors.InvalidObjectState.message); - } else { - assert.strictEqual(res.statusCode, 200); - } - return next(); - }, objectName2), - ], - err => { - assert.ifError(err); - async.eachSeries(policyArns, (arn, eachCb) => iam.detachUserPolicy( - { UserName: userName, PolicyArn: arn }, - () => iam.deletePolicy({ PolicyArn: arn }, (err, res) => { - assert.ifError(err); - return eachCb(err, res); - }), - ), done); - }, - ); + try { + const res = await iam.send(new CreatePolicyCommand({ + PolicyName: allowPolicyName, + PolicyDocument: createPolicy(`s3:${testAPI.API}`), + })); + policyArns.push(res.Policy.Arn); + await iam.send(new AttachUserPolicyCommand({ UserName: userName, PolicyArn: res.Policy.Arn })); + const res2 = await iam.send(new CreatePolicyCommand({ + PolicyName: denyPolicyName, + PolicyDocument: createPolicy( + `s3:${testAPI.API}`, + false, + `arn:aws:s3:::${bucketName}${testAPI.resource}`, + ), + })); + policyArns.push(res2.Policy.Arn); + await iam.send(new AttachUserPolicyCommand({ UserName: userName, PolicyArn: res2.Policy.Arn })); + const res3 = await checkResponseAsync(testAPI.checkResponse, userCredentials, bucketName, objectName); + assert.strictEqual(res3.statusCode, 403); + assert.strictEqual(res3.code, errors.AccessDenied.message); + const res4 = await checkResponseAsync(testAPI.checkResponse, userCredentials, bucketName2, objectName2); + if (testAPI.API === 'RestoreObject') { + assert.strictEqual(res4.statusCode, 403); + assert.strictEqual(res4.code, errors.InvalidObjectState.message); + } else { + assert.strictEqual(res4.statusCode, 200); + } + } finally { + await Promise.all(policyArns.map(async arn => { + await iam.send(new DetachUserPolicyCommand({ UserName: userName, PolicyArn: arn })); + await iam.send(new DeletePolicyCommand({ PolicyArn: arn })); + })); + } }); }); }); diff --git a/tests/zenko_tests/node_tests/init_test.js b/tests/zenko_tests/node_tests/init_test.js index 32c74e7395..05ef2e3807 100644 --- a/tests/zenko_tests/node_tests/init_test.js +++ b/tests/zenko_tests/node_tests/init_test.js @@ -1,7 +1,14 @@ const assert = require('assert'); - -const uuidV4 = require('uuid/v4'); -const async = require('async'); +const { v4: uuidV4 } = require('uuid'); +const { + CreateBucketCommand, + DeleteBucketCommand, + DeleteObjectCommand, + GetObjectCommand, + ListBucketsCommand, + ListObjectsCommand, + PutObjectCommand, +} = require('@aws-sdk/client-s3'); const s3 = require('./s3SDK').scalityS3Client; @@ -10,39 +17,33 @@ const key = `object-key-${uuidV4()}`; const body = 'testbody'; describe('Test Configuration', () => { - it('should create a bucket and upload an object', done => { - async.series([ - next => s3.createBucket({ - Bucket: bucket, - CreateBucketConfiguration: { - LocationConstraint: 'us-east-1', - }, - }, next), - next => s3.listBuckets((err, res) => { - assert.ifError(err); - assert.strictEqual(res.Buckets.length, 1); - assert.strictEqual(res.Buckets[0].Name, bucket); - next(); - }), - next => s3.putObject({ - Bucket: bucket, Key: key, Body: body, - }, next), - next => s3.getObject( - { Bucket: bucket, Key: key }, - (err, res) => { - assert.ifError(err); - assert.strictEqual(body, res.Body.toString()); - next(); - }, - ), - next => s3.listObjects({ Bucket: bucket }, (err, res) => { - assert.ifError(err); - assert.strictEqual(res.Contents.length, 1); - assert.strictEqual(res.Contents[0].Key, key); - next(); - }), - next => s3.deleteObject({ Bucket: bucket, Key: key }, next), - next => s3.deleteBucket({ Bucket: bucket }, next), - ], done); + it('should create a bucket and upload an object', async () => { + await s3.send(new CreateBucketCommand({ + Bucket: bucket, + CreateBucketConfiguration: { + LocationConstraint: 'us-east-1', + }, + })); + const listBucketsRes = await s3.send(new ListBucketsCommand({})); + assert.strictEqual(listBucketsRes.Buckets.length, 1); + assert.strictEqual(listBucketsRes.Buckets[0].Name, bucket); + await s3.send(new PutObjectCommand({ + Bucket: bucket, Key: key, Body: body, + })); + const getObjectRes = await s3.send(new GetObjectCommand( + { Bucket: bucket, Key: key }, + )); + const chunks = []; + // eslint-disable-next-line no-restricted-syntax + for await (const chunk of getObjectRes.Body) { + chunks.push(chunk); + } + const resBody = Buffer.concat(chunks).toString('utf-8'); + assert.strictEqual(body, resBody); + const listObjectsRes = await s3.send(new ListObjectsCommand({ Bucket: bucket })); + assert.strictEqual(listObjectsRes.Contents.length, 1); + assert.strictEqual(listObjectsRes.Contents[0].Key, key); + await s3.send(new DeleteObjectCommand({ Bucket: bucket, Key: key })); + await s3.send(new DeleteBucketCommand({ Bucket: bucket })); }); }); diff --git a/tests/zenko_tests/node_tests/package.json b/tests/zenko_tests/node_tests/package.json index 4ce9d1fb92..b68e814128 100644 --- a/tests/zenko_tests/node_tests/package.json +++ b/tests/zenko_tests/node_tests/package.json @@ -11,11 +11,14 @@ "test" ], "dependencies": { + "@aws-sdk/client-iam": "^3.901.0", + "@aws-sdk/client-s3": "^3.901.0", + "@aws-sdk/client-sts": "^3.901.0", + "@aws-sdk/node-http-handler": "^3.374.0", "@azure/storage-blob": "^12.12.0", "@google-cloud/storage": "^7.12.1", "arsenal": "scality/Arsenal#8.1.38", "async": "2.1.2", - "aws-sdk": "^2.905.0", "aws4": "^1.11.0", "babel-eslint": "^10.1.0", "cypress": "^13.14.0", diff --git a/tests/zenko_tests/node_tests/s3SDK.js b/tests/zenko_tests/node_tests/s3SDK.js index c1983aeba1..090a22c6dc 100644 --- a/tests/zenko_tests/node_tests/s3SDK.js +++ b/tests/zenko_tests/node_tests/s3SDK.js @@ -1,106 +1,116 @@ -const { S3 } = require('aws-sdk'); -const { IAM } = require('aws-sdk'); +const { S3Client } = require('@aws-sdk/client-s3'); +const { IAMClient } = require('@aws-sdk/client-iam'); +const { NodeHttpHandler } = require('@aws-sdk/node-http-handler'); -const scalityS3Client = new S3({ - accessKeyId: process.env.ZENKO_ACCESS_KEY, - secretAccessKey: process.env.ZENKO_SECRET_KEY, - sessionToken: process.env.ZENKO_SESSION_TOKEN, - sslEnabled: false, +const scalityS3Client = new S3Client({ + credentials: { + accessKeyId: process.env.ZENKO_ACCESS_KEY, + secretAccessKey: process.env.ZENKO_SECRET_KEY, + sessionToken: process.env.ZENKO_SESSION_TOKEN, + }, + tls: false, endpoint: process.env.CLOUDSERVER_ENDPOINT, - apiVersions: { s3: '2006-03-01' }, - signatureCache: false, - signatureVersion: 'v4', region: 'us-east-1', - s3ForcePathStyle: true, + forcePathStyle: true, // disable node sdk retries and timeout to prevent InvalidPart // and SocketHangUp errors. If retries are allowed, sdk will send // another request after first request has already deleted parts, // causing InvalidPart. Meanwhile, if request takes too long to finish, // sdk will create SocketHangUp error before response. - maxRetries: 0, - httpOptions: { timeout: 0 }, + maxAttempts: 1, + requestHandler: new NodeHttpHandler({ + requestTimeout: 0, + connectionTimeout: 0, + }), }); -const scalityIAMClient = new IAM({ - accessKeyId: process.env.ZENKO_ACCESS_KEY, - secretAccessKey: process.env.ZENKO_SECRET_KEY, - sessionToken: process.env.ZENKO_SESSION_TOKEN, - sslEnabled: false, +const scalityIAMClient = new IAMClient({ + credentials: { + accessKeyId: process.env.ZENKO_ACCESS_KEY, + secretAccessKey: process.env.ZENKO_SECRET_KEY, + sessionToken: process.env.ZENKO_SESSION_TOKEN, + }, + tls: false, endpoint: process.env.VAULT_ENDPOINT, - apiVersions: { s3: '2006-03-01' }, - signatureCache: false, - signatureVersion: 'v4', region: 'us-east-1', // disable node sdk retries and timeout to prevent InvalidPart // and SocketHangUp errors. If retries are allowed, sdk will send // another request after first request has already deleted parts, // causing InvalidPart. Meanwhile, if request takes too long to finish, // sdk will create SocketHangUp error before response. - maxRetries: 0, - httpOptions: { timeout: 0 }, + maxAttempts: 1, + requestHandler: new NodeHttpHandler({ + requestTimeout: 0, + connectionTimeout: 0, + }), }); const verifyCerts = process.env.VERIFY_CERTIFICATES ? process.env.VERIFY_CERTIFICATES : true; -const awsS3Client = new S3({ - accessKeyId: process.env.AWS_ACCESS_KEY, - secretAccessKey: process.env.AWS_SECRET_KEY, - sslEnabled: verifyCerts, +const awsS3Client = new S3Client({ + credentials: { + accessKeyId: process.env.AWS_ACCESS_KEY, + secretAccessKey: process.env.AWS_SECRET_KEY, + }, + tls: verifyCerts, endpoint: process.env.AWS_ENDPOINT, - apiVersions: { s3: '2006-03-01' }, - signatureCache: false, - signatureVersion: 'v4', region: 'us-east-1', - s3ForcePathStyle: true, - maxRetries: 0, - httpOptions: { timeout: 0 }, + forcePathStyle: true, + maxAttempts: 1, + requestHandler: new NodeHttpHandler({ + requestTimeout: 0, + connectionTimeout: 0, + }), }); -const ringS3Client = new S3({ - accessKeyId: process.env.RING_S3C_ACCESS_KEY, - secretAccessKey: process.env.RING_S3C_SECRET_KEY, - sslEnabled: false, +const ringS3Client = new S3Client({ + credentials: { + accessKeyId: process.env.RING_S3C_ACCESS_KEY, + secretAccessKey: process.env.RING_S3C_SECRET_KEY, + }, + tls: false, endpoint: process.env.RING_S3C_ENDPOINT, - apiVersions: { s3: '2006-03-01' }, - signatreCache: false, - signatureVersion: 'v4', region: 'us-east-1', - s3ForcePathStyle: true, - maxRetries: 0, - httpOptions: { timeout: 0 }, + forcePathStyle: true, + maxAttempts: 1, + requestHandler: new NodeHttpHandler({ + requestTimeout: 0, + connectionTimeout: 0, + }), }); -const altScalityS3Client = new S3({ - accessKeyId: process.env.AWS_ACCESS_KEY, - secretAccessKey: process.env.AWS_SECRET_KEY, - sslEnabled: false, +const altScalityS3Client = new S3Client({ + credentials: { + accessKeyId: process.env.AWS_ACCESS_KEY, + secretAccessKey: process.env.AWS_SECRET_KEY, + }, + tls: false, endpoint: process.env.CLOUDSERVER_ENDPOINT, - apiVersions: { s3: '2006-03-01' }, - signatureCache: false, - signatureVersion: 'v4', region: 'us-east-1', - s3ForcePathStyle: true, - maxRetries: 0, - httpOptions: { timeout: 0 }, + forcePathStyle: true, + maxAttempts: 1, + requestHandler: new NodeHttpHandler({ + requestTimeout: 0, + connectionTimeout: 0, + }), }); function getS3Client(accessKey, secretKey, sessionToken) { const config = { - sslEnabled: false, + tls: false, endpoint: process.env.CLOUDSERVER_ENDPOINT, - apiVersions: { s3: '2006-03-01' }, - signatureCache: false, - signatureVersion: 'v4', region: 'us-east-1', - s3ForcePathStyle: true, - accessKeyId: accessKey, - secretAccessKey: secretKey, + forcePathStyle: true, + credentials: { + accessKeyId: accessKey, + secretAccessKey: secretKey, + }, }; if (sessionToken) { - config.sessionToken = sessionToken; + config.credentials.sessionToken = sessionToken; } - return new S3(config); + return new S3Client(config); } module.exports = { diff --git a/tests/zenko_tests/node_tests/smoke_tests/vault_admin_and_IAM_API_tests/adminApi.js b/tests/zenko_tests/node_tests/smoke_tests/vault_admin_and_IAM_API_tests/adminApi.js index 088a42bf10..85ddd37939 100644 --- a/tests/zenko_tests/node_tests/smoke_tests/vault_admin_and_IAM_API_tests/adminApi.js +++ b/tests/zenko_tests/node_tests/smoke_tests/vault_admin_and_IAM_API_tests/adminApi.js @@ -1,6 +1,4 @@ - const async = require('async'); - const VaultClient = require('../../VaultClient'); const clientAdmin = VaultClient.getAdminClient(); @@ -13,16 +11,21 @@ const accountInfo = { let iamClient = null; describe('Accounts: ', () => { - it('should be able create, generate credentials and delete an account', done => async.series([ - next => clientAdmin.createAccount(accountName, accountInfo, next), - next => clientAdmin.generateAccountAccessKey(accountName, (err, res) => { - if (err) { - return next(err); - } - - iamClient = VaultClient.getIamClient(res.id, res.value); - return next(null); - }), - next => VaultClient.deleteVaultAccount(clientAdmin, iamClient, accountName, next), - ], done)); + it('should be able create, generate credentials and delete an account', done => { + async.series([ + next => clientAdmin.createAccount(accountName, accountInfo, next), + next => clientAdmin.generateAccountAccessKey(accountName, (err, res) => { + if (err) { + return next(err); + } + iamClient = VaultClient.getIamClient(res.id, res.value); + return next(null); + }), + next => { + VaultClient.deleteVaultAccount(clientAdmin, iamClient, accountName) + .then(() => next()) + .catch(next); + }, + ], done); + }); }); diff --git a/tests/zenko_tests/node_tests/smoke_tests/vault_admin_and_IAM_API_tests/iamApi.js b/tests/zenko_tests/node_tests/smoke_tests/vault_admin_and_IAM_API_tests/iamApi.js index 2161ade8b8..876e515e34 100644 --- a/tests/zenko_tests/node_tests/smoke_tests/vault_admin_and_IAM_API_tests/iamApi.js +++ b/tests/zenko_tests/node_tests/smoke_tests/vault_admin_and_IAM_API_tests/iamApi.js @@ -1,5 +1,14 @@ const async = require('async'); - +const { + CreateUserCommand, + ListUsersCommand, + GetUserCommand, + UpdateUserCommand, + DeleteUserCommand, + CreateAccessKeyCommand, + ListAccessKeysCommand, + DeleteAccessKeyCommand, +} = require('@aws-sdk/client-iam'); const VaultClient = require('../../VaultClient'); const clientAdmin = VaultClient.getAdminClient(); @@ -27,15 +36,17 @@ describe('IAM users: ', () => { return done(); })); - afterEach(done => VaultClient.deleteVaultAccount(clientAdmin, iamAccountClient, accountName, done)); + afterEach(async () => { + await VaultClient.deleteVaultAccount(clientAdmin, iamAccountClient, accountName); + }); - it('should be able to perform CRUD operations on a user', done => async.series([ - next => iamAccountClient.createUser({ UserName: userName }, next), - next => iamAccountClient.listUsers({}, next), - next => iamAccountClient.getUser({ UserName: userName }, next), - next => iamAccountClient.updateUser({ UserName: userName, NewPath: randomPath }, next), - next => iamAccountClient.deleteUser({ UserName: userName }, next), - ], done)); + it('should be able to perform CRUD operations on a user', async () => { + await iamAccountClient.send(new CreateUserCommand({ UserName: userName })); + await iamAccountClient.send(new ListUsersCommand({})); + await iamAccountClient.send(new GetUserCommand({ UserName: userName })); + await iamAccountClient.send(new UpdateUserCommand({ UserName: userName, NewPath: randomPath })); + await iamAccountClient.send(new DeleteUserCommand({ UserName: userName })); + }); }); describe('IAM user - Access Keys: ', () => { @@ -50,26 +61,23 @@ describe('IAM user - Access Keys: ', () => { return done(err); } iamAccountClient = VaultClient.getIamClient(externalAccessKey, externalSecretKey); - return iamAccountClient.createUser({ UserName: userName }, done); + return iamAccountClient.send(new CreateUserCommand({ UserName: userName })) + .then(() => done()) + .catch(done); })); - afterEach(done => iamAccountClient.deleteUser( - { UserName: userName }, - () => VaultClient.deleteVaultAccount(clientAdmin, iamAccountClient, accountName, done), - )); + afterEach(async () => { + await iamAccountClient.send(new DeleteUserCommand({ UserName: userName })); + await VaultClient.deleteVaultAccount(clientAdmin, iamAccountClient, accountName); + }); - it('should be able to create, list and delete user access keys', done => async.series([ - next => iamAccountClient.createAccessKey({ UserName: userName }, (err, result) => { - if (err) { - return next(err); - } - keyPair = result.AccessKey; - return next(); - }), - next => iamAccountClient.listAccessKeys({ UserName: userName }, next), - next => iamAccountClient.deleteAccessKey({ + it('should be able to create, list and delete user access keys', async () => { + const res = await iamAccountClient.send(new CreateAccessKeyCommand({ UserName: userName })); + keyPair = res.AccessKey; + await iamAccountClient.send(new ListAccessKeysCommand({ UserName: userName })); + await iamAccountClient.send(new DeleteAccessKeyCommand({ UserName: userName, AccessKeyId: keyPair.AccessKeyId, - }, next), - ], done)); + })); + }); }); diff --git a/tests/zenko_tests/node_tests/stsSDK.js b/tests/zenko_tests/node_tests/stsSDK.js index c283df9643..e664d48bfe 100644 --- a/tests/zenko_tests/node_tests/stsSDK.js +++ b/tests/zenko_tests/node_tests/stsSDK.js @@ -1,21 +1,20 @@ -const { STS } = require('aws-sdk'); +const { STSClient } = require('@aws-sdk/client-sts'); function getSTSClient(accessKey, secretKey, sessionToken) { const config = { endpoint: process.env.VAULT_STS_ENDPOINT, - sslEnabled: false, region: 'us-east-1', - apiVersion: '2011-06-15', - signatureVersion: 'v4', - signatureCache: false, - accessKeyId: accessKey, - secretAccessKey: secretKey, - maxRetries: 0, + maxAttempts: 1, + tls: false, + credentials: { + accessKeyId: accessKey, + secretAccessKey: secretKey, + }, }; if (sessionToken) { - config.sessionToken = sessionToken; + config.credentials.sessionToken = sessionToken; } - return new STS(config); + return new STSClient(config); } module.exports = { diff --git a/tests/zenko_tests/node_tests/utils/testUtils.js b/tests/zenko_tests/node_tests/utils/testUtils.js index 430a43b83a..96b2fe58c2 100644 --- a/tests/zenko_tests/node_tests/utils/testUtils.js +++ b/tests/zenko_tests/node_tests/utils/testUtils.js @@ -1,41 +1,42 @@ -const assert = require('assert'); -const async = require('async'); +const { + AbortMultipartUploadCommand, + DeleteBucketCommand, + DeleteObjectCommand, + ListMultipartUploadsCommand, + ListObjectsCommand, +} = require('@aws-sdk/client-s3'); const { scalityS3Client } = require('../s3SDK'); const testUtils = {}; -testUtils.deleteAllObjects = (objList, bucketName, cb) => { - async.each( - objList.Contents, - (obj, next) => scalityS3Client.deleteObject({ Bucket: bucketName, Key: obj.Key }, next), - cb, - ); +testUtils.deleteAllObjects = async (objList, bucketName) => { + if (!objList.Contents || objList.Contents.length === 0) { + return; + } + await Promise.all(objList.Contents.map(obj => scalityS3Client.send( + new DeleteObjectCommand({ Bucket: bucketName, Key: obj.Key }), + ))); }; -testUtils.abortAllMpus = (mpuList, bucketName, cb) => { - async.each( - mpuList.Uploads, - (mpu, next) => scalityS3Client.abortMultipartUpload({ - Bucket: bucketName, - Key: mpu.Key, - UploadId: mpu.UploadId, - }, next), - cb, - ); +testUtils.abortAllMpus = async (mpuList, bucketName) => { + if (!mpuList.Uploads || mpuList.Uploads.length === 0) { + return; + } + await Promise.all(mpuList.Uploads.map(mpu => scalityS3Client.send(new AbortMultipartUploadCommand({ + Bucket: bucketName, + Key: mpu.Key, + UploadId: mpu.UploadId, + })))); }; -testUtils.emptyDeleteBucket = (bucketName, cb) => { - async.series({ - objList: next => scalityS3Client.listObjects({ Bucket: bucketName }, next), - mpuList: next => scalityS3Client.listMultipartUploads({ Bucket: bucketName }, next), - }, (err, results) => { - assert.ifError(err, `Error listing: ${err}`); - async.series([ - next => testUtils.deleteAllObjects(results.objList, bucketName, next), - next => testUtils.abortAllMpus(results.mpuList, bucketName, next), - next => scalityS3Client.deleteBucket({ Bucket: bucketName }, next), - ], err => cb(err)); - }); +testUtils.emptyDeleteBucket = async bucketName => { + const [objList, mpuList] = await Promise.all([ + scalityS3Client.send(new ListObjectsCommand({ Bucket: bucketName })), + scalityS3Client.send(new ListMultipartUploadsCommand({ Bucket: bucketName })), + ]); + await testUtils.deleteAllObjects(objList, bucketName); + await testUtils.abortAllMpus(mpuList, bucketName); + await scalityS3Client.send(new DeleteBucketCommand({ Bucket: bucketName })); }; module.exports = testUtils; diff --git a/tests/zenko_tests/node_tests/yarn.lock b/tests/zenko_tests/node_tests/yarn.lock index b9f0da1b4b..fa37f0089a 100644 --- a/tests/zenko_tests/node_tests/yarn.lock +++ b/tests/zenko_tests/node_tests/yarn.lock @@ -2,50 +2,719 @@ # yarn lockfile v1 -"@azure/abort-controller@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-1.1.0.tgz#788ee78457a55af8a1ad342acb182383d2119249" - integrity sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw== +"@aws-crypto/crc32@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz#cfcc22570949c98c6689cfcbd2d693d36cdae2e1" + integrity sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/crc32c@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-5.2.0.tgz#4e34aab7f419307821509a98b9b08e84e0c1917e" + integrity sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/sha1-browser@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-5.2.0.tgz#b0ee2d2821d3861f017e965ef3b4cb38e3b6a0f4" + integrity sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg== + dependencies: + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-crypto/sha256-browser@5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz#153895ef1dba6f9fce38af550e0ef58988eb649e" + integrity sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw== + dependencies: + "@aws-crypto/sha256-js" "^5.2.0" + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-crypto/sha256-js@5.2.0", "@aws-crypto/sha256-js@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz#c4fdb773fdbed9a664fc1a95724e206cf3860042" + integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/supports-web-crypto@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz#a1e399af29269be08e695109aa15da0a07b5b5fb" + integrity sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg== + dependencies: + tslib "^2.6.2" + +"@aws-crypto/util@5.2.0", "@aws-crypto/util@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-5.2.0.tgz#71284c9cffe7927ddadac793c14f14886d3876da" + integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-iam@^3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-iam/-/client-iam-3.901.0.tgz#38a6a9615863f7b8c78bd389be2f2e6b093f6df9" + integrity sha512-rQAMK+hAyOUHW5ZOk94UyHCDndklSW1Aq2OIZa9l9icwdQpDPZQSAWb+ki+GVk9eII8Hpwq+BCc18Fki1lvtLw== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-node" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + "@smithy/util-waiter" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/client-s3@^3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.901.0.tgz#42e9faf3b9943c56e86ade41a36950dfb231d095" + integrity sha512-wyKhZ51ur1tFuguZ6PgrUsot9KopqD0Tmxw8O8P/N3suQDxFPr0Yo7Y77ezDRDZQ95Ml3C0jlvx79HCo8VxdWA== + dependencies: + "@aws-crypto/sha1-browser" "5.2.0" + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-node" "3.901.0" + "@aws-sdk/middleware-bucket-endpoint" "3.901.0" + "@aws-sdk/middleware-expect-continue" "3.901.0" + "@aws-sdk/middleware-flexible-checksums" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-location-constraint" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-sdk-s3" "3.901.0" + "@aws-sdk/middleware-ssec" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/signature-v4-multi-region" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@aws-sdk/xml-builder" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/eventstream-serde-browser" "^4.2.0" + "@smithy/eventstream-serde-config-resolver" "^4.3.0" + "@smithy/eventstream-serde-node" "^4.2.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-blob-browser" "^4.2.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/hash-stream-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/md5-js" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + "@smithy/util-waiter" "^4.2.0" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.901.0.tgz#bad08910097ffa0458c2fe662dd4f8439c6e7eeb" + integrity sha512-sGyDjjkJ7ppaE+bAKL/Q5IvVCxtoyBIzN+7+hWTS/mUxWJ9EOq9238IqmVIIK6sYNIzEf9yhobfMARasPYVTNg== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/client-sts@^3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.901.0.tgz#19c245446862d78926a1a24c9ec61c49db771147" + integrity sha512-3NQm7RShoX+cqhFcECMunNh5B2emGM5Yfi/HhMi4ZawjwTYh28pnFmc7d30zj7KG0PYQp9cUXUi5eKlCwIsx+g== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-node" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/core@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.901.0.tgz#054341ff9ddede525a7bc3881872a97598fe757f" + integrity sha512-brKAc3y64tdhyuEf+OPIUln86bRTqkLgb9xkd6kUdIeA5+qmp/N6amItQz+RN4k4O3kqkCPYnAd3LonTKluobw== + dependencies: + "@aws-sdk/types" "3.901.0" + "@aws-sdk/xml-builder" "3.901.0" + "@smithy/core" "^3.14.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-env@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.901.0.tgz#d3192a091a94931b2fbc2ef82a278d8daea06f43" + integrity sha512-5hAdVl3tBuARh3zX5MLJ1P/d+Kr5kXtDU3xm1pxUEF4xt2XkEEpwiX5fbkNkz2rbh3BCt2gOHsAbh6b3M7n+DA== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-http@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.901.0.tgz#40bbaa9e62431741d8ea7ed31c8e10de75a9ecde" + integrity sha512-Ggr7+0M6QZEsrqRkK7iyJLf4LkIAacAxHz9c4dm9hnDdU7vqrlJm6g73IxMJXWN1bIV7IxfpzB11DsRrB/oNjQ== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-stream" "^4.4.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.901.0.tgz#83ada385ae94fed0a362f3be4689cf0a0284847d" + integrity sha512-zxadcDS0hNJgv8n4hFYJNOXyfjaNE1vvqIiF/JzZSQpSSYXzCd+WxXef5bQh+W3giDtRUmkvP5JLbamEFjZKyw== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/credential-provider-env" "3.901.0" + "@aws-sdk/credential-provider-http" "3.901.0" + "@aws-sdk/credential-provider-process" "3.901.0" + "@aws-sdk/credential-provider-sso" "3.901.0" + "@aws-sdk/credential-provider-web-identity" "3.901.0" + "@aws-sdk/nested-clients" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/credential-provider-imds" "^4.2.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.901.0.tgz#b48ddc78998e6a96ad14ecec22d81714c59ff6d1" + integrity sha512-dPuFzMF7L1s/lQyT3wDxqLe82PyTH+5o1jdfseTEln64LJMl0ZMWaKX/C1UFNDxaTd35Cgt1bDbjjAWHMiKSFQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.901.0" + "@aws-sdk/credential-provider-http" "3.901.0" + "@aws-sdk/credential-provider-ini" "3.901.0" + "@aws-sdk/credential-provider-process" "3.901.0" + "@aws-sdk/credential-provider-sso" "3.901.0" + "@aws-sdk/credential-provider-web-identity" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/credential-provider-imds" "^4.2.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.901.0.tgz#0e388fe22f357adb9c07b5f4a055eff6ba99dcff" + integrity sha512-/IWgmgM3Cl1wTdJA5HqKMAojxLkYchh5kDuphApxKhupLu6Pu0JBOHU8A5GGeFvOycyaVwosod6zDduINZxe+A== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.901.0.tgz#b60d8619edeb6b45c79a3f7cc0392a899de44886" + integrity sha512-SjmqZQHmqFSET7+6xcZgtH7yEyh5q53LN87GqwYlJZ6KJ5oNw11acUNEhUOL1xTSJEvaWqwTIkS2zqrzLcM9bw== + dependencies: + "@aws-sdk/client-sso" "3.901.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/token-providers" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-web-identity@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.901.0.tgz#512ad0d35e59bc669b41e18479e6b92d62a2d42a" + integrity sha512-NYjy/6NLxH9m01+pfpB4ql8QgAorJcu8tw69kzHwUd/ql6wUDTbC7HcXqtKlIwWjzjgj2BKL7j6SyFapgCuafA== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/nested-clients" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-bucket-endpoint@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.901.0.tgz#5b7f740cff9f91d21084b666be225876d72e634b" + integrity sha512-mPF3N6eZlVs9G8aBSzvtoxR1RZqMo1aIwR+X8BAZSkhfj55fVF2no4IfPXfdFO3I66N+zEQ8nKoB0uTATWrogQ== + dependencies: + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-arn-parser" "3.893.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-expect-continue@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.901.0.tgz#bd6c1fde979808418ce013c6f5f379e67ef2f4c4" + integrity sha512-bwq9nj6MH38hlJwOY9QXIDwa6lI48UsaZpaXbdD71BljEIRlxDzfB4JaYb+ZNNK7RIAdzsP/K05mJty6KJAQHw== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-flexible-checksums@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.901.0.tgz#373449d1609c9af810a824b395633ce6d1fc03f1" + integrity sha512-63lcKfggVUFyXhE4SsFXShCTCyh7ZHEqXLyYEL4DwX+VWtxutf9t9m3fF0TNUYDE8eEGWiRXhegj8l4FjuW+wA== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@aws-crypto/crc32c" "5.2.0" + "@aws-crypto/util" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/is-array-buffer" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-host-header@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.901.0.tgz#e6b3a6706601d93949ca25167ecec50c40e3d9de" + integrity sha512-yWX7GvRmqBtbNnUW7qbre3GvZmyYwU0WHefpZzDTYDoNgatuYq6LgUIQ+z5C04/kCRoFkAFrHag8a3BXqFzq5A== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-location-constraint@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.901.0.tgz#0a74fdd450cdec336f3ccdcb7b2fdbf4ce8b9e0b" + integrity sha512-MuCS5R2ngNoYifkVt05CTULvYVWX0dvRT0/Md4jE3a0u0yMygYy31C1zorwfE/SUgAQXyLmUx8ATmPp9PppImQ== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-logger@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.901.0.tgz#30562184bd0b6a90d30f2d6d58ef5054300f2652" + integrity sha512-UoHebjE7el/tfRo8/CQTj91oNUm+5Heus5/a4ECdmWaSCHCS/hXTsU3PTTHAY67oAQR8wBLFPfp3mMvXjB+L2A== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-recursion-detection@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.901.0.tgz#8492bd83aeee52f4e1b4194a81d044f46acf8c5b" + integrity sha512-Wd2t8qa/4OL0v/oDpCHHYkgsXJr8/ttCxrvCKAt0H1zZe2LlRhY9gpDVKqdertfHrHDj786fOvEQA28G1L75Dg== + dependencies: + "@aws-sdk/types" "3.901.0" + "@aws/lambda-invoke-store" "^0.0.1" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-sdk-s3@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.901.0.tgz#65ae0e84b020a1dd28278a1610cc4c8978edf853" + integrity sha512-prgjVC3fDT2VIlmQPiw/cLee8r4frTam9GILRUVQyDdNtshNwV3MiaSCLzzQJjKJlLgnBLNUHJCSmvUVtg+3iA== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-arn-parser" "3.893.0" + "@smithy/core" "^3.14.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-ssec@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.901.0.tgz#9a08f8a90a12c5d3eccabd884d8dfdd2f76473a4" + integrity sha512-YiLLJmA3RvjL38mFLuu8fhTTGWtp2qT24VqpucgfoyziYcTgIQkJJmKi90Xp6R6/3VcArqilyRgM1+x8i/em+Q== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-user-agent@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.901.0.tgz#ff6ff86115e1c580f369d33a25213e336896c548" + integrity sha512-Zby4F03fvD9xAgXGPywyk4bC1jCbnyubMEYChLYohD+x20ULQCf+AimF/Btn7YL+hBpzh1+RmqmvZcx+RgwgNQ== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@smithy/core" "^3.14.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/nested-clients@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.901.0.tgz#8fcd2c48a0132ef1623b243ec88b6aff3164e76a" + integrity sha512-feAAAMsVwctk2Tms40ONybvpfJPLCmSdI+G+OTrNpizkGLNl6ik2Ng2RzxY6UqOfN8abqKP/DOUj1qYDRDG8ag== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.901.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.901.0" + "@aws-sdk/util-user-agent-node" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.14.0" + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-retry" "^4.4.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.0" + "@smithy/util-defaults-mode-browser" "^4.2.0" + "@smithy/util-defaults-mode-node" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/node-http-handler@^3.374.0": + version "3.374.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.374.0.tgz#8cd58b4d9814713e26034c12eabc119c113a5bc4" + integrity sha512-v1Z6m0wwkf65/tKuhwrtPRqVoOtNkDTRn2MBMtxCwEw+8V8Q+YRFqVgGN+J1n53ktE0G5OYVBux/NHiAjJHReQ== dependencies: - tslib "^2.2.0" + "@smithy/node-http-handler" "^1.0.2" + tslib "^2.5.0" -"@azure/abort-controller@^2.0.0": +"@aws-sdk/region-config-resolver@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.901.0.tgz#6673eeda4ecc0747f93a084e876cab71431a97ca" + integrity sha512-7F0N888qVLHo4CSQOsnkZ4QAp8uHLKJ4v3u09Ly5k4AEStrSlFpckTPyUx6elwGL+fxGjNE2aakK8vEgzzCV0A== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + tslib "^2.6.2" + +"@aws-sdk/signature-v4-multi-region@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.901.0.tgz#773cd83ab38efe8bd5c1e563e5bd8b79391dfa12" + integrity sha512-2IWxbll/pRucp1WQkHi2W5E2SVPGBvk4Is923H7gpNksbVFws18ItjMM8ZpGm44cJEoy1zR5gjhLFklatpuoOw== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/token-providers@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.901.0.tgz#1f506f169cde6342c8bad75c068a719453ebcf54" + integrity sha512-pJEr1Ggbc/uVTDqp9IbNu9hdr0eQf3yZix3s4Nnyvmg4xmJSGAlbPC9LrNr5u3CDZoc8Z9CuLrvbP4MwYquNpQ== + dependencies: + "@aws-sdk/core" "3.901.0" + "@aws-sdk/nested-clients" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/types@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.901.0.tgz#b5a2e26c7b3fb3bbfe4c7fc24873646992a1c56c" + integrity sha512-FfEM25hLEs4LoXsLXQ/q6X6L4JmKkKkbVFpKD4mwfVHtRVQG6QxJiCPcrkcPISquiy6esbwK2eh64TWbiD60cg== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/types@^3.222.0": + version "3.862.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.862.0.tgz#2f5622e1aa3a5281d4f419f5d2c90f87dd5ff0cf" + integrity sha512-Bei+RL0cDxxV+lW2UezLbCYYNeJm6Nzee0TpW0FfyTRBhH9C1XQh4+x+IClriXvgBnRquTMMYsmJfvx8iyLKrg== + dependencies: + "@smithy/types" "^4.3.2" + tslib "^2.6.2" + +"@aws-sdk/util-arn-parser@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.893.0.tgz#fcc9b792744b9da597662891c2422dda83881d8d" + integrity sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA== + dependencies: + tslib "^2.6.2" + +"@aws-sdk/util-endpoints@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.901.0.tgz#be6296739d0f446b89a3f497c3a85afeb6cddd92" + integrity sha512-5nZP3hGA8FHEtKvEQf4Aww5QZOkjLW1Z+NixSd+0XKfHvA39Ah5sZboScjLx0C9kti/K3OGW1RCx5K9Zc3bZqg== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" + tslib "^2.6.2" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.873.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.873.0.tgz#cc10edef3b7aecf365943ec657116d6eb470d9cb" + integrity sha512-xcVhZF6svjM5Rj89T1WzkjQmrTF6dpR2UvIHPMTnSZoNe6CixejPZ6f0JJ2kAhO8H+dUHwNBlsUgOTIKiK/Syg== + dependencies: + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-browser@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.901.0.tgz#2c0e71e9019f054fb6a6061f99f55c13fb92830f" + integrity sha512-Ntb6V/WFI21Ed4PDgL/8NSfoZQQf9xzrwNgiwvnxgAl/KvAvRBgQtqj5gHsDX8Nj2YmJuVoHfH9BGjL9VQ4WNg== + dependencies: + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-node@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.901.0.tgz#3a0a59a93229016f011e7ee0533d36275e3063bd" + integrity sha512-l59KQP5TY7vPVUfEURc7P5BJKuNg1RSsAKBQW7LHLECXjLqDUbo2SMLrexLBEoArSt6E8QOrIN0C8z/0Xk0jYw== + dependencies: + "@aws-sdk/middleware-user-agent" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/xml-builder@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.901.0.tgz#3cd2e3929cefafd771c8bd790ec6965faa1be49d" + integrity sha512-pxFCkuAP7Q94wMTNPAwi6hEtNrp/BdFf+HOrIEeFQsk4EoOmpKY3I6S+u6A9Wg295J80Kh74LqDWM22ux3z6Aw== + dependencies: + "@smithy/types" "^4.6.0" + fast-xml-parser "5.2.5" + tslib "^2.6.2" + +"@aws/lambda-invoke-store@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz#92d792a7dda250dfcb902e13228f37a81be57c8f" + integrity sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw== + +"@azure/abort-controller@^2.0.0", "@azure/abort-controller@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-2.1.2.tgz#42fe0ccab23841d9905812c58f1082d27784566d" integrity sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA== dependencies: tslib "^2.6.2" -"@azure/core-auth@^1.4.0": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.7.2.tgz#558b7cb7dd12b00beec07ae5df5907d74df1ebd9" - integrity sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g== +"@azure/core-auth@^1.4.0", "@azure/core-auth@^1.8.0", "@azure/core-auth@^1.9.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.10.0.tgz#68dba7036080e1d9d5699c4e48214ab796fa73ad" + integrity sha512-88Djs5vBvGbHQHf5ZZcaoNHo6Y8BKZkt3cw2iuJIQzLEgH4Ox6Tm4hjFhbqOxyYsgIG/eJbFEHpxRIfEEWv5Ow== dependencies: "@azure/abort-controller" "^2.0.0" - "@azure/core-util" "^1.1.0" + "@azure/core-util" "^1.11.0" tslib "^2.6.2" -"@azure/core-client@^1.3.0", "@azure/core-client@^1.6.2": - version "1.9.2" - resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.9.2.tgz#6fc69cee2816883ab6c5cdd653ee4f2ff9774f74" - integrity sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w== +"@azure/core-client@^1.3.0", "@azure/core-client@^1.9.3": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.10.0.tgz#9f4ec9c89a63516927840ae620c60e811a0b54a3" + integrity sha512-O4aP3CLFNodg8eTHXECaH3B3CjicfzkxVtnrfLkOq0XNP7TIECGfHpK/C6vADZkWP75wzmdBnsIA8ksuJMk18g== dependencies: "@azure/abort-controller" "^2.0.0" "@azure/core-auth" "^1.4.0" - "@azure/core-rest-pipeline" "^1.9.1" + "@azure/core-rest-pipeline" "^1.20.0" "@azure/core-tracing" "^1.0.0" "@azure/core-util" "^1.6.1" "@azure/logger" "^1.0.0" tslib "^2.6.2" -"@azure/core-http-compat@^2.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@azure/core-http-compat/-/core-http-compat-2.1.2.tgz#d1585ada24ba750dc161d816169b33b35f762f0d" - integrity sha512-5MnV1yqzZwgNLLjlizsU3QqOeQChkIXw781Fwh1xdAqJR5AA32IUaq6xv1BICJvfbHoa+JYcaij2HFkhLbNTJQ== +"@azure/core-http-compat@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@azure/core-http-compat/-/core-http-compat-2.3.0.tgz#e9d396299211e742308827674082c13bd638c6bf" + integrity sha512-qLQujmUypBBG0gxHd0j6/Jdmul6ttl24c8WGiLXIk7IHXdBlfoBqW27hyz3Xn6xbfdyVSarl1Ttbk0AwnZBYCw== dependencies: "@azure/abort-controller" "^2.0.0" "@azure/core-client" "^1.3.0" - "@azure/core-rest-pipeline" "^1.3.0" + "@azure/core-rest-pipeline" "^1.20.0" "@azure/core-lro@^2.2.0": version "2.7.2" @@ -57,75 +726,92 @@ "@azure/logger" "^1.0.0" tslib "^2.6.2" -"@azure/core-paging@^1.1.1": +"@azure/core-paging@^1.6.2": version "1.6.2" resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.6.2.tgz#40d3860dc2df7f291d66350b2cfd9171526433e7" integrity sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA== dependencies: tslib "^2.6.2" -"@azure/core-rest-pipeline@^1.10.1", "@azure/core-rest-pipeline@^1.3.0", "@azure/core-rest-pipeline@^1.9.1": - version "1.16.3" - resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz#bde3bc3ebad7f885ddd9de6af5e5a8fc254b287e" - integrity sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w== +"@azure/core-rest-pipeline@^1.19.1", "@azure/core-rest-pipeline@^1.20.0": + version "1.22.0" + resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.22.0.tgz#76e44a75093a2f477fc54b84f46049dc2ce65800" + integrity sha512-OKHmb3/Kpm06HypvB3g6Q3zJuvyXcpxDpCS1PnU8OV6AJgSFaee/covXBcPbWc6XDDxtEPlbi3EMQ6nUiPaQtw== dependencies: "@azure/abort-controller" "^2.0.0" - "@azure/core-auth" "^1.4.0" + "@azure/core-auth" "^1.8.0" "@azure/core-tracing" "^1.0.1" - "@azure/core-util" "^1.9.0" + "@azure/core-util" "^1.11.0" "@azure/logger" "^1.0.0" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.0" + "@typespec/ts-http-runtime" "^0.3.0" tslib "^2.6.2" -"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1", "@azure/core-tracing@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.1.2.tgz#065dab4e093fb61899988a1cdbc827d9ad90b4ee" - integrity sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA== +"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1", "@azure/core-tracing@^1.2.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.3.0.tgz#341153f5b2927539eb898577651ee48ce98dda25" + integrity sha512-+XvmZLLWPe67WXNZo9Oc9CrPj/Tm8QnHR92fFAFdnbzwNdCH1h+7UdpaQgRSBsMY+oW1kHXNUZQLdZ1gHX3ROw== dependencies: tslib "^2.6.2" -"@azure/core-util@^1.1.0", "@azure/core-util@^1.2.0", "@azure/core-util@^1.6.1", "@azure/core-util@^1.9.0": - version "1.9.2" - resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.9.2.tgz#1dc37dc5b0dae34c578be62cf98905ba7c0cafe7" - integrity sha512-l1Qrqhi4x1aekkV+OlcqsJa4AnAkj5p0JV8omgwjaV9OAbP41lvrMvs+CptfetKkeEaGRGSzby7sjPZEX7+kkQ== +"@azure/core-util@^1.11.0", "@azure/core-util@^1.2.0", "@azure/core-util@^1.6.1": + version "1.13.0" + resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.13.0.tgz#fc2834fc51e1e2bb74b70c284b40f824d867422a" + integrity sha512-o0psW8QWQ58fq3i24Q1K2XfS/jYTxr7O1HRcyUE9bV9NttLU+kYOH82Ixj8DGlMTOWgxm1Sss2QAfKK5UkSPxw== dependencies: "@azure/abort-controller" "^2.0.0" + "@typespec/ts-http-runtime" "^0.3.0" tslib "^2.6.2" -"@azure/core-xml@^1.3.2": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@azure/core-xml/-/core-xml-1.4.3.tgz#a74f37a0e584fee7e9adae19f51016d4b59e9ca2" - integrity sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA== +"@azure/core-xml@^1.4.5": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@azure/core-xml/-/core-xml-1.5.0.tgz#cd82d511d7bcc548d206f5627c39724c5d5a4434" + integrity sha512-D/sdlJBMJfx7gqoj66PKVmhDDaU6TKA49ptcolxdas29X7AfvLTmfAGLjAcIMBK7UZ2o4lygHIqVckOlQU3xWw== dependencies: - fast-xml-parser "^4.3.2" - tslib "^2.6.2" + fast-xml-parser "^5.0.7" + tslib "^2.8.1" -"@azure/logger@^1.0.0": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.1.4.tgz#223cbf2b424dfa66478ce9a4f575f59c6f379768" - integrity sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ== +"@azure/logger@^1.0.0", "@azure/logger@^1.1.4": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.3.0.tgz#5501cf85d4f52630602a8cc75df76568c969a827" + integrity sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA== dependencies: + "@typespec/ts-http-runtime" "^0.3.0" tslib "^2.6.2" "@azure/storage-blob@^12.12.0": - version "12.24.0" - resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.24.0.tgz#d4ae1e29574b4a19d90eaf082cfde95f996d3f9b" - integrity sha512-l8cmWM4C7RoNCBOImoFMxhTXe1Lr+8uQ/IgnhRNMpfoA9bAFWoLG4XrWm6O5rKXortreVQuD+fc1hbzWklOZbw== - dependencies: - "@azure/abort-controller" "^1.0.0" - "@azure/core-auth" "^1.4.0" - "@azure/core-client" "^1.6.2" - "@azure/core-http-compat" "^2.0.0" + version "12.28.0" + resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.28.0.tgz#a64ce49f0fe9fe08f1f7c1b36164033678d38cf6" + integrity sha512-VhQHITXXO03SURhDiGuHhvc/k/sD2WvJUS7hqhiVNbErVCuQoLtWql7r97fleBlIRKHJaa9R7DpBjfE0pfLYcA== + dependencies: + "@azure/abort-controller" "^2.1.2" + "@azure/core-auth" "^1.9.0" + "@azure/core-client" "^1.9.3" + "@azure/core-http-compat" "^2.2.0" "@azure/core-lro" "^2.2.0" - "@azure/core-paging" "^1.1.1" - "@azure/core-rest-pipeline" "^1.10.1" - "@azure/core-tracing" "^1.1.2" - "@azure/core-util" "^1.6.1" - "@azure/core-xml" "^1.3.2" - "@azure/logger" "^1.0.0" + "@azure/core-paging" "^1.6.2" + "@azure/core-rest-pipeline" "^1.19.1" + "@azure/core-tracing" "^1.2.0" + "@azure/core-util" "^1.11.0" + "@azure/core-xml" "^1.4.5" + "@azure/logger" "^1.1.4" + "@azure/storage-common" "^12.0.0-beta.2" events "^3.0.0" - tslib "^2.2.0" + tslib "^2.8.1" + +"@azure/storage-common@^12.0.0-beta.2": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@azure/storage-common/-/storage-common-12.0.0.tgz#a652d7daeb252b7827362b4e818f52fee15a1264" + integrity sha512-QyEWXgi4kdRo0wc1rHum9/KnaWZKCdQGZK1BjU4fFL6Jtedp7KLbQihgTTVxldFy1z1ZPtuDPx8mQ5l3huPPbA== + dependencies: + "@azure/abort-controller" "^2.1.2" + "@azure/core-auth" "^1.9.0" + "@azure/core-http-compat" "^2.2.0" + "@azure/core-rest-pipeline" "^1.19.1" + "@azure/core-tracing" "^1.2.0" + "@azure/core-util" "^1.11.0" + "@azure/logger" "^1.1.4" + events "^3.3.0" + tslib "^2.8.1" "@babel/code-frame@7.12.11": version "7.12.11" @@ -134,91 +820,97 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" - integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== dependencies: - "@babel/highlight" "^7.24.7" - picocolors "^1.0.0" - -"@babel/generator@^7.25.4": - version "7.25.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.5.tgz#b31cf05b3fe8c32d206b6dad03bb0aacbde73450" - integrity sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w== - dependencies: - "@babel/types" "^7.25.4" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" - -"@babel/helper-string-parser@^7.24.8": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" - integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== - -"@babel/helper-validator-identifier@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" - integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== - -"@babel/highlight@^7.10.4", "@babel/highlight@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" - integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== - dependencies: - "@babel/helper-validator-identifier" "^7.24.7" + "@babel/helper-validator-identifier" "^7.27.1" + js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/generator@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.3.tgz#9626c1741c650cbac39121694a0f2d7451b8ef3e" + integrity sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw== + dependencies: + "@babel/parser" "^7.28.3" + "@babel/types" "^7.28.2" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + +"@babel/helper-globals@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" + integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.25.9", "@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + +"@babel/highlight@^7.10.4": + version "7.25.9" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.25.9.tgz#8141ce68fc73757946f983b343f1231f4691acc6" + integrity sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw== + dependencies: + "@babel/helper-validator-identifier" "^7.25.9" chalk "^2.4.2" js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.25.0", "@babel/parser@^7.25.4", "@babel/parser@^7.7.0": - version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.4.tgz#af4f2df7d02440286b7de57b1c21acfb2a6f257a" - integrity sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA== +"@babel/parser@^7.27.2", "@babel/parser@^7.28.3", "@babel/parser@^7.7.0": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.3.tgz#d2d25b814621bca5fe9d172bc93792547e7a2a71" + integrity sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA== dependencies: - "@babel/types" "^7.25.4" + "@babel/types" "^7.28.2" -"@babel/template@^7.25.0": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" - integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== +"@babel/template@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/parser" "^7.25.0" - "@babel/types" "^7.25.0" + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" "@babel/traverse@^7.7.0": - version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.4.tgz#648678046990f2957407e3086e97044f13c3e18e" - integrity sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg== - dependencies: - "@babel/code-frame" "^7.24.7" - "@babel/generator" "^7.25.4" - "@babel/parser" "^7.25.4" - "@babel/template" "^7.25.0" - "@babel/types" "^7.25.4" + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.3.tgz#6911a10795d2cce43ec6a28cffc440cca2593434" + integrity sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.3" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.3" + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.2" debug "^4.3.1" - globals "^11.1.0" -"@babel/types@^7.25.0", "@babel/types@^7.25.4", "@babel/types@^7.7.0": - version "7.25.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.4.tgz#6bcb46c72fdf1012a209d016c07f769e10adcb5f" - integrity sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ== +"@babel/types@^7.27.1", "@babel/types@^7.28.2", "@babel/types@^7.7.0": + version "7.28.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.2.tgz#da9db0856a9a88e0a13b019881d7513588cf712b" + integrity sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ== dependencies: - "@babel/helper-string-parser" "^7.24.8" - "@babel/helper-validator-identifier" "^7.24.7" - to-fast-properties "^2.0.0" + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" "@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== -"@cypress/request@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.1.tgz#72d7d5425236a2413bd3d8bb66d02d9dc3168960" - integrity sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ== +"@cypress/request@^3.0.6": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.9.tgz#8ed6e08fea0c62998b5552301023af7268f11625" + integrity sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -226,16 +918,16 @@ combined-stream "~1.0.6" extend "~3.0.2" forever-agent "~0.6.1" - form-data "~2.3.2" - http-signature "~1.3.6" + form-data "~4.0.4" + http-signature "~1.4.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" mime-types "~2.1.19" performance-now "^2.1.0" - qs "6.10.4" + qs "6.14.0" safe-buffer "^5.1.2" - tough-cookie "^4.1.3" + tough-cookie "^5.0.0" tunnel-agent "^0.6.0" uuid "^8.3.2" @@ -280,19 +972,19 @@ resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-4.0.0.tgz#d600e0433daf51b88c1fa95ac7f02e38e80a07be" integrity sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA== -"@google-cloud/promisify@^4.0.0": +"@google-cloud/promisify@<4.1.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-4.0.0.tgz#a906e533ebdd0f754dca2509933334ce58b8c8b1" integrity sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g== "@google-cloud/storage@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-7.12.1.tgz#7963bdc3b5266e4698047f6158a043d53231ec9c" - integrity sha512-Z3ZzOnF3YKLuvpkvF+TjQ6lztxcAyTILp+FjKonmVpEwPa9vFvxpZjubLR4sB6bf19i/8HL2AXRjA0YFgHFRmQ== + version "7.17.0" + resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-7.17.0.tgz#1d238f54a0932f36c2364ec9babded218edd7d53" + integrity sha512-5m9GoZqKh52a1UqkxDBu/+WVFDALNtHg5up5gNmNbXQWBcV813tzJKsyDtKjOPrlR1em1TxtD7NSPCrObH7koQ== dependencies: "@google-cloud/paginator" "^5.0.0" "@google-cloud/projectify" "^4.0.0" - "@google-cloud/promisify" "^4.0.0" + "@google-cloud/promisify" "<4.1.0" abort-controller "^3.0.0" async-retry "^1.3.3" duplexify "^4.1.3" @@ -352,13 +1044,36 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== -"@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== +"@ioredis/commands@^1.0.2": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.3.0.tgz#4dc3ae9bfa7146b63baf27672a61db0ea86e35e5" + integrity sha512-M/T6Zewn7sDaBQEqIZ8Rb+i9y8qfGmq+5SDFSf9sA2lUZTmdDLVdOiQaeDp+Q4wElZ9HG1GAX5KhDaidp6LQsQ== + +"@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: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" + minipass "^7.0.4" + +"@jridgewell/gen-mapping@^0.3.12": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.1.0": @@ -366,24 +1081,30 @@ 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/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== -"@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== +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28": + version "0.3.30" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz#4a76c4daeee5df09f5d3940e087442fb36ce2b99" + integrity sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@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/fs@^1.0.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" @@ -392,6 +1113,13 @@ "@gar/promisify" "^1.0.1" 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/move-file@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" @@ -400,6 +1128,573 @@ mkdirp "^1.0.4" rimraf "^3.0.2" +"@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== + +"@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== + +"@smithy/abort-controller@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-1.1.0.tgz#2da0d73c504b93ca8bb83bdc8d6b8208d73f418b" + integrity sha512-5imgGUlZL4dW4YWdMYAKLmal9ny/tlenM81QZY7xYyb76z9Z/QOg7oM5Ak9HQl8QfFTlGVWwcMXl+54jroRgEQ== + dependencies: + "@smithy/types" "^1.2.0" + tslib "^2.5.0" + +"@smithy/abort-controller@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.0.tgz#ced549ad5e74232bdcb3eec990b02b1c6d81003d" + integrity sha512-PLUYa+SUKOEZtXFURBu/CNxlsxfaFGxSBPcStL13KpVeVWIfdezWyDqkz7iDLmwnxojXD0s5KzuB5HGHvt4Aeg== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/chunked-blob-reader-native@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.0.tgz#3115cfb230f20da21d1011ee2b47165f4c2773e3" + integrity sha512-HNbGWdyTfSM1nfrZKQjYTvD8k086+M8s1EYkBUdGC++lhxegUp2HgNf5RIt6oOGVvsC26hBCW/11tv8KbwLn/Q== + dependencies: + "@smithy/util-base64" "^4.2.0" + tslib "^2.6.2" + +"@smithy/chunked-blob-reader@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.0.tgz#776fec5eaa5ab5fa70d0d0174b7402420b24559c" + integrity sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA== + dependencies: + tslib "^2.6.2" + +"@smithy/config-resolver@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.3.0.tgz#a8bb72a21ff99ac91183a62fcae94f200762c256" + integrity sha512-9oH+n8AVNiLPK/iK/agOsoWfrKZ3FGP3502tkksd6SRsKMYiu7AFX0YXo6YBADdsAj7C+G/aLKdsafIJHxuCkQ== + dependencies: + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + tslib "^2.6.2" + +"@smithy/core@^3.14.0": + version "3.14.0" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.14.0.tgz#22bdb346b171c76b629c4f59dc496c27e10f1c82" + integrity sha512-XJ4z5FxvY/t0Dibms/+gLJrI5niRoY0BCmE02fwmPcRYFPI4KI876xaE79YGWIKnEslMbuQPsIEsoU/DXa0DoA== + dependencies: + "@smithy/middleware-serde" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-stream" "^4.4.0" + "@smithy/util-utf8" "^4.2.0" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + +"@smithy/credential-provider-imds@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.0.tgz#21855ceb157afeea60d74c61fe7316e90d8ec545" + integrity sha512-SOhFVvFH4D5HJZytb0bLKxCrSnwcqPiNlrw+S4ZXjMnsC+o9JcUQzbZOEQcA8yv9wJFNhfsUiIUKiEnYL68Big== + dependencies: + "@smithy/node-config-provider" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + tslib "^2.6.2" + +"@smithy/eventstream-codec@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.0.tgz#ea8514363278d062b574859d663f131238a6920c" + integrity sha512-XE7CtKfyxYiNZ5vz7OvyTf1osrdbJfmUy+rbh+NLQmZumMGvY0mT0Cq1qKSfhrvLtRYzMsOBuRpi10dyI0EBPg== + dependencies: + "@aws-crypto/crc32" "5.2.0" + "@smithy/types" "^4.6.0" + "@smithy/util-hex-encoding" "^4.2.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.0.tgz#d97c4a3f185459097c00e05a23007ffa074f972d" + integrity sha512-U53p7fcrk27k8irLhOwUu+UYnBqsXNLKl1XevOpsxK3y1Lndk8R7CSiZV6FN3fYFuTPuJy5pP6qa/bjDzEkRvA== + dependencies: + "@smithy/eventstream-serde-universal" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-config-resolver@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.0.tgz#5ee07ed6808c3cac2e4b7ef5059fd9be6aff4a4a" + integrity sha512-uwx54t8W2Yo9Jr3nVF5cNnkAAnMCJ8Wrm+wDlQY6rY/IrEgZS3OqagtCu/9ceIcZFQ1zVW/zbN9dxb5esuojfA== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.0.tgz#397640826f72082e4d33e02525603dcf1baf756f" + integrity sha512-yjM2L6QGmWgJjVu/IgYd6hMzwm/tf4VFX0lm8/SvGbGBwc+aFl3hOzvO/e9IJ2XI+22Tx1Zg3vRpFRs04SWFcg== + dependencies: + "@smithy/eventstream-serde-universal" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-universal@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.0.tgz#e556f85638c7037cbd17f72a1cbd2dcdd3185f7d" + integrity sha512-C3jxz6GeRzNyGKhU7oV656ZbuHY93mrfkT12rmjDdZch142ykjn8do+VOkeRNjSGKw01p4g+hdalPYPhmMwk1g== + dependencies: + "@smithy/eventstream-codec" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/fetch-http-handler@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.0.tgz#1c5205642a9295f44441d8763e7c3a51a747fc95" + integrity sha512-BG3KSmsx9A//KyIfw+sqNmWFr1YBUr+TwpxFT7yPqAk0yyDh7oSNgzfNH7pS6OC099EGx2ltOULvumCFe8bcgw== + dependencies: + "@smithy/protocol-http" "^5.3.0" + "@smithy/querystring-builder" "^4.2.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + tslib "^2.6.2" + +"@smithy/hash-blob-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.0.tgz#b7bd8c5b379ebfae5b8ce10312da1351d7ff5ff4" + integrity sha512-MWmrRTPqVKpN8NmxmJPTeQuhewTt8Chf+waB38LXHZoA02+BeWYVQ9ViAwHjug8m7lQb1UWuGqp3JoGDOWvvuA== + dependencies: + "@smithy/chunked-blob-reader" "^5.2.0" + "@smithy/chunked-blob-reader-native" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/hash-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.0.tgz#d2de380cb88a3665d5e3f5bbe901cfb46867c74f" + integrity sha512-ugv93gOhZGysTctZh9qdgng8B+xO0cj+zN0qAZ+Sgh7qTQGPOJbMdIuyP89KNfUyfAqFSNh5tMvC+h2uCpmTtA== + dependencies: + "@smithy/types" "^4.6.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/hash-stream-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.0.tgz#7d3067d566e32167ebcb80f22260cc57de036ec9" + integrity sha512-8dELAuGv+UEjtzrpMeNBZc1sJhO8GxFVV/Yh21wE35oX4lOE697+lsMHBoUIFAUuYkTMIeu0EuJSEsH7/8Y+UQ== + dependencies: + "@smithy/types" "^4.6.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/invalid-dependency@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.0.tgz#749c741c1b01bcdb12c0ec24701db655102f6ea7" + integrity sha512-ZmK5X5fUPAbtvRcUPtk28aqIClVhbfcmfoS4M7UQBTnDdrNxhsrxYVv0ZEl5NaPSyExsPWqL4GsPlRvtlwg+2A== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/is-array-buffer@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" + integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== + dependencies: + tslib "^2.6.2" + +"@smithy/is-array-buffer@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz#b0f874c43887d3ad44f472a0f3f961bcce0550c2" + integrity sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ== + dependencies: + tslib "^2.6.2" + +"@smithy/md5-js@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.0.tgz#46bb7b122d9de1aa306e767ae64230fc6c8d67c2" + integrity sha512-LFEPniXGKRQArFmDQ3MgArXlClFJMsXDteuQQY8WG1/zzv6gVSo96+qpkuu1oJp4MZsKrwchY0cuAoPKzEbaNA== + dependencies: + "@smithy/types" "^4.6.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/middleware-content-length@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.0.tgz#bf1bea6e7c0e35e8c6d4825880e4cfa903cbd501" + integrity sha512-6ZAnwrXFecrA4kIDOcz6aLBhU5ih2is2NdcZtobBDSdSHtE9a+MThB5uqyK4XXesdOCvOcbCm2IGB95birTSOQ== + dependencies: + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/middleware-endpoint@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.0.tgz#407ce4051be2f1855259a02900a957e9b347fdfd" + integrity sha512-jFVjuQeV8TkxaRlcCNg0GFVgg98tscsmIrIwRFeC74TIUyLE3jmY9xgc1WXrPQYRjQNK3aRoaIk6fhFRGOIoGw== + dependencies: + "@smithy/core" "^3.14.0" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + tslib "^2.6.2" + +"@smithy/middleware-retry@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.0.tgz#7f4b313a808aa8ac1a5922aff355e12c5a270de1" + integrity sha512-yaVBR0vQnOnzex45zZ8ZrPzUnX73eUC8kVFaAAbn04+6V7lPtxn56vZEBBAhgS/eqD6Zm86o6sJs6FuQVoX5qg== + dependencies: + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/service-error-classification" "^4.2.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/uuid" "^1.1.0" + tslib "^2.6.2" + +"@smithy/middleware-serde@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.0.tgz#1b7fcaa699d1c48f2c3cbbce325aa756895ddf0f" + integrity sha512-rpTQ7D65/EAbC6VydXlxjvbifTf4IH+sADKg6JmAvhkflJO2NvDeyU9qsWUNBelJiQFcXKejUHWRSdmpJmEmiw== + dependencies: + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/middleware-stack@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.0.tgz#fa2f7dcdb0f3a1649d1d2ec3dc4841d9c2f70e67" + integrity sha512-G5CJ//eqRd9OARrQu9MK1H8fNm2sMtqFh6j8/rPozhEL+Dokpvi1Og+aCixTuwDAGZUkJPk6hJT5jchbk/WCyg== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/node-config-provider@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.0.tgz#619ba522d683081d06f112a581b9009988cb38eb" + integrity sha512-5QgHNuWdT9j9GwMPPJCKxy2KDxZ3E5l4M3/5TatSZrqYVoEiqQrDfAq8I6KWZw7RZOHtVtCzEPdYz7rHZixwcA== + dependencies: + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/node-http-handler@^1.0.2": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-1.1.0.tgz#887cee930b520e08043c9f41e463f8d8f5dae127" + integrity sha512-d3kRriEgaIiGXLziAM8bjnaLn1fthCJeTLZIwEIpzQqe6yPX0a+yQoLCTyjb2fvdLwkMoG4p7THIIB5cj5lkbg== + dependencies: + "@smithy/abort-controller" "^1.1.0" + "@smithy/protocol-http" "^1.2.0" + "@smithy/querystring-builder" "^1.1.0" + "@smithy/types" "^1.2.0" + tslib "^2.5.0" + +"@smithy/node-http-handler@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.3.0.tgz#783d3dbdf5b90b9e0ca1e56070a3be38b3836b7d" + integrity sha512-RHZ/uWCmSNZ8cneoWEVsVwMZBKy/8123hEpm57vgGXA3Irf/Ja4v9TVshHK2ML5/IqzAZn0WhINHOP9xl+Qy6Q== + dependencies: + "@smithy/abort-controller" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/querystring-builder" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/property-provider@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.0.tgz#431c573326f572ae9063d58c21690f28251f9dce" + integrity sha512-rV6wFre0BU6n/tx2Ztn5LdvEdNZ2FasQbPQmDOPfV9QQyDmsCkOAB0osQjotRCQg+nSKFmINhyda0D3AnjSBJw== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/protocol-http@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-1.2.0.tgz#a554e4dabb14508f0bc2cdef9c3710e2b294be04" + integrity sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q== + dependencies: + "@smithy/types" "^1.2.0" + tslib "^2.5.0" + +"@smithy/protocol-http@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.0.tgz#2a2834386b706b959d20e7841099b1780ae62ace" + integrity sha512-6POSYlmDnsLKb7r1D3SVm7RaYW6H1vcNcTWGWrF7s9+2noNYvUsm7E4tz5ZQ9HXPmKn6Hb67pBDRIjrT4w/d7Q== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/querystring-builder@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-1.1.0.tgz#de6306104640ade34e59be33949db6cc64aa9d7f" + integrity sha512-gDEi4LxIGLbdfjrjiY45QNbuDmpkwh9DX4xzrR2AzjjXpxwGyfSpbJaYhXARw9p17VH0h9UewnNQXNwaQyYMDA== + dependencies: + "@smithy/types" "^1.2.0" + "@smithy/util-uri-escape" "^1.1.0" + tslib "^2.5.0" + +"@smithy/querystring-builder@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.0.tgz#a6191d2eccc14ffce821a559ec26c94c636a39c6" + integrity sha512-Q4oFD0ZmI8yJkiPPeGUITZj++4HHYCW3pYBYfIobUCkYpI6mbkzmG1MAQQ3lJYYWj3iNqfzOenUZu+jqdPQ16A== + dependencies: + "@smithy/types" "^4.6.0" + "@smithy/util-uri-escape" "^4.2.0" + tslib "^2.6.2" + +"@smithy/querystring-parser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.0.tgz#4c4ebe257e951dff91f9db65f9558752641185e8" + integrity sha512-BjATSNNyvVbQxOOlKse0b0pSezTWGMvA87SvoFoFlkRsKXVsN3bEtjCxvsNXJXfnAzlWFPaT9DmhWy1vn0sNEA== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/service-error-classification@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.0.tgz#d98d9b351d05c21b83c5a012194480a8c2eae5b7" + integrity sha512-Ylv1ttUeKatpR0wEOMnHf1hXMktPUMObDClSWl2TpCVT4DwtJhCeighLzSLbgH3jr5pBNM0LDXT5yYxUvZ9WpA== + dependencies: + "@smithy/types" "^4.6.0" + +"@smithy/shared-ini-file-loader@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.3.0.tgz#241a493ea7fa7faeaefccf6a5fa81af521d91cfa" + integrity sha512-VCUPPtNs+rKWlqqntX0CbVvWyjhmX30JCtzO+s5dlzzxrvSfRh5SY0yxnkirvc1c80vdKQttahL71a9EsdolSQ== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/signature-v4@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.0.tgz#05d459cc4ec8f9d7300bb6b488cccedf2b73b7fb" + integrity sha512-MKNyhXEs99xAZaFhm88h+3/V+tCRDQ+PrDzRqL0xdDpq4gjxcMmf5rBA3YXgqZqMZ/XwemZEurCBQMfxZOWq/g== + dependencies: + "@smithy/is-array-buffer" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-uri-escape" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/smithy-client@^4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.7.0.tgz#1b0b74a3f58bdf7a77024473b6fe6ec1aa9556c2" + integrity sha512-3BDx/aCCPf+kkinYf5QQhdQ9UAGihgOVqI3QO5xQfSaIWvUE4KYLtiGRWsNe1SR7ijXC0QEPqofVp5Sb0zC8xQ== + dependencies: + "@smithy/core" "^3.14.0" + "@smithy/middleware-endpoint" "^4.3.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-stream" "^4.4.0" + tslib "^2.6.2" + +"@smithy/types@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.2.0.tgz#9dc65767b0ee3d6681704fcc67665d6fc9b6a34e" + integrity sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA== + dependencies: + tslib "^2.5.0" + +"@smithy/types@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.3.2.tgz#66ac513e7057637de262e41ac15f70cf464c018a" + integrity sha512-QO4zghLxiQ5W9UZmX2Lo0nta2PuE1sSrXUYDoaB6HMR762C0P7v/HEPHf6ZdglTVssJG1bsrSBxdc3quvDSihw== + dependencies: + tslib "^2.6.2" + +"@smithy/types@^4.6.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.6.0.tgz#8ea8b15fedee3cdc555e8f947ce35fb1e973bb7a" + integrity sha512-4lI9C8NzRPOv66FaY1LL1O/0v0aLVrq/mXP/keUa9mJOApEeae43LsLd2kZRUJw91gxOQfLIrV3OvqPgWz1YsA== + dependencies: + tslib "^2.6.2" + +"@smithy/url-parser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.0.tgz#b6d6e739233ae120e4d6725b04375cb87791491f" + integrity sha512-AlBmD6Idav2ugmoAL6UtR6ItS7jU5h5RNqLMZC7QrLCoITA9NzIN3nx9GWi8g4z1pfWh2r9r96SX/jHiNwPJ9A== + dependencies: + "@smithy/querystring-parser" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/util-base64@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.2.0.tgz#677f616772389adbad278b05d84835abbfe63bbc" + integrity sha512-+erInz8WDv5KPe7xCsJCp+1WCjSbah9gWcmUXc9NqmhyPx59tf7jqFz+za1tRG1Y5KM1Cy1rWCcGypylFp4mvA== + dependencies: + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/util-body-length-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz#04e9fc51ee7a3e7f648a4b4bcdf96c350cfa4d61" + integrity sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg== + dependencies: + tslib "^2.6.2" + +"@smithy/util-body-length-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.0.tgz#ea6a0fdabb48dd0b212e17e42b1f07bb7373147b" + integrity sha512-U8q1WsSZFjXijlD7a4wsDQOvOwV+72iHSfq1q7VD+V75xP/pdtm0WIGuaFJ3gcADDOKj2MIBn4+zisi140HEnQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-buffer-from@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" + integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== + dependencies: + "@smithy/is-array-buffer" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-buffer-from@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz#7abd12c4991b546e7cee24d1e8b4bfaa35c68a9d" + integrity sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew== + dependencies: + "@smithy/is-array-buffer" "^4.2.0" + tslib "^2.6.2" + +"@smithy/util-config-provider@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz#2e4722937f8feda4dcb09672c59925a4e6286cfc" + integrity sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q== + dependencies: + tslib "^2.6.2" + +"@smithy/util-defaults-mode-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.2.0.tgz#7b9f0299203aaa48953c4997c1630bdeffd80ec0" + integrity sha512-qzHp7ZDk1Ba4LDwQVCNp90xPGqSu7kmL7y5toBpccuhi3AH7dcVBIT/pUxYcInK4jOy6FikrcTGq5wxcka8UaQ== + dependencies: + "@smithy/property-provider" "^4.2.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@smithy/util-defaults-mode-node@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.0.tgz#efe5a6be134755317a0edf9595582bd6732e493a" + integrity sha512-FxUHS3WXgx3bTWR6yQHNHHkQHZm/XKIi/CchTnKvBulN6obWpcbzJ6lDToXn+Wp0QlVKd7uYAz2/CTw1j7m+Kg== + dependencies: + "@smithy/config-resolver" "^4.3.0" + "@smithy/credential-provider-imds" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/smithy-client" "^4.7.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/util-endpoints@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.0.tgz#4bdc4820ceab5d66365ee72cfb14226e10bb0e24" + integrity sha512-TXeCn22D56vvWr/5xPqALc9oO+LN+QpFjrSM7peG/ckqEPoI3zaKZFp+bFwfmiHhn5MGWPaLCqDOJPPIixk9Wg== + dependencies: + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/util-hex-encoding@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz#1c22ea3d1e2c3a81ff81c0a4f9c056a175068a7b" + integrity sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw== + dependencies: + tslib "^2.6.2" + +"@smithy/util-middleware@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.0.tgz#85973ae0db65af4ab4bedf12f31487a4105d1158" + integrity sha512-u9OOfDa43MjagtJZ8AapJcmimP+K2Z7szXn8xbty4aza+7P1wjFmy2ewjSbhEiYQoW1unTlOAIV165weYAaowA== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/util-retry@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.0.tgz#1fa58e277b62df98d834e6c8b7d57f4c62ff1baf" + integrity sha512-BWSiuGbwRnEE2SFfaAZEX0TqaxtvtSYPM/J73PFVm+A29Fg1HTPiYFb8TmX1DXp4hgcdyJcNQmprfd5foeORsg== + dependencies: + "@smithy/service-error-classification" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/util-stream@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.4.0.tgz#e203c74b8664d0e3f537185de5da960655333a45" + integrity sha512-vtO7ktbixEcrVzMRmpQDnw/Ehr9UWjBvSJ9fyAbadKkC4w5Cm/4lMO8cHz8Ysb8uflvQUNRcuux/oNHKPXkffg== + dependencies: + "@smithy/fetch-http-handler" "^5.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.2.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" + tslib "^2.6.2" + +"@smithy/util-uri-escape@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-1.1.0.tgz#a8c5edaf19c0efdb9b51661e840549cf600a1808" + integrity sha512-/jL/V1xdVRt5XppwiaEU8Etp5WHZj609n0xMTuehmCqdoOFbId1M+aEeDWZsQ+8JbEB/BJ6ynY2SlYmOaKtt8w== + dependencies: + tslib "^2.5.0" + +"@smithy/util-uri-escape@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz#096a4cec537d108ac24a68a9c60bee73fc7e3a9e" + integrity sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA== + dependencies: + tslib "^2.6.2" + +"@smithy/util-utf8@^2.0.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" + integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== + dependencies: + "@smithy/util-buffer-from" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-utf8@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz#8b19d1514f621c44a3a68151f3d43e51087fed9d" + integrity sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw== + dependencies: + "@smithy/util-buffer-from" "^4.2.0" + tslib "^2.6.2" + +"@smithy/util-waiter@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.0.tgz#fcf5609143fa745d45424b0463560425b39c34eb" + integrity sha512-0Z+nxUU4/4T+SL8BCNN4ztKdQjToNvUYmkF1kXO5T7Yz3Gafzh0HeIG6mrkN8Fz3gn9hSyxuAT+6h4vM+iQSBQ== + dependencies: + "@smithy/abort-controller" "^4.2.0" + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@smithy/uuid@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/uuid/-/uuid-1.1.0.tgz#9fd09d3f91375eab94f478858123387df1cda987" + integrity sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw== + dependencies: + tslib "^2.6.2" + "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -421,21 +1716,21 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/node@*": - version "22.5.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.1.tgz#de01dce265f6b99ed32b295962045d10b5b99560" - integrity sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw== + version "24.3.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.3.0.tgz#89b09f45cb9a8ee69466f18ee5864e4c3eb84dec" + integrity sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow== dependencies: - undici-types "~6.19.2" + undici-types "~7.10.0" "@types/request@^2.48.8": - version "2.48.12" - resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.12.tgz#0f590f615a10f87da18e9790ac94c29ec4c5ef30" - integrity sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw== + version "2.48.13" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.13.tgz#abdf4256524e801ea8fdda54320f083edb5a6b80" + integrity sha512-FGJ6udDNUCjd19pp0Q3iTiDkwhYup7J8hpMW9c4k53NrccQFFWKRho6hvtPPEhnXWKvukfwAlB6DbDz4yhH5Gg== dependencies: "@types/caseless" "*" "@types/node" "*" "@types/tough-cookie" "*" - form-data "^2.5.0" + form-data "^2.5.5" "@types/sinonjs__fake-timers@8.1.1": version "8.1.1" @@ -443,9 +1738,9 @@ integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== "@types/sizzle@^2.3.2": - version "2.3.8" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.8.tgz#518609aefb797da19bf222feb199e8f653ff7627" - integrity sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg== + version "2.3.9" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.9.tgz#d4597dbd4618264c414d7429363e3f50acb66ea2" + integrity sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w== "@types/tough-cookie@*": version "4.0.5" @@ -459,6 +1754,15 @@ dependencies: "@types/node" "*" +"@typespec/ts-http-runtime@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.0.tgz#f506ff2170e594a257f8e78aa196088f3a46a22d" + integrity sha512-sOx1PKSuFwnIl7z4RN0Ls7N9AQawmR9r66eI5rFCzLDIs8HTIYrIpH9QjYWoX0lkgGrkLxXhi4QnK7MizPRrIg== + dependencies: + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + tslib "^2.6.2" + JSONStream@^1.0.0: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -472,6 +1776,11 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +abbrev@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-3.0.1.tgz#8ac8b3b5024d31464fe2a5feeea9f4536bf44025" + integrity sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg== + abort-controller@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" @@ -553,17 +1862,15 @@ agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" -agent-base@^7.0.2, agent-base@^7.1.0: - 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" +agent-base@^7.1.0, agent-base@^7.1.2: + version "7.1.4" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8" + integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== agentkeepalive@^4.1.3: - version "4.5.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" - integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== + version "4.6.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" + integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== dependencies: humanize-ms "^1.2.1" @@ -622,6 +1929,11 @@ ansi-regex@^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: + version "6.2.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.0.tgz#2f302e7550431b1b7762705fffb52cf1ffa20447" + integrity sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -636,6 +1948,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -645,9 +1962,9 @@ anymatch@~3.1.2: picomatch "^2.0.4" "aproba@^1.0.3 || ^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== + version "2.1.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.1.0.tgz#75500a190313d95c64e871e7e4284c6ac219f0b1" + integrity sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew== arch@^2.2.0: version "2.2.0" @@ -674,71 +1991,73 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-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== +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" + integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== dependencies: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" + call-bound "^1.0.3" + is-array-buffer "^3.0.5" -array-includes@^3.1.7: - version "3.1.8" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" - integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== +array-includes@^3.1.9: + version "3.1.9" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.9.tgz#1f0ccaa08e90cdbc3eb433210f903ad0f17c3f3a" + integrity sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" 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.prototype.findlastindex@^1.2.3: - 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" + es-abstract "^1.24.0" + es-object-atoms "^1.1.1" + get-intrinsic "^1.3.0" + is-string "^1.1.1" + math-intrinsics "^1.1.0" + +array.prototype.findlastindex@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz#cfa1065c81dcb64e34557c9b81d012f6a421c564" + integrity sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.4" define-properties "^1.2.1" - es-abstract "^1.23.2" + es-abstract "^1.23.9" es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-shim-unscopables "^1.0.2" + es-object-atoms "^1.1.1" + es-shim-unscopables "^1.1.0" -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== +array.prototype.flat@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" + integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" -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== +array.prototype.flatmap@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" + integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + 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== +arraybuffer.prototype.slice@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" + integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== dependencies: array-buffer-byte-length "^1.0.1" - call-bind "^1.0.5" + call-bind "^1.0.8" define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.2.1" - get-intrinsic "^1.2.3" + es-abstract "^1.23.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" is-array-buffer "^3.0.4" - is-shared-array-buffer "^1.0.2" arraybuffer.slice@~0.0.7: version "0.0.7" @@ -844,6 +2163,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" + integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== + async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" @@ -907,22 +2231,6 @@ aws-sdk@2.80.0: xml2js "0.4.17" xmlbuilder "4.2.1" -aws-sdk@^2.905.0: - version "2.1684.0" - resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1684.0.tgz#1f3423369fabd764e66525cb01e649024d094379" - integrity sha512-Womhydf2UhEeLALLOUEDIuJ1Iv2k9aOsqAeDaQT3AhayiYt7pguvncs5IgEAxZ0TRH7driA7kTk+iGnCP2jMMA== - dependencies: - buffer "4.9.2" - events "1.1.1" - ieee754 "1.1.13" - jmespath "0.16.0" - querystring "0.2.0" - sax "1.2.1" - url "0.10.3" - util "^0.12.4" - uuid "8.0.0" - xml2js "0.6.2" - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -1024,9 +2332,9 @@ better-assert@~1.0.0: callsite "1.0.0" bignumber.js@^9.0.0: - version "9.1.2" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" - integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + version "9.3.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.3.1.tgz#759c5aaddf2ffdc4f154f7b493e1c8770f88c4d7" + integrity sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ== binary-extensions@^2.0.0: version "2.3.0" @@ -1075,18 +2383,23 @@ bluebird@^3.7.2: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +bowser@^2.11.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.12.0.tgz#c56edc7bc9d18b7e1f062bfea0a53f564af613ed" + integrity sha512-HcOcTudTeEWgbHh0Y1Tyb6fdeR71m4b/QACf0D4KswGTsNeIJQmg38mRENZPAYPZvGFN3fk3604XbQEPdxXdKg== + 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== + version "1.1.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== 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== + version "2.0.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: balanced-match "^1.0.0" @@ -1125,7 +2438,7 @@ buffer-crc32@~0.2.3: resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== -buffer-equal-constant-time@1.0.1: +buffer-equal-constant-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== @@ -1139,15 +2452,6 @@ buffer@4.9.1: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - buffer@^5.1.0, buffer@^5.5.0, buffer@^5.6.0, buffer@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -1195,21 +2499,54 @@ cacache@^15.2.0: tar "^6.0.2" unique-filename "^1.1.1" +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" + cachedir@^2.3.0: version "2.4.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== -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== +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: - es-define-property "^1.0.0" es-errors "^1.3.0" function-bind "^1.1.2" + +call-bind@^1.0.7, call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" get-intrinsic "^1.2.4" - set-function-length "^1.2.1" + set-function-length "^1.2.2" + +call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" callsite@1.0.0: version "1.0.0" @@ -1278,10 +2615,15 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -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== +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@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.3.0.tgz#c39b1013f8fdbd28cd78e62318357d02da160cd7" + integrity sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ== clean-stack@^2.0.0: version "2.2.0" @@ -1360,7 +2702,7 @@ colorette@^2.0.16: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -1440,9 +2782,9 @@ core-util-is@~1.0.0: integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + version "6.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.6.tgz#30d0efa0712ddb7eb5a76e1e8721bffafa6b5d57" + integrity sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw== dependencies: nice-try "^1.0.4" path-key "^2.0.1" @@ -1450,10 +2792,10 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -1475,11 +2817,11 @@ cypress-file-upload@^5.0.2: integrity sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g== cypress@^13.14.0: - version "13.14.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.14.0.tgz#12ed82310f7c01eaf4ddbe01236ea3efd5a4c380" - integrity sha512-r0+nhd033x883YL6068futewUsl02Q7rWiinyAAIBDW/OOTn+UMILWgNuCiY3vtJjd53efOqq5R9dctQk/rKiw== + version "13.17.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.17.0.tgz#34c3d68080c4497eace0f353bd1629587a5f600d" + integrity sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA== dependencies: - "@cypress/request" "^3.0.1" + "@cypress/request" "^3.0.6" "@cypress/xvfb" "^1.2.4" "@types/sinonjs__fake-timers" "8.1.1" "@types/sizzle" "^2.3.2" @@ -1490,6 +2832,7 @@ cypress@^13.14.0: cachedir "^2.3.0" chalk "^4.1.0" check-more-types "^2.24.0" + ci-info "^4.0.0" cli-cursor "^3.1.0" cli-table3 "~0.6.1" commander "^6.2.1" @@ -1504,7 +2847,6 @@ cypress@^13.14.0: figures "^3.2.0" fs-extra "^9.1.0" getos "^3.2.1" - is-ci "^3.0.1" is-installed-globally "~0.4.0" lazy-ass "^1.6.0" listr2 "^3.8.3" @@ -1519,6 +2861,7 @@ cypress@^13.14.0: semver "^7.5.3" supports-color "^8.1.1" tmp "~0.2.3" + tree-kill "1.2.2" untildify "^4.0.0" yauzl "^2.10.0" @@ -1529,30 +2872,30 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.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== +data-view-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" + integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== dependencies: - call-bind "^1.0.6" + call-bound "^1.0.3" es-errors "^1.3.0" - is-data-view "^1.0.1" + is-data-view "^1.0.2" -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== +data-view-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" + integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" es-errors "^1.3.0" - is-data-view "^1.0.1" + is-data-view "^1.0.2" -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== +data-view-byte-offset@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" + integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== dependencies: - call-bind "^1.0.6" + call-bound "^1.0.2" es-errors "^1.3.0" is-data-view "^1.0.1" @@ -1562,11 +2905,11 @@ dayjs@^1.10.4: integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5: - version "4.3.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" - integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + version "4.4.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== dependencies: - ms "2.1.2" + ms "^2.1.3" debug@^3.1.0, debug@^3.2.7: version "3.2.7" @@ -1623,7 +2966,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" -define-properties@^1.2.0, define-properties@^1.2.1: +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== @@ -1674,6 +3017,15 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dunder-proto@^1.0.0, dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + duplexify@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" @@ -1684,6 +3036,11 @@ duplexify@^4.1.3: readable-stream "^3.1.1" stream-shift "^1.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== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -1704,6 +3061,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + encoding-down@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" @@ -1714,7 +3076,7 @@ encoding-down@^6.3.0: level-codec "^9.0.0" level-errors "^2.0.0" -encoding@^0.1.12: +encoding@^0.1.12, 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== @@ -1722,9 +3084,9 @@ encoding@^0.1.12: iconv-lite "^0.6.2" end-of-stream@^1.1.0, end-of-stream@^1.4.1: - 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== + version "1.4.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" + integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== dependencies: once "^1.4.0" @@ -1805,101 +3167,108 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: - version "1.23.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" - integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== +es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.9, es-abstract@^1.24.0: + version "1.24.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.0.tgz#c44732d2beb0acc1ed60df840869e3106e7af328" + integrity sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg== dependencies: - array-buffer-byte-length "^1.0.1" - arraybuffer.prototype.slice "^1.0.3" + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" 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" + call-bind "^1.0.8" + call-bound "^1.0.4" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" 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" + es-object-atoms "^1.1.1" + es-set-tostringtag "^2.1.0" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.3.0" + get-proto "^1.0.1" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" + has-proto "^1.2.0" + has-symbols "^1.1.0" hasown "^2.0.2" - internal-slot "^1.0.7" - is-array-buffer "^3.0.4" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" is-callable "^1.2.7" - is-data-view "^1.0.1" + is-data-view "^1.0.2" 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" + is-regex "^1.2.1" + is-set "^2.0.3" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.1" + math-intrinsics "^1.1.0" + object-inspect "^1.13.4" 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" + object.assign "^4.1.7" + own-keys "^1.0.1" + regexp.prototype.flags "^1.5.4" + safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" + safe-regex-test "^1.1.0" + set-proto "^1.0.0" + stop-iteration-iterator "^1.1.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" 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" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.19" + +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== -es-errors@^1.2.1, es-errors@^1.3.0: +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-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== +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== 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== +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== dependencies: - get-intrinsic "^1.2.4" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" has-tostringtag "^1.0.2" - hasown "^2.0.1" + hasown "^2.0.2" -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== +es-shim-unscopables@^1.0.2, es-shim-unscopables@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5" + integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== dependencies: - hasown "^2.0.0" + hasown "^2.0.2" -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== +es-to-primitive@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" + integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" + is-callable "^1.2.7" + is-date-object "^1.0.5" + is-symbol "^1.0.4" es6-promise@^4.0.3, es6-promise@^4.2.8: version "4.2.8" @@ -1914,9 +3283,9 @@ es6-promisify@^5.0.0: es6-promise "^4.0.3" escalade@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" - integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-string-regexp@^1.0.5: version "1.0.5" @@ -1963,34 +3332,36 @@ eslint-import-resolver-node@^0.3.9: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-module-utils@^2.8.0: - version "2.8.2" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.2.tgz#2ecad69d71e1fa81f17f7f24d5d3e46b168de663" - integrity sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg== +eslint-module-utils@^2.12.1: + version "2.12.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz#f76d3220bfb83c057651359295ab5854eaad75ff" + integrity sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw== dependencies: debug "^3.2.7" eslint-plugin-import@^2.25.4: - version "2.29.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" - integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== - dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" + version "2.32.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz#602b55faa6e4caeaa5e970c198b5c00a37708980" + integrity sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA== + dependencies: + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.9" + array.prototype.findlastindex "^1.2.6" + array.prototype.flat "^1.3.3" + array.prototype.flatmap "^1.3.3" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" + eslint-module-utils "^2.12.1" + hasown "^2.0.2" + is-core-module "^2.16.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.1" semver "^6.3.1" + string.prototype.trimend "^1.0.9" tsconfig-paths "^3.15.0" eslint-scope@^5.1.1: @@ -2117,12 +3488,7 @@ eventemitter2@6.4.7: resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== -events@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== - -events@^3.0.0: +events@^3.0.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -2149,6 +3515,11 @@ executable@^4.1.1: dependencies: pify "^2.2.0" +exponential-backoff@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.2.tgz#a8f26adb96bf78e8cd8ad1037928d5e5c0679d91" + integrity sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA== + extend@^3.0.2, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -2196,24 +3567,31 @@ fast-safe-stringify@^2.1.1: integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== fast-uri@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" - integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + version "3.0.6" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748" + integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== -fast-xml-parser@^4.3.2, fast-xml-parser@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz#86dbf3f18edf8739326447bcaac31b4ae7f6514f" - integrity sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw== +fast-xml-parser@5.2.5, fast-xml-parser@^5.0.7: + version "5.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz#4809fdfb1310494e341098c25cb1341a01a9144a" + integrity sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ== dependencies: - strnum "^1.0.5" + strnum "^2.1.0" + +fast-xml-parser@^4.4.1: + version "4.5.3" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz#c54d6b35aa0f23dc1ea60b6c884340c006dc6efb" + integrity sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig== + dependencies: + strnum "^1.1.1" "fcntl@github:scality/node-fcntl": - version "0.2.1" - resolved "https://codeload.github.com/scality/node-fcntl/tar.gz/b1335ca204c6265cedc50c26020c4d63aabe920e" + version "0.3.0" + resolved "https://codeload.github.com/scality/node-fcntl/tar.gz/1a495689d00dac2bfca630405b52813646736ec9" dependencies: bindings "^1.1.1" - nan "^2.3.2" - node-gyp "^8.0.0" + node-addon-api "^8.3.0" + node-gyp "^11.1.0" "fcntl@github:scality/node-fcntl#0.2.0": version "0.2.0" @@ -2230,6 +3608,11 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" +fdir@^6.4.4: + version "6.5.0" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" + integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== + figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -2279,30 +3662,41 @@ flat@^5.0.2: integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== 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== + version "3.3.3" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== + +for-each@^0.3.3, for-each@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" + integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== + dependencies: + is-callable "^1.2.7" -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== +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: - is-callable "^1.1.3" + cross-spawn "^7.0.6" + signal-exit "^4.0.1" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== -form-data@^2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== +form-data@^2.5.5: + version "2.5.5" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.5.tgz#a5f6364ad7e4e67e95b4a07e2d8c6f711c74f624" + integrity sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A== dependencies: asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" + mime-types "^2.1.35" + safe-buffer "^5.2.1" form-data@~2.3.2: version "2.3.3" @@ -2313,6 +3707,17 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +form-data@~4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" + integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" + mime-types "^2.1.12" + fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -2330,6 +3735,13 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" +fs-minipass@^3.0.0: + 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" @@ -2345,15 +3757,17 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -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== +function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78" + integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" functions-have-names "^1.2.3" + hasown "^2.0.2" + is-callable "^1.2.7" functional-red-black-tree@^1.0.1: version "1.0.1" @@ -2391,11 +3805,12 @@ gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.1.1: uuid "^9.0.1" gcp-metadata@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.0.tgz#9b0dd2b2445258e7597f2024332d20611cbd6b8c" - integrity sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg== + version "6.1.1" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.1.tgz#f65aa69f546bc56e116061d137d3f5f90bdec494" + integrity sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A== dependencies: - gaxios "^6.0.0" + gaxios "^6.1.1" + google-logging-utils "^0.0.2" json-bigint "^1.0.0" get-caller-file@^2.0.5: @@ -2403,16 +3818,29 @@ get-caller-file@^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-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== +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" es-errors "^1.3.0" + es-object-atoms "^1.1.1" function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-proto@^1.0.0, get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" @@ -2421,14 +3849,14 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -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== +get-symbol-description@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" + integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== dependencies: - call-bind "^1.0.5" + call-bound "^1.0.3" es-errors "^1.3.0" - get-intrinsic "^1.2.4" + get-intrinsic "^1.2.6" getos@^3.2.1: version "3.2.1" @@ -2451,6 +3879,18 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" +glob@^10.2.2: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + glob@^7.1.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" @@ -2481,11 +3921,6 @@ global-dirs@^3.0.0: dependencies: ini "2.0.0" -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.6.0, globals@^13.9.0: version "13.24.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" @@ -2493,7 +3928,7 @@ globals@^13.6.0, globals@^13.9.0: 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== @@ -2502,9 +3937,9 @@ globalthis@^1.0.3: gopd "^1.0.1" google-auth-library@^9.6.3: - version "9.14.0" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.14.0.tgz#79e568b5cf3493a8470968a5d099eabe465cb950" - integrity sha512-Y/eq+RWVs55Io/anIsm24sDS8X79Tq948zVLGaa7+KlJYYqaGwp1YI37w48nzrNi12RgnzMrQD4NzdmCowT90g== + version "9.15.1" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.15.1.tgz#0c5d84ed1890b2375f1cd74f03ac7b806b392928" + integrity sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng== dependencies: base64-js "^1.3.0" ecdsa-sig-formatter "^1.0.11" @@ -2513,12 +3948,15 @@ google-auth-library@^9.6.3: gtoken "^7.0.0" jws "^4.0.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" +google-logging-utils@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/google-logging-utils/-/google-logging-utils-0.0.2.tgz#5fd837e06fa334da450433b9e3e1870c1594466a" + integrity sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ== + +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: version "4.2.11" @@ -2546,10 +3984,10 @@ har-validator@~5.1.3: ajv "^6.12.3" har-schema "^2.0.0" -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-bigints@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" + integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== has-binary2@~1.0.2: version "1.0.3" @@ -2580,17 +4018,19 @@ has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: 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-proto@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" + integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== + dependencies: + dunder-proto "^1.0.0" -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-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== -has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: +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== @@ -2611,7 +4051,7 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: +hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -2641,14 +4081,14 @@ hosted-git-info@^2.1.4: integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== html-entities@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" - integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + version "2.6.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8" + integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== -http-cache-semantics@^4.1.0: - 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-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#205f4db64f8562b76a4ff9235aa5279839a09dd5" + integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== http-proxy-agent@^4.0.1: version "4.0.1" @@ -2685,14 +4125,14 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -http-signature@~1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" - integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== +http-signature@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.4.0.tgz#dee5a9ba2bf49416abc544abd6d967f6a94c8c3f" + integrity sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg== dependencies: assert-plus "^1.0.0" jsprim "^2.0.2" - sshpk "^1.14.1" + sshpk "^1.18.0" https-proxy-agent@^2.2.0: version "2.2.4" @@ -2711,11 +4151,11 @@ https-proxy-agent@^5.0.0: 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== + version "7.0.6" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" + integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== dependencies: - agent-base "^7.0.2" + agent-base "^7.1.2" debug "4" human-signals@^1.1.1: @@ -2737,11 +4177,6 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - ieee754@^1.1.13, ieee754@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -2763,9 +4198,9 @@ immediate@~3.2.3: integrity sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg== import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -2808,14 +4243,14 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== -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== +internal-slot@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" + integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== dependencies: es-errors "^1.3.0" - hasown "^2.0.0" - side-channel "^1.0.4" + hasown "^2.0.2" + side-channel "^1.1.0" ioctl@2.0.1: version "2.0.1" @@ -2849,10 +4284,11 @@ ioredis@4.9.5: standard-as-callback "^2.0.1" ioredis@^4.28.5: - version "4.28.5" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.28.5.tgz#5c149e6a8d76a7f8fa8a504ffc85b7d5b6797f9f" - integrity sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A== + version "4.30.0" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.30.0.tgz#023277fcbeddd2dba3c101ef45f26c3f1de98a92" + integrity sha512-P9F4Eo6zicYsIJbEy/mPJmSxKY0rVcmiy5H8oXPxPDotQRCvCBjBuI5QWoQQanVE9jdeocnum5iqYAHl4pHdLA== dependencies: + "@ioredis/commands" "^1.0.2" cluster-key-slot "^1.1.0" debug "^4.3.1" denque "^1.1.0" @@ -2860,51 +4296,51 @@ ioredis@^4.28.5: lodash.flatten "^4.4.0" lodash.isarguments "^3.1.0" p-map "^2.1.0" - redis-commands "1.7.0" redis-errors "^1.2.0" redis-parser "^3.0.0" standard-as-callback "^2.1.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-address@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.0.1.tgz#a8180b783ce7788777d796286d61bce4276818ed" + integrity sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA== ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.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== +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" + integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + call-bind "^1.0.8" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" 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-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== +is-async-function@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523" + integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== + dependencies: + async-function "^1.0.0" + call-bound "^1.0.3" + get-proto "^1.0.1" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" + +is-bigint@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" + integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== dependencies: - has-bigints "^1.0.1" + has-bigints "^1.0.2" is-binary-path@~2.1.0: version "2.1.0" @@ -2913,68 +4349,74 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -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== +is-boolean-object@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e" + integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + has-tostringtag "^1.0.2" is-buffer@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: +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@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" - integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== - dependencies: - ci-info "^3.2.0" - -is-core-module@^2.13.0, is-core-module@^2.13.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== +is-core-module@^2.13.0, is-core-module@^2.16.0, is-core-module@^2.16.1: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: hasown "^2.0.2" -is-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== +is-data-view@^1.0.1, is-data-view@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" + integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== dependencies: + call-bound "^1.0.2" + get-intrinsic "^1.2.6" is-typed-array "^1.1.13" -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== +is-date-object@^1.0.5, is-date-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" + integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + has-tostringtag "^1.0.2" 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.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== + dependencies: + call-bound "^1.0.3" + 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-generator-function@^1.0.7: - 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== +is-generator-function@^1.0.10: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.0.tgz#bf3eeda931201394f57b5dba2800f91a238309ca" + integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + get-proto "^1.0.0" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" @@ -2996,17 +4438,23 @@ is-lambda@^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== +is-number-object@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" + integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + has-tostringtag "^1.0.2" is-number@^7.0.0: version "7.0.0" @@ -3023,46 +4471,56 @@ is-plain-obj@^2.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -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== +is-regex@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" -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== +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.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" + integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" 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-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== +is-string@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" + integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + has-tostringtag "^1.0.2" -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== +is-symbol@^1.0.4, is-symbol@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" + integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== dependencies: - has-symbols "^1.0.2" + call-bound "^1.0.2" + has-symbols "^1.1.0" + safe-regex-test "^1.1.0" -is-typed-array@^1.1.13, is-typed-array@^1.1.3: - 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== +is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== dependencies: - which-typed-array "^1.1.14" + which-typed-array "^1.1.16" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" @@ -3074,12 +4532,25 @@ is-unicode-supported@^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-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== +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, is-weakref@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" + integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" + +is-weakset@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== + dependencies: + call-bound "^1.0.3" + get-intrinsic "^1.2.6" isarray@0.0.1: version "0.0.1" @@ -3106,21 +4577,30 @@ isexe@^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== + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== +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" + jmespath@0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217" integrity sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w== -jmespath@0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" - integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -3141,20 +4621,15 @@ js-yaml@^4.1.0: 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== - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== json-bigint@^1.0.0: version "1.0.0" @@ -3213,9 +4688,9 @@ json5@^1.0.2: minimist "^1.2.0" 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== + version "6.2.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" + integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== dependencies: universalify "^2.0.0" optionalDependencies: @@ -3252,11 +4727,11 @@ jsprim@^2.0.2: verror "1.10.0" jwa@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.0.tgz#a7e9c3f29dae94027ebcaf49975c9345593410fc" - integrity sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-2.0.1.tgz#bf8176d1ad0cd72e0f3f58338595a13e110bc804" + integrity sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg== dependencies: - buffer-equal-constant-time "1.0.1" + buffer-equal-constant-time "^1.0.1" ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" @@ -3532,6 +5007,11 @@ looper@^3.0.0: resolved "https://registry.yarnpkg.com/looper/-/looper-3.0.0.tgz#2efa54c3b1cbaba9b94aee2e5914b0be57fbb749" integrity sha512-LJ9wplN/uSn72oJRsXTx+snxPet5c8XiZmOKCm906NVYu+ag6SB6vUcnJcWxgnl2NfbIyeobAn7Bwv6xRj2XJg== +lru-cache@^10.0.1, lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -3549,6 +5029,23 @@ ltgt@~2.1.1: resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.1.3.tgz#10851a06d9964b971178441c23c9e52698eece34" integrity sha512-5VjHC5GsENtIi5rbJd+feEpDKhfr7j0odoUR2Uh978g+2p93nd5o34cTjQWohXsPsCZeqoDnIqEf88mPCe0Pfw== +make-fetch-happen@^14.0.3: + 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" + make-fetch-happen@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" @@ -3589,6 +5086,11 @@ markdownlint@0.0.8: dependencies: markdown-it "^4.4.0" +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + md5.js@1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" @@ -3631,7 +5133,7 @@ mime-db@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, mime-types@~2.1.19, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.35, mime-types@~2.1.19, mime-types@~2.1.34: 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== @@ -3662,6 +5164,13 @@ minimatch@^5.0.1, minimatch@^5.1.6: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -3679,6 +5188,13 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" +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@^1.3.2: version "1.4.1" resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" @@ -3690,6 +5206,17 @@ minipass-fetch@^1.3.2: optionalDependencies: encoding "^0.1.12" +minipass-fetch@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-4.0.1.tgz#f2d717d5a418ad0b1a7274f9b913515d3e78f9e5" + integrity sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ== + 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" @@ -3723,6 +5250,11 @@ minipass@^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.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + minizlib@^2.0.0, minizlib@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" @@ -3731,12 +5263,19 @@ minizlib@^2.0.0, minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" +minizlib@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.0.2.tgz#f33d638eb279f664439aa38dc5f91607468cb574" + integrity sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA== + dependencies: + minipass "^7.1.2" + mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@^3.0.0: +mkdirp@^3.0.0, 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== @@ -3769,9 +5308,9 @@ mocha-tags@^1.0.1: minimist "~1.1.0" mocha@^10.0.0: - version "10.7.3" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.7.3.tgz#ae32003cabbd52b59aece17846056a68eb4b0752" - integrity sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A== + version "10.8.2" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.8.2.tgz#8d8342d016ed411b12a429eb731b825f961afb96" + integrity sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg== dependencies: ansi-colors "^4.1.3" browser-stdout "^1.3.1" @@ -3812,20 +5351,15 @@ ms@2.0.0: resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nan@^2.14.0, nan@^2.18.0, nan@^2.3.2: - version "2.20.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" - integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== + version "2.23.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.23.0.tgz#24aa4ddffcc37613a2d2935b97683c1ec96093c6" + integrity sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ== napi-macros@~2.0.0: version "2.0.0" @@ -3837,16 +5371,31 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -negotiator@0.6.3, negotiator@^0.6.2: +negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== +negotiator@^0.6.2: + 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== + 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-addon-api@^8.3.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-8.5.0.tgz#c91b2d7682fa457d2e1c388150f0dff9aafb8f3f" + integrity sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A== + node-fetch@^2.6.9: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" @@ -3864,6 +5413,22 @@ node-gyp-build@~4.1.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" integrity sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ== +node-gyp@^11.1.0: + version "11.4.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-11.4.1.tgz#b4ce9597e71d4e59efb3d4cdae2af8338151b2c4" + integrity sha512-GiVxQ1e4TdZSSVmFDYUn6uUsrEUP68pa8C/xBzCfL/FcLHa4reWrxxTP7tRGhNdviYrNsL5kRolBL5LNYEutCw== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + graceful-fs "^4.2.6" + make-fetch-happen "^14.0.3" + nopt "^8.0.0" + proc-log "^5.0.0" + semver "^7.3.5" + tar "^7.4.3" + tinyglobby "^0.2.12" + which "^5.0.0" + node-gyp@^8.0.0: version "8.4.1" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" @@ -3887,6 +5452,13 @@ nopt@^5.0.0: dependencies: abbrev "1" +nopt@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-8.1.0.tgz#b11d38caf0f8643ce885818518064127f602eae3" + integrity sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A== + dependencies: + abbrev "^3.0.0" + normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -3944,36 +5516,39 @@ object-component@0.0.3: resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" integrity sha512-S0sN3agnVh2SZNEIGc0N1X4Z5K0JeFbGBrnuZpsxuUh5XLF0BnvWkMjRXo/zGKLd/eghvNIKcx1pQkmUjXIyrA== -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-inspect@^1.13.3, object-inspect@^1.13.4: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== 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.assign@^4.1.2, 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== +object.assign@^4.1.2, object.assign@^4.1.7: + version "4.1.7" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== dependencies: - call-bind "^1.0.5" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" - has-symbols "^1.0.3" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" object-keys "^1.1.1" object.entries@^1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" - integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== + version "1.1.9" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.9.tgz#e4770a6a1444afb61bd39f984018b5bede25f8b3" + integrity sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" define-properties "^1.2.1" - es-object-atoms "^1.0.0" + es-object-atoms "^1.1.1" -object.fromentries@^2.0.7: +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== @@ -3983,7 +5558,7 @@ object.fromentries@^2.0.7: es-abstract "^1.23.2" es-object-atoms "^1.0.0" -object.groupby@^1.0.1: +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== @@ -3992,12 +5567,13 @@ object.groupby@^1.0.1: define-properties "^1.2.1" es-abstract "^1.23.2" -object.values@^1.1.7: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" - integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== +object.values@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" + integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" es-object-atoms "^1.0.0" @@ -4021,9 +5597,9 @@ opencollective-postinstall@^2.0.0: integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== optional-require@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/optional-require/-/optional-require-1.1.8.tgz#16364d76261b75d964c482b2406cb824d8ec44b7" - integrity sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA== + version "1.1.10" + resolved "https://registry.yarnpkg.com/optional-require/-/optional-require-1.1.10.tgz#35ea423c5442df157c084f8d5a9d5250bba1de47" + integrity sha512-0r3OB9EIQsP+a5HVATHq2ExIy2q/Vaffoo4IAikW1spCYswhLxqWQS0i3GwS3AdY/OIP4SWZHLGz8CMU558PGw== dependencies: require-at "^1.0.6" @@ -4044,6 +5620,15 @@ ospath@^1.2.2: resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== +own-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" + integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== + dependencies: + get-intrinsic "^1.2.6" + object-keys "^1.1.1" + safe-push-apply "^1.0.0" + p-limit@^3.0.1, p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" @@ -4070,6 +5655,16 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" +p-map@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.3.tgz#7ac210a2d36f81ec28b736134810f7ba4418cdb6" + integrity sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA== + +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -4134,6 +5729,14 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-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@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -4151,16 +5754,21 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -picocolors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" - integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== +picocolors@^1.0.0, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== + pidtree@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" @@ -4177,9 +5785,9 @@ pify@^3.0.0: integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== 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== + version "1.1.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" + integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== prelude-ls@^1.2.1: version "1.2.1" @@ -4191,6 +5799,11 @@ pretty-bytes@^5.6.0: resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== +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@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" @@ -4246,10 +5859,12 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== -psl@^1.1.28, 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== +psl@^1.1.28: + version "1.15.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6" + integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== + dependencies: + punycode "^2.3.1" pull-cat@^1.1.9: version "1.1.11" @@ -4300,9 +5915,9 @@ pull-window@^2.1.4: looper "^2.0.0" pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + version "3.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.3.tgz#151d979f1a29668dc0025ec589a455b53282268d" + integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -4312,17 +5927,17 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -qs@6.10.4: - version "6.10.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.4.tgz#6a3003755add91c0ec9eacdc5f878b034e73f9e7" - integrity sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g== +qs@6.14.0: + version "6.14.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" + integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== dependencies: - side-channel "^1.0.4" + side-channel "^1.1.0" qs@~6.5.2: version "6.5.3" @@ -4334,11 +5949,6 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== -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== - randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -4411,11 +6021,6 @@ redis-commands@1.4.0: resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.4.0.tgz#52f9cf99153efcce56a8f86af986bd04e988602f" integrity sha512-cu8EF+MtkwI4DLIT0x9P8qNTLFhQD4jLfxLR0cCNkeGzs87FN6879JOJwNQR/1zD7aSYNbU0hgsV9zGY71Itvw== -redis-commands@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.7.0.tgz#15a6fea2d58281e27b1cd1acfb4b293e278c3a89" - integrity sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ== - redis-errors@^1.0.0, redis-errors@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" @@ -4428,15 +6033,31 @@ redis-parser@^3.0.0: dependencies: redis-errors "^1.0.0" -regexp.prototype.flags@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" - integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== +reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9" + integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.7" + get-proto "^1.0.1" + which-builtin-type "^1.2.1" + +regexp.prototype.flags@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" + integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== dependencies: - call-bind "^1.0.6" + call-bind "^1.0.8" define-properties "^1.2.1" es-errors "^1.3.0" - set-function-name "^2.0.1" + get-proto "^1.0.1" + gopd "^1.2.0" + set-function-name "^2.0.2" regexpp@^3.1.0: version "3.2.0" @@ -4491,22 +6112,17 @@ require-from-string@^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-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@^1.10.0, resolve@^1.12.0, 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== + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== dependencies: - is-core-module "^2.13.0" + is-core-module "^2.16.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -4550,23 +6166,24 @@ rimraf@^3.0.2: glob "^7.1.3" rxjs@^7.5.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + version "7.8.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== dependencies: tslib "^2.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== +safe-array-concat@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" + integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" - has-symbols "^1.0.3" + call-bind "^1.0.8" + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + has-symbols "^1.1.0" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, 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== @@ -4586,14 +6203,22 @@ safe-json-stringify@^1.0.3, safe-json-stringify@^1.2.0: resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== -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== +safe-push-apply@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5" + integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== + dependencies: + es-errors "^1.3.0" + isarray "^2.0.5" + +safe-regex-test@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" + integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== dependencies: - call-bind "^1.0.6" + call-bound "^1.0.2" es-errors "^1.3.0" - is-regex "^1.1.4" + is-regex "^1.2.1" "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" @@ -4633,9 +6258,9 @@ semver@^6.3.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.2.1, semver@^7.3.5, semver@^7.5.3: - version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + version "7.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== semver@~5.1.0: version "5.1.1" @@ -4654,7 +6279,7 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-function-length@^1.2.1: +set-function-length@^1.2.2: 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== @@ -4666,7 +6291,7 @@ set-function-length@^1.2.1: 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== @@ -4676,6 +6301,15 @@ set-function-name@^2.0.1: functions-have-names "^1.2.3" has-property-descriptors "^1.0.2" +set-proto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e" + integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== + dependencies: + dunder-proto "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -4701,25 +6335,60 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.6.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + version "1.8.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" + integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== -side-channel@^1.0.4: - 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== +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== dependencies: - call-bind "^1.0.7" es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" signal-exit@^3.0.2, 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: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + simple-glob@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/simple-glob/-/simple-glob-0.2.0.tgz#95cf6a5fb5d84843a52a58529cba31b0f5c3478c" @@ -4834,12 +6503,21 @@ socks-proxy-agent@^6.0.0: debug "^4.3.3" socks "^2.6.2" -socks@^2.6.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" - integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== +socks-proxy-agent@^8.0.3: + version "8.0.5" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz#b9cdb4e7e998509d7659d689ce7697ac21645bee" + integrity sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw== + dependencies: + agent-base "^7.1.2" + debug "^4.3.4" + socks "^2.8.3" + +socks@^2.6.2, socks@^2.8.3: + version "2.8.7" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.7.tgz#e2fb1d9a603add75050a2067db8c381a0b5669ea" + integrity sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A== dependencies: - ip-address "^9.0.5" + ip-address "^10.0.1" smart-buffer "^4.2.0" sparse-bitfield@^3.0.3: @@ -4871,14 +6549,9 @@ spdx-expression-parse@^3.0.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== - -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== + version "3.0.22" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz#abf5a08a6f5d7279559b669f47f0a43e8f3464ef" + integrity sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ== sprintf-js@~1.0.2: version "1.0.3" @@ -4899,7 +6572,7 @@ sprintf-js@~1.0.2: async "^3.2.0" werelogs scality/werelogs#8.1.0 -sshpk@^1.14.1, sshpk@^1.7.0: +sshpk@^1.18.0, sshpk@^1.7.0: version "1.18.0" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== @@ -4914,6 +6587,13 @@ sshpk@^1.14.1, sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +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" + ssri@^8.0.0, ssri@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" @@ -4926,6 +6606,14 @@ standard-as-callback@^2.0.1, standard-as-callback@^2.1.0: resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== +stop-iteration-iterator@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad" + integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== + dependencies: + es-errors "^1.3.0" + internal-slot "^1.1.0" + stream-events@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/stream-events/-/stream-events-1.0.5.tgz#bbc898ec4df33a4902d892333d47da9bf1c406d5" @@ -4946,6 +6634,15 @@ stream-to-pull-stream@^1.7.1: looper "^3.0.0" pull-stream "^3.2.3" +"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@^1.0.2 || 2 || 3 || 4", 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" @@ -4955,6 +6652,15 @@ stream-to-pull-stream@^1.7.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string.prototype.padend@^3.0.0: version "3.1.6" resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz#ba79cf8992609a91c872daa47c6bb144ee7f62a5" @@ -4965,22 +6671,26 @@ string.prototype.padend@^3.0.0: es-abstract "^1.23.2" es-object-atoms "^1.0.0" -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== +string.prototype.trim@^1.2.10: + version "1.2.10" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz#40b2dd5ee94c959b4dcfb1d65ce72e90da480c81" + integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.2" + define-data-property "^1.1.4" define-properties "^1.2.1" - es-abstract "^1.23.0" + es-abstract "^1.23.5" es-object-atoms "^1.0.0" + has-property-descriptors "^1.0.2" -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== +string.prototype.trimend@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" + integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.2" define-properties "^1.2.1" es-object-atoms "^1.0.0" @@ -5012,6 +6722,13 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.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" @@ -5019,6 +6736,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.0.1: + 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@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -5034,10 +6758,15 @@ strip-json-comments@^3.1.0, strip-json-comments@^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== -strnum@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" - integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== +strnum@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.1.2.tgz#57bca4fbaa6f271081715dbc9ed7cee5493e28e4" + integrity sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA== + +strnum@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.1.1.tgz#cf2a6e0cf903728b8b2c4b971b7e36b4e82d46ab" + integrity sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw== stubs@^3.0.0: version "3.0.0" @@ -5071,9 +6800,9 @@ supports-preserve-symlinks-flag@^1.0.0: integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== table@^6.0.9: - version "6.8.2" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" - integrity sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== + version "6.9.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.9.0.tgz#50040afa6264141c7566b3b81d4d82c47a8668f5" + integrity sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A== dependencies: ajv "^8.0.1" lodash.truncate "^4.4.2" @@ -5093,6 +6822,18 @@ tar@^6.0.2, tar@^6.1.2: 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" + tdigest@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced" @@ -5126,21 +6867,36 @@ throttleit@^1.0.0: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +tinyglobby@^0.2.12: + version "0.2.14" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.14.tgz#5280b0cf3f972b050e74ae88406c0a6a58f4079d" + integrity sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ== + dependencies: + fdir "^6.4.4" + picomatch "^4.0.2" + +tldts-core@^6.1.86: + version "6.1.86" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8" + integrity sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA== + +tldts@^6.1.32: + version "6.1.86" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.86.tgz#087e0555b31b9725ee48ca7e77edc56115cd82f7" + integrity sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ== + dependencies: + tldts-core "^6.1.86" + tmp@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" - integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + version "0.2.5" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" + integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" integrity sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A== -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - 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" @@ -5148,15 +6904,12 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tough-cookie@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" - integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== +tough-cookie@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7" + integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A== dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" + tldts "^6.1.32" tough-cookie@~2.5.0: version "2.5.0" @@ -5171,6 +6924,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +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== + tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" @@ -5181,10 +6939,10 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^2.1.0, tslib@^2.2.0, tslib@^2.6.2: - version "2.7.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" - integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== +tslib@^2.1.0, tslib@^2.5.0, tslib@^2.6.2, tslib@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== tunnel-agent@^0.6.0: version "0.6.0" @@ -5215,49 +6973,50 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -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== +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" es-errors "^1.3.0" - is-typed-array "^1.1.13" + is-typed-array "^1.1.14" -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== +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.14" -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== +typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== dependencies: available-typed-arrays "^1.0.7" - call-bind "^1.0.7" + call-bind "^1.0.8" for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.15" + reflect.getprototypeof "^1.0.9" -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== +typed-array-length@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" + integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== 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" + reflect.getprototypeof "^1.0.6" typedarray-to-buffer@~3.1.5: version "3.1.5" @@ -5288,25 +7047,25 @@ uc.micro@^1.0.0, uc.micro@^1.0.1: resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -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== +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" underscore@~1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" integrity sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg== -undici-types@~6.19.2: - version "6.19.8" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" - integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== +undici-types@~7.10.0: + version "7.10.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.10.0.tgz#4ac2e058ce56b462b056e629cc6a02393d3ff350" + integrity sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag== unique-filename@^1.1.1: version "1.1.1" @@ -5315,6 +7074,13 @@ unique-filename@^1.1.1: dependencies: unique-slug "^2.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@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" @@ -5322,10 +7088,12 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -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== +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" universalify@^2.0.0: version "2.0.1" @@ -5344,14 +7112,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - url@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" @@ -5370,27 +7130,11 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.4: - version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - uuid@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" integrity sha512-tyhM7iisckwwmyHVFcjTzISz/R1ss/bRudNgHFYsgeu7j4JbhRvjE+Hbcpr9y5xh+b+HxeFjuToDT4i9kQNrtA== -uuid@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" - integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== - uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" @@ -5449,8 +7193,8 @@ webidl-conversions@^3.0.0: integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== "werelogs@github:scality/werelogs": - version "8.1.5" - resolved "https://codeload.github.com/scality/werelogs/tar.gz/4131abec824a336eeb68b531e6c91f2748a0644a" + version "8.2.2" + resolved "https://codeload.github.com/scality/werelogs/tar.gz/b2dc281e9ae1fb2258505e69453ff3cfe425b00d" dependencies: fast-safe-stringify "^2.1.1" safe-json-stringify "^1.2.0" @@ -5475,26 +7219,57 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-boxed-primitive@^1.0.2: +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" + integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== + dependencies: + is-bigint "^1.1.0" + is-boolean-object "^1.2.1" + is-number-object "^1.1.1" + is-string "^1.1.1" + is-symbol "^1.1.1" + +which-builtin-type@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== + dependencies: + call-bound "^1.0.2" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.1.0" + is-finalizationregistry "^1.1.0" + is-generator-function "^1.0.10" + is-regex "^1.2.1" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.1.0" + which-collection "^1.0.2" + which-typed-array "^1.1.16" + +which-collection@^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== + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== 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" + 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, which-typed-array@^1.1.2: - 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== +which-typed-array@^1.1.16, which-typed-array@^1.1.19: + version "1.1.19" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" + integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== dependencies: available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" + call-bind "^1.0.8" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" + gopd "^1.2.0" has-tostringtag "^1.0.2" which@^1.2.9: @@ -5511,6 +7286,13 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" +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" + wide-align@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" @@ -5528,6 +7310,15 @@ workerpool@^6.5.1: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== +"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@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -5546,6 +7337,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -5586,14 +7386,6 @@ xml2js@0.4.19: sax ">=0.6.0" xmlbuilder "~9.0.1" -xml2js@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.6.2.tgz#dd0b630083aa09c161e25a4d0901e2b2a929b499" - integrity sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - xml2js@~0.4.23: version "0.4.23" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" @@ -5649,6 +7441,11 @@ yallist@^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== + yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"