From 853bda398d765b72ad224397c90b787269a07b56 Mon Sep 17 00:00:00 2001 From: Surya Oktafendri <f2face@f2face.com> Date: Fri, 8 Mar 2024 07:42:51 +0700 Subject: [PATCH 1/7] Update dependencies --- package.json | 24 +- pnpm-lock.yaml | 2048 +++++++++++++++++++++++++----------------------- 2 files changed, 1090 insertions(+), 982 deletions(-) diff --git a/package.json b/package.json index 34e17c1..2d936c0 100644 --- a/package.json +++ b/package.json @@ -38,22 +38,22 @@ "url": "https://github.com/f2face/cloudflare-r2.git" }, "dependencies": { - "@aws-sdk/client-s3": "^3.433.0" + "@aws-sdk/client-s3": "^3.529.0", + "@aws-sdk/s3-request-presigner": "^3.529.0" }, "devDependencies": { "@tsconfig/recommended": "^1.0.3", - "@types/jest": "^29.5.6", - "@types/node": "^20.8.8", - "@typescript-eslint/eslint-plugin": "^6.9.0", - "@typescript-eslint/parser": "^6.9.0", - "dotenv": "^16.3.1", - "eslint": "^8.52.0", - "eslint-config-prettier": "^9.0.0", + "@types/jest": "^29.5.12", + "@types/node": "^20.11.25", + "@typescript-eslint/eslint-plugin": "^7.1.1", + "@typescript-eslint/parser": "^7.1.1", + "dotenv": "^16.4.5", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", "jest": "^29.7.0", - "prettier": "^3.0.3", + "prettier": "^3.2.5", "rimraf": "^5.0.5", - "ts-jest": "^29.1.1", - "typescript": "^5.2.2" + "ts-jest": "^29.1.2", + "typescript": "^5.4.2" } } - diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5cf2554..94ed83f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,49 +6,52 @@ settings: dependencies: '@aws-sdk/client-s3': - specifier: ^3.433.0 - version: 3.433.0 + specifier: ^3.529.0 + version: 3.529.0 + '@aws-sdk/s3-request-presigner': + specifier: ^3.529.0 + version: 3.529.0 devDependencies: '@tsconfig/recommended': specifier: ^1.0.3 version: 1.0.3 '@types/jest': - specifier: ^29.5.6 - version: 29.5.6 + specifier: ^29.5.12 + version: 29.5.12 '@types/node': - specifier: ^20.8.8 - version: 20.8.8 + specifier: ^20.11.25 + version: 20.11.25 '@typescript-eslint/eslint-plugin': - specifier: ^6.9.0 - version: 6.9.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2) + specifier: ^7.1.1 + version: 7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.4.2) '@typescript-eslint/parser': - specifier: ^6.9.0 - version: 6.9.0(eslint@8.52.0)(typescript@5.2.2) + specifier: ^7.1.1 + version: 7.1.1(eslint@8.57.0)(typescript@5.4.2) dotenv: - specifier: ^16.3.1 - version: 16.3.1 + specifier: ^16.4.5 + version: 16.4.5 eslint: - specifier: ^8.52.0 - version: 8.52.0 + specifier: ^8.57.0 + version: 8.57.0 eslint-config-prettier: - specifier: ^9.0.0 - version: 9.0.0(eslint@8.52.0) + specifier: ^9.1.0 + version: 9.1.0(eslint@8.57.0) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.8.8) + version: 29.7.0(@types/node@20.11.25) prettier: - specifier: ^3.0.3 - version: 3.0.3 + specifier: ^3.2.5 + version: 3.2.5 rimraf: specifier: ^5.0.5 version: 5.0.5 ts-jest: - specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.23.2)(jest@29.7.0)(typescript@5.2.2) + specifier: ^29.1.2 + version: 29.1.2(@babel/core@7.24.0)(jest@29.7.0)(typescript@5.4.2) typescript: - specifier: ^5.2.2 - version: 5.2.2 + specifier: ^5.4.2 + version: 5.4.2 packages: @@ -57,19 +60,19 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 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.433.0 + '@aws-sdk/types': 3.523.0 tslib: 1.14.1 dev: false @@ -77,7 +80,7 @@ packages: resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.433.0 + '@aws-sdk/types': 3.523.0 tslib: 1.14.1 dev: false @@ -93,7 +96,7 @@ packages: '@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.433.0 + '@aws-sdk/types': 3.523.0 '@aws-sdk/util-locate-window': 3.310.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 @@ -106,7 +109,7 @@ packages: '@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.433.0 + '@aws-sdk/types': 3.523.0 '@aws-sdk/util-locate-window': 3.310.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 @@ -116,7 +119,7 @@ packages: resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.433.0 + '@aws-sdk/types': 3.523.0 tslib: 1.14.1 dev: false @@ -129,460 +132,547 @@ packages: /@aws-crypto/util@3.0.0: resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} dependencies: - '@aws-sdk/types': 3.433.0 + '@aws-sdk/types': 3.523.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 dev: false - /@aws-sdk/client-s3@3.433.0: - resolution: {integrity: sha512-gCuV4kmmHPFrQIl53VxddIylqItarwyX9+ykNIxMoMcEcBVmJhmshV6M9Re+wzS8eUPB6maqurOKGu83YUMpIA==} + /@aws-sdk/client-s3@3.529.0: + resolution: {integrity: sha512-+ol8eDhotGzBOTqrwAXRYhgi9i40M943nlZe2lMN0TYcP2lDMAn2J8f6JUYE54XPYPoDpoy/F+VLaB7olEGAmA==} 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.433.0 - '@aws-sdk/credential-provider-node': 3.433.0 - '@aws-sdk/middleware-bucket-endpoint': 3.433.0 - '@aws-sdk/middleware-expect-continue': 3.433.0 - '@aws-sdk/middleware-flexible-checksums': 3.433.0 - '@aws-sdk/middleware-host-header': 3.433.0 - '@aws-sdk/middleware-location-constraint': 3.433.0 - '@aws-sdk/middleware-logger': 3.433.0 - '@aws-sdk/middleware-recursion-detection': 3.433.0 - '@aws-sdk/middleware-sdk-s3': 3.433.0 - '@aws-sdk/middleware-signing': 3.433.0 - '@aws-sdk/middleware-ssec': 3.433.0 - '@aws-sdk/middleware-user-agent': 3.433.0 - '@aws-sdk/region-config-resolver': 3.433.0 - '@aws-sdk/signature-v4-multi-region': 3.433.0 - '@aws-sdk/types': 3.433.0 - '@aws-sdk/util-endpoints': 3.433.0 - '@aws-sdk/util-user-agent-browser': 3.433.0 - '@aws-sdk/util-user-agent-node': 3.433.0 - '@aws-sdk/xml-builder': 3.310.0 - '@smithy/config-resolver': 2.0.16 - '@smithy/eventstream-serde-browser': 2.0.12 - '@smithy/eventstream-serde-config-resolver': 2.0.12 - '@smithy/eventstream-serde-node': 2.0.12 - '@smithy/fetch-http-handler': 2.2.4 - '@smithy/hash-blob-browser': 2.0.12 - '@smithy/hash-node': 2.0.12 - '@smithy/hash-stream-node': 2.0.12 - '@smithy/invalid-dependency': 2.0.12 - '@smithy/md5-js': 2.0.12 - '@smithy/middleware-content-length': 2.0.14 - '@smithy/middleware-endpoint': 2.1.3 - '@smithy/middleware-retry': 2.0.18 - '@smithy/middleware-serde': 2.0.12 - '@smithy/middleware-stack': 2.0.6 - '@smithy/node-config-provider': 2.1.3 - '@smithy/node-http-handler': 2.1.8 - '@smithy/protocol-http': 3.0.8 - '@smithy/smithy-client': 2.1.12 - '@smithy/types': 2.4.0 - '@smithy/url-parser': 2.0.12 - '@smithy/util-base64': 2.0.0 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.16 - '@smithy/util-defaults-mode-node': 2.0.21 - '@smithy/util-retry': 2.0.5 - '@smithy/util-stream': 2.0.17 - '@smithy/util-utf8': 2.0.0 - '@smithy/util-waiter': 2.0.12 - fast-xml-parser: 4.2.5 + '@aws-sdk/client-sts': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/core': 3.529.0 + '@aws-sdk/credential-provider-node': 3.529.0 + '@aws-sdk/middleware-bucket-endpoint': 3.525.0 + '@aws-sdk/middleware-expect-continue': 3.523.0 + '@aws-sdk/middleware-flexible-checksums': 3.523.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-location-constraint': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-sdk-s3': 3.525.0 + '@aws-sdk/middleware-signing': 3.523.0 + '@aws-sdk/middleware-ssec': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/signature-v4-multi-region': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@aws-sdk/xml-builder': 3.523.0 + '@smithy/config-resolver': 2.1.5 + '@smithy/core': 1.3.7 + '@smithy/eventstream-serde-browser': 2.1.4 + '@smithy/eventstream-serde-config-resolver': 2.1.4 + '@smithy/eventstream-serde-node': 2.1.4 + '@smithy/fetch-http-handler': 2.4.4 + '@smithy/hash-blob-browser': 2.1.4 + '@smithy/hash-node': 2.1.4 + '@smithy/hash-stream-node': 2.1.4 + '@smithy/invalid-dependency': 2.1.4 + '@smithy/md5-js': 2.1.4 + '@smithy/middleware-content-length': 2.1.4 + '@smithy/middleware-endpoint': 2.4.6 + '@smithy/middleware-retry': 2.1.6 + '@smithy/middleware-serde': 2.2.1 + '@smithy/middleware-stack': 2.1.4 + '@smithy/node-config-provider': 2.2.5 + '@smithy/node-http-handler': 2.4.2 + '@smithy/protocol-http': 3.2.2 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + '@smithy/url-parser': 2.1.4 + '@smithy/util-base64': 2.2.0 + '@smithy/util-body-length-browser': 2.1.1 + '@smithy/util-body-length-node': 2.2.1 + '@smithy/util-defaults-mode-browser': 2.1.6 + '@smithy/util-defaults-mode-node': 2.2.6 + '@smithy/util-endpoints': 1.1.5 + '@smithy/util-retry': 2.1.4 + '@smithy/util-stream': 2.1.4 + '@smithy/util-utf8': 2.2.0 + '@smithy/util-waiter': 2.1.4 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sso@3.433.0: - resolution: {integrity: sha512-L7ksMP7UnYH+w52ly+m+s5vk8662VtyqJ+UduFEMPqKUHTFEm7w+CCw4Xfk3hl5GlVvqPvYWqBqv8eLKSHpCEQ==} + /@aws-sdk/client-sso-oidc@3.529.0(@aws-sdk/credential-provider-node@3.529.0): + resolution: {integrity: sha512-pUQhuJmaDWSRr6WK5YILvpApzFXsFmWXnsinmgabf8vSa134BAbDrootFef//Zuksc9HRa4FhUEurw/yrWaWHQ==} engines: {node: '>=14.0.0'} + peerDependencies: + '@aws-sdk/credential-provider-node': ^3.529.0 dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/middleware-host-header': 3.433.0 - '@aws-sdk/middleware-logger': 3.433.0 - '@aws-sdk/middleware-recursion-detection': 3.433.0 - '@aws-sdk/middleware-user-agent': 3.433.0 - '@aws-sdk/region-config-resolver': 3.433.0 - '@aws-sdk/types': 3.433.0 - '@aws-sdk/util-endpoints': 3.433.0 - '@aws-sdk/util-user-agent-browser': 3.433.0 - '@aws-sdk/util-user-agent-node': 3.433.0 - '@smithy/config-resolver': 2.0.16 - '@smithy/fetch-http-handler': 2.2.4 - '@smithy/hash-node': 2.0.12 - '@smithy/invalid-dependency': 2.0.12 - '@smithy/middleware-content-length': 2.0.14 - '@smithy/middleware-endpoint': 2.1.3 - '@smithy/middleware-retry': 2.0.18 - '@smithy/middleware-serde': 2.0.12 - '@smithy/middleware-stack': 2.0.6 - '@smithy/node-config-provider': 2.1.3 - '@smithy/node-http-handler': 2.1.8 - '@smithy/protocol-http': 3.0.8 - '@smithy/smithy-client': 2.1.12 - '@smithy/types': 2.4.0 - '@smithy/url-parser': 2.0.12 - '@smithy/util-base64': 2.0.0 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.16 - '@smithy/util-defaults-mode-node': 2.0.21 - '@smithy/util-retry': 2.0.5 - '@smithy/util-utf8': 2.0.0 + '@aws-sdk/client-sts': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/core': 3.529.0 + '@aws-sdk/credential-provider-node': 3.529.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@smithy/config-resolver': 2.1.5 + '@smithy/core': 1.3.7 + '@smithy/fetch-http-handler': 2.4.4 + '@smithy/hash-node': 2.1.4 + '@smithy/invalid-dependency': 2.1.4 + '@smithy/middleware-content-length': 2.1.4 + '@smithy/middleware-endpoint': 2.4.6 + '@smithy/middleware-retry': 2.1.6 + '@smithy/middleware-serde': 2.2.1 + '@smithy/middleware-stack': 2.1.4 + '@smithy/node-config-provider': 2.2.5 + '@smithy/node-http-handler': 2.4.2 + '@smithy/protocol-http': 3.2.2 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + '@smithy/url-parser': 2.1.4 + '@smithy/util-base64': 2.2.0 + '@smithy/util-body-length-browser': 2.1.1 + '@smithy/util-body-length-node': 2.2.1 + '@smithy/util-defaults-mode-browser': 2.1.6 + '@smithy/util-defaults-mode-node': 2.2.6 + '@smithy/util-endpoints': 1.1.5 + '@smithy/util-middleware': 2.1.4 + '@smithy/util-retry': 2.1.4 + '@smithy/util-utf8': 2.2.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sts@3.433.0: - resolution: {integrity: sha512-hQ+NLIcA1KRJ2qPdrtkJ3fOEVnehLLMlnB/I5mjg9K2UKjuiOufLao6tc5SyW9fseIL9AdX3fjJ8Unhg+y1RWg==} + /@aws-sdk/client-sso@3.529.0: + resolution: {integrity: sha512-QdUmxRVjwCN81v8qb2N0fmIKmq17Rh1Is6yQ9T/dQ3rlnU4mg6b/2qk0qiZOPF4wroMALr/EaDvPXHqZR+lRqA==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/credential-provider-node': 3.433.0 - '@aws-sdk/middleware-host-header': 3.433.0 - '@aws-sdk/middleware-logger': 3.433.0 - '@aws-sdk/middleware-recursion-detection': 3.433.0 - '@aws-sdk/middleware-sdk-sts': 3.433.0 - '@aws-sdk/middleware-signing': 3.433.0 - '@aws-sdk/middleware-user-agent': 3.433.0 - '@aws-sdk/region-config-resolver': 3.433.0 - '@aws-sdk/types': 3.433.0 - '@aws-sdk/util-endpoints': 3.433.0 - '@aws-sdk/util-user-agent-browser': 3.433.0 - '@aws-sdk/util-user-agent-node': 3.433.0 - '@smithy/config-resolver': 2.0.16 - '@smithy/fetch-http-handler': 2.2.4 - '@smithy/hash-node': 2.0.12 - '@smithy/invalid-dependency': 2.0.12 - '@smithy/middleware-content-length': 2.0.14 - '@smithy/middleware-endpoint': 2.1.3 - '@smithy/middleware-retry': 2.0.18 - '@smithy/middleware-serde': 2.0.12 - '@smithy/middleware-stack': 2.0.6 - '@smithy/node-config-provider': 2.1.3 - '@smithy/node-http-handler': 2.1.8 - '@smithy/protocol-http': 3.0.8 - '@smithy/smithy-client': 2.1.12 - '@smithy/types': 2.4.0 - '@smithy/url-parser': 2.0.12 - '@smithy/util-base64': 2.0.0 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.16 - '@smithy/util-defaults-mode-node': 2.0.21 - '@smithy/util-retry': 2.0.5 - '@smithy/util-utf8': 2.0.0 - fast-xml-parser: 4.2.5 + '@aws-sdk/core': 3.529.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@smithy/config-resolver': 2.1.5 + '@smithy/core': 1.3.7 + '@smithy/fetch-http-handler': 2.4.4 + '@smithy/hash-node': 2.1.4 + '@smithy/invalid-dependency': 2.1.4 + '@smithy/middleware-content-length': 2.1.4 + '@smithy/middleware-endpoint': 2.4.6 + '@smithy/middleware-retry': 2.1.6 + '@smithy/middleware-serde': 2.2.1 + '@smithy/middleware-stack': 2.1.4 + '@smithy/node-config-provider': 2.2.5 + '@smithy/node-http-handler': 2.4.2 + '@smithy/protocol-http': 3.2.2 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + '@smithy/url-parser': 2.1.4 + '@smithy/util-base64': 2.2.0 + '@smithy/util-body-length-browser': 2.1.1 + '@smithy/util-body-length-node': 2.2.1 + '@smithy/util-defaults-mode-browser': 2.1.6 + '@smithy/util-defaults-mode-node': 2.2.6 + '@smithy/util-endpoints': 1.1.5 + '@smithy/util-middleware': 2.1.4 + '@smithy/util-retry': 2.1.4 + '@smithy/util-utf8': 2.2.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/credential-provider-env@3.433.0: - resolution: {integrity: sha512-Vl7Qz5qYyxBurMn6hfSiNJeUHSqfVUlMt0C1Bds3tCkl3IzecRWwyBOlxtxO3VCrgVeW3HqswLzCvhAFzPH6nQ==} + /@aws-sdk/client-sts@3.529.0(@aws-sdk/credential-provider-node@3.529.0): + resolution: {integrity: sha512-8gWlnXisDv/mQGbvoDTwJaQEqFu/7nbPIkMOpM8JdW4ITU07tILNIqNPY3r0t2oHyK8qPP7aOXwrh1ETklYYig==} engines: {node: '>=14.0.0'} + peerDependencies: + '@aws-sdk/credential-provider-node': ^3.529.0 dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/property-provider': 2.0.13 - '@smithy/types': 2.4.0 + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.529.0 + '@aws-sdk/credential-provider-node': 3.529.0 + '@aws-sdk/middleware-host-header': 3.523.0 + '@aws-sdk/middleware-logger': 3.523.0 + '@aws-sdk/middleware-recursion-detection': 3.523.0 + '@aws-sdk/middleware-user-agent': 3.525.0 + '@aws-sdk/region-config-resolver': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@aws-sdk/util-user-agent-browser': 3.523.0 + '@aws-sdk/util-user-agent-node': 3.525.0 + '@smithy/config-resolver': 2.1.5 + '@smithy/core': 1.3.7 + '@smithy/fetch-http-handler': 2.4.4 + '@smithy/hash-node': 2.1.4 + '@smithy/invalid-dependency': 2.1.4 + '@smithy/middleware-content-length': 2.1.4 + '@smithy/middleware-endpoint': 2.4.6 + '@smithy/middleware-retry': 2.1.6 + '@smithy/middleware-serde': 2.2.1 + '@smithy/middleware-stack': 2.1.4 + '@smithy/node-config-provider': 2.2.5 + '@smithy/node-http-handler': 2.4.2 + '@smithy/protocol-http': 3.2.2 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + '@smithy/url-parser': 2.1.4 + '@smithy/util-base64': 2.2.0 + '@smithy/util-body-length-browser': 2.1.1 + '@smithy/util-body-length-node': 2.2.1 + '@smithy/util-defaults-mode-browser': 2.1.6 + '@smithy/util-defaults-mode-node': 2.2.6 + '@smithy/util-endpoints': 1.1.5 + '@smithy/util-middleware': 2.1.4 + '@smithy/util-retry': 2.1.4 + '@smithy/util-utf8': 2.2.0 tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt dev: false - /@aws-sdk/credential-provider-ini@3.433.0: - resolution: {integrity: sha512-T+YhCOORyA4+i4T86FfFCmi/jPsmLOP6GAtScHp/K8XzB9XuVvJSZ+T8SUKeW6/9G9z3Az7dqeBVLcMdC6fFDA==} + /@aws-sdk/core@3.529.0: + resolution: {integrity: sha512-jVpc5XVDx0uX5sltNpTDCfItB54OS8+qpejItU5rStRDUZG9wJBDq8yvNbymFShGLYi5Ly1YdIyriUPc6Q4Gjw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/credential-provider-env': 3.433.0 - '@aws-sdk/credential-provider-process': 3.433.0 - '@aws-sdk/credential-provider-sso': 3.433.0 - '@aws-sdk/credential-provider-web-identity': 3.433.0 - '@aws-sdk/types': 3.433.0 - '@smithy/credential-provider-imds': 2.0.18 - '@smithy/property-provider': 2.0.13 - '@smithy/shared-ini-file-loader': 2.2.2 - '@smithy/types': 2.4.0 + '@smithy/core': 1.3.7 + '@smithy/protocol-http': 3.2.2 + '@smithy/signature-v4': 2.1.4 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/credential-provider-env@3.523.0: + resolution: {integrity: sha512-Y6DWdH6/OuMDoNKVzZlNeBc6f1Yjk1lYMjANKpIhMbkRCvLJw/PYZKOZa8WpXbTYdgg9XLjKybnLIb3ww3uuzA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.4 + '@smithy/types': 2.11.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/credential-provider-http@3.525.0: + resolution: {integrity: sha512-RNWQGuSBQZhl3iqklOslUEfQ4br1V3DCPboMpeqFtddUWJV3m2u2extFur9/4Uy+1EHVF120IwZUKtd8dF+ibw==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.523.0 + '@smithy/fetch-http-handler': 2.4.4 + '@smithy/node-http-handler': 2.4.2 + '@smithy/property-provider': 2.1.4 + '@smithy/protocol-http': 3.2.2 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + '@smithy/util-stream': 2.1.4 + tslib: 2.6.2 + dev: false + + /@aws-sdk/credential-provider-ini@3.529.0(@aws-sdk/credential-provider-node@3.529.0): + resolution: {integrity: sha512-JnK4H4TjD5MMX31idkJ5oQgSygZ+cMrc9syZ81jN+Kru94WHYoMKlvAU4VXTA2HjL0grM9wo6UeNadD9qWjLrQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/client-sts': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/credential-provider-env': 3.523.0 + '@aws-sdk/credential-provider-process': 3.523.0 + '@aws-sdk/credential-provider-sso': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/credential-provider-web-identity': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/types': 3.523.0 + '@smithy/credential-provider-imds': 2.2.6 + '@smithy/property-provider': 2.1.4 + '@smithy/shared-ini-file-loader': 2.3.5 + '@smithy/types': 2.11.0 tslib: 2.6.2 transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' - aws-crt dev: false - /@aws-sdk/credential-provider-node@3.433.0: - resolution: {integrity: sha512-uOTBJszqGJIX5SrH2YdN501cv9rW4ghuSkasxI9DL+sVV5YRMd/bwu6I3PphRyK7z4dosDEbJ1xoIuVR/W04HQ==} + /@aws-sdk/credential-provider-node@3.529.0: + resolution: {integrity: sha512-GrrF3uxovxZ23bZYcSUAa+b0c1UYHkn4XFVnO3tlpx6GmTVWIgQ2zzdw4mwPoTsS9LRKkV/RCyKqf8Cvmkgyeg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/credential-provider-env': 3.433.0 - '@aws-sdk/credential-provider-ini': 3.433.0 - '@aws-sdk/credential-provider-process': 3.433.0 - '@aws-sdk/credential-provider-sso': 3.433.0 - '@aws-sdk/credential-provider-web-identity': 3.433.0 - '@aws-sdk/types': 3.433.0 - '@smithy/credential-provider-imds': 2.0.18 - '@smithy/property-provider': 2.0.13 - '@smithy/shared-ini-file-loader': 2.2.2 - '@smithy/types': 2.4.0 + '@aws-sdk/credential-provider-env': 3.523.0 + '@aws-sdk/credential-provider-http': 3.525.0 + '@aws-sdk/credential-provider-ini': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/credential-provider-process': 3.523.0 + '@aws-sdk/credential-provider-sso': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/credential-provider-web-identity': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/types': 3.523.0 + '@smithy/credential-provider-imds': 2.2.6 + '@smithy/property-provider': 2.1.4 + '@smithy/shared-ini-file-loader': 2.3.5 + '@smithy/types': 2.11.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/credential-provider-process@3.433.0: - resolution: {integrity: sha512-W7FcGlQjio9Y/PepcZGRyl5Bpwb0uWU7qIUCh+u4+q2mW4D5ZngXg8V/opL9/I/p4tUH9VXZLyLGwyBSkdhL+A==} + /@aws-sdk/credential-provider-process@3.523.0: + resolution: {integrity: sha512-f0LP9KlFmMvPWdKeUKYlZ6FkQAECUeZMmISsv6NKtvPCI9e4O4cLTeR09telwDK8P0HrgcRuZfXM7E30m8re0Q==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/property-provider': 2.0.13 - '@smithy/shared-ini-file-loader': 2.2.2 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.4 + '@smithy/shared-ini-file-loader': 2.3.5 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-sso@3.433.0: - resolution: {integrity: sha512-vuc2X7q/1HUAO/NowfnNMpRDoHw8H2lyZZzUc0lmamy6PDrEFBi/VTm1nStGPuS9egCFrYlkRHsfp50ukYGa5w==} + /@aws-sdk/credential-provider-sso@3.529.0(@aws-sdk/credential-provider-node@3.529.0): + resolution: {integrity: sha512-UwG0fmggIlrxCKyD6oSMGL+LN8uq/DSkg4pCQo0uuEB6qGFDnnyvXsQ5lFtBngnmo3PLk34OAZvkz7IS35cl8A==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sso': 3.433.0 - '@aws-sdk/token-providers': 3.433.0 - '@aws-sdk/types': 3.433.0 - '@smithy/property-provider': 2.0.13 - '@smithy/shared-ini-file-loader': 2.2.2 - '@smithy/types': 2.4.0 + '@aws-sdk/client-sso': 3.529.0 + '@aws-sdk/token-providers': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.4 + '@smithy/shared-ini-file-loader': 2.3.5 + '@smithy/types': 2.11.0 tslib: 2.6.2 transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' - aws-crt dev: false - /@aws-sdk/credential-provider-web-identity@3.433.0: - resolution: {integrity: sha512-RlwjP1I5wO+aPpwyCp23Mk8nmRbRL33hqRASy73c4JA2z2YiRua+ryt6MalIxehhwQU6xvXUKulJnPG9VaMFZg==} + /@aws-sdk/credential-provider-web-identity@3.529.0(@aws-sdk/credential-provider-node@3.529.0): + resolution: {integrity: sha512-rtSzWA7HW7iTfd0QvRtoBBFVOwR2xxcvHGdRxj0IczxhjT0aJCadLDuNfr1Y/8tO5TPLcFAoDmcnshQ5Agqp8Q==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/property-provider': 2.0.13 - '@smithy/types': 2.4.0 + '@aws-sdk/client-sts': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.4 + '@smithy/types': 2.11.0 tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' + - aws-crt dev: false - /@aws-sdk/middleware-bucket-endpoint@3.433.0: - resolution: {integrity: sha512-Lk1xIu2tWTRa1zDw5hCF1RrpWQYSodUhrS/q3oKz8IAoFqEy+lNaD5jx+fycuZb5EkE4IzWysT+8wVkd0mAnOg==} + /@aws-sdk/middleware-bucket-endpoint@3.525.0: + resolution: {integrity: sha512-nYfQ2Xspfef7j8mZO7varUWLPH6HQlXateH7tBVtBNUAazyQE4UJEvC0fbQ+Y01e+FKlirim/m2umkdMXqAlTg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@aws-sdk/util-arn-parser': 3.310.0 - '@smithy/node-config-provider': 2.1.3 - '@smithy/protocol-http': 3.0.8 - '@smithy/types': 2.4.0 - '@smithy/util-config-provider': 2.0.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-arn-parser': 3.495.0 + '@smithy/node-config-provider': 2.2.5 + '@smithy/protocol-http': 3.2.2 + '@smithy/types': 2.11.0 + '@smithy/util-config-provider': 2.2.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-expect-continue@3.433.0: - resolution: {integrity: sha512-Uq2rPIsjz0CR2sulM/HyYr5WiqiefrSRLdwUZuA7opxFSfE808w5DBWSprHxbH3rbDSQR4nFiOiVYIH8Eth7nA==} + /@aws-sdk/middleware-expect-continue@3.523.0: + resolution: {integrity: sha512-E5DyRAHU39VHaAlQLqXYS/IKpgk3vsryuU6kkOcIIK8Dgw0a2tjoh5AOCaNa8pD+KgAGrFp35JIMSX1zui5diA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/protocol-http': 3.0.8 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@smithy/protocol-http': 3.2.2 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-flexible-checksums@3.433.0: - resolution: {integrity: sha512-Ptssx373+I7EzFUWjp/i/YiNFt6I6sDuRHz6DOUR9nmmRTlHHqmdcBXlJL2d9wwFxoBRCN8/PXGsTc/DJ4c95Q==} + /@aws-sdk/middleware-flexible-checksums@3.523.0: + resolution: {integrity: sha512-lIa1TdWY9q4zsDFarfSnYcdrwPR+nypaU4n6hb95i620/1F5M5s6H8P0hYtwTNNvx+slrR8F3VBML9pjBtzAHw==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/crc32': 3.0.0 '@aws-crypto/crc32c': 3.0.0 - '@aws-sdk/types': 3.433.0 - '@smithy/is-array-buffer': 2.0.0 - '@smithy/protocol-http': 3.0.8 - '@smithy/types': 2.4.0 - '@smithy/util-utf8': 2.0.0 + '@aws-sdk/types': 3.523.0 + '@smithy/is-array-buffer': 2.1.1 + '@smithy/protocol-http': 3.2.2 + '@smithy/types': 2.11.0 + '@smithy/util-utf8': 2.2.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-host-header@3.433.0: - resolution: {integrity: sha512-mBTq3UWv1UzeHG+OfUQ2MB/5GEkt5LTKFaUqzL7ESwzW8XtpBgXnjZvIwu3Vcd3sEetMwijwaGiJhY0ae/YyaA==} + /@aws-sdk/middleware-host-header@3.523.0: + resolution: {integrity: sha512-4g3q7Ta9sdD9TMUuohBAkbx/e3I/juTqfKi7TPgP+8jxcYX72MOsgemAMHuP6CX27eyj4dpvjH+w4SIVDiDSmg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/protocol-http': 3.0.8 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@smithy/protocol-http': 3.2.2 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-location-constraint@3.433.0: - resolution: {integrity: sha512-2YD860TGntwZifIUbxm+lFnNJJhByR/RB/+fV1I8oGKg+XX2rZU+94pRfHXRywoZKlCA0L+LGDA1I56jxrB9sw==} + /@aws-sdk/middleware-location-constraint@3.523.0: + resolution: {integrity: sha512-1QAUXX3U0jkARnU0yyjk81EO4Uw5dCeQOtvUY5s3bUOHatR3ThosQeIr6y9BCsbXHzNnDe1ytCjqAPyo8r/bYw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-logger@3.433.0: - resolution: {integrity: sha512-We346Fb5xGonTGVZC9Nvqtnqy74VJzYuTLLiuuftA5sbNzftBDy/22QCfvYSTOAl3bvif+dkDUzQY2ihc5PwOQ==} + /@aws-sdk/middleware-logger@3.523.0: + resolution: {integrity: sha512-PeDNJNhfiaZx54LBaLTXzUaJ9LXFwDFFIksipjqjvxMafnoVcQwKbkoPUWLe5ytT4nnL1LogD3s55mERFUsnwg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-recursion-detection@3.433.0: - resolution: {integrity: sha512-HEvYC9PQlWY/ccUYtLvAlwwf1iCif2TSAmLNr3YTBRVa98x6jKL0hlCrHWYklFeqOGSKy6XhE+NGJMUII0/HaQ==} + /@aws-sdk/middleware-recursion-detection@3.523.0: + resolution: {integrity: sha512-nZ3Vt7ehfSDYnrcg/aAfjjvpdE+61B3Zk68i6/hSUIegT3IH9H1vSW67NDKVp+50hcEfzWwM2HMPXxlzuyFyrw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/protocol-http': 3.0.8 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@smithy/protocol-http': 3.2.2 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-sdk-s3@3.433.0: - resolution: {integrity: sha512-mkn3DiSuMVh4NTLsduC42Av+ApcOor52LMoQY0Wc6M5Mx7Xd05U+G1j8sjI9n/1bs5cZ/PoeRYJ/9bL1Xxznnw==} + /@aws-sdk/middleware-sdk-s3@3.525.0: + resolution: {integrity: sha512-ewFyyFM6wdFTOqCiId5GQNi7owDdLEonQhB4h8tF6r3HV52bRlDvZA4aDos+ft6N/XY2J6L0qlFTFq+/oiurXw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@aws-sdk/util-arn-parser': 3.310.0 - '@smithy/protocol-http': 3.0.8 - '@smithy/smithy-client': 2.1.12 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-arn-parser': 3.495.0 + '@smithy/node-config-provider': 2.2.5 + '@smithy/protocol-http': 3.2.2 + '@smithy/signature-v4': 2.1.4 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + '@smithy/util-config-provider': 2.2.1 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-sdk-sts@3.433.0: - resolution: {integrity: sha512-ORYbJnBejUyonFl5FwIqhvI3Cq6sAp9j+JpkKZtFNma9tFPdrhmYgfCeNH32H/wGTQV/tUoQ3luh0gA4cuk6DA==} + /@aws-sdk/middleware-signing@3.523.0: + resolution: {integrity: sha512-pFXV4don6qcmew/OvEjLUr2foVjzoJ8o5k57Oz9yAHz8INx3RHK8MP/K4mVhHo6n0SquRcWrm4kY/Tw+89gkEA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/middleware-signing': 3.433.0 - '@aws-sdk/types': 3.433.0 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.4 + '@smithy/protocol-http': 3.2.2 + '@smithy/signature-v4': 2.1.4 + '@smithy/types': 2.11.0 + '@smithy/util-middleware': 2.1.4 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-signing@3.433.0: - resolution: {integrity: sha512-jxPvt59NZo/epMNLNTu47ikmP8v0q217I6bQFGJG7JVFnfl36zDktMwGw+0xZR80qiK47/2BWrNpta61Zd2FxQ==} + /@aws-sdk/middleware-ssec@3.523.0: + resolution: {integrity: sha512-FaqAZQeF5cQzZLOIboIJRaWVOQ2F2pJZAXGF5D7nJsxYNFChotA0O0iWimBRxU35RNn7yirVxz35zQzs20ddIw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/property-provider': 2.0.13 - '@smithy/protocol-http': 3.0.8 - '@smithy/signature-v4': 2.0.12 - '@smithy/types': 2.4.0 - '@smithy/util-middleware': 2.0.5 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-ssec@3.433.0: - resolution: {integrity: sha512-2AMaPx0kYfCiekxoL7aqFqSSoA9du+yI4zefpQNLr+1cZOerYiDxdsZ4mbqStR1CVFaX6U6hrYokXzjInsvETw==} + /@aws-sdk/middleware-user-agent@3.525.0: + resolution: {integrity: sha512-4al/6uO+t/QIYXK2OgqzDKQzzLAYJza1vWFS+S0lJ3jLNGyLB5BMU5KqWjDzevYZ4eCnz2Nn7z0FveUTNz8YdQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-endpoints': 3.525.0 + '@smithy/protocol-http': 3.2.2 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-user-agent@3.433.0: - resolution: {integrity: sha512-jMgA1jHfisBK4oSjMKrtKEZf0sl2vzADivkFmyZFzORpSZxBnF6hC21RjaI+70LJLcc9rSCzLgcoz5lHb9LLDg==} + /@aws-sdk/region-config-resolver@3.525.0: + resolution: {integrity: sha512-8kFqXk6UyKgTMi7N7QlhA6qM4pGPWbiUXqEY2RgUWngtxqNFGeM9JTexZeuavQI+qLLe09VPShPNX71fEDcM6w==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@aws-sdk/util-endpoints': 3.433.0 - '@smithy/protocol-http': 3.0.8 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@smithy/node-config-provider': 2.2.5 + '@smithy/types': 2.11.0 + '@smithy/util-config-provider': 2.2.1 + '@smithy/util-middleware': 2.1.4 tslib: 2.6.2 dev: false - /@aws-sdk/region-config-resolver@3.433.0: - resolution: {integrity: sha512-xpjRjCZW+CDFdcMmmhIYg81ST5UAnJh61IHziQEk0FXONrg4kjyYPZAOjEdzXQ+HxJQuGQLKPhRdzxmQnbX7pg==} + /@aws-sdk/s3-request-presigner@3.529.0: + resolution: {integrity: sha512-vF7u8pKxFF//oTnZuQ2r8KEaUt1pgv7aYNC6sLCatC7DxQ+9jrmJki9zzFKOAA0oxcepOtgNx+I/G6ljFP2/zg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.1.3 - '@smithy/types': 2.4.0 - '@smithy/util-config-provider': 2.0.0 - '@smithy/util-middleware': 2.0.5 + '@aws-sdk/signature-v4-multi-region': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@aws-sdk/util-format-url': 3.523.0 + '@smithy/middleware-endpoint': 2.4.6 + '@smithy/protocol-http': 3.2.2 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/signature-v4-multi-region@3.433.0: - resolution: {integrity: sha512-wl2j1dos4VOKFawbapPm/0CNa3cIgpJXbEx+sp+DI3G8tSuP3c5UGtm0pXjM85egxZulhHVK1RVde0iD8j63pQ==} + /@aws-sdk/signature-v4-multi-region@3.525.0: + resolution: {integrity: sha512-j8gkdfiokaherRgokfZBl2azYBMHlegT7pOnR/3Y79TSz6G+bJeIkuNk8aUbJArr6R8nvAM1j4dt1rBM+efolQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/protocol-http': 3.0.8 - '@smithy/signature-v4': 2.0.12 - '@smithy/types': 2.4.0 + '@aws-sdk/middleware-sdk-s3': 3.525.0 + '@aws-sdk/types': 3.523.0 + '@smithy/protocol-http': 3.2.2 + '@smithy/signature-v4': 2.1.4 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/token-providers@3.433.0: - resolution: {integrity: sha512-Q6aYVaQKB+CkBLHQQlN8MHVpOzZv9snRfVz7SxIpdbHkRuGEHiLliCY3fg6Sonvu3AKEPERPuHcaC75tnNpOBw==} + /@aws-sdk/token-providers@3.529.0(@aws-sdk/credential-provider-node@3.529.0): + resolution: {integrity: sha512-mQrqF9YwApeh5AkUpZqvGhpXzQyUFm6Yxh3/cOTXd5cBjttcAlenyc75BTYb4kYXj1xW5dktnlnFD7sS+s7e8g==} 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.433.0 - '@aws-sdk/middleware-logger': 3.433.0 - '@aws-sdk/middleware-recursion-detection': 3.433.0 - '@aws-sdk/middleware-user-agent': 3.433.0 - '@aws-sdk/types': 3.433.0 - '@aws-sdk/util-endpoints': 3.433.0 - '@aws-sdk/util-user-agent-browser': 3.433.0 - '@aws-sdk/util-user-agent-node': 3.433.0 - '@smithy/config-resolver': 2.0.16 - '@smithy/fetch-http-handler': 2.2.4 - '@smithy/hash-node': 2.0.12 - '@smithy/invalid-dependency': 2.0.12 - '@smithy/middleware-content-length': 2.0.14 - '@smithy/middleware-endpoint': 2.1.3 - '@smithy/middleware-retry': 2.0.18 - '@smithy/middleware-serde': 2.0.12 - '@smithy/middleware-stack': 2.0.6 - '@smithy/node-config-provider': 2.1.3 - '@smithy/node-http-handler': 2.1.8 - '@smithy/property-provider': 2.0.13 - '@smithy/protocol-http': 3.0.8 - '@smithy/shared-ini-file-loader': 2.2.2 - '@smithy/smithy-client': 2.1.12 - '@smithy/types': 2.4.0 - '@smithy/url-parser': 2.0.12 - '@smithy/util-base64': 2.0.0 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.16 - '@smithy/util-defaults-mode-node': 2.0.21 - '@smithy/util-retry': 2.0.5 - '@smithy/util-utf8': 2.0.0 + '@aws-sdk/client-sso-oidc': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/types': 3.523.0 + '@smithy/property-provider': 2.1.4 + '@smithy/shared-ini-file-loader': 2.3.5 + '@smithy/types': 2.11.0 tslib: 2.6.2 transitivePeerDependencies: + - '@aws-sdk/credential-provider-node' - aws-crt dev: false - /@aws-sdk/types@3.433.0: - resolution: {integrity: sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA==} + /@aws-sdk/types@3.523.0: + resolution: {integrity: sha512-AqGIu4u+SxPiUuNBp2acCVcq80KDUFjxe6e3cMTvKWTzCbrVk1AXv0dAaJnCmdkWIha6zJDWxpIk/aL4EGhZ9A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/util-arn-parser@3.310.0: - resolution: {integrity: sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==} + /@aws-sdk/util-arn-parser@3.495.0: + resolution: {integrity: sha512-hwdA3XAippSEUxs7jpznwD63YYFR+LtQvlEcebPTgWR9oQgG9TfS+39PUfbnEeje1ICuOrN3lrFqFbmP9uzbMg==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@aws-sdk/util-endpoints@3.433.0: - resolution: {integrity: sha512-LFNUh9FH7RMtYjSjPGz9lAJQMzmJ3RcXISzc5X5k2R/9mNwMK7y1k2VAfvx+RbuDbll6xwsXlgv6QHcxVdF2zw==} + /@aws-sdk/util-endpoints@3.525.0: + resolution: {integrity: sha512-DIW7WWU5tIGkeeKX6NJUyrEIdWMiqjLQG3XBzaUj+ufIENwNjdAHhlD8l2vX7Yr3JZRT6yN/84wBCj7Tw1xd1g==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.433.0 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.11.0 + '@smithy/util-endpoints': 1.1.5 + tslib: 2.6.2 + dev: false + + /@aws-sdk/util-format-url@3.523.0: + resolution: {integrity: sha512-OWi+8bsEfxG4DvHkWauxyWVZMbYrezC49DbGDEu1lJgk9eqQALlyGkZHt9O8KKfyT/mdqQbR8qbpkxqYcGuHVA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-sdk/types': 3.523.0 + '@smithy/querystring-builder': 2.1.4 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false @@ -593,17 +683,17 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/util-user-agent-browser@3.433.0: - resolution: {integrity: sha512-2Cf/Lwvxbt5RXvWFXrFr49vXv0IddiUwrZoAiwhDYxvsh+BMnh+NUFot+ZQaTrk/8IPZVDeLPWZRdVy00iaVXQ==} + /@aws-sdk/util-user-agent-browser@3.523.0: + resolution: {integrity: sha512-6ZRNdGHX6+HQFqTbIA5+i8RWzxFyxsZv8D3soRfpdyWIKkzhSz8IyRKXRciwKBJDaC7OX2jzGE90wxRQft27nA==} dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@smithy/types': 2.11.0 bowser: 2.11.0 tslib: 2.6.2 dev: false - /@aws-sdk/util-user-agent-node@3.433.0: - resolution: {integrity: sha512-yT1tO4MbbsUBLl5+S+jVv8wxiAtP5TKjKib9B2KQ2x0OtWWTrIf2o+IZK8va+zQqdV4MVMjezdxdE20hOdB4yQ==} + /@aws-sdk/util-user-agent-node@3.525.0: + resolution: {integrity: sha512-88Wjt4efyUSBGcyIuh1dvoMqY1k15jpJc5A/3yi67clBQEFsu9QCodQCQPqmRjV3VRcMtBOk+jeCTiUzTY5dRQ==} engines: {node: '>=14.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -611,9 +701,9 @@ packages: aws-crt: optional: true dependencies: - '@aws-sdk/types': 3.433.0 - '@smithy/node-config-provider': 2.1.3 - '@smithy/types': 2.4.0 + '@aws-sdk/types': 3.523.0 + '@smithy/node-config-provider': 2.2.5 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false @@ -623,40 +713,41 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/xml-builder@3.310.0: - resolution: {integrity: sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==} + /@aws-sdk/xml-builder@3.523.0: + resolution: {integrity: sha512-wfvyVymj2TUw7SuDor9IuFcAzJZvWRBZotvY/wQJOlYa3UP3Oezzecy64N4FWfBJEsZdrTN+HOZFl+IzTWWnUA==} engines: {node: '>=14.0.0'} dependencies: + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@babel/code-frame@7.22.13: - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.20 + '@babel/highlight': 7.23.4 chalk: 2.4.2 dev: true - /@babel/compat-data@7.23.2: - resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.23.2: - resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} + /@babel/core@7.24.0: + resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.0(@babel/core@7.23.2) - '@babel/helpers': 7.23.2 - '@babel/parser': 7.23.0 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helpers': 7.24.0 + '@babel/parser': 7.24.0 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -666,23 +757,23 @@ packages: - supports-color dev: true - /@babel/generator@7.23.0: - resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 dev: true - /@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.2 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.22.1 + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 dev: true @@ -696,31 +787,31 @@ packages: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.0 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.24.0 dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.24.0 dev: true - /@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2): - resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.0 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -728,8 +819,8 @@ packages: '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + /@babel/helper-plugin-utils@7.24.0: + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} dev: true @@ -737,18 +828,18 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.24.0 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.24.0 dev: true - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} dev: true @@ -757,24 +848,24 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.23.2: - resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + /@babel/helpers@7.24.0: + resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 @@ -782,175 +873,175 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.0: - resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + /@babel/parser@7.24.0: + resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.24.0 dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.2): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.0): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.2): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.0): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.2): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.2): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.2): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.0): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.2): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.0): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.2): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.0): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.2): - resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.0): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/core': 7.24.0 + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/template@7.22.15: - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 dev: true - /@babel/traverse@7.23.2: - resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + /@babel/traverse@7.24.0: + resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.23.0 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.23.0: - resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.22.5 + '@babel/helper-string-parser': 7.23.4 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true @@ -959,30 +1050,30 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.52.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.52.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp@4.9.1: - resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.2: - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.23.0 - ignore: 5.2.4 + globals: 13.24.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -991,16 +1082,16 @@ packages: - supports-color dev: true - /@eslint/js@8.52.0: - resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array@0.11.13: - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.1 + '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -1012,8 +1103,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: true /@isaacs/cliui@8.0.2: @@ -1049,7 +1140,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.8.8 + '@types/node': 20.11.25 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -1070,14 +1161,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.8 + '@types/node': 20.11.25 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.8.8) + jest-config: 29.7.0(@types/node@20.11.25) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -1105,7 +1196,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.8 + '@types/node': 20.11.25 jest-mock: 29.7.0 dev: true @@ -1132,7 +1223,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.8.8 + '@types/node': 20.11.25 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -1164,25 +1255,25 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.20 - '@types/node': 20.8.8 + '@jridgewell/trace-mapping': 0.3.25 + '@types/node': 20.11.25 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 6.0.1 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.6 + istanbul-reports: 3.1.7 jest-message-util: 29.7.0 jest-util: 29.7.0 jest-worker: 29.7.0 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - v8-to-istanbul: 9.1.3 + v8-to-istanbul: 9.2.0 transitivePeerDependencies: - supports-color dev: true @@ -1198,7 +1289,7 @@ packages: resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 dev: true @@ -1209,7 +1300,7 @@ packages: dependencies: '@jest/console': 29.7.0 '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.5 + '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 dev: true @@ -1227,9 +1318,9 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.0 '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 @@ -1251,29 +1342,29 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.5 - '@types/istanbul-reports': 3.0.3 - '@types/node': 20.8.8 - '@types/yargs': 17.0.29 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.11.25 + '@types/yargs': 17.0.32 chalk: 4.1.2 dev: true - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/set-array': 1.1.2 + '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 dev: true - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} dev: true @@ -1281,10 +1372,10 @@ packages: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 dev: true @@ -1306,7 +1397,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.17.1 dev: true /@pkgjs/parseargs@0.11.0: @@ -1320,8 +1411,8 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@sinonjs/commons@3.0.0: - resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} + /@sinonjs/commons@3.0.1: + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} dependencies: type-detect: 4.0.8 dev: true @@ -1329,435 +1420,462 @@ packages: /@sinonjs/fake-timers@10.3.0: resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} dependencies: - '@sinonjs/commons': 3.0.0 + '@sinonjs/commons': 3.0.1 dev: true - /@smithy/abort-controller@2.0.12: - resolution: {integrity: sha512-YIJyefe1mi3GxKdZxEBEuzYOeQ9xpYfqnFmWzojCssRAuR7ycxwpoRQgp965vuW426xUAQhCV5rCaWElQ7XsaA==} + /@smithy/abort-controller@2.1.4: + resolution: {integrity: sha512-66HO817oIZ2otLIqy06R5muapqZjkgF1jfU0wyNko8cuqZNu8nbS9ljlhcRYw/M/uWRJzB9ih81DLSHhYbBLlQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 + tslib: 2.6.2 + dev: false + + /@smithy/chunked-blob-reader-native@2.1.2: + resolution: {integrity: sha512-KwR9fFc/t5jH9RQFbrA9DHSmI+URTmB4v+i7H08UNET9AcN6GGBTBMiDKpA56Crw6CN7cSaSDXaRS/AsfOuupQ==} + dependencies: + '@smithy/util-base64': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/chunked-blob-reader-native@2.0.0: - resolution: {integrity: sha512-HM8V2Rp1y8+1343tkZUKZllFhEQPNmpNdgFAncbTsxkZ18/gqjk23XXv3qGyXWp412f3o43ZZ1UZHVcHrpRnCQ==} + /@smithy/chunked-blob-reader@2.1.1: + resolution: {integrity: sha512-NjNFCKxC4jVvn+lUr3Yo4/PmUJj3tbyqH6GNHueyTGS5Q27vlEJ1MkNhUDV8QGxJI7Bodnc2pD18lU2zRfhHlQ==} dependencies: - '@smithy/util-base64': 2.0.0 tslib: 2.6.2 dev: false - /@smithy/chunked-blob-reader@2.0.0: - resolution: {integrity: sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg==} + /@smithy/config-resolver@2.1.5: + resolution: {integrity: sha512-LcBB5JQC3Tx2ZExIJzfvWaajhFIwHrUNQeqxhred2r5nnqrdly9uoCrvM1sxOOdghYuWWm2Kr8tBCDOmxsgeTA==} + engines: {node: '>=14.0.0'} dependencies: + '@smithy/node-config-provider': 2.2.5 + '@smithy/types': 2.11.0 + '@smithy/util-config-provider': 2.2.1 + '@smithy/util-middleware': 2.1.4 tslib: 2.6.2 dev: false - /@smithy/config-resolver@2.0.16: - resolution: {integrity: sha512-1k+FWHQDt2pfpXhJsOmNMmlAZ3NUQ98X5tYsjQhVGq+0X6cOBMhfh6Igd0IX3Ut6lEO6DQAdPMI/blNr3JZfMQ==} + /@smithy/core@1.3.7: + resolution: {integrity: sha512-zHrrstOO78g+/rOJoHi4j3mGUBtsljRhcKNzloWPv1XIwgcFUi+F1YFKr2qPQ3z7Ls5dNc4L2SPrVarNFIQqog==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.1.3 - '@smithy/types': 2.4.0 - '@smithy/util-config-provider': 2.0.0 - '@smithy/util-middleware': 2.0.5 + '@smithy/middleware-endpoint': 2.4.6 + '@smithy/middleware-retry': 2.1.6 + '@smithy/middleware-serde': 2.2.1 + '@smithy/protocol-http': 3.2.2 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + '@smithy/util-middleware': 2.1.4 tslib: 2.6.2 dev: false - /@smithy/credential-provider-imds@2.0.18: - resolution: {integrity: sha512-QnPBi6D2zj6AHJdUTo5zXmk8vwHJ2bNevhcVned1y+TZz/OI5cizz5DsYNkqFUIDn8tBuEyKNgbmKVNhBbuY3g==} + /@smithy/credential-provider-imds@2.2.6: + resolution: {integrity: sha512-+xQe4Pite0kdk9qn0Vyw5BRVh0iSlj+T4TEKRXr4E1wZKtVgIzGlkCrfICSjiPVFkPxk4jMpVboMYdEiiA88/w==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.1.3 - '@smithy/property-provider': 2.0.13 - '@smithy/types': 2.4.0 - '@smithy/url-parser': 2.0.12 + '@smithy/node-config-provider': 2.2.5 + '@smithy/property-provider': 2.1.4 + '@smithy/types': 2.11.0 + '@smithy/url-parser': 2.1.4 tslib: 2.6.2 dev: false - /@smithy/eventstream-codec@2.0.12: - resolution: {integrity: sha512-ZZQLzHBJkbiAAdj2C5K+lBlYp/XJ+eH2uy+jgJgYIFW/o5AM59Hlj7zyI44/ZTDIQWmBxb3EFv/c5t44V8/g8A==} + /@smithy/eventstream-codec@2.1.4: + resolution: {integrity: sha512-UkiieTztP7adg8EuqZvB0Y4LewdleZCJU7Kgt9RDutMsRYqO32fMpWeQHeTHaIMosmzcRZUykMRrhwGJe9mP3A==} dependencies: '@aws-crypto/crc32': 3.0.0 - '@smithy/types': 2.4.0 - '@smithy/util-hex-encoding': 2.0.0 + '@smithy/types': 2.11.0 + '@smithy/util-hex-encoding': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-browser@2.0.12: - resolution: {integrity: sha512-0pi8QlU/pwutNshoeJcbKR1p7Ie5STd8UFAMX5xhSoSJjNlxIv/OsHbF023jscMRN2Prrqd6ToGgdCnsZVQjvg==} + /@smithy/eventstream-serde-browser@2.1.4: + resolution: {integrity: sha512-K0SyvrUu/vARKzNW+Wp9HImiC/cJ6K88/n7FTH1slY+MErdKoiSbRLaXbJ9qD6x1Hu28cplHMlhADwZelUx/Ww==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-serde-universal': 2.0.12 - '@smithy/types': 2.4.0 + '@smithy/eventstream-serde-universal': 2.1.4 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-config-resolver@2.0.12: - resolution: {integrity: sha512-I0XfwQkIX3gAnbrU5rLMkBSjTM9DHttdbLwf12CXmj7SSI5dT87PxtKLRrZGanaCMbdf2yCep+MW5/4M7IbvQA==} + /@smithy/eventstream-serde-config-resolver@2.1.4: + resolution: {integrity: sha512-FH+2AwOwZ0kHPB9sciWJtUqx81V4vizfT3P6T9eslmIC2hi8ch/KFvQlF7jDmwR1aLlPlq6qqLKLqzK/71Ki4A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-node@2.0.12: - resolution: {integrity: sha512-vf1vMHGOkG3uqN9x1zKOhnvW/XgvhJXWqjV6zZiT2FMjlEayugQ1mzpSqr7uf89+BzjTzuZKERmOsEAmewLbxw==} + /@smithy/eventstream-serde-node@2.1.4: + resolution: {integrity: sha512-gsc5ZTvVcB9sleLQzsK/rOhgn52+AAsmhEr41WDwAcctccBjh429+b8gT9t+SU8QyajypfsLOZfJQu0+zE515Q==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-serde-universal': 2.0.12 - '@smithy/types': 2.4.0 + '@smithy/eventstream-serde-universal': 2.1.4 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-universal@2.0.12: - resolution: {integrity: sha512-xZ3ZNpCxIND+q+UCy7y1n1/5VQEYicgSTNCcPqsKawX+Vd+6OcFX7gUHMyPzL8cZr+GdmJuxNleqHlH4giK2tw==} + /@smithy/eventstream-serde-universal@2.1.4: + resolution: {integrity: sha512-NKLAsYnZA5s+ntipJRKo1RrRbhYHrsEnmiUoz0EhVYrAih+UELY9sKR+A1ujGaFm3nKDs5fPfiozC2wpXq2zUA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-codec': 2.0.12 - '@smithy/types': 2.4.0 + '@smithy/eventstream-codec': 2.1.4 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/fetch-http-handler@2.2.4: - resolution: {integrity: sha512-gIPRFEGi+c6V52eauGKrjDzPWF2Cu7Z1r5F8A3j2wcwz25sPG/t8kjsbEhli/tS/2zJp/ybCZXe4j4ro3yv/HA==} + /@smithy/fetch-http-handler@2.4.4: + resolution: {integrity: sha512-DSUtmsnIx26tPuyyrK49dk2DAhPgEw6xRW7V62nMHIB5dk3NqhGnwcKO2fMdt/l3NUVgia34ZsSJA8bD+3nh7g==} dependencies: - '@smithy/protocol-http': 3.0.8 - '@smithy/querystring-builder': 2.0.12 - '@smithy/types': 2.4.0 - '@smithy/util-base64': 2.0.0 + '@smithy/protocol-http': 3.2.2 + '@smithy/querystring-builder': 2.1.4 + '@smithy/types': 2.11.0 + '@smithy/util-base64': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/hash-blob-browser@2.0.12: - resolution: {integrity: sha512-riLnV16f27yyePX8UF0deRHAeccUK8SrOxyTykSTrnVkgS3DsjNapZtTbd8OGNKEbI60Ncdb5GwN3rHZudXvog==} + /@smithy/hash-blob-browser@2.1.4: + resolution: {integrity: sha512-bDugS1DortnriGDdp0sqdq7dLI5if8CEOF9rKtpJa1ZYMq6fxOtTId//dlilS5QgUtUs6GHN5aMQVxEjhBzzQA==} dependencies: - '@smithy/chunked-blob-reader': 2.0.0 - '@smithy/chunked-blob-reader-native': 2.0.0 - '@smithy/types': 2.4.0 + '@smithy/chunked-blob-reader': 2.1.1 + '@smithy/chunked-blob-reader-native': 2.1.2 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/hash-node@2.0.12: - resolution: {integrity: sha512-fDZnTr5j9t5qcbeJ037aMZXxMka13Znqwrgy3PAqYj6Dm3XHXHftTH3q+NWgayUxl1992GFtQt1RuEzRMy3NnQ==} + /@smithy/hash-node@2.1.4: + resolution: {integrity: sha512-uvCcpDLXaTTL0X/9ezF8T8sS77UglTfZVQaUOBiCvR0QydeSyio3t0Hj3QooVdyFsKTubR8gCk/ubLk3vAyDng==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 - '@smithy/util-buffer-from': 2.0.0 - '@smithy/util-utf8': 2.0.0 + '@smithy/types': 2.11.0 + '@smithy/util-buffer-from': 2.1.1 + '@smithy/util-utf8': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/hash-stream-node@2.0.12: - resolution: {integrity: sha512-x/DrSynPKrW0k00q7aZ/vy531a3mRw79mOajHp+cIF0TrA1SqEMFoy/B8X0XtoAtlJWt/vvgeDNqt/KAeaAqMw==} + /@smithy/hash-stream-node@2.1.4: + resolution: {integrity: sha512-HcDQRs/Fcx7lwAd+/vSW/e7ltdh148D2Pq7XI61CEWcOoQdQ0W8aYBHDRC4zjtXv6hySdmWE+vo3dvdTt7aj8A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 - '@smithy/util-utf8': 2.0.0 + '@smithy/types': 2.11.0 + '@smithy/util-utf8': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/invalid-dependency@2.0.12: - resolution: {integrity: sha512-p5Y+iMHV3SoEpy3VSR7mifbreHQwVSvHSAz/m4GdoXfOzKzaYC8hYv10Ks7Deblkf7lhas8U+lAp9ThbBM+ZXA==} + /@smithy/invalid-dependency@2.1.4: + resolution: {integrity: sha512-QzlNBl6jt3nb9jNnE51wTegReVvUdozyMMrFEyb/rc6AzPID1O+qMJYjAAoNw098y0CZVfCpEnoK2+mfBOd8XA==} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/is-array-buffer@2.0.0: - resolution: {integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==} + /@smithy/is-array-buffer@2.1.1: + resolution: {integrity: sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/md5-js@2.0.12: - resolution: {integrity: sha512-OgDt+Xnrw+W5z3MSl5KZZzebqmXrYl9UdbCiBYnnjErmNywwSjV6QB/Oic3/7hnsPniSU81n7Rvlhz2kH4EREQ==} + /@smithy/md5-js@2.1.4: + resolution: {integrity: sha512-WHTnnYJPKE7Sy49DogLuox42TnlwD3cQ6TObPD6WFWjKocWIdpEpIvdJHwWUfSFf0JIi8ON8z6ZEhsnyKVCcLQ==} dependencies: - '@smithy/types': 2.4.0 - '@smithy/util-utf8': 2.0.0 + '@smithy/types': 2.11.0 + '@smithy/util-utf8': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/middleware-content-length@2.0.14: - resolution: {integrity: sha512-poUNgKTw9XwPXfX9nEHpVgrMNVpaSMZbshqvPxFVoalF4wp6kRzYKOfdesSVectlQ51VtigoLfbXcdyPwvxgTg==} + /@smithy/middleware-content-length@2.1.4: + resolution: {integrity: sha512-C6VRwfcr0w9qRFhDGCpWMVhlEIBFlmlPRP1aX9Cv9xDj9SUwlDrNvoV1oP1vjRYuLxCDgovBBynCwwcluS2wLw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/protocol-http': 3.0.8 - '@smithy/types': 2.4.0 + '@smithy/protocol-http': 3.2.2 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/middleware-endpoint@2.1.3: - resolution: {integrity: sha512-ZrQ0/YX6hNVTxqMEHtEaDbDv6pNeEji/a5Vk3HuFC5R3ZY8lfoATyxmOGxBVYnF3NUvZLNC7umEv1WzWGWvCGQ==} + /@smithy/middleware-endpoint@2.4.6: + resolution: {integrity: sha512-AsXtUXHPOAS0EGZUSFOsVJvc7p0KL29PGkLxLfycPOcFVLru/oinYB6yvyL73ZZPX2OB8sMYUMrj7eH2kI7V/w==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-serde': 2.0.12 - '@smithy/node-config-provider': 2.1.3 - '@smithy/shared-ini-file-loader': 2.2.2 - '@smithy/types': 2.4.0 - '@smithy/url-parser': 2.0.12 - '@smithy/util-middleware': 2.0.5 + '@smithy/middleware-serde': 2.2.1 + '@smithy/node-config-provider': 2.2.5 + '@smithy/shared-ini-file-loader': 2.3.5 + '@smithy/types': 2.11.0 + '@smithy/url-parser': 2.1.4 + '@smithy/util-middleware': 2.1.4 tslib: 2.6.2 dev: false - /@smithy/middleware-retry@2.0.18: - resolution: {integrity: sha512-VyrHQRldGSb3v9oFOB5yPxmLT7U2sQic2ytylOnYlnsmVOLlFIaI6sW22c+w2675yq+XZ6HOuzV7x2OBYCWRNA==} + /@smithy/middleware-retry@2.1.6: + resolution: {integrity: sha512-khpSV0NxqMHfa06kfG4WYv+978sVvfTFmn0hIFKKwOXtIxyYtPKiQWFT4nnwZD07fGdYGbtCBu3YALc8SsA5mA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.1.3 - '@smithy/protocol-http': 3.0.8 - '@smithy/service-error-classification': 2.0.5 - '@smithy/types': 2.4.0 - '@smithy/util-middleware': 2.0.5 - '@smithy/util-retry': 2.0.5 + '@smithy/node-config-provider': 2.2.5 + '@smithy/protocol-http': 3.2.2 + '@smithy/service-error-classification': 2.1.4 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + '@smithy/util-middleware': 2.1.4 + '@smithy/util-retry': 2.1.4 tslib: 2.6.2 uuid: 8.3.2 dev: false - /@smithy/middleware-serde@2.0.12: - resolution: {integrity: sha512-IBeco157lIScecq2Z+n0gq56i4MTnfKxS7rbfrAORveDJgnbBAaEQgYqMqp/cYqKrpvEXcyTjwKHrBjCCIZh2A==} + /@smithy/middleware-serde@2.2.1: + resolution: {integrity: sha512-VAWRWqnNjgccebndpyK94om4ZTYzXLQxUmNCXYzM/3O9MTfQjTNBgtFtQwyIIez6z7LWcCsXmnKVIOE9mLqAHQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/middleware-stack@2.0.6: - resolution: {integrity: sha512-YSvNZeOKWLJ0M/ycxwDIe2Ztkp6Qixmcml1ggsSv2fdHKGkBPhGrX5tMzPGMI1yyx55UEYBi2OB4s+RriXX48A==} + /@smithy/middleware-stack@2.1.4: + resolution: {integrity: sha512-Qqs2ba8Ax1rGKOSGJS2JN23fhhox2WMdRuzx0NYHtXzhxbJOIMmz9uQY6Hf4PY8FPteBPp1+h0j5Fmr+oW12sg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/node-config-provider@2.1.3: - resolution: {integrity: sha512-J6lXvRHGVnSX3n1PYi+e1L5HN73DkkJpUviV3Ebf+8wSaIjAf+eVNbzyvh/S5EQz7nf4KVfwbD5vdoZMAthAEQ==} + /@smithy/node-config-provider@2.2.5: + resolution: {integrity: sha512-CxPf2CXhjO79IypHJLBATB66Dw6suvr1Yc2ccY39hpR6wdse3pZ3E8RF83SODiNH0Wjmkd0ze4OF8exugEixgA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/property-provider': 2.0.13 - '@smithy/shared-ini-file-loader': 2.2.2 - '@smithy/types': 2.4.0 + '@smithy/property-provider': 2.1.4 + '@smithy/shared-ini-file-loader': 2.3.5 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/node-http-handler@2.1.8: - resolution: {integrity: sha512-KZylM7Wff/So5SmCiwg2kQNXJ+RXgz34wkxS7WNwIUXuZrZZpY/jKJCK+ZaGyuESDu3TxcaY+zeYGJmnFKbQsA==} + /@smithy/node-http-handler@2.4.2: + resolution: {integrity: sha512-yrj3c1g145uiK5io+1UPbJAHo8BSGORkBzrmzvAsOmBKb+1p3jmM8ZwNLDH/HTTxVLm9iM5rMszx+iAh1HUC4Q==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/abort-controller': 2.0.12 - '@smithy/protocol-http': 3.0.8 - '@smithy/querystring-builder': 2.0.12 - '@smithy/types': 2.4.0 + '@smithy/abort-controller': 2.1.4 + '@smithy/protocol-http': 3.2.2 + '@smithy/querystring-builder': 2.1.4 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/property-provider@2.0.13: - resolution: {integrity: sha512-VJqUf2CbsQX6uUiC5dUPuoEATuFjkbkW3lJHbRnpk9EDC9X+iKqhfTK+WP+lve5EQ9TcCI1Q6R7hrg41FyC54w==} + /@smithy/property-provider@2.1.4: + resolution: {integrity: sha512-nWaY/MImj1BiXZ9WY65h45dcxOx8pl06KYoHxwojDxDL+Q9yLU1YnZpgv8zsHhEftlj9KhePENjQTlNowWVyug==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/protocol-http@3.0.8: - resolution: {integrity: sha512-SHJvYeWq8q0FK8xHk+xjV9dzDUDjFMT+G1pZbV+XB6OVoac/FSVshlMNPeUJ8AmSkcDKHRu5vASnRqZHgD3qhw==} + /@smithy/protocol-http@3.2.2: + resolution: {integrity: sha512-xYBlllOQcOuLoxzhF2u8kRHhIFGQpDeTQj/dBSnw4kfI29WMKL5RnW1m9YjnJAJ49miuIvrkJR+gW5bCQ+Mchw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/querystring-builder@2.0.12: - resolution: {integrity: sha512-cDbF07IuCjiN8CdGvPzfJjXIrmDSelScRfyJYrYBNBbKl2+k7QD/KqiHhtRyEKgID5mmEVrV6KE6L/iPJ98sFw==} + /@smithy/querystring-builder@2.1.4: + resolution: {integrity: sha512-LXSL0J/nRWvGT+jIj+Fip3j0J1ZmHkUyBFRzg/4SmPNCLeDrtVu7ptKOnTboPsFZu5BxmpYok3kJuQzzRdrhbw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 - '@smithy/util-uri-escape': 2.0.0 + '@smithy/types': 2.11.0 + '@smithy/util-uri-escape': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/querystring-parser@2.0.12: - resolution: {integrity: sha512-fytyTcXaMzPBuNtPlhj5v6dbl4bJAnwKZFyyItAGt4Tgm9HFPZNo7a9r1SKPr/qdxUEBzvL9Rh+B9SkTX3kFxg==} + /@smithy/querystring-parser@2.1.4: + resolution: {integrity: sha512-U2b8olKXgZAs0eRo7Op11jTNmmcC/sqYmsA7vN6A+jkGnDvJlEl7AetUegbBzU8q3D6WzC5rhR/joIy8tXPzIg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/service-error-classification@2.0.5: - resolution: {integrity: sha512-M0SeJnEgD2ywJyV99Fb1yKFzmxDe9JfpJiYTVSRMyRLc467BPU0qsuuDPzMCdB1mU8M8u1rVOdkqdoyFN8UFTw==} + /@smithy/service-error-classification@2.1.4: + resolution: {integrity: sha512-JW2Hthy21evnvDmYYk1kItOmbp3X5XI5iqorXgFEunb6hQfSDZ7O1g0Clyxg7k/Pcr9pfLk5xDIR2To/IohlsQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 dev: false - /@smithy/shared-ini-file-loader@2.2.2: - resolution: {integrity: sha512-noyQUPn7b1M8uB0GEXc/Zyxq+5K2b7aaqWnLp+hgJ7+xu/FCvtyWy5eWLDjQEsHnAet2IZhS5QF8872OR69uNg==} + /@smithy/shared-ini-file-loader@2.3.5: + resolution: {integrity: sha512-oI99+hOvsM8oAJtxAGmoL/YCcGXtbP0fjPseYGaNmJ4X5xOFTer0KPk7AIH3AL6c5AlYErivEi1X/X78HgTVIw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/signature-v4@2.0.12: - resolution: {integrity: sha512-6Kc2lCZEVmb1nNYngyNbWpq0d82OZwITH11SW/Q0U6PX5fH7B2cIcFe7o6eGEFPkTZTP8itTzmYiGcECL0D0Lw==} + /@smithy/signature-v4@2.1.4: + resolution: {integrity: sha512-gnu9gCn0qQ8IdhNjs6o3QVCXzUs33znSDYwVMWo3nX4dM6j7z9u6FC302ShYyVWfO4MkVMuGCCJ6nl3PcH7V1Q==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-codec': 2.0.12 - '@smithy/is-array-buffer': 2.0.0 - '@smithy/types': 2.4.0 - '@smithy/util-hex-encoding': 2.0.0 - '@smithy/util-middleware': 2.0.5 - '@smithy/util-uri-escape': 2.0.0 - '@smithy/util-utf8': 2.0.0 + '@smithy/eventstream-codec': 2.1.4 + '@smithy/is-array-buffer': 2.1.1 + '@smithy/types': 2.11.0 + '@smithy/util-hex-encoding': 2.1.1 + '@smithy/util-middleware': 2.1.4 + '@smithy/util-uri-escape': 2.1.1 + '@smithy/util-utf8': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/smithy-client@2.1.12: - resolution: {integrity: sha512-XXqhridfkKnpj+lt8vM6HRlZbqUAqBjVC74JIi13F/AYQd/zTj9SOyGfxnbp4mjY9q28LityxIuV8CTinr9r5w==} + /@smithy/smithy-client@2.4.4: + resolution: {integrity: sha512-SNE17wjycPZIJ2P5sv6wMTteV/vQVPdaqQkoK1KeGoWHXx79t3iLhQXj1uqRdlkMUS9pXJrLOAS+VvUSOYwQKw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-stack': 2.0.6 - '@smithy/types': 2.4.0 - '@smithy/util-stream': 2.0.17 + '@smithy/middleware-endpoint': 2.4.6 + '@smithy/middleware-stack': 2.1.4 + '@smithy/protocol-http': 3.2.2 + '@smithy/types': 2.11.0 + '@smithy/util-stream': 2.1.4 tslib: 2.6.2 dev: false - /@smithy/types@2.4.0: - resolution: {integrity: sha512-iH1Xz68FWlmBJ9vvYeHifVMWJf82ONx+OybPW8ZGf5wnEv2S0UXcU4zwlwJkRXuLKpcSLHrraHbn2ucdVXLb4g==} + /@smithy/types@2.11.0: + resolution: {integrity: sha512-AR0SXO7FuAskfNhyGfSTThpLRntDI5bOrU0xrpVYU0rZyjl3LBXInZFMTP/NNSd7IS6Ksdtar0QvnrPRIhVrLQ==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/url-parser@2.0.12: - resolution: {integrity: sha512-qgkW2mZqRvlNUcBkxYB/gYacRaAdck77Dk3/g2iw0S9F0EYthIS3loGfly8AwoWpIvHKhkTsCXXQfzksgZ4zIA==} + /@smithy/url-parser@2.1.4: + resolution: {integrity: sha512-1hTy6UYRYqOZlHKH2/2NzdNQ4NNmW2Lp0sYYvztKy+dEQuLvZL9w88zCzFQqqFer3DMcscYOshImxkJTGdV+rg==} dependencies: - '@smithy/querystring-parser': 2.0.12 - '@smithy/types': 2.4.0 + '@smithy/querystring-parser': 2.1.4 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/util-base64@2.0.0: - resolution: {integrity: sha512-Zb1E4xx+m5Lud8bbeYi5FkcMJMnn+1WUnJF3qD7rAdXpaL7UjkFQLdmW5fHadoKbdHpwH9vSR8EyTJFHJs++tA==} + /@smithy/util-base64@2.2.0: + resolution: {integrity: sha512-RiQI/Txu0SxCR38Ky5BMEVaFfkNTBjpbxlr2UhhxggSmnsHDQPZJWMtPoXs7TWZaseslIlAWMiHmqRT3AV/P2w==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/util-buffer-from': 2.0.0 + '@smithy/util-buffer-from': 2.1.1 + '@smithy/util-utf8': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/util-body-length-browser@2.0.0: - resolution: {integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==} + /@smithy/util-body-length-browser@2.1.1: + resolution: {integrity: sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-body-length-node@2.1.0: - resolution: {integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==} + /@smithy/util-body-length-node@2.2.1: + resolution: {integrity: sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-buffer-from@2.0.0: - resolution: {integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==} + /@smithy/util-buffer-from@2.1.1: + resolution: {integrity: sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/is-array-buffer': 2.0.0 + '@smithy/is-array-buffer': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/util-config-provider@2.0.0: - resolution: {integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==} + /@smithy/util-config-provider@2.2.1: + resolution: {integrity: sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-browser@2.0.16: - resolution: {integrity: sha512-Uv5Cu8nVkuvLn0puX+R9zWbSNpLIR3AxUlPoLJ7hC5lvir8B2WVqVEkJLwtixKAncVLasnTVjPDCidtAUTGEQw==} + /@smithy/util-defaults-mode-browser@2.1.6: + resolution: {integrity: sha512-lM2JMYCilrejfGf8WWnVfrKly3vf+mc5x9TrTpT++qIKP452uWfLqlaUxbz1TkSfhqm8RjrlY22589B9aI8A9w==} engines: {node: '>= 10.0.0'} dependencies: - '@smithy/property-provider': 2.0.13 - '@smithy/smithy-client': 2.1.12 - '@smithy/types': 2.4.0 + '@smithy/property-provider': 2.1.4 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 bowser: 2.11.0 tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-node@2.0.21: - resolution: {integrity: sha512-cUEsttVZ79B7Al2rWK2FW03HBpD9LyuqFtm+1qFty5u9sHSdesr215gS2Ln53fTopNiPgeXpdoM3IgjvIO0rJw==} + /@smithy/util-defaults-mode-node@2.2.6: + resolution: {integrity: sha512-UmUbPHbkBJCXRFbq+FPLpVwiFPHj1oPWXJS2f2sy23PtXM94c9X5EceI6JKuKdBty+tzhrAs5JbmPM/HvmDB8Q==} engines: {node: '>= 10.0.0'} dependencies: - '@smithy/config-resolver': 2.0.16 - '@smithy/credential-provider-imds': 2.0.18 - '@smithy/node-config-provider': 2.1.3 - '@smithy/property-provider': 2.0.13 - '@smithy/smithy-client': 2.1.12 - '@smithy/types': 2.4.0 + '@smithy/config-resolver': 2.1.5 + '@smithy/credential-provider-imds': 2.2.6 + '@smithy/node-config-provider': 2.2.5 + '@smithy/property-provider': 2.1.4 + '@smithy/smithy-client': 2.4.4 + '@smithy/types': 2.11.0 + tslib: 2.6.2 + dev: false + + /@smithy/util-endpoints@1.1.5: + resolution: {integrity: sha512-tgDpaUNsUtRvNiBulKU1VnpoXU1GINMfZZXunRhUXOTBEAufG1Wp79uDXLau2gg1RZ4dpAR6lXCkrmddihCGUg==} + engines: {node: '>= 14.0.0'} + dependencies: + '@smithy/node-config-provider': 2.2.5 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/util-hex-encoding@2.0.0: - resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==} + /@smithy/util-hex-encoding@2.1.1: + resolution: {integrity: sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-middleware@2.0.5: - resolution: {integrity: sha512-1lyT3TcaMJQe+OFfVI+TlomDkPuVzb27NZYdYtmSTltVmLaUjdCyt4KE+OH1CnhZKsz4/cdCL420Lg9UH5Z2Mw==} + /@smithy/util-middleware@2.1.4: + resolution: {integrity: sha512-5yYNOgCN0DL0OplME0pthoUR/sCfipnROkbTO7m872o0GHCVNJj5xOFJ143rvHNA54+pIPMLum4z2DhPC2pVGA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.4.0 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/util-retry@2.0.5: - resolution: {integrity: sha512-x3t1+MQAJ6QONk3GTbJNcugCFDVJ+Bkro5YqQQK1EyVesajNDqxFtCx9WdOFNGm/Cbm7tUdwVEmfKQOJoU2Vtw==} + /@smithy/util-retry@2.1.4: + resolution: {integrity: sha512-JRZwhA3fhkdenSEYIWatC8oLwt4Bdf2LhHbNQApqb7yFoIGMl4twcYI3BcJZ7YIBZrACA9jGveW6tuCd836XzQ==} engines: {node: '>= 14.0.0'} dependencies: - '@smithy/service-error-classification': 2.0.5 - '@smithy/types': 2.4.0 + '@smithy/service-error-classification': 2.1.4 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false - /@smithy/util-stream@2.0.17: - resolution: {integrity: sha512-fP/ZQ27rRvHsqItds8yB7jerwMpZFTL3QqbQbidUiG0+mttMoKdP0ZqnvM8UK5q0/dfc3/pN7g4XKPXOU7oRWw==} + /@smithy/util-stream@2.1.4: + resolution: {integrity: sha512-CiWaFPXstoR7v/PGHddFckovkhJb28wgQR7LwIt6RsQCJeRIHvUTVWhXw/Pco6Jm6nz/vfzN9FFdj/JN7RTkxQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/fetch-http-handler': 2.2.4 - '@smithy/node-http-handler': 2.1.8 - '@smithy/types': 2.4.0 - '@smithy/util-base64': 2.0.0 - '@smithy/util-buffer-from': 2.0.0 - '@smithy/util-hex-encoding': 2.0.0 - '@smithy/util-utf8': 2.0.0 + '@smithy/fetch-http-handler': 2.4.4 + '@smithy/node-http-handler': 2.4.2 + '@smithy/types': 2.11.0 + '@smithy/util-base64': 2.2.0 + '@smithy/util-buffer-from': 2.1.1 + '@smithy/util-hex-encoding': 2.1.1 + '@smithy/util-utf8': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/util-uri-escape@2.0.0: - resolution: {integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==} + /@smithy/util-uri-escape@2.1.1: + resolution: {integrity: sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-utf8@2.0.0: - resolution: {integrity: sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==} + /@smithy/util-utf8@2.2.0: + resolution: {integrity: sha512-hBsKr5BqrDrKS8qy+YcV7/htmMGxriA1PREOf/8AGBhHIZnfilVv1Waf1OyKhSbFW15U/8+gcMUQ9/Kk5qwpHQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/util-buffer-from': 2.0.0 + '@smithy/util-buffer-from': 2.1.1 tslib: 2.6.2 dev: false - /@smithy/util-waiter@2.0.12: - resolution: {integrity: sha512-3sENmyVa1NnOPoiT2NCApPmu7ukP7S/v7kL9IxNmnygkDldn7/yK0TP42oPJLwB2k3mospNsSePIlqdXEUyPHA==} + /@smithy/util-waiter@2.1.4: + resolution: {integrity: sha512-AK17WaC0hx1wR9juAOsQkJ6DjDxBGEf5TrKhpXtNFEn+cVto9Li3MVsdpAO97AF7bhFXSyC8tJA3F4ThhqwCdg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/abort-controller': 2.0.12 - '@smithy/types': 2.4.0 + '@smithy/abort-controller': 2.1.4 + '@smithy/types': 2.11.0 tslib: 2.6.2 dev: false @@ -1765,177 +1883,177 @@ packages: resolution: {integrity: sha512-+jby/Guq9H8O7NWgCv6X8VAiQE8Dr/nccsCtL74xyHKhu2Knu5EAKmOZj3nLCnLm1KooUzKY+5DsnGVqhM8/wQ==} dev: true - /@types/babel__core@7.20.3: - resolution: {integrity: sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==} + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 - '@types/babel__generator': 7.6.6 - '@types/babel__template': 7.4.3 - '@types/babel__traverse': 7.20.3 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.5 dev: true - /@types/babel__generator@7.6.6: - resolution: {integrity: sha512-66BXMKb/sUWbMdBNdMvajU7i/44RkrA3z/Yt1c7R5xejt8qh84iU54yUWCtm0QwGJlDcf/gg4zd/x4mpLAlb/w==} + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.24.0 dev: true - /@types/babel__template@7.4.3: - resolution: {integrity: sha512-ciwyCLeuRfxboZ4isgdNZi/tkt06m8Tw6uGbBSBgWrnnZGNXiEyM27xc/PjXGQLqlZ6ylbgHMnm7ccF9tCkOeQ==} + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 dev: true - /@types/babel__traverse@7.20.3: - resolution: {integrity: sha512-Lsh766rGEFbaxMIDH7Qa+Yha8cMVI3qAK6CHt3OR0YfxOIn5Z54iHiyDRycHrBqeIiqGa20Kpsv1cavfBKkRSw==} + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: - '@babel/types': 7.23.0 + '@babel/types': 7.24.0 dev: true - /@types/graceful-fs@4.1.8: - resolution: {integrity: sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==} + /@types/graceful-fs@4.1.9: + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.8.8 + '@types/node': 20.11.25 dev: true - /@types/istanbul-lib-coverage@2.0.5: - resolution: {integrity: sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==} + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} dev: true - /@types/istanbul-lib-report@3.0.2: - resolution: {integrity: sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==} + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: - '@types/istanbul-lib-coverage': 2.0.5 + '@types/istanbul-lib-coverage': 2.0.6 dev: true - /@types/istanbul-reports@3.0.3: - resolution: {integrity: sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==} + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: - '@types/istanbul-lib-report': 3.0.2 + '@types/istanbul-lib-report': 3.0.3 dev: true - /@types/jest@29.5.6: - resolution: {integrity: sha512-/t9NnzkOpXb4Nfvg17ieHE6EeSjDS2SGSpNYfoLbUAeL/EOueU/RSdOWFpfQTXBEM7BguYW1XQ0EbM+6RlIh6w==} + /@types/jest@29.5.12: + resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 dev: true - /@types/json-schema@7.0.14: - resolution: {integrity: sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/node@20.8.8: - resolution: {integrity: sha512-YRsdVxq6OaLfmR9Hy816IMp33xOBjfyOgUd77ehqg96CFywxAPbDbXvAsuN2KVg2HOT8Eh6uAfU+l4WffwPVrQ==} + /@types/node@20.11.25: + resolution: {integrity: sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==} dependencies: - undici-types: 5.25.3 + undici-types: 5.26.5 dev: true - /@types/semver@7.5.4: - resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true - /@types/stack-utils@2.0.2: - resolution: {integrity: sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==} + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} dev: true - /@types/yargs-parser@21.0.2: - resolution: {integrity: sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==} + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} dev: true - /@types/yargs@17.0.29: - resolution: {integrity: sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==} + /@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: - '@types/yargs-parser': 21.0.2 + '@types/yargs-parser': 21.0.3 dev: true - /@typescript-eslint/eslint-plugin@6.9.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2): - resolution: {integrity: sha512-lgX7F0azQwRPB7t7WAyeHWVfW1YJ9NIgd9mvGhfQpRY56X6AVf8mwM8Wol+0z4liE7XX3QOt8MN1rUKCfSjRIA==} + /@typescript-eslint/eslint-plugin@7.1.1(@typescript-eslint/parser@7.1.1)(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.9.1 - '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.9.0 - '@typescript-eslint/type-utils': 6.9.0(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.9.0(eslint@8.52.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.9.0 + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.1.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/type-utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.1.1 debug: 4.3.4 - eslint: 8.52.0 + eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.9.0(eslint@8.52.0)(typescript@5.2.2): - resolution: {integrity: sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==} + /@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.9.0 - '@typescript-eslint/types': 6.9.0 - '@typescript-eslint/typescript-estree': 6.9.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.9.0 + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 7.1.1 debug: 4.3.4 - eslint: 8.52.0 - typescript: 5.2.2 + eslint: 8.57.0 + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.9.0: - resolution: {integrity: sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==} + /@typescript-eslint/scope-manager@7.1.1: + resolution: {integrity: sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.9.0 - '@typescript-eslint/visitor-keys': 6.9.0 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/visitor-keys': 7.1.1 dev: true - /@typescript-eslint/type-utils@6.9.0(eslint@8.52.0)(typescript@5.2.2): - resolution: {integrity: sha512-XXeahmfbpuhVbhSOROIzJ+b13krFmgtc4GlEuu1WBT+RpyGPIA4Y/eGnXzjbDj5gZLzpAXO/sj+IF/x2GtTMjQ==} + /@typescript-eslint/type-utils@7.1.1(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.9.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.9.0(eslint@8.52.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) + '@typescript-eslint/utils': 7.1.1(eslint@8.57.0)(typescript@5.4.2) debug: 4.3.4 - eslint: 8.52.0 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 + eslint: 8.57.0 + ts-api-utils: 1.2.1(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.9.0: - resolution: {integrity: sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==} + /@typescript-eslint/types@7.1.1: + resolution: {integrity: sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.9.0(typescript@5.2.2): - resolution: {integrity: sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==} + /@typescript-eslint/typescript-estree@7.1.1(typescript@5.4.2): + resolution: {integrity: sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1943,42 +2061,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.9.0 - '@typescript-eslint/visitor-keys': 6.9.0 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/visitor-keys': 7.1.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.9.0(eslint@8.52.0)(typescript@5.2.2): - resolution: {integrity: sha512-5Wf+Jsqya7WcCO8me504FBigeQKVLAMPmUzYgDbWchINNh1KJbxCgVya3EQ2MjvJMVeXl3pofRmprqX6mfQkjQ==} + /@typescript-eslint/utils@7.1.1(eslint@8.57.0)(typescript@5.4.2): + resolution: {integrity: sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.5.4 - '@typescript-eslint/scope-manager': 6.9.0 - '@typescript-eslint/types': 6.9.0 - '@typescript-eslint/typescript-estree': 6.9.0(typescript@5.2.2) - eslint: 8.52.0 - semver: 7.5.4 + eslint: ^8.56.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.1.1 + '@typescript-eslint/types': 7.1.1 + '@typescript-eslint/typescript-estree': 7.1.1(typescript@5.4.2) + eslint: 8.57.0 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.9.0: - resolution: {integrity: sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==} + /@typescript-eslint/visitor-keys@7.1.1: + resolution: {integrity: sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.9.0 + '@typescript-eslint/types': 7.1.1 eslint-visitor-keys: 3.4.3 dev: true @@ -1986,16 +2105,16 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 + acorn: 8.11.3 dev: true - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -2073,17 +2192,17 @@ packages: engines: {node: '>=8'} dev: true - /babel-jest@29.7.0(@babel/core@7.23.2): + /babel-jest@29.7.0(@babel/core@7.24.0): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.0 '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.3 + '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.23.2) + babel-preset-jest: 29.6.3(@babel/core@7.24.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -2095,7 +2214,7 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -2108,41 +2227,41 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.0 - '@types/babel__core': 7.20.3 - '@types/babel__traverse': 7.20.3 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.5 dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.2): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.0): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.2) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.2) - dev: true - - /babel-preset-jest@29.6.3(@babel/core@7.23.2): + '@babel/core': 7.24.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.0) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.24.0): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.0 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) dev: true /balanced-match@1.0.2: @@ -2173,15 +2292,15 @@ packages: fill-range: 7.0.1 dev: true - /browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001553 - electron-to-chromium: 1.4.565 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.22.1) + caniuse-lite: 1.0.30001596 + electron-to-chromium: 1.4.697 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) dev: true /bs-logger@0.2.6: @@ -2216,8 +2335,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001553: - resolution: {integrity: sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==} + /caniuse-lite@1.0.30001596: + resolution: {integrity: sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==} dev: true /chalk@2.4.2: @@ -2298,7 +2417,7 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /create-jest@29.7.0(@types/node@20.8.8): + /create-jest@29.7.0(@types/node@20.11.25): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -2307,7 +2426,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.8.8) + jest-config: 29.7.0(@types/node@20.11.25) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -2380,8 +2499,8 @@ packages: esutils: 2.0.3 dev: true - /dotenv@16.3.1: - resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} dev: true @@ -2389,8 +2508,8 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium@1.4.565: - resolution: {integrity: sha512-XbMoT6yIvg2xzcbs5hCADi0dXBh4//En3oFXmtPX+jiyyiCTiM9DGFT2SLottjpEs9Z8Mh8SqahbR96MaHfuSg==} + /electron-to-chromium@1.4.697: + resolution: {integrity: sha512-iPS+iUNUrqTkPRFjMYv1FGXIUYhj2K4rc/93nrDsDtQGMUqyRouCq/xABOSOljKbriEiwg0bEQHGaeD4OaU56g==} dev: true /emittery@0.13.1: @@ -2412,8 +2531,8 @@ packages: is-arrayish: 0.2.1 dev: true - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} dev: true @@ -2432,13 +2551,13 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-prettier@9.0.0(eslint@8.52.0): - resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.52.0 + eslint: 8.57.0 dev: true /eslint-scope@7.2.2: @@ -2454,16 +2573,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.52.0: - resolution: {integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==} + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) - '@eslint-community/regexpp': 4.9.1 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.52.0 - '@humanwhocodes/config-array': 0.11.13 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 @@ -2482,9 +2601,9 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.23.0 + globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -2505,8 +2624,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 dev: true @@ -2575,8 +2694,8 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -2594,15 +2713,8 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fast-xml-parser@4.2.5: - resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} - hasBin: true - dependencies: - strnum: 1.0.5 - dev: false - - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 dev: true @@ -2617,7 +2729,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.1.1 + flat-cache: 3.2.0 dev: true /fill-range@7.0.1: @@ -2643,17 +2755,17 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache@3.1.1: - resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} - engines: {node: '>=12.0.0'} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.9 + flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 dev: true - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true /foreground-child@3.1.1: @@ -2742,8 +2854,8 @@ packages: engines: {node: '>=4'} dev: true - /globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -2755,8 +2867,8 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -2779,8 +2891,8 @@ packages: engines: {node: '>=8'} dev: true - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 @@ -2795,8 +2907,8 @@ packages: engines: {node: '>=10.17.0'} dev: true - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} dev: true @@ -2840,7 +2952,7 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.1 dev: true /is-extglob@2.1.1: @@ -2884,8 +2996,8 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /istanbul-lib-coverage@3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} dev: true @@ -2893,24 +3005,24 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.2 - '@babel/parser': 7.23.0 + '@babel/core': 7.24.0 + '@babel/parser': 7.24.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /istanbul-lib-instrument@6.0.1: - resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} + /istanbul-lib-instrument@6.0.2: + resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.23.2 - '@babel/parser': 7.23.0 + '@babel/core': 7.24.0 + '@babel/parser': 7.24.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 7.5.4 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: true @@ -2919,7 +3031,7 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} dependencies: - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 dev: true @@ -2929,14 +3041,14 @@ packages: engines: {node: '>=10'} dependencies: debug: 4.3.4 - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color dev: true - /istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -2969,7 +3081,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.8 + '@types/node': 20.11.25 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -2990,7 +3102,7 @@ packages: - supports-color dev: true - /jest-cli@29.7.0(@types/node@20.8.8): + /jest-cli@29.7.0(@types/node@20.11.25): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3004,10 +3116,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.8.8) + create-jest: 29.7.0(@types/node@20.11.25) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.8.8) + jest-config: 29.7.0(@types/node@20.11.25) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -3018,7 +3130,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@20.8.8): + /jest-config@29.7.0(@types/node@20.11.25): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -3030,11 +3142,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.8 - babel-jest: 29.7.0(@babel/core@7.23.2) + '@types/node': 20.11.25 + babel-jest: 29.7.0(@babel/core@7.24.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -3093,7 +3205,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.8 + '@types/node': 20.11.25 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -3108,8 +3220,8 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.8 - '@types/node': 20.8.8 + '@types/graceful-fs': 4.1.9 + '@types/node': 20.11.25 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -3144,9 +3256,9 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.5 '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.2 + '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.5 @@ -3160,7 +3272,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.8.8 + '@types/node': 20.11.25 jest-util: 29.7.0 dev: true @@ -3215,7 +3327,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.8 + '@types/node': 20.11.25 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -3246,7 +3358,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.8 + '@types/node': 20.11.25 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -3269,15 +3381,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.2 - '@babel/generator': 7.23.0 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.2) - '@babel/types': 7.23.0 + '@babel/core': 7.24.0 + '@babel/generator': 7.23.6 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.0) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) + '@babel/types': 7.24.0 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.2) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.0) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -3288,7 +3400,7 @@ packages: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: true @@ -3298,7 +3410,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.8.8 + '@types/node': 20.11.25 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -3323,7 +3435,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.8 + '@types/node': 20.11.25 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -3335,13 +3447,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.8.8 + '@types/node': 20.11.25 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.7.0(@types/node@20.8.8): + /jest@29.7.0(@types/node@20.11.25): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3354,7 +3466,7 @@ packages: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.8.8) + jest-cli: 29.7.0(@types/node@20.11.25) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -3459,8 +3571,8 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} dev: true @@ -3481,7 +3593,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /make-error@1.3.6: @@ -3546,8 +3658,8 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true /normalize-path@3.0.0: @@ -3631,7 +3743,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -3660,7 +3772,7 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.0.1 + lru-cache: 10.2.0 minipass: 7.0.4 dev: true @@ -3695,8 +3807,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true dev: true @@ -3718,8 +3830,8 @@ packages: sisteransi: 1.0.5 dev: true - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} dev: true @@ -3802,8 +3914,8 @@ packages: hasBin: true dev: true - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true dependencies: @@ -3918,10 +4030,6 @@ packages: engines: {node: '>=8'} dev: true - /strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: false - /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3977,18 +4085,18 @@ packages: is-number: 7.0.0 dev: true - /ts-api-utils@1.0.3(typescript@5.2.2): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + /ts-api-utils@1.2.1(typescript@5.4.2): + resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.2.2 + typescript: 5.4.2 dev: true - /ts-jest@29.1.1(@babel/core@7.23.2)(jest@29.7.0)(typescript@5.2.2): - resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /ts-jest@29.1.2(@babel/core@7.24.0)(jest@29.7.0)(typescript@5.4.2): + resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} + engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@babel/core': '>=7.0.0-beta.0 <8' @@ -4007,16 +4115,16 @@ packages: esbuild: optional: true dependencies: - '@babel/core': 7.23.2 + '@babel/core': 7.24.0 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.8.8) + jest: 29.7.0(@types/node@20.11.25) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.5.4 - typescript: 5.2.2 + semver: 7.6.0 + typescript: 5.4.2 yargs-parser: 21.1.1 dev: true @@ -4050,31 +4158,31 @@ packages: engines: {node: '>=10'} dev: true - /typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + /typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} hasBin: true dev: true - /undici-types@5.25.3: - resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.1): + /update-browserslist-db@1.0.13(browserslist@4.23.0): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.22.1 - escalade: 3.1.1 + browserslist: 4.23.0 + escalade: 3.1.2 picocolors: 1.0.0 dev: true /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /uuid@8.3.2: @@ -4082,12 +4190,12 @@ packages: hasBin: true dev: false - /v8-to-istanbul@9.1.3: - resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.20 - '@types/istanbul-lib-coverage': 2.0.5 + '@jridgewell/trace-mapping': 0.3.25 + '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 dev: true @@ -4158,7 +4266,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 From 5f9ff8d1e07047907b3b63e38d631788fc6aa4ec Mon Sep 17 00:00:00 2001 From: Surya Oktafendri <f2face@f2face.com> Date: Fri, 8 Mar 2024 07:50:27 +0700 Subject: [PATCH 2/7] Refactor --- src/R2.ts | 47 +++++++++++++++++------------------------------ src/types.ts | 25 +++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 30 deletions(-) diff --git a/src/R2.ts b/src/R2.ts index 49d180a..7bc0f17 100644 --- a/src/R2.ts +++ b/src/R2.ts @@ -1,34 +1,17 @@ -import { S3 } from '@aws-sdk/client-s3'; +import { CreateBucketCommand, DeleteBucketCommand, ListBucketsCommand, S3Client } from '@aws-sdk/client-s3'; import { Bucket } from './Bucket'; -import { CORSPolicy } from './types'; - -type Config = { - accountId: string; - accessKeyId: string; - secretAccessKey: string; -}; - -type BucketList = { - buckets: { - name?: string; - creationDate?: Date; - }[]; - owner: { - id?: string; - displayName?: string; - }; -}; +import { BucketList, CORSPolicy, CloudflareR2Config } from './types'; export class R2 { - private config: Config; - private r2: S3; + private config: CloudflareR2Config; + private r2: S3Client; public endpoint: string; - constructor(config: Config) { + constructor(config: CloudflareR2Config) { this.config = config; this.endpoint = `https://${this.config.accountId}.r2.cloudflarestorage.com`; - this.r2 = new S3({ + this.r2 = new S3Client({ endpoint: this.endpoint, credentials: { accessKeyId: this.config.accessKeyId, @@ -52,7 +35,7 @@ export class R2 { * @async */ public async listBuckets(): Promise<BucketList> { - const result = await this.r2.listBuckets({}); + const result = await this.r2.send(new ListBucketsCommand({})); const buckets = result.Buckets?.map((bucket) => { return { @@ -82,9 +65,11 @@ export class R2 { * @param bucketName */ public async createBucket(bucketName: string): Promise<Bucket> { - await this.r2.createBucket({ - Bucket: bucketName, - }); + await this.r2.send( + new CreateBucketCommand({ + Bucket: bucketName, + }) + ); return new Bucket(this.r2, bucketName, this.endpoint); } @@ -95,9 +80,11 @@ export class R2 { * @param bucketName */ public async deleteBucket(bucketName: string): Promise<boolean> { - const result = await this.r2.deleteBucket({ - Bucket: bucketName, - }); + const result = await this.r2.send( + new DeleteBucketCommand({ + Bucket: bucketName, + }) + ); return result.$metadata.httpStatusCode === 204; } diff --git a/src/types.ts b/src/types.ts index 94f2aae..68a30b2 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,3 +1,28 @@ +export type CloudflareR2Config = { + accountId: string; + accessKeyId: string; + secretAccessKey: string; +}; + +export type BucketList = { + buckets: { + name?: string; + creationDate?: Date; + }[]; + owner: { + id?: string; + displayName?: string; + }; +}; + +export enum LocationHint { + WesternNorthAmerica = 'wnam', + EasternNorthAmerica = 'enam', + WesternEurope = 'weur', + EasternEurope = 'eeur', + AsiaPacific = 'apac', +} + export type UploadFileResponse = { objectKey: string; uri: string; From 64e8cc68e78c45b063e54749638bfbf438d8e927 Mon Sep 17 00:00:00 2001 From: Surya Oktafendri <f2face@f2face.com> Date: Fri, 8 Mar 2024 07:54:06 +0700 Subject: [PATCH 3/7] Update --- src/Bucket.ts | 183 ++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 134 insertions(+), 49 deletions(-) diff --git a/src/Bucket.ts b/src/Bucket.ts index db48800..c07d95c 100644 --- a/src/Bucket.ts +++ b/src/Bucket.ts @@ -1,11 +1,24 @@ -import { S3 as R2 } from '@aws-sdk/client-s3'; +import { + CopyObjectCommand, + DeleteObjectCommand, + GetBucketCorsCommand, + GetBucketEncryptionCommand, + GetBucketLocationCommand, + GetObjectCommand, + HeadBucketCommand, + HeadObjectCommand, + ListObjectsCommand, + PutObjectCommand, + type S3Client as R2, +} from '@aws-sdk/client-s3'; +import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; import { createReadStream, PathLike } from 'fs'; import { CORSPolicy, HeadObjectResponse, ObjectListResponse, UploadFileResponse } from './types'; export class Bucket { private r2: R2; private endpoint: string; - private bucketPublicUrl?: string; + private bucketPublicUrls: string[] = []; /** * Name of the bucket. @@ -46,20 +59,57 @@ export class Bucket { return this.uri; } + public provideBucketPublicUrl(bucketPublicUrl: string): this; + public provideBucketPublicUrl(bucketPublicUrls: string[]): this; + public provideBucketPublicUrl(...bucketPublicUrls: string[]): this; + /** * Sets the public URL for the current bucket. If public access to the bucket is allowed, use this method to provide bucket public URL to this `Bucket` object. * @param bucketPublicUrl The public URL of the current bucket. * @note If public access to the bucket is not allowed, the public URL set by this method will not be accessible to the public. Invoking this function will not have any effect on the security or access permissions of the bucket. */ - public provideBucketPublicUrl(bucketPublicUrl: string) { - this.bucketPublicUrl = new URL(bucketPublicUrl).origin; + public provideBucketPublicUrl(bucketPublicUrl: string | string[]): this { + if (typeof bucketPublicUrl === 'string') { + this.bucketPublicUrls.push(new URL(bucketPublicUrl).origin); + } else if (Array.isArray(bucketPublicUrl)) { + for (const url of bucketPublicUrl) { + if (typeof url === 'string') { + this.provideBucketPublicUrl(url); + } + } + } + + return this; } /** * Returns the bucket public URL if it's set with `provideBucketPublicUrl` method. + * @deprecated */ public getPublicUrl(): string | undefined { - return this.bucketPublicUrl; + return this.bucketPublicUrls.length ? this.bucketPublicUrls.at(0) : undefined; + } + + /** + * Returns all public URLs of the bucket if it's set with `provideBucketPublicUrl` method. + */ + public getPublicUrls(): string[] { + return this.bucketPublicUrls; + } + + /** + * Returns the signed URL of an object. + * @param objectKey + * @param expiresIn Expiration time in seconds. + * @returns + */ + public async getObjectSignedUrl(objectKey: string, expiresIn: number) { + const obj = new GetObjectCommand({ + Bucket: this.name, + Key: objectKey, + }); + const signedUrl = await getSignedUrl(this.r2, obj, { expiresIn }); + return signedUrl; } /** @@ -68,9 +118,9 @@ export class Bucket { * @returns */ protected generateObjectPublicUrl(objectKey: string): string | null { - if (!this.bucketPublicUrl) return null; + if (!this.bucketPublicUrls.length) return null; - return `${this.bucketPublicUrl}/${objectKey}`; + return `${this.bucketPublicUrls.at(0)}/${objectKey}`; } /** @@ -79,9 +129,11 @@ export class Bucket { */ public async exists(): Promise<boolean> { try { - const result = await this.r2.headBucket({ - Bucket: this.name, - }); + const result = await this.r2.send( + new HeadBucketCommand({ + Bucket: this.name, + }) + ); return result.$metadata.httpStatusCode === 200; } catch { @@ -94,9 +146,11 @@ export class Bucket { */ public async getCors(): Promise<CORSPolicy[]> { try { - const result = await this.r2.getBucketCors({ - Bucket: this.name, - }); + const result = await this.r2.send( + new GetBucketCorsCommand({ + Bucket: this.name, + }) + ); const corsPolicies = result.CORSRules?.map((rule) => { @@ -129,17 +183,20 @@ export class Bucket { * @param bucketName */ public async getRegion() { - const result = await this.r2.getBucketLocation({ - Bucket: this.name, - }); - + const result = await this.r2.send( + new GetBucketLocationCommand({ + Bucket: this.name, + }) + ); return result.LocationConstraint || 'auto'; } public async getEncryption() { - const result = await this.r2.getBucketEncryption({ - Bucket: this.name, - }); + const result = await this.r2.send( + new GetBucketEncryptionCommand({ + Bucket: this.name, + }) + ); const rules = result.ServerSideEncryptionConfiguration?.Rules?.map((rule) => { @@ -171,13 +228,15 @@ export class Bucket { const fileStream = createReadStream(file); try { destination = destination.startsWith('/') ? destination.replace(/^\/+/, '') : destination; - const result = await this.r2.putObject({ - Bucket: this.name, - Key: destination, - Body: fileStream, - ContentType: mimeType || 'application/octet-stream', - Metadata: customMetadata, - }); + const result = await this.r2.send( + new PutObjectCommand({ + Bucket: this.name, + Key: destination, + Body: fileStream, + ContentType: mimeType || 'application/octet-stream', + Metadata: customMetadata, + }) + ); fileStream.close(); @@ -195,14 +254,34 @@ export class Bucket { } /** + * **DEPRECATED. Use `deleteObject()` instead.** + * * Deletes a file in the bucket. * @param file + * @deprecated */ public async deleteFile(file: string) { - const result = await this.r2.deleteObject({ - Bucket: this.name, - Key: file, - }); + const result = await this.r2.send( + new DeleteObjectCommand({ + Bucket: this.name, + Key: file, + }) + ); + + return result.$metadata.httpStatusCode === 200; + } + + /** + * Deletes an object in the bucket. + * @param objectKey + */ + public async deleteObject(objectKey: string) { + const result = await this.r2.send( + new DeleteObjectCommand({ + Bucket: this.name, + Key: objectKey, + }) + ); return result.$metadata.httpStatusCode === 200; } @@ -212,10 +291,12 @@ export class Bucket { * @param objectKey */ public async headObject(objectKey: string): Promise<HeadObjectResponse> { - const result = await this.r2.headObject({ - Bucket: this.name, - Key: objectKey, - }); + const result = await this.r2.send( + new HeadObjectCommand({ + Bucket: this.name, + Key: objectKey, + }) + ); return { lastModified: result.LastModified, @@ -230,14 +311,16 @@ export class Bucket { /** * Returns some or all (up to 1,000) of the objects in the bucket with each request. * @param maxResults The maximum number of objects to return per request. (Default: 1000) - * @param continuationToken A token that specifies where to start the listing. + * @param marker A token that specifies where to start the listing. */ - public async listObjects(maxResults = 1000, continuationToken?: string): Promise<ObjectListResponse> { - const result = await this.r2.listObjectsV2({ - Bucket: this.name, - MaxKeys: maxResults, - ContinuationToken: continuationToken, - }); + public async listObjects(maxResults = 1000, marker?: string): Promise<ObjectListResponse> { + const result = await this.r2.send( + new ListObjectsCommand({ + Bucket: this.name, + MaxKeys: maxResults, + Marker: marker, + }) + ); return { objects: @@ -259,8 +342,8 @@ export class Bucket { storageClass, }; }) || [], - continuationToken: result.ContinuationToken, - nextContinuationToken: result.NextContinuationToken, + continuationToken: result.Marker, + nextContinuationToken: result.NextMarker, }; } @@ -270,11 +353,13 @@ export class Bucket { * @param destination The key of the destination object where the source object will be copied to. */ public async copyObject(source: string, destination: string) { - const result = await this.r2.copyObject({ - Bucket: this.name, - CopySource: source, - Key: destination, - }); + const result = await this.r2.send( + new CopyObjectCommand({ + Bucket: this.name, + CopySource: source, + Key: destination, + }) + ); return result; } From e688036e076b09b03ddbe4c6a0139f94f97f43dc Mon Sep 17 00:00:00 2001 From: Surya Oktafendri <f2face@f2face.com> Date: Fri, 8 Mar 2024 08:11:25 +0700 Subject: [PATCH 4/7] Dependency: add `fast-xml-parser` --- package.json | 3 ++- pnpm-lock.yaml | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 2d936c0..17f4ea3 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,8 @@ }, "dependencies": { "@aws-sdk/client-s3": "^3.529.0", - "@aws-sdk/s3-request-presigner": "^3.529.0" + "@aws-sdk/s3-request-presigner": "^3.529.0", + "fast-xml-parser": "4.2.5" }, "devDependencies": { "@tsconfig/recommended": "^1.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94ed83f..cfea5de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ dependencies: '@aws-sdk/s3-request-presigner': specifier: ^3.529.0 version: 3.529.0 + fast-xml-parser: + specifier: 4.2.5 + version: 4.2.5 devDependencies: '@tsconfig/recommended': @@ -2713,6 +2716,13 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true + /fast-xml-parser@4.2.5: + resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} + hasBin: true + dependencies: + strnum: 1.0.5 + dev: false + /fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: @@ -4030,6 +4040,10 @@ packages: engines: {node: '>=8'} dev: true + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + dev: false + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} From df943aa829640ec2e7c8a6c22b465b91e5c943a0 Mon Sep 17 00:00:00 2001 From: Surya Oktafendri <f2face@f2face.com> Date: Wed, 29 May 2024 16:56:05 +0700 Subject: [PATCH 5/7] Commit v0.2.0 --- .gitignore | 1 + README.md | 17 ++- package.json | 9 +- pnpm-lock.yaml | 372 ++++++++++++++++++++++++++++++++++++++++++------- src/Bucket.ts | 178 +++++++++++++++++------ src/R2.ts | 2 +- src/types.ts | 9 +- 7 files changed, 488 insertions(+), 100 deletions(-) diff --git a/.gitignore b/.gitignore index 167a517..84d1b1f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ node_modules .env /coverage /lib +/tests /tests-js !.gitkeep diff --git a/README.md b/README.md index 00caafe..b88a4f9 100644 --- a/README.md +++ b/README.md @@ -11,12 +11,22 @@ This is a wrapper of the AWS S3 client library, designed to provide a user-frien ### Installation +#### npm + ```bash npm install node-cloudflare-r2 ``` +#### pnpm + +```bash +pnpm install node-cloudflare-r2 +``` + > It is highly recommended that you use a specific version number in your installation to anticipate any breaking changes that may occur in future releases. For example: \ -> `npm install node-cloudflare-r2@1.0.0` \ +> `npm install node-cloudflare-r2@0.2.0` \ +> or \ +> `pnpm install node-cloudflare-r2@0.2.0` \ > \ > Check the latest version number in the [release page](https://github.com/f2face/cloudflare-r2/releases). @@ -24,6 +34,7 @@ npm install node-cloudflare-r2 ```javascript import { R2 } from 'node-cloudflare-r2'; +import { createReadStream } from 'fs'; const r2 = new R2({ accountId: '<YOUR_ACCOUNT_ID>', @@ -39,6 +50,7 @@ bucket.provideBucketPublicUrl('https://pub-xxxxxxxxxxxxxxxxxxxxxxxxx.r2.dev'); console.log(await bucket.exists()); // true +// Upload local file const upload = await bucket.uploadFile('/path/to/file', 'destination_file_name.ext'); console.log(upload); /* @@ -50,5 +62,8 @@ console.log(upload); versionId: '', } */ + +// Upload file or stream +const uploadStream = await bucket.uploadStream(createReadStream('/path/to/file'), 'destination_file_name-stream.ext'); ``` diff --git a/package.json b/package.json index 17f4ea3..7622f00 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-cloudflare-r2", - "version": "0.1.5", + "version": "0.2.0", "description": "S3 wrapper for Cloudflare R2.", "main": "./lib/index.js", "scripts": { @@ -38,9 +38,9 @@ "url": "https://github.com/f2face/cloudflare-r2.git" }, "dependencies": { - "@aws-sdk/client-s3": "^3.529.0", - "@aws-sdk/s3-request-presigner": "^3.529.0", - "fast-xml-parser": "4.2.5" + "@aws-sdk/client-s3": "^3.529.1", + "@aws-sdk/lib-storage": "^3.583.0", + "@aws-sdk/s3-request-presigner": "^3.529.1" }, "devDependencies": { "@tsconfig/recommended": "^1.0.3", @@ -58,3 +58,4 @@ "typescript": "^5.4.2" } } + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cfea5de..e5d6c8a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,14 +6,14 @@ settings: dependencies: '@aws-sdk/client-s3': - specifier: ^3.529.0 - version: 3.529.0 + specifier: ^3.529.1 + version: 3.529.1 + '@aws-sdk/lib-storage': + specifier: ^3.583.0 + version: 3.583.0(@aws-sdk/client-s3@3.529.1) '@aws-sdk/s3-request-presigner': - specifier: ^3.529.0 - version: 3.529.0 - fast-xml-parser: - specifier: 4.2.5 - version: 4.2.5 + specifier: ^3.529.1 + version: 3.529.1 devDependencies: '@tsconfig/recommended': @@ -140,16 +140,16 @@ packages: tslib: 1.14.1 dev: false - /@aws-sdk/client-s3@3.529.0: - resolution: {integrity: sha512-+ol8eDhotGzBOTqrwAXRYhgi9i40M943nlZe2lMN0TYcP2lDMAn2J8f6JUYE54XPYPoDpoy/F+VLaB7olEGAmA==} + /@aws-sdk/client-s3@3.529.1: + resolution: {integrity: sha512-ZpvyO4w3XWo/OjXLd3fm7CLcKUUYcyady9qzTnKKSnp8a2NqO7UvU/1zhYdm+yyy8TR/9t7sDy+q6AYd4Nsr8g==} 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.529.0(@aws-sdk/credential-provider-node@3.529.0) - '@aws-sdk/core': 3.529.0 - '@aws-sdk/credential-provider-node': 3.529.0 + '@aws-sdk/client-sts': 3.529.1(@aws-sdk/credential-provider-node@3.529.1) + '@aws-sdk/core': 3.529.1 + '@aws-sdk/credential-provider-node': 3.529.1 '@aws-sdk/middleware-bucket-endpoint': 3.525.0 '@aws-sdk/middleware-expect-continue': 3.523.0 '@aws-sdk/middleware-flexible-checksums': 3.523.0 @@ -205,17 +205,17 @@ packages: - aws-crt dev: false - /@aws-sdk/client-sso-oidc@3.529.0(@aws-sdk/credential-provider-node@3.529.0): - resolution: {integrity: sha512-pUQhuJmaDWSRr6WK5YILvpApzFXsFmWXnsinmgabf8vSa134BAbDrootFef//Zuksc9HRa4FhUEurw/yrWaWHQ==} + /@aws-sdk/client-sso-oidc@3.529.1(@aws-sdk/credential-provider-node@3.529.1): + resolution: {integrity: sha512-bimxCWAvRnVcluWEQeadXvHyzWlBWsuGVligsaVZaGF0TLSn0eLpzpN9B1EhHzTf7m0Kh/wGtPSH1JxO6PpB+A==} engines: {node: '>=14.0.0'} peerDependencies: - '@aws-sdk/credential-provider-node': ^3.529.0 + '@aws-sdk/credential-provider-node': ^3.529.1 dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) - '@aws-sdk/core': 3.529.0 - '@aws-sdk/credential-provider-node': 3.529.0 + '@aws-sdk/client-sts': 3.529.1(@aws-sdk/credential-provider-node@3.529.1) + '@aws-sdk/core': 3.529.1 + '@aws-sdk/credential-provider-node': 3.529.1 '@aws-sdk/middleware-host-header': 3.523.0 '@aws-sdk/middleware-logger': 3.523.0 '@aws-sdk/middleware-recursion-detection': 3.523.0 @@ -255,13 +255,13 @@ packages: - aws-crt dev: false - /@aws-sdk/client-sso@3.529.0: - resolution: {integrity: sha512-QdUmxRVjwCN81v8qb2N0fmIKmq17Rh1Is6yQ9T/dQ3rlnU4mg6b/2qk0qiZOPF4wroMALr/EaDvPXHqZR+lRqA==} + /@aws-sdk/client-sso@3.529.1: + resolution: {integrity: sha512-KT1U/ZNjDhVv2ZgjzaeAn9VM7l667yeSguMrRYC8qk5h91/61MbjZypi6eOuKuVM+0fsQvzKScTQz0Lio0eYag==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.529.0 + '@aws-sdk/core': 3.529.1 '@aws-sdk/middleware-host-header': 3.523.0 '@aws-sdk/middleware-logger': 3.523.0 '@aws-sdk/middleware-recursion-detection': 3.523.0 @@ -301,16 +301,16 @@ packages: - aws-crt dev: false - /@aws-sdk/client-sts@3.529.0(@aws-sdk/credential-provider-node@3.529.0): - resolution: {integrity: sha512-8gWlnXisDv/mQGbvoDTwJaQEqFu/7nbPIkMOpM8JdW4ITU07tILNIqNPY3r0t2oHyK8qPP7aOXwrh1ETklYYig==} + /@aws-sdk/client-sts@3.529.1(@aws-sdk/credential-provider-node@3.529.1): + resolution: {integrity: sha512-Rvk2Sr3MACQTOtngUU+omlf4E17k47dRVXR7OFRD6Ow5iGgC9tkN2q/ExDPW/ktPOmM0lSgzWyQ6/PC/Zq3HUg==} engines: {node: '>=14.0.0'} peerDependencies: - '@aws-sdk/credential-provider-node': ^3.529.0 + '@aws-sdk/credential-provider-node': ^3.529.1 dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.529.0 - '@aws-sdk/credential-provider-node': 3.529.0 + '@aws-sdk/core': 3.529.1 + '@aws-sdk/credential-provider-node': 3.529.1 '@aws-sdk/middleware-host-header': 3.523.0 '@aws-sdk/middleware-logger': 3.523.0 '@aws-sdk/middleware-recursion-detection': 3.523.0 @@ -350,8 +350,8 @@ packages: - aws-crt dev: false - /@aws-sdk/core@3.529.0: - resolution: {integrity: sha512-jVpc5XVDx0uX5sltNpTDCfItB54OS8+qpejItU5rStRDUZG9wJBDq8yvNbymFShGLYi5Ly1YdIyriUPc6Q4Gjw==} + /@aws-sdk/core@3.529.1: + resolution: {integrity: sha512-Sj42sYPfaL9PHvvciMICxhyrDZjqnnvFbPKDmQL5aFKyXy122qx7RdVqUOQERDmMQfvJh6+0W1zQlLnre89q4Q==} engines: {node: '>=14.0.0'} dependencies: '@smithy/core': 1.3.7 @@ -359,6 +359,7 @@ packages: '@smithy/signature-v4': 2.1.4 '@smithy/smithy-client': 2.4.4 '@smithy/types': 2.11.0 + fast-xml-parser: 4.2.5 tslib: 2.6.2 dev: false @@ -387,15 +388,15 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-ini@3.529.0(@aws-sdk/credential-provider-node@3.529.0): - resolution: {integrity: sha512-JnK4H4TjD5MMX31idkJ5oQgSygZ+cMrc9syZ81jN+Kru94WHYoMKlvAU4VXTA2HjL0grM9wo6UeNadD9qWjLrQ==} + /@aws-sdk/credential-provider-ini@3.529.1(@aws-sdk/credential-provider-node@3.529.1): + resolution: {integrity: sha512-RjHsuTvHIwXG7a/3ERexemiD3c9riKMCZQzY2/b0Gg0ButEVbBcMfERtUzWmQ0V4ufe/PEZjP68MH1gupcoF9A==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sts': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/client-sts': 3.529.1(@aws-sdk/credential-provider-node@3.529.1) '@aws-sdk/credential-provider-env': 3.523.0 '@aws-sdk/credential-provider-process': 3.523.0 - '@aws-sdk/credential-provider-sso': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) - '@aws-sdk/credential-provider-web-identity': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/credential-provider-sso': 3.529.1(@aws-sdk/credential-provider-node@3.529.1) + '@aws-sdk/credential-provider-web-identity': 3.529.1(@aws-sdk/credential-provider-node@3.529.1) '@aws-sdk/types': 3.523.0 '@smithy/credential-provider-imds': 2.2.6 '@smithy/property-provider': 2.1.4 @@ -407,16 +408,16 @@ packages: - aws-crt dev: false - /@aws-sdk/credential-provider-node@3.529.0: - resolution: {integrity: sha512-GrrF3uxovxZ23bZYcSUAa+b0c1UYHkn4XFVnO3tlpx6GmTVWIgQ2zzdw4mwPoTsS9LRKkV/RCyKqf8Cvmkgyeg==} + /@aws-sdk/credential-provider-node@3.529.1: + resolution: {integrity: sha512-mvY7F3dMmk/0dZOCfl5sUI1bG0osureBjxhELGCF0KkJqhWI0hIzh8UnPkYytSg3vdc97CMv7pTcozxrdA3b0g==} engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/credential-provider-env': 3.523.0 '@aws-sdk/credential-provider-http': 3.525.0 - '@aws-sdk/credential-provider-ini': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/credential-provider-ini': 3.529.1(@aws-sdk/credential-provider-node@3.529.1) '@aws-sdk/credential-provider-process': 3.523.0 - '@aws-sdk/credential-provider-sso': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) - '@aws-sdk/credential-provider-web-identity': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/credential-provider-sso': 3.529.1(@aws-sdk/credential-provider-node@3.529.1) + '@aws-sdk/credential-provider-web-identity': 3.529.1(@aws-sdk/credential-provider-node@3.529.1) '@aws-sdk/types': 3.523.0 '@smithy/credential-provider-imds': 2.2.6 '@smithy/property-provider': 2.1.4 @@ -438,12 +439,12 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-sso@3.529.0(@aws-sdk/credential-provider-node@3.529.0): - resolution: {integrity: sha512-UwG0fmggIlrxCKyD6oSMGL+LN8uq/DSkg4pCQo0uuEB6qGFDnnyvXsQ5lFtBngnmo3PLk34OAZvkz7IS35cl8A==} + /@aws-sdk/credential-provider-sso@3.529.1(@aws-sdk/credential-provider-node@3.529.1): + resolution: {integrity: sha512-KFMKkaoTGDgSJG+o9Ii7AglWG5JQeF6IFw9cXLMwDdIrp3KUmRcUIqe0cjOoCqeQEDGy0VHsimHmKKJ3894i/A==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sso': 3.529.0 - '@aws-sdk/token-providers': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/client-sso': 3.529.1 + '@aws-sdk/token-providers': 3.529.1(@aws-sdk/credential-provider-node@3.529.1) '@aws-sdk/types': 3.523.0 '@smithy/property-provider': 2.1.4 '@smithy/shared-ini-file-loader': 2.3.5 @@ -454,11 +455,11 @@ packages: - aws-crt dev: false - /@aws-sdk/credential-provider-web-identity@3.529.0(@aws-sdk/credential-provider-node@3.529.0): - resolution: {integrity: sha512-rtSzWA7HW7iTfd0QvRtoBBFVOwR2xxcvHGdRxj0IczxhjT0aJCadLDuNfr1Y/8tO5TPLcFAoDmcnshQ5Agqp8Q==} + /@aws-sdk/credential-provider-web-identity@3.529.1(@aws-sdk/credential-provider-node@3.529.1): + resolution: {integrity: sha512-AGuZDOKN+AttjwTjrF47WLqzeEut2YynyxjkXZhxZF/xn8i5Y51kUAUdXsXw1bgR25pAeXQIdhsrQlRa1Pm5kw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sts': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/client-sts': 3.529.1(@aws-sdk/credential-provider-node@3.529.1) '@aws-sdk/types': 3.523.0 '@smithy/property-provider': 2.1.4 '@smithy/types': 2.11.0 @@ -468,6 +469,22 @@ packages: - aws-crt dev: false + /@aws-sdk/lib-storage@3.583.0(@aws-sdk/client-s3@3.529.1): + resolution: {integrity: sha512-To3mCeSpJiHWxAh00S5+cRfx8BkbdmWvZG2Rvcz20Qqh/GmhMWeDbN4OjDTqcewWpqNhU0n1ShZY/GcIWSn+Pg==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@aws-sdk/client-s3': ^3.583.0 + dependencies: + '@aws-sdk/client-s3': 3.529.1 + '@smithy/abort-controller': 3.0.0 + '@smithy/middleware-endpoint': 3.0.0 + '@smithy/smithy-client': 3.0.1 + buffer: 5.6.0 + events: 3.3.0 + stream-browserify: 3.0.0 + tslib: 2.6.2 + dev: false + /@aws-sdk/middleware-bucket-endpoint@3.525.0: resolution: {integrity: sha512-nYfQ2Xspfef7j8mZO7varUWLPH6HQlXateH7tBVtBNUAazyQE4UJEvC0fbQ+Y01e+FKlirim/m2umkdMXqAlTg==} engines: {node: '>=14.0.0'} @@ -603,8 +620,8 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/s3-request-presigner@3.529.0: - resolution: {integrity: sha512-vF7u8pKxFF//oTnZuQ2r8KEaUt1pgv7aYNC6sLCatC7DxQ+9jrmJki9zzFKOAA0oxcepOtgNx+I/G6ljFP2/zg==} + /@aws-sdk/s3-request-presigner@3.529.1: + resolution: {integrity: sha512-54nNN/LjqlyUDTLO3U9D7xkYK4/UttcqfKoHQuPI6QabqZGT1hMFs5SzsyihNchgxci6ZTo4pqQQ3lGfE/HHOA==} engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/signature-v4-multi-region': 3.525.0 @@ -629,11 +646,11 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/token-providers@3.529.0(@aws-sdk/credential-provider-node@3.529.0): - resolution: {integrity: sha512-mQrqF9YwApeh5AkUpZqvGhpXzQyUFm6Yxh3/cOTXd5cBjttcAlenyc75BTYb4kYXj1xW5dktnlnFD7sS+s7e8g==} + /@aws-sdk/token-providers@3.529.1(@aws-sdk/credential-provider-node@3.529.1): + resolution: {integrity: sha512-NpgMjsfpqiugbxrYGXtta914N43Mx/H0niidqv8wKMTgWQEtsJvYtOni+kuLXB+LmpjaMFNlpadooFU/bK4buA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-sso-oidc': 3.529.0(@aws-sdk/credential-provider-node@3.529.0) + '@aws-sdk/client-sso-oidc': 3.529.1(@aws-sdk/credential-provider-node@3.529.1) '@aws-sdk/types': 3.523.0 '@smithy/property-provider': 2.1.4 '@smithy/shared-ini-file-loader': 2.3.5 @@ -1434,6 +1451,14 @@ packages: tslib: 2.6.2 dev: false + /@smithy/abort-controller@3.0.0: + resolution: {integrity: sha512-p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/chunked-blob-reader-native@2.1.2: resolution: {integrity: sha512-KwR9fFc/t5jH9RQFbrA9DHSmI+URTmB4v+i7H08UNET9AcN6GGBTBMiDKpA56Crw6CN7cSaSDXaRS/AsfOuupQ==} dependencies: @@ -1537,6 +1562,16 @@ packages: tslib: 2.6.2 dev: false + /@smithy/fetch-http-handler@3.0.1: + resolution: {integrity: sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg==} + dependencies: + '@smithy/protocol-http': 4.0.0 + '@smithy/querystring-builder': 3.0.0 + '@smithy/types': 3.0.0 + '@smithy/util-base64': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/hash-blob-browser@2.1.4: resolution: {integrity: sha512-bDugS1DortnriGDdp0sqdq7dLI5if8CEOF9rKtpJa1ZYMq6fxOtTId//dlilS5QgUtUs6GHN5aMQVxEjhBzzQA==} dependencies: @@ -1579,6 +1614,13 @@ packages: tslib: 2.6.2 dev: false + /@smithy/is-array-buffer@3.0.0: + resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} + engines: {node: '>=16.0.0'} + dependencies: + tslib: 2.6.2 + dev: false + /@smithy/md5-js@2.1.4: resolution: {integrity: sha512-WHTnnYJPKE7Sy49DogLuox42TnlwD3cQ6TObPD6WFWjKocWIdpEpIvdJHwWUfSFf0JIi8ON8z6ZEhsnyKVCcLQ==} dependencies: @@ -1609,6 +1651,19 @@ packages: tslib: 2.6.2 dev: false + /@smithy/middleware-endpoint@3.0.0: + resolution: {integrity: sha512-aXOAWztw/5qAfp0NcA2OWpv6ZI/E+Dh9mByif7i91D/0iyYNUcKvskmXiowKESFkuZ7PIMd3VOR4fTibZDs2OQ==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/middleware-serde': 3.0.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/shared-ini-file-loader': 3.0.0 + '@smithy/types': 3.0.0 + '@smithy/url-parser': 3.0.0 + '@smithy/util-middleware': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/middleware-retry@2.1.6: resolution: {integrity: sha512-khpSV0NxqMHfa06kfG4WYv+978sVvfTFmn0hIFKKwOXtIxyYtPKiQWFT4nnwZD07fGdYGbtCBu3YALc8SsA5mA==} engines: {node: '>=14.0.0'} @@ -1632,6 +1687,14 @@ packages: tslib: 2.6.2 dev: false + /@smithy/middleware-serde@3.0.0: + resolution: {integrity: sha512-I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/middleware-stack@2.1.4: resolution: {integrity: sha512-Qqs2ba8Ax1rGKOSGJS2JN23fhhox2WMdRuzx0NYHtXzhxbJOIMmz9uQY6Hf4PY8FPteBPp1+h0j5Fmr+oW12sg==} engines: {node: '>=14.0.0'} @@ -1640,6 +1703,14 @@ packages: tslib: 2.6.2 dev: false + /@smithy/middleware-stack@3.0.0: + resolution: {integrity: sha512-+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/node-config-provider@2.2.5: resolution: {integrity: sha512-CxPf2CXhjO79IypHJLBATB66Dw6suvr1Yc2ccY39hpR6wdse3pZ3E8RF83SODiNH0Wjmkd0ze4OF8exugEixgA==} engines: {node: '>=14.0.0'} @@ -1650,6 +1721,16 @@ packages: tslib: 2.6.2 dev: false + /@smithy/node-config-provider@3.0.0: + resolution: {integrity: sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/property-provider': 3.0.0 + '@smithy/shared-ini-file-loader': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/node-http-handler@2.4.2: resolution: {integrity: sha512-yrj3c1g145uiK5io+1UPbJAHo8BSGORkBzrmzvAsOmBKb+1p3jmM8ZwNLDH/HTTxVLm9iM5rMszx+iAh1HUC4Q==} engines: {node: '>=14.0.0'} @@ -1661,6 +1742,17 @@ packages: tslib: 2.6.2 dev: false + /@smithy/node-http-handler@3.0.0: + resolution: {integrity: sha512-3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/abort-controller': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/querystring-builder': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/property-provider@2.1.4: resolution: {integrity: sha512-nWaY/MImj1BiXZ9WY65h45dcxOx8pl06KYoHxwojDxDL+Q9yLU1YnZpgv8zsHhEftlj9KhePENjQTlNowWVyug==} engines: {node: '>=14.0.0'} @@ -1669,6 +1761,14 @@ packages: tslib: 2.6.2 dev: false + /@smithy/property-provider@3.0.0: + resolution: {integrity: sha512-LmbPgHBswdXCrkWWuUwBm9w72S2iLWyC/5jet9/Y9cGHtzqxi+GVjfCfahkvNV4KXEwgnH8EMpcrD9RUYe0eLQ==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/protocol-http@3.2.2: resolution: {integrity: sha512-xYBlllOQcOuLoxzhF2u8kRHhIFGQpDeTQj/dBSnw4kfI29WMKL5RnW1m9YjnJAJ49miuIvrkJR+gW5bCQ+Mchw==} engines: {node: '>=14.0.0'} @@ -1677,6 +1777,14 @@ packages: tslib: 2.6.2 dev: false + /@smithy/protocol-http@4.0.0: + resolution: {integrity: sha512-qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/querystring-builder@2.1.4: resolution: {integrity: sha512-LXSL0J/nRWvGT+jIj+Fip3j0J1ZmHkUyBFRzg/4SmPNCLeDrtVu7ptKOnTboPsFZu5BxmpYok3kJuQzzRdrhbw==} engines: {node: '>=14.0.0'} @@ -1686,6 +1794,15 @@ packages: tslib: 2.6.2 dev: false + /@smithy/querystring-builder@3.0.0: + resolution: {integrity: sha512-bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/types': 3.0.0 + '@smithy/util-uri-escape': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/querystring-parser@2.1.4: resolution: {integrity: sha512-U2b8olKXgZAs0eRo7Op11jTNmmcC/sqYmsA7vN6A+jkGnDvJlEl7AetUegbBzU8q3D6WzC5rhR/joIy8tXPzIg==} engines: {node: '>=14.0.0'} @@ -1694,6 +1811,14 @@ packages: tslib: 2.6.2 dev: false + /@smithy/querystring-parser@3.0.0: + resolution: {integrity: sha512-UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/service-error-classification@2.1.4: resolution: {integrity: sha512-JW2Hthy21evnvDmYYk1kItOmbp3X5XI5iqorXgFEunb6hQfSDZ7O1g0Clyxg7k/Pcr9pfLk5xDIR2To/IohlsQ==} engines: {node: '>=14.0.0'} @@ -1709,6 +1834,14 @@ packages: tslib: 2.6.2 dev: false + /@smithy/shared-ini-file-loader@3.0.0: + resolution: {integrity: sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/signature-v4@2.1.4: resolution: {integrity: sha512-gnu9gCn0qQ8IdhNjs6o3QVCXzUs33znSDYwVMWo3nX4dM6j7z9u6FC302ShYyVWfO4MkVMuGCCJ6nl3PcH7V1Q==} engines: {node: '>=14.0.0'} @@ -1735,6 +1868,18 @@ packages: tslib: 2.6.2 dev: false + /@smithy/smithy-client@3.0.1: + resolution: {integrity: sha512-KAiFY4Y4jdHxR+4zerH/VBhaFKM8pbaVmJZ/CWJRwtM/CmwzTfXfvYwf6GoUwiHepdv+lwiOXCuOl6UBDUEINw==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/middleware-endpoint': 3.0.0 + '@smithy/middleware-stack': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/types': 3.0.0 + '@smithy/util-stream': 3.0.1 + tslib: 2.6.2 + dev: false + /@smithy/types@2.11.0: resolution: {integrity: sha512-AR0SXO7FuAskfNhyGfSTThpLRntDI5bOrU0xrpVYU0rZyjl3LBXInZFMTP/NNSd7IS6Ksdtar0QvnrPRIhVrLQ==} engines: {node: '>=14.0.0'} @@ -1742,6 +1887,13 @@ packages: tslib: 2.6.2 dev: false + /@smithy/types@3.0.0: + resolution: {integrity: sha512-VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw==} + engines: {node: '>=16.0.0'} + dependencies: + tslib: 2.6.2 + dev: false + /@smithy/url-parser@2.1.4: resolution: {integrity: sha512-1hTy6UYRYqOZlHKH2/2NzdNQ4NNmW2Lp0sYYvztKy+dEQuLvZL9w88zCzFQqqFer3DMcscYOshImxkJTGdV+rg==} dependencies: @@ -1750,6 +1902,14 @@ packages: tslib: 2.6.2 dev: false + /@smithy/url-parser@3.0.0: + resolution: {integrity: sha512-2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw==} + dependencies: + '@smithy/querystring-parser': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/util-base64@2.2.0: resolution: {integrity: sha512-RiQI/Txu0SxCR38Ky5BMEVaFfkNTBjpbxlr2UhhxggSmnsHDQPZJWMtPoXs7TWZaseslIlAWMiHmqRT3AV/P2w==} engines: {node: '>=14.0.0'} @@ -1759,6 +1919,15 @@ packages: tslib: 2.6.2 dev: false + /@smithy/util-base64@3.0.0: + resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/util-body-length-browser@2.1.1: resolution: {integrity: sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==} dependencies: @@ -1780,6 +1949,14 @@ packages: tslib: 2.6.2 dev: false + /@smithy/util-buffer-from@3.0.0: + resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/is-array-buffer': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/util-config-provider@2.2.1: resolution: {integrity: sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==} engines: {node: '>=14.0.0'} @@ -1827,6 +2004,13 @@ packages: tslib: 2.6.2 dev: false + /@smithy/util-hex-encoding@3.0.0: + resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} + engines: {node: '>=16.0.0'} + dependencies: + tslib: 2.6.2 + dev: false + /@smithy/util-middleware@2.1.4: resolution: {integrity: sha512-5yYNOgCN0DL0OplME0pthoUR/sCfipnROkbTO7m872o0GHCVNJj5xOFJ143rvHNA54+pIPMLum4z2DhPC2pVGA==} engines: {node: '>=14.0.0'} @@ -1835,6 +2019,14 @@ packages: tslib: 2.6.2 dev: false + /@smithy/util-middleware@3.0.0: + resolution: {integrity: sha512-q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/util-retry@2.1.4: resolution: {integrity: sha512-JRZwhA3fhkdenSEYIWatC8oLwt4Bdf2LhHbNQApqb7yFoIGMl4twcYI3BcJZ7YIBZrACA9jGveW6tuCd836XzQ==} engines: {node: '>= 14.0.0'} @@ -1858,6 +2050,20 @@ packages: tslib: 2.6.2 dev: false + /@smithy/util-stream@3.0.1: + resolution: {integrity: sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/fetch-http-handler': 3.0.1 + '@smithy/node-http-handler': 3.0.0 + '@smithy/types': 3.0.0 + '@smithy/util-base64': 3.0.0 + '@smithy/util-buffer-from': 3.0.0 + '@smithy/util-hex-encoding': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/util-uri-escape@2.1.1: resolution: {integrity: sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==} engines: {node: '>=14.0.0'} @@ -1865,6 +2071,13 @@ packages: tslib: 2.6.2 dev: false + /@smithy/util-uri-escape@3.0.0: + resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==} + engines: {node: '>=16.0.0'} + dependencies: + tslib: 2.6.2 + dev: false + /@smithy/util-utf8@2.2.0: resolution: {integrity: sha512-hBsKr5BqrDrKS8qy+YcV7/htmMGxriA1PREOf/8AGBhHIZnfilVv1Waf1OyKhSbFW15U/8+gcMUQ9/Kk5qwpHQ==} engines: {node: '>=14.0.0'} @@ -1873,6 +2086,14 @@ packages: tslib: 2.6.2 dev: false + /@smithy/util-utf8@3.0.0: + resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} + engines: {node: '>=16.0.0'} + dependencies: + '@smithy/util-buffer-from': 3.0.0 + tslib: 2.6.2 + dev: false + /@smithy/util-waiter@2.1.4: resolution: {integrity: sha512-AK17WaC0hx1wR9juAOsQkJ6DjDxBGEf5TrKhpXtNFEn+cVto9Li3MVsdpAO97AF7bhFXSyC8tJA3F4ThhqwCdg==} engines: {node: '>=14.0.0'} @@ -2271,6 +2492,10 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: false + /bowser@2.11.0: resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} dev: false @@ -2323,6 +2548,13 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true + /buffer@5.6.0: + resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -2662,6 +2894,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: false + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -2917,6 +3154,10 @@ packages: engines: {node: '>=10.17.0'} dev: true + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: false + /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -2953,7 +3194,6 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -3857,6 +4097,15 @@ packages: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: false + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -3919,6 +4168,10 @@ packages: queue-microtask: 1.2.3 dev: true + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: false + /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -3985,6 +4238,13 @@ packages: escape-string-regexp: 2.0.0 dev: true + /stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + /string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -4011,6 +4271,12 @@ packages: strip-ansi: 7.1.0 dev: true + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: false + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -4199,6 +4465,10 @@ packages: punycode: 2.3.1 dev: true + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: false + /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true diff --git a/src/Bucket.ts b/src/Bucket.ts index c07d95c..8a5a786 100644 --- a/src/Bucket.ts +++ b/src/Bucket.ts @@ -11,9 +11,12 @@ import { PutObjectCommand, type S3Client as R2, } from '@aws-sdk/client-s3'; +import { Upload, type Progress } from '@aws-sdk/lib-storage'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; -import { createReadStream, PathLike } from 'fs'; -import { CORSPolicy, HeadObjectResponse, ObjectListResponse, UploadFileResponse } from './types'; +import { ReadStream, createReadStream, type PathLike } from 'fs'; +import { basename } from 'path'; +import type { Readable } from 'stream'; +import type { CORSPolicy, HeadObjectResponse, ObjectListResponse, UploadFileResponse } from './types'; export class Bucket { private r2: R2; @@ -61,7 +64,6 @@ export class Bucket { public provideBucketPublicUrl(bucketPublicUrl: string): this; public provideBucketPublicUrl(bucketPublicUrls: string[]): this; - public provideBucketPublicUrl(...bucketPublicUrls: string[]): this; /** * Sets the public URL for the current bucket. If public access to the bucket is allowed, use this method to provide bucket public URL to this `Bucket` object. @@ -70,12 +72,11 @@ export class Bucket { */ public provideBucketPublicUrl(bucketPublicUrl: string | string[]): this { if (typeof bucketPublicUrl === 'string') { - this.bucketPublicUrls.push(new URL(bucketPublicUrl).origin); + const origin = new URL(bucketPublicUrl).origin; + this.bucketPublicUrls.push(origin); } else if (Array.isArray(bucketPublicUrl)) { for (const url of bucketPublicUrl) { - if (typeof url === 'string') { - this.provideBucketPublicUrl(url); - } + if (typeof url === 'string') this.provideBucketPublicUrl(url); } } @@ -83,6 +84,8 @@ export class Bucket { } /** + * **DEPRECATED. This method will be removed in the next major version. Use `getPublicUrls()` instead.** + * * Returns the bucket public URL if it's set with `provideBucketPublicUrl` method. * @deprecated */ @@ -91,19 +94,18 @@ export class Bucket { } /** - * Returns all public URLs of the bucket if it's set with `provideBucketPublicUrl` method. + * Returns all public URLs of the bucket if it's set with `provideBucketPublicUrl()` method. */ public getPublicUrls(): string[] { return this.bucketPublicUrls; } /** - * Returns the signed URL of an object. + * Returns the signed URL of an object. This method does not check whether the object exists or not. * @param objectKey * @param expiresIn Expiration time in seconds. - * @returns */ - public async getObjectSignedUrl(objectKey: string, expiresIn: number) { + public async getObjectSignedUrl(objectKey: string, expiresIn: number): Promise<string> { const obj = new GetObjectCommand({ Bucket: this.name, Key: objectKey, @@ -115,7 +117,6 @@ export class Bucket { /** * Generates object public URL if the bucket public URL is set with `provideBucketPublicUrl` method. * @param objectKey - * @returns */ protected generateObjectPublicUrl(objectKey: string): string | null { if (!this.bucketPublicUrls.length) return null; @@ -124,7 +125,25 @@ export class Bucket { } /** - * Determines if the bucket exists and you have permission to access it. + * Generates object public URLs if the bucket public URL is set with `provideBucketPublicUrl` method. + * @param objectKey + */ + protected generateObjectPublicUrls(objectKey: string): Array<string> { + if (!this.bucketPublicUrls.length) return []; + + return this.bucketPublicUrls.map((publicUrl) => `${publicUrl}/${objectKey}`); + } + + /** + * Returns all public URL of an object in the bucket. + * @param objectKey + */ + public getObjectPublicUrls(objectKey: string): string[] { + return this.bucketPublicUrls.map((bucketPublicUrl) => `${bucketPublicUrl}/${objectKey}`); + } + + /** + * Checks if the bucket exists and you have permission to access it. * @param bucketName */ public async exists(): Promise<boolean> { @@ -142,9 +161,19 @@ export class Bucket { } /** + * **DEPRECATED. This method will be remove in the next major version. Use `getCorsPolicies()` instead.** + * * Returns Cross-Origin Resource Sharing (CORS) policies of the bucket. + * @deprecated */ public async getCors(): Promise<CORSPolicy[]> { + return this.getCorsPolicies(); + } + + /** + * Returns Cross-Origin Resource Sharing (CORS) policies of the bucket. + */ + public async getCorsPolicies(): Promise<CORSPolicy[]> { try { const result = await this.r2.send( new GetBucketCorsCommand({ @@ -179,7 +208,7 @@ export class Bucket { } /** - * Returns the region the bucket resides in. For `Cloudflare R2`, the region is always `auto`. + * Returns the region the bucket resides in. * @param bucketName */ public async getRegion() { @@ -191,6 +220,9 @@ export class Bucket { return result.LocationConstraint || 'auto'; } + /** + * Returns the encryption configuration of the bucket. + */ public async getEncryption() { const result = await this.r2.send( new GetBucketEncryptionCommand({ @@ -213,7 +245,7 @@ export class Bucket { } /** - * Upload a file to the bucket. + * Upload a local file to the bucket. If the file already exists in the bucket, it will be overwritten. * @param file File location. * @param destination Name of the file to put in the bucket. If `destination` contains slash character(s), this will put the file inside directories. * @param customMetadata Custom metadata to set to the uploaded file. @@ -221,32 +253,15 @@ export class Bucket { */ public async uploadFile( file: PathLike, - destination: string, + destination?: string, customMetadata?: Record<string, string>, mimeType?: string ): Promise<UploadFileResponse> { const fileStream = createReadStream(file); try { - destination = destination.startsWith('/') ? destination.replace(/^\/+/, '') : destination; - const result = await this.r2.send( - new PutObjectCommand({ - Bucket: this.name, - Key: destination, - Body: fileStream, - ContentType: mimeType || 'application/octet-stream', - Metadata: customMetadata, - }) - ); - + const result = this.upload(fileStream, destination || basename(file.toString()), customMetadata, mimeType); fileStream.close(); - - return { - objectKey: destination, - uri: `${this.uri}/${destination}`, - publicUrl: this.generateObjectPublicUrl(destination), - etag: result.ETag, - versionId: result.VersionId, - }; + return result; } catch (error) { fileStream.close(); throw error; @@ -254,7 +269,84 @@ export class Bucket { } /** - * **DEPRECATED. Use `deleteObject()` instead.** + * Upload an object to the bucket. + * @param contents The object contents to upload. + * @param destination The name of the file to put in the bucket. If `destination` contains slash character(s), this will put the file inside directories. If the file already exists in the bucket, it will be overwritten. + * @param customMetadata Custom metadata to set to the uploaded file. + * @param mimeType Optional mime type. (Default: `application/octet-stream`) + */ + public async upload( + contents: string | Uint8Array | Buffer | Readable | ReadStream, + destination: string, + customMetadata?: Record<string, string>, + mimeType?: string + ): Promise<UploadFileResponse> { + destination = destination.startsWith('/') ? destination.replace(/^\/+/, '') : destination; + + const result = await this.r2.send( + new PutObjectCommand({ + Bucket: this.name, + Key: destination, + Body: contents, + ContentType: mimeType || 'application/octet-stream', + Metadata: customMetadata, + }) + ); + + return { + objectKey: destination, + uri: `${this.uri}/${destination}`, + publicUrl: this.generateObjectPublicUrl(destination), + publicUrls: this.generateObjectPublicUrls(destination), + etag: result.ETag, + versionId: result.VersionId, + }; + } + + /** + * Upload an object or stream to the bucket. This is a new method to put object to the bucket using multipart upload. + * @param contents The object contents to upload. + * @param destination The name of the file to put in the bucket. If `destination` contains slash character(s), this will put the file inside directories. If the file already exists in the bucket, it will be overwritten. + * @param customMetadata Custom metadata to set to the uploaded file. + * @param mimeType Optional mime type. (Default: `application/octet-stream`) + * @param onProgress A callback to handle progress data. + */ + public async uploadStream( + contents: string | Uint8Array | Buffer | Readable | ReadStream, + destination: string, + customMetadata?: Record<string, string>, + mimeType?: string, + onProgress?: (progress: Progress) => void + ): Promise<UploadFileResponse> { + destination = destination.startsWith('/') ? destination.replace(/^\/+/, '') : destination; + + const upload = new Upload({ + client: this.r2, + params: { + Bucket: this.name, + Key: destination, + Body: contents, + ContentType: mimeType || 'application/octet-stream', + Metadata: customMetadata, + }, + }); + + if (onProgress) upload.on('httpUploadProgress', (progress) => onProgress(progress)); + + const result = await upload.done(); + + return { + objectKey: destination, + uri: `${this.uri}/${destination}`, + publicUrl: this.generateObjectPublicUrl(destination), + publicUrls: this.generateObjectPublicUrls(destination), + etag: result.ETag, + versionId: result.VersionId, + }; + } + + /** + * **DEPRECATED. This method will be removed in the next major version. Use `deleteObject()` instead.** * * Deletes a file in the bucket. * @param file @@ -349,21 +441,25 @@ export class Bucket { /** * Copies an object from the current storage bucket to a new destination object in the same bucket. - * @param source The key of the source object to be copied. - * @param destination The key of the destination object where the source object will be copied to. + * @param sourceObjectKey The key of the source object to be copied. + * @param destinationObjectKey The key of the destination object where the source object will be copied to. */ - public async copyObject(source: string, destination: string) { + public async copyObject(sourceObjectKey: string, destinationObjectKey: string) { const result = await this.r2.send( new CopyObjectCommand({ Bucket: this.name, - CopySource: source, - Key: destination, + CopySource: sourceObjectKey, + Key: destinationObjectKey, }) ); return result; } + /** + * Checks if an object exists in the bucket. + * @param objectkey + */ public async objectExists(objectkey: string): Promise<boolean> { try { const result = await this.headObject(objectkey); diff --git a/src/R2.ts b/src/R2.ts index 7bc0f17..4abc823 100644 --- a/src/R2.ts +++ b/src/R2.ts @@ -1,6 +1,6 @@ import { CreateBucketCommand, DeleteBucketCommand, ListBucketsCommand, S3Client } from '@aws-sdk/client-s3'; import { Bucket } from './Bucket'; -import { BucketList, CORSPolicy, CloudflareR2Config } from './types'; +import type { BucketList, CORSPolicy, CloudflareR2Config } from './types'; export class R2 { private config: CloudflareR2Config; diff --git a/src/types.ts b/src/types.ts index 68a30b2..c8fc870 100644 --- a/src/types.ts +++ b/src/types.ts @@ -15,18 +15,23 @@ export type BucketList = { }; }; -export enum LocationHint { +/* export enum RegionHint { WesternNorthAmerica = 'wnam', EasternNorthAmerica = 'enam', WesternEurope = 'weur', EasternEurope = 'eeur', AsiaPacific = 'apac', -} +} */ export type UploadFileResponse = { objectKey: string; uri: string; + /** + * **DEPRECATED. This property will be remove in the next major version. Use `publicUrls` property instead.** + * @deprecated + */ publicUrl: string | null; + publicUrls: Array<string>; etag?: string; versionId?: string; }; From 84392e3468b078eca17b3355a7d57bf90bee9a1b Mon Sep 17 00:00:00 2001 From: Surya Oktafendri <f2face@f2face.com> Date: Wed, 29 May 2024 17:52:47 +0700 Subject: [PATCH 6/7] fix import --- src/Bucket.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Bucket.ts b/src/Bucket.ts index 8a5a786..ecdc6bf 100644 --- a/src/Bucket.ts +++ b/src/Bucket.ts @@ -13,7 +13,7 @@ import { } from '@aws-sdk/client-s3'; import { Upload, type Progress } from '@aws-sdk/lib-storage'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; -import { ReadStream, createReadStream, type PathLike } from 'fs'; +import { type ReadStream, createReadStream, type PathLike } from 'fs'; import { basename } from 'path'; import type { Readable } from 'stream'; import type { CORSPolicy, HeadObjectResponse, ObjectListResponse, UploadFileResponse } from './types'; From e0bdf3dde0b3bcf10d0cce3a17e36f3215090b7d Mon Sep 17 00:00:00 2001 From: Surya Oktafendri <f2face@f2face.com> Date: Thu, 30 May 2024 14:35:05 +0700 Subject: [PATCH 7/7] Cleanup & update README --- README.md | 60 +++++++++++++++++++++++++++++++++++++++++++-------- package.json | 3 +-- src/Bucket.ts | 9 +------- 3 files changed, 53 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index b88a4f9..6866a25 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This is a wrapper of the AWS S3 client library, designed to provide a user-frien > ⚠ This library is currently in development and is not yet ready for production use. It is subject to change and may contain bugs or other issues. Please use it at your own risk. -### Installation +## Installation #### npm @@ -30,27 +30,33 @@ pnpm install node-cloudflare-r2 > \ > Check the latest version number in the [release page](https://github.com/f2face/cloudflare-r2/releases). -### Example +## Examples + +### Basic usage ```javascript import { R2 } from 'node-cloudflare-r2'; -import { createReadStream } from 'fs'; +// Initialize R2 const r2 = new R2({ accountId: '<YOUR_ACCOUNT_ID>', accessKeyId: '<YOUR_R2_ACCESS_KEY_ID>', secretAccessKey: '<YOUR_R2_SECRET_ACCESS_KEY>', }); +// Initialize bucket instance const bucket = r2.bucket('<BUCKET_NAME>'); -// Set your bucket's public URL +// [Optional] Provide the public URL(s) of your bucket, if its public access is allowed. bucket.provideBucketPublicUrl('https://pub-xxxxxxxxxxxxxxxxxxxxxxxxx.r2.dev'); -console.log(await bucket.exists()); -// true +// Check if the bucket exists +console.log(await bucket.exists()); // true +``` + +### Upload local file (simple) -// Upload local file +```javascript const upload = await bucket.uploadFile('/path/to/file', 'destination_file_name.ext'); console.log(upload); /* @@ -62,8 +68,44 @@ console.log(upload); versionId: '', } */ +``` + +### Generate signed URL with expiration time + +```javascript +// Generate signed link that expires after 3600 seconds. +const signedUrl = await bucket.getObjectSignedUrl('destination_file_name.ext', 3600); +console.log(signedUrl); +/* +https://bucket-name.cloudflare-account-id.r2.cloudflarestorage.com/destination_file_name.ext?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=...&X-Amz-Date=...&X-Amz-Expires=60&X-Amz-Signature=...&X-Amz-SignedHeaders=host&x-id=GetObject +*/ +``` + +### Upload string or binary data or stream + +```javascript +// Upload text content +const content = 'Lorem ipsum'; +const uploadContent = await bucket.upload(content, 'lorem-ipsum.txt'); +``` + +```javascript +import { createReadStream } from 'fs'; + +// Upload from fs.createReadStream() +const stream = createReadStream('/path/to/file'); +const uploadStream = await bucket.upload(stream, 'destination_file_name2.ext'); +``` + +### Upload stream (advanced) + +This `bucket.uploadStream()` method allows uploading big file or piping stream or stdout directly to your bucket (using multipart upload internally). + +```javascript +// Let's say, you want to record a live stream and pipe it directly to your bucket. +import { spawn } from 'child_process'; -// Upload file or stream -const uploadStream = await bucket.uploadStream(createReadStream('/path/to/file'), 'destination_file_name-stream.ext'); +const streamlink = spawn('streamlink', ['--stdout', '<LIVE_STREAM_HLS_URL>', 'best']); +const uploadLiveStreamVideo = await bucket.uploadStream(streamlink.stdout, 'my_live_stream.ts'); ``` diff --git a/package.json b/package.json index 7622f00..b384f6b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-cloudflare-r2", - "version": "0.2.0", + "version": "0.2.1", "description": "S3 wrapper for Cloudflare R2.", "main": "./lib/index.js", "scripts": { @@ -58,4 +58,3 @@ "typescript": "^5.4.2" } } - diff --git a/src/Bucket.ts b/src/Bucket.ts index ecdc6bf..dbb0705 100644 --- a/src/Bucket.ts +++ b/src/Bucket.ts @@ -353,14 +353,7 @@ export class Bucket { * @deprecated */ public async deleteFile(file: string) { - const result = await this.r2.send( - new DeleteObjectCommand({ - Bucket: this.name, - Key: file, - }) - ); - - return result.$metadata.httpStatusCode === 200; + return this.deleteObject(file); } /**