From 0b19169f947e94479c72211272165952927871db Mon Sep 17 00:00:00 2001 From: larry-internxt Date: Wed, 21 Jan 2026 19:20:58 +0100 Subject: [PATCH 01/43] deps: add better-sqlite3 dependency --- package.json | 9 +- yarn.lock | 1587 ++++++++++++++++++++++++++++---------------------- 2 files changed, 887 insertions(+), 709 deletions(-) diff --git a/package.json b/package.json index 352d65a9..5836d62a 100644 --- a/package.json +++ b/package.json @@ -40,10 +40,11 @@ "@inquirer/prompts": "8.2.0", "@internxt/inxt-js": "2.2.9", "@internxt/lib": "1.4.1", - "@internxt/sdk": "1.12.0", + "@internxt/sdk": "1.12.1", "@oclif/core": "4.8.0", "@oclif/plugin-autocomplete": "3.2.39", "axios": "1.13.2", + "better-sqlite3": "12.6.2", "bip39": "3.1.0", "body-parser": "2.2.2", "cli-progress": "3.12.0", @@ -70,7 +71,7 @@ "@types/cli-progress": "3.11.6", "@types/express": "5.0.6", "@types/mime-types": "3.0.1", - "@types/node": "25.0.7", + "@types/node": "25.0.9", "@types/range-parser": "1.2.7", "@vitest/coverage-istanbul": "4.0.17", "@vitest/spy": "4.0.17", @@ -78,8 +79,8 @@ "husky": "9.1.7", "lint-staged": "16.2.7", "nodemon": "3.1.11", - "oclif": "4.22.65", - "prettier": "3.7.4", + "oclif": "4.22.67", + "prettier": "3.8.0", "rimraf": "6.1.2", "ts-node": "10.9.2", "typescript": "5.9.3", diff --git a/yarn.lock b/yarn.lock index c1c579ba..d425fb1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -70,513 +70,513 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-cloudfront@^3.966.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.967.0.tgz#9ff3d28984b30da267987126e026dc31ee207b04" - integrity sha512-+cfsjAbjP4lFoPJzOawSnLUg9P3RzQ3j6+s4GXocBJSYE9pTeh6AFYx7yAQwzMdW1IwoC+LUlPmetmkIFQuIcQ== +"@aws-sdk/client-cloudfront@^3.971.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.972.0.tgz#3ca063fd3bc0548acc49282992557427bf7c03b4" + integrity sha512-mmFa46bKR6EE6RjdN+hM43GdHt7/RbHCpbuA5zBNbR4bKol7xGHIYemtLGuY0yinDshu5A0hzksulw51FnkUug== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.967.0" - "@aws-sdk/credential-provider-node" "3.967.0" - "@aws-sdk/middleware-host-header" "3.965.0" - "@aws-sdk/middleware-logger" "3.965.0" - "@aws-sdk/middleware-recursion-detection" "3.965.0" - "@aws-sdk/middleware-user-agent" "3.967.0" - "@aws-sdk/region-config-resolver" "3.965.0" - "@aws-sdk/types" "3.965.0" - "@aws-sdk/util-endpoints" "3.965.0" - "@aws-sdk/util-user-agent-browser" "3.965.0" - "@aws-sdk/util-user-agent-node" "3.967.0" - "@smithy/config-resolver" "^4.4.5" - "@smithy/core" "^3.20.2" - "@smithy/fetch-http-handler" "^5.3.8" - "@smithy/hash-node" "^4.2.7" - "@smithy/invalid-dependency" "^4.2.7" - "@smithy/middleware-content-length" "^4.2.7" - "@smithy/middleware-endpoint" "^4.4.3" - "@smithy/middleware-retry" "^4.4.19" - "@smithy/middleware-serde" "^4.2.8" - "@smithy/middleware-stack" "^4.2.7" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/node-http-handler" "^4.4.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/smithy-client" "^4.10.4" - "@smithy/types" "^4.11.0" - "@smithy/url-parser" "^4.2.7" + "@aws-sdk/core" "3.972.0" + "@aws-sdk/credential-provider-node" "3.972.0" + "@aws-sdk/middleware-host-header" "3.972.0" + "@aws-sdk/middleware-logger" "3.972.0" + "@aws-sdk/middleware-recursion-detection" "3.972.0" + "@aws-sdk/middleware-user-agent" "3.972.0" + "@aws-sdk/region-config-resolver" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@aws-sdk/util-endpoints" "3.972.0" + "@aws-sdk/util-user-agent-browser" "3.972.0" + "@aws-sdk/util-user-agent-node" "3.972.0" + "@smithy/config-resolver" "^4.4.6" + "@smithy/core" "^3.20.6" + "@smithy/fetch-http-handler" "^5.3.9" + "@smithy/hash-node" "^4.2.8" + "@smithy/invalid-dependency" "^4.2.8" + "@smithy/middleware-content-length" "^4.2.8" + "@smithy/middleware-endpoint" "^4.4.7" + "@smithy/middleware-retry" "^4.4.23" + "@smithy/middleware-serde" "^4.2.9" + "@smithy/middleware-stack" "^4.2.8" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/node-http-handler" "^4.4.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/smithy-client" "^4.10.8" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" "@smithy/util-base64" "^4.3.0" "@smithy/util-body-length-browser" "^4.2.0" "@smithy/util-body-length-node" "^4.2.1" - "@smithy/util-defaults-mode-browser" "^4.3.18" - "@smithy/util-defaults-mode-node" "^4.2.21" - "@smithy/util-endpoints" "^3.2.7" - "@smithy/util-middleware" "^4.2.7" - "@smithy/util-retry" "^4.2.7" - "@smithy/util-stream" "^4.5.8" + "@smithy/util-defaults-mode-browser" "^4.3.22" + "@smithy/util-defaults-mode-node" "^4.2.25" + "@smithy/util-endpoints" "^3.2.8" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-retry" "^4.2.8" + "@smithy/util-stream" "^4.5.10" "@smithy/util-utf8" "^4.2.0" - "@smithy/util-waiter" "^4.2.7" + "@smithy/util-waiter" "^4.2.8" tslib "^2.6.2" -"@aws-sdk/client-s3@^3.966.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.967.0.tgz#0fcd00e86742b9c355d4425a3888b414bfa7c1e3" - integrity sha512-7vDlsBqd9y0dJDjCy84WMN+1r60El97IKMGlegU+l9K2+t8+Wf8bYj/J2xfm+6Ayemje6P4nkKS9tubxBLqg+A== +"@aws-sdk/client-s3@^3.971.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.972.0.tgz#a1d748c6870232d53192b2022280aad73966c713" + integrity sha512-ghpDQtjZvbhbnHWymq/V5TL8NppdAGF2THAxYRRBLCJ5JRlq71T24NdovAzvzYaGdH7HtcRkgErBRsFT1gtq4g== 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.967.0" - "@aws-sdk/credential-provider-node" "3.967.0" - "@aws-sdk/middleware-bucket-endpoint" "3.966.0" - "@aws-sdk/middleware-expect-continue" "3.965.0" - "@aws-sdk/middleware-flexible-checksums" "3.967.0" - "@aws-sdk/middleware-host-header" "3.965.0" - "@aws-sdk/middleware-location-constraint" "3.965.0" - "@aws-sdk/middleware-logger" "3.965.0" - "@aws-sdk/middleware-recursion-detection" "3.965.0" - "@aws-sdk/middleware-sdk-s3" "3.967.0" - "@aws-sdk/middleware-ssec" "3.965.0" - "@aws-sdk/middleware-user-agent" "3.967.0" - "@aws-sdk/region-config-resolver" "3.965.0" - "@aws-sdk/signature-v4-multi-region" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@aws-sdk/util-endpoints" "3.965.0" - "@aws-sdk/util-user-agent-browser" "3.965.0" - "@aws-sdk/util-user-agent-node" "3.967.0" - "@smithy/config-resolver" "^4.4.5" - "@smithy/core" "^3.20.2" - "@smithy/eventstream-serde-browser" "^4.2.7" - "@smithy/eventstream-serde-config-resolver" "^4.3.7" - "@smithy/eventstream-serde-node" "^4.2.7" - "@smithy/fetch-http-handler" "^5.3.8" - "@smithy/hash-blob-browser" "^4.2.8" - "@smithy/hash-node" "^4.2.7" - "@smithy/hash-stream-node" "^4.2.7" - "@smithy/invalid-dependency" "^4.2.7" - "@smithy/md5-js" "^4.2.7" - "@smithy/middleware-content-length" "^4.2.7" - "@smithy/middleware-endpoint" "^4.4.3" - "@smithy/middleware-retry" "^4.4.19" - "@smithy/middleware-serde" "^4.2.8" - "@smithy/middleware-stack" "^4.2.7" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/node-http-handler" "^4.4.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/smithy-client" "^4.10.4" - "@smithy/types" "^4.11.0" - "@smithy/url-parser" "^4.2.7" + "@aws-sdk/core" "3.972.0" + "@aws-sdk/credential-provider-node" "3.972.0" + "@aws-sdk/middleware-bucket-endpoint" "3.972.0" + "@aws-sdk/middleware-expect-continue" "3.972.0" + "@aws-sdk/middleware-flexible-checksums" "3.972.0" + "@aws-sdk/middleware-host-header" "3.972.0" + "@aws-sdk/middleware-location-constraint" "3.972.0" + "@aws-sdk/middleware-logger" "3.972.0" + "@aws-sdk/middleware-recursion-detection" "3.972.0" + "@aws-sdk/middleware-sdk-s3" "3.972.0" + "@aws-sdk/middleware-ssec" "3.972.0" + "@aws-sdk/middleware-user-agent" "3.972.0" + "@aws-sdk/region-config-resolver" "3.972.0" + "@aws-sdk/signature-v4-multi-region" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@aws-sdk/util-endpoints" "3.972.0" + "@aws-sdk/util-user-agent-browser" "3.972.0" + "@aws-sdk/util-user-agent-node" "3.972.0" + "@smithy/config-resolver" "^4.4.6" + "@smithy/core" "^3.20.6" + "@smithy/eventstream-serde-browser" "^4.2.8" + "@smithy/eventstream-serde-config-resolver" "^4.3.8" + "@smithy/eventstream-serde-node" "^4.2.8" + "@smithy/fetch-http-handler" "^5.3.9" + "@smithy/hash-blob-browser" "^4.2.9" + "@smithy/hash-node" "^4.2.8" + "@smithy/hash-stream-node" "^4.2.8" + "@smithy/invalid-dependency" "^4.2.8" + "@smithy/md5-js" "^4.2.8" + "@smithy/middleware-content-length" "^4.2.8" + "@smithy/middleware-endpoint" "^4.4.7" + "@smithy/middleware-retry" "^4.4.23" + "@smithy/middleware-serde" "^4.2.9" + "@smithy/middleware-stack" "^4.2.8" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/node-http-handler" "^4.4.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/smithy-client" "^4.10.8" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" "@smithy/util-base64" "^4.3.0" "@smithy/util-body-length-browser" "^4.2.0" "@smithy/util-body-length-node" "^4.2.1" - "@smithy/util-defaults-mode-browser" "^4.3.18" - "@smithy/util-defaults-mode-node" "^4.2.21" - "@smithy/util-endpoints" "^3.2.7" - "@smithy/util-middleware" "^4.2.7" - "@smithy/util-retry" "^4.2.7" - "@smithy/util-stream" "^4.5.8" + "@smithy/util-defaults-mode-browser" "^4.3.22" + "@smithy/util-defaults-mode-node" "^4.2.25" + "@smithy/util-endpoints" "^3.2.8" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-retry" "^4.2.8" + "@smithy/util-stream" "^4.5.10" "@smithy/util-utf8" "^4.2.0" - "@smithy/util-waiter" "^4.2.7" + "@smithy/util-waiter" "^4.2.8" tslib "^2.6.2" -"@aws-sdk/client-sso@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.967.0.tgz#ae3e107d3eb8de6541979ef0b274f925be789338" - integrity sha512-7RgUwHcRMJtWme6kCHGUVT+Rn9GmNH+FHm34N9UgMXzUqQlzFMweE7T5E9O8nv3wIp7xFNB20ADaCw9Xdnox1Q== +"@aws-sdk/client-sso@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.972.0.tgz#973d5a337bb473d3e019b4fca00f60ffa2666ff3" + integrity sha512-5qw6qLiRE4SUiz0hWy878dSR13tSVhbTWhsvFT8mGHe37NRRiaobm5MA2sWD0deRAuO98djSiV+dhWXa1xIFNw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.967.0" - "@aws-sdk/middleware-host-header" "3.965.0" - "@aws-sdk/middleware-logger" "3.965.0" - "@aws-sdk/middleware-recursion-detection" "3.965.0" - "@aws-sdk/middleware-user-agent" "3.967.0" - "@aws-sdk/region-config-resolver" "3.965.0" - "@aws-sdk/types" "3.965.0" - "@aws-sdk/util-endpoints" "3.965.0" - "@aws-sdk/util-user-agent-browser" "3.965.0" - "@aws-sdk/util-user-agent-node" "3.967.0" - "@smithy/config-resolver" "^4.4.5" - "@smithy/core" "^3.20.2" - "@smithy/fetch-http-handler" "^5.3.8" - "@smithy/hash-node" "^4.2.7" - "@smithy/invalid-dependency" "^4.2.7" - "@smithy/middleware-content-length" "^4.2.7" - "@smithy/middleware-endpoint" "^4.4.3" - "@smithy/middleware-retry" "^4.4.19" - "@smithy/middleware-serde" "^4.2.8" - "@smithy/middleware-stack" "^4.2.7" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/node-http-handler" "^4.4.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/smithy-client" "^4.10.4" - "@smithy/types" "^4.11.0" - "@smithy/url-parser" "^4.2.7" + "@aws-sdk/core" "3.972.0" + "@aws-sdk/middleware-host-header" "3.972.0" + "@aws-sdk/middleware-logger" "3.972.0" + "@aws-sdk/middleware-recursion-detection" "3.972.0" + "@aws-sdk/middleware-user-agent" "3.972.0" + "@aws-sdk/region-config-resolver" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@aws-sdk/util-endpoints" "3.972.0" + "@aws-sdk/util-user-agent-browser" "3.972.0" + "@aws-sdk/util-user-agent-node" "3.972.0" + "@smithy/config-resolver" "^4.4.6" + "@smithy/core" "^3.20.6" + "@smithy/fetch-http-handler" "^5.3.9" + "@smithy/hash-node" "^4.2.8" + "@smithy/invalid-dependency" "^4.2.8" + "@smithy/middleware-content-length" "^4.2.8" + "@smithy/middleware-endpoint" "^4.4.7" + "@smithy/middleware-retry" "^4.4.23" + "@smithy/middleware-serde" "^4.2.9" + "@smithy/middleware-stack" "^4.2.8" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/node-http-handler" "^4.4.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/smithy-client" "^4.10.8" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" "@smithy/util-base64" "^4.3.0" "@smithy/util-body-length-browser" "^4.2.0" "@smithy/util-body-length-node" "^4.2.1" - "@smithy/util-defaults-mode-browser" "^4.3.18" - "@smithy/util-defaults-mode-node" "^4.2.21" - "@smithy/util-endpoints" "^3.2.7" - "@smithy/util-middleware" "^4.2.7" - "@smithy/util-retry" "^4.2.7" + "@smithy/util-defaults-mode-browser" "^4.3.22" + "@smithy/util-defaults-mode-node" "^4.2.25" + "@smithy/util-endpoints" "^3.2.8" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-retry" "^4.2.8" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/core@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.967.0.tgz#d2a924a23fd59a32c2bc1d6ba5c88832fe026b3a" - integrity sha512-sJmuP7GrVmlbO6DpXkuf9Mbn6jGNNvy6PLawvaxVF150c8bpNk3w39rerRls6q1dot1dBFV2D29hBXMY1agNMg== - dependencies: - "@aws-sdk/types" "3.965.0" - "@aws-sdk/xml-builder" "3.965.0" - "@smithy/core" "^3.20.2" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/property-provider" "^4.2.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/signature-v4" "^5.3.7" - "@smithy/smithy-client" "^4.10.4" - "@smithy/types" "^4.11.0" +"@aws-sdk/core@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.972.0.tgz#20d9c47fc3ad1bed4c1866eb6f6488bcc5d31754" + integrity sha512-nEeUW2M9F+xdIaD98F5MBcQ4ITtykj3yKbgFZ6J0JtL3bq+Z90szQ6Yy8H/BLPYXTs3V4n9ifnBo8cprRDiE6A== + dependencies: + "@aws-sdk/types" "3.972.0" + "@aws-sdk/xml-builder" "3.972.0" + "@smithy/core" "^3.20.6" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/property-provider" "^4.2.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/signature-v4" "^5.3.8" + "@smithy/smithy-client" "^4.10.8" + "@smithy/types" "^4.12.0" "@smithy/util-base64" "^4.3.0" - "@smithy/util-middleware" "^4.2.7" + "@smithy/util-middleware" "^4.2.8" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/crc64-nvme@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/crc64-nvme/-/crc64-nvme-3.965.0.tgz#c51c032b73f5d6e532a849f34c5e7c9eea69b7e3" - integrity sha512-9FbIyJ/Zz1AdEIrb0+Pn7wRi+F/0Y566ooepg0hDyHUzRV3ZXKjOlu3wJH3YwTz2UkdwQmldfUos2yDJps7RyA== +"@aws-sdk/crc64-nvme@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.0.tgz#c5e6d14428c9fb4e6bb0646b73a0fa68e6007e24" + integrity sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.967.0.tgz#f7a45633ebe9c0f44130d38a1d9fd518f1ed8d52" - integrity sha512-+XWw0+f/txeMbEVRtTFZhgSw1ymH1ffaVKkdMBSnw48rfSohJElKmitCqdihagRTZpzh7m8qI6tIQ5t3OUqugw== +"@aws-sdk/credential-provider-env@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.0.tgz#54d185812f435843b25da1a87c4d10c847e5f675" + integrity sha512-kKHoNv+maHlPQOAhYamhap0PObd16SAb3jwaY0KYgNTiSbeXlbGUZPLioo9oA3wU10zItJzx83ClU7d7h40luA== dependencies: - "@aws-sdk/core" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@smithy/property-provider" "^4.2.7" - "@smithy/types" "^4.11.0" + "@aws-sdk/core" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@smithy/property-provider" "^4.2.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.967.0.tgz#d2e2ceb72f023eb15746cd35e32d7d2f5d6171a2" - integrity sha512-0/GIAEv5pY5htg6IBMuYccBgzz3oS2DqHjHi396ziTrwlhbrCNX96AbNhQhzAx3LBZUk13sPfeapjyQ7G57Ekg== - dependencies: - "@aws-sdk/core" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@smithy/fetch-http-handler" "^5.3.8" - "@smithy/node-http-handler" "^4.4.7" - "@smithy/property-provider" "^4.2.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/smithy-client" "^4.10.4" - "@smithy/types" "^4.11.0" - "@smithy/util-stream" "^4.5.8" +"@aws-sdk/credential-provider-http@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.0.tgz#15f54d50b4efba1aa7863158c532704e8c3dff9e" + integrity sha512-xzEi81L7I5jGUbpmqEHCe7zZr54hCABdj4H+3LzktHYuovV/oqnvoDdvZpGFR0e/KAw1+PL38NbGrpG30j6qlA== + dependencies: + "@aws-sdk/core" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@smithy/fetch-http-handler" "^5.3.9" + "@smithy/node-http-handler" "^4.4.8" + "@smithy/property-provider" "^4.2.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/smithy-client" "^4.10.8" + "@smithy/types" "^4.12.0" + "@smithy/util-stream" "^4.5.10" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.967.0.tgz#96027cafdeb96da87ae4f30c3d86a380356a881b" - integrity sha512-U8dMpaM6Qf6+2Qvp1uG6OcWv1RlrZW7tQkpmzEVWH8HZTGrVHIXXju64NMtIOr7yOnNwd0CKcytuD1QG+phCwQ== - dependencies: - "@aws-sdk/core" "3.967.0" - "@aws-sdk/credential-provider-env" "3.967.0" - "@aws-sdk/credential-provider-http" "3.967.0" - "@aws-sdk/credential-provider-login" "3.967.0" - "@aws-sdk/credential-provider-process" "3.967.0" - "@aws-sdk/credential-provider-sso" "3.967.0" - "@aws-sdk/credential-provider-web-identity" "3.967.0" - "@aws-sdk/nested-clients" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@smithy/credential-provider-imds" "^4.2.7" - "@smithy/property-provider" "^4.2.7" - "@smithy/shared-ini-file-loader" "^4.4.2" - "@smithy/types" "^4.11.0" +"@aws-sdk/credential-provider-ini@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.0.tgz#d2b700a99e370d61765fb9ffec50d9b4ab5818ed" + integrity sha512-ruhAMceUIq2aknFd3jhWxmO0P0Efab5efjyIXOkI9i80g+zDY5VekeSxfqRKStEEJSKSCHDLQuOu0BnAn4Rzew== + dependencies: + "@aws-sdk/core" "3.972.0" + "@aws-sdk/credential-provider-env" "3.972.0" + "@aws-sdk/credential-provider-http" "3.972.0" + "@aws-sdk/credential-provider-login" "3.972.0" + "@aws-sdk/credential-provider-process" "3.972.0" + "@aws-sdk/credential-provider-sso" "3.972.0" + "@aws-sdk/credential-provider-web-identity" "3.972.0" + "@aws-sdk/nested-clients" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@smithy/credential-provider-imds" "^4.2.8" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-login@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.967.0.tgz#ed3c1ec0f55c6e2a13aeb58c6a48910f5e20f7fe" - integrity sha512-kbvZsZL6CBlfnb71zuJdJmBUFZN5utNrcziZr/DZ2olEOkA9vlmizE8i9BUIbmS7ptjgvRnmcY1A966yfhiblw== - dependencies: - "@aws-sdk/core" "3.967.0" - "@aws-sdk/nested-clients" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@smithy/property-provider" "^4.2.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/shared-ini-file-loader" "^4.4.2" - "@smithy/types" "^4.11.0" +"@aws-sdk/credential-provider-login@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.0.tgz#f2c220055725cc1ab58db19a384ea127f2e0d9b3" + integrity sha512-SsrsFJsEYAJHO4N/r2P0aK6o8si6f1lprR+Ej8J731XJqTckSGs/HFHcbxOyW/iKt+LNUvZa59/VlJmjhF4bEQ== + dependencies: + "@aws-sdk/core" "3.972.0" + "@aws-sdk/nested-clients" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@smithy/property-provider" "^4.2.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.967.0.tgz#d7c7aaa0905c9205945b34c0fc7307267310d14c" - integrity sha512-WuNbHs9rfKKSVok4+OBrZf0AHfzDgFYYMxN2G/q6ZfUmY4QmiPyxV5HkNFh1rqDxS9VV6kAZPo0EBmry10idSg== - dependencies: - "@aws-sdk/credential-provider-env" "3.967.0" - "@aws-sdk/credential-provider-http" "3.967.0" - "@aws-sdk/credential-provider-ini" "3.967.0" - "@aws-sdk/credential-provider-process" "3.967.0" - "@aws-sdk/credential-provider-sso" "3.967.0" - "@aws-sdk/credential-provider-web-identity" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@smithy/credential-provider-imds" "^4.2.7" - "@smithy/property-provider" "^4.2.7" - "@smithy/shared-ini-file-loader" "^4.4.2" - "@smithy/types" "^4.11.0" +"@aws-sdk/credential-provider-node@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.0.tgz#8e31768ebc5a6a88ba81815c6397515d7ba6e506" + integrity sha512-wwJDpEGl6+sOygic8QKu0OHVB8SiodqF1fr5jvUlSFfS6tJss/E9vBc2aFjl7zI6KpAIYfIzIgM006lRrZtWCQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.972.0" + "@aws-sdk/credential-provider-http" "3.972.0" + "@aws-sdk/credential-provider-ini" "3.972.0" + "@aws-sdk/credential-provider-process" "3.972.0" + "@aws-sdk/credential-provider-sso" "3.972.0" + "@aws-sdk/credential-provider-web-identity" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@smithy/credential-provider-imds" "^4.2.8" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.967.0.tgz#de4e37f4f815db853d955ee99445a5dcf3858c3f" - integrity sha512-sNCY5JDV0whsfsZ6c2+6eUwH33H7UhKbqvCPbEYlIIa8wkGjCtCyFI3zZIJHVcMKJJ3117vSUFHEkNA7g+8rtw== +"@aws-sdk/credential-provider-process@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.0.tgz#f42eb44b51c46fac088ef8c45b304e15aa23ca4e" + integrity sha512-nmzYhamLDJ8K+v3zWck79IaKMc350xZnWsf/GeaXO6E3MewSzd3lYkTiMi7lEp3/UwDm9NHfPguoPm+mhlSWQQ== dependencies: - "@aws-sdk/core" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@smithy/property-provider" "^4.2.7" - "@smithy/shared-ini-file-loader" "^4.4.2" - "@smithy/types" "^4.11.0" + "@aws-sdk/core" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.967.0.tgz#d5bd48efeb4105e6635219aaba8dc6f20163367f" - integrity sha512-0K6kITKNytFjk1UYabYUsTThgU6TQkyW6Wmt8S5zd1A/up7NSQGpp58Rpg9GIf4amQDQwb+p9FGG7emmV8FEeA== - dependencies: - "@aws-sdk/client-sso" "3.967.0" - "@aws-sdk/core" "3.967.0" - "@aws-sdk/token-providers" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@smithy/property-provider" "^4.2.7" - "@smithy/shared-ini-file-loader" "^4.4.2" - "@smithy/types" "^4.11.0" +"@aws-sdk/credential-provider-sso@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.0.tgz#d2de6de88de52fa886362a01d4bc12c1034be387" + integrity sha512-6mYyfk1SrMZ15cH9T53yAF4YSnvq4yU1Xlgm3nqV1gZVQzmF5kr4t/F3BU3ygbvzi4uSwWxG3I3TYYS5eMlAyg== + dependencies: + "@aws-sdk/client-sso" "3.972.0" + "@aws-sdk/core" "3.972.0" + "@aws-sdk/token-providers" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.967.0.tgz#345a01d9b6b77ba9a7dbac2e4d08bfc9a50b9308" - integrity sha512-Vkr7S2ec7q/v8i/MzkHcBEdqqfWz3lyb8FDjb+NjslEwdxC3f6XwADRZzWwV1pChfx6SbsvJXKfkcF/pKAelhA== - dependencies: - "@aws-sdk/core" "3.967.0" - "@aws-sdk/nested-clients" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@smithy/property-provider" "^4.2.7" - "@smithy/shared-ini-file-loader" "^4.4.2" - "@smithy/types" "^4.11.0" +"@aws-sdk/credential-provider-web-identity@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.0.tgz#025ee6bf5a152cd76e6c022eddcdc0efbd547b0d" + integrity sha512-vsJXBGL8H54kz4T6do3p5elATj5d1izVGUXMluRJntm9/I0be/zUYtdd4oDTM2kSUmd4Zhyw3fMQ9lw7CVhd4A== + dependencies: + "@aws-sdk/core" "3.972.0" + "@aws-sdk/nested-clients" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@3.966.0": - version "3.966.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.966.0.tgz#92df1e3d312902f837663abbf0cfd9efa616065e" - integrity sha512-KMPZ7gtFXErd9pMpXJMBwFlxxlGIaIQrUBfj3ea7rlrNtoVHnSI4qsoldLq5l9/Ho64KoCiICH4+qXjze8JTDQ== +"@aws-sdk/middleware-bucket-endpoint@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.0.tgz#208844b83b09d7dbfc82aca846aefdc58c2dd3aa" + integrity sha512-IrIjAehc3PrseAGfk2ldtAf+N0BAnNHR1DCZIDh9IAcFrTVWC3Fi9KJdtabrxcY3Onpt/8opOco4EIEAWgMz7A== dependencies: - "@aws-sdk/types" "3.965.0" - "@aws-sdk/util-arn-parser" "3.966.0" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/types" "^4.11.0" + "@aws-sdk/types" "3.972.0" + "@aws-sdk/util-arn-parser" "3.972.0" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" "@smithy/util-config-provider" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/middleware-expect-continue@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.965.0.tgz#b5636e46c9c658c9ee0ed41b010b4c9c69b3ad6f" - integrity sha512-UBxVytsmhEmFwkBnt+aV0eAJ7uc+ouNokCqMBrQ7Oc5A77qhlcHfOgXIKz2SxqsiYTsDq+a0lWFM/XpyRWraqA== +"@aws-sdk/middleware-expect-continue@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.0.tgz#d4ca93f49cc4d2390f0bd983a1e75e3a34f13686" + integrity sha512-xyhDoY0qse8MvQC4RZCpT5WoIQ4/kwqv71Dh1s3mdXjL789Z4a6L/khBTSXECR5+egSZ960AInj3aR+CrezDRQ== dependencies: - "@aws-sdk/types" "3.965.0" - "@smithy/protocol-http" "^5.3.7" - "@smithy/types" "^4.11.0" + "@aws-sdk/types" "3.972.0" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-flexible-checksums@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.967.0.tgz#a6e368c0c1fe2351c3c3533e32ba4da3c25ed1c6" - integrity sha512-RuOan0fknnAep2pTSjmJ+Heomowxg3M3s+pcs0JEW/SYnvdwYhFOTcFg2VBvGv3V1kwXxXHMlC57zoGn6pNcqg== +"@aws-sdk/middleware-flexible-checksums@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.0.tgz#1d0fe6bf931c71513295adc0ea42fc92ee10fd67" + integrity sha512-zxK0ezmT7fLEPJ650S8QBc4rGDq5+5rdsLnnuZ6hPaZE4/+QtUoTw+gSDETyiWodNcRuz2ZWnqi17K+7nKtSRg== dependencies: "@aws-crypto/crc32" "5.2.0" "@aws-crypto/crc32c" "5.2.0" "@aws-crypto/util" "5.2.0" - "@aws-sdk/core" "3.967.0" - "@aws-sdk/crc64-nvme" "3.965.0" - "@aws-sdk/types" "3.965.0" + "@aws-sdk/core" "3.972.0" + "@aws-sdk/crc64-nvme" "3.972.0" + "@aws-sdk/types" "3.972.0" "@smithy/is-array-buffer" "^4.2.0" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/types" "^4.11.0" - "@smithy/util-middleware" "^4.2.7" - "@smithy/util-stream" "^4.5.8" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-stream" "^4.5.10" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.965.0.tgz#3de254300a49633c65f767248b6a68571f869e96" - integrity sha512-SfpSYqoPOAmdb3DBsnNsZ0vix+1VAtkUkzXM79JL3R5IfacpyKE2zytOgVAQx/FjhhlpSTwuXd+LRhUEVb3MaA== +"@aws-sdk/middleware-host-header@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.0.tgz#a878a2ecffec506ecb07bc3d8087c200b8b8fa82" + integrity sha512-3eztFI6F9/eHtkIaWKN3nT+PM+eQ6p1MALDuNshFk323ixuCZzOOVT8oUqtZa30Z6dycNXJwhlIq7NhUVFfimw== dependencies: - "@aws-sdk/types" "3.965.0" - "@smithy/protocol-http" "^5.3.7" - "@smithy/types" "^4.11.0" + "@aws-sdk/types" "3.972.0" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-location-constraint@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.965.0.tgz#afda3f3f68725262c13e91a578a9d0186ae01e9f" - integrity sha512-07T1rwAarQs33mVg5U28AsSdLB5JUXu9yBTBmspFGajKVsEahIyntf53j9mAXF1N2KR0bNdP0J4A0kst4t43UQ== +"@aws-sdk/middleware-location-constraint@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.0.tgz#33efe59a496762c1b9df3be5fda9796421598454" + integrity sha512-WpsxoVPzbGPQGb/jupNYjpE0REcCPtjz7Q7zAt+dyo7fxsLBn4J+Rp6AYzSa04J9VrmrvCqCbVLu6B88PlSKSQ== dependencies: - "@aws-sdk/types" "3.965.0" - "@smithy/types" "^4.11.0" + "@aws-sdk/types" "3.972.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.965.0.tgz#81eb6f075df979fa071347140dfba93cb87b5c9b" - integrity sha512-gjUvJRZT1bUABKewnvkj51LAynFrfz2h5DYAg5/2F4Utx6UOGByTSr9Rq8JCLbURvvzAbCtcMkkIJRxw+8Zuzw== +"@aws-sdk/middleware-logger@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.972.0.tgz#ae973b7fe8bffc5e371f2e058fe46fbb66b832f6" + integrity sha512-ZvdyVRwzK+ra31v1pQrgbqR/KsLD+wwJjHgko6JfoKUBIcEfAwJzQKO6HspHxdHWTVUz6MgvwskheR/TTYZl2g== dependencies: - "@aws-sdk/types" "3.965.0" - "@smithy/types" "^4.11.0" + "@aws-sdk/types" "3.972.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.965.0.tgz#82e92b7d1200e86e1a0643a0dca942bd63c9c355" - integrity sha512-6dvD+18Ni14KCRu+tfEoNxq1sIGVp9tvoZDZ7aMvpnA7mDXuRLrOjRQ/TAZqXwr9ENKVGyxcPl0cRK8jk1YWjA== +"@aws-sdk/middleware-recursion-detection@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.0.tgz#4d3f0f56de3fc3ead87b37f57f02e79cb156bed4" + integrity sha512-F2SmUeO+S6l1h6dydNet3BQIk173uAkcfU1HDkw/bUdRLAnh15D3HP9vCZ7oCPBNcdEICbXYDmx0BR9rRUHGlQ== dependencies: - "@aws-sdk/types" "3.965.0" + "@aws-sdk/types" "3.972.0" "@aws/lambda-invoke-store" "^0.2.2" - "@smithy/protocol-http" "^5.3.7" - "@smithy/types" "^4.11.0" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.967.0.tgz#9fe1ecc7d6de3dc79e533f7993782b6d2b811f07" - integrity sha512-Kkd6xGwTqbg7Spq1SI3ZX6PPYKdGLxdRGlXGNE3lnEPzNueQZQJKLZFpOY2aVdcAT+ytAY96N5szeeeAsFdUaA== - dependencies: - "@aws-sdk/core" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@aws-sdk/util-arn-parser" "3.966.0" - "@smithy/core" "^3.20.2" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/signature-v4" "^5.3.7" - "@smithy/smithy-client" "^4.10.4" - "@smithy/types" "^4.11.0" +"@aws-sdk/middleware-sdk-s3@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.0.tgz#2b0d89ecad90a90c7f4a3acd75966b9321ed2a66" + integrity sha512-0bcKFXWx+NZ7tIlOo7KjQ+O2rydiHdIQahrq+fN6k9Osky29v17guy68urUKfhTobR6iY6KvxkroFWaFtTgS5w== + dependencies: + "@aws-sdk/core" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@aws-sdk/util-arn-parser" "3.972.0" + "@smithy/core" "^3.20.6" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/signature-v4" "^5.3.8" + "@smithy/smithy-client" "^4.10.8" + "@smithy/types" "^4.12.0" "@smithy/util-config-provider" "^4.2.0" - "@smithy/util-middleware" "^4.2.7" - "@smithy/util-stream" "^4.5.8" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-stream" "^4.5.10" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/middleware-ssec@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.965.0.tgz#8e290e2297f19e451c1b4af69bb118ccdcc2a695" - integrity sha512-dke++CTw26y+a2D1DdVuZ4+2TkgItdx6TeuE0zOl4lsqXGvTBUG4eaIZalt7ZOAW5ys2pbDOk1bPuh4opoD3pQ== +"@aws-sdk/middleware-ssec@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.0.tgz#01135b21c53e02b044cb021989c2e4f1b906afb3" + integrity sha512-cEr2HtK4R2fi8Y0P95cjbr4KJOjKBt8ms95mEJhabJN8KM4CpD4iS/J1lhvMj+qWir0KBTV6gKmxECXdfL9S6w== dependencies: - "@aws-sdk/types" "3.965.0" - "@smithy/types" "^4.11.0" + "@aws-sdk/types" "3.972.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.967.0.tgz#4c09d57081ede083d68ff6cc6acc6e1e9cfa60c9" - integrity sha512-2qzJzZj5u+cZiG7kz3XJPaTH4ssUY/aet1kwJsUTFKrWeHUf7mZZkDFfkXP5cOffgiOyR5ZkrmJoLKAde9hshg== - dependencies: - "@aws-sdk/core" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@aws-sdk/util-endpoints" "3.965.0" - "@smithy/core" "^3.20.2" - "@smithy/protocol-http" "^5.3.7" - "@smithy/types" "^4.11.0" +"@aws-sdk/middleware-user-agent@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.0.tgz#32abe845222f7d40e6261afe99909b86b7a9132c" + integrity sha512-kFHQm2OCBJCzGWRafgdWHGFjitUXY/OxXngymcX4l8CiyiNDZB27HDDBg2yLj3OUJc4z4fexLMmP8r9vgag19g== + dependencies: + "@aws-sdk/core" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@aws-sdk/util-endpoints" "3.972.0" + "@smithy/core" "^3.20.6" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/nested-clients@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.967.0.tgz#249b836e1cc33fbd56cf32f5a2f4c353ca3fecb7" - integrity sha512-PYa7V8w0gaNux6Sz/Z7zrHmPloEE+EKpRxQIOG/D0askTr5Yd4oO2KGgcInf65uHK3f0Z9U4CTUGHZvQvABypA== +"@aws-sdk/nested-clients@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.972.0.tgz#8b1d78ac4dc340e1a5a4b385e82dae082de455c9" + integrity sha512-QGlbnuGzSQJVG6bR9Qw6G0Blh6abFR4VxNa61ttMbzy9jt28xmk2iGtrYLrQPlCCPhY6enHqjTWm3n3LOb0wAw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.967.0" - "@aws-sdk/middleware-host-header" "3.965.0" - "@aws-sdk/middleware-logger" "3.965.0" - "@aws-sdk/middleware-recursion-detection" "3.965.0" - "@aws-sdk/middleware-user-agent" "3.967.0" - "@aws-sdk/region-config-resolver" "3.965.0" - "@aws-sdk/types" "3.965.0" - "@aws-sdk/util-endpoints" "3.965.0" - "@aws-sdk/util-user-agent-browser" "3.965.0" - "@aws-sdk/util-user-agent-node" "3.967.0" - "@smithy/config-resolver" "^4.4.5" - "@smithy/core" "^3.20.2" - "@smithy/fetch-http-handler" "^5.3.8" - "@smithy/hash-node" "^4.2.7" - "@smithy/invalid-dependency" "^4.2.7" - "@smithy/middleware-content-length" "^4.2.7" - "@smithy/middleware-endpoint" "^4.4.3" - "@smithy/middleware-retry" "^4.4.19" - "@smithy/middleware-serde" "^4.2.8" - "@smithy/middleware-stack" "^4.2.7" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/node-http-handler" "^4.4.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/smithy-client" "^4.10.4" - "@smithy/types" "^4.11.0" - "@smithy/url-parser" "^4.2.7" + "@aws-sdk/core" "3.972.0" + "@aws-sdk/middleware-host-header" "3.972.0" + "@aws-sdk/middleware-logger" "3.972.0" + "@aws-sdk/middleware-recursion-detection" "3.972.0" + "@aws-sdk/middleware-user-agent" "3.972.0" + "@aws-sdk/region-config-resolver" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@aws-sdk/util-endpoints" "3.972.0" + "@aws-sdk/util-user-agent-browser" "3.972.0" + "@aws-sdk/util-user-agent-node" "3.972.0" + "@smithy/config-resolver" "^4.4.6" + "@smithy/core" "^3.20.6" + "@smithy/fetch-http-handler" "^5.3.9" + "@smithy/hash-node" "^4.2.8" + "@smithy/invalid-dependency" "^4.2.8" + "@smithy/middleware-content-length" "^4.2.8" + "@smithy/middleware-endpoint" "^4.4.7" + "@smithy/middleware-retry" "^4.4.23" + "@smithy/middleware-serde" "^4.2.9" + "@smithy/middleware-stack" "^4.2.8" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/node-http-handler" "^4.4.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/smithy-client" "^4.10.8" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" "@smithy/util-base64" "^4.3.0" "@smithy/util-body-length-browser" "^4.2.0" "@smithy/util-body-length-node" "^4.2.1" - "@smithy/util-defaults-mode-browser" "^4.3.18" - "@smithy/util-defaults-mode-node" "^4.2.21" - "@smithy/util-endpoints" "^3.2.7" - "@smithy/util-middleware" "^4.2.7" - "@smithy/util-retry" "^4.2.7" + "@smithy/util-defaults-mode-browser" "^4.3.22" + "@smithy/util-defaults-mode-node" "^4.2.25" + "@smithy/util-endpoints" "^3.2.8" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-retry" "^4.2.8" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.965.0.tgz#1fc2a0abdd17ea5ab35828c15c6e1f0240961bbe" - integrity sha512-RoMhu9ly2B0coxn8ctXosPP2WmDD0MkQlZGLjoYHQUOCBmty5qmCxOqBmBDa6wbWbB8xKtMQ/4VXloQOgzjHXg== +"@aws-sdk/region-config-resolver@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.0.tgz#9b0022b4ef34f62a82513e348064556967f32271" + integrity sha512-JyOf+R/6vJW8OEVFCAyzEOn2reri/Q+L0z9zx4JQSKWvTmJ1qeFO25sOm8VIfB8URKhfGRTQF30pfYaH2zxt/A== dependencies: - "@aws-sdk/types" "3.965.0" - "@smithy/config-resolver" "^4.4.5" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/types" "^4.11.0" + "@aws-sdk/types" "3.972.0" + "@smithy/config-resolver" "^4.4.6" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.967.0.tgz#06da6eceffab02f25d3fb85d2bbe77fe35cefe56" - integrity sha512-LfpCEqe/BliiwBtNImz/Txx6MQZkDqjP2bbk+Q4Km6mYhFU9pyPlKo3AYEHfGWn92Smt1nS3S8SzIK0nL6J2Fg== +"@aws-sdk/signature-v4-multi-region@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.972.0.tgz#159662f1f0b26fc178ef1c8c92cbd37e79ddbdc0" + integrity sha512-2udiRijmjpN81Pvajje4TsjbXDZNP6K9bYUanBYH8hXa/tZG5qfGCySD+TyX0sgDxCQmEDMg3LaQdfjNHBDEgQ== dependencies: - "@aws-sdk/middleware-sdk-s3" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@smithy/protocol-http" "^5.3.7" - "@smithy/signature-v4" "^5.3.7" - "@smithy/types" "^4.11.0" + "@aws-sdk/middleware-sdk-s3" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@smithy/protocol-http" "^5.3.8" + "@smithy/signature-v4" "^5.3.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/token-providers@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.967.0.tgz#4ff2fdc9656cb63fa04409dca81707a2e062b481" - integrity sha512-Qnd/nJ0CgeUa7zQczgmdQm0vYUF7pD1G0C+dR1T7huHQHRIsgCWIsCV9wNKzOFluqtcr6YAeuTwvY0+l8XWxnA== - dependencies: - "@aws-sdk/core" "3.967.0" - "@aws-sdk/nested-clients" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@smithy/property-provider" "^4.2.7" - "@smithy/shared-ini-file-loader" "^4.4.2" - "@smithy/types" "^4.11.0" +"@aws-sdk/token-providers@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.972.0.tgz#9471b8163a2f7bb1661ad87610fd58762051704a" + integrity sha512-kWlXG+y5nZhgXGEtb72Je+EvqepBPs8E3vZse//1PYLWs2speFqbGE/ywCXmzEJgHgVqSB/u/lqBvs5WlYmSqQ== + dependencies: + "@aws-sdk/core" "3.972.0" + "@aws-sdk/nested-clients" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/types@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.965.0.tgz#629f4d729cfc9c60047da912d450aa0b76e3afb9" - integrity sha512-jvodoJdMavvg8faN7co58vVJRO5MVep4JFPRzUNCzpJ98BDqWDk/ad045aMJcmxkLzYLS2UAnUmqjJ/tUPNlzQ== +"@aws-sdk/types@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.972.0.tgz#2c8ddf7fa63038da2e27d888c1bd5817b62e30fa" + integrity sha512-U7xBIbLSetONxb2bNzHyDgND3oKGoIfmknrEVnoEU4GUSs+0augUOIn9DIWGUO2ETcRFdsRUnmx9KhPT9Ojbug== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" "@aws-sdk/types@^3.222.0": @@ -587,22 +587,22 @@ "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@aws-sdk/util-arn-parser@3.966.0": - version "3.966.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.966.0.tgz#13f6720a62335d36515f9bda8cc92432c854c401" - integrity sha512-WcCLdKBK2nHhtOPE8du5XjOXaOToxGF3Ge8rgK2jaRpjkzjS0/mO+Jp2H4+25hOne3sP2twBu5BrvD9KoXQ5LQ== +"@aws-sdk/util-arn-parser@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.972.0.tgz#24a29435e1d8ad6a3c2282f62521fe9961346c54" + integrity sha512-RM5Mmo/KJ593iMSrALlHEOcc9YOIyOsDmS5x2NLOMdEmzv1o00fcpAkCQ02IGu1eFneBFT7uX0Mpag0HI+Cz2g== dependencies: tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.965.0.tgz#f5b22ae9a2de6e7506f00079edf92cf764f278f6" - integrity sha512-WqSCB0XIsGUwZWvrYkuoofi2vzoVHqyeJ2kN+WyoOsxPLTiQSBIoqm/01R/qJvoxwK/gOOF7su9i84Vw2NQQpQ== +"@aws-sdk/util-endpoints@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.972.0.tgz#0c483aa4853ea3858024bc502454ba395e533cb0" + integrity sha512-6JHsl1V/a1ZW8D8AFfd4R52fwZPnZ5H4U6DS8m/bWT8qad72NvbOFAC7U2cDtFs2TShqUO3TEiX/EJibtY3ijg== dependencies: - "@aws-sdk/types" "3.965.0" - "@smithy/types" "^4.11.0" - "@smithy/url-parser" "^4.2.7" - "@smithy/util-endpoints" "^3.2.7" + "@aws-sdk/types" "3.972.0" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" + "@smithy/util-endpoints" "^3.2.8" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": @@ -612,33 +612,33 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.965.0.tgz#37f75ba21827566401f56274fb0f7be99a37c0da" - integrity sha512-Xiza/zMntQGpkd2dETQeAK8So1pg5+STTzpcdGWxj5q0jGO5ayjqT/q1Q7BrsX5KIr6PvRkl9/V7lLCv04wGjQ== +"@aws-sdk/util-user-agent-browser@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.0.tgz#a0068c8e44361b312f5983324acc52d52a7f9d92" + integrity sha512-eOLdkQyoRbDgioTS3Orr7iVsVEutJyMZxvyZ6WAF95IrF0kfWx5Rd/KXnfbnG/VKa2CvjZiitWfouLzfVEyvJA== dependencies: - "@aws-sdk/types" "3.965.0" - "@smithy/types" "^4.11.0" + "@aws-sdk/types" "3.972.0" + "@smithy/types" "^4.12.0" bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.967.0": - version "3.967.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.967.0.tgz#89145311f3194c027c42945dda8b84e94e715bc8" - integrity sha512-yUz6pCGxyG4+QaDg0dkdIBphjQp8A9rrbZa/+U3RJgRrW47hy64clFQUROzj5Poy1Ur8ICVXEUpBsSqRuYEU2g== +"@aws-sdk/util-user-agent-node@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.0.tgz#1219a0291f6e51dd160be4805ee2a8c8065d6f26" + integrity sha512-GOy+AiSrE9kGiojiwlZvVVSXwylu4+fmP0MJfvras/MwP09RB/YtQuOVR1E0fKQc6OMwaTNBjgAbOEhxuWFbAw== dependencies: - "@aws-sdk/middleware-user-agent" "3.967.0" - "@aws-sdk/types" "3.965.0" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/types" "^4.11.0" + "@aws-sdk/middleware-user-agent" "3.972.0" + "@aws-sdk/types" "3.972.0" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@aws-sdk/xml-builder@3.965.0": - version "3.965.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.965.0.tgz#f4aa21591c6d365e639e54b664cc39572732951e" - integrity sha512-Tcod25/BTupraQwtb+Q+GX8bmEZfxIFjjJ/AvkhUZsZlkPeVluzq1uu3Oeqf145DCdMjzLIN6vab5MrykbDP+g== +"@aws-sdk/xml-builder@3.972.0": + version "3.972.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.972.0.tgz#8ae8f6f6e0a63d518c8c8ce9f40f3c94d9b67884" + integrity sha512-POaGMcXnozzqBUyJM3HLUZ9GR6OKJWPGJEmhtTnxZXt8B6JcJ/6K3xRJ5H/j8oovVLz8Wg6vFxAHv8lvuASxMg== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" fast-xml-parser "5.2.5" tslib "^2.6.2" @@ -1614,10 +1614,10 @@ axios "^1.12.2" uuid "11.1.0" -"@internxt/sdk@1.12.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@internxt/sdk/-/sdk-1.12.0.tgz#cf9c2f0ca8864a688e4c161f470e171997bff7bb" - integrity sha512-QrjH2yJP7MjxAVvkOe6quqX7RYzC6e3M0XcXralJEFybDpimJBJbvRTPUe7+9XRQ6gHdmYi1u3ySDVoZyZpkug== +"@internxt/sdk@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@internxt/sdk/-/sdk-1.12.1.tgz#fb3659eaf894d3fc21c5e622b41d1901ae2c9e17" + integrity sha512-JpPaGLOP3IAppjvLoDa8zQCvkDikFJosPeENzYHoqb66V+tp6zF7J6qdF0uyhFsR1gdr6FJMD2ymZJrWwoySxg== dependencies: axios "1.13.2" uuid "11.1.0" @@ -2089,12 +2089,12 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== -"@smithy/abort-controller@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.7.tgz#b475e8d7bb1aeee45fdc8d984c35e6ca9bb0428c" - integrity sha512-rzMY6CaKx2qxrbYbqjXWS0plqEy7LOdKHS0bg4ixJ6aoGDPNUcLWk/FRNuCILh7GKLG9TFUXYYeQQldMBBwuyw== +"@smithy/abort-controller@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.8.tgz#3bfd7a51acce88eaec9a65c3382542be9f3a053a" + integrity sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" "@smithy/chunked-blob-reader-native@^4.2.1": @@ -2112,136 +2112,136 @@ dependencies: tslib "^2.6.2" -"@smithy/config-resolver@^4.4.5": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.4.5.tgz#35e792b6db00887bdd029df9b41780ca005d064b" - integrity sha512-HAGoUAFYsUkoSckuKbCPayECeMim8pOu+yLy1zOxt1sifzEbrsRpYa+mKcMdiHKMeiqOibyPG0sFJnmaV/OGEg== +"@smithy/config-resolver@^4.4.6": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.4.6.tgz#bd7f65b3da93f37f1c97a399ade0124635c02297" + integrity sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ== dependencies: - "@smithy/node-config-provider" "^4.3.7" - "@smithy/types" "^4.11.0" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/types" "^4.12.0" "@smithy/util-config-provider" "^4.2.0" - "@smithy/util-endpoints" "^3.2.7" - "@smithy/util-middleware" "^4.2.7" + "@smithy/util-endpoints" "^3.2.8" + "@smithy/util-middleware" "^4.2.8" tslib "^2.6.2" -"@smithy/core@^3.20.2", "@smithy/core@^3.20.3": - version "3.20.3" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.20.3.tgz#c0f7ce0c8a7a2478d4f9986efcf90b40b9d6be2e" - integrity sha512-iwF1e0+H9vX+4reUA0WjKnc5ueg0Leinl5kI7wsie5bVXoYdzkpINz6NPYhpr/5InOv332a7wNV5AxJyFoVUsQ== +"@smithy/core@^3.20.6", "@smithy/core@^3.21.0": + version "3.21.0" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.21.0.tgz#adcc016036fd3d510e38adba026f86f41ee1d411" + integrity sha512-bg2TfzgsERyETAxc/Ims/eJX8eAnIeTi4r4LHpMpfF/2NyO6RsWis0rjKcCPaGksljmOb23BZRiCeT/3NvwkXw== dependencies: - "@smithy/middleware-serde" "^4.2.8" - "@smithy/protocol-http" "^5.3.7" - "@smithy/types" "^4.11.0" + "@smithy/middleware-serde" "^4.2.9" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" "@smithy/util-base64" "^4.3.0" "@smithy/util-body-length-browser" "^4.2.0" - "@smithy/util-middleware" "^4.2.7" - "@smithy/util-stream" "^4.5.8" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-stream" "^4.5.10" "@smithy/util-utf8" "^4.2.0" "@smithy/uuid" "^1.1.0" tslib "^2.6.2" -"@smithy/credential-provider-imds@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.7.tgz#bfbbf797599c3944509ef4c9690a5c960e153ef5" - integrity sha512-CmduWdCiILCRNbQWFR0OcZlUPVtyE49Sr8yYL0rZQ4D/wKxiNzBNS/YHemvnbkIWj623fplgkexUd/c9CAKdoA== +"@smithy/credential-provider-imds@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.8.tgz#b2f4bf759ab1c35c0dd00fa3470263c749ebf60f" + integrity sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw== dependencies: - "@smithy/node-config-provider" "^4.3.7" - "@smithy/property-provider" "^4.2.7" - "@smithy/types" "^4.11.0" - "@smithy/url-parser" "^4.2.7" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/property-provider" "^4.2.8" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" tslib "^2.6.2" -"@smithy/eventstream-codec@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.7.tgz#8f8bba50fb1871d98e0cda28b0842ade6ee72021" - integrity sha512-DrpkEoM3j9cBBWhufqBwnbbn+3nf1N9FP6xuVJ+e220jbactKuQgaZwjwP5CP1t+O94brm2JgVMD2atMGX3xIQ== +"@smithy/eventstream-codec@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.8.tgz#2f431f4bac22e40aa6565189ea350c6fcb5efafd" + integrity sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw== dependencies: "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" "@smithy/util-hex-encoding" "^4.2.0" tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.7.tgz#9270fff07c53c51b2d1cff9ce6227f2a01f8424d" - integrity sha512-ujzPk8seYoDBmABDE5YqlhQZAXLOrtxtJLrbhHMKjBoG5b4dK4i6/mEU+6/7yXIAkqOO8sJ6YxZl+h0QQ1IJ7g== +"@smithy/eventstream-serde-browser@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.8.tgz#04e2e1fad18e286d5595fbc0bff22e71251fca38" + integrity sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw== dependencies: - "@smithy/eventstream-serde-universal" "^4.2.7" - "@smithy/types" "^4.11.0" + "@smithy/eventstream-serde-universal" "^4.2.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/eventstream-serde-config-resolver@^4.3.7": - version "4.3.7" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.7.tgz#a57b74a230767171a232eca4bbf6283c3107bb9c" - integrity sha512-x7BtAiIPSaNaWuzm24Q/mtSkv+BrISO/fmheiJ39PKRNH3RmH2Hph/bUKSOBOBC9unqfIYDhKTHwpyZycLGPVQ== +"@smithy/eventstream-serde-config-resolver@^4.3.8": + version "4.3.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.8.tgz#b913d23834c6ebf1646164893e1bec89dffe4f3b" + integrity sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/eventstream-serde-node@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.7.tgz#4b0a306ef81bf1854c437322443e22f69845e7c7" - integrity sha512-roySCtHC5+pQq5lK4be1fZ/WR6s/AxnPaLfCODIPArtN2du8s5Ot4mKVK3pPtijL/L654ws592JHJ1PbZFF6+A== +"@smithy/eventstream-serde-node@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.8.tgz#5f2dfa2cbb30bf7564c8d8d82a9832e9313f5243" + integrity sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A== dependencies: - "@smithy/eventstream-serde-universal" "^4.2.7" - "@smithy/types" "^4.11.0" + "@smithy/eventstream-serde-universal" "^4.2.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.7.tgz#11ec67a86c8297d153ce3bc9505715ed80058c34" - integrity sha512-QVD+g3+icFkThoy4r8wVFZMsIP08taHVKjE6Jpmz8h5CgX/kk6pTODq5cht0OMtcapUx+xrPzUTQdA+TmO0m1g== +"@smithy/eventstream-serde-universal@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.8.tgz#a62b389941c28a8c3ab44a0c8ba595447e0258a7" + integrity sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ== dependencies: - "@smithy/eventstream-codec" "^4.2.7" - "@smithy/types" "^4.11.0" + "@smithy/eventstream-codec" "^4.2.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^5.3.8": - version "5.3.8" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.8.tgz#092a1b6dfdf5981853c7b0d98ebf048cc5e56c2b" - integrity sha512-h/Fi+o7mti4n8wx1SR6UHWLaakwHRx29sizvp8OOm7iqwKGFneT06GCSFhml6Bha5BT6ot5pj3CYZnCHhGC2Rg== +"@smithy/fetch-http-handler@^5.3.9": + version "5.3.9" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.9.tgz#edfc9e90e0c7538c81e22e748d62c0066cc91d58" + integrity sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA== dependencies: - "@smithy/protocol-http" "^5.3.7" - "@smithy/querystring-builder" "^4.2.7" - "@smithy/types" "^4.11.0" + "@smithy/protocol-http" "^5.3.8" + "@smithy/querystring-builder" "^4.2.8" + "@smithy/types" "^4.12.0" "@smithy/util-base64" "^4.3.0" tslib "^2.6.2" -"@smithy/hash-blob-browser@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.8.tgz#9748338e2d0e0bceecbee64739d71591c61924ff" - integrity sha512-07InZontqsM1ggTCPSRgI7d8DirqRrnpL7nIACT4PW0AWrgDiHhjGZzbAE5UtRSiU0NISGUYe7/rri9ZeWyDpw== +"@smithy/hash-blob-browser@^4.2.9": + version "4.2.9" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.9.tgz#4f8e19b12b5a1000b7292b30f5ee237d32216af3" + integrity sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg== dependencies: "@smithy/chunked-blob-reader" "^5.2.0" "@smithy/chunked-blob-reader-native" "^4.2.1" - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/hash-node@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.7.tgz#74a3d3ed8d47ecbe68d19e79af1d23f5abbb7253" - integrity sha512-PU/JWLTBCV1c8FtB8tEFnY4eV1tSfBc7bDBADHfn1K+uRbPgSJ9jnJp0hyjiFN2PMdPzxsf1Fdu0eo9fJ760Xw== +"@smithy/hash-node@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.8.tgz#c21eb055041716cd492dda3a109852a94b6d47bb" + integrity sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" "@smithy/util-buffer-from" "^4.2.0" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/hash-stream-node@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.7.tgz#4a0122edd3ea6a63866823d476af5afd1bd541e2" - integrity sha512-ZQVoAwNYnFMIbd4DUc517HuwNelJUY6YOzwqrbcAgCnVn+79/OK7UjwA93SPpdTOpKDVkLIzavWm/Ck7SmnDPQ== +"@smithy/hash-stream-node@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.8.tgz#d541a31c714ac9c85ae9fec91559e81286707ddb" + integrity sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.7.tgz#0afcc586db3032f94f3c1ea1054665b16f793b16" - integrity sha512-ncvgCr9a15nPlkhIUx3CU4d7E7WEuVJOV7fS7nnK2hLtPK9tYRBkMHQbhXU1VvvKeBm/O0x26OEoBq+ngFpOEQ== +"@smithy/invalid-dependency@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.8.tgz#c578bc6d5540c877aaed5034b986b5f6bd896451" + integrity sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": @@ -2258,170 +2258,170 @@ dependencies: tslib "^2.6.2" -"@smithy/md5-js@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.7.tgz#6d13a753a505532fbf78a083adc1bef532bb7e34" - integrity sha512-Wv6JcUxtOLTnxvNjDnAiATUsk8gvA6EeS8zzHig07dotpByYsLot+m0AaQEniUBjx97AC41MQR4hW0baraD1Xw== +"@smithy/md5-js@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.8.tgz#d354dbf9aea7a580be97598a581e35eef324ce22" + integrity sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/middleware-content-length@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.7.tgz#d9968dc1a6ac3aea9f05a92a900f231e72ba3fbc" - integrity sha512-GszfBfCcvt7kIbJ41LuNa5f0wvQCHhnGx/aDaZJCCT05Ld6x6U2s0xsc/0mBFONBZjQJp2U/0uSJ178OXOwbhg== +"@smithy/middleware-content-length@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.8.tgz#82c1df578fa70fe5800cf305b8788b9d2836a3e4" + integrity sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A== dependencies: - "@smithy/protocol-http" "^5.3.7" - "@smithy/types" "^4.11.0" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/middleware-endpoint@^4.4.3", "@smithy/middleware-endpoint@^4.4.4": - version "4.4.4" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.4.tgz#4f7166c653136cd9e6742a6a93adfc1619a2453a" - integrity sha512-TFxS6C5bGSc4djD1SLVmstCpfYDjmMnBR4KRDge5HEEtgSINGPKuxLvaAGfSPx5FFoMaTJkj4jJLNFggeWpRoQ== - dependencies: - "@smithy/core" "^3.20.3" - "@smithy/middleware-serde" "^4.2.8" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/shared-ini-file-loader" "^4.4.2" - "@smithy/types" "^4.11.0" - "@smithy/url-parser" "^4.2.7" - "@smithy/util-middleware" "^4.2.7" +"@smithy/middleware-endpoint@^4.4.10", "@smithy/middleware-endpoint@^4.4.7": + version "4.4.10" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.10.tgz#06259987e8557ae9654c991eca7046265cefda19" + integrity sha512-kwWpNltpxrvPabnjEFvwSmA+66l6s2ReCvgVSzW/z92LU4T28fTdgZ18IdYRYOrisu2NMQ0jUndRScbO65A/zg== + dependencies: + "@smithy/core" "^3.21.0" + "@smithy/middleware-serde" "^4.2.9" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" + "@smithy/url-parser" "^4.2.8" + "@smithy/util-middleware" "^4.2.8" tslib "^2.6.2" -"@smithy/middleware-retry@^4.4.19": - version "4.4.20" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.20.tgz#595ce65dbd4fd895a57b1e6d0573d8ef7eaa6f87" - integrity sha512-+UvEn/8HGzh/6zpe9xFGZe7go4/fzflggfeRG/TvdGLoUY7Gw+4RgzKJEPU2NvPo0k/j/o7vvx25ZWyOXeGoxw== - dependencies: - "@smithy/node-config-provider" "^4.3.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/service-error-classification" "^4.2.7" - "@smithy/smithy-client" "^4.10.5" - "@smithy/types" "^4.11.0" - "@smithy/util-middleware" "^4.2.7" - "@smithy/util-retry" "^4.2.7" +"@smithy/middleware-retry@^4.4.23": + version "4.4.26" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.26.tgz#a7315a5b18da04d7af9a74945737dcc808f7985f" + integrity sha512-ozZMoTAr+B2aVYfLYfkssFvc8ZV3p/vLpVQ7/k277xxUOA9ykSPe5obL2j6yHfbdrM/SZV7qj0uk/hSqavHrLw== + dependencies: + "@smithy/node-config-provider" "^4.3.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/service-error-classification" "^4.2.8" + "@smithy/smithy-client" "^4.10.11" + "@smithy/types" "^4.12.0" + "@smithy/util-middleware" "^4.2.8" + "@smithy/util-retry" "^4.2.8" "@smithy/uuid" "^1.1.0" tslib "^2.6.2" -"@smithy/middleware-serde@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.8.tgz#57f1baa98899fd96f4737465b3a363acf1963e0a" - integrity sha512-8rDGYen5m5+NV9eHv9ry0sqm2gI6W7mc1VSFMtn6Igo25S507/HaOX9LTHAS2/J32VXD0xSzrY0H5FJtOMS4/w== +"@smithy/middleware-serde@^4.2.9": + version "4.2.9" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.9.tgz#fd9d9b02b265aef67c9a30f55c2a5038fc9ca791" + integrity sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ== dependencies: - "@smithy/protocol-http" "^5.3.7" - "@smithy/types" "^4.11.0" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/middleware-stack@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.7.tgz#39d7bdf3a403b3d1f82caad71be66bfe7d88a790" - integrity sha512-bsOT0rJ+HHlZd9crHoS37mt8qRRN/h9jRve1SXUhVbkRzu0QaNYZp1i1jha4n098tsvROjcwfLlfvcFuJSXEsw== +"@smithy/middleware-stack@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.8.tgz#4fa9cfaaa05f664c9bb15d45608f3cb4f6da2b76" + integrity sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/node-config-provider@^4.3.7": - version "4.3.7" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.7.tgz#c023fa857b008c314f621fb5b124724c157b2fd3" - integrity sha512-7r58wq8sdOcrwWe+klL9y3bc4GW1gnlfnFOuL7CXa7UzfhzhxKuzNdtqgzmTV+53lEp9NXh5hY/S4UgjLOzPfw== +"@smithy/node-config-provider@^4.3.8": + version "4.3.8" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.8.tgz#85a0683448262b2eb822f64c14278d4887526377" + integrity sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg== dependencies: - "@smithy/property-provider" "^4.2.7" - "@smithy/shared-ini-file-loader" "^4.4.2" - "@smithy/types" "^4.11.0" + "@smithy/property-provider" "^4.2.8" + "@smithy/shared-ini-file-loader" "^4.4.3" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/node-http-handler@^4.4.7": - version "4.4.7" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.7.tgz#ebdb6c10e8d203af22429987ed795b105e4e848f" - integrity sha512-NELpdmBOO6EpZtWgQiHjoShs1kmweaiNuETUpuup+cmm/xJYjT4eUjfhrXRP4jCOaAsS3c3yPsP3B+K+/fyPCQ== +"@smithy/node-http-handler@^4.4.8": + version "4.4.8" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.8.tgz#298cc148c812b9a79f0ebd75e82bdab9e6d0bbcd" + integrity sha512-q9u+MSbJVIJ1QmJ4+1u+cERXkrhuILCBDsJUBAW1MPE6sFonbCNaegFuwW9ll8kh5UdyY3jOkoOGlc7BesoLpg== dependencies: - "@smithy/abort-controller" "^4.2.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/querystring-builder" "^4.2.7" - "@smithy/types" "^4.11.0" + "@smithy/abort-controller" "^4.2.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/querystring-builder" "^4.2.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/property-provider@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.7.tgz#cd0044e13495cf4064b3a6ed3299e5f549ba7513" - integrity sha512-jmNYKe9MGGPoSl/D7JDDs1C8b3dC8f/w78LbaVfoTtWy4xAd5dfjaFG9c9PWPihY4ggMQNQSMtzU77CNgAJwmA== +"@smithy/property-provider@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.8.tgz#6e37b30923d2d31370c50ce303a4339020031472" + integrity sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/protocol-http@^5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.7.tgz#2a58a1dfdb7cc90a8c79f081b5b6cf96d888891a" - integrity sha512-1r07pb994I20dD/c2seaZhoCuNYm0rWrvBxhCQ70brNh11M5Ml2ew6qJVo0lclB3jMIXirD4s2XRXRe7QEi0xA== +"@smithy/protocol-http@^5.3.8": + version "5.3.8" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.8.tgz#0938f69a3c3673694c2f489a640fce468ce75006" + integrity sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/querystring-builder@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.7.tgz#92ada986c6026a56b26e36c64bcea6ece68d0ecb" - integrity sha512-eKONSywHZxK4tBxe2lXEysh8wbBdvDWiA+RIuaxZSgCMmA0zMgoDpGLJhnyj+c0leOQprVnXOmcB4m+W9Rw7sg== +"@smithy/querystring-builder@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.8.tgz#2fa72d29eb1844a6a9933038bbbb14d6fe385e93" + integrity sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" "@smithy/util-uri-escape" "^4.2.0" tslib "^2.6.2" -"@smithy/querystring-parser@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.7.tgz#4c645b8164d7c17270b60fc2e0f5098ae3bf0fad" - integrity sha512-3X5ZvzUHmlSTHAXFlswrS6EGt8fMSIxX/c3Rm1Pni3+wYWB6cjGocmRIoqcQF9nU5OgGmL0u7l9m44tSUpfj9w== +"@smithy/querystring-parser@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.8.tgz#aa3f2456180ce70242e89018d0b1ebd4782a6347" + integrity sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/service-error-classification@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.7.tgz#bcad2f16874187135d24ab588a3bb4424b073d89" - integrity sha512-YB7oCbukqEb2Dlh3340/8g8vNGbs/QsNNRms+gv3N2AtZz9/1vSBx6/6tpwQpZMEJFs7Uq8h4mmOn48ZZ72MkA== +"@smithy/service-error-classification@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.8.tgz#6d89dbad4f4978d7b75a44af8c18c22455a16cdc" + integrity sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" -"@smithy/shared-ini-file-loader@^4.4.2": - version "4.4.2" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.2.tgz#8fa1b459de485b11185fe8c64182e3205a280ba9" - integrity sha512-M7iUUff/KwfNunmrgtqBfvZSzh3bmFgv/j/t1Y1dQ+8dNo34br1cqVEqy6v0mYEgi0DkGO7Xig0AnuOaEGVlcg== +"@smithy/shared-ini-file-loader@^4.4.3": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.3.tgz#6054215ecb3a6532b13aa49a9fbda640b63be50e" + integrity sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/signature-v4@^5.3.7": - version "5.3.7" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.7.tgz#20fe4e8e9abea413b1bdbf8560e74ad7cdee65cf" - integrity sha512-9oNUlqBlFZFOSdxgImA6X5GFuzE7V2H7VG/7E70cdLhidFbdtvxxt81EHgykGK5vq5D3FafH//X+Oy31j3CKOg== +"@smithy/signature-v4@^5.3.8": + version "5.3.8" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.8.tgz#796619b10b7cc9467d0625b0ebd263ae04fdfb76" + integrity sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg== dependencies: "@smithy/is-array-buffer" "^4.2.0" - "@smithy/protocol-http" "^5.3.7" - "@smithy/types" "^4.11.0" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" "@smithy/util-hex-encoding" "^4.2.0" - "@smithy/util-middleware" "^4.2.7" + "@smithy/util-middleware" "^4.2.8" "@smithy/util-uri-escape" "^4.2.0" "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/smithy-client@^4.10.4", "@smithy/smithy-client@^4.10.5": - version "4.10.5" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.10.5.tgz#574a50a0886c40a4f5284ab64550c1cc7f7a57f5" - integrity sha512-uotYm3WDne01R0DxBqF9J8WZc8gSgdj+uC7Lv/R+GinH4rxcgRLxLDayYkyGAboZlYszly6maQA+NGQ5N4gLhQ== - dependencies: - "@smithy/core" "^3.20.3" - "@smithy/middleware-endpoint" "^4.4.4" - "@smithy/middleware-stack" "^4.2.7" - "@smithy/protocol-http" "^5.3.7" - "@smithy/types" "^4.11.0" - "@smithy/util-stream" "^4.5.8" +"@smithy/smithy-client@^4.10.11", "@smithy/smithy-client@^4.10.8": + version "4.10.11" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.10.11.tgz#923db7327494d52562e8794435c1760c3392df9e" + integrity sha512-6o804SCyHGMXAb5mFJ+iTy9kVKv7F91a9szN0J+9X6p8A0NrdpUxdaC57aye2ipQkP2C4IAqETEpGZ0Zj77Haw== + dependencies: + "@smithy/core" "^3.21.0" + "@smithy/middleware-endpoint" "^4.4.10" + "@smithy/middleware-stack" "^4.2.8" + "@smithy/protocol-http" "^5.3.8" + "@smithy/types" "^4.12.0" + "@smithy/util-stream" "^4.5.10" tslib "^2.6.2" -"@smithy/types@^4.11.0": - version "4.11.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.11.0.tgz#c02f6184dcb47c4f0b387a32a7eca47956cc09f1" - integrity sha512-mlrmL0DRDVe3mNrjTcVcZEgkFmufITfUAPBEA+AHYiIeYyJebso/He1qLbP3PssRe22KUzLRpQSdBPbXdgZ2VA== +"@smithy/types@^4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.12.0.tgz#55d2479080922bda516092dbf31916991d9c6fee" + integrity sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw== dependencies: tslib "^2.6.2" @@ -2432,13 +2432,13 @@ dependencies: tslib "^2.6.2" -"@smithy/url-parser@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.7.tgz#3137e6f190c446dc8d89271c35f46a2e704bca19" - integrity sha512-/RLtVsRV4uY3qPWhBDsjwahAtt3x2IsMGnP5W1b2VZIe+qgCqkLxI1UOHDZp1Q1QSOrdOR32MF3Ph2JfWT1VHg== +"@smithy/url-parser@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.8.tgz#b44267cd704abe114abcd00580acdd9e4acc1177" + integrity sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA== dependencies: - "@smithy/querystring-parser" "^4.2.7" - "@smithy/types" "^4.11.0" + "@smithy/querystring-parser" "^4.2.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" "@smithy/util-base64@^4.3.0": @@ -2487,36 +2487,36 @@ dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^4.3.18": - version "4.3.19" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.19.tgz#b2a6617ef49a2d4ee87d1ff74e6d7e85a9064fa7" - integrity sha512-5fkC/yE5aepnzcF9dywKefGlJUMM7JEYUOv97TRDLTtGiiAqf7YG80HJWIBR0qWQPQW3dlQ5eFlUsySvt0rGEA== +"@smithy/util-defaults-mode-browser@^4.3.22": + version "4.3.25" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.25.tgz#ed341a6f6892f8ca50bb67fec4676072b79ed588" + integrity sha512-8ugoNMtss2dJHsXnqsibGPqoaafvWJPACmYKxJ4E6QWaDrixsAemmiMMAVbvwYadjR0H9G2+AlzsInSzRi8PSw== dependencies: - "@smithy/property-provider" "^4.2.7" - "@smithy/smithy-client" "^4.10.5" - "@smithy/types" "^4.11.0" + "@smithy/property-provider" "^4.2.8" + "@smithy/smithy-client" "^4.10.11" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^4.2.21": - version "4.2.22" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.22.tgz#a9230b965379a45d0cd9496037113d6c9bcbba93" - integrity sha512-f0KNaSK192+kv6GFkUDA0Tvr5B8eU2bFh1EO+cUdlzZ2jap5Zv7KZXa0B/7r/M1+xiYPSIuroxlxQVP1ua9kxg== - dependencies: - "@smithy/config-resolver" "^4.4.5" - "@smithy/credential-provider-imds" "^4.2.7" - "@smithy/node-config-provider" "^4.3.7" - "@smithy/property-provider" "^4.2.7" - "@smithy/smithy-client" "^4.10.5" - "@smithy/types" "^4.11.0" +"@smithy/util-defaults-mode-node@^4.2.25": + version "4.2.28" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.28.tgz#041cd486f342ec56d0b8a46a5d5c97933cf813d7" + integrity sha512-mjUdcP8h3E0K/XvNMi9oBXRV3DMCzeRiYIieZ1LQ7jq5tu6GH/GTWym7a1xIIE0pKSoLcpGsaImuQhGPSIJzAA== + dependencies: + "@smithy/config-resolver" "^4.4.6" + "@smithy/credential-provider-imds" "^4.2.8" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/property-provider" "^4.2.8" + "@smithy/smithy-client" "^4.10.11" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/util-endpoints@^3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.7.tgz#78cd5dd4aac8d9977f49d256d1e3418a09cade72" - integrity sha512-s4ILhyAvVqhMDYREeTS68R43B1V5aenV5q/V1QpRQJkCXib5BPRo4s7uNdzGtIKxaPHCfU/8YkvPAEvTpxgspg== +"@smithy/util-endpoints@^3.2.8": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.8.tgz#5650bda2adac989ff2e562606088c5de3dcb1b36" + integrity sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw== dependencies: - "@smithy/node-config-provider" "^4.3.7" - "@smithy/types" "^4.11.0" + "@smithy/node-config-provider" "^4.3.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" "@smithy/util-hex-encoding@^4.2.0": @@ -2526,31 +2526,31 @@ dependencies: tslib "^2.6.2" -"@smithy/util-middleware@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.7.tgz#1cae2c4fd0389ac858d29f7170c33b4443e83524" - integrity sha512-i1IkpbOae6NvIKsEeLLM9/2q4X+M90KV3oCFgWQI4q0Qz+yUZvsr+gZPdAEAtFhWQhAHpTsJO8DRJPuwVyln+w== +"@smithy/util-middleware@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.8.tgz#1da33f29a74c7ebd9e584813cb7e12881600a80a" + integrity sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A== dependencies: - "@smithy/types" "^4.11.0" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/util-retry@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.7.tgz#4abb0d85fbd766757d4569227a68d7caa3a7b8bb" - integrity sha512-SvDdsQyF5CIASa4EYVT02LukPHVzAgUA4kMAuZ97QJc2BpAqZfA4PINB8/KOoCXEw9tsuv/jQjMeaHFvxdLNGg== +"@smithy/util-retry@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.8.tgz#23f3f47baf0681233fd0c37b259e60e268c73b11" + integrity sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg== dependencies: - "@smithy/service-error-classification" "^4.2.7" - "@smithy/types" "^4.11.0" + "@smithy/service-error-classification" "^4.2.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" -"@smithy/util-stream@^4.5.8": - version "4.5.8" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.8.tgz#f3c79ff0720ebbae5b90e15be5482b4eeb297882" - integrity sha512-ZnnBhTapjM0YPGUSmOs0Mcg/Gg87k503qG4zU2v/+Js2Gu+daKOJMeqcQns8ajepY8tgzzfYxl6kQyZKml6O2w== +"@smithy/util-stream@^4.5.10": + version "4.5.10" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.10.tgz#3a7b56f0bdc3833205f80fea67d8e76756ea055b" + integrity sha512-jbqemy51UFSZSp2y0ZmRfckmrzuKww95zT9BYMmuJ8v3altGcqjwoV1tzpOwuHaKrwQrCjIzOib499ymr2f98g== dependencies: - "@smithy/fetch-http-handler" "^5.3.8" - "@smithy/node-http-handler" "^4.4.7" - "@smithy/types" "^4.11.0" + "@smithy/fetch-http-handler" "^5.3.9" + "@smithy/node-http-handler" "^4.4.8" + "@smithy/types" "^4.12.0" "@smithy/util-base64" "^4.3.0" "@smithy/util-buffer-from" "^4.2.0" "@smithy/util-hex-encoding" "^4.2.0" @@ -2580,13 +2580,13 @@ "@smithy/util-buffer-from" "^4.2.0" tslib "^2.6.2" -"@smithy/util-waiter@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.7.tgz#1865defa25e4812c3e338447587332fb316421d8" - integrity sha512-vHJFXi9b7kUEpHWUCY3Twl+9NPOZvQ0SAi+Ewtn48mbiJk4JY9MZmKQjGB4SCvVb9WPiSphZJYY6RIbs+grrzw== +"@smithy/util-waiter@^4.2.8": + version "4.2.8" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.8.tgz#35d7bd8b2be7a2ebc12d8c38a0818c501b73e928" + integrity sha512-n+lahlMWk+aejGuax7DPWtqav8HYnWxQwR+LCG2BgCUmaGcTe9qZCFsmw8TMg9iG75HOwhrJCX9TCJRLH+Yzqg== dependencies: - "@smithy/abort-controller" "^4.2.7" - "@smithy/types" "^4.11.0" + "@smithy/abort-controller" "^4.2.8" + "@smithy/types" "^4.12.0" tslib "^2.6.2" "@smithy/uuid@^1.1.0": @@ -2758,10 +2758,10 @@ dependencies: undici-types "~7.16.0" -"@types/node@25.0.7": - version "25.0.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.7.tgz#afd2f0d34358631a287c6726dabe0c845abc2bae" - integrity sha512-C/er7DlIZgRJO7WtTdYovjIFzGsz0I95UlMyR9anTb4aCpBSRWe5Jc1/RvLKUfzmOxHPGjSE5+63HgLtndxU4w== +"@types/node@25.0.9": + version "25.0.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.9.tgz#81ce3579ddf67cae812a9d49c8a0ab90c82e7782" + integrity sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw== dependencies: undici-types "~7.16.0" @@ -3216,16 +3216,36 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + basic-ftp@^5.0.2: version "5.0.5" resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.5.tgz#14a474f5fffecca1f4f406f1c26b18f800225ac0" integrity sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg== +better-sqlite3@12.6.2: + version "12.6.2" + resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-12.6.2.tgz#770649f28a62e543a360f3dfa1afe4cc944b1937" + integrity sha512-8VYKM3MjCa9WcaSAI3hzwhmyHVlH8tiGFwf0RlTsZPWJ1I5MkzjiudCo4KC4DxOaL/53A5B1sI/IbldNFDbsKA== + dependencies: + bindings "^1.5.0" + prebuild-install "^7.1.1" + binary-extensions@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + bip39@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3" @@ -3233,6 +3253,15 @@ bip39@3.1.0: dependencies: "@noble/hashes" "^1.2.0" +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + bodec@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/bodec/-/bodec-0.1.0.tgz#bc851555430f23c9f7650a75ef64c6a94c3418cc" @@ -3317,6 +3346,14 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + bundle-name@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" @@ -3474,6 +3511,11 @@ chokidar@3.6.0, chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + clean-stack@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-3.0.1.tgz#155bf0b2221bf5f4fba89528d24c5953f17fe3a8" @@ -3818,6 +3860,11 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -3895,7 +3942,7 @@ detect-indent@^7.0.1: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-7.0.1.tgz#cbb060a12842b9c4d333f1cac4aa4da1bb66bc25" integrity sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g== -detect-libc@^2.1.2: +detect-libc@^2.0.0, detect-libc@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== @@ -3969,6 +4016,13 @@ encodeurl@^2.0.0: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + 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" + enquirer@2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -4282,6 +4336,11 @@ eventemitter3@^5.0.1: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expect-type@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.2.2.tgz#c030a329fb61184126c8447585bc75a7ec6fbff3" @@ -4419,6 +4478,11 @@ file-entry-cache@^8.0.0: dependencies: flat-cache "^4.0.0" +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" @@ -4524,6 +4588,11 @@ fresh@^2.0.0: resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4" integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A== +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@^8.1: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -4647,6 +4716,11 @@ git-sha1@^0.1.2: resolved "https://registry.yarnpkg.com/git-sha1/-/git-sha1-0.1.2.tgz#599ac192b71875825e13a445f3a6e05118c2f745" integrity sha512-2e/nZezdVlyCopOCYHeW0onkbZg7xP1Ad6pndPy1rCygeRykefUS6r7oA5cJRGEFvseiaz5a/qUHFVX1dd6Isg== +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + github-slugger@^2: version "2.0.0" resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" @@ -4881,6 +4955,11 @@ iconv-lite@^0.7.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" @@ -4914,12 +4993,12 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -inherits@^2.0.3, inherits@~2.0.4: +inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@^1.3.4, ini@^1.3.5: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -5592,6 +5671,11 @@ minimatch@^9.0.4, minimatch@^9.0.5: dependencies: brace-expansion "^2.0.1" +minimist@^1.2.0, minimist@^1.2.3: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" @@ -5602,6 +5686,11 @@ mixme@^0.5.1: resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.10.tgz#d653b2984b75d9018828f1ea333e51717ead5f51" integrity sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q== +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + mkdirp@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" @@ -5647,6 +5736,11 @@ nanoid@^3.3.11: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== +napi-build-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-2.0.0.tgz#13c22c0187fcfccce1461844136372a47ddc027e" + integrity sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -5679,6 +5773,13 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" +node-abi@^3.3.0: + version "3.87.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.87.0.tgz#423e28fea5c2f195fddd98acded9938c001ae6dd" + integrity sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ== + dependencies: + semver "^7.3.5" + node-releases@^2.0.19: version "2.0.20" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.20.tgz#e26bb79dbdd1e64a146df389c699014c611cbc27" @@ -5746,13 +5847,13 @@ obug@^2.1.1: resolved "https://registry.yarnpkg.com/obug/-/obug-2.1.1.tgz#2cba74ff241beb77d63055ddf4cd1e9f90b538be" integrity sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ== -oclif@4.22.65: - version "4.22.65" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.22.65.tgz#ae0a2ef2b721deef80ba64347476846c812a5003" - integrity sha512-pJW0P+gUzIAS6gSQH11jmbu9xQgjfxgBV+FjWvvwu68NUtljtpZm1w3uftXUVk51Ra40r9XB1Jh/Mcbb+I6yJw== +oclif@4.22.67: + version "4.22.67" + resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.22.67.tgz#c29692b617fc23947a16fcb726141b49f220c24d" + integrity sha512-7r5jNcJRvrlnHmIlXIHoiUILKtxxrcDXkdYGXseexjJrJsywdTjhDspx0D/IshJ9cZyKHF9J3mxpILjvZ/7a3g== dependencies: - "@aws-sdk/client-cloudfront" "^3.966.0" - "@aws-sdk/client-s3" "^3.966.0" + "@aws-sdk/client-cloudfront" "^3.971.0" + "@aws-sdk/client-s3" "^3.971.0" "@inquirer/confirm" "^3.1.22" "@inquirer/input" "^2.2.4" "@inquirer/select" "^2.5.0" @@ -5783,7 +5884,7 @@ on-finished@^2.4.1: dependencies: ee-first "1.1.1" -once@^1.4.0: +once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -6141,15 +6242,33 @@ powershell-utils@^0.1.0: resolved "https://registry.yarnpkg.com/powershell-utils/-/powershell-utils-0.1.0.tgz#5a42c9a824fb4f2f251ccb41aaae73314f5d6ac2" integrity sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A== +prebuild-install@^7.1.1: + version "7.1.3" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.3.tgz#d630abad2b147443f20a212917beae68b8092eec" + integrity sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^2.0.0" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@3.7.4: - version "3.7.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" - integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== +prettier@3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.0.tgz#f72cf71505133f40cfa2ef77a2668cdc558fcd69" + integrity sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA== promptly@2.2.0: version "2.2.0" @@ -6195,6 +6314,14 @@ pstree.remy@^1.1.8: resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== +pump@^3.0.0: + 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" + punycode@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" @@ -6244,6 +6371,16 @@ raw-body@^3.0.1: iconv-lite "~0.7.0" unpipe "~1.0.0" +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + read@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" @@ -6251,7 +6388,7 @@ read@^1.0.4: dependencies: mute-stream "~0.0.4" -readable-stream@^3.4.0, readable-stream@^3.6.2: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.2: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -6700,6 +6837,20 @@ signal-exit@^4.1.0: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -6956,6 +7107,11 @@ 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== +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + strnum@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.1.1.tgz#cf2a6e0cf903728b8b2c4b971b7e36b4e82d46ab" @@ -6992,6 +7148,27 @@ systeminformation@^5.7: resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.27.14.tgz#9f2b181521c151dad4972d47936ebb49a3271e9d" integrity sha512-3DoNDYSZBLxBwaJtQGWNpq0fonga/VZ47HY1+7/G3YoIPaPz93Df6egSzzTKbEMmlzUpy3eQ0nR9REuYIycXGg== +tar-fs@^2.0.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.4.tgz#800824dbf4ef06ded9afea4acafe71c67c76b930" + integrity sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + text-hex@1.0.x: version "1.0.0" resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" From 9be5eb3bdaabca775c043271a9cccea997ee4e50 Mon Sep 17 00:00:00 2001 From: larry-internxt Date: Thu, 22 Jan 2026 10:31:07 +0100 Subject: [PATCH 02/43] deps: update dependencies --- package.json | 8 ++++---- yarn.lock | 39 ++++++++++++++++++++++----------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 5836d62a..7b7da41e 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "@internxt/lib": "1.4.1", "@internxt/sdk": "1.12.1", "@oclif/core": "4.8.0", - "@oclif/plugin-autocomplete": "3.2.39", + "@oclif/plugin-autocomplete": "3.2.40", "axios": "1.13.2", "better-sqlite3": "12.6.2", "bip39": "3.1.0", @@ -71,7 +71,7 @@ "@types/cli-progress": "3.11.6", "@types/express": "5.0.6", "@types/mime-types": "3.0.1", - "@types/node": "25.0.9", + "@types/node": "25.0.10", "@types/range-parser": "1.2.7", "@vitest/coverage-istanbul": "4.0.17", "@vitest/spy": "4.0.17", @@ -79,8 +79,8 @@ "husky": "9.1.7", "lint-staged": "16.2.7", "nodemon": "3.1.11", - "oclif": "4.22.67", - "prettier": "3.8.0", + "oclif": "4.22.68", + "prettier": "3.8.1", "rimraf": "6.1.2", "ts-node": "10.9.2", "typescript": "5.9.3", diff --git a/yarn.lock b/yarn.lock index d425fb1b..97cbd55c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1736,10 +1736,10 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/plugin-autocomplete@3.2.39": - version "3.2.39" - resolved "https://registry.yarnpkg.com/@oclif/plugin-autocomplete/-/plugin-autocomplete-3.2.39.tgz#1830ab1388dc48211b925e8f78563135d118c495" - integrity sha512-OwAZNnSpuDjKyhAwoOJkFWxGswPFKBB4hpNIMsj6PUtbKwGBPmD+2wGGPgTsDioVwLmUELSb2bZ+1dxHfvXmvg== +"@oclif/plugin-autocomplete@3.2.40": + version "3.2.40" + resolved "https://registry.yarnpkg.com/@oclif/plugin-autocomplete/-/plugin-autocomplete-3.2.40.tgz#7c997d7263e23912d24ce0a823f99815d94a9244" + integrity sha512-HCfDuUV3l5F5Wz7SKkaoFb+OMQ5vKul8zvsPNgI0QbZcQuGHmn3svk+392wSfXboyA1gq8kzEmKPAoQK6r6UNw== dependencies: "@oclif/core" "^4" ansis "^3.16.0" @@ -2758,10 +2758,10 @@ dependencies: undici-types "~7.16.0" -"@types/node@25.0.9": - version "25.0.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.9.tgz#81ce3579ddf67cae812a9d49c8a0ab90c82e7782" - integrity sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw== +"@types/node@25.0.10": + version "25.0.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.10.tgz#4864459c3c9459376b8b75fd051315071c8213e7" + integrity sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg== dependencies: undici-types "~7.16.0" @@ -5484,6 +5484,11 @@ lodash@^4.17.14, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lodash@^4.17.23: + version "4.17.23" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a" + integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w== + log-update@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4" @@ -5847,10 +5852,10 @@ obug@^2.1.1: resolved "https://registry.yarnpkg.com/obug/-/obug-2.1.1.tgz#2cba74ff241beb77d63055ddf4cd1e9f90b538be" integrity sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ== -oclif@4.22.67: - version "4.22.67" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.22.67.tgz#c29692b617fc23947a16fcb726141b49f220c24d" - integrity sha512-7r5jNcJRvrlnHmIlXIHoiUILKtxxrcDXkdYGXseexjJrJsywdTjhDspx0D/IshJ9cZyKHF9J3mxpILjvZ/7a3g== +oclif@4.22.68: + version "4.22.68" + resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.22.68.tgz#0fae0245e9965c153d5d296943c5d05ea336122a" + integrity sha512-XYAhVTgnomHmvaOe1upNI8rTV4dNmkCF4T9onhVVUiEF4Z8M8rNJXuW8Ba5+BFLyfRIL+Rp/sFZU6EYWbZ7DEg== dependencies: "@aws-sdk/client-cloudfront" "^3.971.0" "@aws-sdk/client-s3" "^3.971.0" @@ -5870,7 +5875,7 @@ oclif@4.22.67: fs-extra "^8.1" github-slugger "^2" got "^13" - lodash "^4.17.21" + lodash "^4.17.23" normalize-package-data "^6" semver "^7.7.3" sort-package-json "^2.15.1" @@ -6265,10 +6270,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.0.tgz#f72cf71505133f40cfa2ef77a2668cdc558fcd69" - integrity sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA== +prettier@3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.1.tgz#edf48977cf991558f4fcbd8a3ba6015ba2a3a173" + integrity sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg== promptly@2.2.0: version "2.2.0" From 9e31270be260fc5a10bdc6db3ba12fd909308456 Mon Sep 17 00:00:00 2001 From: larry-internxt Date: Fri, 23 Jan 2026 11:36:46 +0100 Subject: [PATCH 03/43] refactor: update DRIVE_SQLITE_FILE path to use .db extension and remove unused INTERNXT_TMP_DIR --- src/constants/configs.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/constants/configs.ts b/src/constants/configs.ts index a66061a6..726acc4c 100644 --- a/src/constants/configs.ts +++ b/src/constants/configs.ts @@ -3,9 +3,8 @@ import os from 'node:os'; export const INTERNXT_CLI_DATA_DIR = path.join(os.homedir(), '.internxt-cli'); export const INTERNXT_CLI_LOGS_DIR = path.join(INTERNXT_CLI_DATA_DIR, 'logs'); -export const INTERNXT_TMP_DIR = os.tmpdir(); export const CREDENTIALS_FILE = path.join(INTERNXT_CLI_DATA_DIR, '.inxtcli'); -export const DRIVE_SQLITE_FILE = path.join(INTERNXT_CLI_DATA_DIR, 'internxt-cli-drive.sqlite'); +export const DRIVE_SQLITE_FILE = path.join(INTERNXT_CLI_DATA_DIR, 'internxt-cli-drive.db'); export const WEBDAV_SSL_CERTS_DIR = path.join(INTERNXT_CLI_DATA_DIR, 'certs'); export const WEBDAV_CONFIGS_FILE = path.join(INTERNXT_CLI_DATA_DIR, 'config.webdav.inxt'); export const WEBDAV_DEFAULT_HOST = '127.0.0.1'; From 9c30d8d5357b7b28a611afde997696df2a7c7da3 Mon Sep 17 00:00:00 2001 From: larryrider Date: Fri, 30 Jan 2026 16:39:59 +0100 Subject: [PATCH 04/43] refactor: remove unused attributes from DriveFile and DriveFolder models --- .../drive-file/drive-file.attributes.ts | 5 +-- .../database/drive-file/drive-file.domain.ts | 14 ------ .../database/drive-file/drive-file.model.ts | 43 +++++++++++++++++++ .../drive-folder/drive-folder.attributes.ts | 5 +-- .../drive-folder/drive-folder.domain.ts | 24 +---------- .../drive-folder/drive-folder.model.ts | 25 +++++++++++ src/services/drive/drive-file.service.ts | 2 - src/types/drive.types.ts | 19 ++------ src/utils/drive.utils.ts | 8 ---- src/webdav/handlers/PROPFIND.handler.ts | 7 +-- test/fixtures/drive.fixture.ts | 11 ----- 11 files changed, 75 insertions(+), 88 deletions(-) create mode 100644 src/services/database/drive-file/drive-file.model.ts create mode 100644 src/services/database/drive-folder/drive-folder.model.ts diff --git a/src/services/database/drive-file/drive-file.attributes.ts b/src/services/database/drive-file/drive-file.attributes.ts index 81da5b72..e3ea4b32 100644 --- a/src/services/database/drive-file/drive-file.attributes.ts +++ b/src/services/database/drive-file/drive-file.attributes.ts @@ -1,13 +1,10 @@ export interface DriveFileAttributes { - id: number; + uuid: string; name: string; type?: string; - uuid: string; fileId: string; - folderId: number; folderUuid: string; bucket: string; - relativePath: string; createdAt: Date; updatedAt: Date; size: number; diff --git a/src/services/database/drive-file/drive-file.domain.ts b/src/services/database/drive-file/drive-file.domain.ts index 55044886..9fabcb04 100644 --- a/src/services/database/drive-file/drive-file.domain.ts +++ b/src/services/database/drive-file/drive-file.domain.ts @@ -2,15 +2,12 @@ import { DriveFileItem } from '../../../types/drive.types'; import { DriveFileAttributes } from './drive-file.attributes'; export class DriveFile implements DriveFileAttributes { - id: number; name: string; type?: string; uuid: string; fileId: string; - folderId: number; folderUuid: string; bucket: string; - relativePath: string; createdAt: Date; updatedAt: Date; size: number; @@ -19,15 +16,12 @@ export class DriveFile implements DriveFileAttributes { modificationTime: Date; constructor({ - id, name, type, uuid, fileId, - folderId, folderUuid, bucket, - relativePath, createdAt, updatedAt, size, @@ -35,15 +29,12 @@ export class DriveFile implements DriveFileAttributes { creationTime, modificationTime, }: DriveFileAttributes) { - this.id = id; this.name = name; this.type = type; this.uuid = uuid; this.fileId = fileId; - this.folderId = folderId; this.folderUuid = folderUuid; this.bucket = bucket; - this.relativePath = relativePath; this.createdAt = createdAt; this.updatedAt = updatedAt; this.size = size; @@ -58,15 +49,12 @@ export class DriveFile implements DriveFileAttributes { public toJSON(): DriveFileAttributes { return { - id: this.id, name: this.name, type: this.type, uuid: this.uuid, fileId: this.fileId, - folderId: this.folderId, folderUuid: this.folderUuid, bucket: this.bucket, - relativePath: this.relativePath, createdAt: this.createdAt, updatedAt: this.updatedAt, size: this.size, @@ -79,12 +67,10 @@ export class DriveFile implements DriveFileAttributes { public toItem(): DriveFileItem { return { itemType: 'file', - id: this.id, name: this.name, type: this.type, uuid: this.uuid, fileId: this.fileId, - folderId: this.folderId, folderUuid: this.folderUuid, bucket: this.bucket, createdAt: this.createdAt, diff --git a/src/services/database/drive-file/drive-file.model.ts b/src/services/database/drive-file/drive-file.model.ts new file mode 100644 index 00000000..23da87c1 --- /dev/null +++ b/src/services/database/drive-file/drive-file.model.ts @@ -0,0 +1,43 @@ +import { DriveFileAttributes } from './drive-file.attributes'; +import { Column, Entity, PrimaryColumn } from 'typeorm'; + +@Entity('drive_file') +export class DriveFileModel implements DriveFileAttributes { + @PrimaryColumn({ nullable: false, type: 'varchar' }) + declare uuid: string; + + @Column({ nullable: false, type: 'varchar' }) + declare name: string; + + @Column({ nullable: true, type: 'varchar' }) + declare type: string; + + @Column({ nullable: false, type: 'varchar' }) + declare fileId: string; + + @Column({ nullable: false, type: 'varchar' }) + declare folderUuid: string; + + @Column({ nullable: false, type: 'varchar' }) + declare bucket: string; + + @Column({ nullable: false, type: 'varchar' }) + declare createdAt: Date; + + @Column({ nullable: false, type: 'varchar' }) + declare updatedAt: Date; + + @Column({ nullable: false, type: 'bigint' }) + declare size: number; + + @Column({ nullable: false, type: 'varchar' }) + declare status: 'EXISTS' | 'TRASHED' | 'DELETED'; + + @Column({ nullable: false, type: 'varchar' }) + declare creationTime: Date; + + @Column({ nullable: false, type: 'varchar' }) + declare modificationTime: Date; +} + +export default DriveFileModel; diff --git a/src/services/database/drive-folder/drive-folder.attributes.ts b/src/services/database/drive-folder/drive-folder.attributes.ts index 83f73833..6b4ca49d 100644 --- a/src/services/database/drive-folder/drive-folder.attributes.ts +++ b/src/services/database/drive-folder/drive-folder.attributes.ts @@ -1,10 +1,7 @@ export interface DriveFolderAttributes { - id: number; - name: string; uuid: string; + name: string; status: 'EXISTS' | 'TRASHED'; - relativePath: string; - parentId: number | null; parentUuid: string | null; createdAt: Date; updatedAt: Date; diff --git a/src/services/database/drive-folder/drive-folder.domain.ts b/src/services/database/drive-folder/drive-folder.domain.ts index 8974f47a..c8b819e6 100644 --- a/src/services/database/drive-folder/drive-folder.domain.ts +++ b/src/services/database/drive-folder/drive-folder.domain.ts @@ -2,32 +2,16 @@ import { DriveFolderItem } from '../../../types/drive.types'; import { DriveFolderAttributes } from './drive-folder.attributes'; export class DriveFolder implements DriveFolderAttributes { - id: number; name: string; uuid: string; - relativePath: string; - parentId: number | null; parentUuid: string | null; createdAt: Date; updatedAt: Date; status: DriveFolderAttributes['status']; - constructor({ - id, - name, - uuid, - relativePath, - parentId, - parentUuid, - createdAt, - updatedAt, - status, - }: DriveFolderAttributes) { - this.id = id; + constructor({ name, uuid, parentUuid, createdAt, updatedAt, status }: DriveFolderAttributes) { this.name = name; this.uuid = uuid; - this.relativePath = relativePath; - this.parentId = parentId; this.parentUuid = parentUuid; this.createdAt = createdAt; this.updatedAt = updatedAt; @@ -40,12 +24,9 @@ export class DriveFolder implements DriveFolderAttributes { public toJSON(): DriveFolderAttributes { return { - id: this.id, name: this.name, uuid: this.uuid, status: this.status, - relativePath: this.relativePath, - parentId: this.parentId, parentUuid: this.parentUuid, createdAt: this.createdAt, updatedAt: this.updatedAt, @@ -55,15 +36,12 @@ export class DriveFolder implements DriveFolderAttributes { public toItem(): DriveFolderItem { return { itemType: 'folder', - id: this.id, name: this.name, uuid: this.uuid, status: this.status, - parentId: this.parentId, parentUuid: this.parentUuid, createdAt: this.createdAt, updatedAt: this.updatedAt, - encryptedName: '', bucket: null, }; } diff --git a/src/services/database/drive-folder/drive-folder.model.ts b/src/services/database/drive-folder/drive-folder.model.ts new file mode 100644 index 00000000..ce41411a --- /dev/null +++ b/src/services/database/drive-folder/drive-folder.model.ts @@ -0,0 +1,25 @@ +import { Column, Entity, PrimaryColumn } from 'typeorm'; +import { DriveFolderAttributes } from './drive-folder.attributes'; + +@Entity('drive_file') +export class DriveFolderModel implements DriveFolderAttributes { + @PrimaryColumn({ nullable: false, type: 'varchar' }) + declare uuid: string; + + @Column({ nullable: false, type: 'varchar' }) + declare name: string; + + @Column({ nullable: false, type: 'varchar' }) + declare status: 'EXISTS' | 'TRASHED'; + + @Column({ nullable: false, type: 'varchar' }) + declare parentUuid: string | null; + + @Column({ nullable: false, type: 'varchar' }) + declare createdAt: Date; + + @Column({ nullable: false, type: 'varchar' }) + declare updatedAt: Date; +} + +export default DriveFolderModel; diff --git a/src/services/drive/drive-file.service.ts b/src/services/drive/drive-file.service.ts index 709744a9..135f6f6e 100644 --- a/src/services/drive/drive-file.service.ts +++ b/src/services/drive/drive-file.service.ts @@ -36,7 +36,6 @@ export class DriveFileService { return { itemType: 'file', name: payload.plainName, - id: driveFile.id, uuid: driveFile.uuid, size: driveFile.size, bucket: driveFile.bucket, @@ -45,7 +44,6 @@ export class DriveFileService { fileId: driveFile.fileId, type: driveFile.type, status: driveFile.status as DriveFileItem['status'], - folderId: driveFile.folderId, folderUuid: driveFile.folderUuid, creationTime: new Date(driveFile.creationTime ?? driveFile.createdAt), modificationTime: new Date(driveFile.modificationTime ?? driveFile.updatedAt), diff --git a/src/types/drive.types.ts b/src/types/drive.types.ts index aafca712..423ca5b4 100644 --- a/src/types/drive.types.ts +++ b/src/types/drive.types.ts @@ -1,17 +1,6 @@ -import { DriveFolderData, FileMeta } from '@internxt/sdk/dist/drive/storage/types'; +import { FileMeta, FolderMeta } from '@internxt/sdk/dist/drive/storage/types'; -export type DriveFileItem = Omit< - FileMeta, - | 'plainName' - | 'userId' - | 'encryptVersion' - | 'size' - | 'createdAt' - | 'updatedAt' - | 'creationTime' - | 'modificationTime' - | 'type' -> & { +export type DriveFileItem = Pick & { itemType: 'file'; size: number; createdAt: Date; @@ -21,10 +10,8 @@ export type DriveFileItem = Omit< type?: string | null; }; -export type DriveFolderItem = Pick & { +export type DriveFolderItem = Pick & { itemType: 'folder'; - encryptedName: string; - uuid: string; createdAt: Date; updatedAt: Date; status: 'EXISTS' | 'TRASHED'; diff --git a/src/utils/drive.utils.ts b/src/utils/drive.utils.ts index 76e19f68..b2a2ddb4 100644 --- a/src/utils/drive.utils.ts +++ b/src/utils/drive.utils.ts @@ -7,7 +7,6 @@ export class DriveUtils { itemType: 'file', uuid: fileMeta.uuid ?? '', status: fileMeta.status, - folderId: fileMeta.folderId, folderUuid: fileMeta.folderUuid, size: Number(fileMeta.size), name: fileMeta.plainName ?? fileMeta.name, @@ -17,7 +16,6 @@ export class DriveUtils { creationTime: new Date(fileMeta.creationTime ?? fileMeta.createdAt), modificationTime: new Date(fileMeta.modificationTime ?? fileMeta.updatedAt), fileId: fileMeta.fileId, - id: fileMeta.id, type: fileMeta.type, }; } @@ -26,12 +24,9 @@ export class DriveUtils { return { itemType: 'folder', uuid: folderMeta.uuid, - id: folderMeta.id, bucket: folderMeta.bucket, status: folderMeta.deleted || folderMeta.removed ? 'TRASHED' : 'EXISTS', name: folderMeta.plainName ?? folderMeta.name, - encryptedName: folderMeta.name, - parentId: folderMeta.parentId, parentUuid: folderMeta.parentUuid, createdAt: new Date(folderMeta.createdAt), updatedAt: new Date(folderMeta.updatedAt), @@ -42,12 +37,9 @@ export class DriveUtils { return { itemType: 'folder', uuid: folderResponse.uuid, - id: folderResponse.id, bucket: folderResponse.bucket, status: folderResponse.deleted || folderResponse.removed ? 'TRASHED' : 'EXISTS', name: folderResponse.plainName ?? folderResponse.name, - encryptedName: folderResponse.name, - parentId: folderResponse.parentId, parentUuid: folderResponse.parentUuid, createdAt: new Date(folderResponse.createdAt), updatedAt: new Date(folderResponse.updatedAt), diff --git a/src/webdav/handlers/PROPFIND.handler.ts b/src/webdav/handlers/PROPFIND.handler.ts index c60c7b1b..f61a41c9 100644 --- a/src/webdav/handlers/PROPFIND.handler.ts +++ b/src/webdav/handlers/PROPFIND.handler.ts @@ -101,11 +101,8 @@ export class PROPFINDRequestHandler implements WebDavMethodHandler { status: folder.deleted || folder.removed ? 'TRASHED' : 'EXISTS', createdAt: new Date(folder.createdAt), updatedAt: new Date(folder.updatedAt), - id: folder.id, - encryptedName: folder.name, uuid: folder.uuid, - parentId: null, - parentUuid: null, + parentUuid: folder.parentUuid, }, folderRelativePath, ); @@ -121,12 +118,10 @@ export class PROPFINDRequestHandler implements WebDavMethodHandler { itemType: 'file', name: file.plainName, bucket: file.bucket, - id: file.id, fileId: file.fileId, uuid: file.uuid, type: file.type, status: file.status, - folderId: file.folderId, folderUuid: file.folderUuid, size: Number(file.size), creationTime: new Date(file.creationTime), diff --git a/test/fixtures/drive.fixture.ts b/test/fixtures/drive.fixture.ts index 9b824968..6b96510a 100644 --- a/test/fixtures/drive.fixture.ts +++ b/test/fixtures/drive.fixture.ts @@ -25,12 +25,9 @@ const getRandomDate = (start = new Date(2000, 0, 1), end = new Date()) => { export const newFolderItem = (attributes?: Partial): DriveFolderItem => { const folder: DriveFolderItem = { itemType: 'folder', - id: randomInt(1, 100000), uuid: randomUUID(), - parentId: randomInt(1, 100000), bucket: crypto.randomBytes(16).toString('hex'), name: wordlist[randomInt(wordlist.length)], - encryptedName: crypto.randomBytes(16).toString('hex'), createdAt: getRandomDate(), updatedAt: getRandomDate(), status: 'EXISTS', @@ -42,10 +39,8 @@ export const newFolderItem = (attributes?: Partial): DriveFolde export const newFileItem = (attributes?: Partial): DriveFileItem => { const file: DriveFileItem = { itemType: 'file', - id: randomInt(1, 100000), uuid: crypto.randomBytes(16).toString('hex'), fileId: crypto.randomBytes(16).toString('hex'), - folderId: randomInt(1, 100000), bucket: crypto.randomBytes(16).toString('hex'), name: wordlist[randomInt(wordlist.length)], createdAt: getRandomDate(), @@ -171,11 +166,8 @@ export const newPaginatedFile = (attributes?: Partial): Fetc export const newDriveFolder = (attributes?: Partial): DriveFolder => { const folder: DriveFolderAttributes = { - id: randomInt(1, 100000), name: crypto.randomBytes(16).toString('hex'), uuid: crypto.randomBytes(16).toString('hex'), - relativePath: crypto.randomBytes(16).toString('hex'), - parentId: randomInt(1, 100000), parentUuid: crypto.randomBytes(16).toString('hex'), createdAt: getRandomDate(), updatedAt: getRandomDate(), @@ -186,15 +178,12 @@ export const newDriveFolder = (attributes?: Partial): Dri export const newDriveFile = (attributes?: Partial): DriveFile => { const file: DriveFileAttributes = { - id: randomInt(1, 100000), name: crypto.randomBytes(16).toString('hex'), type: fileTypes[randomInt(fileTypes.length)], uuid: crypto.randomBytes(16).toString('hex'), fileId: crypto.randomBytes(16).toString('hex'), - folderId: randomInt(1, 100000), folderUuid: crypto.randomBytes(16).toString('hex'), bucket: crypto.randomBytes(16).toString('hex'), - relativePath: crypto.randomBytes(16).toString('hex'), createdAt: getRandomDate(), updatedAt: getRandomDate(), size: randomInt(1, 10000), From fd5b2d4cfbc2ac40666ea6cbc83c8a6a0dbe497f Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 5 Feb 2026 14:42:03 +0100 Subject: [PATCH 05/43] deps: add typeorm dependency to package.json --- package.json | 1 + yarn.lock | 202 ++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 194 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 7b7da41e..e22a50a0 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "range-parser": "1.2.1", "selfsigned": "5.5.0", "tty-table": "5.0.0", + "typeorm": "0.3.28", "winston": "3.19.0" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 97cbd55c..4df76fc3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1634,6 +1634,18 @@ dependencies: "@isaacs/balanced-match" "^4.0.1" +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + "@istanbuljs/schema@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" @@ -1903,6 +1915,11 @@ tslib "^2.8.1" tsyringe "^4.10.0" +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + "@pm2/agent@~2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@pm2/agent/-/agent-2.1.1.tgz#b74dc0cc97e59827307fd6b9a4ebb5aeb40473fb" @@ -2604,6 +2621,11 @@ color "^5.0.2" text-hex "1.0.x" +"@sqltools/formatter@^1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.5.tgz#3abc203c79b8c3e90fd6c156a0c62d5403520e12" + integrity sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw== + "@standard-schema/spec@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.0.0.tgz#f193b73dc316c4170f2e82a881da0f550d551b9c" @@ -3077,7 +3099,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.2.1: +ansi-styles@^6.1.0, ansi-styles@^6.2.1: version "6.2.3" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== @@ -3092,6 +3114,11 @@ ansis@^3.16.0, ansis@^3.17.0: resolved "https://registry.yarnpkg.com/ansis/-/ansis-3.17.0.tgz#fa8d9c2a93fe7d1177e0c17f9eeb562a58a832d7" integrity sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg== +ansis@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ansis/-/ansis-4.2.0.tgz#2e6e61c46b11726ac67f78785385618b9e658780" + integrity sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig== + anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -3100,6 +3127,11 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +app-root-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.1.0.tgz#5971a2fc12ba170369a7a1ef018c71e6e47c2e86" + integrity sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA== + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -3354,6 +3386,14 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + bundle-name@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" @@ -3817,7 +3857,7 @@ dayjs@1.11.15: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.15.tgz#fd7fd2db6fc92f08ffe4adc306756d45db00ada3" integrity sha512-MC+DfnSWiM9APs7fpiurHGCoeIx0Gdl6QZBy+5lu8MbYKN5FZEXqOgrundfibdfhGZ15o9hzmZ2xJjZnbvgKXQ== -dayjs@1.11.19: +dayjs@1.11.19, dayjs@^1.11.19: version "1.11.19" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.19.tgz#15dc98e854bb43917f12021806af897c58ae2938" integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== @@ -3860,6 +3900,11 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" +dedent@^1.7.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.7.1.tgz#364661eea3d73f3faba7089214420ec2f8f13e15" + integrity sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg== + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -3970,6 +4015,11 @@ dotenv@17.2.3: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-17.2.3.tgz#ad995d6997f639b11065f419a22fabf567cdb9a2" integrity sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w== +dotenv@^16.6.1: + version "16.6.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.6.1.tgz#773f0e69527a8315c7285d5ee73c4459d20a8020" + integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== + 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" @@ -3979,6 +4029,11 @@ dunder-proto@^1.0.0, dunder-proto@^1.0.1: es-errors "^1.3.0" gopd "^1.2.0" +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -4006,6 +4061,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== + enabled@2.0.x: version "2.0.0" resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" @@ -4562,6 +4622,14 @@ for-each@^0.3.3, for-each@^0.3.5: dependencies: is-callable "^1.2.7" +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + form-data-encoder@^2.1.2: version "2.1.4" resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" @@ -4740,6 +4808,18 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob@^10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== + 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@^13.0.0: version "13.0.0" resolved "https://registry.yarnpkg.com/glob/-/glob-13.0.0.tgz#9d9233a4a274fc28ef7adce5508b7ef6237a1be3" @@ -4955,7 +5035,7 @@ iconv-lite@^0.7.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@^1.1.13: +ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -5332,6 +5412,15 @@ istanbul-reports@^3.2.0: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + jake@^10.8.5: version "10.9.4" resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.4.tgz#d626da108c63d5cfb00ab5c25fadc7e0084af8e6" @@ -5524,7 +5613,7 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== -lru-cache@^10.0.1: +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== @@ -5681,7 +5770,7 @@ minimist@^1.2.0, minimist@^1.2.3: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -minipass@^7.1.2: +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== @@ -6015,7 +6104,7 @@ pac-resolver@^7.0.1: degenerator "^5.0.0" netmask "^2.0.2" -package-json-from-dist@^1.0.1: +package-json-from-dist@^1.0.0, package-json-from-dist@^1.0.1: 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== @@ -6084,6 +6173,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-scurry@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" @@ -6736,6 +6833,15 @@ setprototypeof@~1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== +sha.js@^2.4.12: + version "2.4.12" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.12.tgz#eb8b568bf383dfd1867a32c3f2b74eb52bdbf23f" + integrity sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w== + dependencies: + inherits "^2.0.4" + safe-buffer "^5.2.1" + to-buffer "^1.2.0" + sharp@0.34.5: version "0.34.5" resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.34.5.tgz#b6f148e4b8c61f1797bde11a9d1cfebbae2c57b0" @@ -6837,7 +6943,7 @@ signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.1.0: +signal-exit@^4.0.1, signal-exit@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== @@ -6988,6 +7094,11 @@ sprintf-js@1.1.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== +sql-highlight@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/sql-highlight/-/sql-highlight-6.1.0.tgz#e34024b4c6eac2744648771edfe3c1f894153743" + integrity sha512-ed7OK4e9ywpE7pgRMkMQmZDPKSVdm0oX5IEtZiKnFucSF0zu6c80GZBe38UqHuVhTWJ9xsKgSMjCG2bml86KvA== + stack-trace@0.0.x: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" @@ -7028,6 +7139,15 @@ string-argv@^0.3.2: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -7037,6 +7157,15 @@ string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2 is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string-width@^7.0.0: version "7.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" @@ -7093,6 +7222,13 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.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" @@ -7100,7 +7236,7 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.1.0: +strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.2" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== @@ -7207,6 +7343,15 @@ tinyrainbow@^3.0.3: resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-3.0.3.tgz#984a5b1c1b25854a9b6bccbe77964d0593d1ea42" integrity sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q== +to-buffer@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.2.2.tgz#ffe59ef7522ada0a2d1cb5dfe03bb8abc3cdc133" + integrity sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw== + dependencies: + isarray "^2.0.5" + safe-buffer "^5.2.1" + typed-array-buffer "^1.0.3" + 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" @@ -7373,6 +7518,27 @@ typed-array-length@^1.0.7: possible-typed-array-names "^1.0.0" reflect.getprototypeof "^1.0.6" +typeorm@0.3.28: + version "0.3.28" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.28.tgz#a3aabed8ef64287ee68da278d8ffa1d3c6c6b8ca" + integrity sha512-6GH7wXhtfq2D33ZuRXYwIsl/qM5685WZcODZb7noOOcRMteM9KF2x2ap3H0EBjnSV0VO4gNAfJT5Ukp0PkOlvg== + dependencies: + "@sqltools/formatter" "^1.2.5" + ansis "^4.2.0" + app-root-path "^3.1.0" + buffer "^6.0.3" + dayjs "^1.11.19" + debug "^4.4.3" + dedent "^1.7.0" + dotenv "^16.6.1" + glob "^10.5.0" + reflect-metadata "^0.2.2" + sha.js "^2.4.12" + sql-highlight "^6.1.0" + tslib "^2.8.1" + uuid "^11.1.0" + yargs "^17.7.2" + typescript-eslint@^8.40.0: version "8.43.0" resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.43.0.tgz#335ac16a859f385dfb23022e0d8298962364d099" @@ -7689,6 +7855,15 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -7707,6 +7882,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" + wrap-ansi@^9.0.0, wrap-ansi@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz#956832dea9494306e6d209eb871643bb873d7c98" @@ -7789,7 +7973,7 @@ yargs@^15.1.0: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.7.1: +yargs@^17.7.1, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== From 599b12259333ffae0dcaecb0f2c82c83a36fc4af Mon Sep 17 00:00:00 2001 From: larryrider Date: Fri, 13 Feb 2026 13:45:04 +0100 Subject: [PATCH 06/43] feat: add DatabaseService for local cache database initialization --- src/services/database/database.service.ts | 42 +++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/services/database/database.service.ts diff --git a/src/services/database/database.service.ts b/src/services/database/database.service.ts new file mode 100644 index 00000000..9df452cf --- /dev/null +++ b/src/services/database/database.service.ts @@ -0,0 +1,42 @@ +import { DataSource } from 'typeorm'; +import DriveFileModel from './drive-file/drive-file.model'; +import DriveFolderModel from './drive-folder/drive-folder.model'; +import { DRIVE_SQLITE_FILE } from '../../constants/configs'; + +export class DatabaseService { + public static readonly instance = new DatabaseService(); + + public dataSource = new DataSource( + process.env.NODE_ENV === 'test' + ? { + type: 'sqljs', + autoSave: false, + logging: false, + synchronize: true, + entities: [DriveFileModel, DriveFolderModel], + } + : { + type: 'better-sqlite3', + database: DRIVE_SQLITE_FILE, + logging: false, + synchronize: true, + entities: [DriveFileModel, DriveFolderModel], + }, + ); + + public initialize = () => { + return this.dataSource.initialize(); + }; + + public destroy = () => { + return this.dataSource.destroy(); + }; + + public clear = () => { + return this.dataSource.synchronize(true); + }; + + public drop = () => { + return this.dataSource.dropDatabase(); + }; +} From fc90a461abafd01559acb482e24a76e58f5de6bf Mon Sep 17 00:00:00 2001 From: larryrider Date: Fri, 13 Feb 2026 13:46:13 +0100 Subject: [PATCH 07/43] fix: entity name in DriveFolderModel --- src/services/database/drive-folder/drive-folder.model.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/database/drive-folder/drive-folder.model.ts b/src/services/database/drive-folder/drive-folder.model.ts index ce41411a..a0b795f1 100644 --- a/src/services/database/drive-folder/drive-folder.model.ts +++ b/src/services/database/drive-folder/drive-folder.model.ts @@ -1,7 +1,7 @@ import { Column, Entity, PrimaryColumn } from 'typeorm'; import { DriveFolderAttributes } from './drive-folder.attributes'; -@Entity('drive_file') +@Entity('drive_folder') export class DriveFolderModel implements DriveFolderAttributes { @PrimaryColumn({ nullable: false, type: 'varchar' }) declare uuid: string; From dfcb2e778af231b2a56615d3d1c0653fb080d5ff Mon Sep 17 00:00:00 2001 From: larryrider Date: Wed, 18 Feb 2026 15:11:01 +0100 Subject: [PATCH 08/43] feat: init database repositories --- .../drive-file/drive-file.repository.ts | 36 +++++++++++++++++++ .../drive-folder/drive-folder.repository.ts | 36 +++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 src/services/database/drive-file/drive-file.repository.ts create mode 100644 src/services/database/drive-folder/drive-folder.repository.ts diff --git a/src/services/database/drive-file/drive-file.repository.ts b/src/services/database/drive-file/drive-file.repository.ts new file mode 100644 index 00000000..90335963 --- /dev/null +++ b/src/services/database/drive-file/drive-file.repository.ts @@ -0,0 +1,36 @@ +import { ErrorUtils } from '../../../utils/errors.utils'; +import { DatabaseService } from '../database.service'; +import { DriveFile } from './drive-file.domain'; +import DriveFileModel from './drive-file.model'; + +const BATCH_SIZE = 100; + +export class FileRepository { + public static readonly instance = new FileRepository(); + + private fileRepository = DatabaseService.instance.dataSource.getRepository(DriveFileModel); + + public createOrUpdate = async (files: DriveFileModel[]) => { + if (files.length === 0) return; + + try { + for (let i = 0; i < files.length; i += BATCH_SIZE) { + const chunk = files.slice(i, i + BATCH_SIZE); + + await this.fileRepository.upsert(chunk, { conflictPaths: ['uuid'] }); + } + + return files.map((file) => DriveFile.build(file)); + } catch (error) { + ErrorUtils.report(error, { files }); + } + }; + + public delete = async (uuids: string[]) => { + try { + return await this.fileRepository.delete(uuids); + } catch (error) { + ErrorUtils.report(error, { uuids }); + } + }; +} diff --git a/src/services/database/drive-folder/drive-folder.repository.ts b/src/services/database/drive-folder/drive-folder.repository.ts new file mode 100644 index 00000000..d53f4ae1 --- /dev/null +++ b/src/services/database/drive-folder/drive-folder.repository.ts @@ -0,0 +1,36 @@ +import { ErrorUtils } from '../../../utils/errors.utils'; +import { DatabaseService } from '../database.service'; +import { DriveFolder } from './drive-folder.domain'; +import DriveFolderModel from './drive-folder.model'; + +const BATCH_SIZE = 100; + +export class FolderRepository { + public static readonly instance = new FolderRepository(); + + private folderRepository = DatabaseService.instance.dataSource.getRepository(DriveFolderModel); + + public createOrUpdate = async (files: DriveFolderModel[]) => { + if (files.length === 0) return; + + try { + for (let i = 0; i < files.length; i += BATCH_SIZE) { + const chunk = files.slice(i, i + BATCH_SIZE); + + await this.folderRepository.upsert(chunk, { conflictPaths: ['uuid'] }); + } + + return files.map((file) => DriveFolder.build(file)); + } catch (error) { + ErrorUtils.report(error, { files }); + } + }; + + public delete = async (uuids: string[]) => { + try { + return await this.folderRepository.delete(uuids); + } catch (error) { + ErrorUtils.report(error, { uuids }); + } + }; +} From eec88ecff641eff9e990334721a2dbb30844b1d5 Mon Sep 17 00:00:00 2001 From: larryrider Date: Wed, 18 Feb 2026 15:22:42 +0100 Subject: [PATCH 09/43] feat: init database service --- src/hooks/prerun/auth_check.ts | 2 ++ src/webdav/index.ts | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/hooks/prerun/auth_check.ts b/src/hooks/prerun/auth_check.ts index ad2a071a..32ea793b 100644 --- a/src/hooks/prerun/auth_check.ts +++ b/src/hooks/prerun/auth_check.ts @@ -9,6 +9,7 @@ import { SdkManager } from '../../services/sdk-manager.service'; import { AuthService } from '../../services/auth.service'; import Webdav from '../../commands/webdav'; import WebDAVConfig from '../../commands/webdav-config'; +import { DatabaseService } from '../../services/database/database.service'; const CommandsToSkip = [Whoami, Login, LoginLegacy, Logout, Logs, Webdav, WebDAVConfig]; const hook: Hook<'prerun'> = async function (opts) { @@ -22,6 +23,7 @@ const hook: Hook<'prerun'> = async function (opts) { SdkManager.init({ token, workspaceToken: workspace?.workspaceCredentials.token }); CLIUtils.done(jsonFlag); CLIUtils.clearPreviousLine(jsonFlag); + await DatabaseService.instance.initialize(); } catch (error) { const err = error as Error; CLIUtils.catchError({ diff --git a/src/webdav/index.ts b/src/webdav/index.ts index b6c8b06c..b5fabadf 100644 --- a/src/webdav/index.ts +++ b/src/webdav/index.ts @@ -5,6 +5,7 @@ import { ConfigService } from '../services/config.service'; import { AuthService } from '../services/auth.service'; import { webdavLogger } from '../utils/logger.utils'; import { SdkManager } from '../services/sdk-manager.service'; +import { DatabaseService } from '../services/database/database.service'; dotenv.config({ quiet: true }); @@ -13,6 +14,8 @@ const init = async () => { await ConfigService.instance.ensureWebdavCertsDirExists(); await ConfigService.instance.ensureInternxtLogsDirExists(); + await DatabaseService.instance.initialize(); + const { token, workspace } = await AuthService.instance.getAuthDetails(); SdkManager.init({ token, workspaceToken: workspace?.workspaceCredentials.token }); From 31abce2f74755ac8249ee33d3fb08bf72a20e27f Mon Sep 17 00:00:00 2001 From: larryrider Date: Wed, 18 Feb 2026 15:24:09 +0100 Subject: [PATCH 10/43] fix: nullable parentUuid --- src/services/database/drive-folder/drive-folder.model.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/database/drive-folder/drive-folder.model.ts b/src/services/database/drive-folder/drive-folder.model.ts index a0b795f1..412d2aee 100644 --- a/src/services/database/drive-folder/drive-folder.model.ts +++ b/src/services/database/drive-folder/drive-folder.model.ts @@ -12,7 +12,7 @@ export class DriveFolderModel implements DriveFolderAttributes { @Column({ nullable: false, type: 'varchar' }) declare status: 'EXISTS' | 'TRASHED'; - @Column({ nullable: false, type: 'varchar' }) + @Column({ nullable: true, type: 'varchar' }) declare parentUuid: string | null; @Column({ nullable: false, type: 'varchar' }) From 15830bdc5ca2e029f8da31206112000dae2477fb Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 19 Feb 2026 15:20:27 +0100 Subject: [PATCH 11/43] feat: add creationTime and modificationTime --- src/services/database/database.service.ts | 4 ++-- .../database/drive-file/drive-file.model.ts | 4 +--- .../drive-file/drive-file.repository.ts | 2 +- .../drive-folder/drive-folder.attributes.ts | 2 ++ .../drive-folder/drive-folder.domain.ts | 23 ++++++++++++++++--- .../drive-folder/drive-folder.model.ts | 8 +++++-- .../drive-folder/drive-folder.repository.ts | 2 +- src/types/drive.types.ts | 2 ++ src/utils/drive.utils.ts | 4 ++++ src/webdav/handlers/PROPFIND.handler.ts | 2 ++ 10 files changed, 41 insertions(+), 12 deletions(-) diff --git a/src/services/database/database.service.ts b/src/services/database/database.service.ts index 9df452cf..e7976d02 100644 --- a/src/services/database/database.service.ts +++ b/src/services/database/database.service.ts @@ -1,6 +1,6 @@ import { DataSource } from 'typeorm'; -import DriveFileModel from './drive-file/drive-file.model'; -import DriveFolderModel from './drive-folder/drive-folder.model'; +import { DriveFileModel } from './drive-file/drive-file.model'; +import { DriveFolderModel } from './drive-folder/drive-folder.model'; import { DRIVE_SQLITE_FILE } from '../../constants/configs'; export class DatabaseService { diff --git a/src/services/database/drive-file/drive-file.model.ts b/src/services/database/drive-file/drive-file.model.ts index 23da87c1..daad2adc 100644 --- a/src/services/database/drive-file/drive-file.model.ts +++ b/src/services/database/drive-file/drive-file.model.ts @@ -10,7 +10,7 @@ export class DriveFileModel implements DriveFileAttributes { declare name: string; @Column({ nullable: true, type: 'varchar' }) - declare type: string; + declare type?: string; @Column({ nullable: false, type: 'varchar' }) declare fileId: string; @@ -39,5 +39,3 @@ export class DriveFileModel implements DriveFileAttributes { @Column({ nullable: false, type: 'varchar' }) declare modificationTime: Date; } - -export default DriveFileModel; diff --git a/src/services/database/drive-file/drive-file.repository.ts b/src/services/database/drive-file/drive-file.repository.ts index 90335963..c4f6ebb1 100644 --- a/src/services/database/drive-file/drive-file.repository.ts +++ b/src/services/database/drive-file/drive-file.repository.ts @@ -1,7 +1,7 @@ import { ErrorUtils } from '../../../utils/errors.utils'; import { DatabaseService } from '../database.service'; import { DriveFile } from './drive-file.domain'; -import DriveFileModel from './drive-file.model'; +import { DriveFileModel } from './drive-file.model'; const BATCH_SIZE = 100; diff --git a/src/services/database/drive-folder/drive-folder.attributes.ts b/src/services/database/drive-folder/drive-folder.attributes.ts index 6b4ca49d..425babef 100644 --- a/src/services/database/drive-folder/drive-folder.attributes.ts +++ b/src/services/database/drive-folder/drive-folder.attributes.ts @@ -5,4 +5,6 @@ export interface DriveFolderAttributes { parentUuid: string | null; createdAt: Date; updatedAt: Date; + creationTime: Date; + modificationTime: Date; } diff --git a/src/services/database/drive-folder/drive-folder.domain.ts b/src/services/database/drive-folder/drive-folder.domain.ts index c8b819e6..719b8faf 100644 --- a/src/services/database/drive-folder/drive-folder.domain.ts +++ b/src/services/database/drive-folder/drive-folder.domain.ts @@ -5,17 +5,30 @@ export class DriveFolder implements DriveFolderAttributes { name: string; uuid: string; parentUuid: string | null; + status: DriveFolderAttributes['status']; createdAt: Date; updatedAt: Date; - status: DriveFolderAttributes['status']; + creationTime: Date; + modificationTime: Date; - constructor({ name, uuid, parentUuid, createdAt, updatedAt, status }: DriveFolderAttributes) { + constructor({ + name, + uuid, + parentUuid, + createdAt, + updatedAt, + status, + creationTime, + modificationTime, + }: DriveFolderAttributes) { this.name = name; this.uuid = uuid; this.parentUuid = parentUuid; + this.status = status; this.createdAt = createdAt; this.updatedAt = updatedAt; - this.status = status; + this.creationTime = creationTime; + this.modificationTime = modificationTime; } static build(folder: DriveFolderAttributes): DriveFolder { @@ -30,6 +43,8 @@ export class DriveFolder implements DriveFolderAttributes { parentUuid: this.parentUuid, createdAt: this.createdAt, updatedAt: this.updatedAt, + creationTime: this.creationTime, + modificationTime: this.modificationTime, }; } @@ -42,6 +57,8 @@ export class DriveFolder implements DriveFolderAttributes { parentUuid: this.parentUuid, createdAt: this.createdAt, updatedAt: this.updatedAt, + creationTime: this.creationTime, + modificationTime: this.modificationTime, bucket: null, }; } diff --git a/src/services/database/drive-folder/drive-folder.model.ts b/src/services/database/drive-folder/drive-folder.model.ts index 412d2aee..3106a7d7 100644 --- a/src/services/database/drive-folder/drive-folder.model.ts +++ b/src/services/database/drive-folder/drive-folder.model.ts @@ -20,6 +20,10 @@ export class DriveFolderModel implements DriveFolderAttributes { @Column({ nullable: false, type: 'varchar' }) declare updatedAt: Date; -} -export default DriveFolderModel; + @Column({ nullable: false, type: 'varchar' }) + declare creationTime: Date; + + @Column({ nullable: false, type: 'varchar' }) + declare modificationTime: Date; +} diff --git a/src/services/database/drive-folder/drive-folder.repository.ts b/src/services/database/drive-folder/drive-folder.repository.ts index d53f4ae1..d694acee 100644 --- a/src/services/database/drive-folder/drive-folder.repository.ts +++ b/src/services/database/drive-folder/drive-folder.repository.ts @@ -1,7 +1,7 @@ import { ErrorUtils } from '../../../utils/errors.utils'; import { DatabaseService } from '../database.service'; import { DriveFolder } from './drive-folder.domain'; -import DriveFolderModel from './drive-folder.model'; +import { DriveFolderModel } from './drive-folder.model'; const BATCH_SIZE = 100; diff --git a/src/types/drive.types.ts b/src/types/drive.types.ts index 423ca5b4..79250fb3 100644 --- a/src/types/drive.types.ts +++ b/src/types/drive.types.ts @@ -14,6 +14,8 @@ export type DriveFolderItem = Pick & { itemType: 'folder'; createdAt: Date; updatedAt: Date; + creationTime: Date; + modificationTime: Date; status: 'EXISTS' | 'TRASHED'; parentUuid: string | null; }; diff --git a/src/utils/drive.utils.ts b/src/utils/drive.utils.ts index b2a2ddb4..dac734c3 100644 --- a/src/utils/drive.utils.ts +++ b/src/utils/drive.utils.ts @@ -30,6 +30,8 @@ export class DriveUtils { parentUuid: folderMeta.parentUuid, createdAt: new Date(folderMeta.createdAt), updatedAt: new Date(folderMeta.updatedAt), + creationTime: new Date(folderMeta.creation_time), + modificationTime: new Date(folderMeta.creation_time), }; } @@ -43,6 +45,8 @@ export class DriveUtils { parentUuid: folderResponse.parentUuid, createdAt: new Date(folderResponse.createdAt), updatedAt: new Date(folderResponse.updatedAt), + creationTime: new Date(folderResponse.creationTime), + modificationTime: new Date(folderResponse.modificationTime), }; } } diff --git a/src/webdav/handlers/PROPFIND.handler.ts b/src/webdav/handlers/PROPFIND.handler.ts index f61a41c9..e458a121 100644 --- a/src/webdav/handlers/PROPFIND.handler.ts +++ b/src/webdav/handlers/PROPFIND.handler.ts @@ -101,6 +101,8 @@ export class PROPFINDRequestHandler implements WebDavMethodHandler { status: folder.deleted || folder.removed ? 'TRASHED' : 'EXISTS', createdAt: new Date(folder.createdAt), updatedAt: new Date(folder.updatedAt), + creationTime: new Date(folder.creationTime), + modificationTime: new Date(folder.modificationTime), uuid: folder.uuid, parentUuid: folder.parentUuid, }, From d180c7cdb827995fa04a8aa71711fc2ab0537451 Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 19 Feb 2026 15:30:47 +0100 Subject: [PATCH 12/43] deps: add sql.js dependency --- package.json | 1 + yarn.lock | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/package.json b/package.json index e22a50a0..2ce95e51 100644 --- a/package.json +++ b/package.json @@ -83,6 +83,7 @@ "oclif": "4.22.68", "prettier": "3.8.1", "rimraf": "6.1.2", + "sql.js": "1.14.0", "ts-node": "10.9.2", "typescript": "5.9.3", "vitest": "4.0.17", diff --git a/yarn.lock b/yarn.lock index 4df76fc3..c355a25a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7099,6 +7099,11 @@ sql-highlight@^6.1.0: resolved "https://registry.yarnpkg.com/sql-highlight/-/sql-highlight-6.1.0.tgz#e34024b4c6eac2744648771edfe3c1f894153743" integrity sha512-ed7OK4e9ywpE7pgRMkMQmZDPKSVdm0oX5IEtZiKnFucSF0zu6c80GZBe38UqHuVhTWJ9xsKgSMjCG2bml86KvA== +sql.js@1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/sql.js/-/sql.js-1.14.0.tgz#49d4df3b6d311a0da28aab34120d7fe2dcc68f09" + integrity sha512-NXYh+kFqLiYRCNAaHD0PcbjFgXyjuolEKLMk5vRt2DgPENtF1kkNzzMlg42dUk5wIsH8MhUzsRhaUxIisoSlZQ== + stack-trace@0.0.x: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" From 176cdc49a7dd1e5650f18a4ef12fd95b5b5ec601 Mon Sep 17 00:00:00 2001 From: larryrider Date: Fri, 20 Feb 2026 12:53:08 +0100 Subject: [PATCH 13/43] feat: support nullable type and fileId, implement updateByUuid --- .../drive-file/drive-file.attributes.ts | 4 +- .../database/drive-file/drive-file.model.ts | 6 +- .../drive-file/drive-file.repository.ts | 8 +++ .../drive-folder/drive-folder.repository.ts | 8 +++ src/services/drive/drive-file.service.ts | 29 +++++++-- src/services/drive/drive-folder.service.ts | 65 +++++++++++++++++-- 6 files changed, 102 insertions(+), 18 deletions(-) diff --git a/src/services/database/drive-file/drive-file.attributes.ts b/src/services/database/drive-file/drive-file.attributes.ts index e3ea4b32..256e0b67 100644 --- a/src/services/database/drive-file/drive-file.attributes.ts +++ b/src/services/database/drive-file/drive-file.attributes.ts @@ -1,8 +1,8 @@ export interface DriveFileAttributes { uuid: string; name: string; - type?: string; - fileId: string; + type?: string | null; + fileId?: string | null; folderUuid: string; bucket: string; createdAt: Date; diff --git a/src/services/database/drive-file/drive-file.model.ts b/src/services/database/drive-file/drive-file.model.ts index daad2adc..68b3bd83 100644 --- a/src/services/database/drive-file/drive-file.model.ts +++ b/src/services/database/drive-file/drive-file.model.ts @@ -10,10 +10,10 @@ export class DriveFileModel implements DriveFileAttributes { declare name: string; @Column({ nullable: true, type: 'varchar' }) - declare type?: string; + declare type?: string | null; - @Column({ nullable: false, type: 'varchar' }) - declare fileId: string; + @Column({ nullable: true, type: 'varchar' }) + declare fileId?: string | null; @Column({ nullable: false, type: 'varchar' }) declare folderUuid: string; diff --git a/src/services/database/drive-file/drive-file.repository.ts b/src/services/database/drive-file/drive-file.repository.ts index c4f6ebb1..e09606dc 100644 --- a/src/services/database/drive-file/drive-file.repository.ts +++ b/src/services/database/drive-file/drive-file.repository.ts @@ -26,6 +26,14 @@ export class FileRepository { } }; + public updateByUuid = async (uuid: string, update: Partial) => { + try { + return await this.fileRepository.update({ uuid }, update); + } catch (error) { + ErrorUtils.report(error, { uuid }); + } + }; + public delete = async (uuids: string[]) => { try { return await this.fileRepository.delete(uuids); diff --git a/src/services/database/drive-folder/drive-folder.repository.ts b/src/services/database/drive-folder/drive-folder.repository.ts index d694acee..1cf36881 100644 --- a/src/services/database/drive-folder/drive-folder.repository.ts +++ b/src/services/database/drive-folder/drive-folder.repository.ts @@ -26,6 +26,14 @@ export class FolderRepository { } }; + public updateByUuid = async (uuid: string, update: Partial) => { + try { + return await this.folderRepository.update({ uuid }, update); + } catch (error) { + ErrorUtils.report(error, { uuid }); + } + }; + public delete = async (uuids: string[]) => { try { return await this.folderRepository.delete(uuids); diff --git a/src/services/drive/drive-file.service.ts b/src/services/drive/drive-file.service.ts index 135f6f6e..42d93c04 100644 --- a/src/services/drive/drive-file.service.ts +++ b/src/services/drive/drive-file.service.ts @@ -3,6 +3,7 @@ import { SdkManager } from '../sdk-manager.service'; import { DriveFileItem } from '../../types/drive.types'; import { DriveUtils } from '../../utils/drive.utils'; import { AuthService } from '../auth.service'; +import { FileRepository } from '../database/drive-file/drive-file.repository'; export class DriveFileService { static readonly instance = new DriveFileService(); @@ -33,7 +34,7 @@ export class DriveFileService { driveFile = await storageClient.createFileEntryByUuid(payload); } - return { + const driveFileItem: DriveFileItem = { itemType: 'file', name: payload.plainName, uuid: driveFile.uuid, @@ -48,6 +49,9 @@ export class DriveFileService { creationTime: new Date(driveFile.creationTime ?? driveFile.createdAt), modificationTime: new Date(driveFile.modificationTime ?? driveFile.updatedAt), }; + FileRepository.instance.createOrUpdate([driveFileItem]); + + return driveFileItem; }; public getFileMetadata = async (uuid: string): Promise => { @@ -56,17 +60,30 @@ export class DriveFileService { const [getFileMetadata] = storageClient.getFile(uuid); const fileMetadata = await getFileMetadata; - return DriveUtils.driveFileMetaToItem(fileMetadata); + const driveFileItem = DriveUtils.driveFileMetaToItem(fileMetadata); + + FileRepository.instance.createOrUpdate([driveFileItem]); + + return driveFileItem; }; - public moveFile = (uuid: string, payload: StorageTypes.MoveFileUuidPayload): Promise => { + public moveFile = async (uuid: string, payload: StorageTypes.MoveFileUuidPayload): Promise => { const storageClient = SdkManager.instance.getStorage(); - return storageClient.moveFileByUuid(uuid, payload); + const fileMeta = await storageClient.moveFileByUuid(uuid, payload); + + const driveFileItem = DriveUtils.driveFileMetaToItem(fileMeta); + FileRepository.instance.createOrUpdate([driveFileItem]); + + return fileMeta; }; - public renameFile = (fileUuid: string, payload: { plainName?: string; type?: string | null }): Promise => { + public renameFile = async ( + fileUuid: string, + payload: { plainName?: string; type?: string | null }, + ): Promise => { const storageClient = SdkManager.instance.getStorage(); - return storageClient.updateFileMetaByUUID(fileUuid, payload); + await storageClient.updateFileMetaByUUID(fileUuid, payload); + FileRepository.instance.updateByUuid(fileUuid, { name: payload.plainName, type: payload.type }); }; public getFileMetadataByPath = async (path: string): Promise => { diff --git a/src/services/drive/drive-folder.service.ts b/src/services/drive/drive-folder.service.ts index e828bfb2..b5a591e4 100644 --- a/src/services/drive/drive-folder.service.ts +++ b/src/services/drive/drive-folder.service.ts @@ -1,4 +1,4 @@ -import { FetchPaginatedFile, FetchPaginatedFolder } from '@internxt/sdk/dist/drive/storage/types'; +import { FetchPaginatedFile, FetchPaginatedFolder, FileStatus } from '@internxt/sdk/dist/drive/storage/types'; import { SdkManager } from '../sdk-manager.service'; import { StorageTypes } from '@internxt/sdk/dist/drive'; import { DriveFolderItem } from '../../types/drive.types'; @@ -6,6 +6,10 @@ import { DriveUtils } from '../../utils/drive.utils'; import { RequestCanceler } from '@internxt/sdk/dist/shared/http/types'; import { AuthService } from '../auth.service'; import { WorkspaceCredentialsDetails } from '../../types/command.types'; +import { FolderRepository } from '../database/drive-folder/drive-folder.repository'; +import { DriveFolder } from '../database/drive-folder/drive-folder.domain'; +import { FileRepository } from '../database/drive-file/drive-file.repository'; +import { DriveFile } from '../database/drive-file/drive-file.domain'; export class DriveFolderService { static readonly instance = new DriveFolderService(); @@ -13,13 +17,17 @@ export class DriveFolderService { public getFolderMetaByUuid = async (uuid: string): Promise => { const storageClient = SdkManager.instance.getStorage(); const folderMeta = await storageClient.getFolderMeta(uuid); - return DriveUtils.driveFolderMetaToItem(folderMeta); + const folderItem = DriveUtils.driveFolderMetaToItem(folderMeta); + FolderRepository.instance.createOrUpdate([folderItem]); + return folderItem; }; public getFolderMetaById = async (id: number): Promise => { const storageClient = SdkManager.instance.getStorage(); const folderMeta = await storageClient.getFolderMetaById(id); - return DriveUtils.driveFolderMetaToItem(folderMeta); + const folderItem = DriveUtils.driveFolderMetaToItem(folderMeta); + FolderRepository.instance.createOrUpdate([folderItem]); + return folderItem; }; public getFolderContent = async (folderUuid: string) => { @@ -60,6 +68,22 @@ export class DriveFolderService { folders = (await personalFolderContentPromise).folders; } + FolderRepository.instance.createOrUpdate( + folders.map( + (folder) => + new DriveFolder({ + uuid: folder.uuid, + name: folder.plainName, + parentUuid: folder.parentUuid, + status: FileStatus.EXISTS, + createdAt: new Date(folder.createdAt), + updatedAt: new Date(folder.updatedAt), + creationTime: new Date(folder.creationTime ?? folder.createdAt), + modificationTime: new Date(folder.modificationTime ?? folder.updatedAt), + }), + ), + ); + if (folders.length > 0) { return folders.concat(await this.getAllSubfolders(currentWorkspace, folderUuid, offset + folders.length)); } else { @@ -91,6 +115,26 @@ export class DriveFolderService { files = (await folderContentPromise).files; } + FileRepository.instance.createOrUpdate( + files.map( + (file) => + new DriveFile({ + uuid: file.uuid, + name: file.plainName, + type: file.type, + folderUuid: file.folderUuid, + status: FileStatus.EXISTS, + bucket: file.bucket, + size: Number(file.size ?? 0), + fileId: file.fileId, + createdAt: new Date(file.createdAt), + updatedAt: new Date(file.updatedAt), + creationTime: new Date(file.creationTime ?? file.createdAt), + modificationTime: new Date(file.modificationTime ?? file.updatedAt), + }), + ), + ); + if (files.length > 0) { return files.concat(await this.getAllSubfiles(currentWorkspace, folderUuid, offset + files.length)); } else { @@ -98,9 +142,15 @@ export class DriveFolderService { } }; - public moveFolder = (uuid: string, payload: StorageTypes.MoveFolderUuidPayload): Promise => { + public moveFolder = async ( + uuid: string, + payload: StorageTypes.MoveFolderUuidPayload, + ): Promise => { const storageClient = SdkManager.instance.getStorage(); - return storageClient.moveFolderByUuid(uuid, payload); + const folderMeta = await storageClient.moveFolderByUuid(uuid, payload); + const folderItem = DriveUtils.driveFolderMetaToItem(folderMeta); + FolderRepository.instance.createOrUpdate([folderItem]); + return folderMeta; }; /** @@ -128,9 +178,10 @@ export class DriveFolderService { } }; - public renameFolder = (payload: { folderUuid: string; name: string }): Promise => { + public renameFolder = async (payload: { folderUuid: string; name: string }): Promise => { const storageClient = SdkManager.instance.getStorage(); - return storageClient.updateFolderNameWithUUID(payload); + await storageClient.updateFolderNameWithUUID(payload); + FolderRepository.instance.updateByUuid(payload.folderUuid, { name: payload.name }); }; public getFolderMetadataByPath = async (path: string): Promise => { From 214f9686a4d8a4a3a2f68722bffc605bc08bd2fa Mon Sep 17 00:00:00 2001 From: larryrider Date: Fri, 20 Feb 2026 12:53:36 +0100 Subject: [PATCH 14/43] feat: add database clear on webdav start --- src/webdav/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/webdav/index.ts b/src/webdav/index.ts index b5fabadf..d5ce2396 100644 --- a/src/webdav/index.ts +++ b/src/webdav/index.ts @@ -15,6 +15,7 @@ const init = async () => { await ConfigService.instance.ensureInternxtLogsDirExists(); await DatabaseService.instance.initialize(); + await DatabaseService.instance.clear(); const { token, workspace } = await AuthService.instance.getAuthDetails(); SdkManager.init({ token, workspaceToken: workspace?.workspaceCredentials.token }); From c11260a997a1566301c63ad6e0872e0549859c39 Mon Sep 17 00:00:00 2001 From: larryrider Date: Fri, 20 Feb 2026 13:28:44 +0100 Subject: [PATCH 15/43] fix: nullable fileId and type --- src/services/database/drive-file/drive-file.domain.ts | 4 ++-- src/types/drive.types.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/services/database/drive-file/drive-file.domain.ts b/src/services/database/drive-file/drive-file.domain.ts index 9fabcb04..36f85cd8 100644 --- a/src/services/database/drive-file/drive-file.domain.ts +++ b/src/services/database/drive-file/drive-file.domain.ts @@ -3,9 +3,9 @@ import { DriveFileAttributes } from './drive-file.attributes'; export class DriveFile implements DriveFileAttributes { name: string; - type?: string; + type?: string | null; uuid: string; - fileId: string; + fileId?: string | null; folderUuid: string; bucket: string; createdAt: Date; diff --git a/src/types/drive.types.ts b/src/types/drive.types.ts index 79250fb3..3025790c 100644 --- a/src/types/drive.types.ts +++ b/src/types/drive.types.ts @@ -1,6 +1,6 @@ import { FileMeta, FolderMeta } from '@internxt/sdk/dist/drive/storage/types'; -export type DriveFileItem = Pick & { +export type DriveFileItem = Pick & { itemType: 'file'; size: number; createdAt: Date; @@ -8,6 +8,7 @@ export type DriveFileItem = Pick & { From e2280f4efb054ae25d341ecbe9d491e33ecbd65c Mon Sep 17 00:00:00 2001 From: larryrider Date: Wed, 25 Feb 2026 09:47:01 +0100 Subject: [PATCH 16/43] feat: update dependencies --- package.json | 12 +- yarn.lock | 1733 +++++++++++++++++++++++++------------------------- 2 files changed, 857 insertions(+), 888 deletions(-) diff --git a/package.json b/package.json index 21f94bcf..4a0d3cc9 100644 --- a/package.json +++ b/package.json @@ -37,11 +37,11 @@ ], "dependencies": { "@dashlane/pqc-kem-kyber512-node": "1.0.0", - "@inquirer/prompts": "8.2.1", + "@inquirer/prompts": "8.3.0", "@internxt/inxt-js": "2.3.0", "@internxt/lib": "1.4.1", - "@internxt/sdk": "1.14.2", - "@oclif/core": "4.8.0", + "@internxt/sdk": "1.15.0", + "@oclif/core": "4.8.1", "@oclif/plugin-autocomplete": "3.2.40", "axios": "1.13.5", "better-sqlite3": "12.6.2", @@ -52,7 +52,7 @@ "dotenv": "17.3.1", "express": "5.2.1", "express-async-handler": "1.2.0", - "fast-xml-parser": "5.3.7", + "fast-xml-parser": "5.3.9", "hash-wasm": "4.12.0", "mime-types": "3.0.2", "open": "11.0.0", @@ -79,8 +79,8 @@ "eslint": "9.39.2", "husky": "9.1.7", "lint-staged": "16.2.7", - "nodemon": "3.1.13", - "oclif": "4.22.79", + "nodemon": "3.1.14", + "oclif": "4.22.81", "prettier": "3.8.1", "rimraf": "6.1.3", "sql.js": "1.14.0", diff --git a/yarn.lock b/yarn.lock index ab1e09f3..3b3e3c7d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -70,505 +70,461 @@ "@smithy/util-utf8" "^2.0.0" tslib "^2.6.2" -"@aws-sdk/client-cloudfront@^3.990.0": - version "3.994.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.994.0.tgz#18a86ebe0c077cb0f3eab4d1d3472abdb341b5b8" - integrity sha512-43NqYL+JjPY38qVc1rjVQna3FNEO484AkQXAqBJByI7PIzURtrtSWv42PstI99t/GnGlZFikf72y+iclvz32pQ== +"@aws-sdk/client-cloudfront@^3.995.0": + version "3.997.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.997.0.tgz#a93de50de88c136834e2c147a2b574e45a5a84cd" + integrity sha512-hfA4kVaWEqyff+l0l9rZg2vtvavec3wYV4SY27i3TJj/dIJC0FRe3M+6+QDJcleBqjd95YuszNRvMi9pzcy6+Q== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/credential-provider-node" "^3.972.10" - "@aws-sdk/middleware-host-header" "^3.972.3" - "@aws-sdk/middleware-logger" "^3.972.3" - "@aws-sdk/middleware-recursion-detection" "^3.972.3" - "@aws-sdk/middleware-user-agent" "^3.972.11" - "@aws-sdk/region-config-resolver" "^3.972.3" - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/util-endpoints" "3.994.0" - "@aws-sdk/util-user-agent-browser" "^3.972.3" - "@aws-sdk/util-user-agent-node" "^3.972.9" - "@smithy/config-resolver" "^4.4.6" - "@smithy/core" "^3.23.2" - "@smithy/fetch-http-handler" "^5.3.9" - "@smithy/hash-node" "^4.2.8" - "@smithy/invalid-dependency" "^4.2.8" - "@smithy/middleware-content-length" "^4.2.8" - "@smithy/middleware-endpoint" "^4.4.16" - "@smithy/middleware-retry" "^4.4.33" - "@smithy/middleware-serde" "^4.2.9" - "@smithy/middleware-stack" "^4.2.8" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/node-http-handler" "^4.4.10" - "@smithy/protocol-http" "^5.3.8" - "@smithy/smithy-client" "^4.11.5" - "@smithy/types" "^4.12.0" - "@smithy/url-parser" "^4.2.8" - "@smithy/util-base64" "^4.3.0" - "@smithy/util-body-length-browser" "^4.2.0" - "@smithy/util-body-length-node" "^4.2.1" - "@smithy/util-defaults-mode-browser" "^4.3.32" - "@smithy/util-defaults-mode-node" "^4.2.35" - "@smithy/util-endpoints" "^3.2.8" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-retry" "^4.2.8" - "@smithy/util-stream" "^4.5.12" - "@smithy/util-utf8" "^4.2.0" - "@smithy/util-waiter" "^4.2.8" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/credential-provider-node" "^3.972.12" + "@aws-sdk/middleware-host-header" "^3.972.4" + "@aws-sdk/middleware-logger" "^3.972.4" + "@aws-sdk/middleware-recursion-detection" "^3.972.4" + "@aws-sdk/middleware-user-agent" "^3.972.13" + "@aws-sdk/region-config-resolver" "^3.972.4" + "@aws-sdk/types" "^3.973.2" + "@aws-sdk/util-endpoints" "^3.996.1" + "@aws-sdk/util-user-agent-browser" "^3.972.4" + "@aws-sdk/util-user-agent-node" "^3.972.12" + "@smithy/config-resolver" "^4.4.7" + "@smithy/core" "^3.23.4" + "@smithy/fetch-http-handler" "^5.3.10" + "@smithy/hash-node" "^4.2.9" + "@smithy/invalid-dependency" "^4.2.9" + "@smithy/middleware-content-length" "^4.2.9" + "@smithy/middleware-endpoint" "^4.4.18" + "@smithy/middleware-retry" "^4.4.35" + "@smithy/middleware-serde" "^4.2.10" + "@smithy/middleware-stack" "^4.2.9" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/node-http-handler" "^4.4.11" + "@smithy/protocol-http" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/url-parser" "^4.2.9" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-body-length-browser" "^4.2.1" + "@smithy/util-body-length-node" "^4.2.2" + "@smithy/util-defaults-mode-browser" "^4.3.34" + "@smithy/util-defaults-mode-node" "^4.2.37" + "@smithy/util-endpoints" "^3.2.9" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-retry" "^4.2.9" + "@smithy/util-stream" "^4.5.14" + "@smithy/util-utf8" "^4.2.1" + "@smithy/util-waiter" "^4.2.9" tslib "^2.6.2" -"@aws-sdk/client-s3@^3.990.0": - version "3.994.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.994.0.tgz#b56dfb0e9f3b2fb5139fb0dd9236530fb09917b0" - integrity sha512-zIVQt/XfE2zTFrcPEf8R+KRaRD1++XHMPRhxXM2kVA6NA6Aq/cFCUyYOYYwSbWLF/XeToaX1auYGn3IoZKruPQ== +"@aws-sdk/client-s3@^3.995.0": + version "3.997.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.997.0.tgz#e9023f86f4e1fca544f8cc72a8646395b4cdca3b" + integrity sha512-a4z12iq/bJVJXfVOOKsYMDhxZwf+n8xieCuW+zI07qtRAuMiKr2vUtHPBbKncrF+hqnsq/Wmh48bu2yziGhIbg== 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.973.11" - "@aws-sdk/credential-provider-node" "^3.972.10" - "@aws-sdk/middleware-bucket-endpoint" "^3.972.3" - "@aws-sdk/middleware-expect-continue" "^3.972.3" - "@aws-sdk/middleware-flexible-checksums" "^3.972.9" - "@aws-sdk/middleware-host-header" "^3.972.3" - "@aws-sdk/middleware-location-constraint" "^3.972.3" - "@aws-sdk/middleware-logger" "^3.972.3" - "@aws-sdk/middleware-recursion-detection" "^3.972.3" - "@aws-sdk/middleware-sdk-s3" "^3.972.11" - "@aws-sdk/middleware-ssec" "^3.972.3" - "@aws-sdk/middleware-user-agent" "^3.972.11" - "@aws-sdk/region-config-resolver" "^3.972.3" - "@aws-sdk/signature-v4-multi-region" "3.994.0" - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/util-endpoints" "3.994.0" - "@aws-sdk/util-user-agent-browser" "^3.972.3" - "@aws-sdk/util-user-agent-node" "^3.972.9" - "@smithy/config-resolver" "^4.4.6" - "@smithy/core" "^3.23.2" - "@smithy/eventstream-serde-browser" "^4.2.8" - "@smithy/eventstream-serde-config-resolver" "^4.3.8" - "@smithy/eventstream-serde-node" "^4.2.8" - "@smithy/fetch-http-handler" "^5.3.9" - "@smithy/hash-blob-browser" "^4.2.9" - "@smithy/hash-node" "^4.2.8" - "@smithy/hash-stream-node" "^4.2.8" - "@smithy/invalid-dependency" "^4.2.8" - "@smithy/md5-js" "^4.2.8" - "@smithy/middleware-content-length" "^4.2.8" - "@smithy/middleware-endpoint" "^4.4.16" - "@smithy/middleware-retry" "^4.4.33" - "@smithy/middleware-serde" "^4.2.9" - "@smithy/middleware-stack" "^4.2.8" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/node-http-handler" "^4.4.10" - "@smithy/protocol-http" "^5.3.8" - "@smithy/smithy-client" "^4.11.5" - "@smithy/types" "^4.12.0" - "@smithy/url-parser" "^4.2.8" - "@smithy/util-base64" "^4.3.0" - "@smithy/util-body-length-browser" "^4.2.0" - "@smithy/util-body-length-node" "^4.2.1" - "@smithy/util-defaults-mode-browser" "^4.3.32" - "@smithy/util-defaults-mode-node" "^4.2.35" - "@smithy/util-endpoints" "^3.2.8" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-retry" "^4.2.8" - "@smithy/util-stream" "^4.5.12" - "@smithy/util-utf8" "^4.2.0" - "@smithy/util-waiter" "^4.2.8" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/credential-provider-node" "^3.972.12" + "@aws-sdk/middleware-bucket-endpoint" "^3.972.4" + "@aws-sdk/middleware-expect-continue" "^3.972.4" + "@aws-sdk/middleware-flexible-checksums" "^3.972.11" + "@aws-sdk/middleware-host-header" "^3.972.4" + "@aws-sdk/middleware-location-constraint" "^3.972.4" + "@aws-sdk/middleware-logger" "^3.972.4" + "@aws-sdk/middleware-recursion-detection" "^3.972.4" + "@aws-sdk/middleware-sdk-s3" "^3.972.13" + "@aws-sdk/middleware-ssec" "^3.972.4" + "@aws-sdk/middleware-user-agent" "^3.972.13" + "@aws-sdk/region-config-resolver" "^3.972.4" + "@aws-sdk/signature-v4-multi-region" "^3.996.1" + "@aws-sdk/types" "^3.973.2" + "@aws-sdk/util-endpoints" "^3.996.1" + "@aws-sdk/util-user-agent-browser" "^3.972.4" + "@aws-sdk/util-user-agent-node" "^3.972.12" + "@smithy/config-resolver" "^4.4.7" + "@smithy/core" "^3.23.4" + "@smithy/eventstream-serde-browser" "^4.2.9" + "@smithy/eventstream-serde-config-resolver" "^4.3.9" + "@smithy/eventstream-serde-node" "^4.2.9" + "@smithy/fetch-http-handler" "^5.3.10" + "@smithy/hash-blob-browser" "^4.2.10" + "@smithy/hash-node" "^4.2.9" + "@smithy/hash-stream-node" "^4.2.9" + "@smithy/invalid-dependency" "^4.2.9" + "@smithy/md5-js" "^4.2.9" + "@smithy/middleware-content-length" "^4.2.9" + "@smithy/middleware-endpoint" "^4.4.18" + "@smithy/middleware-retry" "^4.4.35" + "@smithy/middleware-serde" "^4.2.10" + "@smithy/middleware-stack" "^4.2.9" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/node-http-handler" "^4.4.11" + "@smithy/protocol-http" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/url-parser" "^4.2.9" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-body-length-browser" "^4.2.1" + "@smithy/util-body-length-node" "^4.2.2" + "@smithy/util-defaults-mode-browser" "^4.3.34" + "@smithy/util-defaults-mode-node" "^4.2.37" + "@smithy/util-endpoints" "^3.2.9" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-retry" "^4.2.9" + "@smithy/util-stream" "^4.5.14" + "@smithy/util-utf8" "^4.2.1" + "@smithy/util-waiter" "^4.2.9" tslib "^2.6.2" -"@aws-sdk/client-sso@3.993.0": - version "3.993.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.993.0.tgz#6948256598d84eb4b5ee953a8a1be1ed375aafef" - integrity sha512-VLUN+wIeNX24fg12SCbzTUBnBENlL014yMKZvRhPkcn4wHR6LKgNrjsG3fZ03Xs0XoKaGtNFi1VVrq666sGBoQ== - dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/middleware-host-header" "^3.972.3" - "@aws-sdk/middleware-logger" "^3.972.3" - "@aws-sdk/middleware-recursion-detection" "^3.972.3" - "@aws-sdk/middleware-user-agent" "^3.972.11" - "@aws-sdk/region-config-resolver" "^3.972.3" - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/util-endpoints" "3.993.0" - "@aws-sdk/util-user-agent-browser" "^3.972.3" - "@aws-sdk/util-user-agent-node" "^3.972.9" - "@smithy/config-resolver" "^4.4.6" - "@smithy/core" "^3.23.2" - "@smithy/fetch-http-handler" "^5.3.9" - "@smithy/hash-node" "^4.2.8" - "@smithy/invalid-dependency" "^4.2.8" - "@smithy/middleware-content-length" "^4.2.8" - "@smithy/middleware-endpoint" "^4.4.16" - "@smithy/middleware-retry" "^4.4.33" - "@smithy/middleware-serde" "^4.2.9" - "@smithy/middleware-stack" "^4.2.8" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/node-http-handler" "^4.4.10" - "@smithy/protocol-http" "^5.3.8" - "@smithy/smithy-client" "^4.11.5" - "@smithy/types" "^4.12.0" - "@smithy/url-parser" "^4.2.8" - "@smithy/util-base64" "^4.3.0" - "@smithy/util-body-length-browser" "^4.2.0" - "@smithy/util-body-length-node" "^4.2.1" - "@smithy/util-defaults-mode-browser" "^4.3.32" - "@smithy/util-defaults-mode-node" "^4.2.35" - "@smithy/util-endpoints" "^3.2.8" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-retry" "^4.2.8" - "@smithy/util-utf8" "^4.2.0" +"@aws-sdk/core@^3.973.13": + version "3.973.13" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.973.13.tgz#9a6d62be67d6f7e907cf21b18785bef131595228" + integrity sha512-eCFiLyBhJR7c/i8hZOETdzj2wsLFzi2L/w9/jajOgwmGqO8xrUExqkTZqdjROkwU62owqeqSuw4sIzlCv1E/ww== + dependencies: + "@aws-sdk/types" "^3.973.2" + "@aws-sdk/xml-builder" "^3.972.6" + "@smithy/core" "^3.23.4" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/property-provider" "^4.2.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/signature-v4" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@aws-sdk/core@^3.973.11": - version "3.973.11" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.973.11.tgz#3aaf1493dc1d1793a348c84fe302e59a198996c1" - integrity sha512-wdQ8vrvHkKIV7yNUKXyjPWKCdYEUrZTHJ8Ojd5uJxXp9vqPCkUR1dpi1NtOLcrDgueJH7MUH5lQZxshjFPSbDA== - dependencies: - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/xml-builder" "^3.972.5" - "@smithy/core" "^3.23.2" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/property-provider" "^4.2.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/signature-v4" "^5.3.8" - "@smithy/smithy-client" "^4.11.5" - "@smithy/types" "^4.12.0" - "@smithy/util-base64" "^4.3.0" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-utf8" "^4.2.0" - tslib "^2.6.2" - -"@aws-sdk/crc64-nvme@3.972.0": - version "3.972.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.0.tgz#c5e6d14428c9fb4e6bb0646b73a0fa68e6007e24" - integrity sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw== +"@aws-sdk/crc64-nvme@^3.972.1": + version "3.972.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.1.tgz#c32bd754b8d0240e68d8768e0332b5512360114c" + integrity sha512-CmT9RrQol36hUdvp4dk+BRV47JBRIE+I46yAOKyb/SoMH7mKOBwk6jUpFZhF8B+LCnWnefnM6jT/WsfQ5M1kCQ== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@^3.972.9": - version "3.972.9" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.9.tgz#1290fb0aa49fb2a8d650e3f7886512add3ed97a1" - integrity sha512-ZptrOwQynfupubvcngLkbdIq/aXvl/czdpEG8XJ8mN8Nb19BR0jaK0bR+tfuMU36Ez9q4xv7GGkHFqEEP2hUUQ== +"@aws-sdk/credential-provider-env@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.11.tgz#e4680636d200671875134201238bcdacb8cc8378" + integrity sha512-hbyoFuVm3qOAGfIPS9t7jCs8GFLFoaOs8ZmYp/chqciuHDyEGv+J365ip7YSvXSrxxUbeW9NyB1hTLt40NBMRg== dependencies: - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/types" "^3.973.1" - "@smithy/property-provider" "^4.2.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@^3.972.11": - version "3.972.11" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.11.tgz#5af1e077aca5d6173c49eb63deaffc7f1184370a" - integrity sha512-hECWoOoH386bGr89NQc9vA/abkGf5TJrMREt+lhNcnSNmoBS04fK7vc3LrJBSQAUGGVj0Tz3f4dHB3w5veovig== - dependencies: - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/types" "^3.973.1" - "@smithy/fetch-http-handler" "^5.3.9" - "@smithy/node-http-handler" "^4.4.10" - "@smithy/property-provider" "^4.2.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/smithy-client" "^4.11.5" - "@smithy/types" "^4.12.0" - "@smithy/util-stream" "^4.5.12" +"@aws-sdk/credential-provider-http@^3.972.13": + version "3.972.13" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.13.tgz#e3874a8ef3902ebbd3d36225fdb4b9b711939625" + integrity sha512-a864QxQWFkdCZ5wQF0QZNKTbqAc/DFQNeARp4gOyZZdql5RHjj4CppUSfwAzS9cpw2IPY3eeJjWqLZ1QiDB/6w== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/types" "^3.973.2" + "@smithy/fetch-http-handler" "^5.3.10" + "@smithy/node-http-handler" "^4.4.11" + "@smithy/property-provider" "^4.2.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/util-stream" "^4.5.14" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@^3.972.9": - version "3.972.9" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.9.tgz#befbaefe54384bdb4c677d03127e627e733b35aa" - integrity sha512-zr1csEu9n4eDiHMTYJabX1mDGuGLgjgUnNckIivvk43DocJC9/f6DefFrnUPZXE+GHtbW50YuXb+JIxKykU74A== - dependencies: - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/credential-provider-env" "^3.972.9" - "@aws-sdk/credential-provider-http" "^3.972.11" - "@aws-sdk/credential-provider-login" "^3.972.9" - "@aws-sdk/credential-provider-process" "^3.972.9" - "@aws-sdk/credential-provider-sso" "^3.972.9" - "@aws-sdk/credential-provider-web-identity" "^3.972.9" - "@aws-sdk/nested-clients" "3.993.0" - "@aws-sdk/types" "^3.973.1" - "@smithy/credential-provider-imds" "^4.2.8" - "@smithy/property-provider" "^4.2.8" - "@smithy/shared-ini-file-loader" "^4.4.3" - "@smithy/types" "^4.12.0" +"@aws-sdk/credential-provider-ini@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.11.tgz#43a1c4c926fbb1a56b350f3afa17c8f095de27ea" + integrity sha512-kvPFn626ABLzxmjFMoqMRtmFKMeiUdWPhwxhmuPu233tqHnNuXzHv0MtrZlkzHd+rwlh9j0zCbQo89B54wIazQ== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/credential-provider-env" "^3.972.11" + "@aws-sdk/credential-provider-http" "^3.972.13" + "@aws-sdk/credential-provider-login" "^3.972.11" + "@aws-sdk/credential-provider-process" "^3.972.11" + "@aws-sdk/credential-provider-sso" "^3.972.11" + "@aws-sdk/credential-provider-web-identity" "^3.972.11" + "@aws-sdk/nested-clients" "^3.996.1" + "@aws-sdk/types" "^3.973.2" + "@smithy/credential-provider-imds" "^4.2.9" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-login@^3.972.9": - version "3.972.9" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.9.tgz#ce71a9b2a42f4294fdc035adde8173fc99331bae" - integrity sha512-m4RIpVgZChv0vWS/HKChg1xLgZPpx8Z+ly9Fv7FwA8SOfuC6I3htcSaBz2Ch4bneRIiBUhwP4ziUo0UZgtJStQ== - dependencies: - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/nested-clients" "3.993.0" - "@aws-sdk/types" "^3.973.1" - "@smithy/property-provider" "^4.2.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/shared-ini-file-loader" "^4.4.3" - "@smithy/types" "^4.12.0" +"@aws-sdk/credential-provider-login@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.11.tgz#33fa3b2e95e77e48be601305773622d0aee30500" + integrity sha512-stdy09EpBTmsxGiXe1vB5qtXNww9wact36/uWLlSV0/vWbCOUAY2JjhPXoDVLk8n+E6r0M5HeZseLk+iTtifxg== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/nested-clients" "^3.996.1" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@^3.972.10": - version "3.972.10" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.10.tgz#577df01a8511ef6602b090e96832fc612bc81b03" - integrity sha512-70nCESlvnzjo4LjJ8By8MYIiBogkYPSXl3WmMZfH9RZcB/Nt9qVWbFpYj6Fk1vLa4Vk8qagFVeXgxdieMxG1QA== - dependencies: - "@aws-sdk/credential-provider-env" "^3.972.9" - "@aws-sdk/credential-provider-http" "^3.972.11" - "@aws-sdk/credential-provider-ini" "^3.972.9" - "@aws-sdk/credential-provider-process" "^3.972.9" - "@aws-sdk/credential-provider-sso" "^3.972.9" - "@aws-sdk/credential-provider-web-identity" "^3.972.9" - "@aws-sdk/types" "^3.973.1" - "@smithy/credential-provider-imds" "^4.2.8" - "@smithy/property-provider" "^4.2.8" - "@smithy/shared-ini-file-loader" "^4.4.3" - "@smithy/types" "^4.12.0" +"@aws-sdk/credential-provider-node@^3.972.12": + version "3.972.12" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.12.tgz#6ca15d141f400851f0b742aab98db652eee4575c" + integrity sha512-gMWGnHbNSKWRj+PAiuSg0EDpEwpyIgk0v9U6EuZ1C/5/BUv25Way+E+UFB7r+YYkscuBJMJ+ai8E2K0Q8dx50g== + dependencies: + "@aws-sdk/credential-provider-env" "^3.972.11" + "@aws-sdk/credential-provider-http" "^3.972.13" + "@aws-sdk/credential-provider-ini" "^3.972.11" + "@aws-sdk/credential-provider-process" "^3.972.11" + "@aws-sdk/credential-provider-sso" "^3.972.11" + "@aws-sdk/credential-provider-web-identity" "^3.972.11" + "@aws-sdk/types" "^3.973.2" + "@smithy/credential-provider-imds" "^4.2.9" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@^3.972.9": - version "3.972.9" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.9.tgz#efe60d47e54b42ac4ce901810a96152371249744" - integrity sha512-gOWl0Fe2gETj5Bk151+LYKpeGi2lBDLNu+NMNpHRlIrKHdBmVun8/AalwMK8ci4uRfG5a3/+zvZBMpuen1SZ0A== - dependencies: - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/types" "^3.973.1" - "@smithy/property-provider" "^4.2.8" - "@smithy/shared-ini-file-loader" "^4.4.3" - "@smithy/types" "^4.12.0" +"@aws-sdk/credential-provider-process@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.11.tgz#3434eafdc92d706eb6838c1efc5e5d04f341a731" + integrity sha512-B049fvbv41vf0Fs5bCtbzHpruBDp61sPiFDxUmkAJ/zvgSAturpj2rqzV1rj2clg4mb44Uxp9rgpcODexNFlFA== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@^3.972.9": - version "3.972.9" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.9.tgz#d9c79aa26a6a90dc4f4b527546e5fb9cb5b845de" - integrity sha512-ey7S686foGTArvFhi3ifQXmgptKYvLSGE2250BAQceMSXZddz7sUSNERGJT2S7u5KIe/kgugxrt01hntXVln6w== - dependencies: - "@aws-sdk/client-sso" "3.993.0" - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/token-providers" "3.993.0" - "@aws-sdk/types" "^3.973.1" - "@smithy/property-provider" "^4.2.8" - "@smithy/shared-ini-file-loader" "^4.4.3" - "@smithy/types" "^4.12.0" +"@aws-sdk/credential-provider-sso@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.11.tgz#ed8184019f0e046ea07d3ca19f2a52235afc5554" + integrity sha512-vX9z8skN8vPtamVWmSCm4KQohub+1uMuRzIo4urZ2ZUMBAl1bqHatVD/roCb3qRfAyIGvZXCA/AWS03BQRMyCQ== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/nested-clients" "^3.996.1" + "@aws-sdk/token-providers" "3.997.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@^3.972.9": - version "3.972.9" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.9.tgz#147c6daefdbb03f718daf86d1286558759510769" - integrity sha512-8LnfS76nHXoEc9aRRiMMpxZxJeDG0yusdyo3NvPhCgESmBUgpMa4luhGbClW5NoX/qRcGxxM6Z/esqANSNMTow== - dependencies: - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/nested-clients" "3.993.0" - "@aws-sdk/types" "^3.973.1" - "@smithy/property-provider" "^4.2.8" - "@smithy/shared-ini-file-loader" "^4.4.3" - "@smithy/types" "^4.12.0" +"@aws-sdk/credential-provider-web-identity@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.11.tgz#976a5499f6828b00e068a3c81b7400278e71ad03" + integrity sha512-VR2Ju/QBdOjnWNIYuxRml63eFDLGc6Zl8aDwLi1rzgWo3rLBgtaWhWVBAijhVXzyPdQIOqdL8hvll5ybqumjeQ== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/nested-clients" "^3.996.1" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.3.tgz#158507d55505e5e7b5b8cdac9f037f6aa326f202" - integrity sha512-fmbgWYirF67YF1GfD7cg5N6HHQ96EyRNx/rDIrTF277/zTWVuPI2qS/ZHgofwR1NZPe/NWvoppflQY01LrbVLg== +"@aws-sdk/middleware-bucket-endpoint@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.4.tgz#03f07cce35d0983c5767e4a5ac26dafeabb7050c" + integrity sha512-4W+1SPx5eWetSurqk7WNnldNr++k4UYcP2XmPnCf8yLFdUZ4NKKJA3j+zVuWmhOu7xKmEAyo9j3f+cy22CEVKg== dependencies: - "@aws-sdk/types" "^3.973.1" + "@aws-sdk/types" "^3.973.2" "@aws-sdk/util-arn-parser" "^3.972.2" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" - "@smithy/util-config-provider" "^4.2.0" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" + "@smithy/util-config-provider" "^4.2.1" tslib "^2.6.2" -"@aws-sdk/middleware-expect-continue@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.3.tgz#c60bd81e81dde215b9f3f67e3c5448b608afd530" - integrity sha512-4msC33RZsXQpUKR5QR4HnvBSNCPLGHmB55oDiROqqgyOc+TOfVu2xgi5goA7ms6MdZLeEh2905UfWMnMMF4mRg== +"@aws-sdk/middleware-expect-continue@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.4.tgz#af429e14086225b6d00687ade1d4431063a1a6c0" + integrity sha512-lxU2ieIWtK9nqWxA+W4ldev31tRPjkkdt+QDBWGiwUNJsNwSJFVhkuIV9cbBPxTCT0nmYyJwvJ/2TYYJLMwmMA== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-flexible-checksums@^3.972.9": - version "3.972.9" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.9.tgz#37d2662dc00854fe121d5d090c855d40487bbfdc" - integrity sha512-E663+r/UQpvF3aJkD40p5ZANVQFsUcbE39jifMtN7wc0t1M0+2gJJp3i75R49aY9OiSX5lfVyPUNjN/BNRCCZA== +"@aws-sdk/middleware-flexible-checksums@^3.972.11": + version "3.972.11" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.11.tgz#c5482a19302e775d028265b217656547f3a9ad4a" + integrity sha512-niA/vhtS/xR4hEHIsPLEvgsccpqve+uJ4Gtizctsa21HfHmIZi5bWJD8kPcN+SfAgrlnuBG2YKFX0rRbzylg7A== dependencies: "@aws-crypto/crc32" "5.2.0" "@aws-crypto/crc32c" "5.2.0" "@aws-crypto/util" "5.2.0" - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/crc64-nvme" "3.972.0" - "@aws-sdk/types" "^3.973.1" - "@smithy/is-array-buffer" "^4.2.0" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-stream" "^4.5.12" - "@smithy/util-utf8" "^4.2.0" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/crc64-nvme" "^3.972.1" + "@aws-sdk/types" "^3.973.2" + "@smithy/is-array-buffer" "^4.2.1" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-stream" "^4.5.14" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.3.tgz#47c161dec62d89c66c89f4d17ff4434021e04af5" - integrity sha512-aknPTb2M+G3s+0qLCx4Li/qGZH8IIYjugHMv15JTYMe6mgZO8VBpYgeGYsNMGCqCZOcWzuf900jFBG5bopfzmA== +"@aws-sdk/middleware-host-header@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.4.tgz#6d12dbc3e9bba567209f57e2fc0304eeb47f753e" + integrity sha512-4q2Vg7/zOB10huDBLjzzTwVjBpG22X3J3ief2XrJEgTaANZrNfA3/cGbCVNAibSbu/nIYA7tDk8WCdsIzDDc4Q== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-location-constraint@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.3.tgz#b4f504f75baa19064b7457e5c6e3c8cecb4c32eb" - integrity sha512-nIg64CVrsXp67vbK0U1/Is8rik3huS3QkRHn2DRDx4NldrEFMgdkZGI/+cZMKD9k4YOS110Dfu21KZLHrFA/1g== +"@aws-sdk/middleware-location-constraint@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.4.tgz#6f04dbecb84814a21baf356bf36e73a592c53ffe" + integrity sha512-EP1qs0JV2smcKhZpwDMuzMBx9Q5qyU/RuZ02/qh/yBA3jnZKuNhB1lsQKkicvXg7LOeoqyxXLKOP/PJOugX8yg== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-logger@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.972.3.tgz#ef1afd4a0b70fe72cf5f7c817f82da9f35c7e836" - integrity sha512-Ftg09xNNRqaz9QNzlfdQWfpqMCJbsQdnZVJP55jfhbKi1+FTWxGuvfPoBhDHIovqWKjqbuiew3HuhxbJ0+OjgA== +"@aws-sdk/middleware-logger@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.972.4.tgz#5a238d2d74b3ea80fcad6563ce07842f8f94a776" + integrity sha512-xFqPvTysuZAHSkdygT+ken/5rzkR7fhOoDPejAJQslZpp0XBepmCJnDOqA57ERtCTBpu8wpjTFI1ETd4S0AXEw== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.3.tgz#5b95dcecff76a0d2963bd954bdef87700d1b1c8c" - integrity sha512-PY57QhzNuXHnwbJgbWYTrqIDHYSeOlhfYERTAuc16LKZpTZRJUjzBFokp9hF7u1fuGeE3D70ERXzdbMBOqQz7Q== +"@aws-sdk/middleware-recursion-detection@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.4.tgz#a1a0fe638d7b73b02b7b944d1ed83d1ecc02b852" + integrity sha512-tVbRaayUZ7y2bOb02hC3oEPTqQf2A0HpPDwdMl1qTmye/q8Mq1F1WiIoFkQwG/YQFvbyErYIDMbYzIlxzzLtjQ== dependencies: - "@aws-sdk/types" "^3.973.1" + "@aws-sdk/types" "^3.973.2" "@aws/lambda-invoke-store" "^0.2.2" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@^3.972.11": - version "3.972.11" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.11.tgz#db6fc30c5ff70ee9b0a616f7fe3802bccbf73777" - integrity sha512-Qr0T7ZQTRMOuR6ahxEoJR1thPVovfWrKB2a6KBGR+a8/ELrFodrgHwhq50n+5VMaGuLtGhHiISU3XGsZmtmVXQ== +"@aws-sdk/middleware-sdk-s3@^3.972.13": + version "3.972.13" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.13.tgz#c53753d12589dfa034b71f6cfdf4c722a7f5ba7a" + integrity sha512-rGBz1n6PFxg1+5mnN1/IczesPwx0W39DZt2JPjqPiZAZ7LAqH8FS4AsawSNZqr+UFJfqtTXYpeLQnMfbMAgHhg== dependencies: - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/types" "^3.973.1" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/types" "^3.973.2" "@aws-sdk/util-arn-parser" "^3.972.2" - "@smithy/core" "^3.23.2" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/signature-v4" "^5.3.8" - "@smithy/smithy-client" "^4.11.5" - "@smithy/types" "^4.12.0" - "@smithy/util-config-provider" "^4.2.0" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-stream" "^4.5.12" - "@smithy/util-utf8" "^4.2.0" + "@smithy/core" "^3.23.4" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/protocol-http" "^5.3.9" + "@smithy/signature-v4" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/util-config-provider" "^4.2.1" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-stream" "^4.5.14" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@aws-sdk/middleware-ssec@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.3.tgz#4f81d310fd91164e6e18ba3adab6bcf906920333" - integrity sha512-dU6kDuULN3o3jEHcjm0c4zWJlY1zWVkjG9NPe9qxYLLpcbdj5kRYBS2DdWYD+1B9f910DezRuws7xDEqKkHQIg== +"@aws-sdk/middleware-ssec@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.4.tgz#419442c1c6da7b432de05e223c79fd666e22a1c3" + integrity sha512-jzysKNnfwqjTOeF4s1QcxYQ8WB1ZIw/KMhOAX2UGYsmpVPHZ1cV6IYRfBQnt0qnDYom1pU3b5jOG8TA9n6LAbQ== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@^3.972.11": - version "3.972.11" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.11.tgz#9723b323fd67ee4b96ff613877bb2fca4e3fc560" - integrity sha512-R8CvPsPHXwzIHCAza+bllY6PrctEk4lYq/SkHJz9NLoBHCcKQrbOcsfXxO6xmipSbUNIbNIUhH0lBsJGgsRdiw== - dependencies: - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/util-endpoints" "3.993.0" - "@smithy/core" "^3.23.2" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" +"@aws-sdk/middleware-user-agent@^3.972.13": + version "3.972.13" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.13.tgz#03df64182ce3c10331ff107e9947b9132c2777a0" + integrity sha512-p1kVYbzBxRmhuOHoL/ANJPCedqUxnVgkEjxPoxt5pQv/yzppHM7aBWciYEE9TZY59M421D3GjLfZIZBoEFboVQ== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/types" "^3.973.2" + "@aws-sdk/util-endpoints" "^3.996.1" + "@smithy/core" "^3.23.4" + "@smithy/protocol-http" "^5.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/nested-clients@3.993.0": - version "3.993.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.993.0.tgz#9d93d9b3bf3f031d6addd9ee58cd90148f59362d" - integrity sha512-iOq86f2H67924kQUIPOAvlmMaOAvOLoDOIb66I2YqSUpMYB6ufiuJW3RlREgskxv86S5qKzMnfy/X6CqMjK6XQ== +"@aws-sdk/nested-clients@^3.996.1": + version "3.996.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.996.1.tgz#f0028672b726f987bb904af57092a857a69a1f43" + integrity sha512-XHVLFRGkuV2gh2uwBahCt65ALMb5wMpqplXEZIvFnWOCPlk60B7h7M5J9Em243K8iICDiWY6KhBEqVGfjTqlLA== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/middleware-host-header" "^3.972.3" - "@aws-sdk/middleware-logger" "^3.972.3" - "@aws-sdk/middleware-recursion-detection" "^3.972.3" - "@aws-sdk/middleware-user-agent" "^3.972.11" - "@aws-sdk/region-config-resolver" "^3.972.3" - "@aws-sdk/types" "^3.973.1" - "@aws-sdk/util-endpoints" "3.993.0" - "@aws-sdk/util-user-agent-browser" "^3.972.3" - "@aws-sdk/util-user-agent-node" "^3.972.9" - "@smithy/config-resolver" "^4.4.6" - "@smithy/core" "^3.23.2" - "@smithy/fetch-http-handler" "^5.3.9" - "@smithy/hash-node" "^4.2.8" - "@smithy/invalid-dependency" "^4.2.8" - "@smithy/middleware-content-length" "^4.2.8" - "@smithy/middleware-endpoint" "^4.4.16" - "@smithy/middleware-retry" "^4.4.33" - "@smithy/middleware-serde" "^4.2.9" - "@smithy/middleware-stack" "^4.2.8" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/node-http-handler" "^4.4.10" - "@smithy/protocol-http" "^5.3.8" - "@smithy/smithy-client" "^4.11.5" - "@smithy/types" "^4.12.0" - "@smithy/url-parser" "^4.2.8" - "@smithy/util-base64" "^4.3.0" - "@smithy/util-body-length-browser" "^4.2.0" - "@smithy/util-body-length-node" "^4.2.1" - "@smithy/util-defaults-mode-browser" "^4.3.32" - "@smithy/util-defaults-mode-node" "^4.2.35" - "@smithy/util-endpoints" "^3.2.8" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-retry" "^4.2.8" - "@smithy/util-utf8" "^4.2.0" + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/middleware-host-header" "^3.972.4" + "@aws-sdk/middleware-logger" "^3.972.4" + "@aws-sdk/middleware-recursion-detection" "^3.972.4" + "@aws-sdk/middleware-user-agent" "^3.972.13" + "@aws-sdk/region-config-resolver" "^3.972.4" + "@aws-sdk/types" "^3.973.2" + "@aws-sdk/util-endpoints" "^3.996.1" + "@aws-sdk/util-user-agent-browser" "^3.972.4" + "@aws-sdk/util-user-agent-node" "^3.972.12" + "@smithy/config-resolver" "^4.4.7" + "@smithy/core" "^3.23.4" + "@smithy/fetch-http-handler" "^5.3.10" + "@smithy/hash-node" "^4.2.9" + "@smithy/invalid-dependency" "^4.2.9" + "@smithy/middleware-content-length" "^4.2.9" + "@smithy/middleware-endpoint" "^4.4.18" + "@smithy/middleware-retry" "^4.4.35" + "@smithy/middleware-serde" "^4.2.10" + "@smithy/middleware-stack" "^4.2.9" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/node-http-handler" "^4.4.11" + "@smithy/protocol-http" "^5.3.9" + "@smithy/smithy-client" "^4.11.7" + "@smithy/types" "^4.12.1" + "@smithy/url-parser" "^4.2.9" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-body-length-browser" "^4.2.1" + "@smithy/util-body-length-node" "^4.2.2" + "@smithy/util-defaults-mode-browser" "^4.3.34" + "@smithy/util-defaults-mode-node" "^4.2.37" + "@smithy/util-endpoints" "^3.2.9" + "@smithy/util-middleware" "^4.2.9" + "@smithy/util-retry" "^4.2.9" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.3.tgz#25af64235ca6f4b6b21f85d4b3c0b432efc4ae04" - integrity sha512-v4J8qYAWfOMcZ4MJUyatntOicTzEMaU7j3OpkRCGGFSL2NgXQ5VbxauIyORA+pxdKZ0qQG2tCQjQjZDlXEC3Ow== +"@aws-sdk/region-config-resolver@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.4.tgz#aa178d3f3cbac33e2f5ade15a160dad2dfd062c6" + integrity sha512-3GrJYv5eI65oCKveBZP7Q246dVP+tqeys9aKMB0dfX1glUWfppWlxIu52derqdNb9BX9lxYmeiaBcBIqOAYSgQ== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/config-resolver" "^4.4.6" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/config-resolver" "^4.4.7" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@3.994.0": - version "3.994.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.994.0.tgz#587cef0be063e27542f8b629db057c4310429339" - integrity sha512-8y04Lv497KKd7f2TVlm2RaKQaNfnY17ZH8d3m+7sW/3R3BhZvHgWQZyqTb/vcN2ERz1YAnWx6woJyB3ZNFvakw== +"@aws-sdk/signature-v4-multi-region@^3.996.1": + version "3.996.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.1.tgz#50e1da5fcf81f31188334dac75f8d065d65ad082" + integrity sha512-Mj4npuEtVHFjGZHTBwhBvBzmgKHY7UsfroZWWzjpVP5YJaMTPeihsotuQLba5uQthEZyaeWs6dTu3Shr0qKFFw== dependencies: - "@aws-sdk/middleware-sdk-s3" "^3.972.11" - "@aws-sdk/types" "^3.973.1" - "@smithy/protocol-http" "^5.3.8" - "@smithy/signature-v4" "^5.3.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/middleware-sdk-s3" "^3.972.13" + "@aws-sdk/types" "^3.973.2" + "@smithy/protocol-http" "^5.3.9" + "@smithy/signature-v4" "^5.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/token-providers@3.993.0": - version "3.993.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.993.0.tgz#4d52a67e7699acbea356a50504943ace883fe03c" - integrity sha512-+35g4c+8r7sB9Sjp1KPdM8qxGn6B/shBjJtEUN4e+Edw9UEQlZKIzioOGu3UAbyE0a/s450LdLZr4wbJChtmww== - dependencies: - "@aws-sdk/core" "^3.973.11" - "@aws-sdk/nested-clients" "3.993.0" - "@aws-sdk/types" "^3.973.1" - "@smithy/property-provider" "^4.2.8" - "@smithy/shared-ini-file-loader" "^4.4.3" - "@smithy/types" "^4.12.0" +"@aws-sdk/token-providers@3.997.0": + version "3.997.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.997.0.tgz#3941e72c86c70776f60030947ae88d428e8a1591" + integrity sha512-UdG36F7lU9aTqGFRieEyuRUJlgEJBqKeKKekC0esH21DbUSKhPR1kZBah214kYasIaWe1hLJLaqUigoTa5hZAQ== + dependencies: + "@aws-sdk/core" "^3.973.13" + "@aws-sdk/nested-clients" "^3.996.1" + "@aws-sdk/types" "^3.973.2" + "@smithy/property-provider" "^4.2.9" + "@smithy/shared-ini-file-loader" "^4.4.4" + "@smithy/types" "^4.12.1" tslib "^2.6.2" "@aws-sdk/types@^3.222.0": @@ -579,12 +535,12 @@ "@smithy/types" "^4.5.0" tslib "^2.6.2" -"@aws-sdk/types@^3.973.1": - version "3.973.1" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.973.1.tgz#1b2992ec6c8380c3e74c9bd2c74703e9a807d6e0" - integrity sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg== +"@aws-sdk/types@^3.973.2": + version "3.973.2" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.973.2.tgz#4d46878bbff7dd5ccd162394943baa8004098f3a" + integrity sha512-maTZwGsALtnAw4TJr/S6yERAosTwPduu0XhUV+SdbvRZtCOgSgk1ttL2R0XYzvkYSpvbtJocn77tBXq2AKglBw== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.12.1" tslib "^2.6.2" "@aws-sdk/util-arn-parser@^3.972.2": @@ -594,26 +550,15 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.993.0": - version "3.993.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.993.0.tgz#60a11de23df02e76142a06dd20878b47255fee56" - integrity sha512-j6vioBeRZ4eHX4SWGvGPpwGg/xSOcK7f1GL0VM+rdf3ZFTIsUEhCFmD78B+5r2PgztcECSzEfvHQX01k8dPQPw== +"@aws-sdk/util-endpoints@^3.996.1": + version "3.996.1" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.996.1.tgz#1fd0f3800c899f80be067318795301b85412484d" + integrity sha512-7cJyd+M5i0IoqWkJa1KFx8KNCGIx+Ywu+lT53KpqX7ReVwz03DCKUqvZ/y65vdKwo9w9/HptSAeLDluO5MpGIg== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/types" "^4.12.0" - "@smithy/url-parser" "^4.2.8" - "@smithy/util-endpoints" "^3.2.8" - tslib "^2.6.2" - -"@aws-sdk/util-endpoints@3.994.0": - version "3.994.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.994.0.tgz#ba66054d8aef3202aaac656425ccdb68adb5117d" - integrity sha512-L2obUBw4ACMMd1F/SG5LdfPyZ0xJNs9Maifwr3w0uWO+4YvHmk9FfRskfSfE/SLZ9S387oSZ+1xiP7BfVCP/Og== - dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/types" "^4.12.0" - "@smithy/url-parser" "^4.2.8" - "@smithy/util-endpoints" "^3.2.8" + "@aws-sdk/types" "^3.973.2" + "@smithy/types" "^4.12.1" + "@smithy/url-parser" "^4.2.9" + "@smithy/util-endpoints" "^3.2.9" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": @@ -623,33 +568,33 @@ dependencies: tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@^3.972.3": - version "3.972.3" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.3.tgz#1363b388cb3af86c5322ef752c0cf8d7d25efa8a" - integrity sha512-JurOwkRUcXD/5MTDBcqdyQ9eVedtAsZgw5rBwktsPTN7QtPiS2Ld1jkJepNgYoCufz1Wcut9iup7GJDoIHp8Fw== +"@aws-sdk/util-user-agent-browser@^3.972.4": + version "3.972.4" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.4.tgz#f248b0c610fa20dae189fea5face2b9a1d95530a" + integrity sha512-GHb+8XHv6hfLWKQKAKaSOm+vRvogg07s+FWtbR3+eCXXPSFn9XVmiYF4oypAxH7dGIvoxkVG/buHEnzYukyJiA== dependencies: - "@aws-sdk/types" "^3.973.1" - "@smithy/types" "^4.12.0" + "@aws-sdk/types" "^3.973.2" + "@smithy/types" "^4.12.1" bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@^3.972.9": - version "3.972.9" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.9.tgz#23f03f29daa06192d2308e5c52757c2515e761c8" - integrity sha512-JNswdsLdQemxqaSIBL2HRhsHPUBBziAgoi5RQv6/9avmE5g5RSdt1hWr3mHJ7OxqRYf+KeB11ExWbiqfrnoeaA== +"@aws-sdk/util-user-agent-node@^3.972.12": + version "3.972.12" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.12.tgz#81e4281ab19b4d547b773e06b89bd08c6534c857" + integrity sha512-c1n3wBK6te+Vd9qU86nF8AsYuiBsxLn0AADGWyFX7vEADr3btaAg5iPQT6GYj6rvzSOEVVisvaAatOWInlJUbQ== dependencies: - "@aws-sdk/middleware-user-agent" "^3.972.11" - "@aws-sdk/types" "^3.973.1" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/types" "^4.12.0" + "@aws-sdk/middleware-user-agent" "^3.972.13" + "@aws-sdk/types" "^3.973.2" + "@smithy/node-config-provider" "^4.3.9" + "@smithy/types" "^4.12.1" tslib "^2.6.2" -"@aws-sdk/xml-builder@^3.972.5": - version "3.972.5" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.972.5.tgz#cde05cf1fa9021a8935e1e594fe8eacdce05f5a8" - integrity sha512-mCae5Ys6Qm1LDu0qdGwx2UQ63ONUe+FHw908fJzLDqFKTDBK4LDZUqKWm4OkTCNFq19bftjsBSESIGLD/s3/rA== +"@aws-sdk/xml-builder@^3.972.6": + version "3.972.6" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.972.6.tgz#a88b3f1894cffe62046bd748357eaf4f26544377" + integrity sha512-YrXu+UnfC8IdARa4ZkrpcyuRmA/TVgYW6Lcdtvi34NQgRjM1hTirNirN+rGb+s/kNomby8oJiIAu0KNbiZC7PA== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.12.1" fast-xml-parser "5.3.6" tslib "^2.6.2" @@ -1239,13 +1184,13 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/checkbox@^5.0.5": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-5.0.7.tgz#c96f3112f84e27c333a8df2cda95afa035c24953" - integrity sha512-OGJykc3mpe4kiNXwXlDlP4MFqZso5QOoXJaJrmTJI+Y+gq68wxTyCUIFv34qgwZTHnGGeqwUKGOi4oxptTe+ZQ== +"@inquirer/checkbox@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-5.1.0.tgz#4c62eb72ff3d6a4e15bec22bf508ec0899c2f6f4" + integrity sha512-/HjF1LN0a1h4/OFsbGKHNDtWICFU/dqXCdym719HFTyJo9IG7Otr+ziGWc9S0iQuohRZllh+WprSgd5UW5Fw0g== dependencies: "@inquirer/ansi" "^2.0.3" - "@inquirer/core" "^11.1.4" + "@inquirer/core" "^11.1.5" "@inquirer/figures" "^2.0.3" "@inquirer/type" "^4.0.3" @@ -1265,12 +1210,12 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/confirm@^6.0.5": - version "6.0.7" - resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-6.0.7.tgz#9e34c740f03e3b57da97b3a98b2d6ef690a1ad9c" - integrity sha512-lKdNloHLnGoBUUwprxKFd+SpkAnyQTBrZACFPtxDq9GiLICD2t+CaeJ1Ku4goZsGPyBIFc2YYpmDSJLEXoc16g== +"@inquirer/confirm@^6.0.8": + version "6.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-6.0.8.tgz#9fd60f2968e723f82dd067e1ffcc1fe32f5bfe04" + integrity sha512-Di6dgmiZ9xCSUxWUReWTqDtbhXCuG2MQm2xmgSAIruzQzBqNf49b8E07/vbCYY506kDe8BiwJbegXweG8M1klw== dependencies: - "@inquirer/core" "^11.1.4" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" "@inquirer/core@^10.3.2": @@ -1287,10 +1232,10 @@ wrap-ansi "^6.2.0" yoctocolors-cjs "^2.1.3" -"@inquirer/core@^11.1.4": - version "11.1.4" - resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-11.1.4.tgz#f9505ede59d7a19ac8857f4085f4b39f1f7d5c35" - integrity sha512-1HvwyASF0tE/7W8geTTn0ydiWb463pq4SBIpaWcVabTrw55+CiRmytV9eZoqt3ohchsPw4Vv60jfNiI6YljVUg== +"@inquirer/core@^11.1.5": + version "11.1.5" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-11.1.5.tgz#781a7c5d56c12961870e4f0521ff881a85c81b7e" + integrity sha512-QQPAX+lka8GyLcZ7u7Nb1h6q72iZ/oy0blilC3IB2nSt1Qqxp7akt94Jqhi/DzARuN3Eo9QwJRvtl4tmVe4T5A== dependencies: "@inquirer/ansi" "^2.0.3" "@inquirer/figures" "^2.0.3" @@ -1327,12 +1272,12 @@ "@inquirer/external-editor" "^1.0.3" "@inquirer/type" "^3.0.10" -"@inquirer/editor@^5.0.5": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-5.0.7.tgz#34992efcbc4bd9ba55816861f5a518b96d8facab" - integrity sha512-d36tisyvmxH7H+LICTeTofrKmJ+R1jAYV8q0VTYh96cm8mP2BdGh9TAIqbCGcciX8/dr0fJW+VJq3jAnco5xfg== +"@inquirer/editor@^5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-5.0.8.tgz#3d028366cacd749efad80db67da2db173658ac9f" + integrity sha512-sLcpbb9B3XqUEGrj1N66KwhDhEckzZ4nI/W6SvLXyBX8Wic3LDLENlWRvkOGpCPoserabe+MxQkpiMoI8irvyA== dependencies: - "@inquirer/core" "^11.1.4" + "@inquirer/core" "^11.1.5" "@inquirer/external-editor" "^2.0.3" "@inquirer/type" "^4.0.3" @@ -1345,12 +1290,12 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/expand@^5.0.5": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-5.0.7.tgz#c9366e218b22d27ad3ace66274f754ba8cbb7a42" - integrity sha512-h2RRFzDdeXOXLrJOUAaHzyR1HbiZlrl/NxorOAgNrzhiSThbwEFVOf88lJzbF5WXGrQ2RwqK2h0xAE7eo8QP5w== +"@inquirer/expand@^5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-5.0.8.tgz#837c1b3af8a9dda536c5af516b57e8c7f1053d4a" + integrity sha512-QieW3F1prNw3j+hxO7/NKkG1pk3oz7pOB6+5Upwu3OIwADfPX0oZVppsqlL+Vl/uBHHDSOBY0BirLctLnXwGGg== dependencies: - "@inquirer/core" "^11.1.4" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" "@inquirer/external-editor@^1.0.3": @@ -1400,12 +1345,12 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/input@^5.0.5": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-5.0.7.tgz#60b619f65307062aa5446b31aefde48c90e7e78e" - integrity sha512-b+eKk/eUvKLQ6c+rDu9u4I1+twdjOfrEaw9NURDpCrWYJTWL1/JQEudZi0AeqXDGcn0tMdhlfpEfjcqr33B/qw== +"@inquirer/input@^5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-5.0.8.tgz#f10db8f67e5b95a52fef12924bbe77a010d7f834" + integrity sha512-p0IJslw0AmedLEkOU+yrEX3Aj2RTpQq7ZOf8nc1DIhjzaxRWrrgeuE5Kyh39fVRgtcACaMXx/9WNo8+GjgBOfw== dependencies: - "@inquirer/core" "^11.1.4" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" "@inquirer/number@^3.0.23": @@ -1416,12 +1361,12 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/number@^4.0.5": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-4.0.7.tgz#2ff19203d2750975e23cad1867c47d90d43107b2" - integrity sha512-/l5KxcLFFexzOwh8DcVOI7zgVQCwcBt/9yHWtvMdYvaYLMK5J31BSR/fO3Z9WauA21qwAkDGRvYNHIG4vR6JwA== +"@inquirer/number@^4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-4.0.8.tgz#5a85b9aee783452d5d8067a71b16d481fa66d6dc" + integrity sha512-uGLiQah9A0F9UIvJBX52m0CnqtLaym0WpT9V4YZrjZ+YRDKZdwwoEPz06N6w8ChE2lrnsdyhY9sL+Y690Kh9gQ== dependencies: - "@inquirer/core" "^11.1.4" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" "@inquirer/password@^4.0.23": @@ -1433,30 +1378,30 @@ "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/password@^5.0.5": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-5.0.7.tgz#c39884143d609ba8dca3947e73e1f15ef7fba1f6" - integrity sha512-h3Rgzb8nFMxgK6X5246MtwTX/rXs5Z58DbeuUKI6W5dQ+CZusEunNeT7rosdB+Upn79BkfZJO0AaiH8MIi9v1A== +"@inquirer/password@^5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-5.0.8.tgz#260f69a2179db824cfa13465525420ba3659de90" + integrity sha512-zt1sF4lYLdvPqvmvHdmjOzuUUjuCQ897pdUCO8RbXMUDKXJTTyOQgtn23le+jwcb+MpHl3VAFvzIdxRAf6aPlA== dependencies: "@inquirer/ansi" "^2.0.3" - "@inquirer/core" "^11.1.4" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" -"@inquirer/prompts@8.2.1": - version "8.2.1" - resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-8.2.1.tgz#d724a519273bffec59a0ba2ad35cb705a7e1663a" - integrity sha512-76knJFW2oXdI6If5YRmEoT5u7l+QroXYrMiINFcb97LsyECgsbO9m6iWlPuhBtaFgNITPHQCk3wbex38q8gsjg== - dependencies: - "@inquirer/checkbox" "^5.0.5" - "@inquirer/confirm" "^6.0.5" - "@inquirer/editor" "^5.0.5" - "@inquirer/expand" "^5.0.5" - "@inquirer/input" "^5.0.5" - "@inquirer/number" "^4.0.5" - "@inquirer/password" "^5.0.5" - "@inquirer/rawlist" "^5.2.1" - "@inquirer/search" "^4.1.1" - "@inquirer/select" "^5.0.5" +"@inquirer/prompts@8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-8.3.0.tgz#dcae1093c84d08f3915fc253861579246b1e2929" + integrity sha512-JAj66kjdH/F1+B7LCigjARbwstt3SNUOSzMdjpsvwJmzunK88gJeXmcm95L9nw1KynvFVuY4SzXh/3Y0lvtgSg== + dependencies: + "@inquirer/checkbox" "^5.1.0" + "@inquirer/confirm" "^6.0.8" + "@inquirer/editor" "^5.0.8" + "@inquirer/expand" "^5.0.8" + "@inquirer/input" "^5.0.8" + "@inquirer/number" "^4.0.8" + "@inquirer/password" "^5.0.8" + "@inquirer/rawlist" "^5.2.4" + "@inquirer/search" "^4.1.4" + "@inquirer/select" "^5.1.0" "@inquirer/prompts@^7.10.1": version "7.10.1" @@ -1483,12 +1428,12 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/rawlist@^5.2.1": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-5.2.3.tgz#b2eb4ff3da231c2a78e498f46399b7040a532171" - integrity sha512-EuvV6N/T3xDmRVihAOqfnbmtHGdu26TocRKANvcX/7nLLD8QO0c22Dtlc5C15+V433d9v0E0SSyqywdNCIXfLg== +"@inquirer/rawlist@^5.2.4": + version "5.2.4" + resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-5.2.4.tgz#bce70b0804543522d1f3cf726323bec26b6df549" + integrity sha512-fTuJ5Cq9W286isLxwj6GGyfTjx1Zdk4qppVEPexFuA6yioCCXS4V1zfKroQqw7QdbDPN73xs2DiIAlo55+kBqg== dependencies: - "@inquirer/core" "^11.1.4" + "@inquirer/core" "^11.1.5" "@inquirer/type" "^4.0.3" "@inquirer/search@^3.2.2": @@ -1501,12 +1446,12 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/search@^4.1.1": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-4.1.3.tgz#c6a56cfeae1e78addd7bff3fc2912ad56cc063c4" - integrity sha512-6BE8MqVMakEiLDRtrwj9fbx6AYhuj7McW3GOkOoEiQ5Qkh6v6f5HCoYNqSRE4j6nT+u+73518iUQPE+mZYlAjA== +"@inquirer/search@^4.1.4": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-4.1.4.tgz#70a8e6fe726493d28fabe27044f630585b4a880b" + integrity sha512-9yPTxq7LPmYjrGn3DRuaPuPbmC6u3fiWcsE9ggfLcdgO/ICHYgxq7mEy1yJ39brVvgXhtOtvDVjDh9slJxE4LQ== dependencies: - "@inquirer/core" "^11.1.4" + "@inquirer/core" "^11.1.5" "@inquirer/figures" "^2.0.3" "@inquirer/type" "^4.0.3" @@ -1532,13 +1477,13 @@ "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/select@^5.0.5": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-5.0.7.tgz#141c17352fd9226f16155cd45eefa7f8b3492e24" - integrity sha512-1JUJIR+Z2PsvwP6VWty7aE0aCPaT2cy2c4Vp3LPhL2Pi3+aXewAld/AyJ/CW9XWx1JbKxmdElfvls/G/7jG7ZQ== +"@inquirer/select@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-5.1.0.tgz#02be4e8a2c53cd72a7bf4685be6eac5497bd4c5c" + integrity sha512-OyYbKnchS1u+zRe14LpYrN8S0wH1vD0p2yKISvSsJdH2TpI87fh4eZdWnpdbrGauCRWDph3NwxRmM4Pcm/hx1Q== dependencies: "@inquirer/ansi" "^2.0.3" - "@inquirer/core" "^11.1.4" + "@inquirer/core" "^11.1.5" "@inquirer/figures" "^2.0.3" "@inquirer/type" "^4.0.3" @@ -1606,10 +1551,10 @@ axios "1.13.5" uuid "13.0.0" -"@internxt/sdk@1.14.2": - version "1.14.2" - resolved "https://registry.yarnpkg.com/@internxt/sdk/-/sdk-1.14.2.tgz#0ed6a0d7740d60124672dc385fa9a250aa1db82c" - integrity sha512-lqCFBiiuezyU79lMuxLa5fb1OOxtWtZyrUeEpxjV67wqoIrx/dTeCKIY32Ctq288x3VkOfILdHLrJ1BqNfC7GQ== +"@internxt/sdk@1.15.0": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@internxt/sdk/-/sdk-1.15.0.tgz#6ba80c0461881e694b30b1dcac71c81dad7fcb6b" + integrity sha512-tA+um5Ujk4Nv9fRrXd+Z+ZpdMifSioCAPBhegDzivkX/xYzyPCszeNsYCtVFoN95t3n6RYpmvL0D47j0KEGtCw== dependencies: axios "1.13.5" internxt-crypto "0.0.13" @@ -1725,7 +1670,31 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@oclif/core@4.8.0", "@oclif/core@^4", "@oclif/core@^4.8.0": +"@oclif/core@4.8.1": + version "4.8.1" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.8.1.tgz#84def567778d3271d5c84d9cd6fe0a582e56fded" + integrity sha512-07mq0vKCWNsB85ZHeBMlTAiO0KLFqHyAeRK3bD2K8CI1tX3tiwkWw1lZQZkiw8MUBrhxdROhMkYMY4Q0l7JHqA== + dependencies: + ansi-escapes "^4.3.2" + ansis "^3.17.0" + clean-stack "^3.0.1" + cli-spinners "^2.9.2" + debug "^4.4.3" + ejs "^3.1.10" + get-package-type "^0.1.0" + indent-string "^4.0.0" + is-wsl "^2.2.0" + lilconfig "^3.1.3" + minimatch "^10.2.1" + semver "^7.7.3" + string-width "^4.2.3" + supports-color "^8" + tinyglobby "^0.2.14" + widest-line "^3.1.0" + wordwrap "^1.0.0" + wrap-ansi "^7.0.0" + +"@oclif/core@^4", "@oclif/core@^4.8.0": version "4.8.0" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-4.8.0.tgz#bde8fad00019c8c0a8e27787b4b42c4670842785" integrity sha512-jteNUQKgJHLHFbbz806aGZqf+RJJ7t4gwF4MYa8fCwCxQ8/klJNWc0MvaJiBebk7Mc+J39mdlsB4XraaCKznFw== @@ -2120,159 +2089,159 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== -"@smithy/abort-controller@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.8.tgz#3bfd7a51acce88eaec9a65c3382542be9f3a053a" - integrity sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw== +"@smithy/abort-controller@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.10.tgz#bd688ed62cbd5c85cc933cd6c60c8ef05fb2e5ee" + integrity sha512-qocxM/X4XGATqQtUkbE9SPUB6wekBi+FyJOMbPj0AhvyvFGYEmOlz6VB22iMePCQsFmMIvFSeViDvA7mZJG47g== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/chunked-blob-reader-native@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.1.tgz#380266951d746b522b4ab2b16bfea6b451147b41" - integrity sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ== +"@smithy/chunked-blob-reader-native@^4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.2.tgz#9fcc884dfd6a041b8f9aa1e0aa14b5bfb4e85f16" + integrity sha512-QzzYIlf4yg0w5TQaC9VId3B3ugSk1MI/wb7tgcHtd7CBV9gNRKZrhc2EPSxSZuDy10zUZ0lomNMgkc6/VVe8xg== dependencies: - "@smithy/util-base64" "^4.3.0" + "@smithy/util-base64" "^4.3.1" 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== +"@smithy/chunked-blob-reader@^5.2.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.1.tgz#fda474588f3e86a918335791dd5e485e4b9ab19d" + integrity sha512-y5d4xRiD6TzeP5BWlb+Ig/VFqF+t9oANNhGeMqyzU7obw7FYgTgVi50i5JqBTeKp+TABeDIeeXFZdz65RipNtA== dependencies: tslib "^2.6.2" -"@smithy/config-resolver@^4.4.6": - version "4.4.6" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.4.6.tgz#bd7f65b3da93f37f1c97a399ade0124635c02297" - integrity sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ== +"@smithy/config-resolver@^4.4.7", "@smithy/config-resolver@^4.4.9": + version "4.4.9" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.4.9.tgz#a7398dd507153859a09a64dda52f4cac9279a7af" + integrity sha512-ejQvXqlcU30h7liR9fXtj7PIAau1t/sFbJpgWPfiYDs7zd16jpH0IsSXKcba2jF6ChTXvIjACs27kNMc5xxE2Q== dependencies: - "@smithy/node-config-provider" "^4.3.8" - "@smithy/types" "^4.12.0" - "@smithy/util-config-provider" "^4.2.0" - "@smithy/util-endpoints" "^3.2.8" - "@smithy/util-middleware" "^4.2.8" + "@smithy/node-config-provider" "^4.3.10" + "@smithy/types" "^4.13.0" + "@smithy/util-config-provider" "^4.2.1" + "@smithy/util-endpoints" "^3.3.1" + "@smithy/util-middleware" "^4.2.10" tslib "^2.6.2" -"@smithy/core@^3.23.2": - version "3.23.2" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.23.2.tgz#9300fe6fa6e8ceb19ecbbb9090ccea04942a37f0" - integrity sha512-HaaH4VbGie4t0+9nY3tNBRSxVTr96wzIqexUa6C2qx3MPePAuz7lIxPxYtt1Wc//SPfJLNoZJzfdt0B6ksj2jA== - dependencies: - "@smithy/middleware-serde" "^4.2.9" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" - "@smithy/util-base64" "^4.3.0" - "@smithy/util-body-length-browser" "^4.2.0" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-stream" "^4.5.12" - "@smithy/util-utf8" "^4.2.0" - "@smithy/uuid" "^1.1.0" +"@smithy/core@^3.23.4", "@smithy/core@^3.23.6": + version "3.23.6" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.23.6.tgz#90de5fe442a9f529bd893b20ba0d8a8373a99ad3" + integrity sha512-4xE+0L2NrsFKpEVFlFELkIHQddBvMbQ41LRIP74dGCXnY1zQ9DgksrBcRBDJT+iOzGy4VEJIeU3hkUK5mn06kg== + dependencies: + "@smithy/middleware-serde" "^4.2.11" + "@smithy/protocol-http" "^5.3.10" + "@smithy/types" "^4.13.0" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-body-length-browser" "^4.2.1" + "@smithy/util-middleware" "^4.2.10" + "@smithy/util-stream" "^4.5.15" + "@smithy/util-utf8" "^4.2.1" + "@smithy/uuid" "^1.1.1" tslib "^2.6.2" -"@smithy/credential-provider-imds@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.8.tgz#b2f4bf759ab1c35c0dd00fa3470263c749ebf60f" - integrity sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw== +"@smithy/credential-provider-imds@^4.2.10", "@smithy/credential-provider-imds@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.10.tgz#cae502b28257a110fc472a1531c19fbc4ba07037" + integrity sha512-3bsMLJJLTZGZqVGGeBVFfLzuRulVsGTj12BzRKODTHqUABpIr0jMN1vN3+u6r2OfyhAQ2pXaMZWX/swBK5I6PQ== dependencies: - "@smithy/node-config-provider" "^4.3.8" - "@smithy/property-provider" "^4.2.8" - "@smithy/types" "^4.12.0" - "@smithy/url-parser" "^4.2.8" + "@smithy/node-config-provider" "^4.3.10" + "@smithy/property-provider" "^4.2.10" + "@smithy/types" "^4.13.0" + "@smithy/url-parser" "^4.2.10" tslib "^2.6.2" -"@smithy/eventstream-codec@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.8.tgz#2f431f4bac22e40aa6565189ea350c6fcb5efafd" - integrity sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw== +"@smithy/eventstream-codec@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.10.tgz#59dd8f5482248fcb7eb855ee26c4dde3f4e4e688" + integrity sha512-A4ynrsFFfSXUHicfTcRehytppFBcY3HQxEGYiyGktPIOye3Ot7fxpiy4VR42WmtGI4Wfo6OXt/c1Ky1nUFxYYQ== dependencies: "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^4.12.0" - "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/types" "^4.13.0" + "@smithy/util-hex-encoding" "^4.2.1" tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.8.tgz#04e2e1fad18e286d5595fbc0bff22e71251fca38" - integrity sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw== +"@smithy/eventstream-serde-browser@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.10.tgz#4e81f894b1e00527bd30bf37824d1196abe3c8ff" + integrity sha512-0xupsu9yj9oDVuQ50YCTS9nuSYhGlrwqdaKQel9y2Fz7LU9fNErVlw9N0o4pm4qqvWEGbSTI4HKc6XJfB30MVw== dependencies: - "@smithy/eventstream-serde-universal" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/eventstream-serde-universal" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/eventstream-serde-config-resolver@^4.3.8": - version "4.3.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.8.tgz#b913d23834c6ebf1646164893e1bec89dffe4f3b" - integrity sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ== +"@smithy/eventstream-serde-config-resolver@^4.3.9": + version "4.3.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.10.tgz#e71d8614178a2111f0a7fae8a3b8a88859cfb684" + integrity sha512-8kn6sinrduk0yaYHMJDsNuiFpXwQwibR7n/4CDUqn4UgaG+SeBHu5jHGFdU9BLFAM7Q4/gvr9RYxBHz9/jKrhA== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/eventstream-serde-node@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.8.tgz#5f2dfa2cbb30bf7564c8d8d82a9832e9313f5243" - integrity sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A== +"@smithy/eventstream-serde-node@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.10.tgz#10164d84f20f915b435e9ff55ac381e01d1d0669" + integrity sha512-uUrxPGgIffnYfvIOUmBM5i+USdEBRTdh7mLPttjphgtooxQ8CtdO1p6K5+Q4BBAZvKlvtJ9jWyrWpBJYzBKsyQ== dependencies: - "@smithy/eventstream-serde-universal" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/eventstream-serde-universal" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.8.tgz#a62b389941c28a8c3ab44a0c8ba595447e0258a7" - integrity sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ== +"@smithy/eventstream-serde-universal@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.10.tgz#08ccc7a544289a3fe0b2b7f588dac56943ef3fa2" + integrity sha512-aArqzOEvcs2dK+xQVCgLbpJQGfZihw8SD4ymhkwNTtwKbnrzdhJsFDKuMQnam2kF69WzgJYOU5eJlCx+CA32bw== dependencies: - "@smithy/eventstream-codec" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/eventstream-codec" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^5.3.9": - version "5.3.9" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.9.tgz#edfc9e90e0c7538c81e22e748d62c0066cc91d58" - integrity sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA== +"@smithy/fetch-http-handler@^5.3.10", "@smithy/fetch-http-handler@^5.3.11": + version "5.3.11" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.11.tgz#2c2f65df2bdbf4989c13a6558e3d43855002ba5d" + integrity sha512-wbTRjOxdFuyEg0CpumjZO0hkUl+fetJFqxNROepuLIoijQh51aMBmzFLfoQdwRjxsuuS2jizzIUTjPWgd8pd7g== dependencies: - "@smithy/protocol-http" "^5.3.8" - "@smithy/querystring-builder" "^4.2.8" - "@smithy/types" "^4.12.0" - "@smithy/util-base64" "^4.3.0" + "@smithy/protocol-http" "^5.3.10" + "@smithy/querystring-builder" "^4.2.10" + "@smithy/types" "^4.13.0" + "@smithy/util-base64" "^4.3.1" tslib "^2.6.2" -"@smithy/hash-blob-browser@^4.2.9": - version "4.2.9" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.9.tgz#4f8e19b12b5a1000b7292b30f5ee237d32216af3" - integrity sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg== +"@smithy/hash-blob-browser@^4.2.10": + version "4.2.11" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.11.tgz#9c2832ebaf98006365f3dacb683f3f110e47936b" + integrity sha512-DrcAx3PM6AEbWZxsKl6CWAGnVwiz28Wp1ZhNu+Hi4uI/6C1PIZBIaPM2VoqBDAsOWbM6ZVzOEQMxFLLdmb4eBQ== dependencies: - "@smithy/chunked-blob-reader" "^5.2.0" - "@smithy/chunked-blob-reader-native" "^4.2.1" - "@smithy/types" "^4.12.0" + "@smithy/chunked-blob-reader" "^5.2.1" + "@smithy/chunked-blob-reader-native" "^4.2.2" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/hash-node@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.8.tgz#c21eb055041716cd492dda3a109852a94b6d47bb" - integrity sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA== +"@smithy/hash-node@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.10.tgz#5c23bd94e61a173a90d765815bbc287cf57409ce" + integrity sha512-1VzIOI5CcsvMDvP3iv1vG/RfLJVVVc67dCRyLSB2Hn9SWCZrDO3zvcIzj3BfEtqRW5kcMg5KAeVf1K3dR6nD3w== dependencies: - "@smithy/types" "^4.12.0" - "@smithy/util-buffer-from" "^4.2.0" - "@smithy/util-utf8" "^4.2.0" + "@smithy/types" "^4.13.0" + "@smithy/util-buffer-from" "^4.2.1" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@smithy/hash-stream-node@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.8.tgz#d541a31c714ac9c85ae9fec91559e81286707ddb" - integrity sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w== +"@smithy/hash-stream-node@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.10.tgz#ee5f26ba61a54ba402a6f00a13c418d38005e088" + integrity sha512-w78xsYrOlwXKwN5tv1GnKIRbHb1HygSpeZMP6xDxCPGf1U/xDHjCpJu64c5T35UKyEPwa0bPeIcvU69VY3khUA== dependencies: - "@smithy/types" "^4.12.0" - "@smithy/util-utf8" "^4.2.0" + "@smithy/types" "^4.13.0" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@smithy/invalid-dependency@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.8.tgz#c578bc6d5540c877aaed5034b986b5f6bd896451" - integrity sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ== +"@smithy/invalid-dependency@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.10.tgz#7efb88b292f14843279dd774acf8a7d322f5a371" + integrity sha512-vy9KPNSFUU0ajFYk0sDZIYiUlAWGEAhRfehIr5ZkdFrRFTAuXEPUd41USuqHU6vvLX4r6Q9X7MKBco5+Il0Org== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": @@ -2282,177 +2251,177 @@ 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== +"@smithy/is-array-buffer@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.1.tgz#10f71c410796cf108c65bb0204a98c15d0131af3" + integrity sha512-Yfu664Qbf1B4IYIsYgKoABt010daZjkaCRvdU/sPnZG6TtHOB0md0RjNdLGzxe5UIdn9js4ftPICzmkRa9RJ4Q== dependencies: tslib "^2.6.2" -"@smithy/md5-js@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.8.tgz#d354dbf9aea7a580be97598a581e35eef324ce22" - integrity sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ== +"@smithy/md5-js@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.10.tgz#2071980ff22802ca8398232075357c0d1b5b746a" + integrity sha512-Op+Dh6dPLWTjWITChFayDllIaCXRofOed8ecpggTC5fkh8yXes0vAEX7gRUfjGK+TlyxoCAA05gHbZW/zB9JwQ== dependencies: - "@smithy/types" "^4.12.0" - "@smithy/util-utf8" "^4.2.0" + "@smithy/types" "^4.13.0" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@smithy/middleware-content-length@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.8.tgz#82c1df578fa70fe5800cf305b8788b9d2836a3e4" - integrity sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A== +"@smithy/middleware-content-length@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.10.tgz#969af8111299d2d32f6de9bac4ca8622616fb4a3" + integrity sha512-TQZ9kX5c6XbjhaEBpvhSvMEZ0klBs1CFtOdPFwATZSbC9UeQfKHPLPN9Y+I6wZGMOavlYTOlHEPDrt42PMSH9w== dependencies: - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" + "@smithy/protocol-http" "^5.3.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/middleware-endpoint@^4.4.16": - version "4.4.16" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.16.tgz#46408512c6737c4719c5d8abb9f99820824441e7" - integrity sha512-L5GICFCSsNhbJ5JSKeWFGFy16Q2OhoBizb3X2DrxaJwXSEujVvjG9Jt386dpQn2t7jINglQl0b4K/Su69BdbMA== - dependencies: - "@smithy/core" "^3.23.2" - "@smithy/middleware-serde" "^4.2.9" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/shared-ini-file-loader" "^4.4.3" - "@smithy/types" "^4.12.0" - "@smithy/url-parser" "^4.2.8" - "@smithy/util-middleware" "^4.2.8" +"@smithy/middleware-endpoint@^4.4.18", "@smithy/middleware-endpoint@^4.4.20": + version "4.4.20" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.20.tgz#dea33d0d391a4a8095ab16cf57c8c6dc482f5123" + integrity sha512-9W6Np4ceBP3XCYAGLoMCmn8t2RRVzuD1ndWPLBbv7H9CrwM9Bprf6Up6BM9ZA/3alodg0b7Kf6ftBK9R1N04vw== + dependencies: + "@smithy/core" "^3.23.6" + "@smithy/middleware-serde" "^4.2.11" + "@smithy/node-config-provider" "^4.3.10" + "@smithy/shared-ini-file-loader" "^4.4.5" + "@smithy/types" "^4.13.0" + "@smithy/url-parser" "^4.2.10" + "@smithy/util-middleware" "^4.2.10" tslib "^2.6.2" -"@smithy/middleware-retry@^4.4.33": - version "4.4.33" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.33.tgz#37ac0f72683757a83074f66f7328d4f7d5150d75" - integrity sha512-jLqZOdJhtIL4lnA9hXnAG6GgnJlo1sD3FqsTxm9wSfjviqgWesY/TMBVnT84yr4O0Vfe0jWoXlfFbzsBVph3WA== - dependencies: - "@smithy/node-config-provider" "^4.3.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/service-error-classification" "^4.2.8" - "@smithy/smithy-client" "^4.11.5" - "@smithy/types" "^4.12.0" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-retry" "^4.2.8" - "@smithy/uuid" "^1.1.0" +"@smithy/middleware-retry@^4.4.35": + version "4.4.37" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.37.tgz#bda495c2aa82c61d409e4dad374047b61511067a" + integrity sha512-/1psZZllBBSQ7+qo5+hhLz7AEPGLx3Z0+e3ramMBEuPK2PfvLK4SrncDB9VegX5mBn+oP/UTDrM6IHrFjvX1ZA== + dependencies: + "@smithy/node-config-provider" "^4.3.10" + "@smithy/protocol-http" "^5.3.10" + "@smithy/service-error-classification" "^4.2.10" + "@smithy/smithy-client" "^4.12.0" + "@smithy/types" "^4.13.0" + "@smithy/util-middleware" "^4.2.10" + "@smithy/util-retry" "^4.2.10" + "@smithy/uuid" "^1.1.1" tslib "^2.6.2" -"@smithy/middleware-serde@^4.2.9": - version "4.2.9" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.9.tgz#fd9d9b02b265aef67c9a30f55c2a5038fc9ca791" - integrity sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ== +"@smithy/middleware-serde@^4.2.10", "@smithy/middleware-serde@^4.2.11": + version "4.2.11" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.11.tgz#a60b5b62cf92888e6b3de22d956bdda29263ef45" + integrity sha512-STQdONGPwbbC7cusL60s7vOa6He6A9w2jWhoapL0mgVjmR19pr26slV+yoSP76SIssMTX/95e5nOZ6UQv6jolg== dependencies: - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" + "@smithy/protocol-http" "^5.3.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/middleware-stack@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.8.tgz#4fa9cfaaa05f664c9bb15d45608f3cb4f6da2b76" - integrity sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA== +"@smithy/middleware-stack@^4.2.10", "@smithy/middleware-stack@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.10.tgz#411276f45b78ed4d7d5e3cb2c4136142f456c907" + integrity sha512-pmts/WovNcE/tlyHa8z/groPeOtqtEpp61q3W0nW1nDJuMq/x+hWa/OVQBtgU0tBqupeXq0VBOLA4UZwE8I0YA== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/node-config-provider@^4.3.8": - version "4.3.8" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.8.tgz#85a0683448262b2eb822f64c14278d4887526377" - integrity sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg== +"@smithy/node-config-provider@^4.3.10", "@smithy/node-config-provider@^4.3.9": + version "4.3.10" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.10.tgz#bd537206cc3b6d1905fbc174c95f35897d98819b" + integrity sha512-UALRbJtVX34AdP2VECKVlnNgidLHA2A7YgcJzwSBg1hzmnO/bZBHl/LDQQyYifzUwp1UOODnl9JJ3KNawpUJ9w== dependencies: - "@smithy/property-provider" "^4.2.8" - "@smithy/shared-ini-file-loader" "^4.4.3" - "@smithy/types" "^4.12.0" + "@smithy/property-provider" "^4.2.10" + "@smithy/shared-ini-file-loader" "^4.4.5" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/node-http-handler@^4.4.10": - version "4.4.10" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.10.tgz#4945e2c2e61174ec1471337e3ddd50b8e4921204" - integrity sha512-u4YeUwOWRZaHbWaebvrs3UhwQwj+2VNmcVCwXcYTvPIuVyM7Ex1ftAj+fdbG/P4AkBwLq/+SKn+ydOI4ZJE9PA== +"@smithy/node-http-handler@^4.4.11", "@smithy/node-http-handler@^4.4.12": + version "4.4.12" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.12.tgz#6202ec0c41236fc7a8302b1e116aa5cd784c1a19" + integrity sha512-zo1+WKJkR9x7ZtMeMDAAsq2PufwiLDmkhcjpWPRRkmeIuOm6nq1qjFICSZbnjBvD09ei8KMo26BWxsu2BUU+5w== dependencies: - "@smithy/abort-controller" "^4.2.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/querystring-builder" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/abort-controller" "^4.2.10" + "@smithy/protocol-http" "^5.3.10" + "@smithy/querystring-builder" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/property-provider@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.8.tgz#6e37b30923d2d31370c50ce303a4339020031472" - integrity sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w== +"@smithy/property-provider@^4.2.10", "@smithy/property-provider@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.10.tgz#06dfc15f407d42b8514b363a83504e7008f12344" + integrity sha512-5jm60P0CU7tom0eNrZ7YrkgBaoLFXzmqB0wVS+4uK8PPGmosSrLNf6rRd50UBvukztawZ7zyA8TxlrKpF5z9jw== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/protocol-http@^5.3.8": - version "5.3.8" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.8.tgz#0938f69a3c3673694c2f489a640fce468ce75006" - integrity sha512-QNINVDhxpZ5QnP3aviNHQFlRogQZDfYlCkQT+7tJnErPQbDhysondEjhikuANxgMsZrkGeiAxXy4jguEGsDrWQ== +"@smithy/protocol-http@^5.3.10", "@smithy/protocol-http@^5.3.9": + version "5.3.10" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.10.tgz#020a0fa6e47396ebceab01296b76990931a93d5a" + integrity sha512-2NzVWpYY0tRdfeCJLsgrR89KE3NTWT2wGulhNUxYlRmtRmPwLQwKzhrfVaiNlA9ZpJvbW7cjTVChYKgnkqXj1A== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/querystring-builder@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.8.tgz#2fa72d29eb1844a6a9933038bbbb14d6fe385e93" - integrity sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw== +"@smithy/querystring-builder@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.10.tgz#05853f40c19c945784252b22dd6672ec0c2eab1f" + integrity sha512-HeN7kEvuzO2DmAzLukE9UryiUvejD3tMp9a1D1NJETerIfKobBUCLfviP6QEk500166eD2IATaXM59qgUI+YDA== dependencies: - "@smithy/types" "^4.12.0" - "@smithy/util-uri-escape" "^4.2.0" + "@smithy/types" "^4.13.0" + "@smithy/util-uri-escape" "^4.2.1" tslib "^2.6.2" -"@smithy/querystring-parser@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.8.tgz#aa3f2456180ce70242e89018d0b1ebd4782a6347" - integrity sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA== +"@smithy/querystring-parser@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.10.tgz#189755d4f99dccb5b48c2cd413aba6baf9e6b636" + integrity sha512-4Mh18J26+ao1oX5wXJfWlTT+Q1OpDR8ssiC9PDOuEgVBGloqg18Fw7h5Ct8DyT9NBYwJgtJ2nLjKKFU6RP1G1Q== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/service-error-classification@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.8.tgz#6d89dbad4f4978d7b75a44af8c18c22455a16cdc" - integrity sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ== +"@smithy/service-error-classification@^4.2.10": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.10.tgz#0d142eb71106e1be8a9df691f4bb4b19b7261502" + integrity sha512-0R/+/Il5y8nB/By90o8hy/bWVYptbIfvoTYad0igYQO5RefhNCDmNzqxaMx7K1t/QWo0d6UynqpqN5cCQt1MCg== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" -"@smithy/shared-ini-file-loader@^4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.3.tgz#6054215ecb3a6532b13aa49a9fbda640b63be50e" - integrity sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg== +"@smithy/shared-ini-file-loader@^4.4.4", "@smithy/shared-ini-file-loader@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.5.tgz#84c29da4a1462e7b6ce21b00c49f8789ae804099" + integrity sha512-pHgASxl50rrtOztgQCPmOXFjRW+mCd7ALr/3uXNzRrRoGV5G2+78GOsQ3HlQuBVHCh9o6xqMNvlIKZjWn4Euug== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/signature-v4@^5.3.8": - version "5.3.8" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.8.tgz#796619b10b7cc9467d0625b0ebd263ae04fdfb76" - integrity sha512-6A4vdGj7qKNRF16UIcO8HhHjKW27thsxYci+5r/uVRkdcBEkOEiY8OMPuydLX4QHSrJqGHPJzPRwwVTqbLZJhg== - dependencies: - "@smithy/is-array-buffer" "^4.2.0" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" - "@smithy/util-hex-encoding" "^4.2.0" - "@smithy/util-middleware" "^4.2.8" - "@smithy/util-uri-escape" "^4.2.0" - "@smithy/util-utf8" "^4.2.0" +"@smithy/signature-v4@^5.3.9": + version "5.3.10" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.10.tgz#9517defc0285b9d50f1c8ad17f6f90e72f8b5976" + integrity sha512-Wab3wW8468WqTKIxI+aZe3JYO52/RYT/8sDOdzkUhjnLakLe9qoQqIcfih/qxcF4qWEFoWBszY0mj5uxffaVXA== + dependencies: + "@smithy/is-array-buffer" "^4.2.1" + "@smithy/protocol-http" "^5.3.10" + "@smithy/types" "^4.13.0" + "@smithy/util-hex-encoding" "^4.2.1" + "@smithy/util-middleware" "^4.2.10" + "@smithy/util-uri-escape" "^4.2.1" + "@smithy/util-utf8" "^4.2.1" tslib "^2.6.2" -"@smithy/smithy-client@^4.11.5": - version "4.11.5" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.11.5.tgz#4e2de632a036cffbf77337aac277131e85fcf399" - integrity sha512-xixwBRqoeP2IUgcAl3U9dvJXc+qJum4lzo3maaJxifsZxKUYLfVfCXvhT4/jD01sRrHg5zjd1cw2Zmjr4/SuKQ== - dependencies: - "@smithy/core" "^3.23.2" - "@smithy/middleware-endpoint" "^4.4.16" - "@smithy/middleware-stack" "^4.2.8" - "@smithy/protocol-http" "^5.3.8" - "@smithy/types" "^4.12.0" - "@smithy/util-stream" "^4.5.12" +"@smithy/smithy-client@^4.11.7", "@smithy/smithy-client@^4.12.0": + version "4.12.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.12.0.tgz#71f01aeaa089867c31a3d6452349cf4fd4c4a9e5" + integrity sha512-R8bQ9K3lCcXyZmBnQqUZJF4ChZmtWT5NLi6x5kgWx5D+/j0KorXcA0YcFg/X5TOgnTCy1tbKc6z2g2y4amFupQ== + dependencies: + "@smithy/core" "^3.23.6" + "@smithy/middleware-endpoint" "^4.4.20" + "@smithy/middleware-stack" "^4.2.10" + "@smithy/protocol-http" "^5.3.10" + "@smithy/types" "^4.13.0" + "@smithy/util-stream" "^4.5.15" tslib "^2.6.2" -"@smithy/types@^4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.12.0.tgz#55d2479080922bda516092dbf31916991d9c6fee" - integrity sha512-9YcuJVTOBDjg9LWo23Qp0lTQ3D7fQsQtwle0jVfpbUHy9qBwCEgKuVH4FqFB3VYu0nwdHKiEMA+oXz7oV8X1kw== +"@smithy/types@^4.12.1", "@smithy/types@^4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.13.0.tgz#9787297a07ee72ef74d4f7d93c744d10ed664c21" + integrity sha512-COuLsZILbbQsdrwKQpkkpyep7lCsByxwj7m0Mg5v66/ZTyenlfBc40/QFQ5chO0YN/PNEH1Bi3fGtfXPnYNeDw== dependencies: tslib "^2.6.2" @@ -2463,35 +2432,35 @@ dependencies: tslib "^2.6.2" -"@smithy/url-parser@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.8.tgz#b44267cd704abe114abcd00580acdd9e4acc1177" - integrity sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA== +"@smithy/url-parser@^4.2.10", "@smithy/url-parser@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.10.tgz#9c123e4acd5074cc2f4626fc629762d9dbefca18" + integrity sha512-uypjF7fCDsRk26u3qHmFI/ePL7bxxB9vKkE+2WKEciHhz+4QtbzWiHRVNRJwU3cKhrYDYQE3b0MRFtqfLYdA4A== dependencies: - "@smithy/querystring-parser" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/querystring-parser" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/util-base64@^4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.3.0.tgz#5e287b528793aa7363877c1a02cd880d2e76241d" - integrity sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ== +"@smithy/util-base64@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.3.1.tgz#d7acc9fd3e84d1cb6c7a09866f2157457f0005c3" + integrity sha512-BKGuawX4Doq/bI/uEmg+Zyc36rJKWuin3py89PquXBIBqmbnJwBBsmKhdHfNEp0+A4TDgLmT/3MSKZ1SxHcR6w== dependencies: - "@smithy/util-buffer-from" "^4.2.0" - "@smithy/util-utf8" "^4.2.0" + "@smithy/util-buffer-from" "^4.2.1" + "@smithy/util-utf8" "^4.2.1" 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== +"@smithy/util-body-length-browser@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.1.tgz#2a2763c0df831e6071cdc38636c66fdc1cbbdd7e" + integrity sha512-SiJeLiozrAoCrgDBUgsVbmqHmMgg/2bA15AzcbcW+zan7SuyAVHN4xTSbq0GlebAIwlcaX32xacnrG488/J/6g== dependencies: tslib "^2.6.2" -"@smithy/util-body-length-node@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz#79c8a5d18e010cce6c42d5cbaf6c1958523e6fec" - integrity sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA== +"@smithy/util-body-length-node@^4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.2.tgz#8d7a8fa83770a35312e71e711819c9e0f1a384c2" + integrity sha512-4rHqBvxtJEBvsZcFQSPQqXP2b/yy/YlB66KlcEgcH2WNoOKCKB03DSLzXmOsXjbl8dJ4OEYTn31knhdznwk7zw== dependencies: tslib "^2.6.2" @@ -2503,95 +2472,95 @@ "@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== +"@smithy/util-buffer-from@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-4.2.1.tgz#50342cde6b29a169abdf392c954472a8ec0f3755" + integrity sha512-/swhmt1qTiVkaejlmMPPDgZhEaWb/HWMGRBheaxwuVkusp/z+ErJyQxO6kaXumOciZSWlmq6Z5mNylCd33X7Ig== dependencies: - "@smithy/is-array-buffer" "^4.2.0" + "@smithy/is-array-buffer" "^4.2.1" 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== +"@smithy/util-config-provider@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.2.1.tgz#1e1fe89f31f0039e3b6f8820606842410c5e1509" + integrity sha512-462id/00U8JWFw6qBuTSWfN5TxOHvDu4WliI97qOIOnuC/g+NDAknTU8eoGXEPlLkRVgWEr03jJBLV4o2FL8+A== dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^4.3.32": - version "4.3.32" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.32.tgz#683496a0b38a3e5231a25ca7cce8028eb437f3b2" - integrity sha512-092sjYfFMQ/iaPH798LY/OJFBcYu0sSK34Oy9vdixhsU36zlZu8OcYjF3TD4e2ARupyK7xaxPXl+T0VIJTEkkg== +"@smithy/util-defaults-mode-browser@^4.3.34": + version "4.3.36" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.36.tgz#a5c9f4943a62de4edeead9e52df85e255e82dfd4" + integrity sha512-R0smq7EHQXRVMxkAxtH5akJ/FvgAmNF6bUy/GwY/N20T4GrwjT633NFm0VuRpC+8Bbv8R9A0DoJ9OiZL/M3xew== dependencies: - "@smithy/property-provider" "^4.2.8" - "@smithy/smithy-client" "^4.11.5" - "@smithy/types" "^4.12.0" + "@smithy/property-provider" "^4.2.10" + "@smithy/smithy-client" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^4.2.35": - version "4.2.35" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.35.tgz#110575d6e85c282bb9b9283da886a8cf2fb68c6a" - integrity sha512-miz/ggz87M8VuM29y7jJZMYkn7+IErM5p5UgKIf8OtqVs/h2bXr1Bt3uTsREsI/4nK8a0PQERbAPsVPVNIsG7Q== - dependencies: - "@smithy/config-resolver" "^4.4.6" - "@smithy/credential-provider-imds" "^4.2.8" - "@smithy/node-config-provider" "^4.3.8" - "@smithy/property-provider" "^4.2.8" - "@smithy/smithy-client" "^4.11.5" - "@smithy/types" "^4.12.0" +"@smithy/util-defaults-mode-node@^4.2.37": + version "4.2.39" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.39.tgz#40c73cddd46c66c49674ee3780cbc1b77dd08f6e" + integrity sha512-otWuoDm35btJV1L8MyHrPl462B07QCdMTktKc7/yM+Psv6KbED/ziXiHnmr7yPHUjfIwE9S8Max0LO24Mo3ZVg== + dependencies: + "@smithy/config-resolver" "^4.4.9" + "@smithy/credential-provider-imds" "^4.2.10" + "@smithy/node-config-provider" "^4.3.10" + "@smithy/property-provider" "^4.2.10" + "@smithy/smithy-client" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/util-endpoints@^3.2.8": - version "3.2.8" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.8.tgz#5650bda2adac989ff2e562606088c5de3dcb1b36" - integrity sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw== +"@smithy/util-endpoints@^3.2.9", "@smithy/util-endpoints@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.3.1.tgz#eeaa1e010c29bdacdd6833e5ef163f868d0f11f6" + integrity sha512-xyctc4klmjmieQiF9I1wssBWleRV0RhJ2DpO8+8yzi2LO1Z+4IWOZNGZGNj4+hq9kdo+nyfrRLmQTzc16Op2Vg== dependencies: - "@smithy/node-config-provider" "^4.3.8" - "@smithy/types" "^4.12.0" + "@smithy/node-config-provider" "^4.3.10" + "@smithy/types" "^4.13.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== +"@smithy/util-hex-encoding@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.1.tgz#cec87c87492c9bac6b70bb749d3948938d40b81b" + integrity sha512-c1hHtkgAWmE35/50gmdKajgGAKV3ePJ7t6UtEmpfCWJmQE9BQAQPz0URUVI89eSkcDqCtzqllxzG28IQoZPvwA== dependencies: tslib "^2.6.2" -"@smithy/util-middleware@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.8.tgz#1da33f29a74c7ebd9e584813cb7e12881600a80a" - integrity sha512-PMqfeJxLcNPMDgvPbbLl/2Vpin+luxqTGPpW3NAQVLbRrFRzTa4rNAASYeIGjRV9Ytuhzny39SpyU04EQreF+A== +"@smithy/util-middleware@^4.2.10", "@smithy/util-middleware@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.10.tgz#41ba94329f010ab34c325ad747480565ade43ad9" + integrity sha512-LxaQIWLp4y0r72eA8mwPNQ9va4h5KeLM0I3M/HV9klmFaY2kN766wf5vsTzmaOpNNb7GgXAd9a25P3h8T49PSA== dependencies: - "@smithy/types" "^4.12.0" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/util-retry@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.8.tgz#23f3f47baf0681233fd0c37b259e60e268c73b11" - integrity sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg== +"@smithy/util-retry@^4.2.10", "@smithy/util-retry@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.10.tgz#8c9f16520238cdc109eb6fba7d8752e5f28ceb5b" + integrity sha512-HrBzistfpyE5uqTwiyLsFHscgnwB0kgv8vySp7q5kZ0Eltn/tjosaSGGDj/jJ9ys7pWzIP/icE2d+7vMKXLv7A== dependencies: - "@smithy/service-error-classification" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/service-error-classification" "^4.2.10" + "@smithy/types" "^4.13.0" tslib "^2.6.2" -"@smithy/util-stream@^4.5.12": - version "4.5.12" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.12.tgz#f8734a01dce2e51530231e6afc8910397d3e300a" - integrity sha512-D8tgkrmhAX/UNeCZbqbEO3uqyghUnEmmoO9YEvRuwxjlkKKUE7FOgCJnqpTlQPe9MApdWPky58mNQQHbnCzoNg== - dependencies: - "@smithy/fetch-http-handler" "^5.3.9" - "@smithy/node-http-handler" "^4.4.10" - "@smithy/types" "^4.12.0" - "@smithy/util-base64" "^4.3.0" - "@smithy/util-buffer-from" "^4.2.0" - "@smithy/util-hex-encoding" "^4.2.0" - "@smithy/util-utf8" "^4.2.0" +"@smithy/util-stream@^4.5.14", "@smithy/util-stream@^4.5.15": + version "4.5.15" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.15.tgz#2a8fa6a519d985fe4e7f1d5724142e14be9c68a3" + integrity sha512-OlOKnaqnkU9X+6wEkd7mN+WB7orPbCVDauXOj22Q7VtiTkvy7ZdSsOg4QiNAZMgI4OkvNf+/VLUC3VXkxuWJZw== + dependencies: + "@smithy/fetch-http-handler" "^5.3.11" + "@smithy/node-http-handler" "^4.4.12" + "@smithy/types" "^4.13.0" + "@smithy/util-base64" "^4.3.1" + "@smithy/util-buffer-from" "^4.2.1" + "@smithy/util-hex-encoding" "^4.2.1" + "@smithy/util-utf8" "^4.2.1" 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== +"@smithy/util-uri-escape@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-4.2.1.tgz#93327b2f4327cce46d590d095f79482afdea421d" + integrity sha512-YmiUDn2eo2IOiWYYvGQkgX5ZkBSiTQu4FlDo5jNPpAxng2t6Sjb6WutnZV9l6VR4eJul1ABmCrnWBC9hKHQa6Q== dependencies: tslib "^2.6.2" @@ -2603,27 +2572,27 @@ "@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== +"@smithy/util-utf8@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-4.2.1.tgz#ef71fdae30b82ba1b94b005ee42c8e6e6315a52c" + integrity sha512-DSIwNaWtmzrNQHv8g7DBGR9mulSit65KSj5ymGEIAknmIN8IpbZefEep10LaMG/P/xquwbmJ1h9ectz8z6mV6g== dependencies: - "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-buffer-from" "^4.2.1" tslib "^2.6.2" -"@smithy/util-waiter@^4.2.8": - version "4.2.8" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.8.tgz#35d7bd8b2be7a2ebc12d8c38a0818c501b73e928" - integrity sha512-n+lahlMWk+aejGuax7DPWtqav8HYnWxQwR+LCG2BgCUmaGcTe9qZCFsmw8TMg9iG75HOwhrJCX9TCJRLH+Yzqg== +"@smithy/util-waiter@^4.2.9": + version "4.2.10" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.10.tgz#8144eca7212651fc878b3358dc233a68d91d7282" + integrity sha512-4eTWph/Lkg1wZEDAyObwme0kmhEb7J/JjibY2znJdrYRgKbKqB7YoEhhJVJ4R1g/SYih4zuwX7LpJaM8RsnTVg== dependencies: - "@smithy/abort-controller" "^4.2.8" - "@smithy/types" "^4.12.0" + "@smithy/abort-controller" "^4.2.10" + "@smithy/types" "^4.13.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== +"@smithy/uuid@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@smithy/uuid/-/uuid-1.1.1.tgz#cafae26b6a7642752b5d4368e33c5363fe818cf2" + integrity sha512-dSfDCeihDmZlV2oyr0yWPTUfh07suS+R5OB+FZGiv/hHyK3hrFBW5rR1UYjfa57vBsrP9lciFkRPzebaV1Qujw== dependencies: tslib "^2.6.2" @@ -4497,10 +4466,10 @@ fast-xml-parser@5.3.6: dependencies: strnum "^2.1.2" -fast-xml-parser@5.3.7: - version "5.3.7" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.3.7.tgz#81694e71ff0e568cbb6befade342f2a7e58aa1d9" - integrity sha512-JzVLro9NQv92pOM/jTCR6mHlJh2FGwtomH8ZQjhFj/R29P2Fnj38OgPJVtcvYw6SuKClhgYuwUZf5b3rd8u2mA== +fast-xml-parser@5.3.9: + version "5.3.9" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.3.9.tgz#8777df0e215845534b023b2830e75d0068a9fbcf" + integrity sha512-zU0KUuO9U+fLGduTDdxQ6qsQLIxRg4EK5AMduwBNGNCSfCGRSbNS7OpH343NFQlLDg1jxoH68JSbOPAGksIGvg== dependencies: strnum "^2.1.2" @@ -5898,10 +5867,10 @@ node-releases@^2.0.19: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.20.tgz#e26bb79dbdd1e64a146df389c699014c611cbc27" integrity sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA== -nodemon@3.1.13: - version "3.1.13" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.13.tgz#06e4861d8f8a8033c9f607ae3645d3c02ca1c061" - integrity sha512-nPN6L7A9cTA3BnJ3zZIibH5FiDh3GbmibeS17bl5YEU1IRO2mcfvR0ZJXH3ndoeKItjUcaX81FSKc/Kq/IiG6g== +nodemon@3.1.14: + version "3.1.14" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.14.tgz#8487ca379c515301d221ec007f27f24ecafa2b51" + integrity sha512-jakjZi93UtB3jHMWsXL68FXSAosbLfY0In5gtKq3niLSkrWznrVBzXFNOEMJUfc9+Ke7SHWoAZsiMkNP3vq6Jw== dependencies: chokidar "^3.5.2" debug "^4" @@ -5960,13 +5929,13 @@ obug@^2.1.1: resolved "https://registry.yarnpkg.com/obug/-/obug-2.1.1.tgz#2cba74ff241beb77d63055ddf4cd1e9f90b538be" integrity sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ== -oclif@4.22.79: - version "4.22.79" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.22.79.tgz#a0222dfc0b1f8ee545401b704c3329f8b91ac6ad" - integrity sha512-yMhiVsMdOOhqNc62ZOehPGNoLIWYc6MUHtb9AVlCgML45Jrfr3NlXi5LiOEOm0Xe37FVNZYiJJJM8O31cYLhdQ== +oclif@4.22.81: + version "4.22.81" + resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.22.81.tgz#5466f3fcde0308094c9aa6e714608c8fb6ebdfd3" + integrity sha512-MO2bupt/3wWYqt05F8ZLwMYKN58YqDfRVdJxAvCdg/wZJg6/sDXVKoMSTSzwqsnIaJGjru2LBNvk8lH+p+1uMQ== dependencies: - "@aws-sdk/client-cloudfront" "^3.990.0" - "@aws-sdk/client-s3" "^3.990.0" + "@aws-sdk/client-cloudfront" "^3.995.0" + "@aws-sdk/client-s3" "^3.995.0" "@inquirer/confirm" "^3.1.22" "@inquirer/input" "^2.2.4" "@inquirer/select" "^2.5.0" From 309bfcd373c833a5a5b4170914c0c99de8fdfd81 Mon Sep 17 00:00:00 2001 From: larryrider Date: Wed, 25 Feb 2026 11:50:41 +0100 Subject: [PATCH 17/43] feat: add methods for fetching folders by UUID and parent UUID --- .../drive-folder/drive-folder.repository.ts | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/src/services/database/drive-folder/drive-folder.repository.ts b/src/services/database/drive-folder/drive-folder.repository.ts index 1cf36881..be9764fe 100644 --- a/src/services/database/drive-folder/drive-folder.repository.ts +++ b/src/services/database/drive-folder/drive-folder.repository.ts @@ -10,6 +10,30 @@ export class FolderRepository { private folderRepository = DatabaseService.instance.dataSource.getRepository(DriveFolderModel); + public getByUuid = async (uuid: string): Promise => { + try { + const folder = await this.folderRepository.findOneBy({ uuid }); + if (!folder) { + return; + } + return DriveFolder.build(folder); + } catch (error) { + ErrorUtils.report(error, { getByUuid: uuid }); + } + }; + + public getAllByParentUuid = async (parentUuid?: string): Promise => { + try { + const folders = await this.folderRepository.findBy({ parentUuid }); + if (!folders) { + return; + } + return folders.map((folder) => DriveFolder.build(folder)); + } catch (error) { + ErrorUtils.report(error, { getAllByParentUuid: parentUuid }); + } + }; + public createOrUpdate = async (files: DriveFolderModel[]) => { if (files.length === 0) return; @@ -22,7 +46,7 @@ export class FolderRepository { return files.map((file) => DriveFolder.build(file)); } catch (error) { - ErrorUtils.report(error, { files }); + ErrorUtils.report(error, { createOrUpdate: files }); } }; @@ -30,7 +54,7 @@ export class FolderRepository { try { return await this.folderRepository.update({ uuid }, update); } catch (error) { - ErrorUtils.report(error, { uuid }); + ErrorUtils.report(error, { updateByUuid: uuid }); } }; @@ -38,7 +62,7 @@ export class FolderRepository { try { return await this.folderRepository.delete(uuids); } catch (error) { - ErrorUtils.report(error, { uuids }); + ErrorUtils.report(error, { delete: uuids }); } }; } From a68db6eebc779b3ae60ccec42abe0306449f7b1f Mon Sep 17 00:00:00 2001 From: larryrider Date: Wed, 25 Feb 2026 15:33:39 +0100 Subject: [PATCH 18/43] feat: add getCurrentRootFolder functionality --- src/commands/create-folder.ts | 2 +- src/commands/list.ts | 2 +- src/commands/move-file.ts | 5 +---- src/commands/move-folder.ts | 5 +---- src/commands/trash-restore-file.ts | 5 +---- src/commands/trash-restore-folder.ts | 5 +---- src/commands/upload-file.ts | 5 +---- src/commands/upload-folder.ts | 5 +---- src/services/auth.service.ts | 8 ++++++++ src/utils/cli.utils.ts | 5 ++--- 10 files changed, 18 insertions(+), 29 deletions(-) diff --git a/src/commands/create-folder.ts b/src/commands/create-folder.ts index cb5679db..f32b9ab3 100644 --- a/src/commands/create-folder.ts +++ b/src/commands/create-folder.ts @@ -38,7 +38,7 @@ export default class CreateFolder extends Command { const folderName = await this.getFolderName(flags['name'], nonInteractive); const folderUuidFromFlag = await this.getFolderUuid(flags['id'], nonInteractive); - const folderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(folderUuidFromFlag, userCredentials); + const folderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(folderUuidFromFlag); CLIUtils.doing('Creating folder...', flags['json']); const [createNewFolder, requestCanceler] = await DriveFolderService.instance.createFolder({ diff --git a/src/commands/list.ts b/src/commands/list.ts index b0428472..43541610 100644 --- a/src/commands/list.ts +++ b/src/commands/list.ts @@ -36,7 +36,7 @@ export default class List extends Command { if (!userCredentials) throw new MissingCredentialsError(); const folderUuidFromFlag = await this.getFolderUuid(flags['id'], nonInteractive); - const folderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(folderUuidFromFlag, userCredentials); + const folderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(folderUuidFromFlag); const { folders, files } = await DriveFolderService.instance.getFolderContent(folderUuid); diff --git a/src/commands/move-file.ts b/src/commands/move-file.ts index b6a01f7e..62a9626f 100644 --- a/src/commands/move-file.ts +++ b/src/commands/move-file.ts @@ -41,10 +41,7 @@ export default class MoveFile extends Command { nonInteractive, reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const newFile = await DriveFileService.instance.moveFile(fileUuid, { destinationFolder: destinationFolderUuid }); const message = `File moved successfully to: ${destinationFolderUuid}`; diff --git a/src/commands/move-folder.ts b/src/commands/move-folder.ts index d0b9de07..c73706b4 100644 --- a/src/commands/move-folder.ts +++ b/src/commands/move-folder.ts @@ -41,10 +41,7 @@ export default class MoveFolder extends Command { nonInteractive, reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const newFolder = await DriveFolderService.instance.moveFolder(folderUuid, { destinationFolder: destinationFolderUuid, diff --git a/src/commands/trash-restore-file.ts b/src/commands/trash-restore-file.ts index b6945956..0b622aa3 100644 --- a/src/commands/trash-restore-file.ts +++ b/src/commands/trash-restore-file.ts @@ -42,10 +42,7 @@ export default class TrashRestoreFile extends Command { nonInteractive, reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const file = await DriveFileService.instance.moveFile(fileUuid, { destinationFolder: destinationFolderUuid }); const message = `File restored successfully to: ${destinationFolderUuid}`; diff --git a/src/commands/trash-restore-folder.ts b/src/commands/trash-restore-folder.ts index 532549cc..ab5a0aa0 100644 --- a/src/commands/trash-restore-folder.ts +++ b/src/commands/trash-restore-folder.ts @@ -42,10 +42,7 @@ export default class TrashRestoreFolder extends Command { nonInteractive, reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const folder = await DriveFolderService.instance.moveFolder(folderUuid, { destinationFolder: destinationFolderUuid, diff --git a/src/commands/upload-file.ts b/src/commands/upload-file.ts index d671e985..0c04ece4 100644 --- a/src/commands/upload-file.ts +++ b/src/commands/upload-file.ts @@ -55,10 +55,7 @@ export default class UploadFile extends Command { nonInteractive, reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const timings = { networkUpload: 0, diff --git a/src/commands/upload-folder.ts b/src/commands/upload-folder.ts index a7061374..de1ef530 100644 --- a/src/commands/upload-folder.ts +++ b/src/commands/upload-folder.ts @@ -40,10 +40,7 @@ export default class UploadFolder extends Command { nonInteractive: flags['non-interactive'], reporter: this.log.bind(this), }); - const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty( - destinationFolderUuidFromFlag, - userCredentials, - ); + const destinationFolderUuid = await CLIUtils.fallbackToRootFolderIdIfEmpty(destinationFolderUuidFromFlag); const progressBar = CLIUtils.progress( { diff --git a/src/services/auth.service.ts b/src/services/auth.service.ts index 7d8716d8..c9092c07 100644 --- a/src/services/auth.service.ts +++ b/src/services/auth.service.ts @@ -173,6 +173,14 @@ export class AuthService { return loginCreds.workspace; }; + public getCurrentRootFolder = async (): Promise => { + const loginCreds = await ConfigService.instance.readUser(); + if (!loginCreds?.token || !loginCreds?.user?.mnemonic) { + throw new MissingCredentialsError(); + } + return loginCreds.workspace?.workspaceData?.workspaceUser?.rootFolderId ?? loginCreds.user.rootFolderId; + }; + /** * Logs the user out of the application by invoking the logout method * from the authentication client. This will terminate the user's session diff --git a/src/utils/cli.utils.ts b/src/utils/cli.utils.ts index 43de1a2b..13659370 100644 --- a/src/utils/cli.utils.ts +++ b/src/utils/cli.utils.ts @@ -297,10 +297,9 @@ export class CLIUtils { return { networkFacade, bucket, mnemonic }; }; - static readonly fallbackToRootFolderIdIfEmpty = async (folderId: string, userCredentials: LoginCredentials) => { + static readonly fallbackToRootFolderIdIfEmpty = async (folderId: string) => { if (folderId.trim().length === 0) { - const currentWorkspace = await AuthService.instance.getCurrentWorkspace(); - return currentWorkspace?.workspaceData.workspaceUser.rootFolderId ?? userCredentials.user.rootFolderId; + return await AuthService.instance.getCurrentRootFolder(); } else { return folderId; } From f959f48b6f0650c5e552634e79db83523a9a4a0d Mon Sep 17 00:00:00 2001 From: larryrider Date: Wed, 25 Feb 2026 15:48:07 +0100 Subject: [PATCH 19/43] feat: add getFolderByPath functionality --- .../drive-folder/drive-folder.repository.ts | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/services/database/drive-folder/drive-folder.repository.ts b/src/services/database/drive-folder/drive-folder.repository.ts index be9764fe..9cfecde7 100644 --- a/src/services/database/drive-folder/drive-folder.repository.ts +++ b/src/services/database/drive-folder/drive-folder.repository.ts @@ -34,6 +34,52 @@ export class FolderRepository { } }; + public getByParentuuidAndName = async (parentUuid: string, name: string): Promise => { + try { + const folder = await this.folderRepository.findOneBy({ parentUuid, name }); + if (!folder) { + return; + } + return DriveFolder.build(folder); + } catch (error) { + ErrorUtils.report(error, { getByParentuuidAndName: { parentUuid, name } }); + } + }; + + public getByPath = async (path: string, parentUuid: string): Promise => { + try { + // Remove leading/trailing slashes + path = path.replace(/^\/+|\/+$/g, ''); + + // Base case: If the path is empty, return the current folder's data + if (path.trim().length === 0) { + const folder = await this.folderRepository.findOneBy({ uuid: parentUuid }); + if (folder) { + return DriveFolder.build(folder); + } else { + return; + } + } + + // Get the next folder name and the remaining path + const slashIndex = path.indexOf('/'); + const currentFolder = slashIndex === -1 ? path : path.substring(0, slashIndex); + const nextPath = slashIndex === -1 ? '' : path.substring(slashIndex + 1); + + const folder = await this.getByParentuuidAndName(parentUuid, currentFolder); + + // If no folder is found, return undefined (folder not found in path) + if (!folder) { + return; + } + + // Recursive call: Process the remaining path + return await this.getByPath(nextPath, folder.uuid); + } catch (error) { + ErrorUtils.report(error, { getByPath: path }); + } + }; + public createOrUpdate = async (files: DriveFolderModel[]) => { if (files.length === 0) return; From dd3d7d727b849ad9b7220f8b7f30b81c21fecbd6 Mon Sep 17 00:00:00 2001 From: larryrider Date: Wed, 25 Feb 2026 15:50:22 +0100 Subject: [PATCH 20/43] fix: improve error reporting --- src/services/database/drive-file/drive-file.repository.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/services/database/drive-file/drive-file.repository.ts b/src/services/database/drive-file/drive-file.repository.ts index e09606dc..83290be7 100644 --- a/src/services/database/drive-file/drive-file.repository.ts +++ b/src/services/database/drive-file/drive-file.repository.ts @@ -22,7 +22,7 @@ export class FileRepository { return files.map((file) => DriveFile.build(file)); } catch (error) { - ErrorUtils.report(error, { files }); + ErrorUtils.report(error, { createOrUpdate: files }); } }; @@ -30,7 +30,7 @@ export class FileRepository { try { return await this.fileRepository.update({ uuid }, update); } catch (error) { - ErrorUtils.report(error, { uuid }); + ErrorUtils.report(error, { updateByUuid: uuid }); } }; @@ -38,7 +38,7 @@ export class FileRepository { try { return await this.fileRepository.delete(uuids); } catch (error) { - ErrorUtils.report(error, { uuids }); + ErrorUtils.report(error, { delete: uuids }); } }; } From 606040f303503ab9196163ae4e555ba022feadda Mon Sep 17 00:00:00 2001 From: larryrider Date: Wed, 25 Feb 2026 15:50:54 +0100 Subject: [PATCH 21/43] feat: add deleteByParentUuid method to FileRepository and integrate it in DriveFolderService --- src/services/database/drive-file/drive-file.repository.ts | 8 ++++++++ src/services/drive/drive-folder.service.ts | 1 + 2 files changed, 9 insertions(+) diff --git a/src/services/database/drive-file/drive-file.repository.ts b/src/services/database/drive-file/drive-file.repository.ts index 83290be7..7c9d2c8e 100644 --- a/src/services/database/drive-file/drive-file.repository.ts +++ b/src/services/database/drive-file/drive-file.repository.ts @@ -41,4 +41,12 @@ export class FileRepository { ErrorUtils.report(error, { delete: uuids }); } }; + + public deleteByParentUuid = async (parentUuid: string) => { + try { + return await this.fileRepository.delete({ folderUuid: parentUuid }); + } catch (error) { + ErrorUtils.report(error, { deleteByParentUuid: parentUuid }); + } + }; } diff --git a/src/services/drive/drive-folder.service.ts b/src/services/drive/drive-folder.service.ts index b5a591e4..2b7bbab8 100644 --- a/src/services/drive/drive-folder.service.ts +++ b/src/services/drive/drive-folder.service.ts @@ -115,6 +115,7 @@ export class DriveFolderService { files = (await folderContentPromise).files; } + FileRepository.instance.deleteByParentUuid(folderUuid); FileRepository.instance.createOrUpdate( files.map( (file) => From 24e7bd1e3ac7b64f49b911199f1b55f2aa996408 Mon Sep 17 00:00:00 2001 From: larryrider Date: Wed, 25 Feb 2026 17:24:09 +0100 Subject: [PATCH 22/43] feat: implement generic getByPath functionality --- .../drive-folder/drive-folder.repository.ts | 40 +++++------- .../drive-folder/drive-folder.utils.ts | 40 ++++++++++++ src/services/drive/drive-folder.service.ts | 63 ++++++++++++++++--- 3 files changed, 107 insertions(+), 36 deletions(-) create mode 100644 src/services/database/drive-folder/drive-folder.utils.ts diff --git a/src/services/database/drive-folder/drive-folder.repository.ts b/src/services/database/drive-folder/drive-folder.repository.ts index 9cfecde7..1537f58d 100644 --- a/src/services/database/drive-folder/drive-folder.repository.ts +++ b/src/services/database/drive-folder/drive-folder.repository.ts @@ -2,6 +2,7 @@ import { ErrorUtils } from '../../../utils/errors.utils'; import { DatabaseService } from '../database.service'; import { DriveFolder } from './drive-folder.domain'; import { DriveFolderModel } from './drive-folder.model'; +import { DriveFolderUtils } from './drive-folder.utils'; const BATCH_SIZE = 100; @@ -34,7 +35,7 @@ export class FolderRepository { } }; - public getByParentuuidAndName = async (parentUuid: string, name: string): Promise => { + public getByParentUuidAndName = async (parentUuid: string, name: string): Promise => { try { const folder = await this.folderRepository.findOneBy({ parentUuid, name }); if (!folder) { @@ -48,33 +49,20 @@ export class FolderRepository { public getByPath = async (path: string, parentUuid: string): Promise => { try { - // Remove leading/trailing slashes - path = path.replace(/^\/+|\/+$/g, ''); - - // Base case: If the path is empty, return the current folder's data - if (path.trim().length === 0) { - const folder = await this.folderRepository.findOneBy({ uuid: parentUuid }); - if (folder) { - return DriveFolder.build(folder); - } else { + const onFound = async (uuid: string) => { + const folder = await this.folderRepository.findOneBy({ uuid }); + if (!folder) { return; } - } - - // Get the next folder name and the remaining path - const slashIndex = path.indexOf('/'); - const currentFolder = slashIndex === -1 ? path : path.substring(0, slashIndex); - const nextPath = slashIndex === -1 ? '' : path.substring(slashIndex + 1); - - const folder = await this.getByParentuuidAndName(parentUuid, currentFolder); - - // If no folder is found, return undefined (folder not found in path) - if (!folder) { - return; - } - - // Recursive call: Process the remaining path - return await this.getByPath(nextPath, folder.uuid); + return DriveFolder.build(folder); + }; + + return DriveFolderUtils.getByPathGeneric({ + path, + parentUuid, + onFound, + getByParentAndName: this.getByParentUuidAndName.bind(this), + }); } catch (error) { ErrorUtils.report(error, { getByPath: path }); } diff --git a/src/services/database/drive-folder/drive-folder.utils.ts b/src/services/database/drive-folder/drive-folder.utils.ts new file mode 100644 index 00000000..45900eab --- /dev/null +++ b/src/services/database/drive-folder/drive-folder.utils.ts @@ -0,0 +1,40 @@ +export class DriveFolderUtils { + public static readonly getByPathGeneric = async ({ + path, + parentUuid, + onFound, + getByParentAndName, + }: { + path: string; + parentUuid: string; + onFound: (uuid: string) => Promise; + getByParentAndName: (parentUuid: string, name: string) => Promise<{ uuid: string } | null | undefined>; + }): Promise => { + // Remove leading/trailing slashes + path = path.replace(/^\/+|\/+$/g, ''); + + // Base case: If the path is empty, return the folder's found uuid + if (path.trim().length === 0) { + return onFound(parentUuid); + } + + // Get the next folder name and the remaining path + const slashIndex = path.indexOf('/'); + const currentFolder = slashIndex === -1 ? path : path.substring(0, slashIndex); + const nextPath = slashIndex === -1 ? '' : path.substring(slashIndex + 1); + + const folder = await getByParentAndName(parentUuid, currentFolder); + + // If no intermediate folder is found, return onNotFound callback + if (!folder) { + return; + } + + return this.getByPathGeneric({ + path: nextPath, + parentUuid: folder.uuid, + onFound, + getByParentAndName, + }); + }; +} diff --git a/src/services/drive/drive-folder.service.ts b/src/services/drive/drive-folder.service.ts index 2b7bbab8..1848b5d7 100644 --- a/src/services/drive/drive-folder.service.ts +++ b/src/services/drive/drive-folder.service.ts @@ -10,6 +10,9 @@ import { FolderRepository } from '../database/drive-folder/drive-folder.reposito import { DriveFolder } from '../database/drive-folder/drive-folder.domain'; import { FileRepository } from '../database/drive-file/drive-file.repository'; import { DriveFile } from '../database/drive-file/drive-file.domain'; +import { NotFoundError } from '../../utils/errors.utils'; +import { DriveFolderUtils } from '../database/drive-folder/drive-folder.utils'; +import { logger } from '../../utils/logger.utils'; export class DriveFolderService { static readonly instance = new DriveFolderService(); @@ -185,16 +188,56 @@ export class DriveFolderService { FolderRepository.instance.updateByUuid(payload.folderUuid, { name: payload.name }); }; - public getFolderMetadataByPath = async (path: string): Promise => { - const storageClient = SdkManager.instance.getStorage(); - const folderMeta = await storageClient.getFolderByPath(encodeURIComponent(path)); - return DriveUtils.driveFolderMetaToItem({ - ...folderMeta, - createdAt: folderMeta.createdAt ?? folderMeta.created_at, - updatedAt: folderMeta.updatedAt ?? folderMeta.updated_at, - plainName: folderMeta.plainName ?? folderMeta.plain_name, - parentId: folderMeta.parentId ?? folderMeta.parent_id, - parentUuid: folderMeta.parentUuid ?? folderMeta.parent_uuid, + public getByParentUuidAndName = async (parentUuid: string, name: string): Promise => { + const { folders } = await this.getFolderContent(parentUuid); + const folderMeta = folders.find((folder) => folder.plainName === name || folder.name === name); + if (!folderMeta) { + throw new Error('Folder not found'); + } + + return { + itemType: 'folder', + name: folderMeta.plainName, + uuid: folderMeta.uuid, + parentUuid: folderMeta.parentUuid, + status: FileStatus.EXISTS, + createdAt: new Date(folderMeta.createdAt), + updatedAt: new Date(folderMeta.updatedAt), + creationTime: new Date(folderMeta.creationTime), + modificationTime: new Date(folderMeta.modificationTime), + bucket: folderMeta.bucket, + }; + }; + + public getByPath = async (path: string, parentUuid: string): Promise => { + const onFound = async (uuid: string) => { + const folder = await this.getFolderMetaByUuid(uuid); + return folder; + }; + + const folder = await DriveFolderUtils.getByPathGeneric({ + path, + parentUuid, + onFound, + getByParentAndName: this.getByParentUuidAndName.bind(this), }); + if (!folder) { + throw new NotFoundError('Folder not found'); + } + return folder; + }; + + public getFolderMetadataByPath = async (path: string): Promise => { + const rootFolderUuid = await AuthService.instance.getCurrentRootFolder(); + const localFolderDB = await FolderRepository.instance.getByPath(path, rootFolderUuid); + + if (localFolderDB) { + try { + return this.getFolderMetaByUuid(localFolderDB.uuid); + } catch { + logger.error('Folder not found when getting folder by path on local DB', { path, rootFolderUuid }); + } + } + return this.getByPath(path, rootFolderUuid); }; } From 7df17c7b488712e48803a0b38c13ae3a18d13a30 Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 16:25:58 +0100 Subject: [PATCH 23/43] refactor: move batch size management and generic folder path retrieval --- .../database/drive-file/drive-file.repository.ts | 7 +++---- .../database/drive-folder/drive-folder.repository.ts | 10 ++++------ src/services/drive/drive-folder.service.ts | 4 ++-- .../drive-folder.utils.ts => utils/database.utils.ts} | 8 +++++--- 4 files changed, 14 insertions(+), 15 deletions(-) rename src/{services/database/drive-folder/drive-folder.utils.ts => utils/database.utils.ts} (85%) diff --git a/src/services/database/drive-file/drive-file.repository.ts b/src/services/database/drive-file/drive-file.repository.ts index 7c9d2c8e..0495b222 100644 --- a/src/services/database/drive-file/drive-file.repository.ts +++ b/src/services/database/drive-file/drive-file.repository.ts @@ -1,10 +1,9 @@ +import { DatabaseUtils } from '../../../utils/database.utils'; import { ErrorUtils } from '../../../utils/errors.utils'; import { DatabaseService } from '../database.service'; import { DriveFile } from './drive-file.domain'; import { DriveFileModel } from './drive-file.model'; -const BATCH_SIZE = 100; - export class FileRepository { public static readonly instance = new FileRepository(); @@ -14,8 +13,8 @@ export class FileRepository { if (files.length === 0) return; try { - for (let i = 0; i < files.length; i += BATCH_SIZE) { - const chunk = files.slice(i, i + BATCH_SIZE); + for (let i = 0; i < files.length; i += DatabaseUtils.CREATE_BATCH_SIZE) { + const chunk = files.slice(i, i + DatabaseUtils.CREATE_BATCH_SIZE); await this.fileRepository.upsert(chunk, { conflictPaths: ['uuid'] }); } diff --git a/src/services/database/drive-folder/drive-folder.repository.ts b/src/services/database/drive-folder/drive-folder.repository.ts index 1537f58d..aea32818 100644 --- a/src/services/database/drive-folder/drive-folder.repository.ts +++ b/src/services/database/drive-folder/drive-folder.repository.ts @@ -2,9 +2,7 @@ import { ErrorUtils } from '../../../utils/errors.utils'; import { DatabaseService } from '../database.service'; import { DriveFolder } from './drive-folder.domain'; import { DriveFolderModel } from './drive-folder.model'; -import { DriveFolderUtils } from './drive-folder.utils'; - -const BATCH_SIZE = 100; +import { DatabaseUtils } from '../../../utils/database.utils'; export class FolderRepository { public static readonly instance = new FolderRepository(); @@ -57,7 +55,7 @@ export class FolderRepository { return DriveFolder.build(folder); }; - return DriveFolderUtils.getByPathGeneric({ + return DatabaseUtils.getFolderByPathGeneric({ path, parentUuid, onFound, @@ -72,8 +70,8 @@ export class FolderRepository { if (files.length === 0) return; try { - for (let i = 0; i < files.length; i += BATCH_SIZE) { - const chunk = files.slice(i, i + BATCH_SIZE); + for (let i = 0; i < files.length; i += DatabaseUtils.CREATE_BATCH_SIZE) { + const chunk = files.slice(i, i + DatabaseUtils.CREATE_BATCH_SIZE); await this.folderRepository.upsert(chunk, { conflictPaths: ['uuid'] }); } diff --git a/src/services/drive/drive-folder.service.ts b/src/services/drive/drive-folder.service.ts index 1848b5d7..a2ab9f6e 100644 --- a/src/services/drive/drive-folder.service.ts +++ b/src/services/drive/drive-folder.service.ts @@ -11,7 +11,7 @@ import { DriveFolder } from '../database/drive-folder/drive-folder.domain'; import { FileRepository } from '../database/drive-file/drive-file.repository'; import { DriveFile } from '../database/drive-file/drive-file.domain'; import { NotFoundError } from '../../utils/errors.utils'; -import { DriveFolderUtils } from '../database/drive-folder/drive-folder.utils'; +import { DatabaseUtils } from '../../utils/database.utils'; import { logger } from '../../utils/logger.utils'; export class DriveFolderService { @@ -215,7 +215,7 @@ export class DriveFolderService { return folder; }; - const folder = await DriveFolderUtils.getByPathGeneric({ + const folder = await DatabaseUtils.getFolderByPathGeneric({ path, parentUuid, onFound, diff --git a/src/services/database/drive-folder/drive-folder.utils.ts b/src/utils/database.utils.ts similarity index 85% rename from src/services/database/drive-folder/drive-folder.utils.ts rename to src/utils/database.utils.ts index 45900eab..6c9543ff 100644 --- a/src/services/database/drive-folder/drive-folder.utils.ts +++ b/src/utils/database.utils.ts @@ -1,5 +1,7 @@ -export class DriveFolderUtils { - public static readonly getByPathGeneric = async ({ +export class DatabaseUtils { + public static readonly CREATE_BATCH_SIZE = 100; + + public static readonly getFolderByPathGeneric = async ({ path, parentUuid, onFound, @@ -30,7 +32,7 @@ export class DriveFolderUtils { return; } - return this.getByPathGeneric({ + return this.getFolderByPathGeneric({ path: nextPath, parentUuid: folder.uuid, onFound, From 904210add2ea4575a9bab5f7750f9aa77273234b Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 16:28:44 +0100 Subject: [PATCH 24/43] feat: remove condition from createOrUpdate --- src/services/database/drive-file/drive-file.repository.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/services/database/drive-file/drive-file.repository.ts b/src/services/database/drive-file/drive-file.repository.ts index e09606dc..b81cdbcc 100644 --- a/src/services/database/drive-file/drive-file.repository.ts +++ b/src/services/database/drive-file/drive-file.repository.ts @@ -11,8 +11,6 @@ export class FileRepository { private fileRepository = DatabaseService.instance.dataSource.getRepository(DriveFileModel); public createOrUpdate = async (files: DriveFileModel[]) => { - if (files.length === 0) return; - try { for (let i = 0; i < files.length; i += BATCH_SIZE) { const chunk = files.slice(i, i + BATCH_SIZE); From 1ac2a434525768788f10b0e35d71a87108b72b77 Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 17:03:51 +0100 Subject: [PATCH 25/43] feat: add unit tests for DatabaseService configuration and integration scenarios --- src/services/database/database.service.ts | 3 +- src/types/config.types.ts | 1 + .../database/database.service.test.ts | 56 +++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 test/services/database/database.service.test.ts diff --git a/src/services/database/database.service.ts b/src/services/database/database.service.ts index e7976d02..535d2afe 100644 --- a/src/services/database/database.service.ts +++ b/src/services/database/database.service.ts @@ -2,12 +2,13 @@ import { DataSource } from 'typeorm'; import { DriveFileModel } from './drive-file/drive-file.model'; import { DriveFolderModel } from './drive-folder/drive-folder.model'; import { DRIVE_SQLITE_FILE } from '../../constants/configs'; +import { ConfigService } from '../config.service'; export class DatabaseService { public static readonly instance = new DatabaseService(); public dataSource = new DataSource( - process.env.NODE_ENV === 'test' + ConfigService.instance.get('NODE_ENV') === 'test' ? { type: 'sqljs', autoSave: false, diff --git a/src/types/config.types.ts b/src/types/config.types.ts index 4bad4cbe..ed1ecb39 100644 --- a/src/types/config.types.ts +++ b/src/types/config.types.ts @@ -1,4 +1,5 @@ export interface ConfigKeys { + readonly NODE_ENV: string; readonly DRIVE_WEB_URL: string; readonly DRIVE_NEW_API_URL: string; readonly APP_CRYPTO_SECRET: string; diff --git a/test/services/database/database.service.test.ts b/test/services/database/database.service.test.ts new file mode 100644 index 00000000..82fd52ec --- /dev/null +++ b/test/services/database/database.service.test.ts @@ -0,0 +1,56 @@ +import { describe, it, expect, vi } from 'vitest'; +import { DatabaseService } from '../../../src/services/database/database.service'; +import { DriveFileModel } from '../../../src/services/database/drive-file/drive-file.model'; +import { DriveFolderModel } from '../../../src/services/database/drive-folder/drive-folder.model'; +import { ConfigService } from '../../../src/services/config.service'; +import { DRIVE_SQLITE_FILE } from '../../../src/constants/configs'; + +describe('DatabaseService', () => { + describe('dataSource configuration', () => { + it('should configure sqljs when NODE_ENV is test', () => { + const configServiceInstancespyOn = vi.spyOn(ConfigService.instance, 'get'); + configServiceInstancespyOn.mockReturnValueOnce('test'); + + const service = new DatabaseService(); + + expect(service.dataSource.options.type).toBe('sqljs'); + expect(service.dataSource.options.synchronize).toBe(true); + expect(service.dataSource.options.entities).toEqual([DriveFileModel, DriveFolderModel]); + expect(configServiceInstancespyOn).toHaveBeenCalledWith('NODE_ENV'); + }); + + it('should configure better-sqlite3 when NODE_ENV is not test', () => { + const configServiceInstancespyOn = vi.spyOn(ConfigService.instance, 'get'); + configServiceInstancespyOn.mockReturnValueOnce('production'); + + const service = new DatabaseService(); + + expect(service.dataSource.options.type).toBe('better-sqlite3'); + expect(service.dataSource.options.database).toBe(DRIVE_SQLITE_FILE); + expect(service.dataSource.options.synchronize).toBe(true); + expect(service.dataSource.options.entities).toEqual([DriveFileModel, DriveFolderModel]); + expect(configServiceInstancespyOn).toHaveBeenCalledWith('NODE_ENV'); + }); + }); + + describe('Integration scenarios', () => { + it('should handle initialize, clear, and destroy sequence', async () => { + const configServiceInstancespyOn = vi.spyOn(ConfigService.instance, 'get'); + configServiceInstancespyOn.mockReturnValueOnce('test'); + + const service = new DatabaseService(); + + const initializeSpy = vi.spyOn(service.dataSource, 'initialize').mockResolvedValue(service.dataSource); + const clearSpy = vi.spyOn(service.dataSource, 'synchronize').mockResolvedValue(undefined); + const destroySpy = vi.spyOn(service.dataSource, 'destroy').mockResolvedValue(undefined); + + await service.initialize(); + await service.clear(); + await service.destroy(); + + expect(initializeSpy).toHaveBeenCalledTimes(1); + expect(clearSpy).toHaveBeenCalledTimes(1); + expect(destroySpy).toHaveBeenCalledTimes(1); + }); + }); +}); From 3d6dd9834a3b80445ed5c1f4396eb2f5beb7f34d Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 18:05:34 +0100 Subject: [PATCH 26/43] feat: add maxRetries configuration to sdk apiSecurity --- src/services/sdk-manager.service.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/services/sdk-manager.service.ts b/src/services/sdk-manager.service.ts index 4339db2a..6c90d3fe 100644 --- a/src/services/sdk-manager.service.ts +++ b/src/services/sdk-manager.service.ts @@ -8,6 +8,8 @@ import { Workspaces } from '@internxt/sdk/dist/workspaces'; export type SdkManagerApiSecurity = ApiSecurity; +const MAX_RETRIES = 3; + /** * Manages all the sdk submodules initialization * based on the current apiSecurity details @@ -21,6 +23,9 @@ export class SdkManager { * @param apiSecurity Security properties to be setted **/ public static readonly init = (apiSecurity: SdkManagerApiSecurity) => { + apiSecurity.retryOptions = { + maxRetries: MAX_RETRIES, + }; SdkManager.apiSecurity = apiSecurity; }; From 9682c5944ebcbab689fc61a89d3709cccad0cca1 Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 18:15:07 +0100 Subject: [PATCH 27/43] deps: update fast-xml-parser dependency --- package.json | 4 ++-- yarn.lock | 22 ++++++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 4a0d3cc9..d5c80bd6 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "dotenv": "17.3.1", "express": "5.2.1", "express-async-handler": "1.2.0", - "fast-xml-parser": "5.3.9", + "fast-xml-parser": "5.4.1", "hash-wasm": "4.12.0", "mime-types": "3.0.2", "open": "11.0.0", @@ -72,7 +72,7 @@ "@types/cli-progress": "3.11.6", "@types/express": "5.0.6", "@types/mime-types": "3.0.1", - "@types/node": "25.3.0", + "@types/node": "25.3.1", "@types/range-parser": "1.2.7", "@vitest/coverage-istanbul": "4.0.18", "@vitest/spy": "4.0.18", diff --git a/yarn.lock b/yarn.lock index 3b3e3c7d..738e71a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2763,10 +2763,10 @@ dependencies: undici-types "~7.16.0" -"@types/node@25.3.0": - version "25.3.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-25.3.0.tgz#749b1bd4058e51b72e22bd41e9eab6ebd0180470" - integrity sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A== +"@types/node@25.3.1": + version "25.3.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.3.1.tgz#82f3f6e30ac3b48560a092d9224a975b5c24e38d" + integrity sha512-hj9YIJimBCipHVfHKRMnvmHg+wfhKc0o4mTtXh9pKBjC8TLJzz0nzGmLi5UJsYAUgSvXFHgb0V2oY10DUFtImw== dependencies: undici-types "~7.18.0" @@ -4459,6 +4459,11 @@ fast-wrap-ansi@^0.2.0: dependencies: fast-string-width "^3.0.2" +fast-xml-builder@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-xml-builder/-/fast-xml-builder-1.0.0.tgz#a485d7e8381f1db983cf006f849d1066e2935241" + integrity sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ== + fast-xml-parser@5.3.6: version "5.3.6" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.3.6.tgz#85a69117ca156b1b3c52e426495b6de266cb6a4b" @@ -4466,11 +4471,12 @@ fast-xml-parser@5.3.6: dependencies: strnum "^2.1.2" -fast-xml-parser@5.3.9: - version "5.3.9" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.3.9.tgz#8777df0e215845534b023b2830e75d0068a9fbcf" - integrity sha512-zU0KUuO9U+fLGduTDdxQ6qsQLIxRg4EK5AMduwBNGNCSfCGRSbNS7OpH343NFQlLDg1jxoH68JSbOPAGksIGvg== +fast-xml-parser@5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.4.1.tgz#0c81b8ecfb3021e5ad83aa3df904af19a05bc601" + integrity sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A== dependencies: + fast-xml-builder "^1.0.0" strnum "^2.1.2" fastest-levenshtein@^1.0.7: From e70e7fdd8391acdcd47f38f4e3f244f5422cd65b Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 18:27:20 +0100 Subject: [PATCH 28/43] fix: add missing await --- src/services/drive/drive-folder.service.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/services/drive/drive-folder.service.ts b/src/services/drive/drive-folder.service.ts index a2ab9f6e..9182769b 100644 --- a/src/services/drive/drive-folder.service.ts +++ b/src/services/drive/drive-folder.service.ts @@ -233,7 +233,10 @@ export class DriveFolderService { if (localFolderDB) { try { - return this.getFolderMetaByUuid(localFolderDB.uuid); + const folder = await this.getFolderMetaByUuid(localFolderDB.uuid); + if (folder) { + return folder; + } } catch { logger.error('Folder not found when getting folder by path on local DB', { path, rootFolderUuid }); } From e1f18c09683618798ac696e6ffa3206ebe6f99d9 Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 19:42:32 +0100 Subject: [PATCH 29/43] feat: handle missing keys with optional parameter --- src/services/config.service.ts | 9 +++++---- src/services/database/database.service.ts | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/services/config.service.ts b/src/services/config.service.ts index 835fafbe..1d625267 100644 --- a/src/services/config.service.ts +++ b/src/services/config.service.ts @@ -22,13 +22,14 @@ export class ConfigService { /** * Gets the value from an environment key * @param key The environment key to retrieve - * @throws {Error} If key is not found in process.env + * @param throwIfNotFound If true, throws an error if the key is not found + * @throws {Error} If key is not found in process.env and throwIfNotFound is true * @returns The value from the environment variable **/ - public get = (key: keyof ConfigKeys): string => { + public get = (key: keyof ConfigKeys, throwIfNotFound = true): string => { const value = process.env[key]; - if (!value) throw new Error(`Config key ${key} was not found in process.env`); - return value; + if (!value && throwIfNotFound) throw new Error(`Config key ${key} was not found in process.env`); + return value ?? ''; }; /** diff --git a/src/services/database/database.service.ts b/src/services/database/database.service.ts index 535d2afe..43325ac3 100644 --- a/src/services/database/database.service.ts +++ b/src/services/database/database.service.ts @@ -8,7 +8,7 @@ export class DatabaseService { public static readonly instance = new DatabaseService(); public dataSource = new DataSource( - ConfigService.instance.get('NODE_ENV') === 'test' + ConfigService.instance.get('NODE_ENV', false) === 'test' ? { type: 'sqljs', autoSave: false, From a5b6032f4a11569e70f6f189a76d30c48484444b Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 19:43:06 +0100 Subject: [PATCH 30/43] feat: enhance folder content retrieval with subfolders and subfiles methods --- src/services/drive/drive-folder.service.ts | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/services/drive/drive-folder.service.ts b/src/services/drive/drive-folder.service.ts index 9182769b..f1902c0d 100644 --- a/src/services/drive/drive-folder.service.ts +++ b/src/services/drive/drive-folder.service.ts @@ -34,11 +34,23 @@ export class DriveFolderService { }; public getFolderContent = async (folderUuid: string) => { + const folders = await this.getFolderSubfolders(folderUuid); + const files = await this.getFolderSubfiles(folderUuid); + return { folders, files }; + }; + + public getFolderSubfolders = async (folderUuid: string): Promise => { const currentWorkspace = await AuthService.instance.getCurrentWorkspace(); const currentWorkspaceCreds = currentWorkspace?.workspaceCredentials; const folders = await this.getAllSubfolders(currentWorkspaceCreds, folderUuid, 0); + return folders; + }; + + public getFolderSubfiles = async (folderUuid: string): Promise => { + const currentWorkspace = await AuthService.instance.getCurrentWorkspace(); + const currentWorkspaceCreds = currentWorkspace?.workspaceCredentials; const files = await this.getAllSubfiles(currentWorkspaceCreds, folderUuid, 0); - return { folders, files }; + return files; }; private readonly getAllSubfolders = async ( @@ -189,10 +201,10 @@ export class DriveFolderService { }; public getByParentUuidAndName = async (parentUuid: string, name: string): Promise => { - const { folders } = await this.getFolderContent(parentUuid); - const folderMeta = folders.find((folder) => folder.plainName === name || folder.name === name); + const subFolders = await this.getFolderSubfolders(parentUuid); + const folderMeta = subFolders.find((folder) => folder.plainName === name || folder.name === name); if (!folderMeta) { - throw new Error('Folder not found'); + throw new NotFoundError('Folder not found'); } return { From 4f39c71cd114cfdce75e4804fec93342c85f1210 Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 19:43:26 +0100 Subject: [PATCH 31/43] feat: implement PathUtils class for file path data extraction --- src/utils/path.utils.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/utils/path.utils.ts diff --git a/src/utils/path.utils.ts b/src/utils/path.utils.ts new file mode 100644 index 00000000..fc3b00bd --- /dev/null +++ b/src/utils/path.utils.ts @@ -0,0 +1,13 @@ +import path from 'path'; + +export class PathUtils { + static getPathFileData(filePath: string): { folderPath: string; fileName: string; fileType: string | null } { + const folderPath = path.dirname(filePath); + const fileExt = path.extname(filePath); + const fileName = path.basename(filePath, fileExt); + + const fileExtWithoutDot = fileExt.replace('.', '').trim(); + const fileType = fileExtWithoutDot.length > 0 ? fileExtWithoutDot : null; + return { folderPath, fileName, fileType }; + } +} From d4716d96e65461e3b147f4161db66cfcadf7bc4c Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 20:19:24 +0100 Subject: [PATCH 32/43] feat: remove undefined for type and fileId in DriveFile --- src/services/database/drive-file/drive-file.attributes.ts | 4 ++-- src/services/database/drive-file/drive-file.domain.ts | 4 ++-- src/services/database/drive-file/drive-file.model.ts | 4 ++-- src/services/drive/drive-file.service.ts | 4 ++-- src/types/drive.types.ts | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/services/database/drive-file/drive-file.attributes.ts b/src/services/database/drive-file/drive-file.attributes.ts index 256e0b67..c06719de 100644 --- a/src/services/database/drive-file/drive-file.attributes.ts +++ b/src/services/database/drive-file/drive-file.attributes.ts @@ -1,8 +1,8 @@ export interface DriveFileAttributes { uuid: string; name: string; - type?: string | null; - fileId?: string | null; + type: string | null; + fileId: string | null; folderUuid: string; bucket: string; createdAt: Date; diff --git a/src/services/database/drive-file/drive-file.domain.ts b/src/services/database/drive-file/drive-file.domain.ts index 36f85cd8..a1ceaa51 100644 --- a/src/services/database/drive-file/drive-file.domain.ts +++ b/src/services/database/drive-file/drive-file.domain.ts @@ -3,9 +3,9 @@ import { DriveFileAttributes } from './drive-file.attributes'; export class DriveFile implements DriveFileAttributes { name: string; - type?: string | null; + type: string | null; uuid: string; - fileId?: string | null; + fileId: string | null; folderUuid: string; bucket: string; createdAt: Date; diff --git a/src/services/database/drive-file/drive-file.model.ts b/src/services/database/drive-file/drive-file.model.ts index 68b3bd83..5c3b25e3 100644 --- a/src/services/database/drive-file/drive-file.model.ts +++ b/src/services/database/drive-file/drive-file.model.ts @@ -10,10 +10,10 @@ export class DriveFileModel implements DriveFileAttributes { declare name: string; @Column({ nullable: true, type: 'varchar' }) - declare type?: string | null; + declare type: string | null; @Column({ nullable: true, type: 'varchar' }) - declare fileId?: string | null; + declare fileId: string | null; @Column({ nullable: false, type: 'varchar' }) declare folderUuid: string; diff --git a/src/services/drive/drive-file.service.ts b/src/services/drive/drive-file.service.ts index 824814f4..51760dc4 100644 --- a/src/services/drive/drive-file.service.ts +++ b/src/services/drive/drive-file.service.ts @@ -19,8 +19,8 @@ export class DriveFileService { bucket: driveFile.bucket, createdAt: new Date(driveFile.createdAt), updatedAt: new Date(driveFile.updatedAt), - fileId: driveFile.fileId, - type: driveFile.type, + fileId: driveFile.fileId ?? null, + type: driveFile.type ?? null, status: driveFile.status as DriveFileItem['status'], folderUuid: driveFile.folderUuid, creationTime: new Date(driveFile.creationTime ?? driveFile.createdAt), diff --git a/src/types/drive.types.ts b/src/types/drive.types.ts index 3025790c..ddb27b55 100644 --- a/src/types/drive.types.ts +++ b/src/types/drive.types.ts @@ -7,8 +7,8 @@ export type DriveFileItem = Pick & { From ce4bca4ebc227b6fc41ee1945e7d7780d0491c17 Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 20:19:51 +0100 Subject: [PATCH 33/43] feat: add creationTime and modificationTime to newFolderItem and newDriveFolder --- test/fixtures/drive.fixture.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/fixtures/drive.fixture.ts b/test/fixtures/drive.fixture.ts index 6b96510a..3875ad6d 100644 --- a/test/fixtures/drive.fixture.ts +++ b/test/fixtures/drive.fixture.ts @@ -32,6 +32,8 @@ export const newFolderItem = (attributes?: Partial): DriveFolde updatedAt: getRandomDate(), status: 'EXISTS', parentUuid: randomUUID(), + creationTime: getRandomDate(), + modificationTime: getRandomDate(), }; return { ...folder, ...attributes }; }; @@ -172,6 +174,8 @@ export const newDriveFolder = (attributes?: Partial): Dri createdAt: getRandomDate(), updatedAt: getRandomDate(), status: FileStatus.EXISTS, + creationTime: getRandomDate(), + modificationTime: getRandomDate(), }; return new DriveFolder({ ...folder, ...attributes }); }; From a122dcba73a21b2e88762948594e2a6654f9d6e9 Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 20:22:12 +0100 Subject: [PATCH 34/43] feat: add getByParentUuidNameAndType method --- .../drive-file/drive-file.repository.ts | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/services/database/drive-file/drive-file.repository.ts b/src/services/database/drive-file/drive-file.repository.ts index fd70640f..c3aaca48 100644 --- a/src/services/database/drive-file/drive-file.repository.ts +++ b/src/services/database/drive-file/drive-file.repository.ts @@ -1,3 +1,4 @@ +import { IsNull } from 'typeorm'; import { DatabaseUtils } from '../../../utils/database.utils'; import { ErrorUtils } from '../../../utils/errors.utils'; import { DatabaseService } from '../database.service'; @@ -9,7 +10,7 @@ export class FileRepository { private fileRepository = DatabaseService.instance.dataSource.getRepository(DriveFileModel); - public createOrUpdate = async (files: DriveFileModel[]) => { + public createOrUpdate = async (files: DriveFileModel[]): Promise => { try { for (let i = 0; i < files.length; i += DatabaseUtils.CREATE_BATCH_SIZE) { const chunk = files.slice(i, i + DatabaseUtils.CREATE_BATCH_SIZE); @@ -46,4 +47,21 @@ export class FileRepository { ErrorUtils.report(error, { deleteByParentUuid: parentUuid }); } }; + + public getByParentUuidNameAndType = async ( + parentUuid: string, + name: string, + type: string | null, + ): Promise => { + try { + const typeCondition = type ?? IsNull(); + const file = await this.fileRepository.findOneBy({ folderUuid: parentUuid, name, type: typeCondition }); + if (!file) { + return; + } + return DriveFile.build(file); + } catch (error) { + ErrorUtils.report(error, { getByParentuuidAndName: { parentUuid, name, type } }); + } + }; } From de10db131c8117ae4a4e34d2f13827f5b15beb46 Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 20:23:32 +0100 Subject: [PATCH 35/43] feat: implement getByParentUuidAndName method and enhance getFileMetadataByPath --- src/services/drive/drive-file.service.ts | 39 ++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/src/services/drive/drive-file.service.ts b/src/services/drive/drive-file.service.ts index 51760dc4..ce4d3986 100644 --- a/src/services/drive/drive-file.service.ts +++ b/src/services/drive/drive-file.service.ts @@ -4,6 +4,10 @@ import { DriveFileItem } from '../../types/drive.types'; import { DriveUtils } from '../../utils/drive.utils'; import { AuthService } from '../auth.service'; import { FileRepository } from '../database/drive-file/drive-file.repository'; +import { DriveFolderService } from './drive-folder.service'; +import { NotFoundError } from '../../utils/errors.utils'; +import { PathUtils } from '../../utils/path.utils'; +import { logger } from '../../utils/logger.utils'; export class DriveFileService { static readonly instance = new DriveFileService(); @@ -89,10 +93,39 @@ export class DriveFileService { FileRepository.instance.updateByUuid(fileUuid, { name: payload.plainName, type: payload.type }); }; + public getByParentUuidAndName = async ( + parentUuid: string, + name: string, + type: string | null, + ): Promise => { + const subFiles = await DriveFolderService.instance.getFolderSubfiles(parentUuid); + const fileMeta = subFiles.find( + (file) => (file.plainName === name || file.name === name) && (file.type ?? null) === type, + ); + if (!fileMeta) { + throw new NotFoundError('File not found'); + } + return DriveUtils.driveFileMetaToItem(fileMeta); + }; + public getFileMetadataByPath = async (path: string): Promise => { - const storageClient = SdkManager.instance.getStorage(); - const fileMetadata = await storageClient.getFileByPath(encodeURIComponent(path)); - return DriveUtils.driveFileMetaToItem(fileMetadata); + const { fileName, fileType, folderPath } = PathUtils.getPathFileData(path); + + const parentFolder = await DriveFolderService.instance.getFolderMetadataByPath(folderPath); + + const localFileDB = await FileRepository.instance.getByParentUuidNameAndType(parentFolder.uuid, fileName, fileType); + if (localFileDB) { + try { + const file = await this.getFileMetadata(localFileDB.uuid); + if (file) { + return file; + } + } catch { + logger.error('File not found when getting file by path on local DB', { path }); + } + } + + return this.getByParentUuidAndName(parentFolder.uuid, fileName, fileType); }; public createThumbnail = (payload: StorageTypes.CreateThumbnailEntryPayload): Promise => { From 17d1d6bea407380f9de8e06d0a71ca551fe1732c Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 20:24:00 +0100 Subject: [PATCH 36/43] fix: add missing boolean to tests --- test/services/database/database.service.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/services/database/database.service.test.ts b/test/services/database/database.service.test.ts index 82fd52ec..d9e89eab 100644 --- a/test/services/database/database.service.test.ts +++ b/test/services/database/database.service.test.ts @@ -16,7 +16,7 @@ describe('DatabaseService', () => { expect(service.dataSource.options.type).toBe('sqljs'); expect(service.dataSource.options.synchronize).toBe(true); expect(service.dataSource.options.entities).toEqual([DriveFileModel, DriveFolderModel]); - expect(configServiceInstancespyOn).toHaveBeenCalledWith('NODE_ENV'); + expect(configServiceInstancespyOn).toHaveBeenCalledWith('NODE_ENV', false); }); it('should configure better-sqlite3 when NODE_ENV is not test', () => { @@ -29,7 +29,7 @@ describe('DatabaseService', () => { expect(service.dataSource.options.database).toBe(DRIVE_SQLITE_FILE); expect(service.dataSource.options.synchronize).toBe(true); expect(service.dataSource.options.entities).toEqual([DriveFileModel, DriveFolderModel]); - expect(configServiceInstancespyOn).toHaveBeenCalledWith('NODE_ENV'); + expect(configServiceInstancespyOn).toHaveBeenCalledWith('NODE_ENV', false); }); }); From 59c9aadd105cd0a757c7430bf3a72cb7883c4277 Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 20:33:29 +0100 Subject: [PATCH 37/43] tests: add default restoreMocks vitest property and fix tests --- test/commands/login.test.ts | 6 +--- test/commands/logout.test.ts | 6 +--- test/commands/upload-folder.test.ts | 1 - test/commands/whoami.test.ts | 6 +--- test/services/auth.service.test.ts | 2 -- test/services/config.service.test.ts | 1 - test/services/crypto.service.test.ts | 6 +--- .../services/drive/drive-file.service.test.ts | 2 -- .../drive/drive-folder.service.test.ts | 2 -- test/services/keys.service.test.ts | 6 +--- .../services/network/download.service.test.ts | 6 +--- .../network/network-facade.service.test.ts | 6 +--- test/services/sdkmanager.service.test.ts | 6 +--- test/services/thumbnail.service.test.ts | 6 +--- test/services/usage.service.test.ts | 6 +--- test/services/validation.service.test.ts | 6 +--- test/utils/cli.utils.test.ts | 6 +--- test/utils/crypto.utils.test.ts | 6 +--- test/utils/network.utils.test.ts | 6 +--- test/utils/pm2.utils.test.ts | 6 +--- test/utils/stream.utils.test.ts | 6 +--- test/utils/thumbnail.utils.test.ts | 6 +--- test/utils/webdav.utils.test.ts | 6 +--- test/webdav/handlers/DELETE.handler.test.ts | 2 -- test/webdav/handlers/GET.handler.test.ts | 2 -- test/webdav/handlers/HEAD.handler.test.ts | 2 +- test/webdav/handlers/MKCOL.handler.test.ts | 1 - test/webdav/handlers/OPTIONS.handler.test.ts | 6 +--- test/webdav/handlers/PROPFIND.handler.test.ts | 5 ++- test/webdav/handlers/PUT.handler.test.ts | 9 ++--- .../middlewares/auth.middleware.test.ts | 6 +--- .../middlewares/errors.middleware.test.ts | 6 +--- .../middlewares/mkcol.middleware.test.ts | 6 +--- .../services/webdav-folder.service.test.ts | 1 - test/webdav/webdav-server.test.ts | 36 +++---------------- vitest.config.mjs | 1 + 36 files changed, 34 insertions(+), 165 deletions(-) diff --git a/test/commands/login.test.ts b/test/commands/login.test.ts index a4d1407c..c75736d1 100644 --- a/test/commands/login.test.ts +++ b/test/commands/login.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { ConfigService } from '../../src/services/config.service'; import { UserCredentialsFixture, UserLoginFixture } from '../fixtures/login.fixture'; import { fail } from 'node:assert'; @@ -7,10 +7,6 @@ import { AuthService } from '../../src/services/auth.service'; import { CLIUtils, NoFlagProvidedError } from '../../src/utils/cli.utils'; describe('Login Command', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When user logs in with non-interactive and no email, then it throws error', async () => { const getValueFromFlagsSpy = vi .spyOn(CLIUtils, 'getValueFromFlag') diff --git a/test/commands/logout.test.ts b/test/commands/logout.test.ts index af0b42bd..66d70017 100644 --- a/test/commands/logout.test.ts +++ b/test/commands/logout.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { ConfigService } from '../../src/services/config.service'; import { UserCredentialsFixture } from '../fixtures/login.fixture'; import Logout from '../../src/commands/logout'; import { AuthService } from '../../src/services/auth.service'; describe('Logout Command', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When user is logged out, then it returns false', async () => { const readUserSpy = vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue(undefined); const networkLogout = vi.spyOn(AuthService.instance, 'logout').mockRejectedValue(new Error()); diff --git a/test/commands/upload-folder.test.ts b/test/commands/upload-folder.test.ts index 2cb94223..54c4c98f 100644 --- a/test/commands/upload-folder.test.ts +++ b/test/commands/upload-folder.test.ts @@ -23,7 +23,6 @@ describe('Upload Folder Command', () => { }; beforeEach(() => { - vi.restoreAllMocks(); configReadUserSpy = vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue({ user: UserFixture, token: 'mock-token', diff --git a/test/commands/whoami.test.ts b/test/commands/whoami.test.ts index 1e6b1fb3..f9d31fcd 100644 --- a/test/commands/whoami.test.ts +++ b/test/commands/whoami.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { ConfigService } from '../../src/services/config.service'; import { UserCredentialsFixture } from '../fixtures/login.fixture'; import Whoami from '../../src/commands/whoami'; import { ValidationService } from '../../src/services/validation.service'; describe('Whoami Command', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When user is logged out, then it returns false', async () => { const readUserSpy = vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue(undefined); const clearUserSpy = vi.spyOn(ConfigService.instance, 'clearUser').mockRejectedValue(new Error()); diff --git a/test/services/auth.service.test.ts b/test/services/auth.service.test.ts index e6f320ef..5f95b0c1 100644 --- a/test/services/auth.service.test.ts +++ b/test/services/auth.service.test.ts @@ -19,8 +19,6 @@ import { paths } from '@internxt/sdk/dist/schema'; describe('Auth service', () => { beforeEach(() => { - vi.restoreAllMocks(); - vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue(UserCredentialsFixture); vi.spyOn(ConfigService.instance, 'saveUser').mockResolvedValue(undefined); }); diff --git a/test/services/config.service.test.ts b/test/services/config.service.test.ts index 170c3039..65851bb9 100644 --- a/test/services/config.service.test.ts +++ b/test/services/config.service.test.ts @@ -22,7 +22,6 @@ const env = Object.assign({}, process.env); describe('Config service', () => { beforeEach(() => { process.env = env; - vi.restoreAllMocks(); }); it('When an env property is requested, then the get method return its value', async () => { diff --git a/test/services/crypto.service.test.ts b/test/services/crypto.service.test.ts index fc083d4b..cf66355c 100644 --- a/test/services/crypto.service.test.ts +++ b/test/services/crypto.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import crypto from 'node:crypto'; import { ConfigService } from '../../src/services/config.service'; import { CryptoService } from '../../src/services/crypto.service'; @@ -7,10 +7,6 @@ import { Keys } from '@internxt/sdk'; import { KeysService } from '../../src/services/keys.service'; describe('Crypto service', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When text is encrypted using crypto secret env, then it can be decrypted back', () => { const envEndpoint: { key: keyof ConfigKeys; value: string } = { key: 'APP_CRYPTO_SECRET', diff --git a/test/services/drive/drive-file.service.test.ts b/test/services/drive/drive-file.service.test.ts index 557e4a51..c4bec013 100644 --- a/test/services/drive/drive-file.service.test.ts +++ b/test/services/drive/drive-file.service.test.ts @@ -12,8 +12,6 @@ describe('Drive file Service', () => { const sut = DriveFileService.instance; beforeEach(() => { - vi.restoreAllMocks(); - vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue(UserCredentialsFixture); vi.spyOn(ConfigService.instance, 'saveUser').mockResolvedValue(undefined); }); diff --git a/test/services/drive/drive-folder.service.test.ts b/test/services/drive/drive-folder.service.test.ts index 78d57110..7f99c639 100644 --- a/test/services/drive/drive-folder.service.test.ts +++ b/test/services/drive/drive-folder.service.test.ts @@ -13,8 +13,6 @@ describe('Drive folder Service', () => { const sut = DriveFolderService.instance; beforeEach(() => { - vi.restoreAllMocks(); - vi.spyOn(ConfigService.instance, 'readUser').mockResolvedValue(UserCredentialsFixture); vi.spyOn(ConfigService.instance, 'saveUser').mockResolvedValue(undefined); }); diff --git a/test/services/keys.service.test.ts b/test/services/keys.service.test.ts index 6e3f20a1..954cc18c 100644 --- a/test/services/keys.service.test.ts +++ b/test/services/keys.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import crypto from 'node:crypto'; import * as openpgp from 'openpgp'; import { KeysService } from '../../src/services/keys.service'; @@ -13,10 +13,6 @@ describe('Keys service', () => { salt: crypto.randomBytes(64).toString('hex'), }; - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When message is encrypted with private key & password, then it can be decrypted using same data', async () => { const plainPrivateKey = crypto.randomBytes(16).toString('hex'); const password = crypto.randomBytes(8).toString('hex'); diff --git a/test/services/network/download.service.test.ts b/test/services/network/download.service.test.ts index 8a74caf7..b39e0e2d 100644 --- a/test/services/network/download.service.test.ts +++ b/test/services/network/download.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { DownloadService } from '../../../src/services/network/download.service'; import { Readable } from 'node:stream'; import axios from 'axios'; @@ -6,10 +6,6 @@ import axios from 'axios'; describe('Download Service', () => { const sut = DownloadService.instance; - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When a file is downloaded, should return a ReadableStream', async () => { const fileContent = Buffer.from('file-content'); const readableContent = new Readable({ diff --git a/test/services/network/network-facade.service.test.ts b/test/services/network/network-facade.service.test.ts index 1aef275f..4e09266b 100644 --- a/test/services/network/network-facade.service.test.ts +++ b/test/services/network/network-facade.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { NetworkFacade } from '../../../src/services/network/network-facade.service'; import { SdkManager } from '../../../src/services/sdk-manager.service'; import path from 'node:path'; @@ -12,10 +12,6 @@ import { ConfigService } from '../../../src/services/config.service'; import { UserFixture } from '../../fixtures/auth.fixture'; describe('Network Facade Service', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - const getNetworkMock = () => { return SdkManager.instance.getNetwork({ user: 'user', diff --git a/test/services/sdkmanager.service.test.ts b/test/services/sdkmanager.service.test.ts index 809640d5..aefbb4ef 100644 --- a/test/services/sdkmanager.service.test.ts +++ b/test/services/sdkmanager.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import crypto from 'node:crypto'; import { Auth, Drive, Network } from '@internxt/sdk'; import { Trash } from '@internxt/sdk/dist/drive'; @@ -16,10 +16,6 @@ describe('SDKManager service', () => { clientVersion: crypto.randomBytes(16).toString('hex'), }; - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When SDKManager ApiSecurityFixture is requested, then it is returned from static property', () => { const ApiSecurityFixture: SdkManagerApiSecurity = { token: crypto.randomBytes(16).toString('hex'), diff --git a/test/services/thumbnail.service.test.ts b/test/services/thumbnail.service.test.ts index d3be973a..b509559b 100644 --- a/test/services/thumbnail.service.test.ts +++ b/test/services/thumbnail.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { BufferStream } from '../../src/utils/stream.utils'; import { ThumbnailService } from '../../src/services/thumbnail.service'; import path from 'node:path'; @@ -7,10 +7,6 @@ import { Readable } from 'node:stream'; describe('Thumbnail Service tests', () => { const testFilePath = path.join(process.cwd(), 'test/fixtures/test-content.fixture.txt'); - beforeEach(() => { - vi.restoreAllMocks(); - }); - describe('createFileStreamWithBuffer', () => { it('should create BufferStream and pipe stream when file type is thumbnailable', () => { const result = ThumbnailService.instance.createFileStreamWithBuffer({ path: testFilePath, fileType: 'png' }); diff --git a/test/services/usage.service.test.ts b/test/services/usage.service.test.ts index 4a306fe9..230e1473 100644 --- a/test/services/usage.service.test.ts +++ b/test/services/usage.service.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { randomInt, randomUUID } from 'node:crypto'; import { Storage } from '@internxt/sdk/dist/drive'; import { UsageService } from '../../src/services/usage.service'; import { SdkManager } from '../../src/services/sdk-manager.service'; describe('Usage Service', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When getting user usage, it should return the total usage', async () => { const drive = randomInt(2000000000); const backups = randomInt(2000000000); diff --git a/test/services/validation.service.test.ts b/test/services/validation.service.test.ts index 3be79192..ce4bf38e 100644 --- a/test/services/validation.service.test.ts +++ b/test/services/validation.service.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { auth } from '@internxt/lib'; import { randomInt, randomUUID } from 'node:crypto'; import { UserFixture } from '../fixtures/auth.fixture'; import { ValidationService } from '../../src/services/validation.service'; describe('Validation Service', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When email is not valid, then validation service validates it as expected', () => { vi.spyOn(auth, 'isValidEmail').mockReturnValue(false); const isValidEmail = ValidationService.instance.validateEmail(UserFixture.email); diff --git a/test/utils/cli.utils.test.ts b/test/utils/cli.utils.test.ts index ff344f62..b345c6b3 100644 --- a/test/utils/cli.utils.test.ts +++ b/test/utils/cli.utils.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect, vi, beforeEach, afterEach, MockInstance } from 'vitest'; +import { describe, it, expect, vi, beforeEach, MockInstance } from 'vitest'; import { ux } from '@oclif/core'; import { CLIUtils } from '../../src/utils/cli.utils'; import { Direction } from 'node:readline'; @@ -65,10 +65,6 @@ describe('CliUtils', () => { vi.spyOn(ConfigService.instance, 'get').mockReturnValue(BRIDGE_URL); }); - afterEach(() => { - vi.restoreAllMocks(); - }); - describe('clearPreviousLine', () => { it('should move cursor up and clear line when jsonFlag is false', () => { CLIUtils.clearPreviousLine(false); diff --git a/test/utils/crypto.utils.test.ts b/test/utils/crypto.utils.test.ts index fd9eb07f..e5570ab5 100644 --- a/test/utils/crypto.utils.test.ts +++ b/test/utils/crypto.utils.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import crypto from 'node:crypto'; import { CryptoUtils } from '../../src/utils/crypto.utils'; import { ConfigService } from '../../src/services/config.service'; @@ -11,10 +11,6 @@ describe('Crypto utils', () => { salt: crypto.randomBytes(64).toString('hex'), }; - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When Magic IV or Magic Salt are missing should throw an error', () => { try { CryptoUtils.getAesInit(); diff --git a/test/utils/network.utils.test.ts b/test/utils/network.utils.test.ts index 5e0d8da4..e5c86d02 100644 --- a/test/utils/network.utils.test.ts +++ b/test/utils/network.utils.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { randomBytes, randomInt, X509Certificate } from 'node:crypto'; import selfsigned, { GenerateResult } from 'selfsigned'; import { readFile, stat, writeFile } from 'node:fs/promises'; @@ -30,10 +30,6 @@ vi.mock('node:crypto', async () => { const mock509Certificate = vi.mocked(X509Certificate); describe('Network utils', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When obtaining auth credentials, should return the password as a SHA256 hash', async () => { const result = NetworkUtils.getAuthFromCredentials({ user: 'test', diff --git a/test/utils/pm2.utils.test.ts b/test/utils/pm2.utils.test.ts index 9717ed3f..8001c280 100644 --- a/test/utils/pm2.utils.test.ts +++ b/test/utils/pm2.utils.test.ts @@ -1,13 +1,9 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import pm2 from 'pm2'; import { PM2Utils } from '../../src/utils/pm2.utils'; import { fail } from 'node:assert'; describe('PM2 utils', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When connecting, should connect to PM2 daemon', async () => { // @ts-expect-error - The error callback does not include an error const connectStub = vi.spyOn(pm2, 'connect').mockImplementation((callback) => callback()); diff --git a/test/utils/stream.utils.test.ts b/test/utils/stream.utils.test.ts index 1e21dfcf..03f5a352 100644 --- a/test/utils/stream.utils.test.ts +++ b/test/utils/stream.utils.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { StreamUtils } from '../../src/utils/stream.utils'; import { createReadStream, readFileSync, WriteStream } from 'node:fs'; import path from 'node:path'; @@ -6,10 +6,6 @@ import path from 'node:path'; describe('Stream utils', () => { const fileWithContent = path.join(process.cwd(), 'test/fixtures/test-content.fixture.txt'); - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When a ReadStream is given, should return a ReadableStream', async () => { const content = readFileSync(fileWithContent, 'utf-8'); diff --git a/test/utils/thumbnail.utils.test.ts b/test/utils/thumbnail.utils.test.ts index d8a21311..b8566d57 100644 --- a/test/utils/thumbnail.utils.test.ts +++ b/test/utils/thumbnail.utils.test.ts @@ -1,11 +1,7 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { ThumbnailUtils } from '../../src/utils/thumbnail.utils'; describe('Thumbnail Utils tests', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - describe('isFileThumbnailable', () => { it('should return true for valid image extensions', () => { expect(ThumbnailUtils.isFileThumbnailable('jpg')).toBe(true); diff --git a/test/utils/webdav.utils.test.ts b/test/utils/webdav.utils.test.ts index 66ae31ec..a22de306 100644 --- a/test/utils/webdav.utils.test.ts +++ b/test/utils/webdav.utils.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { WebDavUtils } from '../../src/utils/webdav.utils'; import { WebDavRequestedResource } from '../../src/types/webdav.types'; import { newFileItem, newFolderItem } from '../fixtures/drive.fixture'; @@ -7,10 +7,6 @@ import { DriveFileService } from '../../src/services/drive/drive-file.service'; import AppError from '@internxt/sdk/dist/shared/types/errors'; describe('Webdav utils', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - describe('joinURL', () => { it('When a list of path components are given, then it should generate a correct href', () => { const href = WebDavUtils.joinURL('/path', 'to', 'file'); diff --git a/test/webdav/handlers/DELETE.handler.test.ts b/test/webdav/handlers/DELETE.handler.test.ts index 7b4d207d..aa27dc3d 100644 --- a/test/webdav/handlers/DELETE.handler.test.ts +++ b/test/webdav/handlers/DELETE.handler.test.ts @@ -17,8 +17,6 @@ import { UserCredentialsFixture } from '../../fixtures/login.fixture'; describe('DELETE request handler', () => { beforeEach(() => { - vi.restoreAllMocks(); - vi.spyOn(AuthService.instance, 'getAuthDetails').mockResolvedValue(UserCredentialsFixture); }); diff --git a/test/webdav/handlers/GET.handler.test.ts b/test/webdav/handlers/GET.handler.test.ts index 8f9a1ec8..025a8a4d 100644 --- a/test/webdav/handlers/GET.handler.test.ts +++ b/test/webdav/handlers/GET.handler.test.ts @@ -28,8 +28,6 @@ describe('GET request handler', () => { const networkOptions: NetworkOptions = getNetworkOptionsMock({ networkFacade }); beforeEach(() => { - vi.restoreAllMocks(); - vi.spyOn(CLIUtils, 'prepareNetwork').mockResolvedValue(networkOptions); sut = new GETRequestHandler(); diff --git a/test/webdav/handlers/HEAD.handler.test.ts b/test/webdav/handlers/HEAD.handler.test.ts index 471d9af8..3d681ba5 100644 --- a/test/webdav/handlers/HEAD.handler.test.ts +++ b/test/webdav/handlers/HEAD.handler.test.ts @@ -14,9 +14,9 @@ import { randomInt } from 'crypto'; describe('HEAD request handler', () => { let sut: HEADRequestHandler; + beforeEach(() => { sut = new HEADRequestHandler(); - vi.restoreAllMocks(); }); it('When a folder is requested, it should reply with a 200', async () => { diff --git a/test/webdav/handlers/MKCOL.handler.test.ts b/test/webdav/handlers/MKCOL.handler.test.ts index cf5e1613..35e9d541 100644 --- a/test/webdav/handlers/MKCOL.handler.test.ts +++ b/test/webdav/handlers/MKCOL.handler.test.ts @@ -17,7 +17,6 @@ describe('MKCOL request handler', () => { let sut: MKCOLRequestHandler; beforeEach(() => { - vi.restoreAllMocks(); sut = new MKCOLRequestHandler(); vi.spyOn(AuthService.instance, 'getAuthDetails').mockResolvedValue(UserCredentialsFixture); diff --git a/test/webdav/handlers/OPTIONS.handler.test.ts b/test/webdav/handlers/OPTIONS.handler.test.ts index 17e51d4c..2fd47875 100644 --- a/test/webdav/handlers/OPTIONS.handler.test.ts +++ b/test/webdav/handlers/OPTIONS.handler.test.ts @@ -1,13 +1,9 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { OPTIONSRequestHandler } from '../../../src/webdav/handlers/OPTIONS.handler'; import { UserSettingsFixture } from '../../fixtures/auth.fixture'; import { createWebDavRequestFixture, createWebDavResponseFixture } from '../../fixtures/webdav.fixture'; describe('OPTIONS request handler', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When the root folder is requested, it should return all of the server allowed methods', async () => { const requestHandler = new OPTIONSRequestHandler(); diff --git a/test/webdav/handlers/PROPFIND.handler.test.ts b/test/webdav/handlers/PROPFIND.handler.test.ts index 6be0ce82..cae9c701 100644 --- a/test/webdav/handlers/PROPFIND.handler.test.ts +++ b/test/webdav/handlers/PROPFIND.handler.test.ts @@ -32,7 +32,6 @@ describe('PROPFIND request handler', () => { beforeEach(() => { sut = new PROPFINDRequestHandler(); - vi.restoreAllMocks(); }); it('When the root folder exists and there is no content, then it should return the correct XML', async () => { @@ -52,7 +51,7 @@ describe('PROPFIND request handler', () => { }); const folderFixture = newFolderItem({ - id: Number.parseInt(UserSettingsFixture.rootFolderId), + uuid: UserSettingsFixture.rootFolderId, }); const usageFixture = crypto.randomInt(2000000000); const spaceLimitFixture = crypto.randomInt(2000000000); @@ -98,7 +97,7 @@ describe('PROPFIND request handler', () => { }); const folderFixture = newFolderItem({ - id: Number.parseInt(UserSettingsFixture.rootFolderId), + uuid: UserSettingsFixture.rootFolderId, }); const paginatedFolder1 = newPaginatedFolder({ plainName: 'folder_1', diff --git a/test/webdav/handlers/PUT.handler.test.ts b/test/webdav/handlers/PUT.handler.test.ts index 160e1e2b..0d769835 100644 --- a/test/webdav/handlers/PUT.handler.test.ts +++ b/test/webdav/handlers/PUT.handler.test.ts @@ -23,8 +23,6 @@ describe('PUT request handler', () => { let sut: PUTRequestHandler; beforeEach(() => { - vi.restoreAllMocks(); - networkFacade = getNetworkFacadeMock(); vi.spyOn(CLIUtils, 'prepareNetwork').mockResolvedValue(getNetworkOptionsMock({ networkFacade })); @@ -39,7 +37,6 @@ describe('PUT request handler', () => { }); const folderFixture = newFolderItem({ name: requestedParentFolderResource.name }); const fileFixture = newDriveFile({ - folderId: folderFixture.id, folderUuid: folderFixture.uuid, size: 0, fileId: undefined, @@ -92,7 +89,7 @@ describe('PUT request handler', () => { folderName: '', }); const folderFixture = newFolderItem({ name: requestedParentFolderResource.name }); - const fileFixture = newDriveFile({ folderId: folderFixture.id, folderUuid: folderFixture.uuid }); + const fileFixture = newDriveFile({ folderUuid: folderFixture.uuid }); const request = createWebDavRequestFixture({ method: 'PUT', @@ -146,7 +143,7 @@ describe('PUT request handler', () => { folderName: '', }); const folderFixture = newFolderItem({ name: requestedParentFolderResource.name }); - const fileFixture = newDriveFile({ folderId: folderFixture.id, folderUuid: folderFixture.uuid }); + const fileFixture = newDriveFile({ folderUuid: folderFixture.uuid }); const request = createWebDavRequestFixture({ method: 'PUT', @@ -202,7 +199,7 @@ describe('PUT request handler', () => { folderName: '', }); const folderFixture = newFolderItem({ name: requestedParentFolderResource.name }); - const fileFixture = newDriveFile({ folderId: folderFixture.id, folderUuid: folderFixture.uuid }); + const fileFixture = newDriveFile({ folderUuid: folderFixture.uuid }); const request = createWebDavRequestFixture({ method: 'PUT', diff --git a/test/webdav/middlewares/auth.middleware.test.ts b/test/webdav/middlewares/auth.middleware.test.ts index 613eff86..b2f475d6 100644 --- a/test/webdav/middlewares/auth.middleware.test.ts +++ b/test/webdav/middlewares/auth.middleware.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { AuthMiddleware } from '../../../src/webdav/middewares/auth.middleware'; import { createWebDavRequestFixture, createWebDavResponseFixture } from '../../fixtures/webdav.fixture'; import { UserCredentialsFixture } from '../../fixtures/login.fixture'; @@ -7,10 +7,6 @@ import { MissingCredentialsError } from '../../../src/types/command.types'; import { XMLUtils } from '../../../src/utils/xml.utils'; describe('Auth middleware', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When the user is not authenticated, then it should return 401', async () => { const req = createWebDavRequestFixture({}); const res = createWebDavResponseFixture({ diff --git a/test/webdav/middlewares/errors.middleware.test.ts b/test/webdav/middlewares/errors.middleware.test.ts index 2edc5d37..41924107 100644 --- a/test/webdav/middlewares/errors.middleware.test.ts +++ b/test/webdav/middlewares/errors.middleware.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { ErrorHandlingMiddleware } from '../../../src/webdav/middewares/errors.middleware'; import { createWebDavRequestFixture, createWebDavResponseFixture } from '../../fixtures/webdav.fixture'; import { BadRequestError, NotFoundError, NotImplementedError } from '../../../src/utils/errors.utils'; import { XMLUtils } from '../../../src/utils/xml.utils'; describe('Error handling middleware', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When a not found error is received, should respond with a 404', () => { const errorMessage = 'Item not found'; const error = new NotFoundError('Item not found'); diff --git a/test/webdav/middlewares/mkcol.middleware.test.ts b/test/webdav/middlewares/mkcol.middleware.test.ts index 282ad3ab..721b6f89 100644 --- a/test/webdav/middlewares/mkcol.middleware.test.ts +++ b/test/webdav/middlewares/mkcol.middleware.test.ts @@ -1,14 +1,10 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { createWebDavRequestFixture, createWebDavResponseFixture } from '../../fixtures/webdav.fixture'; import { MkcolMiddleware } from '../../../src/webdav/middewares/mkcol.middleware'; import { fail } from 'node:assert'; import { UnsupportedMediaTypeError } from '../../../src/utils/errors.utils'; describe('MKCOL middleware', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When MKCOL content is application/xml, then it should call next', () => { const req = createWebDavRequestFixture({ method: 'MKCOL', diff --git a/test/webdav/services/webdav-folder.service.test.ts b/test/webdav/services/webdav-folder.service.test.ts index 648a14d4..09a99dac 100644 --- a/test/webdav/services/webdav-folder.service.test.ts +++ b/test/webdav/services/webdav-folder.service.test.ts @@ -32,7 +32,6 @@ describe('WebDavFolderService', () => { }; beforeEach(() => { - vi.restoreAllMocks(); driveFolderService = DriveFolderService.instance; configService = ConfigService.instance; sut = WebDavFolderService.instance; diff --git a/test/webdav/webdav-server.test.ts b/test/webdav/webdav-server.test.ts index 806ad6cf..6c749bbb 100644 --- a/test/webdav/webdav-server.test.ts +++ b/test/webdav/webdav-server.test.ts @@ -1,31 +1,22 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import express from 'express'; import { randomBytes, randomInt } from 'node:crypto'; import http from 'http'; import https from 'https'; import { ConfigService } from '../../src/services/config.service'; -import { DriveFolderService } from '../../src/services/drive/drive-folder.service'; import { WebDavServer } from '../../src/webdav/webdav-server'; -import { DriveFileService } from '../../src/services/drive/drive-file.service'; -import { DownloadService } from '../../src/services/network/download.service'; -import { AuthService } from '../../src/services/auth.service'; -import { CryptoService } from '../../src/services/crypto.service'; import { NetworkUtils } from '../../src/utils/network.utils'; -import { TrashService } from '../../src/services/drive/trash.service'; import { WebdavConfig } from '../../src/types/command.types'; import { UserCredentialsFixture } from '../fixtures/login.fixture'; describe('WebDav server', () => { - beforeEach(() => { - vi.restoreAllMocks(); - }); - it('When the WebDav server is started with https, it should generate self-signed certificates', async () => { const webdavConfig: WebdavConfig = { host: '127.0.0.1', port: randomInt(65535).toString(), protocol: 'https', timeoutMinutes: randomInt(900), + createFullPath: true, }; const sslSelfSigned = { private: randomBytes(8).toString('hex'), @@ -50,16 +41,7 @@ describe('WebDav server', () => { }); const app = express(); - const server = new WebDavServer( - app, - ConfigService.instance, - DriveFileService.instance, - DriveFolderService.instance, - DownloadService.instance, - AuthService.instance, - CryptoService.instance, - TrashService.instance, - ); + const server = new WebDavServer(app); await server.start(); expect(createHTTPSServerStub).toHaveBeenCalledOnce(); @@ -73,6 +55,7 @@ describe('WebDav server', () => { port: randomInt(65535).toString(), protocol: 'http', timeoutMinutes: randomInt(900), + createFullPath: true, }; vi.spyOn(ConfigService.instance, 'readWebdavConfig').mockResolvedValue(webdavConfig); @@ -87,16 +70,7 @@ describe('WebDav server', () => { }); const app = express(); - const server = new WebDavServer( - app, - ConfigService.instance, - DriveFileService.instance, - DriveFolderService.instance, - DownloadService.instance, - AuthService.instance, - CryptoService.instance, - TrashService.instance, - ); + const server = new WebDavServer(app); await server.start(); expect(createHTTPServerStub).toHaveBeenCalledOnce(); diff --git a/vitest.config.mjs b/vitest.config.mjs index dc973f24..be2d2d32 100644 --- a/vitest.config.mjs +++ b/vitest.config.mjs @@ -16,6 +16,7 @@ export default defineConfig({ ...coverageConfigDefaults.exclude ], }, + restoreMocks: true, setupFiles: ['dotenv/config', './test/vitest.setup.ts'] } }); From a6014c2742926fa5f2b4558642639b0db95a7f48 Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 20:39:48 +0100 Subject: [PATCH 38/43] fix: refine path trimming logic in getFolderByPathGeneric method --- src/utils/database.utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/database.utils.ts b/src/utils/database.utils.ts index 6c9543ff..cb676024 100644 --- a/src/utils/database.utils.ts +++ b/src/utils/database.utils.ts @@ -13,7 +13,7 @@ export class DatabaseUtils { getByParentAndName: (parentUuid: string, name: string) => Promise<{ uuid: string } | null | undefined>; }): Promise => { // Remove leading/trailing slashes - path = path.replace(/^\/+|\/+$/g, ''); + path = path.replace(/^\//, '').replace(/\/$/, ''); // Base case: If the path is empty, return the folder's found uuid if (path.trim().length === 0) { From 09825e76879491e123500ac5a9595e6656b4f2ee Mon Sep 17 00:00:00 2001 From: larryrider Date: Thu, 26 Feb 2026 20:45:24 +0100 Subject: [PATCH 39/43] fix: sonarcloud maintainability issue --- src/services/database/drive-file/drive-file.repository.ts | 2 +- src/services/database/drive-folder/drive-folder.repository.ts | 2 +- src/utils/path.utils.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/services/database/drive-file/drive-file.repository.ts b/src/services/database/drive-file/drive-file.repository.ts index c3aaca48..6768e190 100644 --- a/src/services/database/drive-file/drive-file.repository.ts +++ b/src/services/database/drive-file/drive-file.repository.ts @@ -8,7 +8,7 @@ import { DriveFileModel } from './drive-file.model'; export class FileRepository { public static readonly instance = new FileRepository(); - private fileRepository = DatabaseService.instance.dataSource.getRepository(DriveFileModel); + private readonly fileRepository = DatabaseService.instance.dataSource.getRepository(DriveFileModel); public createOrUpdate = async (files: DriveFileModel[]): Promise => { try { diff --git a/src/services/database/drive-folder/drive-folder.repository.ts b/src/services/database/drive-folder/drive-folder.repository.ts index aea32818..7f83a351 100644 --- a/src/services/database/drive-folder/drive-folder.repository.ts +++ b/src/services/database/drive-folder/drive-folder.repository.ts @@ -7,7 +7,7 @@ import { DatabaseUtils } from '../../../utils/database.utils'; export class FolderRepository { public static readonly instance = new FolderRepository(); - private folderRepository = DatabaseService.instance.dataSource.getRepository(DriveFolderModel); + private readonly folderRepository = DatabaseService.instance.dataSource.getRepository(DriveFolderModel); public getByUuid = async (uuid: string): Promise => { try { diff --git a/src/utils/path.utils.ts b/src/utils/path.utils.ts index fc3b00bd..9802f7c6 100644 --- a/src/utils/path.utils.ts +++ b/src/utils/path.utils.ts @@ -1,4 +1,4 @@ -import path from 'path'; +import path from 'node:path'; export class PathUtils { static getPathFileData(filePath: string): { folderPath: string; fileName: string; fileType: string | null } { From 78271b2a03d6df14b2498809097508a9efa9a1b8 Mon Sep 17 00:00:00 2001 From: larryrider Date: Fri, 27 Feb 2026 09:17:28 +0100 Subject: [PATCH 40/43] fix: add missing awaits --- src/services/drive/drive-file.service.ts | 8 ++-- src/services/drive/drive-folder.service.ts | 51 +++++++++++----------- 2 files changed, 29 insertions(+), 30 deletions(-) diff --git a/src/services/drive/drive-file.service.ts b/src/services/drive/drive-file.service.ts index ce4d3986..d63f0c17 100644 --- a/src/services/drive/drive-file.service.ts +++ b/src/services/drive/drive-file.service.ts @@ -30,7 +30,7 @@ export class DriveFileService { creationTime: new Date(driveFile.creationTime ?? driveFile.createdAt), modificationTime: new Date(driveFile.modificationTime ?? driveFile.updatedAt), }; - FileRepository.instance.createOrUpdate([driveFileItem]); + await FileRepository.instance.createOrUpdate([driveFileItem]); return driveFileItem; }; @@ -69,7 +69,7 @@ export class DriveFileService { const fileMetadata = await getFileMetadata; const driveFileItem = DriveUtils.driveFileMetaToItem(fileMetadata); - FileRepository.instance.createOrUpdate([driveFileItem]); + await FileRepository.instance.createOrUpdate([driveFileItem]); return driveFileItem; }; @@ -79,7 +79,7 @@ export class DriveFileService { const fileMeta = await storageClient.moveFileByUuid(uuid, payload); const driveFileItem = DriveUtils.driveFileMetaToItem(fileMeta); - FileRepository.instance.createOrUpdate([driveFileItem]); + await FileRepository.instance.createOrUpdate([driveFileItem]); return fileMeta; }; @@ -90,7 +90,7 @@ export class DriveFileService { ): Promise => { const storageClient = SdkManager.instance.getStorage(); await storageClient.updateFileMetaByUUID(fileUuid, payload); - FileRepository.instance.updateByUuid(fileUuid, { name: payload.plainName, type: payload.type }); + await FileRepository.instance.updateByUuid(fileUuid, { name: payload.plainName, type: payload.type }); }; public getByParentUuidAndName = async ( diff --git a/src/services/drive/drive-folder.service.ts b/src/services/drive/drive-folder.service.ts index f1902c0d..e0b2237f 100644 --- a/src/services/drive/drive-folder.service.ts +++ b/src/services/drive/drive-folder.service.ts @@ -21,7 +21,7 @@ export class DriveFolderService { const storageClient = SdkManager.instance.getStorage(); const folderMeta = await storageClient.getFolderMeta(uuid); const folderItem = DriveUtils.driveFolderMetaToItem(folderMeta); - FolderRepository.instance.createOrUpdate([folderItem]); + await FolderRepository.instance.createOrUpdate([folderItem]); return folderItem; }; @@ -29,7 +29,7 @@ export class DriveFolderService { const storageClient = SdkManager.instance.getStorage(); const folderMeta = await storageClient.getFolderMetaById(id); const folderItem = DriveUtils.driveFolderMetaToItem(folderMeta); - FolderRepository.instance.createOrUpdate([folderItem]); + await FolderRepository.instance.createOrUpdate([folderItem]); return folderItem; }; @@ -83,7 +83,7 @@ export class DriveFolderService { folders = (await personalFolderContentPromise).folders; } - FolderRepository.instance.createOrUpdate( + await FolderRepository.instance.createOrUpdate( folders.map( (folder) => new DriveFolder({ @@ -130,28 +130,27 @@ export class DriveFolderService { files = (await folderContentPromise).files; } - FileRepository.instance.deleteByParentUuid(folderUuid); - FileRepository.instance.createOrUpdate( - files.map( - (file) => - new DriveFile({ - uuid: file.uuid, - name: file.plainName, - type: file.type, - folderUuid: file.folderUuid, - status: FileStatus.EXISTS, - bucket: file.bucket, - size: Number(file.size ?? 0), - fileId: file.fileId, - createdAt: new Date(file.createdAt), - updatedAt: new Date(file.updatedAt), - creationTime: new Date(file.creationTime ?? file.createdAt), - modificationTime: new Date(file.modificationTime ?? file.updatedAt), - }), - ), - ); - if (files.length > 0) { + await FileRepository.instance.deleteByParentUuid(folderUuid); + await FileRepository.instance.createOrUpdate( + files.map( + (file) => + new DriveFile({ + uuid: file.uuid, + name: file.plainName, + type: file.type, + folderUuid: file.folderUuid, + status: FileStatus.EXISTS, + bucket: file.bucket, + size: Number(file.size ?? 0), + fileId: file.fileId, + createdAt: new Date(file.createdAt), + updatedAt: new Date(file.updatedAt), + creationTime: new Date(file.creationTime ?? file.createdAt), + modificationTime: new Date(file.modificationTime ?? file.updatedAt), + }), + ), + ); return files.concat(await this.getAllSubfiles(currentWorkspace, folderUuid, offset + files.length)); } else { return files; @@ -165,7 +164,7 @@ export class DriveFolderService { const storageClient = SdkManager.instance.getStorage(); const folderMeta = await storageClient.moveFolderByUuid(uuid, payload); const folderItem = DriveUtils.driveFolderMetaToItem(folderMeta); - FolderRepository.instance.createOrUpdate([folderItem]); + await FolderRepository.instance.createOrUpdate([folderItem]); return folderMeta; }; @@ -197,7 +196,7 @@ export class DriveFolderService { public renameFolder = async (payload: { folderUuid: string; name: string }): Promise => { const storageClient = SdkManager.instance.getStorage(); await storageClient.updateFolderNameWithUUID(payload); - FolderRepository.instance.updateByUuid(payload.folderUuid, { name: payload.name }); + await FolderRepository.instance.updateByUuid(payload.folderUuid, { name: payload.name }); }; public getByParentUuidAndName = async (parentUuid: string, name: string): Promise => { From 5e26b8753dbb5bf6c824467987324edda22bc689 Mon Sep 17 00:00:00 2001 From: larryrider Date: Fri, 27 Feb 2026 09:39:32 +0100 Subject: [PATCH 41/43] fix: update workspace command descriptions to include WebDAV context --- src/commands/workspaces-unset.ts | 2 +- src/commands/workspaces-use.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/workspaces-unset.ts b/src/commands/workspaces-unset.ts index 285e67b9..468383f4 100644 --- a/src/commands/workspaces-unset.ts +++ b/src/commands/workspaces-unset.ts @@ -8,7 +8,7 @@ export default class WorkspacesUnset extends Command { static readonly args = {}; static readonly description = 'Unset the active workspace context for the current user session. ' + - 'Once a workspace is unset, all subsequent commands (list, upload, download, etc.) ' + + 'Once a workspace is unset, WebDAV and all of the subsequent CLI commands ' + 'will operate within the personal drive space until it is changed or set again.'; static readonly aliases = ['workspaces:unset']; static readonly examples = ['<%= config.bin %> <%= command.id %>']; diff --git a/src/commands/workspaces-use.ts b/src/commands/workspaces-use.ts index a6a5fed8..66de3091 100644 --- a/src/commands/workspaces-use.ts +++ b/src/commands/workspaces-use.ts @@ -12,7 +12,7 @@ export default class WorkspacesUse extends Command { static readonly args = {}; static readonly description = 'Set the active workspace context for the current user session. ' + - 'Once a workspace is selected, all subsequent commands (list, upload, download, etc.) ' + + 'Once a workspace is selected, WebDAV and all of the subsequent CLI commands ' + 'will operate within that workspace until it is changed or unset.'; static readonly aliases = ['workspaces:use']; static readonly examples = ['<%= config.bin %> <%= command.id %>']; @@ -75,7 +75,7 @@ export default class WorkspacesUse extends Command { }); const message = - `Workspace ${workspaceUuid} selected successfully. Now all drive commands (list, upload, download, etc.) ` + + `Workspace ${workspaceUuid} selected successfully. Now WebDAV and all of the CLI commands ` + 'will operate within this workspace until it is changed or unset.'; CLIUtils.success(this.log.bind(this), message); From 51d45cc988a50fec65969bc15aa05672a1f0df56 Mon Sep 17 00:00:00 2001 From: larryrider Date: Fri, 27 Feb 2026 10:15:13 +0100 Subject: [PATCH 42/43] tests: add clearMocks default property --- .../local-filesystem/local-filesystem.service.test.ts | 1 - test/services/network/upload/upload-facade.service.test.ts | 1 - test/services/network/upload/upload-file.service.test.ts | 1 - test/services/network/upload/upload-folder.service.test.ts | 1 - test/utils/cli.utils.test.ts | 1 - test/utils/errors.utils.test.ts | 6 +----- test/webdav/middlewares/request-logger.middleware.test.ts | 6 +----- vitest.config.mjs | 1 + 8 files changed, 3 insertions(+), 15 deletions(-) diff --git a/test/services/local-filesystem/local-filesystem.service.test.ts b/test/services/local-filesystem/local-filesystem.service.test.ts index 9e03cd3f..509cef4a 100644 --- a/test/services/local-filesystem/local-filesystem.service.test.ts +++ b/test/services/local-filesystem/local-filesystem.service.test.ts @@ -32,7 +32,6 @@ describe('Local Filesystem Service', () => { }) as unknown as Dirent; beforeEach(() => { - vi.clearAllMocks(); service = LocalFilesystemService.instance; mockReaddir.mockResolvedValue([]); }); diff --git a/test/services/network/upload/upload-facade.service.test.ts b/test/services/network/upload/upload-facade.service.test.ts index 76a86d0b..020e61b8 100644 --- a/test/services/network/upload/upload-facade.service.test.ts +++ b/test/services/network/upload/upload-facade.service.test.ts @@ -21,7 +21,6 @@ describe('UploadFacade', () => { const folderMap = new Map([[folderName, 'folder-uuid-123']]); beforeEach(() => { - vi.clearAllMocks(); sut = UploadFacade.instance; vi.spyOn(LocalFilesystemService.instance, 'scanLocalDirectory').mockResolvedValue({ folders: [createFileSystemNodeFixture({ type: 'folder', name: folderName, relativePath: folderName })], diff --git a/test/services/network/upload/upload-file.service.test.ts b/test/services/network/upload/upload-file.service.test.ts index adda9f37..5828e312 100644 --- a/test/services/network/upload/upload-file.service.test.ts +++ b/test/services/network/upload/upload-file.service.test.ts @@ -36,7 +36,6 @@ describe('UploadFileService', () => { } as unknown as NetworkFacade; beforeEach(() => { - vi.clearAllMocks(); sut = UploadFileService.instance; vi.mocked(stat).mockResolvedValue(createMockStats(1024) as Awaited>); vi.mocked(createReadStream).mockReturnValue(createMockReadStream() as ReturnType); diff --git a/test/services/network/upload/upload-folder.service.test.ts b/test/services/network/upload/upload-folder.service.test.ts index b070c6c8..6f91b85b 100644 --- a/test/services/network/upload/upload-folder.service.test.ts +++ b/test/services/network/upload/upload-folder.service.test.ts @@ -10,7 +10,6 @@ describe('UploadFolderService', () => { let sut: UploadFolderService; beforeEach(() => { - vi.clearAllMocks(); sut = UploadFolderService.instance; vi.spyOn(DriveFolderService.instance, 'createFolder').mockReturnValue([ Promise.resolve({ uuid: 'mock-folder-uuid' }), diff --git a/test/utils/cli.utils.test.ts b/test/utils/cli.utils.test.ts index b345c6b3..705a60ad 100644 --- a/test/utils/cli.utils.test.ts +++ b/test/utils/cli.utils.test.ts @@ -48,7 +48,6 @@ describe('CliUtils', () => { const mockAppDetails = {} as ReturnType; beforeEach(() => { - vi.clearAllMocks(); process.stdout.write = vi.fn(); process.stdout.clearLine = vi.fn(); stdoutWrite = vi.spyOn(process.stdout, 'write').mockImplementation(() => true); diff --git a/test/utils/errors.utils.test.ts b/test/utils/errors.utils.test.ts index 2fa5140c..44175372 100644 --- a/test/utils/errors.utils.test.ts +++ b/test/utils/errors.utils.test.ts @@ -1,12 +1,8 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { ErrorUtils } from '../../src/utils/errors.utils'; import { logger } from '../../src/utils/logger.utils'; describe('Errors Utils', () => { - beforeEach(() => { - vi.clearAllMocks(); - }); - it('When reporting an error, should log with the expected message and properties', () => { const error = new Error('Test Error'); const props = { key: 'value' }; diff --git a/test/webdav/middlewares/request-logger.middleware.test.ts b/test/webdav/middlewares/request-logger.middleware.test.ts index a3a58063..b7e0dbf0 100644 --- a/test/webdav/middlewares/request-logger.middleware.test.ts +++ b/test/webdav/middlewares/request-logger.middleware.test.ts @@ -1,13 +1,9 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { webdavLogger } from '../../../src/utils/logger.utils'; import { RequestLoggerMiddleware } from '../../../src/webdav/middewares/request-logger.middleware'; import { createWebDavRequestFixture, createWebDavResponseFixture } from '../../fixtures/webdav.fixture'; describe('Request logger middleware', () => { - beforeEach(() => { - vi.clearAllMocks(); - }); - it('When a request is received, should log only the specified methods', () => { const req = createWebDavRequestFixture({ method: 'PROPFIND', diff --git a/vitest.config.mjs b/vitest.config.mjs index be2d2d32..aced18cf 100644 --- a/vitest.config.mjs +++ b/vitest.config.mjs @@ -17,6 +17,7 @@ export default defineConfig({ ], }, restoreMocks: true, + clearMocks: true, setupFiles: ['dotenv/config', './test/vitest.setup.ts'] } }); From 57c07d94f475cf06cde8445b0f0c0971051a55cd Mon Sep 17 00:00:00 2001 From: larryrider Date: Fri, 27 Feb 2026 13:26:49 +0100 Subject: [PATCH 43/43] fix: replace void with await for thumbnail uploads --- src/commands/upload-file.ts | 2 +- src/services/network/upload/upload-file.service.ts | 2 +- src/webdav/handlers/PUT.handler.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/upload-file.ts b/src/commands/upload-file.ts index 0c04ece4..441eeb5d 100644 --- a/src/commands/upload-file.ts +++ b/src/commands/upload-file.ts @@ -135,7 +135,7 @@ export default class UploadFile extends Command { const thumbnailTimer = CLIUtils.timer(); if (fileSize > 0 && isThumbnailable && bufferStream) { - void ThumbnailService.instance.tryUploadThumbnail({ + await ThumbnailService.instance.tryUploadThumbnail({ bufferStream, fileType, bucket, diff --git a/src/services/network/upload/upload-file.service.ts b/src/services/network/upload/upload-file.service.ts index c895f63f..d33f4321 100644 --- a/src/services/network/upload/upload-file.service.ts +++ b/src/services/network/upload/upload-file.service.ts @@ -125,7 +125,7 @@ export class UploadFileService { const thumbnailTimer = CLIUtils.timer(); if (thumbnailStream && fileSize > 0) { - void ThumbnailService.instance.tryUploadThumbnail({ + await ThumbnailService.instance.tryUploadThumbnail({ bufferStream: thumbnailStream, fileType, bucket, diff --git a/src/webdav/handlers/PUT.handler.ts b/src/webdav/handlers/PUT.handler.ts index 8e3a155e..6f8dda34 100644 --- a/src/webdav/handlers/PUT.handler.ts +++ b/src/webdav/handlers/PUT.handler.ts @@ -125,7 +125,7 @@ export class PUTRequestHandler implements WebDavMethodHandler { const thumbnailTimer = CLIUtils.timer(); if (contentLength > 0 && isThumbnailable && bufferStream) { - void ThumbnailService.instance.tryUploadThumbnail({ + await ThumbnailService.instance.tryUploadThumbnail({ fileUuid: file.uuid, bufferStream, fileType,