diff --git a/package.json b/package.json
index eecec97612..30ea128e9d 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
"@azure/storage-blob": "^12.28.0",
"@hapi/joi": "^17.1.1",
"@smithy/node-http-handler": "^3.0.0",
- "arsenal": "git+https://github.com/scality/Arsenal#8.3.0-preview.1",
+ "arsenal": "git+https://github.com/scality/Arsenal#8.3.0",
"async": "2.6.4",
"bucketclient": "scality/bucketclient#8.2.7",
"bufferutil": "^4.0.8",
diff --git a/tests/functional/raw-node/test/GCP/bucket/get.js b/tests/functional/raw-node/test/GCP/bucket/get.js
index dbd52c3cfb..89c9e68e57 100644
--- a/tests/functional/raw-node/test/GCP/bucket/get.js
+++ b/tests/functional/raw-node/test/GCP/bucket/get.js
@@ -1,9 +1,16 @@
const assert = require('assert');
const async = require('async');
const arsenal = require('arsenal');
+const {
+ ListObjectsCommand,
+ HeadBucketCommand,
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ PutObjectCommand,
+ DeleteObjectCommand,
+} = require('@aws-sdk/client-s3');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, genUniqID } = require('../../../utils/gcpUtils');
+const { genUniqID, gcpRetry } = require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
const { listingHardLimit } = require('../../../../../../constants');
@@ -18,95 +25,90 @@ const gcpClient = new GCP(config);
function populateBucket(createdObjects, callback) {
process.stdout.write(
`Putting ${createdObjects.length} objects into bucket\n`);
- async.mapLimit(createdObjects, 10,
- (object, moveOn) => {
- makeGcpRequest({
- method: 'PUT',
- bucket: bucketName,
- objectKey: object,
- authCredentials: config.credentials,
- }, err => {
- moveOn(err);
- });
- }, err => {
- if (err) {
- process.stdout
- .write(`err putting objects ${err.code}\n`);
+ async.mapLimit(
+ createdObjects,
+ 10,
+ async object => {
+ const command = new PutObjectCommand({
+ Bucket: bucketName,
+ Key: object,
+ });
+ await gcpClient.send(command);
+ },
+ err => {
+ if (err) {
+ process.stdout
+ .write(`err putting objects ${err}\n`);
+ }
+ return callback(err);
}
- return callback(err);
- });
+ );
}
function removeObjects(createdObjects, callback) {
process.stdout.write(
`Deleting ${createdObjects.length} objects from bucket\n`);
- async.mapLimit(createdObjects, 10,
- (object, moveOn) => {
- makeGcpRequest({
- method: 'DELETE',
- bucket: bucketName,
- objectKey: object,
- authCredentials: config.credentials,
- }, err => moveOn(err));
- }, err => {
- if (err) {
- process.stdout
- .write(`err deleting objects ${err.code}\n`);
+ async.mapLimit(
+ createdObjects,
+ 10,
+ async object => {
+ const command = new DeleteObjectCommand({
+ Bucket: bucketName,
+ Key: object,
+ });
+ await gcpClient.send(command);
+ },
+ err => {
+ if (err) {
+ process.stdout
+ .write(`err deleting objects ${err}\n`);
+ }
+ return callback(err);
}
- return callback(err);
- });
+ );
}
describe('GCP: GET Bucket', function testSuite() {
this.timeout(180000);
- before(done => {
- gcpRequestRetry({
- method: 'PUT',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}\n`);
- }
- return done(err);
- });
+ before(async () => {
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucketName }),
+ );
});
- after(done => {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in deleting bucket ${err}\n`);
- }
- return done(err);
- });
+ after(async () => {
+ await gcpRetry(
+ gcpClient,
+ new DeleteBucketCommand({ Bucket: bucketName }),
+ );
});
describe('without existing bucket', () => {
- it('should return 404 and NoSuchBucket', done => {
+ it('should return 404 and NoSuchBucket', async () => {
const badBucketName = `nonexistingbucket-${genUniqID()}`;
- gcpClient.getBucket({
- Bucket: badBucketName,
- }, err => {
+ try {
+ const command = new HeadBucketCommand({
+ Bucket: badBucketName,
+ });
+ await gcpClient.send(command);
+ assert.fail('Expected NoSuchBucket error, but got success');
+ } catch (err) {
assert(err);
- assert.strictEqual(err.$metadata?.httpStatusCode, 404);
- assert.strictEqual(err.name, 'NoSuchBucket');
- return done();
- });
+ const statusCode = err.$metadata && err.$metadata.httpStatusCode;
+ assert.strictEqual(statusCode, 404);
+ const errorName = err.name === 'NotFound' ? 'NoSuchBucket' : err.name;
+ assert.strictEqual(errorName, 'NoSuchBucket');
+ }
});
- it('should return 200', done => {
- gcpClient.listObjects({
+ it('should return 200', async () => {
+ const command = new ListObjectsCommand({
Bucket: bucketName,
- }, (err, res) => {
- assert.equal(err, null, `Expected success, but got ${err}`);
- assert.strictEqual(res.$metadata?.httpStatusCode, 200);
- return done();
});
+ const res = await gcpClient.send(command);
+ assert.strictEqual(res.$metadata?.httpStatusCode, 200);
});
});
@@ -119,27 +121,22 @@ describe('GCP: GET Bucket', function testSuite() {
after(done => removeObjects(createdObjects, done));
- it(`should list all ${smallSize} created objects`, done => {
- gcpClient.listObjects({
+ it(`should list all ${smallSize} created objects`, async () => {
+ const command = new ListObjectsCommand({
Bucket: bucketName,
- }, (err, res) => {
- assert.equal(err, null, `Expected success, but got ${err}`);
- assert.strictEqual(res.Contents.length, smallSize);
- return done();
});
+ const res = await gcpClient.send(command);
+ assert.strictEqual(res.Contents.length, smallSize);
});
describe('with MaxKeys at 10', () => {
- it('should list MaxKeys number of objects', done => {
- gcpClient.listObjects({
+ it('should list MaxKeys number of objects', async () => {
+ const command = new ListObjectsCommand({
Bucket: bucketName,
MaxKeys: 10,
- }, (err, res) => {
- assert.equal(err, null,
- `Expected success, but got ${err}`);
- assert.strictEqual(res.Contents.length, 10);
- return done();
});
+ const res = await gcpClient.send(command);
+ assert.strictEqual(res.Contents.length, 10);
});
});
});
@@ -152,15 +149,12 @@ describe('GCP: GET Bucket', function testSuite() {
after(done => removeObjects(createdObjects, done));
- it('should list at max 1000 of objects created', done => {
- gcpClient.listObjects({
+ it('should list at max 1000 of objects created', async () => {
+ const command = new ListObjectsCommand({
Bucket: bucketName,
- }, (err, res) => {
- assert.equal(err, null, `Expected success, but got ${err}`);
- assert.strictEqual(res.Contents.length,
- listingHardLimit);
- return done();
});
+ const res = await gcpClient.send(command);
+ assert.strictEqual(res.Contents.length, listingHardLimit);
});
describe('with MaxKeys at 1001', () => {
@@ -175,17 +169,13 @@ describe('GCP: GET Bucket', function testSuite() {
//
// Actual behavior: it returns a list longer than 1000 objects when
// max-keys is greater than 1000
- it.skip('should list at max 1000, ignoring MaxKeys', done => {
- gcpClient.listObjects({
+ it.skip('should list at max 1000, ignoring MaxKeys', async () => {
+ const command = new ListObjectsCommand({
Bucket: bucketName,
MaxKeys: 1001,
- }, (err, res) => {
- assert.equal(err, null,
- `Expected success, but got ${err}`);
- assert.strictEqual(res.Contents.length,
- listingHardLimit);
- return done();
});
+ const res = await gcpClient.send(command);
+ assert.strictEqual(res.Contents.length, listingHardLimit);
});
});
});
diff --git a/tests/functional/raw-node/test/GCP/bucket/getVersioning.js b/tests/functional/raw-node/test/GCP/bucket/getVersioning.js
index 3a3bc7c9e2..bcce1416a0 100644
--- a/tests/functional/raw-node/test/GCP/bucket/getVersioning.js
+++ b/tests/functional/raw-node/test/GCP/bucket/getVersioning.js
@@ -1,106 +1,64 @@
const assert = require('assert');
-const async = require('async');
const arsenal = require('arsenal');
+const {
+ PutBucketVersioningCommand,
+ GetBucketVersioningCommand,
+ CreateBucketCommand,
+ DeleteBucketCommand,
+} = require('@aws-sdk/client-s3');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, genUniqID } = require('../../../utils/gcpUtils');
+const { genUniqID, gcpRetry } = require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
const credentialOne = 'gcpbackend';
const verEnabledObj = 'Enabled';
const verDisabledObj = 'Suspended';
-const xmlEnable =
- '' +
- '' +
- 'Enabled' +
- '';
-const xmlDisable =
- '' +
- '' +
- 'Suspended' +
- '';
describe('GCP: GET Bucket Versioning', () => {
const config = getRealAwsConfig(credentialOne);
const gcpClient = new GCP(config);
- beforeEach(function beforeFn(done) {
+ beforeEach(async function beforeFn() {
this.currentTest.bucketName = `somebucket-${genUniqID()}`;
- gcpRequestRetry({
- method: 'PUT',
- bucket: this.currentTest.bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err.code}\n`);
- }
- return done(err);
- });
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({
+ Bucket: this.currentTest.bucketName,
+ }),
+ );
});
- afterEach(function afterFn(done) {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: this.currentTest.bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in deleting bucket ${err.code}\n`);
- }
- return done(err);
- });
+ afterEach(async function afterFn() {
+ await gcpRetry(
+ gcpClient,
+ new DeleteBucketCommand({
+ Bucket: this.currentTest.bucketName,
+ }),
+ );
});
- it('should verify bucket versioning is enabled', function testFn(done) {
- return async.waterfall([
- next => makeGcpRequest({
- method: 'PUT',
- bucket: this.test.bucketName,
- authCredentials: config.credentials,
- queryObj: { versioning: '' },
- requestBody: xmlEnable,
- }, err => {
- if (err) {
- process.stdout.write(`err in setting versioning ${err.code}`);
- }
- return next(err);
- }),
- next => {
- gcpClient.getBucketVersioning({
- Bucket: this.test.bucketName,
- }, (err, res) => {
- assert.equal(err, null,
- `Expected success, but got err ${err}`);
- assert.deepStrictEqual(res.Status, verEnabledObj);
- return next();
- });
- },
- ], err => done(err));
+ it('should verify bucket versioning is enabled', async function testFn() {
+ await gcpClient.send(new PutBucketVersioningCommand({
+ Bucket: this.test.bucketName,
+ VersioningConfiguration: { Status: 'Enabled' },
+ }));
+
+ const res = await gcpClient.send(new GetBucketVersioningCommand({
+ Bucket: this.test.bucketName,
+ }));
+ assert.deepStrictEqual(res.Status, verEnabledObj);
});
- it('should verify bucket versioning is disabled', function testFn(done) {
- return async.waterfall([
- next => makeGcpRequest({
- method: 'PUT',
- bucket: this.test.bucketName,
- authCredentials: config.credentials,
- queryObj: { versioning: '' },
- requestBody: xmlDisable,
- }, err => {
- if (err) {
- process.stdout.write(`err in setting versioning ${err}`);
- }
- return next(err);
- }),
- next => gcpClient.getBucketVersioning({
- Bucket: this.test.bucketName,
- }, (err, res) => {
- assert.equal(err, null,
- `Expected success, but got err ${err}`);
- assert.deepStrictEqual(res.Status, verDisabledObj);
- return next();
- }),
- ], err => done(err));
+ it('should verify bucket versioning is disabled', async function testFn() {
+ await gcpClient.send(new PutBucketVersioningCommand({
+ Bucket: this.test.bucketName,
+ VersioningConfiguration: { Status: 'Suspended' },
+ }));
+
+ const res = await gcpClient.send(new GetBucketVersioningCommand({
+ Bucket: this.test.bucketName,
+ }));
+ assert.deepStrictEqual(res.Status, verDisabledObj);
});
});
diff --git a/tests/functional/raw-node/test/GCP/bucket/head.js b/tests/functional/raw-node/test/GCP/bucket/head.js
index f9346c3f96..1a62a1bc8f 100644
--- a/tests/functional/raw-node/test/GCP/bucket/head.js
+++ b/tests/functional/raw-node/test/GCP/bucket/head.js
@@ -1,9 +1,13 @@
const assert = require('assert');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { gcpRequestRetry, genUniqID } = require('../../../utils/gcpUtils');
+const { genUniqID, gcpRetry } = require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
@@ -12,66 +16,58 @@ describe('GCP: HEAD Bucket', () => {
const gcpClient = new GCP(config);
describe('without existing bucket', () => {
- beforeEach(function beforeFn(done) {
+ beforeEach(function beforeFn() {
this.currentTest.bucketName = `somebucket-${genUniqID()}`;
- return done();
});
- it('should return 404', function testFn(done) {
- gcpClient.headBucket({
- Bucket: this.test.bucketName,
- }, err => {
+ it('should return 404', async function testFn() {
+ const badBucketName = this.test.bucketName;
+ try {
+ await new Promise((resolve, reject) => {
+ gcpClient.headBucket({ Bucket: badBucketName },
+ (err, res) => (err ? reject(err) : resolve(res)));
+ });
+ assert.fail('Expected 404 error, but got success');
+ } catch (err) {
assert(err);
assert.strictEqual(err.$metadata?.httpStatusCode, 404);
- return done();
- });
+ }
});
});
describe('with existing bucket', () => {
- beforeEach(function beforeFn(done) {
+ beforeEach(async function beforeFn() {
this.currentTest.bucketName = `somebucket-${genUniqID()}`;
process.stdout
.write(`Creating test bucket ${this.currentTest.bucketName}\n`);
- gcpRequestRetry({
- method: 'PUT',
- bucket: this.currentTest.bucketName,
- authCredentials: config.credentials,
- }, 0, (err, res) => {
- if (err) {
- return done(err);
- }
- this.currentTest.bucketObj = {
- MetaVersionId: res.headers['x-goog-metageneration'],
- };
- return done();
- });
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({
+ Bucket: this.currentTest.bucketName,
+ }),
+ );
});
- afterEach(function afterFn(done) {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: this.currentTest.bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout
- .write(`err deleting bucket: ${err.code}\n`);
- }
- return done(err);
+ afterEach(async function afterFn() {
+ const cmd = new DeleteBucketCommand({
+ Bucket: this.currentTest.bucketName,
});
+ await gcpClient.send(cmd);
});
- it('should get bucket information', function testFn(done) {
- gcpClient.headBucket({
- Bucket: this.test.bucketName,
- }, (err, res) => {
- assert.equal(err, null, `Expected success, but got ${err}`);
- const { $metadata, ...data } = res;
- assert.strictEqual($metadata.httpStatusCode, 200);
- assert.deepStrictEqual(this.test.bucketObj, data);
- return done();
+ it('should get bucket information', async function testFn() {
+ const res = await new Promise((resolve, reject) => {
+ gcpClient.headBucket({
+ Bucket: this.test.bucketName,
+ }, (err, data) => (err ? reject(err) : resolve(data)));
});
+ const { $metadata, ...data } = res;
+ assert.strictEqual($metadata?.httpStatusCode, 200);
+ // Ensure MetaVersionId is present and non-empty
+ assert.ok(
+ typeof data.MetaVersionId === 'string'
+ && data.MetaVersionId.length > 0
+ );
});
});
});
diff --git a/tests/functional/raw-node/test/GCP/bucket/putVersioning.js b/tests/functional/raw-node/test/GCP/bucket/putVersioning.js
index c8151e21c4..43549a0af2 100644
--- a/tests/functional/raw-node/test/GCP/bucket/putVersioning.js
+++ b/tests/functional/raw-node/test/GCP/bucket/putVersioning.js
@@ -1,110 +1,64 @@
const assert = require('assert');
-const async = require('async');
const arsenal = require('arsenal');
-const xml2js = require('xml2js');
+const {
+ PutBucketVersioningCommand,
+ GetBucketVersioningCommand,
+ CreateBucketCommand,
+ DeleteBucketCommand,
+} = require('@aws-sdk/client-s3');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, genUniqID } = require('../../../utils/gcpUtils');
+const { genUniqID, gcpRetry } = require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
const credentialOne = 'gcpbackend';
-const verEnabledObj = { VersioningConfiguration: { Status: ['Enabled'] } };
-const verDisabledObj = { VersioningConfiguration: { Status: ['Suspended'] } };
-
-function resParseAndAssert(xml, compareObj, callback) {
- return xml2js.parseString(xml, (err, res) => {
- if (err) {
- process.stdout.write(`err in parsing response ${err}\n`);
- return callback(err);
- }
- assert.deepStrictEqual(res, compareObj);
- return callback();
- });
-}
+const verEnabledStatus = 'Enabled';
+const verDisabledStatus = 'Suspended';
+const bucketName = `somebucket-${genUniqID()}`;
describe('GCP: PUT Bucket Versioning', () => {
const config = getRealAwsConfig(credentialOne);
const gcpClient = new GCP(config);
- beforeEach(function beforeFn(done) {
- this.currentTest.bucketName = `somebucket-${genUniqID()}`;
- gcpRequestRetry({
- method: 'PUT',
- bucket: this.currentTest.bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}\n`);
- }
- return done(err);
- });
+ before(async () => {
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucketName }),
+ );
});
- afterEach(function afterFn(done) {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: this.currentTest.bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in deleting bucket ${err}\n`);
- }
- return done(err);
- });
+ after(async () => {
+ await gcpRetry(
+ gcpClient,
+ new DeleteBucketCommand({ Bucket: bucketName }),
+ );
});
- it('should enable bucket versioning', function testFn(done) {
- return async.waterfall([
- next => gcpClient.putBucketVersioning({
- Bucket: this.test.bucketName,
- VersioningConfiguration: {
- Status: 'Enabled',
- },
- }, err => {
- assert.equal(err, null,
- `Expected success, but got err ${err}`);
- return next();
- }),
- next => makeGcpRequest({
- method: 'GET',
- bucket: this.test.bucketName,
- authCredentials: config.credentials,
- queryObj: { versioning: '' },
- }, (err, res) => {
- if (err) {
- process.stdout.write(`err in retrieving bucket ${err}`);
- return next(err);
- }
- return resParseAndAssert(res.body, verEnabledObj, next);
- }),
- ], err => done(err));
+ it('should enable bucket versioning', async () => {
+ await gcpClient.send(new PutBucketVersioningCommand({
+ Bucket: bucketName,
+ VersioningConfiguration: {
+ Status: 'Enabled',
+ },
+ }));
+
+ const res = await gcpClient.send(new GetBucketVersioningCommand({
+ Bucket: bucketName,
+ }));
+ assert.strictEqual(res.Status, verEnabledStatus);
});
- it('should disable bucket versioning', function testFn(done) {
- return async.waterfall([
- next => gcpClient.putBucketVersioning({
- Bucket: this.test.bucketName,
- VersioningConfiguration: {
- Status: 'Suspended',
- },
- }, err => {
- assert.equal(err, null,
- `Expected success, but got err ${err}`);
- return next();
- }),
- next => makeGcpRequest({
- method: 'GET',
- bucket: this.test.bucketName,
- authCredentials: config.credentials,
- queryObj: { versioning: '' },
- }, (err, res) => {
- if (err) {
- process.stdout.write(`err in retrieving bucket ${err}`);
- return next(err);
- }
- return resParseAndAssert(res.body, verDisabledObj, next);
- }),
- ], err => done(err));
+ it('should disable bucket versioning', async () => {
+ await gcpClient.send(new PutBucketVersioningCommand({
+ Bucket: bucketName,
+ VersioningConfiguration: {
+ Status: 'Suspended',
+ },
+ }));
+
+ const res = await gcpClient.send(new GetBucketVersioningCommand({
+ Bucket: bucketName,
+ }));
+ assert.strictEqual(res.Status, verDisabledStatus);
});
});
diff --git a/tests/functional/raw-node/test/GCP/object/completeMpu.js b/tests/functional/raw-node/test/GCP/object/completeMpu.js
index 900093f353..524b49eab9 100644
--- a/tests/functional/raw-node/test/GCP/object/completeMpu.js
+++ b/tests/functional/raw-node/test/GCP/object/completeMpu.js
@@ -1,16 +1,20 @@
const assert = require('assert');
const async = require('async');
const arsenal = require('arsenal');
+const { ListObjectsCommand } = require('@aws-sdk/client-s3');
const { GCP, GcpUtils } = arsenal.storage.data.external.GCP;
const {
- gcpRequestRetry,
- gcpClientRetry,
- setBucketClass,
gcpMpuSetup,
genUniqID,
+ gcpRetry,
} = require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ HeadBucketCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketNames = {
@@ -49,29 +53,28 @@ function listObjectsPaginated(gcpClient, bucketName, cb) {
params.Marker = marker;
}
- return gcpClientRetry(gcpClient.listObjects.bind(gcpClient), params, (err, res) => {
- if (err) {
- return cb(err);
- }
-
- const contents = (res && res.Contents) || [];
- objects.push(...contents);
+ const command = new ListObjectsCommand(params);
+ return gcpClient.send(command)
+ .then(res => {
+ const contents = (res && res.Contents) || [];
+ objects.push(...contents);
- const isTruncated = Boolean(res && res.IsTruncated);
- if (!isTruncated) {
- return cb(null, objects);
- }
+ const isTruncated = Boolean(res && res.IsTruncated);
+ if (!isTruncated) {
+ return cb(null, objects);
+ }
- // AWS listObjects(V1) pagination: prefer NextMarker, fallback to last key.
- marker = (res && res.NextMarker) ||
- (contents.length ? contents[contents.length - 1].Key : undefined);
+ // AWS listObjects(V1) pagination: prefer NextMarker, fallback to last key.
+ marker = (res && res.NextMarker) ||
+ (contents.length ? contents[contents.length - 1].Key : undefined);
- if (!marker) {
- return cb(null, objects);
- }
+ if (!marker) {
+ return cb(null, objects);
+ }
- return _list();
- });
+ return _list();
+ })
+ .catch(err => cb(err));
}
return _list();
@@ -87,52 +90,73 @@ function emptyBucket(gcpClient, bucketName, cb) {
Bucket: bucketName,
Key: object.Key,
};
- return gcpClientRetry(gcpClient.deleteObject.bind(gcpClient), deleteParams, next);
+ return gcpClient.deleteObject(deleteParams, next);
}, cb);
});
}
+function waitForBucketReady(gcpClient, bucketName) {
+ const cmd = new HeadBucketCommand({ Bucket: bucketName });
+ return gcpRetry(gcpClient, cmd, {
+ maxAttempts: 6,
+ shouldRetry: err => err && (
+ err.name === 'NoSuchBucket'
+ || err.name === 'NotFound'
+ || err.$metadata?.httpStatusCode === 404
+ || err.name === 'SlowDown'
+ || err.$metadata?.httpStatusCode === 429
+ ),
+ getDelayMs: attempt => (attempt + 1) * 1000,
+ });
+}
+
describe('GCP: Complete MPU', function testSuite() {
this.timeout(600000);
let config;
let gcpClient;
- before(done => {
+ before(async () => {
config = getRealAwsConfig(credentialOne);
gcpClient = new GCP(config);
- async.eachSeries(bucketNames,
- (bucket, next) => gcpRequestRetry({
- method: 'PUT',
- bucket: bucket.Name,
- authCredentials: config.credentials,
- requestBody: setBucketClass(bucket.Type),
- }, 0, err => {
- if (err) {
+ const buckets = Object.values(bucketNames);
+ await async.eachSeries(
+ buckets,
+ async bucket => {
+ const cmd = new CreateBucketCommand({ Bucket: bucket.Name });
+ try {
+ await gcpRetry(gcpClient, cmd);
+ await waitForBucketReady(gcpClient, bucket.Name);
+ } catch (err) {
process.stdout.write(`err in creating bucket ${err}\n`);
+ throw err;
}
- return next(err);
- }),
- done);
+ },
+ );
});
- after(done => {
- async.eachSeries(bucketNames,
- (bucket, next) => emptyBucket(gcpClient, bucket.Name, err => {
- assert.equal(err, null,
- `Expected success, but got error ${err}`);
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucket.Name,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(
- `err in deleting bucket ${err}\n`);
- }
- return next(err);
+ after(async () => {
+ const buckets = Object.values(bucketNames);
+ await async.eachSeries(
+ buckets,
+ async bucket => {
+ await new Promise((resolve, reject) => {
+ emptyBucket(gcpClient, bucket.Name, err => {
+ if (err) {
+ reject(err);
+ return;
+ }
+ resolve();
+ });
});
- }),
- done);
+ const cmd = new DeleteBucketCommand({ Bucket: bucket.Name });
+ try {
+ await gcpRetry(gcpClient, cmd);
+ } catch (err) {
+ process.stdout.write(`err in deleting bucket ${err}\n`);
+ throw err;
+ }
+ },
+ );
});
describe('when MPU has 0 parts', () => {
diff --git a/tests/functional/raw-node/test/GCP/object/copy.js b/tests/functional/raw-node/test/GCP/object/copy.js
index 7df2260736..2527e9fac8 100644
--- a/tests/functional/raw-node/test/GCP/object/copy.js
+++ b/tests/functional/raw-node/test/GCP/object/copy.js
@@ -2,10 +2,14 @@ const assert = require('assert');
const async = require('async');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, genUniqID } = require('../../../utils/gcpUtils');
+const { genUniqID, gcpRetry } = require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ PutObjectCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketName = `somebucket-${genUniqID()}`;
@@ -15,30 +19,18 @@ describe('GCP: COPY Object', function testSuite() {
const config = getRealAwsConfig(credentialOne);
const gcpClient = new GCP(config);
- before(done => {
- gcpRequestRetry({
- method: 'PUT',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}\n`);
- }
- return done(err);
- });
+ before(async () => {
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucketName }),
+ );
});
- after(done => {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}\n`);
- }
- return done(err);
- });
+ after(async () => {
+ await gcpRetry(
+ gcpClient,
+ new DeleteBucketCommand({ Bucket: bucketName }),
+ );
});
describe('without existing object in bucket', () => {
@@ -63,41 +55,38 @@ describe('GCP: COPY Object', function testSuite() {
this.currentTest.key = `somekey-${genUniqID()}`;
this.currentTest.copyKey = `copykey-${genUniqID()}`;
this.currentTest.initValue = `${genUniqID()}`;
- makeGcpRequest({
- method: 'PUT',
- bucket: bucketName,
- objectKey: this.currentTest.copyKey,
- headers: {
- 'x-goog-meta-value': this.currentTest.initValue,
+ const cmd = new PutObjectCommand({
+ Bucket: bucketName,
+ Key: this.currentTest.copyKey,
+ Metadata: {
+ value: this.currentTest.initValue,
},
- authCredentials: config.credentials,
- }, (err, res) => {
- if (err) {
- process.stdout.write(`err in creating object ${err}\n`);
- }
- this.currentTest.contentHash = res.headers['x-goog-hash'];
- return done(err);
});
+ gcpClient.send(cmd)
+ .then(res => {
+ this.currentTest.ETag = res.ETag;
+ return done();
+ })
+ .catch(err => {
+ process.stdout.write(`err in creating object ${err}\n`);
+ return done(err);
+ });
});
afterEach(function afterFn(done) {
async.parallel([
- next => makeGcpRequest({
- method: 'DELETE',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
+ next => gcpClient.deleteObject({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
}, err => {
if (err) {
process.stdout.write(`err in deleting object ${err}\n`);
}
return next(err);
}),
- next => makeGcpRequest({
- method: 'DELETE',
- bucket: bucketName,
- objectKey: this.currentTest.copyKey,
- authCredentials: config.credentials,
+ next => gcpClient.deleteObject({
+ Bucket: bucketName,
+ Key: this.currentTest.copyKey,
}, err => {
if (err) {
process.stdout
@@ -125,20 +114,17 @@ describe('GCP: COPY Object', function testSuite() {
`Expected success, but got error ${err}`);
return next();
}),
- next => makeGcpRequest({
- method: 'HEAD',
- bucket: bucketName,
- objectKey: this.test.key,
- authCredentials: config.credentials,
+ next => gcpClient.headObject({
+ Bucket: bucketName,
+ Key: this.test.key,
}, (err, res) => {
if (err) {
process.stdout
.write(`err in retrieving object ${err}\n`);
return next(err);
}
- assert.strictEqual(this.test.contentHash,
- res.headers['x-goog-hash']);
- assert.notStrictEqual(res.headers['x-goog-meta-value'],
+ assert.strictEqual(res.ETag, this.test.ETag);
+ assert.notStrictEqual(res.Metadata.value,
this.test.initValue);
return next();
}),
@@ -158,20 +144,17 @@ describe('GCP: COPY Object', function testSuite() {
`Expected success, but got error ${err}`);
return next();
}),
- next => makeGcpRequest({
- method: 'HEAD',
- bucket: bucketName,
- objectKey: this.test.key,
- authCredentials: config.credentials,
+ next => gcpClient.headObject({
+ Bucket: bucketName,
+ Key: this.test.key,
}, (err, res) => {
if (err) {
process.stdout
.write(`err in retrieving object ${err}\n`);
return next(err);
}
- assert.strictEqual(this.test.contentHash,
- res.headers['x-goog-hash']);
- assert.strictEqual(res.headers['x-goog-meta-value'],
+ assert.strictEqual(res.ETag, this.test.ETag);
+ assert.strictEqual(res.Metadata.value,
this.test.initValue);
return next();
}),
diff --git a/tests/functional/raw-node/test/GCP/object/delete.js b/tests/functional/raw-node/test/GCP/object/delete.js
index 669969003c..62a4ada5ae 100644
--- a/tests/functional/raw-node/test/GCP/object/delete.js
+++ b/tests/functional/raw-node/test/GCP/object/delete.js
@@ -2,10 +2,15 @@ const assert = require('assert');
const async = require('async');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, genUniqID } = require('../../../utils/gcpUtils');
+const { genUniqID, gcpRetry } = require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ PutObjectCommand,
+ GetObjectCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketName = `somebucket-${genUniqID()}`;
@@ -17,45 +22,27 @@ describe('GCP: DELETE Object', function testSuite() {
const config = getRealAwsConfig(credentialOne);
const gcpClient = new GCP(config);
- before(done => {
- gcpRequestRetry({
- method: 'PUT',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}\n`);
- }
- return done(err);
- });
+ before(async () => {
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucketName }),
+ );
});
- after(done => {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in deleting bucket ${err}\n`);
- }
- return done(err);
- });
+ after(async () => {
+ await gcpRetry(
+ gcpClient,
+ new DeleteBucketCommand({ Bucket: bucketName }),
+ );
});
describe('with existing object in bucket', () => {
- beforeEach(done => {
- makeGcpRequest({
- method: 'PUT',
- bucket: bucketName,
- objectKey,
- authCredentials: config.credentials,
- }, err => {
- if (err) {
- process.stdout.write(`err in creating object ${err}\n`);
- }
- return done(err);
+ beforeEach(async () => {
+ const cmd = new PutObjectCommand({
+ Bucket: bucketName,
+ Key: objectKey,
});
+ await gcpClient.send(cmd);
});
it('should successfully delete object', done => {
@@ -68,17 +55,25 @@ describe('GCP: DELETE Object', function testSuite() {
`Expected success, got error ${err}`);
return next();
}),
- next => makeGcpRequest({
- method: 'GET',
- bucket: bucketName,
- objectKey,
- authCredentials: config.credentials,
- }, err => {
- assert(err);
- assert.strictEqual(err.statusCode, 404);
- assert.strictEqual(err.code, 'NoSuchKey');
- return next();
- }),
+ next => {
+ const cmd = new GetObjectCommand({
+ Bucket: bucketName,
+ Key: objectKey,
+ });
+ gcpClient.send(cmd)
+ .then(() => {
+ // Should not succeed
+ assert.fail('Expected NoSuchKey error');
+ })
+ .catch(err => {
+ assert(err);
+ assert.strictEqual(
+ err.$metadata && err.$metadata.httpStatusCode,
+ 404);
+ assert.strictEqual(err.name, 'NoSuchKey');
+ return next();
+ });
+ },
], err => done(err));
});
});
diff --git a/tests/functional/raw-node/test/GCP/object/deleteMpu.js b/tests/functional/raw-node/test/GCP/object/deleteMpu.js
index 0d923a9a45..d3c6be9f7b 100644
--- a/tests/functional/raw-node/test/GCP/object/deleteMpu.js
+++ b/tests/functional/raw-node/test/GCP/object/deleteMpu.js
@@ -2,20 +2,24 @@ const assert = require('assert');
const async = require('async');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { gcpRequestRetry, setBucketClass, gcpMpuSetup, genUniqID } =
+const { gcpMpuSetup, genUniqID, gcpRetry } =
require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ ListObjectsCommand,
+ HeadBucketCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketNames = {
main: {
Name: `somebucket-${genUniqID()}`,
- Type: 'MULTI_REGIONAL',
},
mpu: {
Name: `mpubucket-${genUniqID()}`,
- Type: 'MULTI_REGIONAL',
},
};
const numParts = 10;
@@ -37,55 +41,59 @@ describe('GCP: Abort MPU', function testSuite() {
let config;
let gcpClient;
- before(done => {
+ function waitForBucketReady(bucketName) {
+ const cmd = new HeadBucketCommand({ Bucket: bucketName });
+ return gcpRetry(gcpClient, cmd, {
+ maxAttempts: 6,
+ shouldRetry: err => err && (
+ err.name === 'NoSuchBucket'
+ || err.name === 'NotFound'
+ || err.$metadata?.httpStatusCode === 404
+ || err.name === 'SlowDown'
+ || err.$metadata?.httpStatusCode === 429
+ ),
+ getDelayMs: attempt => (attempt + 1) * 1000,
+ });
+ }
+
+ before(async () => {
config = getRealAwsConfig(credentialOne);
gcpClient = new GCP(config);
- async.eachSeries(bucketNames,
- (bucket, next) => gcpRequestRetry({
- method: 'PUT',
- bucket: bucket.Name,
- authCredentials: config.credentials,
- requestBody: setBucketClass(bucket.Type),
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}\n`);
- }
- return next(err);
- }),
- done);
+
+ const buckets = Object.values(bucketNames);
+ await async.eachSeries(
+ buckets,
+ async bucket => {
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucket.Name }),
+ );
+ await waitForBucketReady(bucket.Name);
+ },
+ );
});
- after(done => {
- async.eachSeries(bucketNames,
- (bucket, next) => gcpClient.listObjects({
- Bucket: bucket.Name,
- }, (err, res) => {
- assert.equal(err, null,
- `Expected success, but got error ${err}`);
- async.map(res.Contents, (object, moveOn) => {
- const deleteParams = {
+ after(async () => {
+ const buckets = Object.values(bucketNames);
+ await async.eachSeries(
+ buckets,
+ async bucket => {
+ const listCmd = new ListObjectsCommand({
+ Bucket: bucket.Name,
+ });
+ const listRes = await gcpClient.send(listCmd);
+ await async.map(listRes.Contents || [], async object => {
+ await gcpClient.deleteObject({
Bucket: bucket.Name,
Key: object.Key,
- };
- gcpClient.deleteObject(
- deleteParams, err => moveOn(err));
- }, err => {
- assert.equal(err, null,
- `Expected success, but got error ${err}`);
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucket.Name,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(
- `err in deleting bucket ${err}\n`);
- }
- return next(err);
});
});
- }),
- done);
+ await gcpRetry(
+ gcpClient,
+ new DeleteBucketCommand({ Bucket: bucket.Name }),
+ );
+ },
+ );
});
describe('when MPU has 0 parts', () => {
diff --git a/tests/functional/raw-node/test/GCP/object/deleteTagging.js b/tests/functional/raw-node/test/GCP/object/deleteTagging.js
index de3053314c..b8a3812278 100644
--- a/tests/functional/raw-node/test/GCP/object/deleteTagging.js
+++ b/tests/functional/raw-node/test/GCP/object/deleteTagging.js
@@ -2,48 +2,40 @@ const assert = require('assert');
const async = require('async');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, genDelTagObj, genUniqID } =
+const { genDelTagObj, genUniqID, gcpRetry } =
require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
const { gcpTaggingPrefix } = require('../../../../../../constants');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ PutObjectCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketName = `somebucket-${genUniqID()}`;
-const gcpTagPrefix = `x-goog-meta-${gcpTaggingPrefix}`;
let config;
let gcpClient;
function assertObjectMetaTag(params, callback) {
- return makeGcpRequest({
- method: 'HEAD',
- bucket: params.bucket,
- objectKey: params.key,
- authCredentials: config.credentials,
- headers: {
- 'x-goog-generation': params.versionId,
- },
+ return gcpClient.headObject({
+ Bucket: params.bucket,
+ Key: params.key,
+ VersionId: params.versionId,
}, (err, res) => {
if (err) {
process.stdout.write(`err in retrieving object ${err}`);
return callback(err);
}
- const resObj = res.headers;
+ const resMeta = Object.assign({}, res.Metadata || {});
const tagRes = {};
- Object.keys(resObj).forEach(
- header => {
- if (header.startsWith(gcpTagPrefix)) {
- tagRes[header] = resObj[header];
- delete resObj[header];
- }
- });
const metaRes = {};
- Object.keys(resObj).forEach(
- header => {
- if (header.startsWith('x-goog-meta-')) {
- metaRes[header] = resObj[header];
- delete resObj[header];
+ Object.keys(resMeta).forEach(key => {
+ if (key.startsWith(gcpTaggingPrefix)) {
+ tagRes[key] = resMeta[key];
+ } else {
+ metaRes[key] = resMeta[key];
}
});
assert.deepStrictEqual(params.tag, tagRes);
@@ -55,50 +47,56 @@ function assertObjectMetaTag(params, callback) {
describe('GCP: DELETE Object Tagging', function testSuite() {
this.timeout(30000);
- before(done => {
+ before(async () => {
config = getRealAwsConfig(credentialOne);
gcpClient = new GCP(config);
- gcpRequestRetry({
- method: 'PUT',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}`);
- }
- return done(err);
- });
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucketName }),
+ );
});
- beforeEach(function beforeFn(done) {
+ beforeEach(async function beforeFn() {
this.currentTest.key = `somekey-${genUniqID()}`;
this.currentTest.specialKey = `veryspecial-${genUniqID()}`;
- const { headers, expectedTagObj, expectedMetaObj } =
- genDelTagObj(10, gcpTagPrefix);
- this.currentTest.expectedTagObj = expectedTagObj;
- this.currentTest.expectedMetaObj = expectedMetaObj;
- makeGcpRequest({
- method: 'PUT',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
- headers,
- }, (err, res) => {
- if (err) {
- process.stdout.write(`err in creating object ${err}`);
- return done(err);
- }
- this.currentTest.versionId = res.headers['x-goog-generation'];
- return done();
+ const { expectedTagObj, expectedMetaObj } =
+ genDelTagObj(10, `x-goog-meta-${gcpTaggingPrefix}`);
+
+ const expectedTagMeta = {};
+ Object.keys(expectedTagObj).forEach(header => {
+ const key = header.replace('x-goog-meta-', '');
+ expectedTagMeta[key] = expectedTagObj[header];
+ });
+
+ const expectedMetaMeta = {};
+ Object.keys(expectedMetaObj).forEach(header => {
+ const key = header.replace('x-goog-meta-', '');
+ expectedMetaMeta[key] = expectedMetaObj[header];
+ });
+
+ this.currentTest.expectedTagObj = expectedTagMeta;
+ this.currentTest.expectedMetaObj = expectedMetaMeta;
+
+ const metadata = Object.assign(
+ {},
+ expectedTagMeta,
+ expectedMetaMeta
+ );
+
+ const cmd = new PutObjectCommand({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
+ Metadata: metadata,
});
+
+ const res = await gcpClient.send(cmd);
+ this.currentTest.versionId = res.VersionId;
});
afterEach(function afterFn(done) {
- makeGcpRequest({
- method: 'DELETE',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
+ gcpClient.deleteObject({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
}, err => {
if (err) {
process.stdout.write(`err in deleting object ${err}`);
@@ -107,17 +105,11 @@ describe('GCP: DELETE Object Tagging', function testSuite() {
});
});
- after(done => {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in deleting bucket ${err}`);
- }
- return done(err);
- });
+ after(async () => {
+ await gcpRetry(
+ gcpClient,
+ new DeleteBucketCommand({ Bucket: bucketName }),
+ );
});
it('should successfully delete object tags', function testFn(done) {
diff --git a/tests/functional/raw-node/test/GCP/object/get.js b/tests/functional/raw-node/test/GCP/object/get.js
index d8c44da9d0..34c9fac18e 100644
--- a/tests/functional/raw-node/test/GCP/object/get.js
+++ b/tests/functional/raw-node/test/GCP/object/get.js
@@ -1,10 +1,16 @@
const assert = require('assert');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, genUniqID } = require('../../../utils/gcpUtils');
+const { genUniqID, gcpRetry } = require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ PutObjectCommand,
+ DeleteObjectCommand,
+ GetObjectCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketName = `somebucket-${genUniqID()}`;
@@ -14,77 +20,46 @@ describe('GCP: GET Object', function testSuite() {
const config = getRealAwsConfig(credentialOne);
const gcpClient = new GCP(config);
- before(done => {
- gcpRequestRetry({
- method: 'PUT',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}\n`);
- }
- return done(err);
- });
+ before(async () => {
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucketName }),
+ );
});
- after(done => {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in deleting bucket ${err}\n`);
- }
- return done(err);
- });
+ after(async () => {
+ const cmd = new DeleteBucketCommand({ Bucket: bucketName });
+ await gcpClient.send(cmd);
});
describe('with existing object in bucket', () => {
- beforeEach(function beforeFn(done) {
+ beforeEach(async function beforeFn() {
this.currentTest.key = `somekey-${genUniqID()}`;
- makeGcpRequest({
- method: 'PUT',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
- }, (err, res) => {
- if (err) {
- process.stdout.write(`err in creating object ${err}\n`);
- return done(err);
- }
- this.currentTest.uploadId =
- res.headers['x-goog-generation'];
- this.currentTest.ETag = res.headers.etag;
- return done();
+ const cmd = new PutObjectCommand({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
});
+ const res = await gcpClient.send(cmd);
+ this.currentTest.uploadId = res.VersionId;
+ this.currentTest.ETag = res.ETag;
});
- afterEach(function afterFn(done) {
- makeGcpRequest({
- method: 'DELETE',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
- }, err => {
- if (err) {
- process.stdout.write(`err in deleting object ${err}\n`);
- }
- return done(err);
+ afterEach(async function afterFn() {
+ const cmd = new DeleteObjectCommand({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
});
+ await gcpClient.send(cmd);
});
- it('should successfully retrieve object', function testFn(done) {
- gcpClient.getObject({
+ it('should successfully retrieve object', async function testFn() {
+ const cmd = new GetObjectCommand({
Bucket: bucketName,
Key: this.test.key,
- }, (err, res) => {
- assert.equal(err, null,
- `Expected success, got error ${err}`);
- assert.strictEqual(res.ETag, this.test.ETag);
- assert.strictEqual(res.VersionId, this.test.uploadId);
- return done();
});
+ const res = await gcpClient.send(cmd);
+ assert.strictEqual(res.ETag, this.test.ETag);
+ assert.strictEqual(res.VersionId, this.test.uploadId);
});
});
diff --git a/tests/functional/raw-node/test/GCP/object/getTagging.js b/tests/functional/raw-node/test/GCP/object/getTagging.js
index f389f37b1d..14446f5528 100644
--- a/tests/functional/raw-node/test/GCP/object/getTagging.js
+++ b/tests/functional/raw-node/test/GCP/object/getTagging.js
@@ -1,65 +1,75 @@
const assert = require('assert');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, genGetTagObj, genUniqID } =
+const { genGetTagObj, genUniqID, gcpRetry } =
require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
const { gcpTaggingPrefix } = require('../../../../../../constants');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ PutObjectCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketName = `somebucket-${genUniqID()}`;
-const gcpTagPrefix = `x-goog-meta-${gcpTaggingPrefix}`;
const tagSize = 10;
describe('GCP: GET Object Tagging', () => {
let config;
let gcpClient;
+ let bucketCreated = false;
- before(done => {
+ before(async () => {
config = getRealAwsConfig(credentialOne);
gcpClient = new GCP(config);
- gcpRequestRetry({
- method: 'PUT',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}`);
- }
- return done(err);
- });
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucketName }),
+ );
+ bucketCreated = true;
});
- beforeEach(function beforeFn(done) {
+ beforeEach(async function beforeFn() {
this.currentTest.key = `somekey-${genUniqID()}`;
this.currentTest.specialKey = `veryspecial-${genUniqID()}`;
- const { tagHeader, expectedTagObj } =
- genGetTagObj(tagSize, gcpTagPrefix);
+ const { expectedTagObj } =
+ genGetTagObj(tagSize, `x-goog-meta-${gcpTaggingPrefix}`);
this.currentTest.tagObj = expectedTagObj;
- makeGcpRequest({
- method: 'PUT',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
- headers: tagHeader,
- }, (err, res) => {
- if (err) {
- process.stdout.write(`err in creating object ${err}`);
- return done(err);
- }
- this.currentTest.versionId = res.headers['x-goog-generation'];
- return done();
+
+ const putCmd = new PutObjectCommand({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
+ });
+
+ const res = await gcpClient.send(putCmd);
+ this.currentTest.versionId = res.VersionId;
+
+ await new Promise((resolve, reject) => {
+ gcpClient.putObjectTagging({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
+ VersionId: this.currentTest.versionId,
+ Tagging: {
+ TagSet: this.currentTest.tagObj,
+ },
+ }, err => {
+ if (err) {
+ process.stdout
+ .write(`err in setting object tags ${err}`);
+ reject(err);
+ return;
+ }
+ resolve();
+ });
});
});
afterEach(function afterFn(done) {
- makeGcpRequest({
- method: 'DELETE',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
+ gcpClient.deleteObject({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
}, err => {
if (err) {
process.stdout.write(`err in deleting object ${err}`);
@@ -68,17 +78,14 @@ describe('GCP: GET Object Tagging', () => {
});
});
- after(done => {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in deleting bucket ${err}`);
- }
- return done(err);
- });
+ after(async () => {
+ if (!bucketCreated) {
+ return;
+ }
+ await gcpRetry(
+ gcpClient,
+ new DeleteBucketCommand({ Bucket: bucketName }),
+ );
});
it('should successfully get object tags', function testFn(done) {
diff --git a/tests/functional/raw-node/test/GCP/object/head.js b/tests/functional/raw-node/test/GCP/object/head.js
index 177c836dec..d0fa1748c4 100644
--- a/tests/functional/raw-node/test/GCP/object/head.js
+++ b/tests/functional/raw-node/test/GCP/object/head.js
@@ -1,10 +1,15 @@
const assert = require('assert');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, genUniqID } = require('../../../utils/gcpUtils');
+const { genUniqID, gcpRetry } = require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ PutObjectCommand,
+ HeadObjectCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketName = `somebucket-${genUniqID()}`;
@@ -14,90 +19,72 @@ describe('GCP: HEAD Object', function testSuite() {
const config = getRealAwsConfig(credentialOne);
const gcpClient = new GCP(config);
- before(done => {
- gcpRequestRetry({
- method: 'PUT',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}\n`);
- }
- return done(err);
- });
+ before(async () => {
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucketName }),
+ );
});
- after(done => {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in deleting bucket ${err}\n`);
- }
- return done(err);
- });
+ after(async () => {
+ const cmd = new DeleteBucketCommand({ Bucket: bucketName });
+ await gcpClient.send(cmd);
});
describe('with existing object in bucket', () => {
- beforeEach(function beforeFn(done) {
+ beforeEach(async function beforeFn() {
this.currentTest.key = `somekey-${genUniqID()}`;
- makeGcpRequest({
- method: 'PUT',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
- }, (err, res) => {
- if (err) {
- process.stdout.write(`err in creating object ${err}\n`);
- return done(err);
- }
- this.currentTest.uploadId =
- res.headers['x-goog-generation'];
- this.currentTest.ETag = res.headers.etag;
- return done();
+ const cmd = new PutObjectCommand({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
});
+ const res = await gcpClient.send(cmd);
+ this.currentTest.uploadId = res.VersionId;
+ this.currentTest.ETag = res.ETag;
});
- afterEach(function afterFn(done) {
- makeGcpRequest({
- method: 'DELETE',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
- }, err => {
- if (err) {
- process.stdout.write(`err in deleting object ${err}\n`);
- }
- return done(err);
+ afterEach(async function afterFn() {
+ if (!this.currentTest.key) {
+ return;
+ }
+ await new Promise((resolve, reject) => {
+ gcpClient.deleteObject({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
+ }, err => {
+ if (err) {
+ process.stdout.write(`err in deleting object ${err}\n`);
+ reject(err);
+ return;
+ }
+ resolve();
+ });
});
});
- it('should successfully retrieve object', function testFn(done) {
- gcpClient.headObject({
+ it('should successfully retrieve object', async function testFn() {
+ const cmd = new HeadObjectCommand({
Bucket: bucketName,
Key: this.test.key,
- }, (err, res) => {
- assert.equal(err, null,
- `Expected success, got error ${err}`);
- assert.strictEqual(res.ETag, this.test.ETag);
- assert.strictEqual(res.VersionId, this.test.uploadId);
- return done();
});
+ const res = await gcpClient.send(cmd);
+ assert.strictEqual(res.ETag, this.test.ETag);
+ assert.ok(res.$metadata && res.$metadata.httpStatusCode === 200);
});
});
describe('without existing object in bucket', () => {
- it('should return 404', done => {
+ it('should return 404', async () => {
const badObjectkey = `nonexistingkey-${genUniqID()}`;
- gcpClient.headObject({
- Bucket: bucketName,
- Key: badObjectkey,
- }, err => {
- assert(err);
- assert.strictEqual(err.$metadata.httpStatusCode, 404);
- return done();
+ await new Promise(resolve => {
+ gcpClient.headObject({
+ Bucket: bucketName,
+ Key: badObjectkey,
+ }, err => {
+ assert(err);
+ assert.strictEqual(err.$metadata.httpStatusCode, 404);
+ resolve();
+ });
});
});
});
diff --git a/tests/functional/raw-node/test/GCP/object/initiateMpu.js b/tests/functional/raw-node/test/GCP/object/initiateMpu.js
index 1ed76ab578..f84ca80f59 100644
--- a/tests/functional/raw-node/test/GCP/object/initiateMpu.js
+++ b/tests/functional/raw-node/test/GCP/object/initiateMpu.js
@@ -2,21 +2,23 @@ const assert = require('assert');
const async = require('async');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, setBucketClass, genUniqID } =
+const { genUniqID, gcpRetry } =
require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ HeadBucketCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketNames = {
main: {
Name: `somebucket-${genUniqID()}`,
- Type: 'MULTI_REGIONAL',
},
mpu: {
Name: `mpubucket-${genUniqID()}`,
- Type: 'MULTI_REGIONAL',
},
};
@@ -24,83 +26,122 @@ describe('GCP: Initiate MPU', function testSuite() {
this.timeout(180000);
let config;
let gcpClient;
+ const maxCreateAttempts = 6;
+ const retryDelayMs = attempt => (attempt + 1) * 1000;
+ const isRetryableCreateError = err => err && (
+ err.name === 'NoSuchBucket'
+ || err.name === 'NotFound'
+ || err.$metadata?.httpStatusCode === 404
+ || err.name === 'SlowDown'
+ || err.$metadata?.httpStatusCode === 429
+ );
- before(done => {
+ function waitForBucketReady(bucketName) {
+ const cmd = new HeadBucketCommand({ Bucket: bucketName });
+ return gcpRetry(gcpClient, cmd, {
+ maxAttempts: 6,
+ shouldRetry: err => err && (
+ err.name === 'NoSuchBucket'
+ || err.name === 'NotFound'
+ || err.$metadata?.httpStatusCode === 404
+ || err.name === 'SlowDown'
+ || err.$metadata?.httpStatusCode === 429
+ ),
+ getDelayMs: attempt => (attempt + 1) * 1000,
+ });
+ }
+
+ function createMultipartUploadWithRetry(bucket, key, metadata) {
+ return new Promise((resolve, reject) => {
+ const attemptCreate = attempt => {
+ gcpClient.createMultipartUpload({
+ Bucket: bucket,
+ Key: key,
+ Metadata: metadata,
+ }, (err, res) => {
+ if (!err) {
+ resolve(res);
+ return;
+ }
+ if (isRetryableCreateError(err) && attempt < maxCreateAttempts - 1) {
+ const delay = retryDelayMs(attempt);
+ setTimeout(() => attemptCreate(attempt + 1), delay);
+ return;
+ }
+ reject(err);
+ });
+ };
+ attemptCreate(0);
+ });
+ }
+
+ before(async () => {
config = getRealAwsConfig(credentialOne);
gcpClient = new GCP(config);
- async.eachSeries(bucketNames,
- (bucket, next) => gcpRequestRetry({
- method: 'PUT',
- bucket: bucket.Name,
- authCredentials: config.credentials,
- requestBody: setBucketClass(bucket.Type),
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}\n`);
- }
- return next(err);
- }),
- done);
+ const buckets = Object.values(bucketNames);
+ await async.eachSeries(
+ buckets,
+ async bucket => {
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucket.Name }),
+ );
+ await waitForBucketReady(bucket.Name);
+ },
+ );
});
- after(done => {
- async.eachSeries(bucketNames,
- (bucket, next) => gcpRequestRetry({
- method: 'DELETE',
- bucket: bucket.Name,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in deleting bucket ${err}\n`);
- }
- return next(err);
- }),
- done);
+ after(async () => {
+ const buckets = Object.values(bucketNames);
+ await async.eachSeries(
+ buckets,
+ async bucket => {
+ await gcpRetry(
+ gcpClient,
+ new DeleteBucketCommand({ Bucket: bucket.Name }),
+ );
+ },
+ );
});
- it('Should create a multipart upload object', done => {
+ it('Should create a multipart upload object', async () => {
const keyName = `somekey-${genUniqID()}`;
const specialKey = `special-${genUniqID()}`;
- async.waterfall([
- next => gcpClient.createMultipartUpload({
+
+ const createRes = await createMultipartUploadWithRetry(
+ bucketNames.mpu.Name,
+ keyName,
+ { special: specialKey },
+ );
+
+ const mpuInitKey = `${keyName}-${createRes.UploadId}/init`;
+ const headRes = await new Promise((resolve, reject) => {
+ gcpClient.headObject({
Bucket: bucketNames.mpu.Name,
- Key: keyName,
- Metadata: {
- special: specialKey,
- },
+ Key: mpuInitKey,
}, (err, res) => {
- assert.equal(err, null,
- `Expected success, but got err ${err}`);
- return next(null, res.UploadId);
- }),
- (uploadId, next) => {
- const mpuInitKey = `${keyName}-${uploadId}/init`;
- makeGcpRequest({
- method: 'GET',
- bucket: bucketNames.mpu.Name,
- objectKey: mpuInitKey,
- authCredentials: config.credentials,
- }, (err, res) => {
- if (err) {
- process.stdout
- .write(`err in retrieving object ${err}`);
- return next(err);
- }
- assert.strictEqual(res.headers['x-goog-meta-special'],
- specialKey);
- return next(null, uploadId);
- });
- },
- (uploadId, next) => gcpClient.abortMultipartUpload({
+ if (err) {
+ process.stdout
+ .write(`err in retrieving object ${err}`);
+ return reject(err);
+ }
+ return resolve(res);
+ });
+ });
+ assert.strictEqual(headRes.Metadata.special, specialKey);
+
+ await new Promise((resolve, reject) => {
+ gcpClient.abortMultipartUpload({
Bucket: bucketNames.main.Name,
MPU: bucketNames.mpu.Name,
- UploadId: uploadId,
+ UploadId: createRes.UploadId,
Key: keyName,
}, err => {
- assert.equal(err, null,
- `Expected success, but got err ${err}`);
- return next();
- }),
- ], done);
+ if (err) {
+ return reject(err);
+ }
+ return resolve();
+ });
+ });
});
});
diff --git a/tests/functional/raw-node/test/GCP/object/put.js b/tests/functional/raw-node/test/GCP/object/put.js
index 9c3933a0e7..c39baa7704 100644
--- a/tests/functional/raw-node/test/GCP/object/put.js
+++ b/tests/functional/raw-node/test/GCP/object/put.js
@@ -1,10 +1,14 @@
const assert = require('assert');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, genUniqID } = require('../../../utils/gcpUtils');
+const { genUniqID, gcpRetry } = require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ PutObjectCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketName = `somebucket-${genUniqID()}`;
@@ -14,38 +18,26 @@ describe('GCP: PUT Object', function testSuite() {
const config = getRealAwsConfig(credentialOne);
const gcpClient = new GCP(config);
- before(done => {
- gcpRequestRetry({
- method: 'PUT',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}\n`);
- }
- return done(err);
- });
+ before(async () => {
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucketName }),
+ );
});
- after(done => {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in deleting bucket ${err}\n`);
- }
- return done(err);
- });
+ after(async () => {
+ const cmd = new DeleteBucketCommand({ Bucket: bucketName });
+ await gcpClient.send(cmd);
});
afterEach(function afterFn(done) {
- makeGcpRequest({
- method: 'DELETE',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
+ if (!this.currentTest.key) {
+ done();
+ return;
+ }
+ gcpClient.deleteObject({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
}, err => {
if (err) {
process.stdout.write(`err in deleting object ${err}\n`);
@@ -55,22 +47,14 @@ describe('GCP: PUT Object', function testSuite() {
});
describe('with existing object in bucket', () => {
- beforeEach(function beforeFn(done) {
+ beforeEach(async function beforeFn() {
this.currentTest.key = `somekey-${genUniqID()}`;
- gcpRequestRetry({
- method: 'PUT',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
- }, 0, (err, res) => {
- if (err) {
- process.stdout.write(`err in putting object ${err}\n`);
- return done(err);
- }
- this.currentTest.uploadId =
- res.headers['x-goog-generation'];
- return done();
+ const cmd = new PutObjectCommand({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
});
+ const res = await gcpClient.send(cmd);
+ this.currentTest.uploadId = res.VersionId;
});
it('should overwrite object', function testFn(done) {
@@ -93,18 +77,13 @@ describe('GCP: PUT Object', function testSuite() {
}, (err, putRes) => {
assert.equal(err, null,
`Expected success, got error ${err}`);
- makeGcpRequest({
- method: 'GET',
- bucket: bucketName,
- objectKey: this.test.key,
- authCredentials: config.credentials,
- }, (err, getRes) => {
- if (err) {
- process.stdout.write(`err in getting bucket ${err}\n`);
- return done(err);
- }
- assert.strictEqual(getRes.headers['x-goog-generation'],
- putRes.VersionId);
+ gcpClient.getObject({
+ Bucket: bucketName,
+ Key: this.test.key,
+ }, (getErr, getRes) => {
+ assert.equal(getErr, null,
+ `Expected success, got error ${getErr}`);
+ assert.strictEqual(getRes.VersionId, putRes.VersionId);
return done();
});
});
diff --git a/tests/functional/raw-node/test/GCP/object/putTagging.js b/tests/functional/raw-node/test/GCP/object/putTagging.js
index 72ef1c1151..c17ce0cbde 100644
--- a/tests/functional/raw-node/test/GCP/object/putTagging.js
+++ b/tests/functional/raw-node/test/GCP/object/putTagging.js
@@ -2,60 +2,48 @@ const assert = require('assert');
const async = require('async');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { makeGcpRequest } = require('../../../utils/makeRequest');
-const { gcpRequestRetry, genPutTagObj, genUniqID } =
+const { genPutTagObj, genUniqID, gcpRetry } =
require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
const { gcpTaggingPrefix } = require('../../../../../../constants');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ PutObjectCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketName = `somebucket-${genUniqID()}`;
-const gcpTagPrefix = `x-goog-meta-${gcpTaggingPrefix}`;
describe('GCP: PUT Object Tagging', () => {
let config;
let gcpClient;
- before(done => {
+ before(async () => {
config = getRealAwsConfig(credentialOne);
gcpClient = new GCP(config);
- gcpRequestRetry({
- method: 'PUT',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}`);
- }
- return done(err);
- });
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucketName }),
+ );
});
- beforeEach(function beforeFn(done) {
+ beforeEach(async function beforeFn() {
this.currentTest.key = `somekey-${genUniqID()}`;
this.currentTest.specialKey = `veryspecial-${genUniqID()}`;
- makeGcpRequest({
- method: 'PUT',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
- }, (err, res) => {
- if (err) {
- process.stdout.write(`err in creating object ${err}`);
- return done(err);
- }
- this.currentTest.versionId = res.headers['x-goog-generation'];
- return done();
+ const cmd = new PutObjectCommand({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
});
+ const res = await gcpClient.send(cmd);
+ this.currentTest.versionId = res.VersionId;
});
afterEach(function afterFn(done) {
- makeGcpRequest({
- method: 'DELETE',
- bucket: bucketName,
- objectKey: this.currentTest.key,
- authCredentials: config.credentials,
+ gcpClient.deleteObject({
+ Bucket: bucketName,
+ Key: this.currentTest.key,
}, err => {
if (err) {
process.stdout.write(`err in deleting object ${err}`);
@@ -64,17 +52,11 @@ describe('GCP: PUT Object Tagging', () => {
});
});
- after(done => {
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucketName,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in deleting bucket ${err}`);
- }
- return done(err);
- });
+ after(async () => {
+ await gcpRetry(
+ gcpClient,
+ new DeleteBucketCommand({ Bucket: bucketName }),
+ );
});
it('should successfully put object tags', function testFn(done) {
@@ -96,21 +78,17 @@ describe('GCP: PUT Object Tagging', () => {
`Expected success, got error ${err}`);
return next();
}),
- next => makeGcpRequest({
- method: 'HEAD',
- bucket: bucketName,
- objectKey: this.test.key,
- authCredentials: config.credentials,
- headers: {
- 'x-goog-generation': this.test.versionId,
- },
+ next => gcpClient.headObject({
+ Bucket: bucketName,
+ Key: this.test.key,
+ VersionId: this.test.versionId,
}, (err, res) => {
if (err) {
process.stdout.write(`err in retrieving object ${err}`);
return next(err);
}
- const toCompare =
- res.headers[`${gcpTagPrefix}${this.test.specialKey}`];
+ const metaKey = `${gcpTaggingPrefix}${this.test.specialKey}`;
+ const toCompare = res.Metadata[metaKey];
assert.strictEqual(toCompare, this.test.specialKey);
return next();
}),
diff --git a/tests/functional/raw-node/test/GCP/object/upload.js b/tests/functional/raw-node/test/GCP/object/upload.js
index 88005b8862..ba577a86fa 100644
--- a/tests/functional/raw-node/test/GCP/object/upload.js
+++ b/tests/functional/raw-node/test/GCP/object/upload.js
@@ -2,20 +2,24 @@ const assert = require('assert');
const async = require('async');
const arsenal = require('arsenal');
const { GCP } = arsenal.storage.data.external.GCP;
-const { gcpRequestRetry, setBucketClass, genUniqID } =
+const { genUniqID, gcpRetry, gcpUploadWithRetry } =
require('../../../utils/gcpUtils');
const { getRealAwsConfig } =
require('../../../../aws-node-sdk/test/support/awsConfig');
+const {
+ CreateBucketCommand,
+ DeleteBucketCommand,
+ ListObjectsCommand,
+ HeadBucketCommand,
+} = require('@aws-sdk/client-s3');
const credentialOne = 'gcpbackend';
const bucketNames = {
main: {
Name: `somebucket-${genUniqID()}`,
- Type: 'MULTI_REGIONAL',
},
mpu: {
Name: `mpubucket-${genUniqID()}`,
- Type: 'MULTI_REGIONAL',
},
};
@@ -29,84 +33,79 @@ describe('GCP: Upload Object', function testSuite() {
let config;
let gcpClient;
- before(done => {
+ function waitForBucketReady(bucketName) {
+ const cmd = new HeadBucketCommand({ Bucket: bucketName });
+ return gcpRetry(gcpClient, cmd, {
+ maxAttempts: 6,
+ shouldRetry: err => err && (
+ err.name === 'NoSuchBucket'
+ || err.name === 'NotFound'
+ || err.$metadata?.httpStatusCode === 404
+ || err.name === 'SlowDown'
+ || err.$metadata?.httpStatusCode === 429
+ ),
+ getDelayMs: attempt => (attempt + 1) * 1000,
+ });
+ }
+
+ before(async () => {
config = getRealAwsConfig(credentialOne);
gcpClient = new GCP(config);
- async.eachSeries(bucketNames,
- (bucket, next) => gcpRequestRetry({
- method: 'PUT',
- bucket: bucket.Name,
- authCredentials: config.credentials,
- requestBody: setBucketClass(bucket.Type),
- }, 0, err => {
- if (err) {
- process.stdout.write(`err in creating bucket ${err}\n`);
- }
- return next(err);
- }),
- err => done(err));
+ const buckets = Object.values(bucketNames);
+ await async.eachSeries(
+ buckets,
+ async bucket => {
+ await gcpRetry(
+ gcpClient,
+ new CreateBucketCommand({ Bucket: bucket.Name }),
+ );
+ await waitForBucketReady(bucket.Name);
+ },
+ );
});
- after(done => {
- async.eachSeries(bucketNames,
- (bucket, next) => gcpClient.listObjects({
- Bucket: bucket.Name,
- }, (err, res) => {
- assert.equal(err, null,
- `Expected success, but got error ${err}`);
- async.map(res.Contents, (object, moveOn) => {
- const deleteParams = {
+ after(async () => {
+ const buckets = Object.values(bucketNames);
+ await async.eachSeries(
+ buckets,
+ async bucket => {
+ const listCmd = new ListObjectsCommand({
+ Bucket: bucket.Name,
+ });
+ const listRes = await gcpClient.send(listCmd);
+ await async.map(listRes.Contents || [], async object => {
+ await gcpClient.deleteObject({
Bucket: bucket.Name,
Key: object.Key,
- };
- gcpClient.deleteObject(
- deleteParams, err => moveOn(err));
- }, err => {
- assert.equal(err, null,
- `Expected success, but got error ${err}`);
- gcpRequestRetry({
- method: 'DELETE',
- bucket: bucket.Name,
- authCredentials: config.credentials,
- }, 0, err => {
- if (err) {
- process.stdout.write(
- `err in deleting bucket ${err}\n`);
- }
- return next(err);
});
});
- }),
- err => done(err));
+ await gcpRetry(
+ gcpClient,
+ new DeleteBucketCommand({ Bucket: bucket.Name }),
+ );
+ },
+ );
});
- it('should put an object to GCP', done => {
+ it('should put an object to GCP', async () => {
const key = `somekey-${genUniqID()}`;
- gcpClient.upload({
+ const res = await gcpUploadWithRetry(gcpClient, {
Bucket: bucketNames.main.Name,
MPU: bucketNames.mpu.Name,
Key: key,
Body: body,
- }, (err, res) => {
- assert.equal(err, null,
- `Expected success, got error ${err}`);
- assert.strictEqual(res.ETag, `"${smallMD5}"`);
- return done();
});
+ assert.strictEqual(res.ETag, `"${smallMD5}"`);
});
- it('should put a large object to GCP', done => {
+ it('should put a large object to GCP', async () => {
const key = `somekey-${genUniqID()}`;
- gcpClient.upload({
+ const res = await gcpUploadWithRetry(gcpClient, {
Bucket: bucketNames.main.Name,
MPU: bucketNames.mpu.Name,
Key: key,
Body: bigBody,
- }, (err, res) => {
- assert.equal(err, null,
- `Expected success, got error ${err}`);
- assert.strictEqual(res.ETag, `"${bigMD5}"`);
- return done();
});
+ assert.strictEqual(res.ETag, `"${bigMD5}"`);
});
});
diff --git a/tests/functional/raw-node/utils/gcpUtils.js b/tests/functional/raw-node/utils/gcpUtils.js
index 6a8db5deb3..33a3ff0415 100644
--- a/tests/functional/raw-node/utils/gcpUtils.js
+++ b/tests/functional/raw-node/utils/gcpUtils.js
@@ -1,49 +1,125 @@
const async = require('async');
-const assert = require('assert');
+const { callbackify } = require('util');
const { v4: uuidv4 } = require('uuid');
-const { makeGcpRequest } = require('./makeRequest');
-
const genUniqID = () => uuidv4().replace(/-/g, '');
-function gcpRequestRetry(params, retry, callback) {
- const maxRetries = 4;
- const timeout = Math.pow(2, retry) * 1000;
- return setTimeout(makeGcpRequest, timeout, params, (err, res) => {
- if (err) {
- if (retry <= maxRetries && err.statusCode === 429) {
- return gcpRequestRetry(params, retry + 1, callback);
+const defaultShouldRetry = err =>
+ err && (err.name === 'SlowDown' || err.$metadata?.httpStatusCode === 429);
+
+async function gcpRetry(gcpClient, command, retryOptions, cb) {
+ if (cb) {
+ return callbackify(() => gcpRetry(gcpClient, command,
+ retryOptions))(cb);
+ }
+
+ const {
+ maxAttempts = 3,
+ shouldRetry = defaultShouldRetry,
+ getDelayMs = attempt => Math.pow(2, attempt) * 1000,
+ } = retryOptions || {};
+
+ let lastError;
+
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
+ try {
+
+ return await gcpClient.send(command);
+ } catch (err) {
+ lastError = err;
+ if (!shouldRetry(err, attempt) || attempt === maxAttempts - 1) {
+ throw err;
}
- return callback(err);
+ const delay = getDelayMs(attempt);
+ process.stdout.write(
+ 'Retryable error from GCP, retrying in ' +
+ `${delay}ms (attempt ${attempt + 1}): ${err}\n`);
+
+ await new Promise(resolve => setTimeout(resolve, delay));
}
- return callback(null, res);
- });
+ }
+
+ throw lastError;
}
-function gcpClientRetry(fn, params, callback, retry = 0) {
- const maxRetries = 4;
- const timeout = Math.pow(2, retry) * 1000;
- return setTimeout(fn, timeout, params, (err, res) => {
- if (err) {
- if (retry <= maxRetries && err.statusCode === 429) {
- return gcpClientRetry(fn, params, callback, retry + 1);
+const defaultShouldRetryUpload = err => err && (
+ err.name === 'NoSuchBucket'
+ || err.name === 'NotFound'
+ || err.$metadata?.httpStatusCode === 404
+ || err.name === 'SlowDown'
+ || err.$metadata?.httpStatusCode === 429
+ || (typeof err.message === 'string'
+ && (err.message.includes('NoSuchBucket')
+ || err.message.includes('unable to complete upload')))
+);
+
+async function gcpUploadWithRetry(gcpClient, params, retryOptions) {
+ const {
+ maxAttempts = 6,
+ shouldRetry = defaultShouldRetryUpload,
+ getDelayMs = attempt => (attempt + 1) * 1000,
+ } = retryOptions || {};
+
+ let lastError;
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
+ try {
+
+ return await new Promise((resolve, reject) => {
+ gcpClient.upload(params, (err, data) => {
+ if (err) {
+ return reject(err);
+ }
+ return resolve(data);
+ });
+ });
+ } catch (err) {
+ lastError = err;
+ if (!shouldRetry(err) || attempt === maxAttempts - 1) {
+ throw err;
}
- return callback(err);
+ const delay = getDelayMs(attempt);
+
+ await new Promise(resolve => setTimeout(resolve, delay));
}
- return callback(null, res);
- });
+ }
+ throw lastError;
}
// mpu test helpers
function gcpMpuSetup(params, callback) {
const { gcpClient, bucketNames, key, partCount, partSize } = params;
- return async.waterfall([
- next => gcpClient.createMultipartUpload({
+ const maxCreateAttempts = 6;
+ const retryDelayMs = attempt => (attempt + 1) * 1000;
+ const isRetryableCreateError = err => err && (
+ err.name === 'NoSuchBucket'
+ || err.name === 'NotFound'
+ || err.$metadata?.httpStatusCode === 404
+ || err.name === 'SlowDown'
+ || err.$metadata?.httpStatusCode === 429
+ );
+
+ function createMultipartUploadWithRetry(attempt, cb) {
+ gcpClient.createMultipartUpload({
Bucket: bucketNames.mpu.Name,
Key: key,
}, (err, res) => {
- assert.equal(err, null,
- `Expected success, but got error ${err}`);
+ if (!err) {
+ return cb(null, res);
+ }
+ if (isRetryableCreateError(err) && attempt < maxCreateAttempts - 1) {
+ const delay = retryDelayMs(attempt);
+ setTimeout(() => createMultipartUploadWithRetry(attempt + 1, cb), delay);
+ return null;
+ }
+ return cb(err);
+ });
+ }
+
+ return async.waterfall([
+ next => createMultipartUploadWithRetry(0, (err, res) => {
+ if (err) {
+ return next(err);
+ }
return next(null, res.UploadId);
}),
(uploadId, next) => {
@@ -142,12 +218,12 @@ function setBucketClass(storageClass) {
}
module.exports = {
- gcpRequestRetry,
- gcpClientRetry,
setBucketClass,
gcpMpuSetup,
genPutTagObj,
genGetTagObj,
genDelTagObj,
genUniqID,
+ gcpRetry,
+ gcpUploadWithRetry,
};
diff --git a/tests/functional/raw-node/utils/makeRequest.js b/tests/functional/raw-node/utils/makeRequest.js
index 3405a172e5..6759160c2e 100644
--- a/tests/functional/raw-node/utils/makeRequest.js
+++ b/tests/functional/raw-node/utils/makeRequest.js
@@ -185,55 +185,6 @@ function makeS3Request(params, callback) {
makeRequest(options, callback);
}
-/** makeGcpRequest - utility function to generate a request against GCP
- * @param {object} params - params for making request
- * @param {string} params.method - request method
- * @param {object} [params.queryObj] - query fields and their string values
- * @param {object} [params.headers] - headers and their string values
- * @param {string} [params.bucket] - bucket name
- * @param {string} [params.objectKey] - object key name
- * @param {object} [params.authCredentials] - authentication credentials
- * @param {object} params.authCredentials.accessKey - access key
- * @param {object} params.authCredentials.secretKey - secret key
- * @param {string} [params.region] - request body contents
- * @param {function} callback - with error and response parameters
- * @return {undefined} - and call callback
- */
-async function makeGcpRequest(params, callback) {
- const { method, queryObj, headers, bucket, objectKey, authCredentials,
- requestBody, region } = params;
-
- let resolvedCredentials = authCredentials;
- if (authCredentials && typeof authCredentials === 'function') {
- try {
- resolvedCredentials = await authCredentials();
- resolvedCredentials = {
- accessKey: resolvedCredentials.accessKeyId,
- secretKey: resolvedCredentials.secretAccessKey,
- };
- } catch (err) {
- return callback(err);
- }
- }
-
- const options = {
- authCredentials: resolvedCredentials,
- requestBody,
- hostname: 'storage.googleapis.com',
- port: 80,
- method,
- queryObj,
- headers: headers || {},
- path: bucket ? `/${bucket}/` : '/',
- GCP: true,
- region,
- };
- if (objectKey) {
- options.path = `${options.path}${objectKey}`;
- }
- return makeRequest(options, callback);
-}
-
/** makeBackbeatRequest - utility function to generate a request going
* through backbeat route
* @param {object} params - params for making request
@@ -270,6 +221,5 @@ function makeBackbeatRequest(params, callback) {
module.exports = {
makeRequest,
makeS3Request,
- makeGcpRequest,
makeBackbeatRequest,
};
diff --git a/yarn.lock b/yarn.lock
index a96d49881a..16fb29ac6d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -151,48 +151,93 @@
"@smithy/util-utf8" "^4.1.0"
tslib "^2.6.2"
-"@aws-sdk/client-cognito-identity@3.919.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.919.0.tgz#3564dcea70d2ae116d0143c497565bd3de1f26c5"
- integrity sha512-lUmPZZ0orVbIDjSKEPkNdip9qxRAoqVAmWu+DD+3BuGpkI1pmFXL0JEcf95C51b1YfZeIY97t5g+KgZeDg65hg==
+"@aws-sdk/client-cognito-identity@3.975.0":
+ version "3.975.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.975.0.tgz#f6494616cb1f298f8ed195db8d55c6aa62cad0e9"
+ integrity sha512-HjPnxHB74FaeLSce+/B2n3H7FJ23lC5D4M2FnHhHdiuvGa8etFrsF12mxC8i635huARHJkqLLbLF2U39xX6AJA==
dependencies:
"@aws-crypto/sha256-browser" "5.2.0"
"@aws-crypto/sha256-js" "5.2.0"
- "@aws-sdk/core" "3.916.0"
- "@aws-sdk/credential-provider-node" "3.919.0"
- "@aws-sdk/middleware-host-header" "3.914.0"
- "@aws-sdk/middleware-logger" "3.914.0"
- "@aws-sdk/middleware-recursion-detection" "3.919.0"
- "@aws-sdk/middleware-user-agent" "3.916.0"
- "@aws-sdk/region-config-resolver" "3.914.0"
- "@aws-sdk/types" "3.914.0"
- "@aws-sdk/util-endpoints" "3.916.0"
- "@aws-sdk/util-user-agent-browser" "3.914.0"
- "@aws-sdk/util-user-agent-node" "3.916.0"
- "@smithy/config-resolver" "^4.4.0"
- "@smithy/core" "^3.17.1"
- "@smithy/fetch-http-handler" "^5.3.4"
- "@smithy/hash-node" "^4.2.3"
- "@smithy/invalid-dependency" "^4.2.3"
- "@smithy/middleware-content-length" "^4.2.3"
- "@smithy/middleware-endpoint" "^4.3.5"
- "@smithy/middleware-retry" "^4.4.5"
- "@smithy/middleware-serde" "^4.2.3"
- "@smithy/middleware-stack" "^4.2.3"
- "@smithy/node-config-provider" "^4.3.3"
- "@smithy/node-http-handler" "^4.4.3"
- "@smithy/protocol-http" "^5.3.3"
- "@smithy/smithy-client" "^4.9.1"
- "@smithy/types" "^4.8.0"
- "@smithy/url-parser" "^4.2.3"
+ "@aws-sdk/core" "^3.973.1"
+ "@aws-sdk/credential-provider-node" "^3.972.1"
+ "@aws-sdk/middleware-host-header" "^3.972.1"
+ "@aws-sdk/middleware-logger" "^3.972.1"
+ "@aws-sdk/middleware-recursion-detection" "^3.972.1"
+ "@aws-sdk/middleware-user-agent" "^3.972.2"
+ "@aws-sdk/region-config-resolver" "^3.972.1"
+ "@aws-sdk/types" "^3.973.0"
+ "@aws-sdk/util-endpoints" "3.972.0"
+ "@aws-sdk/util-user-agent-browser" "^3.972.1"
+ "@aws-sdk/util-user-agent-node" "^3.972.1"
+ "@smithy/config-resolver" "^4.4.6"
+ "@smithy/core" "^3.21.1"
+ "@smithy/fetch-http-handler" "^5.3.9"
+ "@smithy/hash-node" "^4.2.8"
+ "@smithy/invalid-dependency" "^4.2.8"
+ "@smithy/middleware-content-length" "^4.2.8"
+ "@smithy/middleware-endpoint" "^4.4.11"
+ "@smithy/middleware-retry" "^4.4.27"
+ "@smithy/middleware-serde" "^4.2.9"
+ "@smithy/middleware-stack" "^4.2.8"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/node-http-handler" "^4.4.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/smithy-client" "^4.10.12"
+ "@smithy/types" "^4.12.0"
+ "@smithy/url-parser" "^4.2.8"
"@smithy/util-base64" "^4.3.0"
"@smithy/util-body-length-browser" "^4.2.0"
"@smithy/util-body-length-node" "^4.2.1"
- "@smithy/util-defaults-mode-browser" "^4.3.4"
- "@smithy/util-defaults-mode-node" "^4.2.6"
- "@smithy/util-endpoints" "^3.2.3"
- "@smithy/util-middleware" "^4.2.3"
- "@smithy/util-retry" "^4.2.3"
+ "@smithy/util-defaults-mode-browser" "^4.3.26"
+ "@smithy/util-defaults-mode-node" "^4.2.29"
+ "@smithy/util-endpoints" "^3.2.8"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-retry" "^4.2.8"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/client-cognito-identity@3.978.0":
+ version "3.978.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.978.0.tgz#0a00a8fa66311f6fbcc8b12516e6c53572e3372a"
+ integrity sha512-vMmeOu1/Rbd29CSQp2bE3my+smbq7PciZshVaPMTfEDFlAr8myYiqcqk1l8fyRpzswjw6TWmVZmld27pfp8enw==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/core" "^3.973.4"
+ "@aws-sdk/credential-provider-node" "^3.972.2"
+ "@aws-sdk/middleware-host-header" "^3.972.2"
+ "@aws-sdk/middleware-logger" "^3.972.2"
+ "@aws-sdk/middleware-recursion-detection" "^3.972.2"
+ "@aws-sdk/middleware-user-agent" "^3.972.4"
+ "@aws-sdk/region-config-resolver" "^3.972.2"
+ "@aws-sdk/types" "^3.973.1"
+ "@aws-sdk/util-endpoints" "3.972.0"
+ "@aws-sdk/util-user-agent-browser" "^3.972.2"
+ "@aws-sdk/util-user-agent-node" "^3.972.2"
+ "@smithy/config-resolver" "^4.4.6"
+ "@smithy/core" "^3.22.0"
+ "@smithy/fetch-http-handler" "^5.3.9"
+ "@smithy/hash-node" "^4.2.8"
+ "@smithy/invalid-dependency" "^4.2.8"
+ "@smithy/middleware-content-length" "^4.2.8"
+ "@smithy/middleware-endpoint" "^4.4.12"
+ "@smithy/middleware-retry" "^4.4.29"
+ "@smithy/middleware-serde" "^4.2.9"
+ "@smithy/middleware-stack" "^4.2.8"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/node-http-handler" "^4.4.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/smithy-client" "^4.11.1"
+ "@smithy/types" "^4.12.0"
+ "@smithy/url-parser" "^4.2.8"
+ "@smithy/util-base64" "^4.3.0"
+ "@smithy/util-body-length-browser" "^4.2.0"
+ "@smithy/util-body-length-node" "^4.2.1"
+ "@smithy/util-defaults-mode-browser" "^4.3.28"
+ "@smithy/util-defaults-mode-node" "^4.2.31"
+ "@smithy/util-endpoints" "^3.2.8"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-retry" "^4.2.8"
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
@@ -242,68 +287,68 @@
"@smithy/util-waiter" "^4.2.5"
tslib "^2.6.2"
-"@aws-sdk/client-kms@^3.901.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/client-kms/-/client-kms-3.919.0.tgz#d814fde40359451cce422e1edbce045518651e4f"
- integrity sha512-v+RpwfczmI23274Nnx8hM2jbUZE+Sk1T/y3EV3jPdRCAhRtJd7ne9ZzCzPW5HkBQZFWkzP6zGPrsnMTzUE/q/Q==
+"@aws-sdk/client-kms@^3.975.0":
+ version "3.978.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-kms/-/client-kms-3.978.0.tgz#36f6df642e583e52b4bcf2f9ab49a1a95d81bc87"
+ integrity sha512-KTCHctiTS4RJ/MeJrI/hbm5F0AhsBayjnzzfYlGAasNIGW3ucwCc2qTZ2QzKHaR3zPyysSQiTDzNUg/RmdfExA==
dependencies:
"@aws-crypto/sha256-browser" "5.2.0"
"@aws-crypto/sha256-js" "5.2.0"
- "@aws-sdk/core" "3.916.0"
- "@aws-sdk/credential-provider-node" "3.919.0"
- "@aws-sdk/middleware-host-header" "3.914.0"
- "@aws-sdk/middleware-logger" "3.914.0"
- "@aws-sdk/middleware-recursion-detection" "3.919.0"
- "@aws-sdk/middleware-user-agent" "3.916.0"
- "@aws-sdk/region-config-resolver" "3.914.0"
- "@aws-sdk/types" "3.914.0"
- "@aws-sdk/util-endpoints" "3.916.0"
- "@aws-sdk/util-user-agent-browser" "3.914.0"
- "@aws-sdk/util-user-agent-node" "3.916.0"
- "@smithy/config-resolver" "^4.4.0"
- "@smithy/core" "^3.17.1"
- "@smithy/fetch-http-handler" "^5.3.4"
- "@smithy/hash-node" "^4.2.3"
- "@smithy/invalid-dependency" "^4.2.3"
- "@smithy/middleware-content-length" "^4.2.3"
- "@smithy/middleware-endpoint" "^4.3.5"
- "@smithy/middleware-retry" "^4.4.5"
- "@smithy/middleware-serde" "^4.2.3"
- "@smithy/middleware-stack" "^4.2.3"
- "@smithy/node-config-provider" "^4.3.3"
- "@smithy/node-http-handler" "^4.4.3"
- "@smithy/protocol-http" "^5.3.3"
- "@smithy/smithy-client" "^4.9.1"
- "@smithy/types" "^4.8.0"
- "@smithy/url-parser" "^4.2.3"
+ "@aws-sdk/core" "^3.973.4"
+ "@aws-sdk/credential-provider-node" "^3.972.2"
+ "@aws-sdk/middleware-host-header" "^3.972.2"
+ "@aws-sdk/middleware-logger" "^3.972.2"
+ "@aws-sdk/middleware-recursion-detection" "^3.972.2"
+ "@aws-sdk/middleware-user-agent" "^3.972.4"
+ "@aws-sdk/region-config-resolver" "^3.972.2"
+ "@aws-sdk/types" "^3.973.1"
+ "@aws-sdk/util-endpoints" "3.972.0"
+ "@aws-sdk/util-user-agent-browser" "^3.972.2"
+ "@aws-sdk/util-user-agent-node" "^3.972.2"
+ "@smithy/config-resolver" "^4.4.6"
+ "@smithy/core" "^3.22.0"
+ "@smithy/fetch-http-handler" "^5.3.9"
+ "@smithy/hash-node" "^4.2.8"
+ "@smithy/invalid-dependency" "^4.2.8"
+ "@smithy/middleware-content-length" "^4.2.8"
+ "@smithy/middleware-endpoint" "^4.4.12"
+ "@smithy/middleware-retry" "^4.4.29"
+ "@smithy/middleware-serde" "^4.2.9"
+ "@smithy/middleware-stack" "^4.2.8"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/node-http-handler" "^4.4.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/smithy-client" "^4.11.1"
+ "@smithy/types" "^4.12.0"
+ "@smithy/url-parser" "^4.2.8"
"@smithy/util-base64" "^4.3.0"
"@smithy/util-body-length-browser" "^4.2.0"
"@smithy/util-body-length-node" "^4.2.1"
- "@smithy/util-defaults-mode-browser" "^4.3.4"
- "@smithy/util-defaults-mode-node" "^4.2.6"
- "@smithy/util-endpoints" "^3.2.3"
- "@smithy/util-middleware" "^4.2.3"
- "@smithy/util-retry" "^4.2.3"
+ "@smithy/util-defaults-mode-browser" "^4.3.28"
+ "@smithy/util-defaults-mode-node" "^4.2.31"
+ "@smithy/util-endpoints" "^3.2.8"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-retry" "^4.2.8"
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
-"@aws-sdk/client-s3@^3.901.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.919.0.tgz#bc099c27b8bdebeb2ed61222bbada2dfd8b6f9df"
- integrity sha512-UEPH2B9RnsS7Jo/oXe5DGrqQhWvRj6YBkLr7bsAZoYl4Sj1RbwDimiyGbhbuarnX5wCjpwSW860CFmShh/1z5w==
+"@aws-sdk/client-s3@^3.908.0":
+ version "3.917.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.917.0.tgz#835ead98d5a6ddad5662d0f133d377febf43de1e"
+ integrity sha512-3L73mDCpH7G0koFv3p3WkkEKqC5wn2EznKtNMrJ6hczPIr2Cu6DJz8VHeTZp9wFZLPrIBmh3ZW1KiLujT5Fd2w==
dependencies:
"@aws-crypto/sha1-browser" "5.2.0"
"@aws-crypto/sha256-browser" "5.2.0"
"@aws-crypto/sha256-js" "5.2.0"
"@aws-sdk/core" "3.916.0"
- "@aws-sdk/credential-provider-node" "3.919.0"
+ "@aws-sdk/credential-provider-node" "3.917.0"
"@aws-sdk/middleware-bucket-endpoint" "3.914.0"
"@aws-sdk/middleware-expect-continue" "3.917.0"
- "@aws-sdk/middleware-flexible-checksums" "3.919.0"
+ "@aws-sdk/middleware-flexible-checksums" "3.916.0"
"@aws-sdk/middleware-host-header" "3.914.0"
"@aws-sdk/middleware-location-constraint" "3.914.0"
"@aws-sdk/middleware-logger" "3.914.0"
- "@aws-sdk/middleware-recursion-detection" "3.919.0"
+ "@aws-sdk/middleware-recursion-detection" "3.914.0"
"@aws-sdk/middleware-sdk-s3" "3.916.0"
"@aws-sdk/middleware-ssec" "3.914.0"
"@aws-sdk/middleware-user-agent" "3.916.0"
@@ -350,67 +395,65 @@
"@smithy/uuid" "^1.1.0"
tslib "^2.6.2"
-"@aws-sdk/client-s3@^3.908.0":
- version "3.917.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.917.0.tgz#835ead98d5a6ddad5662d0f133d377febf43de1e"
- integrity sha512-3L73mDCpH7G0koFv3p3WkkEKqC5wn2EznKtNMrJ6hczPIr2Cu6DJz8VHeTZp9wFZLPrIBmh3ZW1KiLujT5Fd2w==
+"@aws-sdk/client-s3@^3.975.0":
+ version "3.978.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.978.0.tgz#2e54076abae7dab2b0001cec4fd6a0eb046176ec"
+ integrity sha512-2chs05VbfgRNb5ZEYIwooeHCaL+DjwvrW3ElkslI71ltEqVNdeWvB7hbkLWPPKazV3kjY3H90pLDY8mMqsET+A==
dependencies:
"@aws-crypto/sha1-browser" "5.2.0"
"@aws-crypto/sha256-browser" "5.2.0"
"@aws-crypto/sha256-js" "5.2.0"
- "@aws-sdk/core" "3.916.0"
- "@aws-sdk/credential-provider-node" "3.917.0"
- "@aws-sdk/middleware-bucket-endpoint" "3.914.0"
- "@aws-sdk/middleware-expect-continue" "3.917.0"
- "@aws-sdk/middleware-flexible-checksums" "3.916.0"
- "@aws-sdk/middleware-host-header" "3.914.0"
- "@aws-sdk/middleware-location-constraint" "3.914.0"
- "@aws-sdk/middleware-logger" "3.914.0"
- "@aws-sdk/middleware-recursion-detection" "3.914.0"
- "@aws-sdk/middleware-sdk-s3" "3.916.0"
- "@aws-sdk/middleware-ssec" "3.914.0"
- "@aws-sdk/middleware-user-agent" "3.916.0"
- "@aws-sdk/region-config-resolver" "3.914.0"
- "@aws-sdk/signature-v4-multi-region" "3.916.0"
- "@aws-sdk/types" "3.914.0"
- "@aws-sdk/util-endpoints" "3.916.0"
- "@aws-sdk/util-user-agent-browser" "3.914.0"
- "@aws-sdk/util-user-agent-node" "3.916.0"
- "@aws-sdk/xml-builder" "3.914.0"
- "@smithy/config-resolver" "^4.4.0"
- "@smithy/core" "^3.17.1"
- "@smithy/eventstream-serde-browser" "^4.2.3"
- "@smithy/eventstream-serde-config-resolver" "^4.3.3"
- "@smithy/eventstream-serde-node" "^4.2.3"
- "@smithy/fetch-http-handler" "^5.3.4"
- "@smithy/hash-blob-browser" "^4.2.4"
- "@smithy/hash-node" "^4.2.3"
- "@smithy/hash-stream-node" "^4.2.3"
- "@smithy/invalid-dependency" "^4.2.3"
- "@smithy/md5-js" "^4.2.3"
- "@smithy/middleware-content-length" "^4.2.3"
- "@smithy/middleware-endpoint" "^4.3.5"
- "@smithy/middleware-retry" "^4.4.5"
- "@smithy/middleware-serde" "^4.2.3"
- "@smithy/middleware-stack" "^4.2.3"
- "@smithy/node-config-provider" "^4.3.3"
- "@smithy/node-http-handler" "^4.4.3"
- "@smithy/protocol-http" "^5.3.3"
- "@smithy/smithy-client" "^4.9.1"
- "@smithy/types" "^4.8.0"
- "@smithy/url-parser" "^4.2.3"
+ "@aws-sdk/core" "^3.973.4"
+ "@aws-sdk/credential-provider-node" "^3.972.2"
+ "@aws-sdk/middleware-bucket-endpoint" "^3.972.2"
+ "@aws-sdk/middleware-expect-continue" "^3.972.2"
+ "@aws-sdk/middleware-flexible-checksums" "^3.972.2"
+ "@aws-sdk/middleware-host-header" "^3.972.2"
+ "@aws-sdk/middleware-location-constraint" "^3.972.2"
+ "@aws-sdk/middleware-logger" "^3.972.2"
+ "@aws-sdk/middleware-recursion-detection" "^3.972.2"
+ "@aws-sdk/middleware-sdk-s3" "^3.972.4"
+ "@aws-sdk/middleware-ssec" "^3.972.2"
+ "@aws-sdk/middleware-user-agent" "^3.972.4"
+ "@aws-sdk/region-config-resolver" "^3.972.2"
+ "@aws-sdk/signature-v4-multi-region" "3.972.0"
+ "@aws-sdk/types" "^3.973.1"
+ "@aws-sdk/util-endpoints" "3.972.0"
+ "@aws-sdk/util-user-agent-browser" "^3.972.2"
+ "@aws-sdk/util-user-agent-node" "^3.972.2"
+ "@smithy/config-resolver" "^4.4.6"
+ "@smithy/core" "^3.22.0"
+ "@smithy/eventstream-serde-browser" "^4.2.8"
+ "@smithy/eventstream-serde-config-resolver" "^4.3.8"
+ "@smithy/eventstream-serde-node" "^4.2.8"
+ "@smithy/fetch-http-handler" "^5.3.9"
+ "@smithy/hash-blob-browser" "^4.2.9"
+ "@smithy/hash-node" "^4.2.8"
+ "@smithy/hash-stream-node" "^4.2.8"
+ "@smithy/invalid-dependency" "^4.2.8"
+ "@smithy/md5-js" "^4.2.8"
+ "@smithy/middleware-content-length" "^4.2.8"
+ "@smithy/middleware-endpoint" "^4.4.12"
+ "@smithy/middleware-retry" "^4.4.29"
+ "@smithy/middleware-serde" "^4.2.9"
+ "@smithy/middleware-stack" "^4.2.8"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/node-http-handler" "^4.4.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/smithy-client" "^4.11.1"
+ "@smithy/types" "^4.12.0"
+ "@smithy/url-parser" "^4.2.8"
"@smithy/util-base64" "^4.3.0"
"@smithy/util-body-length-browser" "^4.2.0"
"@smithy/util-body-length-node" "^4.2.1"
- "@smithy/util-defaults-mode-browser" "^4.3.4"
- "@smithy/util-defaults-mode-node" "^4.2.6"
- "@smithy/util-endpoints" "^3.2.3"
- "@smithy/util-middleware" "^4.2.3"
- "@smithy/util-retry" "^4.2.3"
- "@smithy/util-stream" "^4.5.4"
+ "@smithy/util-defaults-mode-browser" "^4.3.28"
+ "@smithy/util-defaults-mode-node" "^4.2.31"
+ "@smithy/util-endpoints" "^3.2.8"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-retry" "^4.2.8"
+ "@smithy/util-stream" "^4.5.10"
"@smithy/util-utf8" "^4.2.0"
- "@smithy/util-waiter" "^4.2.3"
- "@smithy/uuid" "^1.1.0"
+ "@smithy/util-waiter" "^4.2.8"
tslib "^2.6.2"
"@aws-sdk/client-sso@3.895.0":
@@ -501,50 +544,6 @@
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
-"@aws-sdk/client-sso@3.919.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.919.0.tgz#1506a30ea7deab6be468e2025533870d3147109e"
- integrity sha512-9DVw/1DCzZ9G7Jofnhpg/XDC3wdJ3NAJdNWY1TrgE5ZcpTM+UTIQMGyaljCv9rgxggutHBgmBI5lP3YMcPk9ZQ==
- dependencies:
- "@aws-crypto/sha256-browser" "5.2.0"
- "@aws-crypto/sha256-js" "5.2.0"
- "@aws-sdk/core" "3.916.0"
- "@aws-sdk/middleware-host-header" "3.914.0"
- "@aws-sdk/middleware-logger" "3.914.0"
- "@aws-sdk/middleware-recursion-detection" "3.919.0"
- "@aws-sdk/middleware-user-agent" "3.916.0"
- "@aws-sdk/region-config-resolver" "3.914.0"
- "@aws-sdk/types" "3.914.0"
- "@aws-sdk/util-endpoints" "3.916.0"
- "@aws-sdk/util-user-agent-browser" "3.914.0"
- "@aws-sdk/util-user-agent-node" "3.916.0"
- "@smithy/config-resolver" "^4.4.0"
- "@smithy/core" "^3.17.1"
- "@smithy/fetch-http-handler" "^5.3.4"
- "@smithy/hash-node" "^4.2.3"
- "@smithy/invalid-dependency" "^4.2.3"
- "@smithy/middleware-content-length" "^4.2.3"
- "@smithy/middleware-endpoint" "^4.3.5"
- "@smithy/middleware-retry" "^4.4.5"
- "@smithy/middleware-serde" "^4.2.3"
- "@smithy/middleware-stack" "^4.2.3"
- "@smithy/node-config-provider" "^4.3.3"
- "@smithy/node-http-handler" "^4.4.3"
- "@smithy/protocol-http" "^5.3.3"
- "@smithy/smithy-client" "^4.9.1"
- "@smithy/types" "^4.8.0"
- "@smithy/url-parser" "^4.2.3"
- "@smithy/util-base64" "^4.3.0"
- "@smithy/util-body-length-browser" "^4.2.0"
- "@smithy/util-body-length-node" "^4.2.1"
- "@smithy/util-defaults-mode-browser" "^4.3.4"
- "@smithy/util-defaults-mode-node" "^4.2.6"
- "@smithy/util-endpoints" "^3.2.3"
- "@smithy/util-middleware" "^4.2.3"
- "@smithy/util-retry" "^4.2.3"
- "@smithy/util-utf8" "^4.2.0"
- tslib "^2.6.2"
-
"@aws-sdk/client-sso@3.930.0":
version "3.930.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.930.0.tgz#bc46973b8b622ab5afc4dd2032d64445391154b8"
@@ -589,6 +588,50 @@
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
+"@aws-sdk/client-sso@3.975.0":
+ version "3.975.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.975.0.tgz#f22aca83b566fb5ced2c974020c42be60b350782"
+ integrity sha512-HpgJuleH7P6uILxzJKQOmlHdwaCY+xYC6VgRDzlwVEqU/HXjo4m2gOAyjUbpXlBOCWfGgMUzfBlNJ9z3MboqEQ==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/core" "^3.973.1"
+ "@aws-sdk/middleware-host-header" "^3.972.1"
+ "@aws-sdk/middleware-logger" "^3.972.1"
+ "@aws-sdk/middleware-recursion-detection" "^3.972.1"
+ "@aws-sdk/middleware-user-agent" "^3.972.2"
+ "@aws-sdk/region-config-resolver" "^3.972.1"
+ "@aws-sdk/types" "^3.973.0"
+ "@aws-sdk/util-endpoints" "3.972.0"
+ "@aws-sdk/util-user-agent-browser" "^3.972.1"
+ "@aws-sdk/util-user-agent-node" "^3.972.1"
+ "@smithy/config-resolver" "^4.4.6"
+ "@smithy/core" "^3.21.1"
+ "@smithy/fetch-http-handler" "^5.3.9"
+ "@smithy/hash-node" "^4.2.8"
+ "@smithy/invalid-dependency" "^4.2.8"
+ "@smithy/middleware-content-length" "^4.2.8"
+ "@smithy/middleware-endpoint" "^4.4.11"
+ "@smithy/middleware-retry" "^4.4.27"
+ "@smithy/middleware-serde" "^4.2.9"
+ "@smithy/middleware-stack" "^4.2.8"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/node-http-handler" "^4.4.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/smithy-client" "^4.10.12"
+ "@smithy/types" "^4.12.0"
+ "@smithy/url-parser" "^4.2.8"
+ "@smithy/util-base64" "^4.3.0"
+ "@smithy/util-body-length-browser" "^4.2.0"
+ "@smithy/util-body-length-node" "^4.2.1"
+ "@smithy/util-defaults-mode-browser" "^4.3.26"
+ "@smithy/util-defaults-mode-node" "^4.2.29"
+ "@smithy/util-endpoints" "^3.2.8"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-retry" "^4.2.8"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
"@aws-sdk/client-sts@^3.930.0":
version "3.930.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.930.0.tgz#cf54ea3bfde5dd221ad0d902d8c26067ac58d310"
@@ -692,6 +735,52 @@
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
+"@aws-sdk/core@3.972.0":
+ version "3.972.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.972.0.tgz#20d9c47fc3ad1bed4c1866eb6f6488bcc5d31754"
+ integrity sha512-nEeUW2M9F+xdIaD98F5MBcQ4ITtykj3yKbgFZ6J0JtL3bq+Z90szQ6Yy8H/BLPYXTs3V4n9ifnBo8cprRDiE6A==
+ dependencies:
+ "@aws-sdk/types" "3.972.0"
+ "@aws-sdk/xml-builder" "3.972.0"
+ "@smithy/core" "^3.20.6"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/signature-v4" "^5.3.8"
+ "@smithy/smithy-client" "^4.10.8"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-base64" "^4.3.0"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/core@^3.973.1", "@aws-sdk/core@^3.973.2", "@aws-sdk/core@^3.973.4":
+ version "3.973.4"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.973.4.tgz#a3c16c4cb40a7a816475839dbdd8f938cc8bb2f0"
+ integrity sha512-8Rk+kPP74YiR47x54bxYlKZswsaSh0a4XvvRUMLvyS/koNawhsGu/+qSZxREqUeTO+GkKpFvSQIsAZR+deUP+g==
+ dependencies:
+ "@aws-sdk/types" "^3.973.1"
+ "@aws-sdk/xml-builder" "^3.972.2"
+ "@smithy/core" "^3.22.0"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/signature-v4" "^5.3.8"
+ "@smithy/smithy-client" "^4.11.1"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-base64" "^4.3.0"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/crc64-nvme@3.972.0":
+ version "3.972.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/crc64-nvme/-/crc64-nvme-3.972.0.tgz#c5e6d14428c9fb4e6bb0646b73a0fa68e6007e24"
+ integrity sha512-ThlLhTqX68jvoIVv+pryOdb5coP1cX1/MaTbB9xkGDCbWbsqQcLqzPxuSoW1DCnAAIacmXCWpzUNOB9pv+xXQw==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/credential-provider-cognito-identity@3.895.0":
version "3.895.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.895.0.tgz#2266eea0e82576604e88ce5db281a98eaaabd69f"
@@ -703,15 +792,15 @@
"@smithy/types" "^4.5.0"
tslib "^2.6.2"
-"@aws-sdk/credential-provider-cognito-identity@3.919.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.919.0.tgz#24521fe94fff306fdef61d3c1ea86a72311bdd52"
- integrity sha512-ite9bRCBPsD1vJPUvOU7LaWbq1Y8aL5RrHoxY9T3SMHSVnPX2/uZvF/Tzi/P0gkQYzjDGpvtrJRHONROgcWwpw==
+"@aws-sdk/credential-provider-cognito-identity@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.972.2.tgz#5dbdac14772bbaa28e319c7518d6cd32a42f1f52"
+ integrity sha512-+tX6yfkw3+CpXLl/IoFqGSatbtZMzBcXr9HXPjbaYqCIu80SzfwjgQl8ddFeloTrA1xVPX2+eWOU04nVuACW7w==
dependencies:
- "@aws-sdk/client-cognito-identity" "3.919.0"
- "@aws-sdk/types" "3.914.0"
- "@smithy/property-provider" "^4.2.3"
- "@smithy/types" "^4.8.0"
+ "@aws-sdk/client-cognito-identity" "3.975.0"
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/types" "^4.12.0"
tslib "^2.6.2"
"@aws-sdk/credential-provider-env@3.894.0":
@@ -747,6 +836,17 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/credential-provider-env@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.2.tgz#ae9dab80f2de70b8573eb5cc73693136f54d9eb0"
+ integrity sha512-wzH1EdrZsytG1xN9UHaK12J9+kfrnd2+c8y0LVoS4O4laEjPoie1qVK3k8/rZe7KOtvULzyMnO3FT4Krr9Z0Dg==
+ dependencies:
+ "@aws-sdk/core" "^3.973.2"
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/credential-provider-http@3.894.0":
version "3.894.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.894.0.tgz#7f1126d7e6d5f48f12d2ca67b7de07759631549b"
@@ -795,6 +895,22 @@
"@smithy/util-stream" "^4.5.6"
tslib "^2.6.2"
+"@aws-sdk/credential-provider-http@^3.972.3", "@aws-sdk/credential-provider-http@^3.972.4":
+ version "3.972.4"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.4.tgz#bab20c5fbbe19eed1445d3b76a0cd608d1937767"
+ integrity sha512-OC7F3ipXV12QfDEWybQGHLzoeHBlAdx/nLzPfHP0Wsabu3JBffu5nlzSaJNf7to9HGtOW8Bpu8NX0ugmDrCbtw==
+ dependencies:
+ "@aws-sdk/core" "^3.973.4"
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/fetch-http-handler" "^5.3.9"
+ "@smithy/node-http-handler" "^4.4.8"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/smithy-client" "^4.11.1"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-stream" "^4.5.10"
+ tslib "^2.6.2"
+
"@aws-sdk/credential-provider-ini@3.895.0":
version "3.895.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.895.0.tgz#27f0265c1e2b2aeae10b020de048a065ac9840e1"
@@ -833,25 +949,6 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
-"@aws-sdk/credential-provider-ini@3.919.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.919.0.tgz#39c609ea48ab0039bc1fce5586bdbd8718372071"
- integrity sha512-fAWVfh0P54UFbyAK4tmIPh/X3COFAyXYSp8b2Pc1R6GRwDDMvrAigwGJuyZS4BmpPlXij1gB0nXbhM5Yo4MMMA==
- dependencies:
- "@aws-sdk/core" "3.916.0"
- "@aws-sdk/credential-provider-env" "3.916.0"
- "@aws-sdk/credential-provider-http" "3.916.0"
- "@aws-sdk/credential-provider-process" "3.916.0"
- "@aws-sdk/credential-provider-sso" "3.919.0"
- "@aws-sdk/credential-provider-web-identity" "3.919.0"
- "@aws-sdk/nested-clients" "3.919.0"
- "@aws-sdk/types" "3.914.0"
- "@smithy/credential-provider-imds" "^4.2.3"
- "@smithy/property-provider" "^4.2.3"
- "@smithy/shared-ini-file-loader" "^4.3.3"
- "@smithy/types" "^4.8.0"
- tslib "^2.6.2"
-
"@aws-sdk/credential-provider-ini@3.930.0":
version "3.930.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.930.0.tgz#4a93ec9443e481407e7929553d83b296a584c360"
@@ -871,6 +968,40 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/credential-provider-ini@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.2.tgz#4a26aed6af446880cbba8ede95b38a0678697840"
+ integrity sha512-Jrb8sLm6k8+L7520irBrvCtdLxNtrG7arIxe9TCeMJt/HxqMGJdbIjw8wILzkEHLMIi4MecF2FbXCln7OT1Tag==
+ dependencies:
+ "@aws-sdk/core" "^3.973.2"
+ "@aws-sdk/credential-provider-env" "^3.972.2"
+ "@aws-sdk/credential-provider-http" "^3.972.3"
+ "@aws-sdk/credential-provider-login" "^3.972.2"
+ "@aws-sdk/credential-provider-process" "^3.972.2"
+ "@aws-sdk/credential-provider-sso" "^3.972.2"
+ "@aws-sdk/credential-provider-web-identity" "^3.972.2"
+ "@aws-sdk/nested-clients" "3.975.0"
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/credential-provider-imds" "^4.2.8"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/shared-ini-file-loader" "^4.4.3"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/credential-provider-login@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.2.tgz#2a022a80950041db4520983568290e57d06399fb"
+ integrity sha512-mlaw2aiI3DrimW85ZMn3g7qrtHueidS58IGytZ+mbFpsYLK5wMjCAKZQtt7VatLMtSBG/dn/EY4njbnYXIDKeQ==
+ dependencies:
+ "@aws-sdk/core" "^3.973.2"
+ "@aws-sdk/nested-clients" "3.975.0"
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/shared-ini-file-loader" "^4.4.3"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/credential-provider-node@3.895.0":
version "3.895.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.895.0.tgz#76dca377418447714544eeceb7423a693ce6c14a"
@@ -907,24 +1038,6 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
-"@aws-sdk/credential-provider-node@3.919.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.919.0.tgz#f3f3460090e4cb25c3d70ad9def3535383af7832"
- integrity sha512-GL5filyxYS+eZq8ZMQnY5hh79Wxor7Rljo0SUJxZVwEj8cf3zY0MMuwoXU1HQrVabvYtkPDOWSreX8GkIBtBCw==
- dependencies:
- "@aws-sdk/credential-provider-env" "3.916.0"
- "@aws-sdk/credential-provider-http" "3.916.0"
- "@aws-sdk/credential-provider-ini" "3.919.0"
- "@aws-sdk/credential-provider-process" "3.916.0"
- "@aws-sdk/credential-provider-sso" "3.919.0"
- "@aws-sdk/credential-provider-web-identity" "3.919.0"
- "@aws-sdk/types" "3.914.0"
- "@smithy/credential-provider-imds" "^4.2.3"
- "@smithy/property-provider" "^4.2.3"
- "@smithy/shared-ini-file-loader" "^4.3.3"
- "@smithy/types" "^4.8.0"
- tslib "^2.6.2"
-
"@aws-sdk/credential-provider-node@3.930.0":
version "3.930.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.930.0.tgz#d05e2316bc7796dede919d0b67bbf0005e892480"
@@ -943,6 +1056,24 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/credential-provider-node@^3.972.1", "@aws-sdk/credential-provider-node@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.2.tgz#7f308337fc0674c340878da6c7061caffe03501d"
+ integrity sha512-Lz1J5IZdTjLYTVIcDP5DVDgi1xlgsF3p1cnvmbfKbjCRhQpftN2e2J4NFfRRvPD54W9+bZ8l5VipPXtTYK7aEg==
+ dependencies:
+ "@aws-sdk/credential-provider-env" "^3.972.2"
+ "@aws-sdk/credential-provider-http" "^3.972.3"
+ "@aws-sdk/credential-provider-ini" "^3.972.2"
+ "@aws-sdk/credential-provider-process" "^3.972.2"
+ "@aws-sdk/credential-provider-sso" "^3.972.2"
+ "@aws-sdk/credential-provider-web-identity" "^3.972.2"
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/credential-provider-imds" "^4.2.8"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/shared-ini-file-loader" "^4.4.3"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/credential-provider-process@3.894.0":
version "3.894.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.894.0.tgz#bf779c4d3e6e21e6fb0b6ebbb79a135b4b9341bb"
@@ -979,6 +1110,18 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/credential-provider-process@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.2.tgz#15a841b2ed063342878f224cb7bc9b10228a0804"
+ integrity sha512-NLKLTT7jnUe9GpQAVkPTJO+cs2FjlQDt5fArIYS7h/Iw/CvamzgGYGFRVD2SE05nOHCMwafUSi42If8esGFV+g==
+ dependencies:
+ "@aws-sdk/core" "^3.973.2"
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/shared-ini-file-loader" "^4.4.3"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/credential-provider-sso@3.895.0":
version "3.895.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.895.0.tgz#e24ecfe1a9194ff87a51c89bbe00df1cd339bcf7"
@@ -1007,20 +1150,6 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
-"@aws-sdk/credential-provider-sso@3.919.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.919.0.tgz#8eafad76423e33caa8ef746039b5d52c7d5d0d68"
- integrity sha512-oN1XG/frOc2K2KdVwRQjLTBLM1oSFJLtOhuV/6g9N0ASD+44uVJai1CF9JJv5GjHGV+wsqAt+/Dzde0tZEXirA==
- dependencies:
- "@aws-sdk/client-sso" "3.919.0"
- "@aws-sdk/core" "3.916.0"
- "@aws-sdk/token-providers" "3.919.0"
- "@aws-sdk/types" "3.914.0"
- "@smithy/property-provider" "^4.2.3"
- "@smithy/shared-ini-file-loader" "^4.3.3"
- "@smithy/types" "^4.8.0"
- tslib "^2.6.2"
-
"@aws-sdk/credential-provider-sso@3.930.0":
version "3.930.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.930.0.tgz#c5242fab9891b1159f0346f644f1e4a2984dfb7b"
@@ -1035,6 +1164,20 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/credential-provider-sso@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.2.tgz#530df0dd80f9be2bdf2a2de8c38578ab71c859e2"
+ integrity sha512-YpwDn8g3gCGUl61cCV0sRxP2pFIwg+ZsMfWQ/GalSyjXtRkctCMFA+u0yPb/Q4uTfNEiya1Y4nm0C5rIHyPW5Q==
+ dependencies:
+ "@aws-sdk/client-sso" "3.975.0"
+ "@aws-sdk/core" "^3.973.2"
+ "@aws-sdk/token-providers" "3.975.0"
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/shared-ini-file-loader" "^4.4.3"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/credential-provider-web-identity@3.895.0":
version "3.895.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.895.0.tgz#ae98946cd639258b912eea90a6c82e8dc89a88b8"
@@ -1061,19 +1204,6 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
-"@aws-sdk/credential-provider-web-identity@3.919.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.919.0.tgz#e931e1843df2d4195ae1aa866a70eb4e519ad44b"
- integrity sha512-Wi7RmyWA8kUJ++/8YceC7U5r4LyvOHGCnJLDHliP8rOC8HLdSgxw/Upeq3WmC+RPw1zyGOtEDRS/caop2xLXEA==
- dependencies:
- "@aws-sdk/core" "3.916.0"
- "@aws-sdk/nested-clients" "3.919.0"
- "@aws-sdk/types" "3.914.0"
- "@smithy/property-provider" "^4.2.3"
- "@smithy/shared-ini-file-loader" "^4.3.3"
- "@smithy/types" "^4.8.0"
- tslib "^2.6.2"
-
"@aws-sdk/credential-provider-web-identity@3.930.0":
version "3.930.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.930.0.tgz#2ef72aa1e524f4aee5d11c29d922412200eb4cec"
@@ -1087,6 +1217,19 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/credential-provider-web-identity@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.2.tgz#30d253baee3e4e35dcc15aa9219e18befd3d17bf"
+ integrity sha512-x9DAiN9Qz+NjJ99ltDiVQ8d511M/tuF/9MFbe2jUgo7HZhD6+x4S3iT1YcP07ndwDUjmzKGmeOEgE24k4qvfdg==
+ dependencies:
+ "@aws-sdk/core" "^3.973.2"
+ "@aws-sdk/nested-clients" "3.975.0"
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/shared-ini-file-loader" "^4.4.3"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/credential-providers@^3.864.0":
version "3.895.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.895.0.tgz#fa7b3e3ce1bb76b8b2fd058380a5ad91effe29d4"
@@ -1112,29 +1255,30 @@
"@smithy/types" "^4.5.0"
tslib "^2.6.2"
-"@aws-sdk/credential-providers@^3.901.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.919.0.tgz#89118480cf315162dbf5463ff33c98946dbfd9d6"
- integrity sha512-YA7PUZpY2H22UdpSuC+hySUwBDqjVEVvg7uCZ6Wt9ChoDcsiVu7esTK60FETDbHk0yHF5WO1IQyHM8kuSz2DxA==
- dependencies:
- "@aws-sdk/client-cognito-identity" "3.919.0"
- "@aws-sdk/core" "3.916.0"
- "@aws-sdk/credential-provider-cognito-identity" "3.919.0"
- "@aws-sdk/credential-provider-env" "3.916.0"
- "@aws-sdk/credential-provider-http" "3.916.0"
- "@aws-sdk/credential-provider-ini" "3.919.0"
- "@aws-sdk/credential-provider-node" "3.919.0"
- "@aws-sdk/credential-provider-process" "3.916.0"
- "@aws-sdk/credential-provider-sso" "3.919.0"
- "@aws-sdk/credential-provider-web-identity" "3.919.0"
- "@aws-sdk/nested-clients" "3.919.0"
- "@aws-sdk/types" "3.914.0"
- "@smithy/config-resolver" "^4.4.0"
- "@smithy/core" "^3.17.1"
- "@smithy/credential-provider-imds" "^4.2.3"
- "@smithy/node-config-provider" "^4.3.3"
- "@smithy/property-provider" "^4.2.3"
- "@smithy/types" "^4.8.0"
+"@aws-sdk/credential-providers@^3.975.0":
+ version "3.978.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.978.0.tgz#49fb888b338c8440f1680d6e1f4d849d279ad856"
+ integrity sha512-6SrS7Lpkllq19tpuBkSvUdeMLk4RwgU6OklcJ3NmCkIORhf/tFXTKRsSnm3XpZb7FgofCx69eOQUN/7r4xw8UQ==
+ dependencies:
+ "@aws-sdk/client-cognito-identity" "3.978.0"
+ "@aws-sdk/core" "^3.973.4"
+ "@aws-sdk/credential-provider-cognito-identity" "^3.972.2"
+ "@aws-sdk/credential-provider-env" "^3.972.2"
+ "@aws-sdk/credential-provider-http" "^3.972.4"
+ "@aws-sdk/credential-provider-ini" "^3.972.2"
+ "@aws-sdk/credential-provider-login" "^3.972.2"
+ "@aws-sdk/credential-provider-node" "^3.972.2"
+ "@aws-sdk/credential-provider-process" "^3.972.2"
+ "@aws-sdk/credential-provider-sso" "^3.972.2"
+ "@aws-sdk/credential-provider-web-identity" "^3.972.2"
+ "@aws-sdk/nested-clients" "3.978.0"
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/config-resolver" "^4.4.6"
+ "@smithy/core" "^3.22.0"
+ "@smithy/credential-provider-imds" "^4.2.8"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/types" "^4.12.0"
tslib "^2.6.2"
"@aws-sdk/hash-node@^3.110.0":
@@ -1145,14 +1289,14 @@
"@smithy/hash-node" "^1.0.1"
tslib "^2.5.0"
-"@aws-sdk/lib-storage@^3.937.0":
- version "3.937.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.937.0.tgz#105116eb78a9a2b7e1c905c301bc40143f5821da"
- integrity sha512-G+AxZX14MaVUT93BGeG17yBC+rR5yOOvE0QLpSViSARjPLI7el1zEEpOzC18OKIchFoM81VfC0xavfNMIp/bfw==
+"@aws-sdk/lib-storage@^3.975.0":
+ version "3.978.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/lib-storage/-/lib-storage-3.978.0.tgz#298cf18c7d3ac56f7dcca7d57dfc322a976c00a8"
+ integrity sha512-SvKpOdmhwI2mk4So73o2CDFWepcLO66p1YnngPPe9lrRl+apePsvyC++kwG2yYOTBVsRtsrvJwNBgPoDTO5itg==
dependencies:
- "@smithy/abort-controller" "^4.2.5"
- "@smithy/middleware-endpoint" "^4.3.12"
- "@smithy/smithy-client" "^4.9.8"
+ "@smithy/abort-controller" "^4.2.8"
+ "@smithy/middleware-endpoint" "^4.4.12"
+ "@smithy/smithy-client" "^4.11.1"
buffer "5.6.0"
events "3.3.0"
stream-browserify "3.0.0"
@@ -1171,6 +1315,19 @@
"@smithy/util-config-provider" "^4.2.0"
tslib "^2.6.2"
+"@aws-sdk/middleware-bucket-endpoint@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.972.2.tgz#04ab6d109a8ead757a711ee8cb18a1bd65b404da"
+ integrity sha512-ofuXBnitp9j8t05O4NQVrpMZDECPtUhRIWdLzR35baR5njOIPY7YqNtJE+yELVpSn2m4jt2sV1ezYMBY4/Lo+w==
+ dependencies:
+ "@aws-sdk/types" "^3.973.1"
+ "@aws-sdk/util-arn-parser" "^3.972.2"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-config-provider" "^4.2.0"
+ tslib "^2.6.2"
+
"@aws-sdk/middleware-expect-continue@3.917.0":
version "3.917.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.917.0.tgz#f0e0cacad99d048c46cdce8f9dbe47351e59a0f5"
@@ -1181,6 +1338,16 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
+"@aws-sdk/middleware-expect-continue@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.972.2.tgz#3bf62c912de18d9179dac9f192ab8b86f09a6f58"
+ integrity sha512-d9bBQlGk1T5j5rWfof20M2tErddOSoSLDauP2/yyuXfeOfQRCSBUZNrApSxjJ9Hw+/RDGR/XL+LEOqmXxSlV3A==
+ dependencies:
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/middleware-flexible-checksums@3.916.0":
version "3.916.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.916.0.tgz#ecbec3baf54e79dae04f1fd19f21041482928239"
@@ -1200,22 +1367,23 @@
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
-"@aws-sdk/middleware-flexible-checksums@3.919.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.919.0.tgz#5838166c196be0e5e3ddbd355c905431607a4e25"
- integrity sha512-br56Wg1o5hLrMXX2iMjq12Cno/jsx9l2Y0KDI7hD4NFWycKCdsUpI1sjm8Asj18JbrbNWiCeAbFFlzcD8h+4wg==
+"@aws-sdk/middleware-flexible-checksums@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.972.2.tgz#038be2a6acb817cae1b12cd9084f1e5b7a0b38c0"
+ integrity sha512-GgWVZJdzXzqhXxzNAYB3TnZCj7d5rZNdovqSIV91e97nowHVaExRoyaZ3H/Ydqot7veHGPTl8nBp464zZeLDTQ==
dependencies:
"@aws-crypto/crc32" "5.2.0"
"@aws-crypto/crc32c" "5.2.0"
"@aws-crypto/util" "5.2.0"
- "@aws-sdk/core" "3.916.0"
- "@aws-sdk/types" "3.914.0"
+ "@aws-sdk/core" "^3.973.2"
+ "@aws-sdk/crc64-nvme" "3.972.0"
+ "@aws-sdk/types" "^3.973.1"
"@smithy/is-array-buffer" "^4.2.0"
- "@smithy/node-config-provider" "^4.3.3"
- "@smithy/protocol-http" "^5.3.3"
- "@smithy/types" "^4.8.0"
- "@smithy/util-middleware" "^4.2.3"
- "@smithy/util-stream" "^4.5.4"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-stream" "^4.5.10"
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
@@ -1249,6 +1417,16 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/middleware-host-header@^3.972.1", "@aws-sdk/middleware-host-header@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.972.2.tgz#0d0a7fb4a5c71b4697c8f00d7de975be8146ffcf"
+ integrity sha512-42hZ8jEXT2uR6YybCzNq9OomqHPw43YIfRfz17biZjMQA4jKSQUaHIl6VvqO2Ddl5904pXg2Yd/ku78S0Ikgog==
+ dependencies:
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/middleware-location-constraint@3.914.0":
version "3.914.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.914.0.tgz#ee877bdaa54746f65919fa54685ef392256bfb19"
@@ -1258,6 +1436,15 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
+"@aws-sdk/middleware-location-constraint@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.972.2.tgz#8080605dd95e1103e5e4f42ea2ad2469973de6da"
+ integrity sha512-pyayzpq+VQiG1o9pEUyr6BXEJ2g2t4JIPdNxDkIHp2AhR63Gy/10WQkXTBOgRnfQ7/aLPLOnjRIWwOPp0CfUlA==
+ dependencies:
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/middleware-logger@3.893.0":
version "3.893.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.893.0.tgz#4ecb20ee0771a2f3afdc07c1310b97251d3854e2"
@@ -1285,6 +1472,15 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/middleware-logger@^3.972.1", "@aws-sdk/middleware-logger@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.972.2.tgz#132cf8945f27c7f93ba4f1742cefda04d18aff21"
+ integrity sha512-iUzdXKOgi4JVDDEG/VvoNw50FryRCEm0qAudw12DcZoiNJWl0rN6SYVLcL1xwugMfQncCXieK5UBlG6mhH7iYA==
+ dependencies:
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/middleware-recursion-detection@3.893.0":
version "3.893.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.893.0.tgz#9fde6f10e72fcbd8ce4f0eea629c07ca64ce86ba"
@@ -1307,17 +1503,6 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
-"@aws-sdk/middleware-recursion-detection@3.919.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.919.0.tgz#6e71f8878562c18e2ed47a8c2cfc57a1a2e75423"
- integrity sha512-q3MAUxLQve4rTfAannUCx2q1kAHkBBsxt6hVUpzi63KC4lBLScc1ltr7TI+hDxlfGRWGo54jRegb2SsY9Jm+Mw==
- dependencies:
- "@aws-sdk/types" "3.914.0"
- "@aws/lambda-invoke-store" "^0.1.1"
- "@smithy/protocol-http" "^5.3.3"
- "@smithy/types" "^4.8.0"
- tslib "^2.6.2"
-
"@aws-sdk/middleware-recursion-detection@3.930.0":
version "3.930.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.930.0.tgz#cb36ee33ff3d45f3c899164a6c300a267c0c490f"
@@ -1329,6 +1514,17 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/middleware-recursion-detection@^3.972.1", "@aws-sdk/middleware-recursion-detection@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.972.2.tgz#12de11a9c4327418cf6edc20907813b2ecf4c179"
+ integrity sha512-/mzlyzJDtngNFd/rAYvqx29a2d0VuiYKN84Y/Mu9mGw7cfMOCyRK+896tb9wV6MoPRHUX7IXuKCIL8nzz2Pz5A==
+ dependencies:
+ "@aws-sdk/types" "^3.973.1"
+ "@aws/lambda-invoke-store" "^0.2.2"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/middleware-retry@^3.374.0":
version "3.374.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.374.0.tgz#2e80bad67338a3bd3c7dd7364e16482b08c9ffda"
@@ -1358,6 +1554,46 @@
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
+"@aws-sdk/middleware-sdk-s3@3.972.0":
+ version "3.972.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.0.tgz#2b0d89ecad90a90c7f4a3acd75966b9321ed2a66"
+ integrity sha512-0bcKFXWx+NZ7tIlOo7KjQ+O2rydiHdIQahrq+fN6k9Osky29v17guy68urUKfhTobR6iY6KvxkroFWaFtTgS5w==
+ dependencies:
+ "@aws-sdk/core" "3.972.0"
+ "@aws-sdk/types" "3.972.0"
+ "@aws-sdk/util-arn-parser" "3.972.0"
+ "@smithy/core" "^3.20.6"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/signature-v4" "^5.3.8"
+ "@smithy/smithy-client" "^4.10.8"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-config-provider" "^4.2.0"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-stream" "^4.5.10"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/middleware-sdk-s3@^3.972.4":
+ version "3.972.4"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.972.4.tgz#f40f2c4296009e927659def5a1f8d0b1b3ef600b"
+ integrity sha512-lradfn72Td7lswhZKi86VKRNkDtmQR7bq9shX1kaPK1itjThxfcx7ogXSvMm/0cuqoYGic8UUXQOaK4kpU933g==
+ dependencies:
+ "@aws-sdk/core" "^3.973.4"
+ "@aws-sdk/types" "^3.973.1"
+ "@aws-sdk/util-arn-parser" "^3.972.2"
+ "@smithy/core" "^3.22.0"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/signature-v4" "^5.3.8"
+ "@smithy/smithy-client" "^4.11.1"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-config-provider" "^4.2.0"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-stream" "^4.5.10"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
"@aws-sdk/middleware-ssec@3.914.0":
version "3.914.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.914.0.tgz#4042dfed7a4d4234e37a84bab9d1cd9998a22180"
@@ -1367,6 +1603,15 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
+"@aws-sdk/middleware-ssec@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.972.2.tgz#73620c2401b6a64de25fd9bae1a9028ff3ca28ba"
+ integrity sha512-HJ3OmQnlQ1es6esrDWnx3nVPhBAN89WaFCzsDcb6oT7TMjBPUfZ5+1BpI7B0Hnme8cc6kp7qc4cgo2plrlROJA==
+ dependencies:
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/middleware-user-agent@3.895.0":
version "3.895.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.895.0.tgz#bf1276999ff84a3d53f9f80397033fc1b4bd8f05"
@@ -1406,6 +1651,19 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/middleware-user-agent@^3.972.2", "@aws-sdk/middleware-user-agent@^3.972.3", "@aws-sdk/middleware-user-agent@^3.972.4":
+ version "3.972.4"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.972.4.tgz#ead729690b467c6c7105e220b71c5c59b0b4edaf"
+ integrity sha512-6sU8jrSJvY/lqSnU6IYsa8SrCKwOZ4Enl6O4xVJo8RCq9Bdr5Giuw2eUaJAk9GPcpr4OFcmSFv3JOLhpKGeRZA==
+ dependencies:
+ "@aws-sdk/core" "^3.973.4"
+ "@aws-sdk/types" "^3.973.1"
+ "@aws-sdk/util-endpoints" "3.972.0"
+ "@smithy/core" "^3.22.0"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/nested-clients@3.895.0":
version "3.895.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.895.0.tgz#b11c26eb5d2b09a2f6c1901bc73084e76ff8d849"
@@ -1494,50 +1752,6 @@
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
-"@aws-sdk/nested-clients@3.919.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.919.0.tgz#69ba4a2984b042a092fbb33988fabac6e922f6ff"
- integrity sha512-5D9OQsMPkbkp4KHM7JZv/RcGCpr3E1L7XX7U9sCxY+sFGeysltoviTmaIBXsJ2IjAJbBULtf0G/J+2cfH5OP+w==
- dependencies:
- "@aws-crypto/sha256-browser" "5.2.0"
- "@aws-crypto/sha256-js" "5.2.0"
- "@aws-sdk/core" "3.916.0"
- "@aws-sdk/middleware-host-header" "3.914.0"
- "@aws-sdk/middleware-logger" "3.914.0"
- "@aws-sdk/middleware-recursion-detection" "3.919.0"
- "@aws-sdk/middleware-user-agent" "3.916.0"
- "@aws-sdk/region-config-resolver" "3.914.0"
- "@aws-sdk/types" "3.914.0"
- "@aws-sdk/util-endpoints" "3.916.0"
- "@aws-sdk/util-user-agent-browser" "3.914.0"
- "@aws-sdk/util-user-agent-node" "3.916.0"
- "@smithy/config-resolver" "^4.4.0"
- "@smithy/core" "^3.17.1"
- "@smithy/fetch-http-handler" "^5.3.4"
- "@smithy/hash-node" "^4.2.3"
- "@smithy/invalid-dependency" "^4.2.3"
- "@smithy/middleware-content-length" "^4.2.3"
- "@smithy/middleware-endpoint" "^4.3.5"
- "@smithy/middleware-retry" "^4.4.5"
- "@smithy/middleware-serde" "^4.2.3"
- "@smithy/middleware-stack" "^4.2.3"
- "@smithy/node-config-provider" "^4.3.3"
- "@smithy/node-http-handler" "^4.4.3"
- "@smithy/protocol-http" "^5.3.3"
- "@smithy/smithy-client" "^4.9.1"
- "@smithy/types" "^4.8.0"
- "@smithy/url-parser" "^4.2.3"
- "@smithy/util-base64" "^4.3.0"
- "@smithy/util-body-length-browser" "^4.2.0"
- "@smithy/util-body-length-node" "^4.2.1"
- "@smithy/util-defaults-mode-browser" "^4.3.4"
- "@smithy/util-defaults-mode-node" "^4.2.6"
- "@smithy/util-endpoints" "^3.2.3"
- "@smithy/util-middleware" "^4.2.3"
- "@smithy/util-retry" "^4.2.3"
- "@smithy/util-utf8" "^4.2.0"
- tslib "^2.6.2"
-
"@aws-sdk/nested-clients@3.930.0":
version "3.930.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.930.0.tgz#b91274aac140243f3581990560d72a8a93a16b03"
@@ -1582,6 +1796,94 @@
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
+"@aws-sdk/nested-clients@3.975.0":
+ version "3.975.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.975.0.tgz#566d4508dfd2b83e86a829670d9219d307f6f1a5"
+ integrity sha512-OkeFHPlQj2c/Y5bQGkX14pxhDWUGUFt3LRHhjcDKsSCw6lrxKcxN3WFZN0qbJwKNydP+knL5nxvfgKiCLpTLRA==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/core" "^3.973.1"
+ "@aws-sdk/middleware-host-header" "^3.972.1"
+ "@aws-sdk/middleware-logger" "^3.972.1"
+ "@aws-sdk/middleware-recursion-detection" "^3.972.1"
+ "@aws-sdk/middleware-user-agent" "^3.972.2"
+ "@aws-sdk/region-config-resolver" "^3.972.1"
+ "@aws-sdk/types" "^3.973.0"
+ "@aws-sdk/util-endpoints" "3.972.0"
+ "@aws-sdk/util-user-agent-browser" "^3.972.1"
+ "@aws-sdk/util-user-agent-node" "^3.972.1"
+ "@smithy/config-resolver" "^4.4.6"
+ "@smithy/core" "^3.21.1"
+ "@smithy/fetch-http-handler" "^5.3.9"
+ "@smithy/hash-node" "^4.2.8"
+ "@smithy/invalid-dependency" "^4.2.8"
+ "@smithy/middleware-content-length" "^4.2.8"
+ "@smithy/middleware-endpoint" "^4.4.11"
+ "@smithy/middleware-retry" "^4.4.27"
+ "@smithy/middleware-serde" "^4.2.9"
+ "@smithy/middleware-stack" "^4.2.8"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/node-http-handler" "^4.4.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/smithy-client" "^4.10.12"
+ "@smithy/types" "^4.12.0"
+ "@smithy/url-parser" "^4.2.8"
+ "@smithy/util-base64" "^4.3.0"
+ "@smithy/util-body-length-browser" "^4.2.0"
+ "@smithy/util-body-length-node" "^4.2.1"
+ "@smithy/util-defaults-mode-browser" "^4.3.26"
+ "@smithy/util-defaults-mode-node" "^4.2.29"
+ "@smithy/util-endpoints" "^3.2.8"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-retry" "^4.2.8"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
+"@aws-sdk/nested-clients@3.978.0":
+ version "3.978.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.978.0.tgz#f149fc9a1812dd33d659688469b2587f11efa389"
+ integrity sha512-FyFiPp1SPt2JnspHlPO0LJyRwfYLBA27ToAoJAsbJIcd/Ytt9mFkRQ4kqUJQwnSl5JpdYzotNRqoRFCmx3uUfA==
+ dependencies:
+ "@aws-crypto/sha256-browser" "5.2.0"
+ "@aws-crypto/sha256-js" "5.2.0"
+ "@aws-sdk/core" "^3.973.4"
+ "@aws-sdk/middleware-host-header" "^3.972.2"
+ "@aws-sdk/middleware-logger" "^3.972.2"
+ "@aws-sdk/middleware-recursion-detection" "^3.972.2"
+ "@aws-sdk/middleware-user-agent" "^3.972.4"
+ "@aws-sdk/region-config-resolver" "^3.972.2"
+ "@aws-sdk/types" "^3.973.1"
+ "@aws-sdk/util-endpoints" "3.972.0"
+ "@aws-sdk/util-user-agent-browser" "^3.972.2"
+ "@aws-sdk/util-user-agent-node" "^3.972.2"
+ "@smithy/config-resolver" "^4.4.6"
+ "@smithy/core" "^3.22.0"
+ "@smithy/fetch-http-handler" "^5.3.9"
+ "@smithy/hash-node" "^4.2.8"
+ "@smithy/invalid-dependency" "^4.2.8"
+ "@smithy/middleware-content-length" "^4.2.8"
+ "@smithy/middleware-endpoint" "^4.4.12"
+ "@smithy/middleware-retry" "^4.4.29"
+ "@smithy/middleware-serde" "^4.2.9"
+ "@smithy/middleware-stack" "^4.2.8"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/node-http-handler" "^4.4.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/smithy-client" "^4.11.1"
+ "@smithy/types" "^4.12.0"
+ "@smithy/url-parser" "^4.2.8"
+ "@smithy/util-base64" "^4.3.0"
+ "@smithy/util-body-length-browser" "^4.2.0"
+ "@smithy/util-body-length-node" "^4.2.1"
+ "@smithy/util-defaults-mode-browser" "^4.3.28"
+ "@smithy/util-defaults-mode-node" "^4.2.31"
+ "@smithy/util-endpoints" "^3.2.8"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-retry" "^4.2.8"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
"@aws-sdk/protocol-http@^3.374.0":
version "3.374.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.374.0.tgz#e35e76096b995bbed803897a9f4587d11ca34088"
@@ -1623,6 +1925,17 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/region-config-resolver@^3.972.1", "@aws-sdk/region-config-resolver@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.972.2.tgz#962dc4099a3c43248724746dc2faa0d43499c374"
+ integrity sha512-/7vRBsfmiOlg2X67EdKrzzQGw5/SbkXb7ALHQmlQLkZh8qNgvS2G2dDC6NtF3hzFlpP3j2k+KIEtql/6VrI6JA==
+ dependencies:
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/config-resolver" "^4.4.6"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/s3-request-presigner@^3.901.0":
version "3.917.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.917.0.tgz#b68a257ad40c0694c868f8c6b92440a06ae8d197"
@@ -1649,6 +1962,18 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
+"@aws-sdk/signature-v4-multi-region@3.972.0":
+ version "3.972.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.972.0.tgz#159662f1f0b26fc178ef1c8c92cbd37e79ddbdc0"
+ integrity sha512-2udiRijmjpN81Pvajje4TsjbXDZNP6K9bYUanBYH8hXa/tZG5qfGCySD+TyX0sgDxCQmEDMg3LaQdfjNHBDEgQ==
+ dependencies:
+ "@aws-sdk/middleware-sdk-s3" "3.972.0"
+ "@aws-sdk/types" "3.972.0"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/signature-v4" "^5.3.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/signature-v4@^3.374.0":
version "3.374.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.374.0.tgz#bd727f4c392acb81bc667aa4cfceeba608250771"
@@ -1683,19 +2008,6 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
-"@aws-sdk/token-providers@3.919.0":
- version "3.919.0"
- resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.919.0.tgz#37ee099d64b19c4cb769c99b933e6e08f9180c00"
- integrity sha512-6aFv4lzXbfbkl0Pv37Us8S/ZkqplOQZIEgQg7bfMru7P96Wv2jVnDGsEc5YyxMnnRyIB90naQ5JgslZ4rkpknw==
- dependencies:
- "@aws-sdk/core" "3.916.0"
- "@aws-sdk/nested-clients" "3.919.0"
- "@aws-sdk/types" "3.914.0"
- "@smithy/property-provider" "^4.2.3"
- "@smithy/shared-ini-file-loader" "^4.3.3"
- "@smithy/types" "^4.8.0"
- tslib "^2.6.2"
-
"@aws-sdk/token-providers@3.930.0":
version "3.930.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.930.0.tgz#b793a4b91391722f5e1950e65a50dd2943ad279f"
@@ -1709,6 +2021,19 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/token-providers@3.975.0":
+ version "3.975.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.975.0.tgz#57d41c54fe8cf296816f2142de0c32f4c79b2bff"
+ integrity sha512-AWQt64hkVbDQ+CmM09wnvSk2mVyH4iRROkmYkr3/lmUtFNbE2L/fnw26sckZnUcFCsHPqbkQrcsZAnTcBLbH4w==
+ dependencies:
+ "@aws-sdk/core" "^3.973.1"
+ "@aws-sdk/nested-clients" "3.975.0"
+ "@aws-sdk/types" "^3.973.0"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/shared-ini-file-loader" "^4.4.3"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/types@3.893.0":
version "3.893.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.893.0.tgz#1afbdb9d62bf86caeac380e3cac11a051076400a"
@@ -1733,6 +2058,14 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/types@3.972.0":
+ version "3.972.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.972.0.tgz#2c8ddf7fa63038da2e27d888c1bd5817b62e30fa"
+ integrity sha512-U7xBIbLSetONxb2bNzHyDgND3oKGoIfmknrEVnoEU4GUSs+0augUOIn9DIWGUO2ETcRFdsRUnmx9KhPT9Ojbug==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/types@^3.222.0":
version "3.734.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.734.0.tgz#af5e620b0e761918282aa1c8e53cac6091d169a2"
@@ -1741,6 +2074,14 @@
"@smithy/types" "^4.1.0"
tslib "^2.6.2"
+"@aws-sdk/types@^3.973.0", "@aws-sdk/types@^3.973.1":
+ version "3.973.1"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.973.1.tgz#1b2992ec6c8380c3e74c9bd2c74703e9a807d6e0"
+ integrity sha512-DwHBiMNOB468JiX6+i34c+THsKHErYUdNQ3HexeXZvVn4zouLjgaS4FejiGSi2HyBuzuyHg7SuOPmjSvoU9NRg==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/util-arn-parser@3.893.0":
version "3.893.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.893.0.tgz#fcc9b792744b9da597662891c2422dda83881d8d"
@@ -1748,6 +2089,20 @@
dependencies:
tslib "^2.6.2"
+"@aws-sdk/util-arn-parser@3.972.0":
+ version "3.972.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.972.0.tgz#24a29435e1d8ad6a3c2282f62521fe9961346c54"
+ integrity sha512-RM5Mmo/KJ593iMSrALlHEOcc9YOIyOsDmS5x2NLOMdEmzv1o00fcpAkCQ02IGu1eFneBFT7uX0Mpag0HI+Cz2g==
+ dependencies:
+ tslib "^2.6.2"
+
+"@aws-sdk/util-arn-parser@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.972.2.tgz#ef18ba889e8ef35f083f1e962018bc0ce70acef3"
+ integrity sha512-VkykWbqMjlSgBFDyrY3nOSqupMc6ivXuGmvci6Q3NnLq5kC+mKQe2QBZ4nrWRE/jqOxeFP2uYzLtwncYYcvQDg==
+ dependencies:
+ tslib "^2.6.2"
+
"@aws-sdk/util-endpoints@3.895.0":
version "3.895.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.895.0.tgz#d3881250cecc40fa9d721a33661c1aaa64aba643"
@@ -1781,6 +2136,17 @@
"@smithy/util-endpoints" "^3.2.5"
tslib "^2.6.2"
+"@aws-sdk/util-endpoints@3.972.0":
+ version "3.972.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.972.0.tgz#0c483aa4853ea3858024bc502454ba395e533cb0"
+ integrity sha512-6JHsl1V/a1ZW8D8AFfd4R52fwZPnZ5H4U6DS8m/bWT8qad72NvbOFAC7U2cDtFs2TShqUO3TEiX/EJibtY3ijg==
+ dependencies:
+ "@aws-sdk/types" "3.972.0"
+ "@smithy/types" "^4.12.0"
+ "@smithy/url-parser" "^4.2.8"
+ "@smithy/util-endpoints" "^3.2.8"
+ tslib "^2.6.2"
+
"@aws-sdk/util-format-url@3.914.0":
version "3.914.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.914.0.tgz#6592dd713faa311200fc9ae9295a79618f33e2ca"
@@ -1828,6 +2194,16 @@
bowser "^2.11.0"
tslib "^2.6.2"
+"@aws-sdk/util-user-agent-browser@^3.972.1", "@aws-sdk/util-user-agent-browser@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.972.2.tgz#f5af782d42aed4c87059406b6f2ddf258fbb9586"
+ integrity sha512-gz76bUyebPZRxIsBHJUd/v+yiyFzm9adHbr8NykP2nm+z/rFyvQneOHajrUejtmnc5tTBeaDPL4X25TnagRk4A==
+ dependencies:
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/types" "^4.12.0"
+ bowser "^2.11.0"
+ tslib "^2.6.2"
+
"@aws-sdk/util-user-agent-node@3.895.0":
version "3.895.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.895.0.tgz#f8bcfff850f2685d10099a7496dc70d6c6525356"
@@ -1861,6 +2237,17 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@aws-sdk/util-user-agent-node@^3.972.1", "@aws-sdk/util-user-agent-node@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.972.2.tgz#cbdb14a2e412b39d7751636133de604ce4727506"
+ integrity sha512-vnxOc4C6AR7hVbwyFo1YuH0GB6dgJlWt8nIOOJpnzJAWJPkUMPJ9Zv2lnKsSU7TTZbhP2hEO8OZ4PYH59XFv8Q==
+ dependencies:
+ "@aws-sdk/middleware-user-agent" "^3.972.3"
+ "@aws-sdk/types" "^3.973.1"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@aws-sdk/util-utf8-browser@^3.0.0":
version "3.259.0"
resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff"
@@ -1895,6 +2282,24 @@
fast-xml-parser "5.2.5"
tslib "^2.6.2"
+"@aws-sdk/xml-builder@3.972.0":
+ version "3.972.0"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.972.0.tgz#8ae8f6f6e0a63d518c8c8ce9f40f3c94d9b67884"
+ integrity sha512-POaGMcXnozzqBUyJM3HLUZ9GR6OKJWPGJEmhtTnxZXt8B6JcJ/6K3xRJ5H/j8oovVLz8Wg6vFxAHv8lvuASxMg==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ fast-xml-parser "5.2.5"
+ tslib "^2.6.2"
+
+"@aws-sdk/xml-builder@^3.972.2":
+ version "3.972.2"
+ resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.972.2.tgz#c63a6a788ff398491748908af528c8294c562f65"
+ integrity sha512-jGOOV/bV1DhkkUhHiZ3/1GZ67cZyOXaDb7d1rYD6ZiXf5V9tBNOcgqXwRRPvrCbYaFRa1pPMFb3ZjqjWpR3YfA==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ fast-xml-parser "5.2.5"
+ tslib "^2.6.2"
+
"@aws/lambda-invoke-store@^0.0.1":
version "0.0.1"
resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz#92d792a7dda250dfcb902e13228f37a81be57c8f"
@@ -1905,6 +2310,11 @@
resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.1.1.tgz#2e67f17040b930bde00a79ffb484eb9e77472b06"
integrity sha512-RcLam17LdlbSOSp9VxmUu1eI6Mwxp+OwhD2QhiSNmNCzoDb0EeUXTD2n/WbcnrAYMGlmf05th6QYq23VqvJqpA==
+"@aws/lambda-invoke-store@^0.2.2":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.3.tgz#f1137f56209ccc69c15f826242cbf37f828617dd"
+ integrity sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==
+
"@azure/abort-controller@^2.0.0", "@azure/abort-controller@^2.1.2":
version "2.1.2"
resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-2.1.2.tgz#42fe0ccab23841d9905812c58f1082d27784566d"
@@ -2714,6 +3124,14 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/abort-controller@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.8.tgz#3bfd7a51acce88eaec9a65c3382542be9f3a053a"
+ integrity sha512-peuVfkYHAmS5ybKxWcfraK7WBBP0J+rkfUcbHJJKQ4ir3UAUNQI+Y4Vt/PqSzGqgloJ5O1dk7+WzNL8wcCSXbw==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/chunked-blob-reader-native@^4.2.1":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.1.tgz#380266951d746b522b4ab2b16bfea6b451147b41"
@@ -2764,6 +3182,18 @@
"@smithy/util-middleware" "^4.2.5"
tslib "^2.6.2"
+"@smithy/config-resolver@^4.4.6":
+ version "4.4.6"
+ resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.4.6.tgz#bd7f65b3da93f37f1c97a399ade0124635c02297"
+ integrity sha512-qJpzYC64kaj3S0fueiu3kXm8xPrR3PcXDPEgnaNMRn0EjNSZFoFjvbUp0YUDsRhN1CB90EnHJtbxWKevnH99UQ==
+ dependencies:
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-config-provider" "^4.2.0"
+ "@smithy/util-endpoints" "^3.2.8"
+ "@smithy/util-middleware" "^4.2.8"
+ tslib "^2.6.2"
+
"@smithy/core@^3.11.1", "@smithy/core@^3.12.0":
version "3.12.0"
resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.12.0.tgz#81bb6a2a113e334ddaede9d502ff17ce4d8a2cc6"
@@ -2812,18 +3242,18 @@
"@smithy/uuid" "^1.1.0"
tslib "^2.6.2"
-"@smithy/core@^3.18.5":
- version "3.18.5"
- resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.18.5.tgz#c304d185e2335cbef9b39431a53a67c84972c27f"
- integrity sha512-6gnIz3h+PEPQGDj8MnRSjDvKBah042jEoPgjFGJ4iJLBE78L4lY/n98x14XyPF4u3lN179Ub/ZKFY5za9GeLQw==
+"@smithy/core@^3.20.6", "@smithy/core@^3.21.1", "@smithy/core@^3.22.0":
+ version "3.22.0"
+ resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.22.0.tgz#bf5ea9233e2be1d8681d06c8ed3c31966711dc83"
+ integrity sha512-6vjCHD6vaY8KubeNw2Fg3EK0KLGQYdldG4fYgQmA0xSW0dJ8G2xFhSOdrlUakWVoP5JuWHtFODg3PNd/DN3FDA==
dependencies:
- "@smithy/middleware-serde" "^4.2.6"
- "@smithy/protocol-http" "^5.3.5"
- "@smithy/types" "^4.9.0"
+ "@smithy/middleware-serde" "^4.2.9"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/types" "^4.12.0"
"@smithy/util-base64" "^4.3.0"
"@smithy/util-body-length-browser" "^4.2.0"
- "@smithy/util-middleware" "^4.2.5"
- "@smithy/util-stream" "^4.5.6"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-stream" "^4.5.10"
"@smithy/util-utf8" "^4.2.0"
"@smithy/uuid" "^1.1.0"
tslib "^2.6.2"
@@ -2861,6 +3291,17 @@
"@smithy/url-parser" "^4.2.5"
tslib "^2.6.2"
+"@smithy/credential-provider-imds@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.8.tgz#b2f4bf759ab1c35c0dd00fa3470263c749ebf60f"
+ integrity sha512-FNT0xHS1c/CPN8upqbMFP83+ul5YgdisfCfkZ86Jh2NSmnqw/AJ6x5pEogVCTVvSm7j9MopRU89bmDelxuDMYw==
+ dependencies:
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/types" "^4.12.0"
+ "@smithy/url-parser" "^4.2.8"
+ tslib "^2.6.2"
+
"@smithy/eventstream-codec@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-1.1.0.tgz#bfe1308ba84ff3db3e79dc1ced8231c52ac0fc36"
@@ -2881,6 +3322,16 @@
"@smithy/util-hex-encoding" "^4.2.0"
tslib "^2.6.2"
+"@smithy/eventstream-codec@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.8.tgz#2f431f4bac22e40aa6565189ea350c6fcb5efafd"
+ integrity sha512-jS/O5Q14UsufqoGhov7dHLOPCzkYJl9QDzusI2Psh4wyYx/izhzvX9P4D69aTxcdfVhEPhjK+wYyn/PzLjKbbw==
+ dependencies:
+ "@aws-crypto/crc32" "5.2.0"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-hex-encoding" "^4.2.0"
+ tslib "^2.6.2"
+
"@smithy/eventstream-serde-browser@^4.2.3":
version "4.2.3"
resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.3.tgz#57fb9c10daac12647a0b97ef04330d706cbe9494"
@@ -2890,6 +3341,15 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
+"@smithy/eventstream-serde-browser@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.8.tgz#04e2e1fad18e286d5595fbc0bff22e71251fca38"
+ integrity sha512-MTfQT/CRQz5g24ayXdjg53V0mhucZth4PESoA5IhvaWVDTOQLfo8qI9vzqHcPsdd2v6sqfTYqF5L/l+pea5Uyw==
+ dependencies:
+ "@smithy/eventstream-serde-universal" "^4.2.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/eventstream-serde-config-resolver@^4.3.3":
version "4.3.3"
resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.3.tgz#ca1a7d272ae939aee303da40aa476656d785f75f"
@@ -2898,6 +3358,14 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
+"@smithy/eventstream-serde-config-resolver@^4.3.8":
+ version "4.3.8"
+ resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.8.tgz#b913d23834c6ebf1646164893e1bec89dffe4f3b"
+ integrity sha512-ah12+luBiDGzBruhu3efNy1IlbwSEdNiw8fOZksoKoWW1ZHvO/04MQsdnws/9Aj+5b0YXSSN2JXKy/ClIsW8MQ==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/eventstream-serde-node@^4.2.3":
version "4.2.3"
resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.3.tgz#f1b33bb576bf7222b6bd6bc2ad845068ccf53f16"
@@ -2907,6 +3375,15 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
+"@smithy/eventstream-serde-node@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.8.tgz#5f2dfa2cbb30bf7564c8d8d82a9832e9313f5243"
+ integrity sha512-cYpCpp29z6EJHa5T9WL0KAlq3SOKUQkcgSoeRfRVwjGgSFl7Uh32eYGt7IDYCX20skiEdRffyDpvF2efEZPC0A==
+ dependencies:
+ "@smithy/eventstream-serde-universal" "^4.2.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/eventstream-serde-universal@^4.2.3":
version "4.2.3"
resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.3.tgz#86194daa2cd2496e413723465360d80f32ad7252"
@@ -2916,6 +3393,15 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
+"@smithy/eventstream-serde-universal@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.8.tgz#a62b389941c28a8c3ab44a0c8ba595447e0258a7"
+ integrity sha512-iJ6YNJd0bntJYnX6s52NC4WFYcZeKrPUr1Kmmr5AwZcwCSzVpS7oavAmxMR7pMq7V+D1G4s9F5NJK0xwOsKAlQ==
+ dependencies:
+ "@smithy/eventstream-codec" "^4.2.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/fetch-http-handler@^5.2.1":
version "5.2.1"
resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.2.1.tgz#fe284a00f1b3a35edf9fba454d287b7f74ef20af"
@@ -2949,6 +3435,17 @@
"@smithy/util-base64" "^4.3.0"
tslib "^2.6.2"
+"@smithy/fetch-http-handler@^5.3.9":
+ version "5.3.9"
+ resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.9.tgz#edfc9e90e0c7538c81e22e748d62c0066cc91d58"
+ integrity sha512-I4UhmcTYXBrct03rwzQX1Y/iqQlzVQaPxWjCjula++5EmWq9YGBrx6bbGqluGc1f0XEfhSkiY4jhLgbsJUMKRA==
+ dependencies:
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/querystring-builder" "^4.2.8"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-base64" "^4.3.0"
+ tslib "^2.6.2"
+
"@smithy/hash-blob-browser@^4.2.4":
version "4.2.4"
resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.4.tgz#c7226d2ba2a394acf6e90510d08f7c3003f516d1"
@@ -2959,6 +3456,16 @@
"@smithy/types" "^4.8.0"
tslib "^2.6.2"
+"@smithy/hash-blob-browser@^4.2.9":
+ version "4.2.9"
+ resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.9.tgz#4f8e19b12b5a1000b7292b30f5ee237d32216af3"
+ integrity sha512-m80d/iicI7DlBDxyQP6Th7BW/ejDGiF0bgI754+tiwK0lgMkcaIBgvwwVc7OFbY4eUzpGtnig52MhPAEJ7iNYg==
+ dependencies:
+ "@smithy/chunked-blob-reader" "^5.2.0"
+ "@smithy/chunked-blob-reader-native" "^4.2.1"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/hash-node@^1.0.1":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-1.1.0.tgz#a8da64fa4b2e2c64185df92897165c8113b499b2"
@@ -2999,6 +3506,16 @@
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
+"@smithy/hash-node@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.8.tgz#c21eb055041716cd492dda3a109852a94b6d47bb"
+ integrity sha512-7ZIlPbmaDGxVoxErDZnuFG18WekhbA/g2/i97wGj+wUBeS6pcUeAym8u4BXh/75RXWhgIJhyC11hBzig6MljwA==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-buffer-from" "^4.2.0"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
"@smithy/hash-stream-node@^4.2.3":
version "4.2.3"
resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.3.tgz#8ddae1f5366513cbbec3acb6f54e3ec1b332db88"
@@ -3008,6 +3525,15 @@
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
+"@smithy/hash-stream-node@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.8.tgz#d541a31c714ac9c85ae9fec91559e81286707ddb"
+ integrity sha512-v0FLTXgHrTeheYZFGhR+ehX5qUm4IQsjAiL9qehad2cyjMWcN2QG6/4mSwbSgEQzI7jwfoXj7z4fxZUx/Mhj2w==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
"@smithy/invalid-dependency@^4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.1.1.tgz#2511335ff889944701c7d2a3b1e4a4d6fe9ddfab"
@@ -3032,6 +3558,14 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/invalid-dependency@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.8.tgz#c578bc6d5540c877aaed5034b986b5f6bd896451"
+ integrity sha512-N9iozRybwAQ2dn9Fot9kI6/w9vos2oTXLhtK7ovGqwZjlOcxu6XhPlpLpC+INsxktqHinn5gS2DXDjDF2kG5sQ==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/is-array-buffer@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-1.1.0.tgz#29948072da2b57575aa9898cda863932e842ab11"
@@ -3076,6 +3610,15 @@
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
+"@smithy/md5-js@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.8.tgz#d354dbf9aea7a580be97598a581e35eef324ce22"
+ integrity sha512-oGMaLj4tVZzLi3itBa9TCswgMBr7k9b+qKYowQ6x1rTyTuO1IU2YHdHUa+891OsOH+wCsH7aTPRsTJO3RMQmjQ==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
"@smithy/middleware-content-length@^4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.1.1.tgz#eaea7bd14c7a0b64aef87b8c372c2a04d7b9cb72"
@@ -3103,6 +3646,15 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/middleware-content-length@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.8.tgz#82c1df578fa70fe5800cf305b8788b9d2836a3e4"
+ integrity sha512-RO0jeoaYAB1qBRhfVyq0pMgBoUK34YEJxVxyjOWYZiOKOq2yMZ4MnVXMZCUDenpozHue207+9P5ilTV1zeda0A==
+ dependencies:
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/middleware-endpoint@^4.2.3", "@smithy/middleware-endpoint@^4.2.4":
version "4.2.4"
resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.2.4.tgz#d815d27b7869a66ee97b41932053ca5d5ec6315e"
@@ -3131,20 +3683,6 @@
"@smithy/util-middleware" "^4.2.5"
tslib "^2.6.2"
-"@smithy/middleware-endpoint@^4.3.12":
- version "4.3.12"
- resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.12.tgz#97c432eec17398277f626b8d2abff9278b89d2ac"
- integrity sha512-9pAX/H+VQPzNbouhDhkW723igBMLgrI8OtX+++M7iKJgg/zY/Ig3i1e6seCcx22FWhE6Q/S61BRdi2wXBORT+A==
- dependencies:
- "@smithy/core" "^3.18.5"
- "@smithy/middleware-serde" "^4.2.6"
- "@smithy/node-config-provider" "^4.3.5"
- "@smithy/shared-ini-file-loader" "^4.4.0"
- "@smithy/types" "^4.9.0"
- "@smithy/url-parser" "^4.2.5"
- "@smithy/util-middleware" "^4.2.5"
- tslib "^2.6.2"
-
"@smithy/middleware-endpoint@^4.3.5":
version "4.3.5"
resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.5.tgz#c22f82f83f0b5cc6c0866a2a87b65bc2e79af352"
@@ -3159,6 +3697,20 @@
"@smithy/util-middleware" "^4.2.3"
tslib "^2.6.2"
+"@smithy/middleware-endpoint@^4.4.11", "@smithy/middleware-endpoint@^4.4.12":
+ version "4.4.12"
+ resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.12.tgz#910c9f1cc738d104225d69f702bd28cd2a976eb0"
+ integrity sha512-9JMKHVJtW9RysTNjcBZQHDwB0p3iTP6B1IfQV4m+uCevkVd/VuLgwfqk5cnI4RHcp4cPwoIvxQqN4B1sxeHo8Q==
+ dependencies:
+ "@smithy/core" "^3.22.0"
+ "@smithy/middleware-serde" "^4.2.9"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/shared-ini-file-loader" "^4.4.3"
+ "@smithy/types" "^4.12.0"
+ "@smithy/url-parser" "^4.2.8"
+ "@smithy/util-middleware" "^4.2.8"
+ tslib "^2.6.2"
+
"@smithy/middleware-retry@^1.0.3":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-1.1.0.tgz#084f70df112f22b5bfa0de8faaa14a5dcf22149e"
@@ -3187,6 +3739,21 @@
"@smithy/uuid" "^1.0.0"
tslib "^2.6.2"
+"@smithy/middleware-retry@^4.4.27", "@smithy/middleware-retry@^4.4.29":
+ version "4.4.29"
+ resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.29.tgz#b8f3d6e46924e7496cd107e14b238df5ef9e80b4"
+ integrity sha512-bmTn75a4tmKRkC5w61yYQLb3DmxNzB8qSVu9SbTYqW6GAL0WXO2bDZuMAn/GJSbOdHEdjZvWxe+9Kk015bw6Cg==
+ dependencies:
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/service-error-classification" "^4.2.8"
+ "@smithy/smithy-client" "^4.11.1"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-middleware" "^4.2.8"
+ "@smithy/util-retry" "^4.2.8"
+ "@smithy/uuid" "^1.1.0"
+ tslib "^2.6.2"
+
"@smithy/middleware-retry@^4.4.5":
version "4.4.5"
resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.5.tgz#5bdb6ba1be6a97272b79fdac99db40c5e7ab81e0"
@@ -3244,13 +3811,13 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
-"@smithy/middleware-serde@^4.2.6":
- version "4.2.6"
- resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.6.tgz#7e710f43206e13a8c081a372b276e7b2c51bff5b"
- integrity sha512-VkLoE/z7e2g8pirwisLz8XJWedUSY8my/qrp81VmAdyrhi94T+riBfwP+AOEEFR9rFTSonC/5D2eWNmFabHyGQ==
+"@smithy/middleware-serde@^4.2.9":
+ version "4.2.9"
+ resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.9.tgz#fd9d9b02b265aef67c9a30f55c2a5038fc9ca791"
+ integrity sha512-eMNiej0u/snzDvlqRGSN3Vl0ESn3838+nKyVfF2FKNXFbi4SERYT6PR392D39iczngbqqGG0Jl1DlCnp7tBbXQ==
dependencies:
- "@smithy/protocol-http" "^5.3.5"
- "@smithy/types" "^4.9.0"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/types" "^4.12.0"
tslib "^2.6.2"
"@smithy/middleware-stack@^4.1.1":
@@ -3277,6 +3844,14 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/middleware-stack@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.8.tgz#4fa9cfaaa05f664c9bb15d45608f3cb4f6da2b76"
+ integrity sha512-w6LCfOviTYQjBctOKSwy6A8FIkQy7ICvglrZFl6Bw4FmcQ1Z420fUtIhxaUZZshRe0VCq4kvDiPiXrPZAe8oRA==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/node-config-provider@^4.2.2":
version "4.2.2"
resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.2.2.tgz#ede9ac2f689cfdf26815a53fadf139e6aa77bdbb"
@@ -3307,6 +3882,16 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/node-config-provider@^4.3.8":
+ version "4.3.8"
+ resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.8.tgz#85a0683448262b2eb822f64c14278d4887526377"
+ integrity sha512-aFP1ai4lrbVlWjfpAfRSL8KFcnJQYfTl5QxLJXY32vghJrDuFyPZ6LtUL+JEGYiFRG1PfPLHLoxj107ulncLIg==
+ dependencies:
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/shared-ini-file-loader" "^4.4.3"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/node-http-handler@^3.0.0":
version "3.3.3"
resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.3.3.tgz#94dbb3f15342b656ceba2b26e14aa741cace8919"
@@ -3351,6 +3936,17 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/node-http-handler@^4.4.8":
+ version "4.4.8"
+ resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.8.tgz#298cc148c812b9a79f0ebd75e82bdab9e6d0bbcd"
+ integrity sha512-q9u+MSbJVIJ1QmJ4+1u+cERXkrhuILCBDsJUBAW1MPE6sFonbCNaegFuwW9ll8kh5UdyY3jOkoOGlc7BesoLpg==
+ dependencies:
+ "@smithy/abort-controller" "^4.2.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/querystring-builder" "^4.2.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/property-provider@^4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.1.1.tgz#6e11ae6729840314afed05fd6ab48f62c654116b"
@@ -3375,6 +3971,14 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/property-provider@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.8.tgz#6e37b30923d2d31370c50ce303a4339020031472"
+ integrity sha512-EtCTbyIveCKeOXDSWSdze3k612yCPq1YbXsbqX3UHhkOSW8zKsM9NOJG5gTIya0vbY2DIaieG8pKo1rITHYL0w==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/protocol-http@^1.1.0", "@smithy/protocol-http@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-1.2.0.tgz#a554e4dabb14508f0bc2cdef9c3710e2b294be04"
@@ -3459,6 +4063,15 @@
"@smithy/util-uri-escape" "^4.2.0"
tslib "^2.6.2"
+"@smithy/querystring-builder@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.8.tgz#2fa72d29eb1844a6a9933038bbbb14d6fe385e93"
+ integrity sha512-Xr83r31+DrE8CP3MqPgMJl+pQlLLmOfiEUnoyAlGzzJIrEsbKsPy1hqH0qySaQm4oWrCBlUqRt+idEgunKB+iw==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-uri-escape" "^4.2.0"
+ tslib "^2.6.2"
+
"@smithy/querystring-parser@^4.1.1":
version "4.1.1"
resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.1.1.tgz#21b861439b2db16abeb0a6789b126705fa25eea1"
@@ -3483,6 +4096,14 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/querystring-parser@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.8.tgz#aa3f2456180ce70242e89018d0b1ebd4782a6347"
+ integrity sha512-vUurovluVy50CUlazOiXkPq40KGvGWSdmusa3130MwrR1UNnNgKAlj58wlOe61XSHRpUfIIh6cE0zZ8mzKaDPA==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/service-error-classification@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-1.1.0.tgz#264dd432ae513b3f2ad9fc6f461deda8c516173c"
@@ -3509,6 +4130,13 @@
dependencies:
"@smithy/types" "^4.9.0"
+"@smithy/service-error-classification@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.8.tgz#6d89dbad4f4978d7b75a44af8c18c22455a16cdc"
+ integrity sha512-mZ5xddodpJhEt3RkCjbmUQuXUOaPNTkbMGR0bcS8FE0bJDLMZlhmpgrvPNCYglVw5rsYTpSnv19womw9WWXKQQ==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+
"@smithy/shared-ini-file-loader@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.2.0.tgz#e4717242686bf611bd1a5d6f79870abe480c1c99"
@@ -3533,6 +4161,14 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/shared-ini-file-loader@^4.4.3":
+ version "4.4.3"
+ resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.3.tgz#6054215ecb3a6532b13aa49a9fbda640b63be50e"
+ integrity sha512-DfQjxXQnzC5UbCUPeC3Ie8u+rIWZTvuDPAGU/BxzrOGhRvgUanaP68kDZA+jaT3ZI+djOf+4dERGlm9mWfFDrg==
+ dependencies:
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/signature-v4@^1.0.1":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-1.1.0.tgz#e85309995c2475d39598a4f56e68b7ed856bdfa6"
@@ -3617,6 +4253,18 @@
"@smithy/util-utf8" "^4.2.0"
tslib "^2.6.2"
+"@smithy/smithy-client@^4.10.12", "@smithy/smithy-client@^4.10.8", "@smithy/smithy-client@^4.11.1":
+ version "4.11.1"
+ resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.11.1.tgz#8203e620da22e7f7218597a60193ef5a53325c41"
+ integrity sha512-SERgNg5Z1U+jfR6/2xPYjSEHY1t3pyTHC/Ma3YQl6qWtmiL42bvNId3W/oMUWIwu7ekL2FMPdqAmwbQegM7HeQ==
+ dependencies:
+ "@smithy/core" "^3.22.0"
+ "@smithy/middleware-endpoint" "^4.4.12"
+ "@smithy/middleware-stack" "^4.2.8"
+ "@smithy/protocol-http" "^5.3.8"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-stream" "^4.5.10"
+ tslib "^2.6.2"
"@smithy/smithy-client@^4.6.3", "@smithy/smithy-client@^4.6.4":
version "4.6.4"
resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.6.4.tgz#3a66bb71c91dadf1806adab664ba2e164a1139ab"
@@ -3656,19 +4304,6 @@
"@smithy/util-stream" "^4.5.6"
tslib "^2.6.2"
-"@smithy/smithy-client@^4.9.8":
- version "4.9.8"
- resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.9.8.tgz#a6845215c982cd6331f485c5d7f23bc0b4f498f3"
- integrity sha512-8xgq3LgKDEFoIrLWBho/oYKyWByw9/corz7vuh1upv7ZBm0ZMjGYBhbn6v643WoIqA9UTcx5A5htEp/YatUwMA==
- dependencies:
- "@smithy/core" "^3.18.5"
- "@smithy/middleware-endpoint" "^4.3.12"
- "@smithy/middleware-stack" "^4.2.5"
- "@smithy/protocol-http" "^5.3.5"
- "@smithy/types" "^4.9.0"
- "@smithy/util-stream" "^4.5.6"
- tslib "^2.6.2"
-
"@smithy/types@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@smithy/types/-/types-1.2.0.tgz#9dc65767b0ee3d6681704fcc67665d6fc9b6a34e"
@@ -3745,6 +4380,15 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/url-parser@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.8.tgz#b44267cd704abe114abcd00580acdd9e4acc1177"
+ integrity sha512-NQho9U68TGMEU639YkXnVMV3GEFFULmmaWdlu1E9qzyIePOHsoSnagTGSDv1Zi8DCNN6btxOSdgmy5E/hsZwhA==
+ dependencies:
+ "@smithy/querystring-parser" "^4.2.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/util-base64@^4.1.0":
version "4.1.0"
resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.1.0.tgz#5965026081d9aef4a8246f5702807570abe538b2"
@@ -3856,6 +4500,16 @@
bowser "^2.11.0"
tslib "^2.6.2"
+"@smithy/util-defaults-mode-browser@^4.3.26", "@smithy/util-defaults-mode-browser@^4.3.28":
+ version "4.3.28"
+ resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.28.tgz#36903b2c5ae11d41b1bb3e1f899a062389feb8ff"
+ integrity sha512-/9zcatsCao9h6g18p/9vH9NIi5PSqhCkxQ/tb7pMgRFnqYp9XUOyOlGPDMHzr8n5ih6yYgwJEY2MLEobUgi47w==
+ dependencies:
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/smithy-client" "^4.11.1"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/util-defaults-mode-browser@^4.3.4":
version "4.3.4"
resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.4.tgz#ed96651c32ac0de55b066fcb07a296837373212f"
@@ -3902,6 +4556,19 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/util-defaults-mode-node@^4.2.29", "@smithy/util-defaults-mode-node@^4.2.31":
+ version "4.2.31"
+ resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.31.tgz#edb1297274e334af44783f4a3c78d2e890b328bb"
+ integrity sha512-JTvoApUXA5kbpceI2vuqQzRjeTbLpx1eoa5R/YEZbTgtxvIB7AQZxFJ0SEyfCpgPCyVV9IT7we+ytSeIB3CyWA==
+ dependencies:
+ "@smithy/config-resolver" "^4.4.6"
+ "@smithy/credential-provider-imds" "^4.2.8"
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/property-provider" "^4.2.8"
+ "@smithy/smithy-client" "^4.11.1"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/util-defaults-mode-node@^4.2.6":
version "4.2.6"
resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.6.tgz#01b7ff4605f6f981972083fee22d036e5dc4be38"
@@ -3942,6 +4609,15 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/util-endpoints@^3.2.8":
+ version "3.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.8.tgz#5650bda2adac989ff2e562606088c5de3dcb1b36"
+ integrity sha512-8JaVTn3pBDkhZgHQ8R0epwWt+BqPSLCjdjXXusK1onwJlRuN69fbvSK66aIKKO7SwVFM6x2J2ox5X8pOaWcUEw==
+ dependencies:
+ "@smithy/node-config-provider" "^4.3.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/util-hex-encoding@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-1.1.0.tgz#b5ba919aa076a3fd5e93e368e34ae2b732fa2090"
@@ -4052,6 +4728,15 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/util-retry@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.8.tgz#23f3f47baf0681233fd0c37b259e60e268c73b11"
+ integrity sha512-CfJqwvoRY0kTGe5AkQokpURNCT1u/MkRzMTASWMPPo2hNSnKtF1D45dQl3DE2LKLr4m+PW9mCeBMJr5mCAVThg==
+ dependencies:
+ "@smithy/service-error-classification" "^4.2.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/util-stream@^4.3.2":
version "4.3.2"
resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.3.2.tgz#7ce40c266b1e828d73c27e545959cda4f42fd61f"
@@ -4066,6 +4751,20 @@
"@smithy/util-utf8" "^4.1.0"
tslib "^2.6.2"
+"@smithy/util-stream@^4.5.10":
+ version "4.5.10"
+ resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.10.tgz#3a7b56f0bdc3833205f80fea67d8e76756ea055b"
+ integrity sha512-jbqemy51UFSZSp2y0ZmRfckmrzuKww95zT9BYMmuJ8v3altGcqjwoV1tzpOwuHaKrwQrCjIzOib499ymr2f98g==
+ dependencies:
+ "@smithy/fetch-http-handler" "^5.3.9"
+ "@smithy/node-http-handler" "^4.4.8"
+ "@smithy/types" "^4.12.0"
+ "@smithy/util-base64" "^4.3.0"
+ "@smithy/util-buffer-from" "^4.2.0"
+ "@smithy/util-hex-encoding" "^4.2.0"
+ "@smithy/util-utf8" "^4.2.0"
+ tslib "^2.6.2"
+
"@smithy/util-stream@^4.5.4":
version "4.5.4"
resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.4.tgz#bfc60e2714c2065b8e7e91ca921cc31c73efdbd4"
@@ -4180,6 +4879,15 @@
"@smithy/types" "^4.9.0"
tslib "^2.6.2"
+"@smithy/util-waiter@^4.2.8":
+ version "4.2.8"
+ resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.8.tgz#35d7bd8b2be7a2ebc12d8c38a0818c501b73e928"
+ integrity sha512-n+lahlMWk+aejGuax7DPWtqav8HYnWxQwR+LCG2BgCUmaGcTe9qZCFsmw8TMg9iG75HOwhrJCX9TCJRLH+Yzqg==
+ dependencies:
+ "@smithy/abort-controller" "^4.2.8"
+ "@smithy/types" "^4.12.0"
+ tslib "^2.6.2"
+
"@smithy/uuid@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@smithy/uuid/-/uuid-1.0.0.tgz#a0fd3aa879d57e2f2fd6a7308deee864a412e1cf"
@@ -4640,14 +5348,14 @@ arraybuffer.prototype.slice@^1.0.4:
optionalDependencies:
ioctl "^2.0.2"
-"arsenal@git+https://github.com/scality/Arsenal#8.3.0-preview.1":
- version "8.3.0-preview.1"
- resolved "git+https://github.com/scality/Arsenal#00033b55fc22d8e58ab38211842fc0ccf41b9766"
+"arsenal@git+https://github.com/scality/Arsenal#8.3.0":
+ version "8.3.0"
+ resolved "git+https://github.com/scality/Arsenal#7c6c73a01c37e241e0e054edbdc9e3a379c16a77"
dependencies:
- "@aws-sdk/client-kms" "^3.901.0"
- "@aws-sdk/client-s3" "^3.901.0"
- "@aws-sdk/credential-providers" "^3.901.0"
- "@aws-sdk/lib-storage" "^3.937.0"
+ "@aws-sdk/client-kms" "^3.975.0"
+ "@aws-sdk/client-s3" "^3.975.0"
+ "@aws-sdk/credential-providers" "^3.975.0"
+ "@aws-sdk/lib-storage" "^3.975.0"
"@azure/identity" "^4.13.0"
"@azure/storage-blob" "^12.28.0"
"@js-sdsl/ordered-set" "^4.4.2"