diff --git a/package.json b/package.json index fed9699..2e0a188 100644 --- a/package.json +++ b/package.json @@ -24,9 +24,7 @@ "test:e2e": "jest --config ./test/jest-e2e.json" }, "dependencies": { - "@aws-sdk/client-s3": "^3.454.0", - "@aws-sdk/client-ses": "^3.454.0", - "@aws-sdk/credential-provider-node": "^3.451.0", + "@it-incubator/storage-sdk": "^0.0.8", "@nestjs-modules/mailer": "^1.9.1", "@nestjs/common": "10.2.9", "@nestjs/config": "^3.1.1", @@ -41,7 +39,6 @@ "@nestjs/swagger": "^7.1.16", "@prisma/client": "4.16.0", "@types/passport-local": "^1.0.38", - "aws-sdk": "^2.1499.0", "bcrypt": "5.1.0", "class-transformer": "0.5.1", "class-validator": "^0.14.0", @@ -56,7 +53,6 @@ "reflect-metadata": "^0.1.13", "remeda": "^1.29.0", "rxjs": "^7.8.1", - "swagger-themes": "^1.2.30", "uuid": "^9.0.1" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5aee81b..6d74749 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,15 +5,9 @@ settings: excludeLinksFromLockfile: false dependencies: - '@aws-sdk/client-s3': - specifier: ^3.454.0 - version: 3.454.0 - '@aws-sdk/client-ses': - specifier: ^3.454.0 - version: 3.454.0 - '@aws-sdk/credential-provider-node': - specifier: ^3.451.0 - version: 3.451.0 + '@it-incubator/storage-sdk': + specifier: ^0.0.8 + version: 0.0.8(@nestjs/axios@3.0.2)(@nestjs/common@10.2.9)(axios@1.6.7)(rxjs@7.8.1) '@nestjs-modules/mailer': specifier: ^1.9.1 version: 1.9.1(@nestjs/common@10.2.9)(@nestjs/core@10.2.9)(nodemailer@6.9.7) @@ -56,9 +50,6 @@ dependencies: '@types/passport-local': specifier: ^1.0.38 version: 1.0.38 - aws-sdk: - specifier: ^2.1499.0 - version: 2.1499.0 bcrypt: specifier: 5.1.0 version: 5.1.0 @@ -101,9 +92,6 @@ dependencies: rxjs: specifier: ^7.8.1 version: 7.8.1 - swagger-themes: - specifier: ^1.2.30 - version: 1.2.30 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -255,637 +243,6 @@ packages: - chokidar dev: true - /@aws-crypto/crc32@3.0.0: - resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.451.0 - tslib: 1.14.1 - dev: false - - /@aws-crypto/crc32c@3.0.0: - resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.451.0 - tslib: 1.14.1 - dev: false - - /@aws-crypto/ie11-detection@3.0.0: - resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} - dependencies: - tslib: 1.14.1 - dev: false - - /@aws-crypto/sha1-browser@3.0.0: - resolution: {integrity: sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==} - dependencies: - '@aws-crypto/ie11-detection': 3.0.0 - '@aws-crypto/supports-web-crypto': 3.0.0 - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-locate-window': 3.310.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - dev: false - - /@aws-crypto/sha256-browser@3.0.0: - resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} - dependencies: - '@aws-crypto/ie11-detection': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-crypto/supports-web-crypto': 3.0.0 - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-locate-window': 3.310.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - dev: false - - /@aws-crypto/sha256-js@3.0.0: - resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.451.0 - tslib: 1.14.1 - dev: false - - /@aws-crypto/supports-web-crypto@3.0.0: - resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} - dependencies: - tslib: 1.14.1 - dev: false - - /@aws-crypto/util@3.0.0: - resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} - dependencies: - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - dev: false - - /@aws-sdk/client-s3@3.454.0: - resolution: {integrity: sha512-vBx4iB1c4mEz+twMnl6angC1/IpnmXaT8L6Kl9uNiurFsb6N4tCyrJ24kECdsOSTM7ePXvE1fKst8zAh6MW5ZA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha1-browser': 3.0.0 - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.454.0 - '@aws-sdk/core': 3.451.0 - '@aws-sdk/credential-provider-node': 3.451.0 - '@aws-sdk/middleware-bucket-endpoint': 3.451.0 - '@aws-sdk/middleware-expect-continue': 3.451.0 - '@aws-sdk/middleware-flexible-checksums': 3.451.0 - '@aws-sdk/middleware-host-header': 3.451.0 - '@aws-sdk/middleware-location-constraint': 3.451.0 - '@aws-sdk/middleware-logger': 3.451.0 - '@aws-sdk/middleware-recursion-detection': 3.451.0 - '@aws-sdk/middleware-sdk-s3': 3.451.0 - '@aws-sdk/middleware-signing': 3.451.0 - '@aws-sdk/middleware-ssec': 3.451.0 - '@aws-sdk/middleware-user-agent': 3.451.0 - '@aws-sdk/region-config-resolver': 3.451.0 - '@aws-sdk/signature-v4-multi-region': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-endpoints': 3.451.0 - '@aws-sdk/util-user-agent-browser': 3.451.0 - '@aws-sdk/util-user-agent-node': 3.451.0 - '@aws-sdk/xml-builder': 3.310.0 - '@smithy/config-resolver': 2.0.18 - '@smithy/eventstream-serde-browser': 2.0.13 - '@smithy/eventstream-serde-config-resolver': 2.0.13 - '@smithy/eventstream-serde-node': 2.0.13 - '@smithy/fetch-http-handler': 2.2.6 - '@smithy/hash-blob-browser': 2.0.14 - '@smithy/hash-node': 2.0.15 - '@smithy/hash-stream-node': 2.0.15 - '@smithy/invalid-dependency': 2.0.13 - '@smithy/md5-js': 2.0.15 - '@smithy/middleware-content-length': 2.0.15 - '@smithy/middleware-endpoint': 2.2.0 - '@smithy/middleware-retry': 2.0.20 - '@smithy/middleware-serde': 2.0.13 - '@smithy/middleware-stack': 2.0.7 - '@smithy/node-config-provider': 2.1.5 - '@smithy/node-http-handler': 2.1.9 - '@smithy/protocol-http': 3.0.9 - '@smithy/smithy-client': 2.1.15 - '@smithy/types': 2.5.0 - '@smithy/url-parser': 2.0.13 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.19 - '@smithy/util-defaults-mode-node': 2.0.25 - '@smithy/util-endpoints': 1.0.4 - '@smithy/util-retry': 2.0.6 - '@smithy/util-stream': 2.0.20 - '@smithy/util-utf8': 2.0.2 - '@smithy/util-waiter': 2.0.13 - fast-xml-parser: 4.2.5 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/client-ses@3.454.0: - resolution: {integrity: sha512-6rLwDHHwjLv3gYL68V8sZeDlgiO60e/pIWmu2H7POoDTTFlQdcmS/ARdFzdIgAuA2yMAYFZvsFcrZTYxLl1q8g==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.454.0 - '@aws-sdk/core': 3.451.0 - '@aws-sdk/credential-provider-node': 3.451.0 - '@aws-sdk/middleware-host-header': 3.451.0 - '@aws-sdk/middleware-logger': 3.451.0 - '@aws-sdk/middleware-recursion-detection': 3.451.0 - '@aws-sdk/middleware-signing': 3.451.0 - '@aws-sdk/middleware-user-agent': 3.451.0 - '@aws-sdk/region-config-resolver': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-endpoints': 3.451.0 - '@aws-sdk/util-user-agent-browser': 3.451.0 - '@aws-sdk/util-user-agent-node': 3.451.0 - '@smithy/config-resolver': 2.0.18 - '@smithy/fetch-http-handler': 2.2.6 - '@smithy/hash-node': 2.0.15 - '@smithy/invalid-dependency': 2.0.13 - '@smithy/middleware-content-length': 2.0.15 - '@smithy/middleware-endpoint': 2.2.0 - '@smithy/middleware-retry': 2.0.20 - '@smithy/middleware-serde': 2.0.13 - '@smithy/middleware-stack': 2.0.7 - '@smithy/node-config-provider': 2.1.5 - '@smithy/node-http-handler': 2.1.9 - '@smithy/protocol-http': 3.0.9 - '@smithy/smithy-client': 2.1.15 - '@smithy/types': 2.5.0 - '@smithy/url-parser': 2.0.13 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.19 - '@smithy/util-defaults-mode-node': 2.0.25 - '@smithy/util-endpoints': 1.0.4 - '@smithy/util-retry': 2.0.6 - '@smithy/util-utf8': 2.0.2 - '@smithy/util-waiter': 2.0.13 - fast-xml-parser: 4.2.5 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/client-sso@3.451.0: - resolution: {integrity: sha512-KkYSke3Pdv3MfVH/5fT528+MKjMyPKlcLcd4zQb0x6/7Bl7EHrPh1JZYjzPLHelb+UY5X0qN8+cb8iSu1eiwIQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.451.0 - '@aws-sdk/middleware-host-header': 3.451.0 - '@aws-sdk/middleware-logger': 3.451.0 - '@aws-sdk/middleware-recursion-detection': 3.451.0 - '@aws-sdk/middleware-user-agent': 3.451.0 - '@aws-sdk/region-config-resolver': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-endpoints': 3.451.0 - '@aws-sdk/util-user-agent-browser': 3.451.0 - '@aws-sdk/util-user-agent-node': 3.451.0 - '@smithy/config-resolver': 2.0.18 - '@smithy/fetch-http-handler': 2.2.6 - '@smithy/hash-node': 2.0.15 - '@smithy/invalid-dependency': 2.0.13 - '@smithy/middleware-content-length': 2.0.15 - '@smithy/middleware-endpoint': 2.2.0 - '@smithy/middleware-retry': 2.0.20 - '@smithy/middleware-serde': 2.0.13 - '@smithy/middleware-stack': 2.0.7 - '@smithy/node-config-provider': 2.1.5 - '@smithy/node-http-handler': 2.1.9 - '@smithy/protocol-http': 3.0.9 - '@smithy/smithy-client': 2.1.15 - '@smithy/types': 2.5.0 - '@smithy/url-parser': 2.0.13 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.19 - '@smithy/util-defaults-mode-node': 2.0.25 - '@smithy/util-endpoints': 1.0.4 - '@smithy/util-retry': 2.0.6 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/client-sts@3.454.0: - resolution: {integrity: sha512-0fDvr8WeB6IYO8BUCzcivWmahgGl/zDbaYfakzGnt4mrl5ztYaXE875WI6b7+oFcKMRvN+KLvwu5TtyFuNY+GQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.451.0 - '@aws-sdk/credential-provider-node': 3.451.0 - '@aws-sdk/middleware-host-header': 3.451.0 - '@aws-sdk/middleware-logger': 3.451.0 - '@aws-sdk/middleware-recursion-detection': 3.451.0 - '@aws-sdk/middleware-sdk-sts': 3.451.0 - '@aws-sdk/middleware-signing': 3.451.0 - '@aws-sdk/middleware-user-agent': 3.451.0 - '@aws-sdk/region-config-resolver': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-endpoints': 3.451.0 - '@aws-sdk/util-user-agent-browser': 3.451.0 - '@aws-sdk/util-user-agent-node': 3.451.0 - '@smithy/config-resolver': 2.0.18 - '@smithy/fetch-http-handler': 2.2.6 - '@smithy/hash-node': 2.0.15 - '@smithy/invalid-dependency': 2.0.13 - '@smithy/middleware-content-length': 2.0.15 - '@smithy/middleware-endpoint': 2.2.0 - '@smithy/middleware-retry': 2.0.20 - '@smithy/middleware-serde': 2.0.13 - '@smithy/middleware-stack': 2.0.7 - '@smithy/node-config-provider': 2.1.5 - '@smithy/node-http-handler': 2.1.9 - '@smithy/protocol-http': 3.0.9 - '@smithy/smithy-client': 2.1.15 - '@smithy/types': 2.5.0 - '@smithy/url-parser': 2.0.13 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.19 - '@smithy/util-defaults-mode-node': 2.0.25 - '@smithy/util-endpoints': 1.0.4 - '@smithy/util-retry': 2.0.6 - '@smithy/util-utf8': 2.0.2 - fast-xml-parser: 4.2.5 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/core@3.451.0: - resolution: {integrity: sha512-SamWW2zHEf1ZKe3j1w0Piauryl8BQIlej0TBS18A4ACzhjhWXhCs13bO1S88LvPR5mBFXok3XOT6zPOnKDFktw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/smithy-client': 2.1.15 - tslib: 2.6.2 - dev: false - - /@aws-sdk/credential-provider-env@3.451.0: - resolution: {integrity: sha512-9dAav7DcRgaF7xCJEQR5ER9ErXxnu/tdnVJ+UPmb1NPeIZdESv1A3lxFDEq1Fs8c4/lzAj9BpshGyJVIZwZDKg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/property-provider': 2.0.14 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/credential-provider-ini@3.451.0: - resolution: {integrity: sha512-TySt64Ci5/ZbqFw1F9Z0FIGvYx5JSC9e6gqDnizIYd8eMnn8wFRUscRrD7pIHKfrhvVKN5h0GdYovmMO/FMCBw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/credential-provider-env': 3.451.0 - '@aws-sdk/credential-provider-process': 3.451.0 - '@aws-sdk/credential-provider-sso': 3.451.0 - '@aws-sdk/credential-provider-web-identity': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@smithy/credential-provider-imds': 2.1.1 - '@smithy/property-provider': 2.0.14 - '@smithy/shared-ini-file-loader': 2.2.4 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/credential-provider-node@3.451.0: - resolution: {integrity: sha512-AEwM1WPyxUdKrKyUsKyFqqRFGU70e4qlDyrtBxJnSU9NRLZI8tfEZ67bN7fHSxBUBODgDXpMSlSvJiBLh5/3pw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/credential-provider-env': 3.451.0 - '@aws-sdk/credential-provider-ini': 3.451.0 - '@aws-sdk/credential-provider-process': 3.451.0 - '@aws-sdk/credential-provider-sso': 3.451.0 - '@aws-sdk/credential-provider-web-identity': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@smithy/credential-provider-imds': 2.1.1 - '@smithy/property-provider': 2.0.14 - '@smithy/shared-ini-file-loader': 2.2.4 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/credential-provider-process@3.451.0: - resolution: {integrity: sha512-HQywSdKeD5PErcLLnZfSyCJO+6T+ZyzF+Lm/QgscSC+CbSUSIPi//s15qhBRVely/3KBV6AywxwNH+5eYgt4lQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/property-provider': 2.0.14 - '@smithy/shared-ini-file-loader': 2.2.4 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/credential-provider-sso@3.451.0: - resolution: {integrity: sha512-Usm/N51+unOt8ID4HnQzxIjUJDrkAQ1vyTOC0gSEEJ7h64NSSPGD5yhN7il5WcErtRd3EEtT1a8/GTC5TdBctg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/client-sso': 3.451.0 - '@aws-sdk/token-providers': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@smithy/property-provider': 2.0.14 - '@smithy/shared-ini-file-loader': 2.2.4 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/credential-provider-web-identity@3.451.0: - resolution: {integrity: sha512-Xtg3Qw65EfDjWNG7o2xD6sEmumPfsy3WDGjk2phEzVg8s7hcZGxf5wYwe6UY7RJvlEKrU0rFA+AMn6Hfj5oOzg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/property-provider': 2.0.14 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-bucket-endpoint@3.451.0: - resolution: {integrity: sha512-KWyZ1JGnYz2QbHuJtYTP1BVnMOfVopR8rP8dTinVb/JR5HfAYz4imICJlJUbOYRjN7wpA3PrRI8dNRjrSBjWJg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-arn-parser': 3.310.0 - '@smithy/node-config-provider': 2.1.5 - '@smithy/protocol-http': 3.0.9 - '@smithy/types': 2.5.0 - '@smithy/util-config-provider': 2.0.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-expect-continue@3.451.0: - resolution: {integrity: sha512-vwG8o2Uk6biLDlOZnqXemsO4dS2HvrprUdxyouwu6hlzLFskg8nL122butn19JqXJKgcVLuSSLzT+xwqBWy2Rg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/protocol-http': 3.0.9 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-flexible-checksums@3.451.0: - resolution: {integrity: sha512-eOkpcC2zgAvqs1w7Yp5nsk9LBIj6qLU5kaZuZEBOiFbNKIrTnPo6dQuhgvDcKHD6Y5W/cUjSBiFMs/ROb5aoug==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/crc32': 3.0.0 - '@aws-crypto/crc32c': 3.0.0 - '@aws-sdk/types': 3.451.0 - '@smithy/is-array-buffer': 2.0.0 - '@smithy/protocol-http': 3.0.9 - '@smithy/types': 2.5.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-host-header@3.451.0: - resolution: {integrity: sha512-j8a5jAfhWmsK99i2k8oR8zzQgXrsJtgrLxc3js6U+525mcZytoiDndkWTmD5fjJ1byU1U2E5TaPq+QJeDip05Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/protocol-http': 3.0.9 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-location-constraint@3.451.0: - resolution: {integrity: sha512-R4U2G7mybP0BMiQBJWTcB47g49F4PSXTiCsvMDp5WOEhpWvGQuO1ZIhTxCl5s5lgTSne063Os8W6KSdK2yG2TQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-logger@3.451.0: - resolution: {integrity: sha512-0kHrYEyVeB2QBfP6TfbI240aRtatLZtcErJbhpiNUb+CQPgEL3crIjgVE8yYiJumZ7f0jyjo8HLPkwD1/2APaw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-recursion-detection@3.451.0: - resolution: {integrity: sha512-J6jL6gJ7orjHGM70KDRcCP7so/J2SnkN4vZ9YRLTeeZY6zvBuHDjX8GCIgSqPn/nXFXckZO8XSnA7u6+3TAT0w==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/protocol-http': 3.0.9 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-sdk-s3@3.451.0: - resolution: {integrity: sha512-XF4Cw8HrYUwGLKOqKtWs6ss1WXoxvQUcgGLACGSqn9a0p51446NiS5671x7qJUsfBuygdKlIKcOc8pPr9a+5Ow==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-arn-parser': 3.310.0 - '@smithy/protocol-http': 3.0.9 - '@smithy/smithy-client': 2.1.15 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-sdk-sts@3.451.0: - resolution: {integrity: sha512-UJ6UfVUEgp0KIztxpAeelPXI5MLj9wUtUCqYeIMP7C1ZhoEMNm3G39VLkGN43dNhBf1LqjsV9jkKMZbVfYXuwg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/middleware-signing': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-signing@3.451.0: - resolution: {integrity: sha512-s5ZlcIoLNg1Huj4Qp06iKniE8nJt/Pj1B/fjhWc6cCPCM7XJYUCejCnRh6C5ZJoBEYodjuwZBejPc1Wh3j+znA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/property-provider': 2.0.14 - '@smithy/protocol-http': 3.0.9 - '@smithy/signature-v4': 2.0.15 - '@smithy/types': 2.5.0 - '@smithy/util-middleware': 2.0.6 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-ssec@3.451.0: - resolution: {integrity: sha512-hDkeBUiRsvuDbvsPha0/uJHE680WDzjAOoE6ZnLBoWsw7ry+Bw1ULMj0sCmpBVrQ7Gpivi/6zbezhClVmt3ITw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-user-agent@3.451.0: - resolution: {integrity: sha512-8NM/0JiKLNvT9wtAQVl1DFW0cEO7OvZyLSUBLNLTHqyvOZxKaZ8YFk7d8PL6l76LeUKRxq4NMxfZQlUIRe0eSA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-endpoints': 3.451.0 - '@smithy/protocol-http': 3.0.9 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/region-config-resolver@3.451.0: - resolution: {integrity: sha512-3iMf4OwzrFb4tAAmoROXaiORUk2FvSejnHIw/XHvf/jjR4EqGGF95NZP/n/MeFZMizJWVssrwS412GmoEyoqhg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.1.5 - '@smithy/types': 2.5.0 - '@smithy/util-config-provider': 2.0.0 - '@smithy/util-middleware': 2.0.6 - tslib: 2.6.2 - dev: false - - /@aws-sdk/signature-v4-multi-region@3.451.0: - resolution: {integrity: sha512-qQKY7/txeNUTLyRL3WxUWEwaZ5sf76EIZgu9kLaR96cAYSxwQi/qQB3ijbfD6u7sJIA8aROMxeYK0VmRsQg0CA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/protocol-http': 3.0.9 - '@smithy/signature-v4': 2.0.15 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/token-providers@3.451.0: - resolution: {integrity: sha512-ij1L5iUbn6CwxVOT1PG4NFjsrsKN9c4N1YEM0lkl6DwmaNOscjLKGSNyj9M118vSWsOs1ZDbTwtj++h0O/BWrQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/middleware-host-header': 3.451.0 - '@aws-sdk/middleware-logger': 3.451.0 - '@aws-sdk/middleware-recursion-detection': 3.451.0 - '@aws-sdk/middleware-user-agent': 3.451.0 - '@aws-sdk/region-config-resolver': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-endpoints': 3.451.0 - '@aws-sdk/util-user-agent-browser': 3.451.0 - '@aws-sdk/util-user-agent-node': 3.451.0 - '@smithy/config-resolver': 2.0.18 - '@smithy/fetch-http-handler': 2.2.6 - '@smithy/hash-node': 2.0.15 - '@smithy/invalid-dependency': 2.0.13 - '@smithy/middleware-content-length': 2.0.15 - '@smithy/middleware-endpoint': 2.2.0 - '@smithy/middleware-retry': 2.0.20 - '@smithy/middleware-serde': 2.0.13 - '@smithy/middleware-stack': 2.0.7 - '@smithy/node-config-provider': 2.1.5 - '@smithy/node-http-handler': 2.1.9 - '@smithy/property-provider': 2.0.14 - '@smithy/protocol-http': 3.0.9 - '@smithy/shared-ini-file-loader': 2.2.4 - '@smithy/smithy-client': 2.1.15 - '@smithy/types': 2.5.0 - '@smithy/url-parser': 2.0.13 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.19 - '@smithy/util-defaults-mode-node': 2.0.25 - '@smithy/util-endpoints': 1.0.4 - '@smithy/util-retry': 2.0.6 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/types@3.451.0: - resolution: {integrity: sha512-rhK+qeYwCIs+laJfWCcrYEjay2FR/9VABZJ2NRM89jV/fKqGVQR52E5DQqrI+oEIL5JHMhhnr4N4fyECMS35lw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-arn-parser@3.310.0: - resolution: {integrity: sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-endpoints@3.451.0: - resolution: {integrity: sha512-giqLGBTnRIcKkDqwU7+GQhKbtJ5Ku35cjGQIfMyOga6pwTBUbaK0xW1Sdd8sBQ1GhApscnChzI9o/R9x0368vw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/util-endpoints': 1.0.4 - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-locate-window@3.310.0: - resolution: {integrity: sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-user-agent-browser@3.451.0: - resolution: {integrity: sha512-Ws5mG3J0TQifH7OTcMrCTexo7HeSAc3cBgjfhS/ofzPUzVCtsyg0G7I6T7wl7vJJETix2Kst2cpOsxygPgPD9w==} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/types': 2.5.0 - bowser: 2.11.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-user-agent-node@3.451.0: - resolution: {integrity: sha512-TBzm6P+ql4mkGFAjPlO1CI+w3yUT+NulaiALjl/jNX/nnUp6HsJsVxJf4nVFQTG5KRV0iqMypcs7I3KIhH+LmA==} - engines: {node: '>=14.0.0'} - peerDependencies: - aws-crt: '>=1.0.0' - peerDependenciesMeta: - aws-crt: - optional: true - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/node-config-provider': 2.1.5 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/util-utf8-browser@3.259.0: - resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} - dependencies: - tslib: 2.6.2 - dev: false - - /@aws-sdk/xml-builder@3.310.0: - resolution: {integrity: sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - /@babel/code-frame@7.22.13: resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} @@ -1367,6 +724,20 @@ packages: prettier: 3.0.0 dev: true + /@it-incubator/storage-sdk@0.0.8(@nestjs/axios@3.0.2)(@nestjs/common@10.2.9)(axios@1.6.7)(rxjs@7.8.1): + resolution: {integrity: sha512-hGn1llkgkJcIn7iMGKZnB9AbTpBr38gRAIC+8SPEXyc7AS7nS78eVvNqs4oLvqa30W+4TPoXKlKWb23Bw2OHgA==} + peerDependencies: + '@nestjs/axios': '>=3.0.2' + '@nestjs/common': '>=10.2.7' + axios: '>=1.6.7' + rxjs: '>=7.8.1' + dependencies: + '@nestjs/axios': 3.0.2(@nestjs/common@10.2.9)(axios@1.6.7)(rxjs@7.8.1) + '@nestjs/common': 10.2.9(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + axios: 1.6.7 + rxjs: 7.8.1 + dev: false + /@jest/console@29.7.0: resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1676,6 +1047,18 @@ packages: - supports-color dev: false + /@nestjs/axios@3.0.2(@nestjs/common@10.2.9)(axios@1.6.7)(rxjs@7.8.1): + resolution: {integrity: sha512-Z6GuOUdNQjP7FX+OuV2Ybyamse+/e0BFdTWBX5JxpBDKA+YkdLynDgG6HTF04zy6e9zPa19UX0WA2VDoehwhXQ==} + peerDependencies: + '@nestjs/common': ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + axios: ^1.3.1 + rxjs: ^6.0.0 || ^7.0.0 + dependencies: + '@nestjs/common': 10.2.9(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + axios: 1.6.7 + rxjs: 7.8.1 + dev: false + /@nestjs/cli@10.2.1: resolution: {integrity: sha512-CAJAQwmxFZfB3RTvqz/eaXXWpyU+mZ4QSqfBYzjneTsPgF+uyOAW3yQpaLNn9Dfcv39R9UxSuAhayv6yuFd+Jg==} engines: {node: '>= 16.14'} @@ -2086,444 +1469,6 @@ packages: '@sinonjs/commons': 3.0.0 dev: true - /@smithy/abort-controller@2.0.13: - resolution: {integrity: sha512-eeOPD+GF9BzF/Mjy3PICLePx4l0f3rG/nQegQHRLTloN5p1lSJJNZsyn+FzDnW8P2AduragZqJdtKNCxXozB1Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/chunked-blob-reader-native@2.0.1: - resolution: {integrity: sha512-N2oCZRglhWKm7iMBu7S6wDzXirjAofi7tAd26cxmgibRYOBS4D3hGfmkwCpHdASZzwZDD8rluh0Rcqw1JeZDRw==} - dependencies: - '@smithy/util-base64': 2.0.1 - tslib: 2.6.2 - dev: false - - /@smithy/chunked-blob-reader@2.0.0: - resolution: {integrity: sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg==} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/config-resolver@2.0.18: - resolution: {integrity: sha512-761sJSgNbvsqcsKW6/WZbrZr4H+0Vp/QKKqwyrxCPwD8BsiPEXNHyYnqNgaeK9xRWYswjon0Uxbpe3DWQo0j/g==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.1.5 - '@smithy/types': 2.5.0 - '@smithy/util-config-provider': 2.0.0 - '@smithy/util-middleware': 2.0.6 - tslib: 2.6.2 - dev: false - - /@smithy/credential-provider-imds@2.1.1: - resolution: {integrity: sha512-gw5G3FjWC6sNz8zpOJgPpH5HGKrpoVFQpToNAwLwJVyI/LJ2jDJRjSKEsM6XI25aRpYjMSE/Qptxx305gN1vHw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.1.5 - '@smithy/property-provider': 2.0.14 - '@smithy/types': 2.5.0 - '@smithy/url-parser': 2.0.13 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-codec@2.0.13: - resolution: {integrity: sha512-CExbelIYp+DxAHG8RIs0l9QL7ElqhG4ym9BNoSpkPa4ptBQfzJdep3LbOSVJIE2VUdBAeObdeL6EDB3Jo85n3g==} - dependencies: - '@aws-crypto/crc32': 3.0.0 - '@smithy/types': 2.5.0 - '@smithy/util-hex-encoding': 2.0.0 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-browser@2.0.13: - resolution: {integrity: sha512-OJ/2g/VxkzA+mYZxV102oX3CsiE+igTSmqq/ir3oEVG2kSIdRC00ryttj/lmL14W06ExNi0ysmfLxQkL8XrAZQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-serde-universal': 2.0.13 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-config-resolver@2.0.13: - resolution: {integrity: sha512-2BI1CbnYuEvAYoWSeWJtPNygbIKiWeSLxCmDLnyM6wQV32Of7VptiQlaFXPxXp4zqn/rs3ocZ/T29rxE4s4Gsg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-node@2.0.13: - resolution: {integrity: sha512-7NbFwPafb924elFxCBDvm48jy/DeSrpFbFQN0uN2ThuY5HrEeubikS0t7WMva4Z4EnRoivpbuT0scb9vUIJKoA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-serde-universal': 2.0.13 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-serde-universal@2.0.13: - resolution: {integrity: sha512-j0yFd5UfftM+ia9dxLRbheJDCkCZBHpcEzCsPO8BxVOTbdcX/auVJCv6ov/yvpCKsf4Hv3mOqi0Is1YogM2g3Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-codec': 2.0.13 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/fetch-http-handler@2.2.6: - resolution: {integrity: sha512-PStY3XO1Ksjwn3wMKye5U6m6zxXpXrXZYqLy/IeCbh3nM9QB3Jgw/B0PUSLUWKdXg4U8qgEu300e3ZoBvZLsDg==} - dependencies: - '@smithy/protocol-http': 3.0.9 - '@smithy/querystring-builder': 2.0.13 - '@smithy/types': 2.5.0 - '@smithy/util-base64': 2.0.1 - tslib: 2.6.2 - dev: false - - /@smithy/hash-blob-browser@2.0.14: - resolution: {integrity: sha512-yWdghyPJIEqLYsaE7YVgd3YhM7jN4Pv6eJQvTomnMsz5K2qRBlpjUx3T9fKlElp1qdeQ7DNc3sAat4i9CUBO7Q==} - dependencies: - '@smithy/chunked-blob-reader': 2.0.0 - '@smithy/chunked-blob-reader-native': 2.0.1 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/hash-node@2.0.15: - resolution: {integrity: sha512-t/qjEJZu/G46A22PAk1k/IiJZT4ncRkG5GOCNWN9HPPy5rCcSZUbh7gwp7CGKgJJ7ATMMg+0Td7i9o1lQTwOfQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - '@smithy/util-buffer-from': 2.0.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@smithy/hash-stream-node@2.0.15: - resolution: {integrity: sha512-ZZ6kC/pHt5Dc2goXIIyC8uA7A4GUMSzdCynAabnZ3CSSaV6ctP8mlvVkqjPph0O3XzHlx/80gdLrNqi1GDPUsA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@smithy/invalid-dependency@2.0.13: - resolution: {integrity: sha512-XsGYhVhvEikX1Yz0kyIoLssJf2Rs6E0U2w2YuKdT4jSra5A/g8V2oLROC1s56NldbgnpesTYB2z55KCHHbKyjw==} - dependencies: - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/is-array-buffer@2.0.0: - resolution: {integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/md5-js@2.0.15: - resolution: {integrity: sha512-pAZaokib56XvhU0t/R9vAcr3L3bMhIakhF25X7EMSQ7LAURiLfce/tgON8I3x/dIbnZUyeRi8f2cx2azu6ATew==} - dependencies: - '@smithy/types': 2.5.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-content-length@2.0.15: - resolution: {integrity: sha512-xH4kRBw01gJgWiU+/mNTrnyFXeozpZHw39gLb3JKGsFDVmSrJZ8/tRqu27tU/ki1gKkxr2wApu+dEYjI3QwV1Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/protocol-http': 3.0.9 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-endpoint@2.2.0: - resolution: {integrity: sha512-tddRmaig5URk2106PVMiNX6mc5BnKIKajHHDxb7K0J5MLdcuQluHMGnjkv18iY9s9O0tF+gAcPd/pDXA5L9DZw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/middleware-serde': 2.0.13 - '@smithy/node-config-provider': 2.1.5 - '@smithy/shared-ini-file-loader': 2.2.4 - '@smithy/types': 2.5.0 - '@smithy/url-parser': 2.0.13 - '@smithy/util-middleware': 2.0.6 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-retry@2.0.20: - resolution: {integrity: sha512-X2yrF/SHDk2WDd8LflRNS955rlzQ9daz9UWSp15wW8KtzoTXg3bhHM78HbK1cjr48/FWERSJKh9AvRUUGlIawg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.1.5 - '@smithy/protocol-http': 3.0.9 - '@smithy/service-error-classification': 2.0.6 - '@smithy/types': 2.5.0 - '@smithy/util-middleware': 2.0.6 - '@smithy/util-retry': 2.0.6 - tslib: 2.6.2 - uuid: 8.3.2 - dev: false - - /@smithy/middleware-serde@2.0.13: - resolution: {integrity: sha512-tBGbeXw+XsE6pPr4UaXOh+UIcXARZeiA8bKJWxk2IjJcD1icVLhBSUQH9myCIZLNNzJIH36SDjUX8Wqk4xJCJg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-stack@2.0.7: - resolution: {integrity: sha512-L1KLAAWkXbGx1t2jjCI/mDJ2dDNq+rp4/ifr/HcC6FHngxho5O7A5bQLpKHGlkfATH6fUnOEx0VICEVFA4sUzw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/node-config-provider@2.1.5: - resolution: {integrity: sha512-3Omb5/h4tOCuKRx4p4pkYTvEYRCYoKk52bOYbKUyz/G/8gERbagsN8jFm4FjQubkrcIqQEghTpQaUw6uk+0edw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/property-provider': 2.0.14 - '@smithy/shared-ini-file-loader': 2.2.4 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/node-http-handler@2.1.9: - resolution: {integrity: sha512-+K0q3SlNcocmo9OZj+fz67gY4lwhOCvIJxVbo/xH+hfWObvaxrMTx7JEzzXcluK0thnnLz++K3Qe7Z/8MDUreA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/abort-controller': 2.0.13 - '@smithy/protocol-http': 3.0.9 - '@smithy/querystring-builder': 2.0.13 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/property-provider@2.0.14: - resolution: {integrity: sha512-k3D2qp9o6imTrLaXRj6GdLYEJr1sXqS99nLhzq8fYmJjSVOeMg/G+1KVAAc7Oxpu71rlZ2f8SSZxcSxkevuR0A==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/protocol-http@3.0.9: - resolution: {integrity: sha512-U1wl+FhYu4/BC+rjwh1lg2gcJChQhytiNQSggREgQ9G2FzmoK9sACBZvx7thyWMvRyHQTE22mO2d5UM8gMKDBg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/querystring-builder@2.0.13: - resolution: {integrity: sha512-JhXKwp3JtsFUe96XLHy/nUPEbaXqn6r7xE4sNaH8bxEyytE5q1fwt0ew/Ke6+vIC7gP87HCHgQpJHg1X1jN2Fw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - '@smithy/util-uri-escape': 2.0.0 - tslib: 2.6.2 - dev: false - - /@smithy/querystring-parser@2.0.13: - resolution: {integrity: sha512-TEiT6o8CPZVxJ44Rly/rrsATTQsE+b/nyBVzsYn2sa75xAaZcurNxsFd8z1haoUysONiyex24JMHoJY6iCfLdA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/service-error-classification@2.0.6: - resolution: {integrity: sha512-fCQ36frtYra2fqY2/DV8+3/z2d0VB/1D1hXbjRcM5wkxTToxq6xHbIY/NGGY6v4carskMyG8FHACxgxturJ9Pg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - dev: false - - /@smithy/shared-ini-file-loader@2.2.4: - resolution: {integrity: sha512-9dRknGgvYlRIsoTcmMJXuoR/3ekhGwhRq4un3ns2/byre4Ql5hyUN4iS0x8eITohjU90YOnUCsbRwZRvCkbRfw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/signature-v4@2.0.15: - resolution: {integrity: sha512-SRTEJSEhQYVlBKIIdZ9SZpqW+KFqxqcNnEcBX+8xkDdWx+DItme9VcCDkdN32yTIrICC+irUufnUdV7mmHPjoA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/eventstream-codec': 2.0.13 - '@smithy/is-array-buffer': 2.0.0 - '@smithy/types': 2.5.0 - '@smithy/util-hex-encoding': 2.0.0 - '@smithy/util-middleware': 2.0.6 - '@smithy/util-uri-escape': 2.0.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@smithy/smithy-client@2.1.15: - resolution: {integrity: sha512-rngZcQu7Jvs9UbHihK1EI67RMPuzkc3CJmu4MBgB7D7yBnMGuFR86tq5rqHfL2gAkNnMelBN/8kzQVvZjNKefQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/middleware-stack': 2.0.7 - '@smithy/types': 2.5.0 - '@smithy/util-stream': 2.0.20 - tslib: 2.6.2 - dev: false - - /@smithy/types@2.5.0: - resolution: {integrity: sha512-/a31lYofrMBkJb3BuPlYJTMKDj0hUmKUP6JFZQu6YVuQVoAjubiY0A52U9S0Uysd33n/djexCUSNJ+G9bf3/aA==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/url-parser@2.0.13: - resolution: {integrity: sha512-okWx2P/d9jcTsZWTVNnRMpFOE7fMkzloSFyM53fA7nLKJQObxM2T4JlZ5KitKKuXq7pxon9J6SF2kCwtdflIrA==} - dependencies: - '@smithy/querystring-parser': 2.0.13 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-base64@2.0.1: - resolution: {integrity: sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/util-buffer-from': 2.0.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-body-length-browser@2.0.0: - resolution: {integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-body-length-node@2.1.0: - resolution: {integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-buffer-from@2.0.0: - resolution: {integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/is-array-buffer': 2.0.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-config-provider@2.0.0: - resolution: {integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-defaults-mode-browser@2.0.19: - resolution: {integrity: sha512-VHP8xdFR7/orpiABJwgoTB0t8Zhhwpf93gXhNfUBiwAE9O0rvsv7LwpQYjgvbOUDDO8JfIYQB2GYJNkqqGWsXw==} - engines: {node: '>= 10.0.0'} - dependencies: - '@smithy/property-provider': 2.0.14 - '@smithy/smithy-client': 2.1.15 - '@smithy/types': 2.5.0 - bowser: 2.11.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-defaults-mode-node@2.0.25: - resolution: {integrity: sha512-jkmep6/JyWmn2ADw9VULDeGbugR4N/FJCKOt+gYyVswmN1BJOfzF2umaYxQ1HhQDvna3kzm1Dbo1qIfBW4iuHA==} - engines: {node: '>= 10.0.0'} - dependencies: - '@smithy/config-resolver': 2.0.18 - '@smithy/credential-provider-imds': 2.1.1 - '@smithy/node-config-provider': 2.1.5 - '@smithy/property-provider': 2.0.14 - '@smithy/smithy-client': 2.1.15 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-endpoints@1.0.4: - resolution: {integrity: sha512-FPry8j1xye5yzrdnf4xKUXVnkQErxdN7bUIaqC0OFoGsv2NfD9b2UUMuZSSt+pr9a8XWAqj0HoyVNUfPiZ/PvQ==} - engines: {node: '>= 14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.1.5 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-hex-encoding@2.0.0: - resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-middleware@2.0.6: - resolution: {integrity: sha512-7W4uuwBvSLgKoLC1x4LfeArCVcbuHdtVaC4g30kKsD1erfICyQ45+tFhhs/dZNeQg+w392fhunCm/+oCcb6BSA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-retry@2.0.6: - resolution: {integrity: sha512-PSO41FofOBmyhPQJwBQJ6mVlaD7Sp9Uff9aBbnfBJ9eqXOE/obrqQjn0PNdkfdvViiPXl49BINfnGcFtSP4kYw==} - engines: {node: '>= 14.0.0'} - dependencies: - '@smithy/service-error-classification': 2.0.6 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-stream@2.0.20: - resolution: {integrity: sha512-tT8VASuD8jJu0yjHEMTCPt1o5E3FVzgdsxK6FQLAjXKqVv5V8InCnc0EOsYrijgspbfDqdAJg7r0o2sySfcHVg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/fetch-http-handler': 2.2.6 - '@smithy/node-http-handler': 2.1.9 - '@smithy/types': 2.5.0 - '@smithy/util-base64': 2.0.1 - '@smithy/util-buffer-from': 2.0.0 - '@smithy/util-hex-encoding': 2.0.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - - /@smithy/util-uri-escape@2.0.0: - resolution: {integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - - /@smithy/util-utf8@2.0.2: - resolution: {integrity: sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/util-buffer-from': 2.0.0 - tslib: 2.6.2 - dev: false - - /@smithy/util-waiter@2.0.13: - resolution: {integrity: sha512-YovIQatiuM7giEsRFotqJa2i3EbU2EE3PgtpXgtLgpx5rXiZMAwPxXYDFVFhuO0lbqvc/Zx4n+ZIisXOHPSqyg==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/abort-controller': 2.0.13 - '@smithy/types': 2.5.0 - tslib: 2.6.2 - dev: false - /@tootallnate/once@1.1.2: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} @@ -3326,6 +2271,7 @@ packages: /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} + dev: true /avvio@8.2.1: resolution: {integrity: sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==} @@ -3337,20 +2283,14 @@ packages: - supports-color dev: false - /aws-sdk@2.1499.0: - resolution: {integrity: sha512-kh89lcXx7lP83uVjzRPkOueRoM8gQlep86W9+l3qCTHSLiVJuc0MiPmqCLMPlOAZil+35roFkwWIP2FJ1WcdXg==} - engines: {node: '>= 10.0.0'} + /axios@1.6.7: + resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} dependencies: - buffer: 4.9.2 - events: 1.1.1 - ieee754: 1.1.13 - jmespath: 0.16.0 - querystring: 0.2.0 - sax: 1.2.1 - url: 0.10.3 - util: 0.12.5 - uuid: 8.0.0 - xml2js: 0.5.0 + follow-redirects: 1.15.5 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug dev: false /babel-jest@29.7.0(@babel/core@7.23.3): @@ -3514,10 +2454,6 @@ packages: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: false - /bowser@2.11.0: - resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} - dev: false - /bplist-parser@0.2.0: resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} engines: {node: '>= 5.10.0'} @@ -3573,14 +2509,6 @@ packages: /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - /buffer@4.9.2: - resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.1.13 - isarray: 1.0.0 - dev: false - /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: @@ -4784,11 +3712,6 @@ packages: engines: {node: '>=6'} dev: false - /events@1.1.1: - resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} - engines: {node: '>=0.4.x'} - dev: false - /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -4992,13 +3915,6 @@ packages: resolution: {integrity: sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==} dev: false - /fast-xml-parser@4.2.5: - resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} - hasBin: true - dependencies: - strnum: 1.0.5 - dev: false - /fastify-plugin@4.5.1: resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} dev: false @@ -5138,10 +4054,21 @@ packages: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true + /follow-redirects@1.15.5: + resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 + dev: true /foreground-child@3.1.1: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} @@ -5636,10 +4563,6 @@ packages: safer-buffer: 2.1.2 dev: false - /ieee754@1.1.13: - resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} - dev: false - /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -5770,14 +4693,6 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - /is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - dev: false - /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: @@ -5813,6 +4728,7 @@ packages: /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + dev: true /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} @@ -5858,13 +4774,6 @@ packages: engines: {node: '>=6'} dev: true - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: false - /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -5957,6 +4866,7 @@ packages: engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.13 + dev: true /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} @@ -6493,11 +5403,6 @@ packages: - ts-node dev: true - /jmespath@0.16.0: - resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} - engines: {node: '>= 0.6.0'} - dev: false - /js-beautify@1.14.11: resolution: {integrity: sha512-rPogWqAfoYh1Ryqqh2agUpVfbxAhbjuN1SmU86dskQUKouRiggUTCO4+2ym9UPXllc2WAp0J+T5qxn7Um3lCdw==} engines: {node: '>=14'} @@ -8219,10 +7124,6 @@ packages: once: 1.4.0 dev: true - /punycode@1.3.2: - resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} - dev: false - /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -8243,12 +7144,6 @@ packages: dependencies: side-channel: 1.0.4 - /querystring@0.2.0: - resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} - engines: {node: '>=0.4.x'} - deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. - dev: false - /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -8551,10 +7446,6 @@ packages: source-map-js: 1.0.2 dev: true - /sax@1.2.1: - resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} - dev: false - /schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} @@ -8912,10 +7803,6 @@ packages: engines: {node: '>=8'} dev: true - /strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: false - /style-data@2.0.1: resolution: {integrity: sha512-frUbteLGDoNEJhbMIWtyNE1VRduZXmZozhct4F+qN++OzIQZNZJ8KToZlDEl3eaedRYlDfKvUoMFMyrZj4x/sg==} dependencies: @@ -8988,10 +7875,6 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /swagger-themes@1.2.30: - resolution: {integrity: sha512-OOk1gMfu50knSui4ncnOGtQEw8snOkMCLiOWVLqO0IT1SNYJC83MBWtRwMWSYmaC+m51XdNBlZ030T4t6viNvg==} - dev: false - /swagger-ui-dist@5.9.1: resolution: {integrity: sha512-5zAx+hUwJb9T3EAntc7TqYkV716CMqG6sZpNlAAMOMWkNXRYxGkN8ADIvD55dQZ10LxN90ZM/TQmN7y1gpICnw==} dev: false @@ -9254,10 +8137,6 @@ packages: strip-bom: 3.0.0 dev: true - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: false - /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -9411,40 +8290,13 @@ packages: dependencies: punycode: 2.3.1 - /url@0.10.3: - resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} - dependencies: - punycode: 1.3.2 - querystring: 0.2.0 - dev: false - /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - /util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.12 - which-typed-array: 1.1.13 - dev: false - /utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - /uuid@8.0.0: - resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==} - hasBin: true - dev: false - - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - dev: false - /uuid@9.0.0: resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} hasBin: true @@ -9609,6 +8461,7 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 + dev: true /which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} @@ -9695,19 +8548,6 @@ packages: signal-exit: 3.0.7 dev: true - /xml2js@0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} - engines: {node: '>=4.0.0'} - dependencies: - sax: 1.2.1 - xmlbuilder: 11.0.1 - dev: false - - /xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - dev: false - /xregexp@2.0.0: resolution: {integrity: sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==} dev: false diff --git a/src/app.module.ts b/src/app.module.ts index d1e6fb6..da2d450 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,6 +1,7 @@ import { join } from 'path' import * as process from 'process' +import { StorageModule } from '@it-incubator/storage-sdk' import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common' import { CqrsModule } from '@nestjs/cqrs' import { ServeStaticModule } from '@nestjs/serve-static' @@ -28,6 +29,12 @@ import { ConfigModule } from './settings/config.module' ServeStaticModule.forRoot({ rootPath: join(__dirname, '..', 'client'), }), + StorageModule.register({ + baseURL: process.env.STORAGE_SERVICE_URL, + headers: { + 'service-token': process.env.STORAGE_SERVICE_TOKEN, + }, + }), MailerModule.forRoot({ transport: { host: process.env.AWS_SES_SMTP_HOST, diff --git a/src/infrastructure/file-upload-service/file-upload.service.ts b/src/infrastructure/file-upload-service/file-upload.service.ts index c30616e..7fd27be 100644 --- a/src/infrastructure/file-upload-service/file-upload.service.ts +++ b/src/infrastructure/file-upload-service/file-upload.service.ts @@ -1,46 +1,35 @@ -import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3' +import { CreateFileDto, FileType, StorageService } from '@it-incubator/storage-sdk' import { Injectable } from '@nestjs/common' -import { v4 as uuid } from 'uuid' import { PrismaService } from '../../prisma.service' @Injectable() export class FileUploadService { - constructor(private prismaService: PrismaService) {} + constructor( + private prismaService: PrismaService, + private storageService: StorageService + ) {} - async uploadFile(dataBuffer: Buffer, fileName: string) { - const key = `${uuid()}-${fileName}` - const bucketName = process.env.AWS_BUCKET_NAME - const region = 'eu-central-1' - const s3 = new S3Client({ - region, - credentials: { - accessKeyId: process.env.AWS_S3_ACCESS_KEY, - secretAccessKey: process.env.AWS_S3_SECRET_ACCESS_KEY, - }, - }) - const encodeFileName = encodeURIComponent(key) + private async uploadFileToStorageService(dto: CreateFileDto) { + return await this.storageService.create(dto).then(data => data.data) + } - const fileUrl = `https://${bucketName}.s3.${region}.amazonaws.com/${encodeFileName}` + async uploadFile(file: CreateFileDto['file']) { + try { + const savedFile = await this.uploadFileToStorageService({ + fileType: FileType.Image, + file, + }) - const fileStorageInDB = { - fileName, - fileUrl, - key, + return this.prismaService.fileEntity.create({ + data: { + fileName: savedFile.name, + fileUrl: savedFile.url, + key: savedFile.url, + }, + }) + } catch (e) { + console.log(e) } - - const putCommand = new PutObjectCommand({ - Bucket: bucketName, - Body: dataBuffer, - Key: key, - ContentDisposition: 'inline', - ContentType: `image/${fileName.split('.').at(-1)}`, - }) - - await s3.send(putCommand) - - return this.prismaService.fileEntity.create({ - data: fileStorageInDB, - }) } } diff --git a/src/modules/auth/use-cases/update-user-use-case.ts b/src/modules/auth/use-cases/update-user-use-case.ts index e20ec59..b1e99f5 100644 --- a/src/modules/auth/use-cases/update-user-use-case.ts +++ b/src/modules/auth/use-cases/update-user-use-case.ts @@ -25,10 +25,7 @@ export class UpdateUserHandler implements ICommandHandler { let avatar: string | null if (command.avatar) { - const addAvatarImagePromise = this.fileUploadService.uploadFile( - command.avatar?.buffer, - command.avatar?.originalname - ) + const addAvatarImagePromise = this.fileUploadService.uploadFile(command.avatar) const result = await addAvatarImagePromise diff --git a/src/modules/cards/use-cases/update-card-use-case.ts b/src/modules/cards/use-cases/update-card-use-case.ts index d17dfda..63e1298 100644 --- a/src/modules/cards/use-cases/update-card-use-case.ts +++ b/src/modules/cards/use-cases/update-card-use-case.ts @@ -35,32 +35,20 @@ export class UpdateCardHandler implements ICommandHandler { let questionImg, answerImg if (command.questionImg && command.answerImg) { - const addQuestionImagePromise = this.fileUploadService.uploadFile( - command.questionImg?.buffer, - command.questionImg?.originalname - ) - const addAnswerImagePromise = this.fileUploadService.uploadFile( - command.answerImg?.buffer, - command.answerImg?.originalname - ) + const addQuestionImagePromise = this.fileUploadService.uploadFile(command.questionImg) + const addAnswerImagePromise = this.fileUploadService.uploadFile(command.answerImg) const result = await Promise.all([addQuestionImagePromise, addAnswerImagePromise]) questionImg = result[0].fileUrl answerImg = result[1].fileUrl } else if (command.answerImg) { - const addAnswerImagePromise = this.fileUploadService.uploadFile( - command.answerImg?.buffer, - command.answerImg?.originalname - ) + const addAnswerImagePromise = this.fileUploadService.uploadFile(command.answerImg) const result = await addAnswerImagePromise answerImg = result.fileUrl } else if (command.questionImg) { - const addQuestionImagePromise = this.fileUploadService.uploadFile( - command.questionImg?.buffer, - command.questionImg?.originalname - ) + const addQuestionImagePromise = this.fileUploadService.uploadFile(command.questionImg) const result = await addQuestionImagePromise questionImg = result.fileUrl diff --git a/src/modules/decks/decks.controller.ts b/src/modules/decks/decks.controller.ts index 9e00811..dda6440 100644 --- a/src/modules/decks/decks.controller.ts +++ b/src/modules/decks/decks.controller.ts @@ -43,6 +43,7 @@ import { PaginatedDecksWithMaxCardsCount, } from './entities/deck.entity' import { MinMaxCards } from './entities/min-max-cards.entity' +import { DecksRepository } from './infrastructure/decks.repository' import { CreateCardCommand, CreateDeckCommand, @@ -60,7 +61,10 @@ import { @ApiTags('Decks') @Controller('decks') export class DecksController { - constructor(private commandBus: CommandBus) {} + constructor( + private commandBus: CommandBus, + private decksRepository: DecksRepository + ) {} @HttpCode(HttpStatus.PARTIAL_CONTENT) @ApiOperation({ @@ -89,6 +93,25 @@ export class DecksController { return this.commandBus.execute(new GetAllDecksV2Command({ ...finalQuery, userId: req.user.id })) } + @HttpCode(HttpStatus.PARTIAL_CONTENT) + @ApiOperation({ description: 'Retrieve paginated decks list.', summary: 'Paginated decks list' }) + @ApiUnauthorizedResponse({ description: 'Unauthorized' }) + @UseGuards(JwtAuthGuard) + @Version('2') + @Get('empty') + async findAllEmpty(@Query() query: GetAllDecksDto, @Req() req) { + const result: PaginatedDecks = await this.commandBus.execute( + new GetAllDecksV2Command({ + itemsPerPage: 5000, + minCardsCount: 0, + maxCardsCount: 0, + userId: req.user.id, + }) + ) + + return this.decksRepository.deleteManyById(result.items.map(({ id }) => id)) + } + @HttpCode(HttpStatus.OK) @ApiOperation({ description: 'Retrieve the minimum and maximum amount of cards in a deck.', diff --git a/src/modules/decks/infrastructure/decks.repository.ts b/src/modules/decks/infrastructure/decks.repository.ts index d7eb6a8..77331f1 100644 --- a/src/modules/decks/infrastructure/decks.repository.ts +++ b/src/modules/decks/infrastructure/decks.repository.ts @@ -294,6 +294,21 @@ LIMIT $${conditions.length + havingConditions.length + 1} OFFSET $${ } } + public async deleteManyById(id: string[]) { + try { + return await this.prisma.deck.deleteMany({ + where: { + id: { + in: id, + }, + }, + }) + } catch (e) { + this.logger.error(e?.message) + throw new InternalServerErrorException(e?.message) + } + } + public async deleteDeckById(id: string) { try { return await this.prisma.deck.delete({ diff --git a/src/modules/decks/use-cases/create-card-use-case.ts b/src/modules/decks/use-cases/create-card-use-case.ts index a0cd37e..0319edb 100644 --- a/src/modules/decks/use-cases/create-card-use-case.ts +++ b/src/modules/decks/use-cases/create-card-use-case.ts @@ -38,32 +38,20 @@ export class CreateCardHandler implements ICommandHandler { } if (command.questionImg && command.answerImg) { - const addQuestionImagePromise = this.fileUploadService.uploadFile( - command.questionImg?.buffer, - command.questionImg?.originalname - ) - const addAnswerImagePromise = this.fileUploadService.uploadFile( - command.answerImg?.buffer, - command.answerImg?.originalname - ) + const addQuestionImagePromise = this.fileUploadService.uploadFile(command.questionImg) + const addAnswerImagePromise = this.fileUploadService.uploadFile(command.answerImg) const result = await Promise.all([addQuestionImagePromise, addAnswerImagePromise]) questionImg = result[0].fileUrl answerImg = result[1].fileUrl } else if (command.answerImg) { - const addAnswerImagePromise = this.fileUploadService.uploadFile( - command.answerImg?.buffer, - command.answerImg?.originalname - ) + const addAnswerImagePromise = this.fileUploadService.uploadFile(command.answerImg) const result = await addAnswerImagePromise answerImg = result.fileUrl } else if (command.questionImg) { - const addQuestionImagePromise = this.fileUploadService.uploadFile( - command.questionImg?.buffer, - command.questionImg?.originalname - ) + const addQuestionImagePromise = this.fileUploadService.uploadFile(command.questionImg) const result = await addQuestionImagePromise questionImg = result.fileUrl diff --git a/src/modules/decks/use-cases/create-deck-use-case.ts b/src/modules/decks/use-cases/create-deck-use-case.ts index 34357da..57ea050 100644 --- a/src/modules/decks/use-cases/create-deck-use-case.ts +++ b/src/modules/decks/use-cases/create-deck-use-case.ts @@ -23,10 +23,7 @@ export class CreateDeckHandler implements ICommandHandler { let cover if (command.cover) { - const result = await this.fileUploadService.uploadFile( - command.cover.buffer, - command.cover.originalname - ) + const result = await this.fileUploadService.uploadFile(command.cover) cover = result.fileUrl } diff --git a/src/modules/decks/use-cases/update-deck-use-case.ts b/src/modules/decks/use-cases/update-deck-use-case.ts index 1cc98e7..dbc4dae 100644 --- a/src/modules/decks/use-cases/update-deck-use-case.ts +++ b/src/modules/decks/use-cases/update-deck-use-case.ts @@ -35,10 +35,7 @@ export class UpdateDeckHandler implements ICommandHandler { let cover if (command.cover) { - const result = await this.fileUploadService.uploadFile( - command.cover.buffer, - command.cover.originalname - ) + const result = await this.fileUploadService.uploadFile(command.cover) cover = result.fileUrl } else if (command.deck.cover === '') {