diff --git a/extensions/mssql/package.json b/extensions/mssql/package.json index 7c34ca41217f..e191363df160 100644 --- a/extensions/mssql/package.json +++ b/extensions/mssql/package.json @@ -1714,6 +1714,7 @@ } }, "dependencies": { + "@aws-sdk/client-s3": "^3.490.0", "@microsoft/ads-extension-telemetry": "^3.0.1", "@microsoft/ads-service-downloader": "^1.2.1", "dataprotocol-client": "github:Microsoft/sqlops-dataprotocolclient#2.0.0", diff --git a/extensions/mssql/src/contracts.ts b/extensions/mssql/src/contracts.ts index fda925cca78a..5b4a1c3f06ac 100644 --- a/extensions/mssql/src/contracts.ts +++ b/extensions/mssql/src/contracts.ts @@ -10,6 +10,7 @@ import { ConnectParams } from 'dataprotocol-client/lib/protocol'; import * as mssql from 'mssql'; import { DatabaseFileData } from 'mssql'; import { BackupResponse } from 'azdata'; +import { CredentialInfo } from 'azdata'; // ------------------------------- < Telemetry Sent Event > ------------------------------------ @@ -1725,6 +1726,23 @@ export interface PurgeQueryStoreDataRequestParams { database: string; } +export namespace CreateCredentialRequest { + export const type = new RequestType('objectManagement/createCredentialRequest'); +} + +export interface CreateCredentialRequestParams { + credentialInfo: CredentialInfo; + connectionUri: string; +} + +export namespace GetCredentialNamesRequest { + export const type = new RequestType('objectManagement/getCredentialNamesRequest'); +} + +export interface GetCredentialNamesRequestParams { + connectionUri: string; +} + // ------------------------------- < Object Management > ------------------------------------ // ------------------------------- < Encryption IV/KEY updation Event > ------------------------------------ diff --git a/extensions/mssql/src/mssql.d.ts b/extensions/mssql/src/mssql.d.ts index c15789a1867e..b40efbdd07fc 100644 --- a/extensions/mssql/src/mssql.d.ts +++ b/extensions/mssql/src/mssql.d.ts @@ -1038,6 +1038,17 @@ declare module 'mssql' { * @param database The target database. */ purgeQueryStoreData(connectionUri: string, database: string): Thenable; + /** + * Create a new credential + * @param connectionUri The URI of the server connection. + * @param credentialInfo + */ + createCredential(connectionUri: string, credentialInfo: azdata.CredentialInfo): Thenable; + /** + * Gets all the credentials that exist in the current server + * @param connectionUri The URI of the server connection. + */ + getCredentialNames(connectionUri: string): Thenable; } /** diff --git a/extensions/mssql/src/objectManagement/localizedConstants.ts b/extensions/mssql/src/objectManagement/localizedConstants.ts index 6a8b01cc57f3..8c224fcdcaa1 100644 --- a/extensions/mssql/src/objectManagement/localizedConstants.ts +++ b/extensions/mssql/src/objectManagement/localizedConstants.ts @@ -344,6 +344,7 @@ export const RestorePlanSectionText = localize('objectManagement.restoreDatabase export const RestoreFromBackupFileOptionText = localize('objectManagement.restoreDatabase.restoreFromBackupFileOptionText', "Backup file"); export const RestoreFromDatabaseOptionText = localize('objectManagement.restoreDatabase.restoreFromDatabaseOptionText', "Database"); export const RestoreFromUrlText = localize('objectManagement.restoreDatabase.restoreFromUrlText', "URL"); +export const RestoreFromS3UrlText = localize('objectManagement.restoreDatabase.restoreFromS3UrlText', "S3 URL"); export const BackupFolderPathTitle = localize('objectManagement.restoreDatabase.backupFolderPathTitle', "Please enter one or more file paths separated by commas"); export const RestoreDatabaseFilesAsText = localize('objectManagement.restoreDatabase.restoreDatabaseFilesAsText', "Restore database files as"); export const RestoreDatabaseFileDetailsText = localize('objectManagement.restoreDatabase.restoreDatabaseFileDetailsText', "Restore database file Details"); @@ -600,6 +601,17 @@ export const NotAvailableText = localize('objectManagement.databaseProperties.no export const PurgeQueryStoreDataMessage = (databaseName: string) => localize('objectManagement.databaseProperties.purgeQueryStoreDataMessage', "Are you sure you want to purge the Query Store data from '{0}'?", databaseName); export const fileGroupsNameInput = localize('objectManagement.filegroupsNameInput', "Filegroup Name"); +// S3 credentials +export const SelectS3BackupFileDialogTitle = localize('objectManagement.selectS3BackupFileDialogTitle', "Select S3 Storage Backup File"); +export const RegionSpecificEndpointText = localize('objectManagement.regionSpecificEndpointLabel', "Region-specific endpoint"); +export const SecretKeyText = localize('objectManagement.secretKeyLabel', "Secret Key"); +export const AccessKeyText = localize('objectManagement.accessKeyLabel', "Access Key"); +export const RegionText = localize('objectManagement.regionLabel', "Region"); +export const AddCredentialsText = localize('objectManagement.addCredentialsLabel', "Add Credentials"); +export const SelectS3BucketText = localize('objectManagement.SelectS3BucketLabel', "Select S3 Bucket"); +export const SelectBackupFileText = localize('objectManagement.SelectBackupFileLabel', "Select Backup File"); +export const InvalidS3UrlError = localize('objectManagement.InvalidS3UrlError', "Invalid S3 endpoint"); + // Util functions export function getNodeTypeDisplayName(type: string, inTitle: boolean = false): string { switch (type) { diff --git a/extensions/mssql/src/objectManagement/objectManagementService.ts b/extensions/mssql/src/objectManagement/objectManagementService.ts index f7087291987f..560de8419af3 100644 --- a/extensions/mssql/src/objectManagement/objectManagementService.ts +++ b/extensions/mssql/src/objectManagement/objectManagementService.ts @@ -12,6 +12,7 @@ import { ObjectManagement, IObjectManagementService, DatabaseFileData, BackupInf import { ClientCapabilities } from 'vscode-languageclient'; import { AppContext } from '../appContext'; import { BackupResponse } from 'azdata'; +import { CredentialInfo } from 'azdata'; export class ObjectManagementService extends BaseService implements IObjectManagementService { public static asFeature(context: AppContext): ISqlOpsFeature { @@ -106,6 +107,16 @@ export class ObjectManagementService extends BaseService implements IObjectManag const params: contracts.PurgeQueryStoreDataRequestParams = { connectionUri, database }; return this.runWithErrorHandling(contracts.PurgeQueryStoreDataRequest.type, params); } + + async createCredential(connectionUri: string, credentialInfo: azdata.CredentialInfo): Promise { + const params: contracts.CreateCredentialRequestParams = { connectionUri, credentialInfo }; + return this.runWithErrorHandling(contracts.CreateCredentialRequest.type, params); + } + + async getCredentialNames(connectionUri: string): Promise { + const params: contracts.GetCredentialNamesRequestParams = { connectionUri }; + return this.runWithErrorHandling(contracts.GetCredentialNamesRequest.type, params); + } } const ServerLevelSecurableTypes: SecurableTypeMetadata[] = [ @@ -305,6 +316,14 @@ export class TestObjectManagementService implements IObjectManagementService { return this.delayAndResolve([]); } + async createCredential(connectionUri: string, credentialInfo: CredentialInfo): Promise { + return this.delayAndResolve(); + } + + async getCredentialNames(connectionUri: string): Promise { + return this.delayAndResolve([]); + } + private generateSearchResult(objectType: ObjectManagement.NodeType, schema: string | undefined, count: number): ObjectManagement.SearchResultItem[] { let items: ObjectManagement.SearchResultItem[] = []; for (let i = 0; i < count; i++) { diff --git a/extensions/mssql/src/objectManagement/ui/S3AddBackupFileDialog.ts b/extensions/mssql/src/objectManagement/ui/S3AddBackupFileDialog.ts new file mode 100644 index 000000000000..25b9cbeea8ae --- /dev/null +++ b/extensions/mssql/src/objectManagement/ui/S3AddBackupFileDialog.ts @@ -0,0 +1,177 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as azdata from 'azdata'; +import * as vscode from 'vscode'; +import * as localizedConstants from '../localizedConstants'; +import { DefaultInputWidth, DialogBase } from '../../ui/dialogBase'; +import * as awsClient from '@aws-sdk/client-s3'; +import { IObjectManagementService } from 'mssql'; + +export interface S3AddBackupFileDialogResult { + s3Url: vscode.Uri; + secretKey: string; + accessKey: string; + backupFilePath: string; +} + +export class S3AddBackupFileDialog extends DialogBase { + private s3UrlInputBox: azdata.InputBoxComponent; + private secretKeyInputBox: azdata.InputBoxComponent; + private accessKeyInputBox: azdata.InputBoxComponent; + private credentialButton: azdata.ButtonComponent; + private regionInputBox: azdata.InputBoxComponent; + private bucketDropdown: azdata.DropDownComponent; + private backupFilesDropdown: azdata.DropDownComponent; + private result: S3AddBackupFileDialogResult; + private objectManagementService: IObjectManagementService; + private credentialInfo: azdata.CredentialInfo; + private connectionUri: string; + private s3Client: awsClient.S3Client; + + constructor(objectManagementService: IObjectManagementService, connectionUri: string) { + super(localizedConstants.SelectS3BackupFileDialogTitle, localizedConstants.SelectS3BackupFileDialogTitle); + this.result = { + s3Url: undefined, + secretKey: undefined, + accessKey: undefined, + backupFilePath: undefined + }; + + // Relabel Cancel button to Back, since clicking cancel on an inner dialog makes it seem like it would close the whole dialog overall + this.dialogObject.cancelButton.label = localizedConstants.BackButtonLabel; + this.dialogObject.okButton.label = localizedConstants.AddButton; + this.dialogObject.okButton.enabled = false; + + this.objectManagementService = objectManagementService; + this.connectionUri = connectionUri; + + this.dialogObject.okButton.onClick(async () => { + this.result.backupFilePath = `s3://${this.bucketDropdown.value}.s3.${this.regionInputBox.value}.amazonaws.com/${this.backupFilesDropdown.value}`; + this.credentialInfo = { + secret: `${this.result.accessKey}:${this.result.secretKey}`, + identity: 'S3 Access Key', + name: this.result.backupFilePath, + createDate: undefined, + dateLastModified: undefined, + providerName: 'MSSQL', + id: undefined + } + await this.objectManagementService.createCredential(this.connectionUri, this.credentialInfo); + }); + } + + protected async initialize(): Promise { + this.s3UrlInputBox = this.createInputBox(async (value) => { + this.result.s3Url = vscode.Uri.parse(encodeURI(value)); + this.regionInputBox.value = this.result.s3Url.toString().split(".")[1]; + this.enableCredentialButton(); + }, { + ariaLabel: localizedConstants.RegionSpecificEndpointText, + inputType: 'text', + placeHolder: 'https://s3.{region}.{server}.com' + }); + const s3UrlContainer = this.createLabelInputContainer(localizedConstants.RegionSpecificEndpointText, this.s3UrlInputBox, true); + + this.secretKeyInputBox = this.createInputBox(async (value) => { + this.result.secretKey = value; + this.enableCredentialButton(); + }, { + ariaLabel: localizedConstants.SecretKeyText, + inputType: 'password', + }); + const secretKeyContainer = this.createLabelInputContainer(localizedConstants.SecretKeyText, this.secretKeyInputBox, true); + + this.accessKeyInputBox = this.createInputBox(async (value) => { + this.result.accessKey = value; + this.enableCredentialButton(); + }, { + ariaLabel: localizedConstants.AccessKeyText, + inputType: 'password', + }); + const accessKeyContainer = this.createLabelInputContainer(localizedConstants.AccessKeyText, this.accessKeyInputBox, true); + + this.credentialButton = this.createButton(localizedConstants.AddCredentialsText, localizedConstants.AddCredentialsText, async () => { + this.createS3Client(); + await this.setBucketDropdown(); + }, false, DefaultInputWidth); + const credentialButtonContainer = this.createLabelInputContainer(' ', this.credentialButton); + + this.regionInputBox = this.createInputBox(async () => { }, { + ariaLabel: localizedConstants.RegionText, + inputType: 'text', + enabled: false + }); + const regionInputContainer = this.createLabelInputContainer(localizedConstants.RegionText, this.regionInputBox, true); + + this.bucketDropdown = this.createDropdown(localizedConstants.SelectS3BucketText, async (newValue) => { + await this.setBackupFilesDropdown(newValue); + }, [], '', false); + const bucketContainer = this.createLabelInputContainer(localizedConstants.SelectS3BucketText, this.bucketDropdown, true); + + this.backupFilesDropdown = this.createDropdown(localizedConstants.SelectBackupFileText, async () => { + // enable ok button once we have a backup file to restore + this.dialogObject.okButton.enabled = true; + }, [], '', false); + const backupFilesContainer = this.createLabelInputContainer(localizedConstants.SelectBackupFileText, this.backupFilesDropdown, true); + + this.formContainer.addItems([s3UrlContainer, secretKeyContainer, accessKeyContainer, credentialButtonContainer, regionInputContainer, bucketContainer, backupFilesContainer]); + } + + protected override async validateInput(): Promise { + const errors = await super.validateInput(); + if (!this.result.s3Url.toString().includes('s3') && (this.result.s3Url.scheme !== 'https' || this.result.s3Url.scheme !== 'https')) { + errors.push(localizedConstants.InvalidS3UrlError); + } + return errors; + } + + private createS3Client(): void { + this.s3Client = new awsClient.S3Client({ + forcePathStyle: true, + region: this.regionInputBox.value, + endpoint: this.result.s3Url.toString(), + credentials: { + accessKeyId: this.dialogResult.accessKey, + secretAccessKey: this.dialogResult.secretKey + } + }); + } + + private async getBucketList(): Promise { + let command = new awsClient.ListBucketsCommand({}); + let response = await this.s3Client.send(command); + return response.Buckets.map(r => r.Name); + } + /** + * Gets a list of all the backup files in S3 storage bucket + */ + private async getBackupFiles(bucket: string): Promise { + const input: awsClient.ListObjectVersionsCommandInput = { + Bucket: bucket + }; + let command = new awsClient.ListObjectsV2Command(input); + let response = await this.s3Client.send(command); + return response.Contents.filter(r => r.Key.endsWith('.bak')).map(r => r.Key); + } + + private async setBackupFilesDropdown(bucket: string): Promise { + this.backupFilesDropdown.values = await this.getBackupFiles(bucket); + this.backupFilesDropdown.enabled = true; + } + + private async setBucketDropdown(): Promise { + this.bucketDropdown.values = await this.getBucketList(); + this.bucketDropdown.enabled = true; + } + + private enableCredentialButton(): void { + this.credentialButton.enabled = (this.result.s3Url && this.result.accessKey && this.result.secretKey) !== undefined; + } + + public override get dialogResult(): S3AddBackupFileDialogResult | undefined { + return this.result; + } +} diff --git a/extensions/mssql/src/objectManagement/ui/restoreDatabaseDialog.ts b/extensions/mssql/src/objectManagement/ui/restoreDatabaseDialog.ts index 3c98313f0b68..76d7f096a251 100644 --- a/extensions/mssql/src/objectManagement/ui/restoreDatabaseDialog.ts +++ b/extensions/mssql/src/objectManagement/ui/restoreDatabaseDialog.ts @@ -13,8 +13,7 @@ import { IObjectManagementService, ObjectManagement } from 'mssql'; import { RestoreDatabaseFilesTabDocUrl, RestoreDatabaseGeneralTabDocUrl, RestoreDatabaseOptionsTabDocUrl } from '../constants'; import { isUndefinedOrNull } from '../../types'; import { MediaDeviceType } from '../constants'; - - +import { S3AddBackupFileDialog } from './S3AddBackupFileDialog'; const Dialog_Width = '1150px'; const RestoreInputsWidth = DefaultInputWidth + 650; @@ -32,7 +31,7 @@ export class RestoreDatabaseDialog extends ObjectManagementDialogBase { + this.backupFilePath = this.backupURLPath = ''; if (newValue === localizedConstants.RestoreFromBackupFileOptionText || newValue === localizedConstants.RestoreFromUrlText) { this.backupFilePathContainer.display = 'inline-flex'; this.restoreDatabase.enabled = false; - this.backupFilePathInput.value = newValue === localizedConstants.RestoreFromUrlText ? this.backupURLPath : this.backupFilePath; + this.backupFilePathInput.enabled = false; + const path = newValue === localizedConstants.RestoreFromUrlText ? this.backupURLPath : this.backupFilePath; + await this.backupFilePathInput.updateProperties({ + value: path, + values: [path] + }); } else if (newValue === localizedConstants.RestoreFromDatabaseOptionText) { this.backupFilePathContainer.display = 'none'; this.restoreDatabase.enabled = true; } + if (newValue === localizedConstants.RestoreFromS3UrlText) { + this.backupFilePathInput.enabled = true; + this.backupFilePathContainer.display = 'inline-flex'; + this.restoreDatabase.enabled = false; + const credentials = (await this.objectManagementService.getCredentialNames(this.options.connectionUri)).filter(url => url.startsWith('s3://')); + credentials.unshift(''); + await this.backupFilePathInput.updateProperties({ + value: '', + values: credentials + }); + } await this.updateNewRestorePlanToDialog(); }, restoreFromDropdownOptions, restoreFromDropdownOptions[0], !this.isManagedInstance, RestoreInputsWidth); containers.push(this.createLabelInputContainer(localizedConstants.RestoreFromText, this.restoreFrom)); // Backup file path - this.backupFilePathInput = this.createInputBox(async (newValue) => { + this.backupFilePathInput = this.createDropdown(localizedConstants.BackupFilePathText, async (newValue) => { await this.updateNewRestorePlanToDialog(); - }, { - ariaLabel: localizedConstants.BackupFilePathText, - inputType: 'text', - enabled: true, - value: '', - width: RestoreInputsWidth - 30, - placeHolder: localizedConstants.BackupFolderPathTitle - }); + }, [''], localizedConstants.BackupFolderPathTitle, false, RestoreInputsWidth - 30, false, true) + this.backupFilePathButton = this.createButton('...', localizedConstants.BrowseFilesLabel, async () => { - this.restoreFrom.value === localizedConstants.RestoreFromUrlText - ? await this.createBackupUrlFileBrowser() : await this.createBackupFileBrowser() + switch (this.restoreFrom.value) { + case localizedConstants.RestoreFromUrlText: + await this.createBackupUrlFileBrowser(); + break; + case localizedConstants.RestoreFromBackupFileOptionText: + await this.createBackupFileBrowser(); + break; + case localizedConstants.RestoreFromS3UrlText: + await this.createRestoreS3Url(); + break; + } + await this.updateNewRestorePlanToDialog(); }); this.backupFilePathButton.width = SelectFolderButtonWidth; this.backupFilePathContainer = this.createLabelInputContainer(localizedConstants.BackupFilePathText, this.backupFilePathInput); @@ -441,7 +461,11 @@ export class RestoreDatabaseDialog extends ObjectManagementDialogBase 0) { - this.backupFilePathInput.value = this.backupFilePath = filePath; + this.backupFilePath = filePath; + await this.backupFilePathInput.updateProperties({ + value: this.backupFilePath, + values: [this.backupFilePath] + }); } } @@ -462,16 +486,36 @@ export class RestoreDatabaseDialog extends ObjectManagementDialogBase { let backupPath = await azdata.window.openBackupUrlBrowserDialog(this.options.connectionUri, '', true); if (backupPath && !backupPath.includes('undefined')) { - this.backupFilePathInput.value = this.backupURLPath = backupPath; + this.backupURLPath = backupPath; + await this.backupFilePathInput.updateProperties({ + value: this.backupURLPath, + values: [this.backupURLPath] + }); } } + /** + * Creates a file browser and sets the path to the backup url Path + */ + private async createRestoreS3Url(): Promise { + const dialog = new S3AddBackupFileDialog(this.objectManagementService, this.options.connectionUri); + await dialog.open(); + let result = await dialog.waitForClose() + this.backupURLPath = result.backupFilePath; + const options = this.backupFilePathInput.values.map(s => s.toString()); + options.push(this.backupURLPath); + await this.backupFilePathInput.updateProperties({ + value: this.backupURLPath, + values: options + }); + } + /** * Gets current media devide type for database/backupFile or URL types * @returns Media device type */ private getRestoreMediaDeviceType(): MediaDeviceType { - return this.restoreFrom.value === localizedConstants.RestoreFromUrlText ? MediaDeviceType.Url : MediaDeviceType.File; + return this.restoreFrom.value === localizedConstants.RestoreFromBackupFileOptionText ? MediaDeviceType.File : MediaDeviceType.Url; } /** diff --git a/extensions/mssql/src/ui/dialogBase.ts b/extensions/mssql/src/ui/dialogBase.ts index 9cf0b071d9c3..3aaeb4efb7de 100644 --- a/extensions/mssql/src/ui/dialogBase.ts +++ b/extensions/mssql/src/ui/dialogBase.ts @@ -368,13 +368,14 @@ export abstract class DialogBase { return dropdown; } - protected createButton(label: string, ariaLabel: string, handler: () => Promise, enabled: boolean = true): azdata.ButtonComponent { + protected createButton(label: string, ariaLabel: string, handler: () => Promise, enabled: boolean = true, width?: number): azdata.ButtonComponent { const button = this.modelView.modelBuilder.button().withProps({ label: label, ariaLabel: ariaLabel, enabled: enabled, secondary: true, - CSSStyles: { 'min-width': '70px', 'margin-left': '5px' } + CSSStyles: { 'min-width': '70px', 'margin-left': '5px' }, + width: width }).component(); this.disposables.push(button.onDidClick(async () => { await handler(); diff --git a/extensions/mssql/yarn.lock b/extensions/mssql/yarn.lock index a3589973268f..76a4ad33123f 100644 --- a/extensions/mssql/yarn.lock +++ b/extensions/mssql/yarn.lock @@ -10,6 +10,582 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" +"@aws-crypto/crc32@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" + integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/crc32c@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz#016c92da559ef638a84a245eecb75c3e97cb664f" + integrity sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha1-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz#f9083c00782b24714f528b1a1fef2174002266a3" + integrity sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/client-s3@^3.490.0": + version "3.490.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.490.0.tgz#30fe38d6b8b3509aa91a5154318c849ec974c2fc" + integrity sha512-fBj3CJ3+5R+l/sc93Z9mKw8gM2b9K6vEhC9qSCG2XNymLd9YqlRft1peQ7VymrWywAHX3Koz1GCUrFEVNONiMw== + dependencies: + "@aws-crypto/sha1-browser" "3.0.0" + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.490.0" + "@aws-sdk/core" "3.490.0" + "@aws-sdk/credential-provider-node" "3.490.0" + "@aws-sdk/middleware-bucket-endpoint" "3.489.0" + "@aws-sdk/middleware-expect-continue" "3.489.0" + "@aws-sdk/middleware-flexible-checksums" "3.489.0" + "@aws-sdk/middleware-host-header" "3.489.0" + "@aws-sdk/middleware-location-constraint" "3.489.0" + "@aws-sdk/middleware-logger" "3.489.0" + "@aws-sdk/middleware-recursion-detection" "3.489.0" + "@aws-sdk/middleware-sdk-s3" "3.489.0" + "@aws-sdk/middleware-signing" "3.489.0" + "@aws-sdk/middleware-ssec" "3.489.0" + "@aws-sdk/middleware-user-agent" "3.489.0" + "@aws-sdk/region-config-resolver" "3.489.0" + "@aws-sdk/signature-v4-multi-region" "3.489.0" + "@aws-sdk/types" "3.489.0" + "@aws-sdk/util-endpoints" "3.489.0" + "@aws-sdk/util-user-agent-browser" "3.489.0" + "@aws-sdk/util-user-agent-node" "3.489.0" + "@aws-sdk/xml-builder" "3.485.0" + "@smithy/config-resolver" "^2.0.23" + "@smithy/core" "^1.2.2" + "@smithy/eventstream-serde-browser" "^2.0.16" + "@smithy/eventstream-serde-config-resolver" "^2.0.16" + "@smithy/eventstream-serde-node" "^2.0.16" + "@smithy/fetch-http-handler" "^2.3.2" + "@smithy/hash-blob-browser" "^2.0.17" + "@smithy/hash-node" "^2.0.18" + "@smithy/hash-stream-node" "^2.0.18" + "@smithy/invalid-dependency" "^2.0.16" + "@smithy/md5-js" "^2.0.18" + "@smithy/middleware-content-length" "^2.0.18" + "@smithy/middleware-endpoint" "^2.3.0" + "@smithy/middleware-retry" "^2.0.26" + "@smithy/middleware-serde" "^2.0.16" + "@smithy/middleware-stack" "^2.0.10" + "@smithy/node-config-provider" "^2.1.9" + "@smithy/node-http-handler" "^2.2.2" + "@smithy/protocol-http" "^3.0.12" + "@smithy/smithy-client" "^2.2.1" + "@smithy/types" "^2.8.0" + "@smithy/url-parser" "^2.0.16" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.1" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.24" + "@smithy/util-defaults-mode-node" "^2.0.32" + "@smithy/util-endpoints" "^1.0.8" + "@smithy/util-retry" "^2.0.9" + "@smithy/util-stream" "^2.0.24" + "@smithy/util-utf8" "^2.0.2" + "@smithy/util-waiter" "^2.0.16" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/client-sso@3.490.0": + version "3.490.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.490.0.tgz#f18720d6301b83de858afd9b7dd4a2452b18e8ad" + integrity sha512-yfxoHmCL1w/IKmFRfzCxdVCQrGlSQf4eei9iVEm5oi3iE8REFyPj3o/BmKQEHG3h2ITK5UbdYDb5TY4xoYHsyA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.490.0" + "@aws-sdk/middleware-host-header" "3.489.0" + "@aws-sdk/middleware-logger" "3.489.0" + "@aws-sdk/middleware-recursion-detection" "3.489.0" + "@aws-sdk/middleware-user-agent" "3.489.0" + "@aws-sdk/region-config-resolver" "3.489.0" + "@aws-sdk/types" "3.489.0" + "@aws-sdk/util-endpoints" "3.489.0" + "@aws-sdk/util-user-agent-browser" "3.489.0" + "@aws-sdk/util-user-agent-node" "3.489.0" + "@smithy/config-resolver" "^2.0.23" + "@smithy/core" "^1.2.2" + "@smithy/fetch-http-handler" "^2.3.2" + "@smithy/hash-node" "^2.0.18" + "@smithy/invalid-dependency" "^2.0.16" + "@smithy/middleware-content-length" "^2.0.18" + "@smithy/middleware-endpoint" "^2.3.0" + "@smithy/middleware-retry" "^2.0.26" + "@smithy/middleware-serde" "^2.0.16" + "@smithy/middleware-stack" "^2.0.10" + "@smithy/node-config-provider" "^2.1.9" + "@smithy/node-http-handler" "^2.2.2" + "@smithy/protocol-http" "^3.0.12" + "@smithy/smithy-client" "^2.2.1" + "@smithy/types" "^2.8.0" + "@smithy/url-parser" "^2.0.16" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.1" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.24" + "@smithy/util-defaults-mode-node" "^2.0.32" + "@smithy/util-endpoints" "^1.0.8" + "@smithy/util-retry" "^2.0.9" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@aws-sdk/client-sts@3.490.0": + version "3.490.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.490.0.tgz#17bf245705790fd632e4fa5d0cf0f312069f8a4d" + integrity sha512-n2vQ5Qu2qi2I0XMI+IH99ElpIRHOJTa1+sqNC4juMYxKQBMvw+EnsqUtaL3QvTHoyxNB/R7mpkeBB6SzPQ1TtA== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.490.0" + "@aws-sdk/credential-provider-node" "3.490.0" + "@aws-sdk/middleware-host-header" "3.489.0" + "@aws-sdk/middleware-logger" "3.489.0" + "@aws-sdk/middleware-recursion-detection" "3.489.0" + "@aws-sdk/middleware-user-agent" "3.489.0" + "@aws-sdk/region-config-resolver" "3.489.0" + "@aws-sdk/types" "3.489.0" + "@aws-sdk/util-endpoints" "3.489.0" + "@aws-sdk/util-user-agent-browser" "3.489.0" + "@aws-sdk/util-user-agent-node" "3.489.0" + "@smithy/config-resolver" "^2.0.23" + "@smithy/core" "^1.2.2" + "@smithy/fetch-http-handler" "^2.3.2" + "@smithy/hash-node" "^2.0.18" + "@smithy/invalid-dependency" "^2.0.16" + "@smithy/middleware-content-length" "^2.0.18" + "@smithy/middleware-endpoint" "^2.3.0" + "@smithy/middleware-retry" "^2.0.26" + "@smithy/middleware-serde" "^2.0.16" + "@smithy/middleware-stack" "^2.0.10" + "@smithy/node-config-provider" "^2.1.9" + "@smithy/node-http-handler" "^2.2.2" + "@smithy/protocol-http" "^3.0.12" + "@smithy/smithy-client" "^2.2.1" + "@smithy/types" "^2.8.0" + "@smithy/url-parser" "^2.0.16" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.1" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.24" + "@smithy/util-defaults-mode-node" "^2.0.32" + "@smithy/util-endpoints" "^1.0.8" + "@smithy/util-middleware" "^2.0.9" + "@smithy/util-retry" "^2.0.9" + "@smithy/util-utf8" "^2.0.2" + fast-xml-parser "4.2.5" + tslib "^2.5.0" + +"@aws-sdk/core@3.490.0": + version "3.490.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.490.0.tgz#387013cb6e4060b421c6b45bd33f419c5c8e4a76" + integrity sha512-TSBWkXtxMU7q1Zo6w3v5wIOr/sj7P5Jw3OyO7lJrFGsPsDC2xwpxkVqTesDxkzgMRypO52xjYEmveagn1xxBHg== + dependencies: + "@smithy/core" "^1.2.2" + "@smithy/protocol-http" "^3.0.12" + "@smithy/signature-v4" "^2.0.0" + "@smithy/smithy-client" "^2.2.1" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-env@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.489.0.tgz#69aeee7251047dbf3b1533514cb87c5fae333a47" + integrity sha512-5PqYsx9G5SB2tqPT9/z/u0EkF6D4wP6HTMWQs+DfMdmwXihrqQAgeYaTtV3KbXqb88p6sfacwxhUvE6+Rm494w== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-ini@3.490.0": + version "3.490.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.490.0.tgz#8a907f85a5d88614bc63eac15d0f86a6074fb9fe" + integrity sha512-7m63zyCpVqj9FsoDxWMWWRvL6c7zZzOcXYkHZmHujVVlmAXH0RT/vkXFkYgt+Ku+ov+v5NQrzwO5TmVoRt6O8g== + dependencies: + "@aws-sdk/credential-provider-env" "3.489.0" + "@aws-sdk/credential-provider-process" "3.489.0" + "@aws-sdk/credential-provider-sso" "3.490.0" + "@aws-sdk/credential-provider-web-identity" "3.489.0" + "@aws-sdk/types" "3.489.0" + "@smithy/credential-provider-imds" "^2.0.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-node@3.490.0": + version "3.490.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.490.0.tgz#fc1051f30e25eb00d63e40be79f5fd4b66d3bdfb" + integrity sha512-Gh33u2O5Xbout8G3z/Z5H/CZzdG1ophxf/XS3iMFxA1cazQ7swY1UMmGvB7Lm7upvax5anXouItD1Ph3gzKc4w== + dependencies: + "@aws-sdk/credential-provider-env" "3.489.0" + "@aws-sdk/credential-provider-ini" "3.490.0" + "@aws-sdk/credential-provider-process" "3.489.0" + "@aws-sdk/credential-provider-sso" "3.490.0" + "@aws-sdk/credential-provider-web-identity" "3.489.0" + "@aws-sdk/types" "3.489.0" + "@smithy/credential-provider-imds" "^2.0.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-process@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.489.0.tgz#f0c2b5b22a1ca364ec89cd7e469673824606dec4" + integrity sha512-3vKQYJZ5cZYjy0870CPmbmKRBgATw2xCygxhn4m4UDCjOXVXcGUtYD51DMWsvBo3S0W8kH+FIJV4yuEDMFqLFQ== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-sso@3.490.0": + version "3.490.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.490.0.tgz#0cb15aebf72bc7d253aa51dee6a888a2af38acda" + integrity sha512-3UUBUoPbFvT58IhS4Vb23omYj/QPNkjgxu9p9ruQ3KSjLkanI4w8t/l/jljA65q83P7CoLnM5UKG9L7RA8/V1Q== + dependencies: + "@aws-sdk/client-sso" "3.490.0" + "@aws-sdk/token-providers" "3.489.0" + "@aws-sdk/types" "3.489.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/credential-provider-web-identity@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.489.0.tgz#28e2ba4d1ee4de4d055875028ed205a2264611c1" + integrity sha512-mjIuE2Wg1H/ds0nXQ/7vfusEDudmdd8YzKZI1y5O4n60iZZtyB2RNIECtvLMx1EQAKclidY7/06qQkArrGau5Q== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-bucket-endpoint@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.489.0.tgz#80a06f1c229fae364b5916e47178d118340e0f51" + integrity sha512-6rJ5bpNMKo7sEKQ6p2DMbQwM+ahMYASRxfdyH7hs18blvlcS20H1RYpNmJMqPPjxMwUWruty2JPMIRl4DFcv8w== + dependencies: + "@aws-sdk/types" "3.489.0" + "@aws-sdk/util-arn-parser" "3.465.0" + "@smithy/node-config-provider" "^2.1.9" + "@smithy/protocol-http" "^3.0.12" + "@smithy/types" "^2.8.0" + "@smithy/util-config-provider" "^2.1.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-expect-continue@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.489.0.tgz#c03f1a867e836c8ca844fcb8c527d2d782d1b659" + integrity sha512-2RZfnVZFaGHwzPDQJsyf9SXufu1gUd4VsMhm7dC7SWF85XmpDrozbFznS/tD22QdtyWjerLoydZJMq229hpPqg== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/protocol-http" "^3.0.12" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-flexible-checksums@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.489.0.tgz#50413d053e7b62bef81772d6b0c00d5521cf4e30" + integrity sha512-Cy3rBUMr4P7raxzrJFWNRshfKrKV2EojawaC9Bfk/T8aFlV+FmVrRg4ISAXMOfS5pfy3xfAbvkzjOaeqCsGfrA== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@aws-crypto/crc32c" "3.0.0" + "@aws-sdk/types" "3.489.0" + "@smithy/is-array-buffer" "^2.0.0" + "@smithy/protocol-http" "^3.0.12" + "@smithy/types" "^2.8.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@aws-sdk/middleware-host-header@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.489.0.tgz#7c00fa49c6d359bdc9b4d27be09af29ac6700968" + integrity sha512-Cl7HJ1jhOfllwf0CRx1eB4ypRGMqdGKWpc0eSTXty7wWSvCdMZUhwfjQqu2bIOIlgYxg/gFu6TVmVZ6g4O8PlA== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/protocol-http" "^3.0.12" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-location-constraint@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.489.0.tgz#aa00bc9b2d7ab857b1b8405b1a688684f2c44ae7" + integrity sha512-NIVr+kHR2N6gxFeE3TNw2mEBxgj0N9xXBLy3dNYMMlAUvQlT/0z9HlC9+3XqcTS/Z5ElF/+pei6nqXTVt0He9A== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-logger@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.489.0.tgz#36855ec7ac8af4604f2a0b739358f0411878abea" + integrity sha512-+EVDnWese61MdImcBNAgz/AhTcIZJaska/xsU3GWU9CP905x4a4qZdB7fExFMDu1Jlz5pJqNteFYYHCFMJhHfg== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-recursion-detection@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.489.0.tgz#bdcbfcebd3d27aad2e0b2808af7c1d3d380c52a2" + integrity sha512-m4rU+fTzziQcu9DKjRNZ4nQlXENEd2ZnJblJV4ONdWqqEjbmOgOj3P6aCCQlJdIbzuNvX1FBOZ5tY59ZpERo7Q== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/protocol-http" "^3.0.12" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-sdk-s3@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.489.0.tgz#45c57501427f789cf8701b282e5e5136eb320c8b" + integrity sha512-/GGASx7mK9qEgy1znvleYMZKVqm3sOdGghqKdy2zgoGcH2jH+fZrLM0lDMT9bvdITmOCbJJs2rVHP3xm/ZWcXg== + dependencies: + "@aws-sdk/types" "3.489.0" + "@aws-sdk/util-arn-parser" "3.465.0" + "@smithy/node-config-provider" "^2.1.9" + "@smithy/protocol-http" "^3.0.12" + "@smithy/signature-v4" "^2.0.0" + "@smithy/smithy-client" "^2.2.1" + "@smithy/types" "^2.8.0" + "@smithy/util-config-provider" "^2.1.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-signing@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.489.0.tgz#ad92c3a4fb3afc2798b4f99a7ca6abaaf75461b8" + integrity sha512-rlHcWYZn6Ym3v/u0DvKNDiD7ogIzEsHlerm0lowTiQbszkFobOiUClRTALwvsUZdAAztl706qO1OKbnGnD6Ubw== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/property-provider" "^2.0.0" + "@smithy/protocol-http" "^3.0.12" + "@smithy/signature-v4" "^2.0.0" + "@smithy/types" "^2.8.0" + "@smithy/util-middleware" "^2.0.9" + tslib "^2.5.0" + +"@aws-sdk/middleware-ssec@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.489.0.tgz#9991f6189fa1d3bf360e24f8d958f5456e4da7ce" + integrity sha512-5RQg8dqERAmi1OfVEV9fbTA5NKmcvKDYP79YtH08IEFIsHWU1Y5NoqL7mXkkNyBrJNBVyasYijAbTzOuM707eg== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/middleware-user-agent@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.489.0.tgz#84b2f7e3038b631ecd9e3cddd0205d9b6a266444" + integrity sha512-M54Cv2fAN3GGgdfUjLtZ4wFUIrfM/ivbXv4DgpcNsacEQ2g4H+weQgKp41X7XZW8MWAzl+k1zJaryK69RYNQkQ== + dependencies: + "@aws-sdk/types" "3.489.0" + "@aws-sdk/util-endpoints" "3.489.0" + "@smithy/protocol-http" "^3.0.12" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/region-config-resolver@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.489.0.tgz#58bd9dfbe148e2de8bfd0e5e4a3719d56b594c85" + integrity sha512-UvrnB78XTz9ddby7mr0vuUHn2MO3VTjzaIu+GQhyedMGQU0QlIQrYOlzbbu4LC5rL1O8FxFLUxRe/AAjgwyuGw== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/node-config-provider" "^2.1.9" + "@smithy/types" "^2.8.0" + "@smithy/util-config-provider" "^2.1.0" + "@smithy/util-middleware" "^2.0.9" + tslib "^2.5.0" + +"@aws-sdk/signature-v4-multi-region@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.489.0.tgz#d36574d34bc084f29c19d3bc51acbd821767dda0" + integrity sha512-kYFM7Opu36EkFlzXdVNOBFpQApgnuaTu/U/qYhGyuzeD+HNnYgZEsd/tDro1DQ074jVy3GN9ttJSYxq5I4oTkA== + dependencies: + "@aws-sdk/middleware-sdk-s3" "3.489.0" + "@aws-sdk/types" "3.489.0" + "@smithy/protocol-http" "^3.0.12" + "@smithy/signature-v4" "^2.0.0" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/token-providers@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.489.0.tgz#69897270f71595449f665b9f40754dfa21ea7be1" + integrity sha512-hSgjB8CMQoA8EIQ0ripDjDtbBcWDSa+7vSBYPIzksyknaGERR/GUfGXLV2dpm5t17FgFG6irT5f3ZlBzarL8Dw== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/middleware-host-header" "3.489.0" + "@aws-sdk/middleware-logger" "3.489.0" + "@aws-sdk/middleware-recursion-detection" "3.489.0" + "@aws-sdk/middleware-user-agent" "3.489.0" + "@aws-sdk/region-config-resolver" "3.489.0" + "@aws-sdk/types" "3.489.0" + "@aws-sdk/util-endpoints" "3.489.0" + "@aws-sdk/util-user-agent-browser" "3.489.0" + "@aws-sdk/util-user-agent-node" "3.489.0" + "@smithy/config-resolver" "^2.0.23" + "@smithy/fetch-http-handler" "^2.3.2" + "@smithy/hash-node" "^2.0.18" + "@smithy/invalid-dependency" "^2.0.16" + "@smithy/middleware-content-length" "^2.0.18" + "@smithy/middleware-endpoint" "^2.3.0" + "@smithy/middleware-retry" "^2.0.26" + "@smithy/middleware-serde" "^2.0.16" + "@smithy/middleware-stack" "^2.0.10" + "@smithy/node-config-provider" "^2.1.9" + "@smithy/node-http-handler" "^2.2.2" + "@smithy/property-provider" "^2.0.0" + "@smithy/protocol-http" "^3.0.12" + "@smithy/shared-ini-file-loader" "^2.0.6" + "@smithy/smithy-client" "^2.2.1" + "@smithy/types" "^2.8.0" + "@smithy/url-parser" "^2.0.16" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-body-length-browser" "^2.0.1" + "@smithy/util-body-length-node" "^2.1.0" + "@smithy/util-defaults-mode-browser" "^2.0.24" + "@smithy/util-defaults-mode-node" "^2.0.32" + "@smithy/util-endpoints" "^1.0.8" + "@smithy/util-retry" "^2.0.9" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@aws-sdk/types@3.489.0", "@aws-sdk/types@^3.222.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.489.0.tgz#0fa29adaace3e407ac15428524aa67e9bd229f65" + integrity sha512-kcDtLfKog/p0tC4gAeqJqWxAiEzfe2LRPnKamvSG2Mjbthx4R/alE2dxyIq/wW+nvRv0fqR3OD5kD1+eVfdr/w== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@aws-sdk/util-arn-parser@3.465.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.465.0.tgz#2896f6b06f69770378586853c97a0f283cbb2e20" + integrity sha512-zOJ82vzDJFqBX9yZBlNeHHrul/kpx/DCoxzW5UBbZeb26kfV53QhMSoEmY8/lEbBqlqargJ/sgRC845GFhHNQw== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-endpoints@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.489.0.tgz#8adfa6da0cac973a8ca0f2c4aa66f7d587310acb" + integrity sha512-uGyG1u84ATX03mf7bT4xD9XD/vlYJGD5+RxMN/UpzeTfzXfh+jvCQWbOQ44z8ttFJWYQQqrLxkfpF/JgvALzLA== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/types" "^2.8.0" + "@smithy/util-endpoints" "^1.0.8" + tslib "^2.5.0" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.465.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.465.0.tgz#0471428fb5eb749d4b72c427f5726f7b61fb90eb" + integrity sha512-f+QNcWGswredzC1ExNAB/QzODlxwaTdXkNT5cvke2RLX8SFU5pYk6h4uCtWC0vWPELzOfMfloBrJefBzlarhsw== + dependencies: + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-browser@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.489.0.tgz#d59c3386c71ac08d658c123a1487cd6473c65627" + integrity sha512-85B9KMsuMpAZauzWQ16r52ZBAHYnznW6BVitnBglsibN7oJKn10Hggt4QGuRhvQFCxQ8YhvBl7r+vQGFO4hxIw== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/types" "^2.8.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@aws-sdk/util-user-agent-node@3.489.0": + version "3.489.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.489.0.tgz#bc8f96710aadec4f5e327817cf5945c473150621" + integrity sha512-CYdkBHig8sFNc0dv11Ni9WXvZQHeI5+z77OrDHKkbidFx/V4BDTuwZw4K1vWg62pzFOEfzunJFiULRcDZWJR3w== + dependencies: + "@aws-sdk/types" "3.489.0" + "@smithy/node-config-provider" "^2.1.9" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@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" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/xml-builder@3.485.0": + version "3.485.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.485.0.tgz#e1fc573d6cb6b76e0ba6a2b63bc67bc65e52c3e0" + integrity sha512-xQexPM6LINOIkf3NLFywplcbApifZRMWFN41TDWYSNgCUa5uC9fntfenw8N/HTx1n+McRCWSAFBTjDqY/2OLCQ== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + "@babel/code-frame@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" @@ -274,6 +850,470 @@ istanbul-reports "^3.0.0" mocha "^10.2.0" +"@smithy/abort-controller@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.0.16.tgz#31a86748e0c55a97ead1d179040160c6fc55ba1b" + integrity sha512-4foO7738k8kM9flMHu3VLabqu7nPgvIj8TB909S0CnKx0YZz/dcDH3pZ/4JHdatfxlZdKF1JWOYCw9+v3HVVsw== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/chunked-blob-reader-native@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.0.1.tgz#0599eaed8c2cd15c7ab43a1838cef1258ff27133" + integrity sha512-N2oCZRglhWKm7iMBu7S6wDzXirjAofi7tAd26cxmgibRYOBS4D3hGfmkwCpHdASZzwZDD8rluh0Rcqw1JeZDRw== + dependencies: + "@smithy/util-base64" "^2.0.1" + tslib "^2.5.0" + +"@smithy/chunked-blob-reader@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.0.0.tgz#c44fe2c780eaf77f9e5381d982ac99a880cce51b" + integrity sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg== + dependencies: + tslib "^2.5.0" + +"@smithy/config-resolver@^2.0.23": + version "2.0.23" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.0.23.tgz#45496bea277c00d52efcdf88a5f483b3d6a7e62d" + integrity sha512-XakUqgtP2YY8Mi+Nlif5BiqJgWdvfxJafSpOSQeCOMizu+PUhE4fBQSy6xFcR+eInrwVadaABNxoJyGUMn15ew== + dependencies: + "@smithy/node-config-provider" "^2.1.9" + "@smithy/types" "^2.8.0" + "@smithy/util-config-provider" "^2.1.0" + "@smithy/util-middleware" "^2.0.9" + tslib "^2.5.0" + +"@smithy/core@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.2.2.tgz#9e10d6055f2a05c2c677737b9b0c4f7507a80c75" + integrity sha512-uLjrskLT+mWb0emTR5QaiAIxVEU7ndpptDaVDrTwwhD+RjvHhjIiGQ3YL5jKk1a5VSDQUA2RGkXvJ6XKRcz6Dg== + dependencies: + "@smithy/middleware-endpoint" "^2.3.0" + "@smithy/middleware-retry" "^2.0.26" + "@smithy/middleware-serde" "^2.0.16" + "@smithy/protocol-http" "^3.0.12" + "@smithy/smithy-client" "^2.2.1" + "@smithy/types" "^2.8.0" + "@smithy/util-middleware" "^2.0.9" + tslib "^2.5.0" + +"@smithy/credential-provider-imds@^2.0.0", "@smithy/credential-provider-imds@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.1.5.tgz#18e238067c0d9c5598a12fabb13ce1545554e691" + integrity sha512-VfvE6Wg1MUWwpTZFBnUD7zxvPhLY8jlHCzu6bCjlIYoWgXCDzZAML76IlZUEf45nib3rjehnFgg0s1rgsuN/bg== + dependencies: + "@smithy/node-config-provider" "^2.1.9" + "@smithy/property-provider" "^2.0.17" + "@smithy/types" "^2.8.0" + "@smithy/url-parser" "^2.0.16" + tslib "^2.5.0" + +"@smithy/eventstream-codec@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.0.16.tgz#c213e25d7f05f1e6b40675835a141d23d3f3b6ca" + integrity sha512-umYh5pdCE9GHgiMAH49zu9wXWZKNHHdKPm/lK22WYISTjqu29SepmpWNmPiBLy/yUu4HFEGJHIFrDWhbDlApaw== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@smithy/types" "^2.8.0" + "@smithy/util-hex-encoding" "^2.0.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-browser@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.0.16.tgz#f265c3605a861d7f4feaa8657f475c8da7c9f45e" + integrity sha512-W+BdiN728R57KuZOcG0GczpIOEFf8S5RP/OdVH7T3FMCy8HU2bBU0vB5xZZR5c00VRdoeWrohNv3XlHoZuGRoA== + dependencies: + "@smithy/eventstream-serde-universal" "^2.0.16" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-config-resolver@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.0.16.tgz#0a6fd6312605de6f0505d3fdec4235f7c4388413" + integrity sha512-8qrE4nh+Tg6m1SMFK8vlzoK+8bUFTlIhXidmmQfASMninXW3Iu0T0bI4YcIk4nLznHZdybQ0qGydIanvVZxzVg== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-node@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.0.16.tgz#24bca6ab0dbf7d81b42bc3435db42e36385c7480" + integrity sha512-NRNQuOa6mQdFSkqzY0IV37swHWx0SEoKxFtUfdZvfv0AVQPlSw4N7E3kcRSCpnHBr1kCuWWirdDlWcjWuD81MA== + dependencies: + "@smithy/eventstream-serde-universal" "^2.0.16" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/eventstream-serde-universal@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.0.16.tgz#e554aa59d0c3bdd6f8b9eae9b2e3d6c6ae702611" + integrity sha512-ZyLnGaYQMLc75j9kKEVMJ3X6bdBE9qWxhZdTXM5RIltuytxJC3FaOhawBxjE+IL1enmWSIohHGZCm/pLwEliQA== + dependencies: + "@smithy/eventstream-codec" "^2.0.16" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/fetch-http-handler@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.3.2.tgz#930ee473b2a43d0bcf62c3b659f38122442ad514" + integrity sha512-O9R/OlnAOTsnysuSDjt0v2q6DcSvCz5cCFC/CFAWWcLyBwJDeFyGTCTszgpQTb19+Fi8uRwZE5/3ziAQBFeDMQ== + dependencies: + "@smithy/protocol-http" "^3.0.12" + "@smithy/querystring-builder" "^2.0.16" + "@smithy/types" "^2.8.0" + "@smithy/util-base64" "^2.0.1" + tslib "^2.5.0" + +"@smithy/hash-blob-browser@^2.0.17": + version "2.0.17" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-2.0.17.tgz#4249f1fba27cb7c40dbf1fa38a31e61dbf9149b9" + integrity sha512-/mPpv1sRiRDdjO4zZuO8be6eeabmg5AVgKDfnmmqkpBtRyMGSJb968fjRuHt+FRAsIGywgIKJFmUUAYjhsi1oQ== + dependencies: + "@smithy/chunked-blob-reader" "^2.0.0" + "@smithy/chunked-blob-reader-native" "^2.0.1" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/hash-node@^2.0.18": + version "2.0.18" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.0.18.tgz#4bf4ec392b5d6715426338b6828e6b25cd939bd5" + integrity sha512-gN2JFvAgnZCyDN9rJgcejfpK0uPPJrSortVVVVWsru9whS7eQey6+gj2eM5ln2i6rHNntIXzal1Fm9XOPuoaKA== + dependencies: + "@smithy/types" "^2.8.0" + "@smithy/util-buffer-from" "^2.0.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/hash-stream-node@^2.0.18": + version "2.0.18" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-2.0.18.tgz#6f7b214e785b8cf445e5095f9a9b9b38e689e7ce" + integrity sha512-OuFk+ITpv8CtxGjQcS8GA04faNycu9UMm6YobvQzjeEoXZ0dLF6sRfuzD+3S8RHPKpTyLuXtKG1+GiJycZ5TcA== + dependencies: + "@smithy/types" "^2.8.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/invalid-dependency@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.0.16.tgz#b32a6284ef4ce48129d00a6d63f977ec3e05befb" + integrity sha512-apEHakT/kmpNo1VFHP4W/cjfeP9U0x5qvfsLJubgp7UM/gq4qYp0GbqdE7QhsjUaYvEnrftRqs7+YrtWreV0wA== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/is-array-buffer@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.0.0.tgz#8fa9b8040651e7ba0b2f6106e636a91354ff7d34" + integrity sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug== + dependencies: + tslib "^2.5.0" + +"@smithy/md5-js@^2.0.18": + version "2.0.18" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-2.0.18.tgz#85f26fc83e75b440144341292cbb75ddf69dd0de" + integrity sha512-bHwZ8/m6RbERQdVW5rJ2LzeW8qxfXv6Q/S7Fiudhso4pWRrksqLx3nsGZw7bmqqfN4zLqkxydxSa9+4c7s5zxg== + dependencies: + "@smithy/types" "^2.8.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/middleware-content-length@^2.0.18": + version "2.0.18" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.0.18.tgz#a3b13beb300290f5d0d48ace0f818e44261356fa" + integrity sha512-ZJ9uKPTfxYheTKSKYB+GCvcj+izw9WGzRLhjn8n254q0jWLojUzn7Vw0l4R/Gq7Wdpf/qmk/ptD+6CCXHNVCaw== + dependencies: + "@smithy/protocol-http" "^3.0.12" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/middleware-endpoint@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.3.0.tgz#135c30f38087ba52e692a73212854d0809ce1168" + integrity sha512-VsOAG2YQ8ykjSmKO+CIXdJBIWFo6AAvG6Iw95BakBTqk66/4BI7XyqLevoNSq/lZ6NgZv24sLmrcIN+fLDWBCg== + dependencies: + "@smithy/middleware-serde" "^2.0.16" + "@smithy/node-config-provider" "^2.1.9" + "@smithy/shared-ini-file-loader" "^2.2.8" + "@smithy/types" "^2.8.0" + "@smithy/url-parser" "^2.0.16" + "@smithy/util-middleware" "^2.0.9" + tslib "^2.5.0" + +"@smithy/middleware-retry@^2.0.26": + version "2.0.26" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.0.26.tgz#894cf86b0f5bc742e09c52df8df4c2941fbd9883" + integrity sha512-Qzpxo0U5jfNiq9iD38U3e2bheXwvTEX4eue9xruIvEgh+UKq6dKuGqcB66oBDV7TD/mfoJi9Q/VmaiqwWbEp7A== + dependencies: + "@smithy/node-config-provider" "^2.1.9" + "@smithy/protocol-http" "^3.0.12" + "@smithy/service-error-classification" "^2.0.9" + "@smithy/smithy-client" "^2.2.1" + "@smithy/types" "^2.8.0" + "@smithy/util-middleware" "^2.0.9" + "@smithy/util-retry" "^2.0.9" + tslib "^2.5.0" + uuid "^8.3.2" + +"@smithy/middleware-serde@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.0.16.tgz#a127e7fa48c0106bd7a81e1ea27e7193cb08e701" + integrity sha512-5EAd4t30pcc4M8TSSGq7q/x5IKrxfXR5+SrU4bgxNy7RPHQo2PSWBUco9C+D9Tfqp/JZvprRpK42dnupZafk2g== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/middleware-stack@^2.0.10": + version "2.0.10" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.0.10.tgz#fb7c660dcc921b61a77e6cb39ed3eada9ed38585" + integrity sha512-I2rbxctNq9FAPPEcuA1ntZxkTKOPQFy7YBPOaD/MLg1zCvzv21CoNxR0py6J8ZVC35l4qE4nhxB0f7TF5/+Ldw== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/node-config-provider@^2.1.9": + version "2.1.9" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.1.9.tgz#2e9e5ee7c4412be6696a74b26f9ed2a66e2a5fb4" + integrity sha512-tUyW/9xrRy+s7RXkmQhgYkAPMpTIF8izK4orhHjNFEKR3QZiOCbWB546Y8iB/Fpbm3O9+q0Af9rpywLKJOwtaQ== + dependencies: + "@smithy/property-provider" "^2.0.17" + "@smithy/shared-ini-file-loader" "^2.2.8" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/node-http-handler@^2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.2.2.tgz#f9f8cd49f270bc50a0de8a4587bbdaae1c7c4e80" + integrity sha512-XO58TO/Eul/IBQKFKaaBtXJi0ItEQQCT+NI4IiKHCY/4KtqaUT6y/wC1EvDqlA9cP7Dyjdj7FdPs4DyynH3u7g== + dependencies: + "@smithy/abort-controller" "^2.0.16" + "@smithy/protocol-http" "^3.0.12" + "@smithy/querystring-builder" "^2.0.16" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/property-provider@^2.0.0", "@smithy/property-provider@^2.0.17": + version "2.0.17" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.0.17.tgz#288475021613649811dc79a9fab4894be01cd069" + integrity sha512-+VkeZbVu7qtQ2DjI48Qwaf9fPOr3gZIwxQpuLJgRRSkWsdSvmaTCxI3gzRFKePB63Ts9r4yjn4HkxSCSkdWmcQ== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/protocol-http@^3.0.12": + version "3.0.12" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.0.12.tgz#9f606efd191593f6dbde58fa822465b92b8afbca" + integrity sha512-Xz4iaqLiaBfbQpB9Hgi3VcZYbP7xRDXYhd8XWChh4v94uw7qwmvlxdU5yxzfm6ACJM66phHrTbS5TVvj5uQ72w== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/querystring-builder@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.0.16.tgz#1a9a02b1fb938688cdab5e585cb7c62c8054bc41" + integrity sha512-Q/GsJT0C0mijXMRs7YhZLLCP5FcuC4797lYjKQkME5CZohnLC4bEhylAd2QcD3gbMKNjCw8+T2I27WKiV/wToA== + dependencies: + "@smithy/types" "^2.8.0" + "@smithy/util-uri-escape" "^2.0.0" + tslib "^2.5.0" + +"@smithy/querystring-parser@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.0.16.tgz#90d9589539ffe8fb4864c8bf6f1f1c9def962a40" + integrity sha512-c4ueAuL6BDYKWpkubjrQthZKoC3L5kql5O++ovekNxiexRXTlLIVlCR4q3KziOktLIw66EU9SQljPXd/oN6Okg== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/service-error-classification@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.0.9.tgz#4459433f6727f1b7e953a9bab189672b3b157224" + integrity sha512-0K+8GvtwI7VkGmmInPydM2XZyBfIqLIbfR7mDQ+oPiz8mIinuHbV6sxOLdvX1Jv/myk7XTK9orgt3tuEpBu/zg== + dependencies: + "@smithy/types" "^2.8.0" + +"@smithy/shared-ini-file-loader@^2.0.6", "@smithy/shared-ini-file-loader@^2.2.8": + version "2.2.8" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.8.tgz#b5fa153d4920a3c740215c60ad1667972d67a164" + integrity sha512-E62byatbwSWrtq9RJ7xN40tqrRKDGrEL4EluyNpaIDvfvet06a/QC58oHw2FgVaEgkj0tXZPjZaKrhPfpoU0qw== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/signature-v4@^2.0.0": + version "2.0.19" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.0.19.tgz#2b926fc00b2e61ec586289fe28927e10766a3afd" + integrity sha512-nwc3JihdM+kcJjtORv/n7qRHN2Kfh7S2RJI2qr8pz9UcY5TD8rSCRGQ0g81HgyS3jZ5X9U/L4p014P3FonBPhg== + dependencies: + "@smithy/eventstream-codec" "^2.0.16" + "@smithy/is-array-buffer" "^2.0.0" + "@smithy/types" "^2.8.0" + "@smithy/util-hex-encoding" "^2.0.0" + "@smithy/util-middleware" "^2.0.9" + "@smithy/util-uri-escape" "^2.0.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/smithy-client@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.2.1.tgz#ed1aa11f36dae2ca9b3eabcbc498bcc96d79fdfd" + integrity sha512-SpD7FLK92XV2fon2hMotaNDa2w5VAy5/uVjP9WFmjGSgWM8pTPVkHcDl1yFs5Z8LYbij0FSz+DbCBK6i+uXXUA== + dependencies: + "@smithy/middleware-endpoint" "^2.3.0" + "@smithy/middleware-stack" "^2.0.10" + "@smithy/protocol-http" "^3.0.12" + "@smithy/types" "^2.8.0" + "@smithy/util-stream" "^2.0.24" + tslib "^2.5.0" + +"@smithy/types@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.8.0.tgz#bdbaa0a54c9c3538d6c763c6f32d3e4f76fe0df9" + integrity sha512-h9sz24cFgt/W1Re22OlhQKmUZkNh244ApgRsUDYinqF8R+QgcsBIX344u2j61TPshsTz3CvL6HYU1DnQdsSrHA== + dependencies: + tslib "^2.5.0" + +"@smithy/url-parser@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.0.16.tgz#25f860effe465acbbe61beb69b6def052878ee58" + integrity sha512-Wfz5WqAoRT91TjRy1JeLR0fXtkIXHGsMbgzKFTx7E68SrZ55TB8xoG+vm11Ru4gheFTMXjAjwAxv1jQdC+pAQA== + dependencies: + "@smithy/querystring-parser" "^2.0.16" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/util-base64@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.0.1.tgz#57f782dafc187eddea7c8a1ff2a7c188ed1a02c4" + integrity sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ== + dependencies: + "@smithy/util-buffer-from" "^2.0.0" + tslib "^2.5.0" + +"@smithy/util-body-length-browser@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.1.tgz#424485cc81c640d18c17c683e0e6edb57e8e2ab9" + integrity sha512-NXYp3ttgUlwkaug4bjBzJ5+yIbUbUx8VsSLuHZROQpoik+gRkIBeEG9MPVYfvPNpuXb/puqodeeUXcKFe7BLOQ== + dependencies: + tslib "^2.5.0" + +"@smithy/util-body-length-node@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.1.0.tgz#313a5f7c5017947baf5fa018bfc22628904bbcfa" + integrity sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw== + dependencies: + tslib "^2.5.0" + +"@smithy/util-buffer-from@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.0.0.tgz#7eb75d72288b6b3001bc5f75b48b711513091deb" + integrity sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw== + dependencies: + "@smithy/is-array-buffer" "^2.0.0" + tslib "^2.5.0" + +"@smithy/util-config-provider@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.1.0.tgz#c733a862892772aaeb373a3e8af5182556da0ef9" + integrity sha512-S6V0JvvhQgFSGLcJeT1CBsaTR03MM8qTuxMH9WPCCddlSo2W0V5jIHimHtIQALMLEDPGQ0ROSRr/dU0O+mxiQg== + dependencies: + tslib "^2.5.0" + +"@smithy/util-defaults-mode-browser@^2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.24.tgz#bfa8fa441db0d0d309c11d091ca9746f2b8e4797" + integrity sha512-TsP5mBuLgO2C21+laNG2nHYZEyUdkbGURv2tHvSuQQxLz952MegX95uwdxOY2jR2H4GoKuVRfdJq7w4eIjGYeg== + dependencies: + "@smithy/property-provider" "^2.0.17" + "@smithy/smithy-client" "^2.2.1" + "@smithy/types" "^2.8.0" + bowser "^2.11.0" + tslib "^2.5.0" + +"@smithy/util-defaults-mode-node@^2.0.32": + version "2.0.32" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.32.tgz#a0665ef2feed845de7825059072e312e22393698" + integrity sha512-d0S33dXA2cq1NyorVMroMrEtqKMr3MlyLITcfTBf9pXiigYiPMOtbSI7czHIfDbuVuM89Cg0urAgpt73QV9mPQ== + dependencies: + "@smithy/config-resolver" "^2.0.23" + "@smithy/credential-provider-imds" "^2.1.5" + "@smithy/node-config-provider" "^2.1.9" + "@smithy/property-provider" "^2.0.17" + "@smithy/smithy-client" "^2.2.1" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/util-endpoints@^1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.0.8.tgz#10ec9b228e96fc67b42ed06dabdab118a5869532" + integrity sha512-l8zVuyZZ61IzZBYp5NWvsAhbaAjYkt0xg9R4xUASkg5SEeTT2meHOJwJHctKMFUXe4QZbn9fR2MaBYjP2119+w== + dependencies: + "@smithy/node-config-provider" "^2.1.9" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/util-hex-encoding@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.0.0.tgz#0aa3515acd2b005c6d55675e377080a7c513b59e" + integrity sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA== + dependencies: + tslib "^2.5.0" + +"@smithy/util-middleware@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.0.9.tgz#54a372fa723ace66046cdf91439fb1648a246d5c" + integrity sha512-PnCnBJ07noMX1lMDTEefmxSlusWJUiLfrme++MfK5TD0xz8NYmakgoXy5zkF/16zKGmiwOeKAztWT/Vjk1KRIQ== + dependencies: + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/util-retry@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.0.9.tgz#ef6d6e41bcc5df330b76cca913d5e637c70497fc" + integrity sha512-46BFWe9RqB6g7f4mxm3W3HlqknqQQmWHKlhoqSFZuGNuiDU5KqmpebMbvC3tjTlUkqn4xa2Z7s3Hwb0HNs5scw== + dependencies: + "@smithy/service-error-classification" "^2.0.9" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + +"@smithy/util-stream@^2.0.24": + version "2.0.24" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.0.24.tgz#fa896c8df828ce7758963b758c1f374407d812be" + integrity sha512-hRpbcRrOxDriMVmbya+Mv77VZVupxRAsfxVDKS54XuiURhdiwCUXJP0X1iJhHinuUf6n8pBF0MkG9C8VooMnWw== + dependencies: + "@smithy/fetch-http-handler" "^2.3.2" + "@smithy/node-http-handler" "^2.2.2" + "@smithy/types" "^2.8.0" + "@smithy/util-base64" "^2.0.1" + "@smithy/util-buffer-from" "^2.0.0" + "@smithy/util-hex-encoding" "^2.0.0" + "@smithy/util-utf8" "^2.0.2" + tslib "^2.5.0" + +"@smithy/util-uri-escape@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.0.0.tgz#19955b1a0f517a87ae77ac729e0e411963dfda95" + integrity sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw== + dependencies: + tslib "^2.5.0" + +"@smithy/util-utf8@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.0.2.tgz#626b3e173ad137208e27ed329d6bea70f4a1a7f7" + integrity sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA== + dependencies: + "@smithy/util-buffer-from" "^2.0.0" + tslib "^2.5.0" + +"@smithy/util-waiter@^2.0.16": + version "2.0.16" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.0.16.tgz#3065566dd81951e24d843979ed1e6278794a955c" + integrity sha512-5i4YONHQ6HoUWDd+X0frpxTXxSXgJhUFl+z0iMy/zpUmVeCQY2or3Vss6DzHKKMMQL4pmVHpQm9WayHDorFdZg== + dependencies: + "@smithy/abort-controller" "^2.0.16" + "@smithy/types" "^2.8.0" + tslib "^2.5.0" + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" @@ -362,6 +1402,11 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -588,6 +1633,13 @@ eventemitter2@^5.0.1: resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452" integrity sha512-5EM1GHXycJBS6mauYAbVKT1cVs7POKWb2NXD4Vyt8dDqeZa7LaDK1/sjtL+Zb0lzTpSNil4596Dyu97hz37QLg== +fast-xml-parser@4.2.5: + version "4.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" + integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== + dependencies: + strnum "^1.0.5" + fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -1290,6 +2342,11 @@ strip-json-comments@3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + supports-color@8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" @@ -1342,6 +2399,16 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +tslib@^1.11.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.3.1, tslib@^2.5.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + typemoq@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/typemoq/-/typemoq-2.1.0.tgz#4452ce360d92cf2a1a180f0c29de2803f87af1e8" @@ -1359,6 +2426,11 @@ update-browserslist-db@^1.0.13: escalade "^3.1.1" picocolors "^1.0.0" +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + vscode-jsonrpc@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz#a7bf74ef3254d0a0c272fab15c82128e378b3be9" diff --git a/src/sql/azdata.d.ts b/src/sql/azdata.d.ts index 6cff3b69769c..b79619d55001 100644 --- a/src/sql/azdata.d.ts +++ b/src/sql/azdata.d.ts @@ -2021,6 +2021,7 @@ declare module 'azdata' { dateLastModified: string; createDate: string; providerName: string; + secret?: string; } export interface GetCredentialsResult extends ResultStatus {