{"version":3,"file":"js/chunk-vendors.9057ffd6.js","mappings":"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","sources":["webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/cache/lib-esm/Utils/CacheUtils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/cache/lib-esm/StorageCache.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/cache/lib-esm/BrowserStorageCache.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/cache/lib-esm/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Util/DateUtils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Signer.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/api-rest/lib-esm/RestClient.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/api-rest/lib-esm/RestAPI.js","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/jsutils/isObjectLike.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/polyfills/symbols.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/location.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/printLocation.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/error/GraphQLError.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/error/syntaxError.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/kinds.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/jsutils/invariant.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/jsutils/defineInspect.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/ast.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/tokenKind.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/jsutils/inspect.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/jsutils/devAssert.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/jsutils/instanceOf.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/source.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/directiveLocation.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/blockString.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/lexer.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/parser.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/visitor.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/graphql/language/printer.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/lib-esm/types/PubSub.js","webpack://carolina-hurricanes-warriors-site/./node_modules/zen-observable-ts/lib/bundle.esm.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/PubSubProvider.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Util/Reachability.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/lib-esm/utils/ReachabilityMonitor/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/lib-esm/utils/ConnectionStateMonitor.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/MqttOverWSProvider.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/api-graphql/lib-esm/types/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSAppSyncProvider.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/lib-esm/PubSub.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/api-graphql/lib-esm/GraphQLAPI.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/api/lib-esm/API.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js","webpack://carolina-hurricanes-warriors-site/./node_modules/universal-cookie/es6/utils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/universal-cookie/es6/Cookies.js","webpack://carolina-hurricanes-warriors-site/./node_modules/universal-cookie/es6/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/UniversalStorage/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Util/StringUtils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/auth/lib-esm/urlListener.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/auth/lib-esm/Errors.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/auth/lib-esm/Auth.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/auth/lib-esm/common/AuthErrorStrings.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/auth/lib-esm/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Amplify.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-cognito-identity/node_modules/tslib/tslib.es6.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-cognito-identity/dist/es/models/models_0.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetCredentialsForIdentityCommand.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/property-provider/dist/es/ProviderError.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/resolveLogins.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentity.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdCommand.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/IndexedDbStorage.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/InMemoryStorage.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/localStorage.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/es/fromCognitoIdentityPool.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-cognito-identity/dist/es/endpoints.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.shared.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.browser.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentityClient.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Util/CognitoIdentityClient.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Credentials.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Hub.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/I18n/I18n.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/I18n/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/JS.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Util/Constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Parser.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Platform/version.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Platform/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/core/lib-esm/Util/Retry.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/node_modules/uuid/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/bytesToUuid.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/node_modules/uuid/lib/rng-browser.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/node_modules/uuid/v1.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/pubsub/node_modules/uuid/v4.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/node_modules/tslib/tslib.es6.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/models/models_0.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/xml-builder/dist/es/escape-attribute.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/xml-builder/dist/es/XmlNode.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/xml-builder/dist/es/escape-element.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/xml-builder/dist/es/XmlText.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/protocols/Aws_restXml.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-arn-parser/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketHostnameUtils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketHostname.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/bucketEndpointMiddleware.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-bucket-endpoint/dist/es/configurations.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-sdk-s3/dist/es/validate-bucket-name.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-sdk-s3/dist/es/use-regional-endpoint.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-sdk-s3/dist/es/throw-200-exceptions.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-ssec/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/commands/CopyObjectCommand.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/commands/GetObjectCommand.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/commands/DeleteObjectCommand.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/commands/ListObjectsV2Command.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-format-url/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-create-request/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/storage/lib-esm/common/StorageErrorStrings.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/s3-request-presigner/dist/es/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/s3-request-presigner/dist/es/presigner.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/storage/lib-esm/providers/axios-http-handler.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/storage/lib-esm/common/StorageConstants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/storage/lib-esm/common/StorageUtils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/Int64.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/HeaderMarshaller.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/splitMessage.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-marshaller/dist/es/EventStreamMarshaller.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getChunkedStream.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-serde-universal/dist/es/getUnmarshalledStream.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-serde-universal/dist/es/EventStreamMarshaller.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-serde-browser/dist/es/utils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-serde-browser/dist/es/EventStreamMarshaller.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-serde-browser/dist/es/provider.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/chunked-blob-reader/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/hash-blob-browser/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/md5-js/dist/es/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/md5-js/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/endpoints.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/runtimeConfig.shared.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/runtimeConfig.browser.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-serde-config-resolver/dist/es/EventStreamSerdeConfig.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-expect-continue/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/models/models_1.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/S3Client.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/storage/lib-esm/common/S3ClientUtils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/commands/PutObjectCommand.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/commands/CreateMultipartUploadCommand.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/commands/UploadPartCommand.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3UploadTask.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/commands/CompleteMultipartUploadCommand.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/commands/AbortMultipartUploadCommand.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/client-s3/dist/es/commands/ListPartsCommand.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3ProviderManagedUpload.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/storage/lib-esm/providers/AWSS3Provider.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/storage/lib-esm/Storage.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/storage/lib-esm/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/ui-components/dist/esm-es5/Translations-108d469f.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/ui-components/dist/esm-es5/auth-types-78df304e.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/ui-components/dist/esm-es5/constants-c8ecaa24.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/ui-components/dist/esm-es5/helpers-14fcb50c.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/ui-components/dist/esm-es5/index-83f2275b.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/ui-components/dist/esm-es5/storage-types-f257c0f2.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/ie11-detection/build/CryptoOperation.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/ie11-detection/build/Key.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/ie11-detection/build/KeyOperation.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/ie11-detection/build/MsSubtleCrypto.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/ie11-detection/build/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-browser/build/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-browser/build/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/RawSha256.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-browser/node_modules/@aws-crypto/sha256-js/build/jsSha256.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-js/build/RawSha256.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-js/build/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-js/build/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-js/build/jsSha256.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/sha256-js/node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/supports-web-crypto/build/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/util/build/convertToBuffer.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/util/build/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/util/build/isEmptyData.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/util/build/numToUint8.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-crypto/util/build/uint32ArrayFrom.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/config-resolver/dist/es/EndpointsConfig.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/config-resolver/dist/es/RegionConfig.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/crc32/build/aws_crc32.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/eventstream-marshaller/node_modules/@aws-crypto/crc32/build/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/fetch-http-handler/dist/es/request-timeout.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/fetch-http-handler/dist/es/fetch-http-handler.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/fetch-http-handler/dist/es/stream-collector.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/invalid-dependency/dist/es/invalidProvider.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-content-length/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-host-header/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-logger/dist/es/loggerMiddleware.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/dist/es/retryMiddleware.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/service-error-classification/dist/es/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/service-error-classification/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/dist/es/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/dist/es/defaultRetryQuota.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/dist/es/delayDecider.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/dist/es/retryDecider.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/dist/es/defaultStrategy.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/dist/es/configurations.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/lib/bytesToUuid.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/lib/rng-browser.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/v1.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-retry/node_modules/uuid/v4.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-serde/dist/es/deserializerMiddleware.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-serde/dist/es/serializerMiddleware.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-serde/dist/es/serdePlugin.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-signing/dist/es/configurations.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-signing/dist/es/middleware.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-user-agent/dist/es/configurations.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-user-agent/dist/es/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-user-agent/dist/es/user-agent-middleware.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/protocol-http/dist/es/httpResponse.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/protocol-http/dist/es/httpRequest.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/querystring-builder/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/signature-v4/dist/es/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalHeaders.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalQuery.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/is-array-buffer/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/signature-v4/dist/es/getPayloadHash.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/signature-v4/dist/es/hasHeader.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/signature-v4/dist/es/moveHeadersToQuery.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/signature-v4/dist/es/prepareRequest.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/signature-v4/dist/es/utilDate.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/signature-v4/dist/es/SignatureV4.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/middleware-stack/dist/es/MiddlewareStack.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/smithy-client/dist/es/client.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/smithy-client/dist/es/command.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/smithy-client/dist/es/extended-encode-uri-component.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/smithy-client/dist/es/get-array-if-single-item.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/smithy-client/dist/es/get-value-from-text-node.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/smithy-client/dist/es/lazy-json.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/smithy-client/dist/es/date-utils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/smithy-client/dist/es/constants.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/querystring-parser/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/url-parser/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-base64-browser/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-body-length-browser/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-hex-encoding/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-locate-window/dist-es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-uri-escape/dist/es/escape-uri.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-user-agent-browser/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-utf8-browser/dist/es/pureJs.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-utf8-browser/dist/es/whatwgEncodingApi.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-sdk/util-utf8-browser/dist/es/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/BigInteger.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/DateHelper.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/StorageHelper.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/CognitoUser.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/Platform/version.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/Platform/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/UserAgent.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/Client.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","webpack://carolina-hurricanes-warriors-site/./node_modules/amazon-cognito-identity-js/es/CookieStorage.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/adapters/xhr.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/axios.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/cancel/Cancel.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/cancel/CancelToken.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/cancel/isCancel.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/core/Axios.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/core/InterceptorManager.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/core/buildFullPath.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/core/createError.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/core/dispatchRequest.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/core/enhanceError.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/core/mergeConfig.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/core/settle.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/core/transformData.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/defaults.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/env/data.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/helpers/bind.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/helpers/buildURL.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/helpers/combineURLs.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/helpers/cookies.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/helpers/spread.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/helpers/validator.js","webpack://carolina-hurricanes-warriors-site/./node_modules/axios/lib/utils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/base64-js/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/bowser/es5.js","webpack://carolina-hurricanes-warriors-site/./node_modules/buffer/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/call-bind/callBound.js","webpack://carolina-hurricanes-warriors-site/./node_modules/call-bind/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/cookie/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/crypto-js/core.js","webpack://carolina-hurricanes-warriors-site/./node_modules/crypto-js/enc-base64.js","webpack://carolina-hurricanes-warriors-site/./node_modules/crypto-js/hmac-sha256.js","webpack://carolina-hurricanes-warriors-site/./node_modules/crypto-js/hmac.js","webpack://carolina-hurricanes-warriors-site/./node_modules/crypto-js/lib-typedarrays.js","webpack://carolina-hurricanes-warriors-site/./node_modules/crypto-js/sha256.js","webpack://carolina-hurricanes-warriors-site/./node_modules/define-data-property/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/es-define-property/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/es-errors/eval.js","webpack://carolina-hurricanes-warriors-site/./node_modules/es-errors/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/es-errors/range.js","webpack://carolina-hurricanes-warriors-site/./node_modules/es-errors/ref.js","webpack://carolina-hurricanes-warriors-site/./node_modules/es-errors/syntax.js","webpack://carolina-hurricanes-warriors-site/./node_modules/es-errors/type.js","webpack://carolina-hurricanes-warriors-site/./node_modules/es-errors/uri.js","webpack://carolina-hurricanes-warriors-site/./node_modules/events/events.js","webpack://carolina-hurricanes-warriors-site/./node_modules/fast-xml-parser/src/json2xml.js","webpack://carolina-hurricanes-warriors-site/./node_modules/fast-xml-parser/src/nimndata.js","webpack://carolina-hurricanes-warriors-site/./node_modules/fast-xml-parser/src/node2json.js","webpack://carolina-hurricanes-warriors-site/./node_modules/fast-xml-parser/src/node2json_str.js","webpack://carolina-hurricanes-warriors-site/./node_modules/fast-xml-parser/src/parser.js","webpack://carolina-hurricanes-warriors-site/./node_modules/fast-xml-parser/src/util.js","webpack://carolina-hurricanes-warriors-site/./node_modules/fast-xml-parser/src/validator.js","webpack://carolina-hurricanes-warriors-site/./node_modules/fast-xml-parser/src/xmlNode.js","webpack://carolina-hurricanes-warriors-site/./node_modules/fast-xml-parser/src/xmlstr2xmlnode.js","webpack://carolina-hurricanes-warriors-site/./node_modules/function-bind/implementation.js","webpack://carolina-hurricanes-warriors-site/./node_modules/function-bind/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/get-intrinsic/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/gopd/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/has-property-descriptors/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/has-proto/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/has-symbols/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/has-symbols/shams.js","webpack://carolina-hurricanes-warriors-site/./node_modules/hasown/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/ieee754/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/isarray/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/isomorphic-unfetch/browser.js","webpack://carolina-hurricanes-warriors-site/./node_modules/js-cookie/src/js.cookie.js","webpack://carolina-hurricanes-warriors-site/./node_modules/object-inspect/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/paho-mqtt/paho-mqtt.js","webpack://carolina-hurricanes-warriors-site/./node_modules/qs/lib/formats.js","webpack://carolina-hurricanes-warriors-site/./node_modules/qs/lib/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/qs/lib/parse.js","webpack://carolina-hurricanes-warriors-site/./node_modules/qs/lib/stringify.js","webpack://carolina-hurricanes-warriors-site/./node_modules/qs/lib/utils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/set-function-length/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/side-channel/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/strnum/strnum.js","webpack://carolina-hurricanes-warriors-site/./node_modules/tslib/tslib.es6.js","webpack://carolina-hurricanes-warriors-site/./node_modules/unfetch/dist/unfetch.module.js","webpack://carolina-hurricanes-warriors-site/./node_modules/url/node_modules/punycode/punycode.js","webpack://carolina-hurricanes-warriors-site/./node_modules/url/url.js","webpack://carolina-hurricanes-warriors-site/./node_modules/vue-loader/dist/exportHelper.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@vue/devtools-api/lib/esm/env.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@vue/devtools-api/lib/esm/const.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@vue/devtools-api/lib/esm/time.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@vue/devtools-api/lib/esm/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/vuex/dist/vuex.esm-bundler.js","webpack://carolina-hurricanes-warriors-site/./node_modules/zen-observable/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/zen-observable/lib/Observable.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/a-callable.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/an-object.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/array-includes.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/array-set-length.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/classof-raw.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/create-property-descriptor.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/define-built-in.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/define-global-property.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/descriptors.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/document-create-element.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/engine-user-agent.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/engine-v8-version.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/enum-bug-keys.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/export.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/fails.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/function-bind-native.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/function-call.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/function-name.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/function-uncurry-this.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/get-built-in.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/get-method.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/global.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/has-own-property.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/hidden-keys.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/ie8-dom-define.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/indexed-object.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/inspect-source.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/internal-state.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/is-array.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/is-callable.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/is-forced.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/is-object.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/is-pure.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/is-symbol.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/length-of-array-like.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/make-built-in.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/math-trunc.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/object-define-property.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/object-keys-internal.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/own-keys.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/require-object-coercible.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/shared-key.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/shared-store.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/shared.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/to-absolute-index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/to-indexed-object.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/to-length.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/to-object.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/to-primitive.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/to-property-key.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/try-to-string.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/uid.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/internals/well-known-symbol.js","webpack://carolina-hurricanes-warriors-site/./node_modules/core-js/modules/es.array.push.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/ui-components/dist/esm/polyfills/index.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/ui-components/dist/esm-es5/theme-19a9209a.js","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/ui-components/dist/esm-es5/loader.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/@aws-amplify/ui-components/dist/loader/index.mjs","webpack://carolina-hurricanes-warriors-site/./node_modules/export-from-json/dist/esm/utils.js","webpack://carolina-hurricanes-warriors-site/./node_modules/export-from-json/dist/esm/processors.js","webpack://carolina-hurricanes-warriors-site/./node_modules/export-from-json/dist/esm/converters.js","webpack://carolina-hurricanes-warriors-site/./node_modules/export-from-json/dist/esm/types.js","webpack://carolina-hurricanes-warriors-site/./node_modules/export-from-json/dist/esm/exportFromJSON.js","webpack://carolina-hurricanes-warriors-site/./node_modules/export-from-json/dist/esm/index.js","webpack://carolina-hurricanes-warriors-site/../../../src/components/VApp/VApp.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VToolbar/VToolbar.tsx","webpack://carolina-hurricanes-warriors-site/../composables/scroll.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VAppBar/VAppBar.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VAppBar/VAppBarNavIcon.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VAvatar/VAvatar.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VBtnGroup/VBtnGroup.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VBtnToggle/VBtnToggle.tsx","webpack://carolina-hurricanes-warriors-site/../composables/selectLink.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VBtn/VBtn.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VCard/VCardActions.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VCard/VCardSubtitle.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VCard/VCardItem.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VCard/VCardText.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VCard/VCard.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VCard/VCardTitle.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VCarousel/VCarousel.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VWindow/VWindowItem.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VCarousel/VCarouselItem.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VSelectionControlGroup/VSelectionControlGroup.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VSelectionControl/VSelectionControl.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VCheckbox/VCheckboxBtn.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VSlideGroup/helpers.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VSlideGroup/VSlideGroup.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VChipGroup/VChipGroup.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VChip/VChip.tsx","webpack://carolina-hurricanes-warriors-site/../composables/refs.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VPagination/VPagination.tsx","webpack://carolina-hurricanes-warriors-site/../../../../src/components/VDataTable/composables/paginate.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VDataTable/VDataTableFooter.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VDataTable/VDataTableColumn.tsx","webpack://carolina-hurricanes-warriors-site/../../../../src/components/VDataTable/composables/headers.ts","webpack://carolina-hurricanes-warriors-site/../../../../src/components/VDataTable/composables/select.ts","webpack://carolina-hurricanes-warriors-site/../../../../src/components/VDataTable/composables/sort.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VDataTable/VDataTableHeaders.tsx","webpack://carolina-hurricanes-warriors-site/../../../../src/components/VDataTable/composables/group.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VDataTable/VDataTableGroupHeaderRow.tsx","webpack://carolina-hurricanes-warriors-site/../../../../src/components/VDataTable/composables/expand.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VDataTable/VDataTableRow.tsx","webpack://carolina-hurricanes-warriors-site/../util/events.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VDataTable/VDataTableRows.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VTable/VTable.tsx","webpack://carolina-hurricanes-warriors-site/../../../../src/components/VDataTable/composables/items.ts","webpack://carolina-hurricanes-warriors-site/../../../../src/components/VDataTable/composables/options.ts","webpack://carolina-hurricanes-warriors-site/../composables/filter.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VDataTable/VDataTable.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VDefaultsProvider/VDefaultsProvider.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VDialog/VDialog.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VDivider/VDivider.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VForm/VForm.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VGrid/VCol.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VGrid/VRow.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VGrid/VSpacer.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VIcon/VIcon.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VResponsive/VResponsive.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VImg/VImg.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VLabel/VLabel.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VList/VListGroup.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VList/VListSubheader.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VList/VListChildren.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VList/VList.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VList/VListItemSubtitle.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VList/VListItem.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VList/VListItemTitle.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VList/list.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VMain/VMain.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VMenu/shared.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VNavigationDrawer/sticky.ts","webpack://carolina-hurricanes-warriors-site/../composables/touch.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VNavigationDrawer/touch.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx","webpack://carolina-hurricanes-warriors-site/../../../../src/components/VOverlay/util/point.ts","webpack://carolina-hurricanes-warriors-site/../util/isFixedPosition.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VOverlay/locationStrategies.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VOverlay/requestNewFrame.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VOverlay/scrollStrategies.ts","webpack://carolina-hurricanes-warriors-site/../composables/delay.ts","webpack://carolina-hurricanes-warriors-site/../util/bindProps.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VOverlay/useActivator.tsx","webpack://carolina-hurricanes-warriors-site/../composables/hydration.ts","webpack://carolina-hurricanes-warriors-site/../composables/stack.ts","webpack://carolina-hurricanes-warriors-site/../composables/teleport.ts","webpack://carolina-hurricanes-warriors-site/../util/dom.ts","webpack://carolina-hurricanes-warriors-site/../../../src/directives/click-outside/index.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VOverlay/VOverlay.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VProgressCircular/VProgressCircular.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VProgressLinear/VProgressLinear.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VMenu/VMenu.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VVirtualScroll/VVirtualScrollItem.tsx","webpack://carolina-hurricanes-warriors-site/../composables/virtual.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VVirtualScroll/VVirtualScroll.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VSelect/useScrolling.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VSelect/VSelect.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VSheet/VSheet.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VCounter/VCounter.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VField/VFieldLabel.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VInput/InputIcon.tsx","webpack://carolina-hurricanes-warriors-site/../composables/focus.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VField/VField.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VMessages/VMessages.tsx","webpack://carolina-hurricanes-warriors-site/../composables/validation.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/VInput/VInput.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VTextField/VTextField.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VToolbar/VToolbarTitle.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VWindow/VWindow.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/transitions/dialog-transition.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/transitions/createTransition.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/transitions/expand-transition.ts","webpack://carolina-hurricanes-warriors-site/../../../src/components/transitions/index.ts","webpack://carolina-hurricanes-warriors-site/../composables/border.ts","webpack://carolina-hurricanes-warriors-site/../composables/color.ts","webpack://carolina-hurricanes-warriors-site/../composables/component.ts","webpack://carolina-hurricanes-warriors-site/../../../../src/composables/date/adapters/vuetify.ts","webpack://carolina-hurricanes-warriors-site/../../../src/composables/date/date.ts","webpack://carolina-hurricanes-warriors-site/../util/injectSelf.ts","webpack://carolina-hurricanes-warriors-site/../composables/defaults.ts","webpack://carolina-hurricanes-warriors-site/../composables/density.ts","webpack://carolina-hurricanes-warriors-site/../composables/dimensions.ts","webpack://carolina-hurricanes-warriors-site/../composables/display.ts","webpack://carolina-hurricanes-warriors-site/../composables/elevation.ts","webpack://carolina-hurricanes-warriors-site/../composables/form.ts","webpack://carolina-hurricanes-warriors-site/../composables/forwardRefs.ts","webpack://carolina-hurricanes-warriors-site/../composables/group.ts","webpack://carolina-hurricanes-warriors-site/../iconsets/mdi.ts","webpack://carolina-hurricanes-warriors-site/../composables/icons.tsx","webpack://carolina-hurricanes-warriors-site/../composables/intersectionObserver.ts","webpack://carolina-hurricanes-warriors-site/../composables/layout.ts","webpack://carolina-hurricanes-warriors-site/../composables/lazy.ts","webpack://carolina-hurricanes-warriors-site/../composables/list-items.ts","webpack://carolina-hurricanes-warriors-site/../composables/loader.tsx","webpack://carolina-hurricanes-warriors-site/../locale/en.ts","webpack://carolina-hurricanes-warriors-site/../../../src/locale/adapters/vuetify.ts","webpack://carolina-hurricanes-warriors-site/../composables/locale.ts","webpack://carolina-hurricanes-warriors-site/../composables/location.ts","webpack://carolina-hurricanes-warriors-site/../../../src/composables/nested/activeStrategies.ts","webpack://carolina-hurricanes-warriors-site/../../../src/composables/nested/openStrategies.ts","webpack://carolina-hurricanes-warriors-site/../../../src/composables/nested/selectStrategies.ts","webpack://carolina-hurricanes-warriors-site/../../../src/composables/nested/nested.ts","webpack://carolina-hurricanes-warriors-site/../composables/position.ts","webpack://carolina-hurricanes-warriors-site/../composables/proxiedModel.ts","webpack://carolina-hurricanes-warriors-site/../composables/resizeObserver.ts","webpack://carolina-hurricanes-warriors-site/../composables/rounded.ts","webpack://carolina-hurricanes-warriors-site/../composables/router.tsx","webpack://carolina-hurricanes-warriors-site/../composables/scopeId.ts","webpack://carolina-hurricanes-warriors-site/../composables/size.ts","webpack://carolina-hurricanes-warriors-site/../composables/ssrBoot.ts","webpack://carolina-hurricanes-warriors-site/../composables/tag.ts","webpack://carolina-hurricanes-warriors-site/../composables/theme.ts","webpack://carolina-hurricanes-warriors-site/../composables/toggleScope.ts","webpack://carolina-hurricanes-warriors-site/../composables/transition.ts","webpack://carolina-hurricanes-warriors-site/../composables/variant.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/directives/intersect/index.ts","webpack://carolina-hurricanes-warriors-site/../../../src/directives/ripple/index.ts","webpack://carolina-hurricanes-warriors-site/../../../src/directives/touch/index.ts","webpack://carolina-hurricanes-warriors-site/../composables/goto.ts","webpack://carolina-hurricanes-warriors-site/../src/framework.ts","webpack://carolina-hurricanes-warriors-site/../../../src/labs/VCalendar/VCalendarIntervalEvent.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/labs/VCalendar/VCalendarInterval.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/labs/VCalendar/VCalendarDay.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/labs/VCalendar/VCalendarHeader.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/components/VBadge/VBadge.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/labs/VCalendar/VCalendarEvent.tsx","webpack://carolina-hurricanes-warriors-site/../../../src/labs/VCalendar/VCalendarMonthDay.tsx","webpack://carolina-hurricanes-warriors-site/../composables/calendar.ts","webpack://carolina-hurricanes-warriors-site/../../../src/labs/VCalendar/VCalendar.tsx","webpack://carolina-hurricanes-warriors-site/../util/anchor.ts","webpack://carolina-hurricanes-warriors-site/../util/animation.ts","webpack://carolina-hurricanes-warriors-site/../util/box.ts","webpack://carolina-hurricanes-warriors-site/../../../src/util/color/APCA.ts","webpack://carolina-hurricanes-warriors-site/../../../src/util/color/transformCIELAB.ts","webpack://carolina-hurricanes-warriors-site/../../../src/util/color/transformSRGB.ts","webpack://carolina-hurricanes-warriors-site/../util/colorUtils.ts","webpack://carolina-hurricanes-warriors-site/../util/console.ts","webpack://carolina-hurricanes-warriors-site/../util/createSimpleFunctional.ts","webpack://carolina-hurricanes-warriors-site/../util/defineComponent.tsx","webpack://carolina-hurricanes-warriors-site/../util/easing.ts","webpack://carolina-hurricanes-warriors-site/../util/getCurrentInstance.ts","webpack://carolina-hurricanes-warriors-site/../util/getScrollParent.ts","webpack://carolina-hurricanes-warriors-site/../util/globals.ts","webpack://carolina-hurricanes-warriors-site/../util/helpers.ts","webpack://carolina-hurricanes-warriors-site/../util/propsFactory.ts","webpack://carolina-hurricanes-warriors-site/../util/useRender.ts","webpack://carolina-hurricanes-warriors-site/./node_modules/vue-router/dist/vue-router.mjs"],"sourcesContent":["/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { StorageHelper } from '@aws-amplify/core';\n/**\n * Default cache config\n */\nexport var defaultConfig = {\n keyPrefix: 'aws-amplify-cache',\n capacityInBytes: 1048576,\n itemMaxSize: 210000,\n defaultTTL: 259200000,\n defaultPriority: 5,\n warningThreshold: 0.8,\n // the storage helper will check if localStorage exists,\n // if not, will use a in-memory object instead\n storage: new StorageHelper().getStorage(),\n};\n/**\n * return the byte size of the string\n * @param str\n */\nexport function getByteLength(str) {\n var ret = 0;\n ret = str.length;\n for (var i = str.length; i >= 0; i -= 1) {\n var charCode = str.charCodeAt(i);\n if (charCode > 0x7f && charCode <= 0x7ff) {\n ret += 1;\n }\n else if (charCode > 0x7ff && charCode <= 0xffff) {\n ret += 2;\n }\n // trail surrogate\n if (charCode >= 0xdc00 && charCode <= 0xdfff) {\n i -= 1;\n }\n }\n return ret;\n}\n/**\n * get current time\n */\nexport function getCurrTime() {\n var currTime = new Date();\n return currTime.getTime();\n}\n/**\n * check if passed value is an integer\n */\nexport function isInteger(value) {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n return _isInteger(value);\n}\nfunction _isInteger(value) {\n return (typeof value === 'number' && isFinite(value) && Math.floor(value) === value);\n}\n/**\n * provide an object as the in-memory cache\n */\nvar store = {};\nvar CacheObject = /** @class */ (function () {\n function CacheObject() {\n }\n CacheObject.clear = function () {\n store = {};\n };\n CacheObject.getItem = function (key) {\n return store[key] || null;\n };\n CacheObject.setItem = function (key, value) {\n store[key] = value;\n };\n CacheObject.removeItem = function (key) {\n delete store[key];\n };\n return CacheObject;\n}());\nexport { CacheObject };\n//# sourceMappingURL=CacheUtils.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { getCurrTime, getByteLength, defaultConfig, isInteger } from './Utils';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('StorageCache');\n/**\n * Initialization of the cache\n *\n */\nvar StorageCache = /** @class */ (function () {\n /**\n * Initialize the cache\n * @param config - the configuration of the cache\n */\n function StorageCache(config) {\n this.config = Object.assign({}, config);\n this.cacheCurSizeKey = this.config.keyPrefix + 'CurSize';\n this.checkConfig();\n }\n StorageCache.prototype.getModuleName = function () {\n return 'Cache';\n };\n StorageCache.prototype.checkConfig = function () {\n // check configuration\n if (!isInteger(this.config.capacityInBytes)) {\n logger.error('Invalid parameter: capacityInBytes. It should be an Integer. Setting back to default.');\n this.config.capacityInBytes = defaultConfig.capacityInBytes;\n }\n if (!isInteger(this.config.itemMaxSize)) {\n logger.error('Invalid parameter: itemMaxSize. It should be an Integer. Setting back to default.');\n this.config.itemMaxSize = defaultConfig.itemMaxSize;\n }\n if (!isInteger(this.config.defaultTTL)) {\n logger.error('Invalid parameter: defaultTTL. It should be an Integer. Setting back to default.');\n this.config.defaultTTL = defaultConfig.defaultTTL;\n }\n if (!isInteger(this.config.defaultPriority)) {\n logger.error('Invalid parameter: defaultPriority. It should be an Integer. Setting back to default.');\n this.config.defaultPriority = defaultConfig.defaultPriority;\n }\n if (this.config.itemMaxSize > this.config.capacityInBytes) {\n logger.error('Invalid parameter: itemMaxSize. It should be smaller than capacityInBytes. Setting back to default.');\n this.config.itemMaxSize = defaultConfig.itemMaxSize;\n }\n if (this.config.defaultPriority > 5 || this.config.defaultPriority < 1) {\n logger.error('Invalid parameter: defaultPriority. It should be between 1 and 5. Setting back to default.');\n this.config.defaultPriority = defaultConfig.defaultPriority;\n }\n if (Number(this.config.warningThreshold) > 1 ||\n Number(this.config.warningThreshold) < 0) {\n logger.error('Invalid parameter: warningThreshold. It should be between 0 and 1. Setting back to default.');\n this.config.warningThreshold = defaultConfig.warningThreshold;\n }\n // set 5MB limit\n var cacheLimit = 5 * 1024 * 1024;\n if (this.config.capacityInBytes > cacheLimit) {\n logger.error('Cache Capacity should be less than 5MB. Setting back to default. Setting back to default.');\n this.config.capacityInBytes = defaultConfig.capacityInBytes;\n }\n };\n /**\n * produce a JSON object with meta-data and data value\n * @param value - the value of the item\n * @param options - optional, the specified meta-data\n *\n * @return - the item which has the meta-data and the value\n */\n StorageCache.prototype.fillCacheItem = function (key, value, options) {\n var ret = {\n key: key,\n data: value,\n timestamp: getCurrTime(),\n visitedTime: getCurrTime(),\n priority: options.priority,\n expires: options.expires,\n type: typeof value,\n byteSize: 0,\n };\n ret.byteSize = getByteLength(JSON.stringify(ret));\n // for accurate size\n ret.byteSize = getByteLength(JSON.stringify(ret));\n return ret;\n };\n /**\n * set cache with customized configuration\n * @param config - customized configuration\n *\n * @return - the current configuration\n */\n StorageCache.prototype.configure = function (config) {\n if (!config) {\n return this.config;\n }\n if (config.keyPrefix) {\n logger.warn(\"Don't try to configure keyPrefix!\");\n }\n this.config = Object.assign({}, this.config, config, config.Cache);\n this.checkConfig();\n return this.config;\n };\n return StorageCache;\n}());\nexport { StorageCache };\n/**\n * @deprecated use named import\n */\nexport default StorageCache;\n//# sourceMappingURL=StorageCache.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { defaultConfig, getCurrTime } from './Utils';\nimport { StorageCache } from './StorageCache';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('Cache');\n/**\n * Customized storage based on the SessionStorage or LocalStorage with LRU implemented\n */\nvar BrowserStorageCacheClass = /** @class */ (function (_super) {\n __extends(BrowserStorageCacheClass, _super);\n /**\n * initialize the cache\n * @param config - the configuration of the cache\n */\n function BrowserStorageCacheClass(config) {\n var _this = this;\n var cacheConfig = config\n ? Object.assign({}, defaultConfig, config)\n : defaultConfig;\n _this = _super.call(this, cacheConfig) || this;\n _this.config.storage = cacheConfig.storage;\n _this.getItem = _this.getItem.bind(_this);\n _this.setItem = _this.setItem.bind(_this);\n _this.removeItem = _this.removeItem.bind(_this);\n return _this;\n }\n /**\n * decrease current size of the cache\n *\n * @private\n * @param amount - the amount of the cache size which needs to be decreased\n */\n BrowserStorageCacheClass.prototype._decreaseCurSizeInBytes = function (amount) {\n var curSize = this.getCacheCurSize();\n this.config.storage.setItem(this.cacheCurSizeKey, (curSize - amount).toString());\n };\n /**\n * increase current size of the cache\n *\n * @private\n * @param amount - the amount of the cache szie which need to be increased\n */\n BrowserStorageCacheClass.prototype._increaseCurSizeInBytes = function (amount) {\n var curSize = this.getCacheCurSize();\n this.config.storage.setItem(this.cacheCurSizeKey, (curSize + amount).toString());\n };\n /**\n * update the visited time if item has been visited\n *\n * @private\n * @param item - the item which need to be refreshed\n * @param prefixedKey - the key of the item\n *\n * @return the refreshed item\n */\n BrowserStorageCacheClass.prototype._refreshItem = function (item, prefixedKey) {\n item.visitedTime = getCurrTime();\n this.config.storage.setItem(prefixedKey, JSON.stringify(item));\n return item;\n };\n /**\n * check wether item is expired\n *\n * @private\n * @param key - the key of the item\n *\n * @return true if the item is expired.\n */\n BrowserStorageCacheClass.prototype._isExpired = function (key) {\n var text = this.config.storage.getItem(key);\n var item = JSON.parse(text);\n if (getCurrTime() >= item.expires) {\n return true;\n }\n return false;\n };\n /**\n * delete item from cache\n *\n * @private\n * @param prefixedKey - the key of the item\n * @param size - optional, the byte size of the item\n */\n BrowserStorageCacheClass.prototype._removeItem = function (prefixedKey, size) {\n var itemSize = size\n ? size\n : JSON.parse(this.config.storage.getItem(prefixedKey)).byteSize;\n this._decreaseCurSizeInBytes(itemSize);\n // remove the cache item\n this.config.storage.removeItem(prefixedKey);\n };\n /**\n * put item into cache\n *\n * @private\n * @param prefixedKey - the key of the item\n * @param itemData - the value of the item\n * @param itemSizeInBytes - the byte size of the item\n */\n BrowserStorageCacheClass.prototype._setItem = function (prefixedKey, item) {\n // update the cache size\n this._increaseCurSizeInBytes(item.byteSize);\n try {\n this.config.storage.setItem(prefixedKey, JSON.stringify(item));\n }\n catch (setItemErr) {\n // if failed, we need to rollback the cache size\n this._decreaseCurSizeInBytes(item.byteSize);\n logger.error(\"Failed to set item \" + setItemErr);\n }\n };\n /**\n * total space needed when poping out items\n *\n * @private\n * @param itemSize\n *\n * @return total space needed\n */\n BrowserStorageCacheClass.prototype._sizeToPop = function (itemSize) {\n var spaceItemNeed = this.getCacheCurSize() + itemSize - this.config.capacityInBytes;\n var cacheThresholdSpace = (1 - this.config.warningThreshold) * this.config.capacityInBytes;\n return spaceItemNeed > cacheThresholdSpace\n ? spaceItemNeed\n : cacheThresholdSpace;\n };\n /**\n * see whether cache is full\n *\n * @private\n * @param itemSize\n *\n * @return true if cache is full\n */\n BrowserStorageCacheClass.prototype._isCacheFull = function (itemSize) {\n return itemSize + this.getCacheCurSize() > this.config.capacityInBytes;\n };\n /**\n * scan the storage and find out all the keys owned by this cache\n * also clean the expired keys while scanning\n *\n * @private\n *\n * @return array of keys\n */\n BrowserStorageCacheClass.prototype._findValidKeys = function () {\n var keys = [];\n var keyInCache = [];\n // get all keys in Storage\n for (var i = 0; i < this.config.storage.length; i += 1) {\n keyInCache.push(this.config.storage.key(i));\n }\n // find those items which belong to our cache and also clean those expired items\n for (var i = 0; i < keyInCache.length; i += 1) {\n var key = keyInCache[i];\n if (key.indexOf(this.config.keyPrefix) === 0 &&\n key !== this.cacheCurSizeKey) {\n if (this._isExpired(key)) {\n this._removeItem(key);\n }\n else {\n keys.push(key);\n }\n }\n }\n return keys;\n };\n /**\n * get all the items we have, sort them by their priority,\n * if priority is same, sort them by their last visited time\n * pop out items from the low priority (5 is the lowest)\n *\n * @private\n * @param keys - all the keys in this cache\n * @param sizeToPop - the total size of the items which needed to be poped out\n */\n BrowserStorageCacheClass.prototype._popOutItems = function (keys, sizeToPop) {\n var items = [];\n var remainedSize = sizeToPop;\n // get the items from Storage\n for (var i = 0; i < keys.length; i += 1) {\n var val = this.config.storage.getItem(keys[i]);\n if (val != null) {\n var item = JSON.parse(val);\n items.push(item);\n }\n }\n // first compare priority\n // then compare visited time\n items.sort(function (a, b) {\n if (a.priority > b.priority) {\n return -1;\n }\n else if (a.priority < b.priority) {\n return 1;\n }\n else {\n if (a.visitedTime < b.visitedTime) {\n return -1;\n }\n else\n return 1;\n }\n });\n for (var i = 0; i < items.length; i += 1) {\n // pop out items until we have enough room for new item\n this._removeItem(items[i].key, items[i].byteSize);\n remainedSize -= items[i].byteSize;\n if (remainedSize <= 0) {\n return;\n }\n }\n };\n /**\n * Set item into cache. You can put number, string, boolean or object.\n * The cache will first check whether has the same key.\n * If it has, it will delete the old item and then put the new item in\n * The cache will pop out items if it is full\n * You can specify the cache item options. The cache will abort and output a warning:\n * If the key is invalid\n * If the size of the item exceeds itemMaxSize.\n * If the value is undefined\n * If incorrect cache item configuration\n * If error happened with browser storage\n *\n * @param key - the key of the item\n * @param value - the value of the item\n * @param {Object} [options] - optional, the specified meta-data\n */\n BrowserStorageCacheClass.prototype.setItem = function (key, value, options) {\n logger.log(\"Set item: key is \" + key + \", value is \" + value + \" with options: \" + options);\n var prefixedKey = this.config.keyPrefix + key;\n // invalid keys\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n logger.warn(\"Invalid key: should not be empty or 'CurSize'\");\n return;\n }\n if (typeof value === 'undefined') {\n logger.warn(\"The value of item should not be undefined!\");\n return;\n }\n var cacheItemOptions = {\n priority: options && options.priority !== undefined\n ? options.priority\n : this.config.defaultPriority,\n expires: options && options.expires !== undefined\n ? options.expires\n : this.config.defaultTTL + getCurrTime(),\n };\n if (cacheItemOptions.priority < 1 || cacheItemOptions.priority > 5) {\n logger.warn(\"Invalid parameter: priority due to out or range. It should be within 1 and 5.\");\n return;\n }\n var item = this.fillCacheItem(prefixedKey, value, cacheItemOptions);\n // check wether this item is too big;\n if (item.byteSize > this.config.itemMaxSize) {\n logger.warn(\"Item with key: \" + key + \" you are trying to put into is too big!\");\n return;\n }\n try {\n // first look into the storage, if it exists, delete it.\n var val = this.config.storage.getItem(prefixedKey);\n if (val) {\n this._removeItem(prefixedKey, JSON.parse(val).byteSize);\n }\n // check whether the cache is full\n if (this._isCacheFull(item.byteSize)) {\n var validKeys = this._findValidKeys();\n // check again and then pop out items\n if (this._isCacheFull(item.byteSize)) {\n var sizeToPop = this._sizeToPop(item.byteSize);\n this._popOutItems(validKeys, sizeToPop);\n }\n }\n // put item in the cache\n // may failed due to storage full\n this._setItem(prefixedKey, item);\n }\n catch (e) {\n logger.warn(\"setItem failed! \" + e);\n }\n };\n /**\n * Get item from cache. It will return null if item doesn’t exist or it has been expired.\n * If you specified callback function in the options,\n * then the function will be executed if no such item in the cache\n * and finally put the return value into cache.\n * Please make sure the callback function will return the value you want to put into the cache.\n * The cache will abort output a warning:\n * If the key is invalid\n * If error happened with browser storage\n *\n * @param key - the key of the item\n * @param {Object} [options] - the options of callback function\n *\n * @return - return the value of the item\n */\n BrowserStorageCacheClass.prototype.getItem = function (key, options) {\n logger.log(\"Get item: key is \" + key + \" with options \" + options);\n var ret = null;\n var prefixedKey = this.config.keyPrefix + key;\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n logger.warn(\"Invalid key: should not be empty or 'CurSize'\");\n return null;\n }\n try {\n ret = this.config.storage.getItem(prefixedKey);\n if (ret != null) {\n if (this._isExpired(prefixedKey)) {\n // if expired, remove that item and return null\n this._removeItem(prefixedKey, JSON.parse(ret).byteSize);\n ret = null;\n }\n else {\n // if not expired, great, return the value and refresh it\n var item = JSON.parse(ret);\n item = this._refreshItem(item, prefixedKey);\n return item.data;\n }\n }\n if (options && options.callback !== undefined) {\n var val = options.callback();\n if (val !== null) {\n this.setItem(key, val, options);\n }\n return val;\n }\n return null;\n }\n catch (e) {\n logger.warn(\"getItem failed! \" + e);\n return null;\n }\n };\n /**\n * remove item from the cache\n * The cache will abort output a warning:\n * If error happened with browser storage\n * @param key - the key of the item\n */\n BrowserStorageCacheClass.prototype.removeItem = function (key) {\n logger.log(\"Remove item: key is \" + key);\n var prefixedKey = this.config.keyPrefix + key;\n if (prefixedKey === this.config.keyPrefix ||\n prefixedKey === this.cacheCurSizeKey) {\n return;\n }\n try {\n var val = this.config.storage.getItem(prefixedKey);\n if (val) {\n this._removeItem(prefixedKey, JSON.parse(val).byteSize);\n }\n }\n catch (e) {\n logger.warn(\"removeItem failed! \" + e);\n }\n };\n /**\n * clear the entire cache\n * The cache will abort output a warning:\n * If error happened with browser storage\n */\n BrowserStorageCacheClass.prototype.clear = function () {\n logger.log(\"Clear Cache\");\n var keysToRemove = [];\n for (var i = 0; i < this.config.storage.length; i += 1) {\n var key = this.config.storage.key(i);\n if (key.indexOf(this.config.keyPrefix) === 0) {\n keysToRemove.push(key);\n }\n }\n try {\n for (var i = 0; i < keysToRemove.length; i += 1) {\n this.config.storage.removeItem(keysToRemove[i]);\n }\n }\n catch (e) {\n logger.warn(\"clear failed! \" + e);\n }\n };\n /**\n * Return all the keys in the cache.\n *\n * @return - all keys in the cache\n */\n BrowserStorageCacheClass.prototype.getAllKeys = function () {\n var keys = [];\n for (var i = 0; i < this.config.storage.length; i += 1) {\n var key = this.config.storage.key(i);\n if (key.indexOf(this.config.keyPrefix) === 0 &&\n key !== this.cacheCurSizeKey) {\n keys.push(key.substring(this.config.keyPrefix.length));\n }\n }\n return keys;\n };\n /**\n * return the current size of the cache\n *\n * @return - current size of the cache\n */\n BrowserStorageCacheClass.prototype.getCacheCurSize = function () {\n var ret = this.config.storage.getItem(this.cacheCurSizeKey);\n if (!ret) {\n this.config.storage.setItem(this.cacheCurSizeKey, '0');\n ret = '0';\n }\n return Number(ret);\n };\n /**\n * Return a new instance of cache with customized configuration.\n * @param config - the customized configuration\n *\n * @return - new instance of Cache\n */\n BrowserStorageCacheClass.prototype.createInstance = function (config) {\n if (!config.keyPrefix || config.keyPrefix === defaultConfig.keyPrefix) {\n logger.error('invalid keyPrefix, setting keyPrefix with timeStamp');\n config.keyPrefix = getCurrTime.toString();\n }\n return new BrowserStorageCacheClass(config);\n };\n return BrowserStorageCacheClass;\n}(StorageCache));\nexport { BrowserStorageCacheClass };\nexport var BrowserStorageCache = new BrowserStorageCacheClass();\n/**\n * @deprecated use named import\n */\nexport default BrowserStorageCache;\n//# sourceMappingURL=BrowserStorageCache.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Amplify } from '@aws-amplify/core';\nimport { BrowserStorageCache } from './BrowserStorageCache';\nimport { InMemoryCache } from './InMemoryCache';\nexport { BrowserStorageCache, InMemoryCache };\nexport { BrowserStorageCache as Cache };\n/**\n * @deprecated use named import\n */\nexport default BrowserStorageCache;\nAmplify.register(BrowserStorageCache);\n//# sourceMappingURL=index.js.map","/**\n * Date & time utility functions to abstract the `aws-sdk` away from users.\n * (v2 => v3 modularization is a breaking change)\n *\n * @see https://github.com/aws/aws-sdk-js/blob/6edf586dcc1de7fe8fbfbbd9a0d2b1847921e6e1/lib/util.js#L262\n */\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n// Comment - TODO: remove\nvar FIVE_MINUTES_IN_MS = 1000 * 60 * 5;\nexport var DateUtils = {\n /**\n * Milliseconds to offset the date to compensate for clock skew between device & services\n */\n clockOffset: 0,\n getDateWithClockOffset: function () {\n if (DateUtils.clockOffset) {\n return new Date(new Date().getTime() + DateUtils.clockOffset);\n }\n else {\n return new Date();\n }\n },\n /**\n * @returns {number} Clock offset in milliseconds\n */\n getClockOffset: function () {\n return DateUtils.clockOffset;\n },\n getHeaderStringFromDate: function (date) {\n if (date === void 0) { date = DateUtils.getDateWithClockOffset(); }\n return date.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n },\n getDateFromHeaderString: function (header) {\n var _a = __read(header.match(/^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2}).+/), 7), year = _a[1], month = _a[2], day = _a[3], hour = _a[4], minute = _a[5], second = _a[6];\n return new Date(Date.UTC(Number(year), Number(month) - 1, Number(day), Number(hour), Number(minute), Number(second)));\n },\n isClockSkewed: function (serverDate) {\n // API gateway permits client calls that are off by no more than ±5 minutes\n return (Math.abs(serverDate.getTime() - DateUtils.getDateWithClockOffset().getTime()) >= FIVE_MINUTES_IN_MS);\n },\n isClockSkewError: function (error) {\n if (!error.response || !error.response.headers) {\n return false;\n }\n var headers = error.response.headers;\n return Boolean(['BadRequestException', 'InvalidSignatureException'].includes(headers['x-amzn-errortype']) &&\n (headers.date || headers.Date));\n },\n /**\n * @param {number} offset Clock offset in milliseconds\n */\n setClockOffset: function (offset) {\n DateUtils.clockOffset = offset;\n },\n};\n//# sourceMappingURL=DateUtils.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { ConsoleLogger as Logger } from './Logger';\nimport { Sha256 as jsSha256 } from '@aws-crypto/sha256-js';\nimport { toHex } from '@aws-sdk/util-hex-encoding';\nimport { parse, format } from 'url';\nimport { DateUtils } from './Util';\nvar logger = new Logger('Signer');\nvar DEFAULT_ALGORITHM = 'AWS4-HMAC-SHA256';\nvar IOT_SERVICE_NAME = 'iotdevicegateway';\nvar encrypt = function (key, src) {\n var hash = new jsSha256(key);\n hash.update(src);\n return hash.digestSync();\n};\nvar hash = function (src) {\n var arg = src || '';\n var hash = new jsSha256();\n hash.update(arg);\n return toHex(hash.digestSync());\n};\n/**\n * @private\n * RFC 3986 compliant version of encodeURIComponent\n */\nvar escape_RFC3986 = function (component) {\n return component.replace(/[!'()*]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n};\n/**\n * @private\n * Create canonical query string\n *\n */\nvar canonical_query = function (query) {\n if (!query || query.length === 0) {\n return '';\n }\n return query\n .split('&')\n .map(function (e) {\n var key_val = e.split('=');\n if (key_val.length === 1) {\n return e;\n }\n else {\n var reencoded_val = escape_RFC3986(key_val[1]);\n return key_val[0] + '=' + reencoded_val;\n }\n })\n .sort(function (a, b) {\n var key_a = a.split('=')[0];\n var key_b = b.split('=')[0];\n if (key_a === key_b) {\n return a < b ? -1 : 1;\n }\n else {\n return key_a < key_b ? -1 : 1;\n }\n })\n .join('&');\n};\n/**\n* @private\n* Create canonical headers\n*\n
\nCanonicalHeaders =\n    CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN\nCanonicalHeadersEntry =\n    Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\\n'\n
\n*/\nvar canonical_headers = function (headers) {\n if (!headers || Object.keys(headers).length === 0) {\n return '';\n }\n return (Object.keys(headers)\n .map(function (key) {\n return {\n key: key.toLowerCase(),\n value: headers[key] ? headers[key].trim().replace(/\\s+/g, ' ') : '',\n };\n })\n .sort(function (a, b) {\n return a.key < b.key ? -1 : 1;\n })\n .map(function (item) {\n return item.key + ':' + item.value;\n })\n .join('\\n') + '\\n');\n};\n/**\n * List of header keys included in the canonical headers.\n * @access private\n */\nvar signed_headers = function (headers) {\n return Object.keys(headers)\n .map(function (key) {\n return key.toLowerCase();\n })\n .sort()\n .join(';');\n};\n/**\n* @private\n* Create canonical request\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html|Create a Canonical Request}\n*\n
\nCanonicalRequest =\n    HTTPRequestMethod + '\\n' +\n    CanonicalURI + '\\n' +\n    CanonicalQueryString + '\\n' +\n    CanonicalHeaders + '\\n' +\n    SignedHeaders + '\\n' +\n    HexEncode(Hash(RequestPayload))\n
\n*/\nvar canonical_request = function (request) {\n var url_info = parse(request.url);\n return [\n request.method || '/',\n encodeURIComponent(url_info.pathname).replace(/%2F/gi, '/'),\n canonical_query(url_info.query),\n canonical_headers(request.headers),\n signed_headers(request.headers),\n hash(request.data),\n ].join('\\n');\n};\nvar parse_service_info = function (request) {\n var url_info = parse(request.url), host = url_info.host;\n var matched = host.match(/([^\\.]+)\\.(?:([^\\.]*)\\.)?amazonaws\\.com$/);\n var parsed = (matched || []).slice(1, 3);\n if (parsed[1] === 'es') {\n // Elastic Search\n parsed = parsed.reverse();\n }\n return {\n service: request.service || parsed[0],\n region: request.region || parsed[1],\n };\n};\nvar credential_scope = function (d_str, region, service) {\n return [d_str, region, service, 'aws4_request'].join('/');\n};\n/**\n* @private\n* Create a string to sign\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html|Create String to Sign}\n*\n
\nStringToSign =\n    Algorithm + \\n +\n    RequestDateTime + \\n +\n    CredentialScope + \\n +\n    HashedCanonicalRequest\n
\n*/\nvar string_to_sign = function (algorithm, canonical_request, dt_str, scope) {\n return [algorithm, dt_str, scope, hash(canonical_request)].join('\\n');\n};\n/**\n* @private\n* Create signing key\n* Refer to\n* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html|Calculate Signature}\n*\n
\nkSecret = your secret access key\nkDate = HMAC(\"AWS4\" + kSecret, Date)\nkRegion = HMAC(kDate, Region)\nkService = HMAC(kRegion, Service)\nkSigning = HMAC(kService, \"aws4_request\")\n
\n*/\nvar get_signing_key = function (secret_key, d_str, service_info) {\n logger.debug(service_info);\n var k = 'AWS4' + secret_key, k_date = encrypt(k, d_str), k_region = encrypt(k_date, service_info.region), k_service = encrypt(k_region, service_info.service), k_signing = encrypt(k_service, 'aws4_request');\n return k_signing;\n};\nvar get_signature = function (signing_key, str_to_sign) {\n return toHex(encrypt(signing_key, str_to_sign));\n};\n/**\n * @private\n * Create authorization header\n * Refer to\n * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html|Add the Signing Information}\n */\nvar get_authorization_header = function (algorithm, access_key, scope, signed_headers, signature) {\n return [\n algorithm + ' ' + 'Credential=' + access_key + '/' + scope,\n 'SignedHeaders=' + signed_headers,\n 'Signature=' + signature,\n ].join(', ');\n};\nvar Signer = /** @class */ (function () {\n function Signer() {\n }\n /**\n * Sign a HTTP request, add 'Authorization' header to request param\n * @method sign\n * @memberof Signer\n * @static\n *\n * @param {object} request - HTTP request object\n
\n    request: {\n        method: GET | POST | PUT ...\n        url: ...,\n        headers: {\n            header1: ...\n        },\n        data: data\n    }\n    
\n * @param {object} access_info - AWS access credential info\n
\n    access_info: {\n        access_key: ...,\n        secret_key: ...,\n        session_token: ...\n    }\n    
\n * @param {object} [service_info] - AWS service type and region, optional,\n * if not provided then parse out from url\n
\n    service_info: {\n        service: ...,\n        region: ...\n    }\n    
\n *\n * @returns {object} Signed HTTP request\n */\n Signer.sign = function (request, access_info, service_info) {\n if (service_info === void 0) { service_info = null; }\n request.headers = request.headers || {};\n if (request.body && !request.data) {\n throw new Error('The attribute \"body\" was found on the request object. Please use the attribute \"data\" instead.');\n }\n // datetime string and date string\n var dt = DateUtils.getDateWithClockOffset(), dt_str = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, ''), d_str = dt_str.substr(0, 8);\n var url_info = parse(request.url);\n request.headers['host'] = url_info.host;\n request.headers['x-amz-date'] = dt_str;\n if (access_info.session_token) {\n request.headers['X-Amz-Security-Token'] = access_info.session_token;\n }\n // Task 1: Create a Canonical Request\n var request_str = canonical_request(request);\n logger.debug(request_str);\n // Task 2: Create a String to Sign\n var serviceInfo = service_info || parse_service_info(request), scope = credential_scope(d_str, serviceInfo.region, serviceInfo.service), str_to_sign = string_to_sign(DEFAULT_ALGORITHM, request_str, dt_str, scope);\n // Task 3: Calculate the Signature\n var signing_key = get_signing_key(access_info.secret_key, d_str, serviceInfo), signature = get_signature(signing_key, str_to_sign);\n // Task 4: Adding the Signing information to the Request\n var authorization_header = get_authorization_header(DEFAULT_ALGORITHM, access_info.access_key, scope, signed_headers(request.headers), signature);\n request.headers['Authorization'] = authorization_header;\n return request;\n };\n Signer.signUrl = function (urlOrRequest, accessInfo, serviceInfo, expiration) {\n var urlToSign = typeof urlOrRequest === 'object' ? urlOrRequest.url : urlOrRequest;\n var method = typeof urlOrRequest === 'object' ? urlOrRequest.method : 'GET';\n var body = typeof urlOrRequest === 'object' ? urlOrRequest.body : undefined;\n var now = DateUtils.getDateWithClockOffset()\n .toISOString()\n .replace(/[:\\-]|\\.\\d{3}/g, '');\n var today = now.substr(0, 8);\n // Intentionally discarding search\n var _a = parse(urlToSign, true, true), search = _a.search, parsedUrl = __rest(_a, [\"search\"]);\n var host = parsedUrl.host;\n var signedHeaders = { host: host };\n var _b = serviceInfo || parse_service_info({ url: format(parsedUrl) }), region = _b.region, service = _b.service;\n var credentialScope = credential_scope(today, region, service);\n // IoT service does not allow the session token in the canonical request\n // https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html\n var sessionTokenRequired = accessInfo.session_token && service !== IOT_SERVICE_NAME;\n var queryParams = __assign(__assign(__assign({ 'X-Amz-Algorithm': DEFAULT_ALGORITHM, 'X-Amz-Credential': [accessInfo.access_key, credentialScope].join('/'), 'X-Amz-Date': now.substr(0, 16) }, (sessionTokenRequired\n ? { 'X-Amz-Security-Token': \"\" + accessInfo.session_token }\n : {})), (expiration ? { 'X-Amz-Expires': \"\" + expiration } : {})), { 'X-Amz-SignedHeaders': Object.keys(signedHeaders).join(',') });\n var canonicalRequest = canonical_request({\n method: method,\n url: format(__assign(__assign({}, parsedUrl), { query: __assign(__assign({}, parsedUrl.query), queryParams) })),\n headers: signedHeaders,\n data: body,\n });\n var stringToSign = string_to_sign(DEFAULT_ALGORITHM, canonicalRequest, now, credentialScope);\n var signing_key = get_signing_key(accessInfo.secret_key, today, {\n region: region,\n service: service,\n });\n var signature = get_signature(signing_key, stringToSign);\n var additionalQueryParams = __assign({ 'X-Amz-Signature': signature }, (accessInfo.session_token && {\n 'X-Amz-Security-Token': accessInfo.session_token,\n }));\n var result = format({\n protocol: parsedUrl.protocol,\n slashes: true,\n hostname: parsedUrl.hostname,\n port: parsedUrl.port,\n pathname: parsedUrl.pathname,\n query: __assign(__assign(__assign({}, parsedUrl.query), queryParams), additionalQueryParams),\n });\n return result;\n };\n return Signer;\n}());\nexport { Signer };\n/**\n * @deprecated use per-function import\n */\nexport default Signer;\n//# sourceMappingURL=Signer.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { ConsoleLogger as Logger, Credentials, DateUtils, Signer, Platform, } from '@aws-amplify/core';\nimport axios from 'axios';\nimport { parse, format } from 'url';\nvar logger = new Logger('RestClient');\n/**\n* HTTP Client for REST requests. Send and receive JSON data.\n* Sign request with AWS credentials if available\n* Usage:\n
\nconst restClient = new RestClient();\nrestClient.get('...')\n    .then(function(data) {\n        console.log(data);\n    })\n    .catch(err => console.log(err));\n
\n*/\nvar RestClient = /** @class */ (function () {\n /**\n * @param {RestClientOptions} [options] - Instance options\n */\n function RestClient(options) {\n this._region = 'us-east-1'; // this will be updated by endpoint function\n this._service = 'execute-api'; // this can be updated by endpoint function\n this._custom_header = undefined; // this can be updated by endpoint function\n /**\n * This weak map provides functionality to let clients cancel\n * in-flight axios requests. https://github.com/axios/axios#cancellation\n *\n * 1. For every axios request, a unique cancel token is generated and added in the request.\n * 2. Promise for fulfilling the request is then mapped to that unique cancel token.\n * 3. The promise is returned to the client.\n * 4. Clients can either wait for the promise to fulfill or call `API.cancel(promise)` to cancel the request.\n * 5. If `API.cancel(promise)` is called, then the corresponding cancel token is retrieved from the map below.\n * 6. Promise returned to the client will be in rejected state with the error provided during cancel.\n * 7. Clients can check if the error is because of cancelling by calling `API.isCancel(error)`.\n *\n * For more details, see https://github.com/aws-amplify/amplify-js/pull/3769#issuecomment-552660025\n */\n this._cancelTokenMap = null;\n this.Credentials = Credentials;\n this._options = options;\n logger.debug('API Options', this._options);\n if (this._cancelTokenMap == null) {\n this._cancelTokenMap = new WeakMap();\n }\n }\n /**\n * Update AWS credentials\n * @param {AWSCredentials} credentials - AWS credentials\n *\n updateCredentials(credentials: AWSCredentials) {\n this.options.credentials = credentials;\n }\n*/\n /**\n * Basic HTTP request. Customizable\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {string} method - Request HTTP method\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.ajax = function (urlOrApiInfo, method, init) {\n return __awaiter(this, void 0, void 0, function () {\n var parsed_url, url, region, service, custom_header, params, libraryHeaders, userAgent, initParams, isAllResponse, custom_header_obj, _a, _b, search, parsedUrl;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n logger.debug(method, urlOrApiInfo);\n region = 'us-east-1';\n service = 'execute-api';\n custom_header = undefined;\n if (typeof urlOrApiInfo === 'string') {\n parsed_url = this._parseUrl(urlOrApiInfo);\n url = urlOrApiInfo;\n }\n else {\n (url = urlOrApiInfo.endpoint, custom_header = urlOrApiInfo.custom_header, region = urlOrApiInfo.region, service = urlOrApiInfo.service);\n parsed_url = this._parseUrl(urlOrApiInfo.endpoint);\n }\n params = {\n method: method,\n url: url,\n host: parsed_url.host,\n path: parsed_url.path,\n headers: {},\n data: null,\n responseType: 'json',\n timeout: 0,\n cancelToken: null,\n };\n libraryHeaders = {};\n if (Platform.isReactNative) {\n userAgent = Platform.userAgent || 'aws-amplify/0.1.x';\n libraryHeaders = {\n 'User-Agent': userAgent,\n };\n }\n initParams = Object.assign({}, init);\n isAllResponse = initParams.response;\n if (initParams.body) {\n if (typeof FormData === 'function' &&\n initParams.body instanceof FormData) {\n libraryHeaders['Content-Type'] = 'multipart/form-data';\n params.data = initParams.body;\n }\n else {\n libraryHeaders['Content-Type'] = 'application/json; charset=UTF-8';\n params.data = JSON.stringify(initParams.body);\n }\n }\n if (initParams.responseType) {\n params.responseType = initParams.responseType;\n }\n if (initParams.withCredentials) {\n params['withCredentials'] = initParams.withCredentials;\n }\n if (initParams.timeout) {\n params.timeout = initParams.timeout;\n }\n if (initParams.cancellableToken) {\n params.cancelToken = initParams.cancellableToken.token;\n }\n params['signerServiceInfo'] = initParams.signerServiceInfo;\n if (!(typeof custom_header === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, custom_header()];\n case 1:\n _a = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = undefined;\n _c.label = 3;\n case 3:\n custom_header_obj = _a;\n params.headers = __assign(__assign(__assign({}, libraryHeaders), custom_header_obj), initParams.headers);\n _b = parse(url, true, true), search = _b.search, parsedUrl = __rest(_b, [\"search\"]);\n params.url = format(__assign(__assign({}, parsedUrl), { query: __assign(__assign({}, parsedUrl.query), (initParams.queryStringParameters || {})) }));\n // Do not sign the request if client has added 'Authorization' header,\n // which means custom authorizer.\n if (typeof params.headers['Authorization'] !== 'undefined') {\n params.headers = Object.keys(params.headers).reduce(function (acc, k) {\n if (params.headers[k]) {\n acc[k] = params.headers[k];\n }\n return acc;\n // tslint:disable-next-line:align\n }, {});\n return [2 /*return*/, this._request(params, isAllResponse)];\n }\n // Signing the request in case there credentials are available\n return [2 /*return*/, this.Credentials.get().then(function (credentials) {\n return _this._signed(__assign({}, params), credentials, isAllResponse, {\n region: region,\n service: service,\n }).catch(function (error) {\n if (DateUtils.isClockSkewError(error)) {\n var headers = error.response.headers;\n var dateHeader = headers && (headers.date || headers.Date);\n var responseDate = new Date(dateHeader);\n var requestDate = DateUtils.getDateFromHeaderString(params.headers['x-amz-date']);\n // Compare local clock to the server clock\n if (DateUtils.isClockSkewed(responseDate)) {\n DateUtils.setClockOffset(responseDate.getTime() - requestDate.getTime());\n return _this.ajax(urlOrApiInfo, method, init);\n }\n }\n throw error;\n });\n }, function (err) {\n logger.debug('No credentials available, the request will be unsigned');\n return _this._request(params, isAllResponse);\n })];\n }\n });\n });\n };\n /**\n * GET HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {JSON} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.get = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'GET', init);\n };\n /**\n * PUT HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.put = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'PUT', init);\n };\n /**\n * PATCH HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.patch = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'PATCH', init);\n };\n /**\n * POST HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.post = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'POST', init);\n };\n /**\n * DELETE HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.del = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'DELETE', init);\n };\n /**\n * HEAD HTTP request\n * @param {string | ApiInfo } urlOrApiInfo - Full request URL or Api information\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.head = function (urlOrApiInfo, init) {\n return this.ajax(urlOrApiInfo, 'HEAD', init);\n };\n /**\n * Cancel an inflight API request\n * @param {Promise} request - The request promise to cancel\n * @param {string} [message] - A message to include in the cancelation exception\n */\n RestClient.prototype.cancel = function (request, message) {\n var source = this._cancelTokenMap.get(request);\n if (source) {\n source.cancel(message);\n return true;\n }\n return false;\n };\n /**\n * Check if the request has a corresponding cancel token in the WeakMap.\n * @params request - The request promise\n * @return if the request has a corresponding cancel token.\n */\n RestClient.prototype.hasCancelToken = function (request) {\n return this._cancelTokenMap.has(request);\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param {any} error - Any error\n * @return {boolean} - A boolean indicating if the error was from an api request cancellation\n */\n RestClient.prototype.isCancel = function (error) {\n return axios.isCancel(error);\n };\n /**\n * Retrieves a new and unique cancel token which can be\n * provided in an axios request to be cancelled later.\n */\n RestClient.prototype.getCancellableToken = function () {\n return axios.CancelToken.source();\n };\n /**\n * Updates the weakmap with a response promise and its\n * cancel token such that the cancel token can be easily\n * retrieved (and used for cancelling the request)\n */\n RestClient.prototype.updateRequestToBeCancellable = function (promise, cancelTokenSource) {\n this._cancelTokenMap.set(promise, cancelTokenSource);\n };\n /**\n * Getting endpoint for API\n * @param {string} apiName - The name of the api\n * @return {string} - The endpoint of the api\n */\n RestClient.prototype.endpoint = function (apiName) {\n var _this = this;\n var cloud_logic_array = this._options.endpoints;\n var response = '';\n if (!Array.isArray(cloud_logic_array)) {\n return response;\n }\n cloud_logic_array.forEach(function (v) {\n if (v.name === apiName) {\n response = v.endpoint;\n if (typeof v.region === 'string') {\n _this._region = v.region;\n }\n else if (typeof _this._options.region === 'string') {\n _this._region = _this._options.region;\n }\n if (typeof v.service === 'string') {\n _this._service = v.service || 'execute-api';\n }\n else {\n _this._service = 'execute-api';\n }\n if (typeof v.custom_header === 'function') {\n _this._custom_header = v.custom_header;\n }\n else {\n _this._custom_header = undefined;\n }\n }\n });\n return response;\n };\n /** private methods **/\n RestClient.prototype._signed = function (params, credentials, isAllResponse, _a) {\n var service = _a.service, region = _a.region;\n var signerServiceInfoParams = params.signerServiceInfo, otherParams = __rest(params, [\"signerServiceInfo\"]);\n var endpoint_region = region || this._region || this._options.region;\n var endpoint_service = service || this._service || this._options.service;\n var creds = {\n secret_key: credentials.secretAccessKey,\n access_key: credentials.accessKeyId,\n session_token: credentials.sessionToken,\n };\n var endpointInfo = {\n region: endpoint_region,\n service: endpoint_service,\n };\n var signerServiceInfo = Object.assign(endpointInfo, signerServiceInfoParams);\n var signed_params = Signer.sign(otherParams, creds, signerServiceInfo);\n if (signed_params.data) {\n signed_params.body = signed_params.data;\n }\n logger.debug('Signed Request: ', signed_params);\n delete signed_params.headers['host'];\n return axios(signed_params)\n .then(function (response) { return (isAllResponse ? response : response.data); })\n .catch(function (error) {\n logger.debug(error);\n throw error;\n });\n };\n RestClient.prototype._request = function (params, isAllResponse) {\n if (isAllResponse === void 0) { isAllResponse = false; }\n return axios(params)\n .then(function (response) { return (isAllResponse ? response : response.data); })\n .catch(function (error) {\n logger.debug(error);\n throw error;\n });\n };\n RestClient.prototype._parseUrl = function (url) {\n var parts = url.split('/');\n return {\n host: parts[2],\n path: '/' + parts.slice(3).join('/'),\n };\n };\n return RestClient;\n}());\nexport { RestClient };\n//# sourceMappingURL=RestClient.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { RestClient } from './RestClient';\nimport { Amplify, ConsoleLogger as Logger, Credentials, } from '@aws-amplify/core';\nvar logger = new Logger('RestAPI');\n/**\n * Export Cloud Logic APIs\n */\nvar RestAPIClass = /** @class */ (function () {\n /**\n * Initialize Rest API with AWS configuration\n * @param {Object} options - Configuration object for API\n */\n function RestAPIClass(options) {\n this._api = null;\n this.Credentials = Credentials;\n this._options = options;\n logger.debug('API Options', this._options);\n }\n RestAPIClass.prototype.getModuleName = function () {\n return 'RestAPI';\n };\n /**\n * Configure API part with aws configurations\n * @param {Object} config - Configuration of the API\n * @return {Object} - The current configuration\n */\n RestAPIClass.prototype.configure = function (options) {\n var _a = options || {}, _b = _a.API, API = _b === void 0 ? {} : _b, otherOptions = __rest(_a, [\"API\"]);\n var opt = __assign(__assign({}, otherOptions), API);\n logger.debug('configure Rest API', { opt: opt });\n if (opt['aws_project_region']) {\n if (opt['aws_cloud_logic_custom']) {\n var custom = opt['aws_cloud_logic_custom'];\n opt.endpoints =\n typeof custom === 'string' ? JSON.parse(custom) : custom;\n }\n opt = Object.assign({}, opt, {\n region: opt['aws_project_region'],\n header: {},\n });\n }\n if (Array.isArray(opt.endpoints)) {\n // Check if endpoints has custom_headers and validate if is a function\n opt.endpoints.forEach(function (endpoint) {\n if (typeof endpoint.custom_header !== 'undefined' &&\n typeof endpoint.custom_header !== 'function') {\n logger.warn('Rest API ' + endpoint.name + ', custom_header should be a function');\n endpoint.custom_header = undefined;\n }\n });\n }\n else if (this._options && Array.isArray(this._options.endpoints)) {\n opt.endpoints = this._options.endpoints;\n }\n else {\n opt.endpoints = [];\n }\n this._options = Object.assign({}, this._options, opt);\n this.createInstance();\n return this._options;\n };\n /**\n * Create an instance of API for the library\n * @return - A promise of true if Success\n */\n RestAPIClass.prototype.createInstance = function () {\n logger.debug('create Rest API instance');\n this._api = new RestClient(this._options);\n // Share Amplify instance with client for SSR\n this._api.Credentials = this.Credentials;\n return true;\n };\n /**\n * Make a GET request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.get = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.get(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a POST request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.post = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.post(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a PUT request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.put = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.put(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a PATCH request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.patch = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.patch(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a DEL request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.del = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.del(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Make a HEAD request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestAPIClass.prototype.head = function (apiName, path, init) {\n try {\n var apiInfo = this.getEndpointInfo(apiName, path);\n var cancellableToken = this._api.getCancellableToken();\n var initParams = Object.assign({}, init);\n initParams.cancellableToken = cancellableToken;\n var responsePromise = this._api.head(apiInfo, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n }\n catch (err) {\n return Promise.reject(err.message);\n }\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param {any} error - Any error\n * @return {boolean} - A boolean indicating if the error was from an api request cancellation\n */\n RestAPIClass.prototype.isCancel = function (error) {\n return this._api.isCancel(error);\n };\n /**\n * Cancels an inflight request\n * @param {any} request - request to cancel\n * @return {boolean} - A boolean indicating if the request was cancelled\n */\n RestAPIClass.prototype.cancel = function (request, message) {\n return this._api.cancel(request, message);\n };\n /**\n * Check if the request has a corresponding cancel token in the WeakMap.\n * @params request - The request promise\n * @return if the request has a corresponding cancel token.\n */\n RestAPIClass.prototype.hasCancelToken = function (request) {\n return this._api.hasCancelToken(request);\n };\n /**\n * Getting endpoint for API\n * @param {string} apiName - The name of the api\n * @return {string} - The endpoint of the api\n */\n RestAPIClass.prototype.endpoint = function (apiName) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._api.endpoint(apiName)];\n });\n });\n };\n /**\n * Getting endpoint info for API\n * @param {string} apiName - The name of the api\n * @param {string} path - The path of the api that is going to accessed\n * @return {ApiInfo} - The endpoint information for that api-name\n */\n RestAPIClass.prototype.getEndpointInfo = function (apiName, path) {\n var cloud_logic_array = this._options.endpoints;\n if (!Array.isArray(cloud_logic_array)) {\n throw new Error(\"API category not configured\");\n }\n var apiConfig = cloud_logic_array.find(function (api) { return api.name === apiName; });\n if (!apiConfig) {\n throw new Error(\"API \" + apiName + \" does not exist\");\n }\n var response = {\n endpoint: apiConfig.endpoint + path,\n };\n if (typeof apiConfig.region === 'string') {\n response.region = apiConfig.region;\n }\n else if (typeof this._options.region === 'string') {\n response.region = this._options.region;\n }\n if (typeof apiConfig.service === 'string') {\n response.service = apiConfig.service || 'execute-api';\n }\n else {\n response.service = 'execute-api';\n }\n if (typeof apiConfig.custom_header === 'function') {\n response.custom_header = apiConfig.custom_header;\n }\n else {\n response.custom_header = undefined;\n }\n return response;\n };\n return RestAPIClass;\n}());\nexport { RestAPIClass };\nexport var RestAPI = new RestAPIClass(null);\nAmplify.register(RestAPI);\n//# sourceMappingURL=RestAPI.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport default function isObjectLike(value) {\n return _typeof(value) == 'object' && value !== null;\n}\n","// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nexport var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator != null ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator != null ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_TO_STRING_TAG = typeof Symbol === 'function' && Symbol.toStringTag != null ? Symbol.toStringTag : '@@toStringTag';\n","/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n var lineRegexp = /\\r\\n|[\\n\\r]/g;\n var line = 1;\n var column = position + 1;\n var match;\n\n while ((match = lineRegexp.exec(source.body)) && match.index < position) {\n line += 1;\n column = position + 1 - (match.index + match[0].length);\n }\n\n return {\n line: line,\n column: column\n };\n}\n","import { getLocation } from \"./location.mjs\";\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printLocation(location) {\n return printSourceLocation(location.source, getLocation(location.source, location.start));\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n var firstLineColumnOffset = source.locationOffset.column - 1;\n var body = whitespace(firstLineColumnOffset) + source.body;\n var lineIndex = sourceLocation.line - 1;\n var lineOffset = source.locationOffset.line - 1;\n var lineNum = sourceLocation.line + lineOffset;\n var columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n var columnNum = sourceLocation.column + columnOffset;\n var locationStr = \"\".concat(source.name, \":\").concat(lineNum, \":\").concat(columnNum, \"\\n\");\n var lines = body.split(/\\r\\n|[\\n\\r]/g);\n var locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n var subLineIndex = Math.floor(columnNum / 80);\n var subLineColumnNum = columnNum % 80;\n var subLines = [];\n\n for (var i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return locationStr + printPrefixedLines([[\"\".concat(lineNum), subLines[0]]].concat(subLines.slice(1, subLineIndex + 1).map(function (subLine) {\n return ['', subLine];\n }), [[' ', whitespace(subLineColumnNum - 1) + '^'], ['', subLines[subLineIndex + 1]]]));\n }\n\n return locationStr + printPrefixedLines([// Lines specified like this: [\"prefix\", \"string\"],\n [\"\".concat(lineNum - 1), lines[lineIndex - 1]], [\"\".concat(lineNum), locationLine], ['', whitespace(columnNum - 1) + '^'], [\"\".concat(lineNum + 1), lines[lineIndex + 1]]]);\n}\n\nfunction printPrefixedLines(lines) {\n var existingLines = lines.filter(function (_ref) {\n var _ = _ref[0],\n line = _ref[1];\n return line !== undefined;\n });\n var padLen = Math.max.apply(Math, existingLines.map(function (_ref2) {\n var prefix = _ref2[0];\n return prefix.length;\n }));\n return existingLines.map(function (_ref3) {\n var prefix = _ref3[0],\n line = _ref3[1];\n return leftPad(padLen, prefix) + (line ? ' | ' + line : ' |');\n }).join('\\n');\n}\n\nfunction whitespace(len) {\n return Array(len + 1).join(' ');\n}\n\nfunction leftPad(len, str) {\n return whitespace(len - str.length) + str;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport { getLocation } from \"../language/location.mjs\";\nimport { printLocation, printSourceLocation } from \"../language/printLocation.mjs\";\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport var GraphQLError = /*#__PURE__*/function (_Error) {\n _inherits(GraphQLError, _Error);\n\n var _super = _createSuper(GraphQLError);\n\n /**\n * An array of { line, column } locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {\n var _nodeLocations, _nodeLocations2, _nodeLocations3;\n\n var _this;\n\n _classCallCheck(this, GraphQLError);\n\n _this = _super.call(this, message);\n _this.name = 'GraphQLError';\n _this.originalError = originalError !== null && originalError !== void 0 ? originalError : undefined; // Compute list of blame nodes.\n\n _this.nodes = undefinedIfEmpty(Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined);\n var nodeLocations = [];\n\n for (var _i2 = 0, _ref3 = (_this$nodes = _this.nodes) !== null && _this$nodes !== void 0 ? _this$nodes : []; _i2 < _ref3.length; _i2++) {\n var _this$nodes;\n\n var _ref4 = _ref3[_i2];\n var loc = _ref4.loc;\n\n if (loc != null) {\n nodeLocations.push(loc);\n }\n }\n\n nodeLocations = undefinedIfEmpty(nodeLocations); // Compute locations in the source for the given nodes/positions.\n\n _this.source = source !== null && source !== void 0 ? source : (_nodeLocations = nodeLocations) === null || _nodeLocations === void 0 ? void 0 : _nodeLocations[0].source;\n _this.positions = positions !== null && positions !== void 0 ? positions : (_nodeLocations2 = nodeLocations) === null || _nodeLocations2 === void 0 ? void 0 : _nodeLocations2.map(function (loc) {\n return loc.start;\n });\n _this.locations = positions && source ? positions.map(function (pos) {\n return getLocation(source, pos);\n }) : (_nodeLocations3 = nodeLocations) === null || _nodeLocations3 === void 0 ? void 0 : _nodeLocations3.map(function (loc) {\n return getLocation(loc.source, loc.start);\n });\n _this.path = path !== null && path !== void 0 ? path : undefined;\n var originalExtensions = originalError === null || originalError === void 0 ? void 0 : originalError.extensions;\n\n if (extensions == null && isObjectLike(originalExtensions)) {\n _this.extensions = _objectSpread({}, originalExtensions);\n } else {\n _this.extensions = extensions !== null && extensions !== void 0 ? extensions : {};\n } // By being enumerable, JSON.stringify will include bellow properties in the resulting output.\n // This ensures that the simplest possible GraphQL service adheres to the spec.\n\n\n Object.defineProperties(_assertThisInitialized(_this), {\n message: {\n enumerable: true\n },\n locations: {\n enumerable: _this.locations != null\n },\n path: {\n enumerable: _this.path != null\n },\n extensions: {\n enumerable: _this.extensions != null && Object.keys(_this.extensions).length > 0\n },\n name: {\n enumerable: false\n },\n nodes: {\n enumerable: false\n },\n source: {\n enumerable: false\n },\n positions: {\n enumerable: false\n },\n originalError: {\n enumerable: false\n }\n }); // Include (non-enumerable) stack trace.\n\n if (originalError !== null && originalError !== void 0 && originalError.stack) {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true\n });\n return _possibleConstructorReturn(_this);\n } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_assertThisInitialized(_this), GraphQLError);\n } else {\n Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true\n });\n }\n\n return _this;\n }\n\n _createClass(GraphQLError, [{\n key: \"toString\",\n value: function toString() {\n return printError(this);\n } // FIXME: workaround to not break chai comparisons, should be remove in v16\n // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n }, {\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Object';\n }\n }]);\n\n return GraphQLError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n */\n\n\nexport function printError(error) {\n var output = error.message;\n\n if (error.nodes) {\n for (var _i4 = 0, _error$nodes2 = error.nodes; _i4 < _error$nodes2.length; _i4++) {\n var node = _error$nodes2[_i4];\n\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (error.source && error.locations) {\n for (var _i6 = 0, _error$locations2 = error.locations; _i6 < _error$locations2.length; _i6++) {\n var location = _error$locations2[_i6];\n output += '\\n\\n' + printSourceLocation(error.source, location);\n }\n }\n\n return output;\n}\n","import { GraphQLError } from \"./GraphQLError.mjs\";\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(\"Syntax Error: \".concat(description), undefined, source, [position]);\n}\n","/**\n * The set of allowed kind values for AST nodes.\n */\nexport var Kind = Object.freeze({\n // Name\n NAME: 'Name',\n // Document\n DOCUMENT: 'Document',\n OPERATION_DEFINITION: 'OperationDefinition',\n VARIABLE_DEFINITION: 'VariableDefinition',\n SELECTION_SET: 'SelectionSet',\n FIELD: 'Field',\n ARGUMENT: 'Argument',\n // Fragments\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_FRAGMENT: 'InlineFragment',\n FRAGMENT_DEFINITION: 'FragmentDefinition',\n // Values\n VARIABLE: 'Variable',\n INT: 'IntValue',\n FLOAT: 'FloatValue',\n STRING: 'StringValue',\n BOOLEAN: 'BooleanValue',\n NULL: 'NullValue',\n ENUM: 'EnumValue',\n LIST: 'ListValue',\n OBJECT: 'ObjectValue',\n OBJECT_FIELD: 'ObjectField',\n // Directives\n DIRECTIVE: 'Directive',\n // Types\n NAMED_TYPE: 'NamedType',\n LIST_TYPE: 'ListType',\n NON_NULL_TYPE: 'NonNullType',\n // Type System Definitions\n SCHEMA_DEFINITION: 'SchemaDefinition',\n OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n // Type Definitions\n SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n FIELD_DEFINITION: 'FieldDefinition',\n INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n // Directive Definitions\n DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n // Type System Extensions\n SCHEMA_EXTENSION: 'SchemaExtension',\n // Type Extensions\n SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'\n});\n/**\n * The enum type representing the possible kind values of AST nodes.\n */\n","export default function invariant(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message != null ? message : 'Unexpected invariant triggered.');\n }\n}\n","// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nvar nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;\n","import invariant from \"./invariant.mjs\";\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\n/**\n * The `defineInspect()` function defines `inspect()` prototype method as alias of `toJSON`\n */\n\nexport default function defineInspect(classObject) {\n var fn = classObject.prototype.toJSON;\n typeof fn === 'function' || invariant(0);\n classObject.prototype.inspect = fn; // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n if (nodejsCustomInspectSymbol) {\n classObject.prototype[nodejsCustomInspectSymbol] = fn;\n }\n}\n","import defineInspect from \"../jsutils/defineInspect.mjs\";\n\n/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport var Location = /*#__PURE__*/function () {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n function Location(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n var _proto = Location.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n start: this.start,\n end: this.end\n };\n };\n\n return Location;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Location);\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport var Token = /*#__PURE__*/function () {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. is always the first node and \n * the last.\n */\n function Token(kind, start, end, line, column, prev, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column;\n this.value = value;\n this.prev = prev;\n this.next = null;\n }\n\n var _proto2 = Token.prototype;\n\n _proto2.toJSON = function toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column\n };\n };\n\n return Token;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Token);\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n return maybeNode != null && typeof maybeNode.kind === 'string';\n}\n/**\n * The list of all possible AST node types.\n */\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nexport var TokenKind = Object.freeze({\n SOF: '',\n EOF: '',\n BANG: '!',\n DOLLAR: '$',\n AMP: '&',\n PAREN_L: '(',\n PAREN_R: ')',\n SPREAD: '...',\n COLON: ':',\n EQUALS: '=',\n AT: '@',\n BRACKET_L: '[',\n BRACKET_R: ']',\n BRACE_L: '{',\n PIPE: '|',\n BRACE_R: '}',\n NAME: 'Name',\n INT: 'Int',\n FLOAT: 'Float',\n STRING: 'String',\n BLOCK_STRING: 'BlockString',\n COMMENT: 'Comment'\n});\n/**\n * The enum type representing the token kinds values.\n */\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable flowtype/no-weak-types */\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\nvar MAX_ARRAY_LENGTH = 10;\nvar MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport default function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (_typeof(value)) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? \"[function \".concat(value.name, \"]\") : '[function]';\n\n case 'object':\n if (value === null) {\n return 'null';\n }\n\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (previouslySeenValues.indexOf(value) !== -1) {\n return '[Circular]';\n }\n\n var seenValues = [].concat(previouslySeenValues, [value]);\n var customInspectFn = getCustomFn(value);\n\n if (customInspectFn !== undefined) {\n var customValue = customInspectFn.call(value); // check for infinite recursion\n\n if (customValue !== value) {\n return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction formatObject(object, seenValues) {\n var keys = Object.keys(object);\n\n if (keys.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n var properties = keys.map(function (key) {\n var value = formatValue(object[key], seenValues);\n return key + ': ' + value;\n });\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n var len = Math.min(MAX_ARRAY_LENGTH, array.length);\n var remaining = array.length - len;\n var items = [];\n\n for (var i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(\"... \".concat(remaining, \" more items\"));\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getCustomFn(object) {\n var customInspectFn = object[String(nodejsCustomInspectSymbol)];\n\n if (typeof customInspectFn === 'function') {\n return customInspectFn;\n }\n\n if (typeof object.inspect === 'function') {\n return object.inspect;\n }\n}\n\nfunction getObjectTag(object) {\n var tag = Object.prototype.toString.call(object).replace(/^\\[object /, '').replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n var name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","export default function devAssert(condition, message) {\n var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport inspect from \"./inspect.mjs\";\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n */\n\n// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n// See: https://webpack.js.org/guides/production/\nexport default process.env.NODE_ENV === 'production' ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n// eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n return value instanceof constructor;\n} : // eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (_typeof(value) === 'object' && value !== null) {\n var _value$constructor;\n\n var className = constructor.prototype[Symbol.toStringTag];\n var valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name;\n\n if (className === valueClassName) {\n var stringifiedValue = inspect(value);\n throw new Error(\"Cannot use \".concat(className, \" \\\"\").concat(stringifiedValue, \"\\\" from another module or realm.\\n\\nEnsure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory. If different versions of \\\"graphql\\\" are the dependencies of other\\nrelied on modules, use \\\"resolutions\\\" to ensure only one version is installed.\\n\\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\\n\\nDuplicate \\\"graphql\\\" modules cannot be used at the same time since different\\nversions may have different capabilities and behavior. The data from one\\nversion used in the function from another could produce confusing and\\nspurious results.\"));\n }\n }\n\n return false;\n};\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport var Source = /*#__PURE__*/function () {\n function Source(body) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';\n var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n line: 1,\n column: 1\n };\n typeof body === 'string' || devAssert(0, \"Body must be a string. Received: \".concat(inspect(body), \".\"));\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');\n this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');\n } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n\n _createClass(Source, [{\n key: SYMBOL_TO_STRING_TAG,\n get: function get() {\n return 'Source';\n }\n }]);\n\n return Source;\n}();\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","/**\n * The set of allowed directive location values.\n */\nexport var DirectiveLocation = Object.freeze({\n // Request Definitions\n QUERY: 'QUERY',\n MUTATION: 'MUTATION',\n SUBSCRIPTION: 'SUBSCRIPTION',\n FIELD: 'FIELD',\n FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',\n FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',\n INLINE_FRAGMENT: 'INLINE_FRAGMENT',\n VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',\n // Type System Definitions\n SCHEMA: 'SCHEMA',\n SCALAR: 'SCALAR',\n OBJECT: 'OBJECT',\n FIELD_DEFINITION: 'FIELD_DEFINITION',\n ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',\n INTERFACE: 'INTERFACE',\n UNION: 'UNION',\n ENUM: 'ENUM',\n ENUM_VALUE: 'ENUM_VALUE',\n INPUT_OBJECT: 'INPUT_OBJECT',\n INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'\n});\n/**\n * The enum type representing the directive location values.\n */\n","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\nexport function dedentBlockStringValue(rawString) {\n // Expand a block string's raw value into independent lines.\n var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n var commonIndent = getBlockStringIndentation(rawString);\n\n if (commonIndent !== 0) {\n for (var i = 1; i < lines.length; i++) {\n lines[i] = lines[i].slice(commonIndent);\n }\n } // Remove leading and trailing blank lines.\n\n\n var startLine = 0;\n\n while (startLine < lines.length && isBlank(lines[startLine])) {\n ++startLine;\n }\n\n var endLine = lines.length;\n\n while (endLine > startLine && isBlank(lines[endLine - 1])) {\n --endLine;\n } // Return a string of the lines joined with U+000A.\n\n\n return lines.slice(startLine, endLine).join('\\n');\n}\n\nfunction isBlank(str) {\n for (var i = 0; i < str.length; ++i) {\n if (str[i] !== ' ' && str[i] !== '\\t') {\n return false;\n }\n }\n\n return true;\n}\n/**\n * @internal\n */\n\n\nexport function getBlockStringIndentation(value) {\n var _commonIndent;\n\n var isFirstLine = true;\n var isEmptyLine = true;\n var indent = 0;\n var commonIndent = null;\n\n for (var i = 0; i < value.length; ++i) {\n switch (value.charCodeAt(i)) {\n case 13:\n // \\r\n if (value.charCodeAt(i + 1) === 10) {\n ++i; // skip \\r\\n as one symbol\n }\n\n // falls through\n\n case 10:\n // \\n\n isFirstLine = false;\n isEmptyLine = true;\n indent = 0;\n break;\n\n case 9: // \\t\n\n case 32:\n // \n ++indent;\n break;\n\n default:\n if (isEmptyLine && !isFirstLine && (commonIndent === null || indent < commonIndent)) {\n commonIndent = indent;\n }\n\n isEmptyLine = false;\n }\n }\n\n return (_commonIndent = commonIndent) !== null && _commonIndent !== void 0 ? _commonIndent : 0;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value) {\n var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isSingleLine = value.indexOf('\\n') === -1;\n var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n var hasTrailingQuote = value[value.length - 1] === '\"';\n var hasTrailingSlash = value[value.length - 1] === '\\\\';\n var printAsMultipleLines = !isSingleLine || hasTrailingQuote || hasTrailingSlash || preferMultipleLines;\n var result = ''; // Format a multi-line block quote to account for leading space.\n\n if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n result += '\\n' + indentation;\n }\n\n result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n if (printAsMultipleLines) {\n result += '\\n';\n }\n\n return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Token } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { dedentBlockStringValue } from \"./blockString.mjs\";\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport var Lexer = /*#__PURE__*/function () {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n function Lexer(source) {\n var startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0, null);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n\n var _proto = Lexer.prototype;\n\n _proto.advance = function advance() {\n this.lastToken = this.token;\n var token = this.token = this.lookahead();\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n ;\n\n _proto.lookahead = function lookahead() {\n var token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n var _token$next;\n\n // Note: next is only mutable during parsing, so we cast to allow this.\n token = (_token$next = token.next) !== null && _token$next !== void 0 ? _token$next : token.next = readToken(this, token);\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n };\n\n return Lexer;\n}();\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;\n}\n\nfunction printCharCode(code) {\n return (// NaN/undefined represents access beyond the end of the file.\n isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII.\n code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.\n \"\\\"\\\\u\".concat(('00' + code.toString(16).toUpperCase()).slice(-4), \"\\\"\")\n );\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\n\nfunction readToken(lexer, prev) {\n var source = lexer.source;\n var body = source.body;\n var bodyLength = body.length;\n var pos = prev.end;\n\n while (pos < bodyLength) {\n var code = body.charCodeAt(pos);\n var _line = lexer.line;\n\n var _col = 1 + pos - lexer.lineStart; // SourceCharacter\n\n\n switch (code) {\n case 0xfeff: // \n\n case 9: // \\t\n\n case 32: // \n\n case 44:\n // ,\n ++pos;\n continue;\n\n case 10:\n // \\n\n ++pos;\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 13:\n // \\r\n if (body.charCodeAt(pos + 1) === 10) {\n pos += 2;\n } else {\n ++pos;\n }\n\n ++lexer.line;\n lexer.lineStart = pos;\n continue;\n\n case 33:\n // !\n return new Token(TokenKind.BANG, pos, pos + 1, _line, _col, prev);\n\n case 35:\n // #\n return readComment(source, pos, _line, _col, prev);\n\n case 36:\n // $\n return new Token(TokenKind.DOLLAR, pos, pos + 1, _line, _col, prev);\n\n case 38:\n // &\n return new Token(TokenKind.AMP, pos, pos + 1, _line, _col, prev);\n\n case 40:\n // (\n return new Token(TokenKind.PAREN_L, pos, pos + 1, _line, _col, prev);\n\n case 41:\n // )\n return new Token(TokenKind.PAREN_R, pos, pos + 1, _line, _col, prev);\n\n case 46:\n // .\n if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {\n return new Token(TokenKind.SPREAD, pos, pos + 3, _line, _col, prev);\n }\n\n break;\n\n case 58:\n // :\n return new Token(TokenKind.COLON, pos, pos + 1, _line, _col, prev);\n\n case 61:\n // =\n return new Token(TokenKind.EQUALS, pos, pos + 1, _line, _col, prev);\n\n case 64:\n // @\n return new Token(TokenKind.AT, pos, pos + 1, _line, _col, prev);\n\n case 91:\n // [\n return new Token(TokenKind.BRACKET_L, pos, pos + 1, _line, _col, prev);\n\n case 93:\n // ]\n return new Token(TokenKind.BRACKET_R, pos, pos + 1, _line, _col, prev);\n\n case 123:\n // {\n return new Token(TokenKind.BRACE_L, pos, pos + 1, _line, _col, prev);\n\n case 124:\n // |\n return new Token(TokenKind.PIPE, pos, pos + 1, _line, _col, prev);\n\n case 125:\n // }\n return new Token(TokenKind.BRACE_R, pos, pos + 1, _line, _col, prev);\n\n case 34:\n // \"\n if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {\n return readBlockString(source, pos, _line, _col, prev, lexer);\n }\n\n return readString(source, pos, _line, _col, prev);\n\n case 45: // -\n\n case 48: // 0\n\n case 49: // 1\n\n case 50: // 2\n\n case 51: // 3\n\n case 52: // 4\n\n case 53: // 5\n\n case 54: // 6\n\n case 55: // 7\n\n case 56: // 8\n\n case 57:\n // 9\n return readNumber(source, pos, code, _line, _col, prev);\n\n case 65: // A\n\n case 66: // B\n\n case 67: // C\n\n case 68: // D\n\n case 69: // E\n\n case 70: // F\n\n case 71: // G\n\n case 72: // H\n\n case 73: // I\n\n case 74: // J\n\n case 75: // K\n\n case 76: // L\n\n case 77: // M\n\n case 78: // N\n\n case 79: // O\n\n case 80: // P\n\n case 81: // Q\n\n case 82: // R\n\n case 83: // S\n\n case 84: // T\n\n case 85: // U\n\n case 86: // V\n\n case 87: // W\n\n case 88: // X\n\n case 89: // Y\n\n case 90: // Z\n\n case 95: // _\n\n case 97: // a\n\n case 98: // b\n\n case 99: // c\n\n case 100: // d\n\n case 101: // e\n\n case 102: // f\n\n case 103: // g\n\n case 104: // h\n\n case 105: // i\n\n case 106: // j\n\n case 107: // k\n\n case 108: // l\n\n case 109: // m\n\n case 110: // n\n\n case 111: // o\n\n case 112: // p\n\n case 113: // q\n\n case 114: // r\n\n case 115: // s\n\n case 116: // t\n\n case 117: // u\n\n case 118: // v\n\n case 119: // w\n\n case 120: // x\n\n case 121: // y\n\n case 122:\n // z\n return readName(source, pos, _line, _col, prev);\n }\n\n throw syntaxError(source, pos, unexpectedCharacterMessage(code));\n }\n\n var line = lexer.line;\n var col = 1 + pos - lexer.lineStart;\n return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);\n}\n/**\n * Report a message that an unexpected character was encountered.\n */\n\n\nfunction unexpectedCharacterMessage(code) {\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n return \"Cannot contain the invalid character \".concat(printCharCode(code), \".\");\n }\n\n if (code === 39) {\n // '\n return 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?';\n }\n\n return \"Cannot parse the unexpected character \".concat(printCharCode(code), \".\");\n}\n/**\n * Reads a comment token from the source file.\n *\n * #[\\u0009\\u0020-\\uFFFF]*\n */\n\n\nfunction readComment(source, start, line, col, prev) {\n var body = source.body;\n var code;\n var position = start;\n\n do {\n code = body.charCodeAt(++position);\n } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator\n code > 0x001f || code === 0x0009));\n\n return new Token(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));\n}\n/**\n * Reads a number token from the source file, either a float\n * or an int depending on whether a decimal point appears.\n *\n * Int: -?(0|[1-9][0-9]*)\n * Float: -?(0|[1-9][0-9]*)(\\.[0-9]+)?((E|e)(+|-)?[0-9]+)?\n */\n\n\nfunction readNumber(source, start, firstCode, line, col, prev) {\n var body = source.body;\n var code = firstCode;\n var position = start;\n var isFloat = false;\n\n if (code === 45) {\n // -\n code = body.charCodeAt(++position);\n }\n\n if (code === 48) {\n // 0\n code = body.charCodeAt(++position);\n\n if (code >= 48 && code <= 57) {\n throw syntaxError(source, position, \"Invalid number, unexpected digit after 0: \".concat(printCharCode(code), \".\"));\n }\n } else {\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 46) {\n // .\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n }\n\n if (code === 69 || code === 101) {\n // E e\n isFloat = true;\n code = body.charCodeAt(++position);\n\n if (code === 43 || code === 45) {\n // + -\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(source, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n\n if (code === 46 || isNameStart(code)) {\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n }\n\n return new Token(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));\n}\n/**\n * Returns the new position in the source after reading digits.\n */\n\n\nfunction readDigits(source, start, firstCode) {\n var body = source.body;\n var position = start;\n var code = firstCode;\n\n if (code >= 48 && code <= 57) {\n // 0 - 9\n do {\n code = body.charCodeAt(++position);\n } while (code >= 48 && code <= 57); // 0 - 9\n\n\n return position;\n }\n\n throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n}\n/**\n * Reads a string token from the source file.\n *\n * \"([^\"\\\\\\u000A\\u000D]|(\\\\(u[0-9a-fA-F]{4}|[\"\\\\/bfnrt])))*\"\n */\n\n\nfunction readString(source, start, line, col, prev) {\n var body = source.body;\n var position = start + 1;\n var chunkStart = position;\n var code = 0;\n var value = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator\n code !== 0x000a && code !== 0x000d) {\n // Closing Quote (\")\n if (code === 34) {\n value += body.slice(chunkStart, position);\n return new Token(TokenKind.STRING, start, position + 1, line, col, prev, value);\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n ++position;\n\n if (code === 92) {\n // \\\n value += body.slice(chunkStart, position - 1);\n code = body.charCodeAt(position);\n\n switch (code) {\n case 34:\n value += '\"';\n break;\n\n case 47:\n value += '/';\n break;\n\n case 92:\n value += '\\\\';\n break;\n\n case 98:\n value += '\\b';\n break;\n\n case 102:\n value += '\\f';\n break;\n\n case 110:\n value += '\\n';\n break;\n\n case 114:\n value += '\\r';\n break;\n\n case 116:\n value += '\\t';\n break;\n\n case 117:\n {\n // uXXXX\n var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));\n\n if (charCode < 0) {\n var invalidSequence = body.slice(position + 1, position + 5);\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\u\".concat(invalidSequence, \".\"));\n }\n\n value += String.fromCharCode(charCode);\n position += 4;\n break;\n }\n\n default:\n throw syntaxError(source, position, \"Invalid character escape sequence: \\\\\".concat(String.fromCharCode(code), \".\"));\n }\n\n ++position;\n chunkStart = position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Reads a block string token from the source file.\n *\n * \"\"\"(\"?\"?(\\\\\"\"\"|\\\\(?!=\"\"\")|[^\"\\\\]))*\"\"\"\n */\n\n\nfunction readBlockString(source, start, line, col, prev, lexer) {\n var body = source.body;\n var position = start + 3;\n var chunkStart = position;\n var code = 0;\n var rawValue = '';\n\n while (position < body.length && !isNaN(code = body.charCodeAt(position))) {\n // Closing Triple-Quote (\"\"\")\n if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {\n rawValue += body.slice(chunkStart, position);\n return new Token(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));\n } // SourceCharacter\n\n\n if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n }\n\n if (code === 10) {\n // new line\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n } else if (code === 13) {\n // carriage return\n if (body.charCodeAt(position + 1) === 10) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n } else if ( // Escape Triple-Quote (\\\"\"\")\n code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {\n rawValue += body.slice(chunkStart, position) + '\"\"\"';\n position += 4;\n chunkStart = position;\n } else {\n ++position;\n }\n }\n\n throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Converts four hexadecimal chars to the integer that the\n * string represents. For example, uniCharCode('0','0','0','f')\n * will return 15, and uniCharCode('0','0','f','f') returns 255.\n *\n * Returns a negative number on error, if a char was invalid.\n *\n * This is implemented by noting that char2hex() returns -1 on error,\n * which means the result of ORing the char2hex() will also be negative.\n */\n\n\nfunction uniCharCode(a, b, c, d) {\n return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);\n}\n/**\n * Converts a hex character to its integer value.\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 on error.\n */\n\n\nfunction char2hex(a) {\n return a >= 48 && a <= 57 ? a - 48 // 0-9\n : a >= 65 && a <= 70 ? a - 55 // A-F\n : a >= 97 && a <= 102 ? a - 87 // a-f\n : -1;\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * [_A-Za-z][_0-9A-Za-z]*\n */\n\n\nfunction readName(source, start, line, col, prev) {\n var body = source.body;\n var bodyLength = body.length;\n var position = start + 1;\n var code = 0;\n\n while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _\n code >= 48 && code <= 57 || // 0-9\n code >= 65 && code <= 90 || // A-Z\n code >= 97 && code <= 122) // a-z\n ) {\n ++position;\n }\n\n return new Token(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));\n} // _ A-Z a-z\n\n\nfunction isNameStart(code) {\n return code === 95 || code >= 65 && code <= 90 || code >= 97 && code <= 122;\n}\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Kind } from \"./kinds.mjs\";\nimport { Location } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { Source, isSource } from \"./source.mjs\";\nimport { DirectiveLocation } from \"./directiveLocation.mjs\";\nimport { Lexer, isPunctuatorTokenKind } from \"./lexer.mjs\";\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n var parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n var parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n var type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport var Parser = /*#__PURE__*/function () {\n function Parser(source, options) {\n var sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n\n var _proto = Parser.prototype;\n\n _proto.parseName = function parseName() {\n var token = this.expectToken(TokenKind.NAME);\n return {\n kind: Kind.NAME,\n value: token.value,\n loc: this.loc(token)\n };\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n ;\n\n _proto.parseDocument = function parseDocument() {\n var start = this._lexer.token;\n return {\n kind: Kind.DOCUMENT,\n definitions: this.many(TokenKind.SOF, this.parseDefinition, TokenKind.EOF),\n loc: this.loc(start)\n };\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n */\n ;\n\n _proto.parseDefinition = function parseDefinition() {\n if (this.peek(TokenKind.NAME)) {\n switch (this._lexer.token.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'schema':\n case 'scalar':\n case 'type':\n case 'interface':\n case 'union':\n case 'enum':\n case 'input':\n case 'directive':\n return this.parseTypeSystemDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n } else if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } else if (this.peekDescription()) {\n return this.parseTypeSystemDefinition();\n }\n\n throw this.unexpected();\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n ;\n\n _proto.parseOperationDefinition = function parseOperationDefinition() {\n var start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: 'query',\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n var operation = this.parseOperationType();\n var name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return {\n kind: Kind.OPERATION_DEFINITION,\n operation: operation,\n name: name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * OperationType : one of query mutation subscription\n */\n ;\n\n _proto.parseOperationType = function parseOperationType() {\n var operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return 'query';\n\n case 'mutation':\n return 'mutation';\n\n case 'subscription':\n return 'subscription';\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n ;\n\n _proto.parseVariableDefinitions = function parseVariableDefinitions() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R);\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseVariableDefinition = function parseVariableDefinition() {\n var start = this._lexer.token;\n return {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,\n directives: this.parseDirectives(true),\n loc: this.loc(start)\n };\n }\n /**\n * Variable : $ Name\n */\n ;\n\n _proto.parseVariable = function parseVariable() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n }\n /**\n * SelectionSet : { Selection+ }\n */\n ;\n\n _proto.parseSelectionSet = function parseSelectionSet() {\n var start = this._lexer.token;\n return {\n kind: Kind.SELECTION_SET,\n selections: this.many(TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n ;\n\n _proto.parseSelection = function parseSelection() {\n return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n ;\n\n _proto.parseField = function parseField() {\n var start = this._lexer.token;\n var nameOrAlias = this.parseName();\n var alias;\n var name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return {\n kind: Kind.FIELD,\n alias: alias,\n name: name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,\n loc: this.loc(start)\n };\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n ;\n\n _proto.parseArguments = function parseArguments(isConst) {\n var item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseArgument = function parseArgument() {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.ARGUMENT,\n name: name,\n value: this.parseValueLiteral(false),\n loc: this.loc(start)\n };\n };\n\n _proto.parseConstArgument = function parseConstArgument() {\n var start = this._lexer.token;\n return {\n kind: Kind.ARGUMENT,\n name: this.parseName(),\n value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n ;\n\n _proto.parseFragment = function parseFragment() {\n var start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n var hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n ;\n\n _proto.parseFragmentDefinition = function parseFragmentDefinition() {\n var _this$_options;\n\n var start = this._lexer.token;\n this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (((_this$_options = this._options) === null || _this$_options === void 0 ? void 0 : _this$_options.experimentalFragmentVariables) === true) {\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n\n return {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n loc: this.loc(start)\n };\n }\n /**\n * FragmentName : Name but not `on`\n */\n ;\n\n _proto.parseFragmentName = function parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n ;\n\n _proto.parseValueLiteral = function parseValueLiteral(isConst) {\n var token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this._lexer.advance();\n\n return {\n kind: Kind.INT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.FLOAT:\n this._lexer.advance();\n\n return {\n kind: Kind.FLOAT,\n value: token.value,\n loc: this.loc(token)\n };\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this._lexer.advance();\n\n switch (token.value) {\n case 'true':\n return {\n kind: Kind.BOOLEAN,\n value: true,\n loc: this.loc(token)\n };\n\n case 'false':\n return {\n kind: Kind.BOOLEAN,\n value: false,\n loc: this.loc(token)\n };\n\n case 'null':\n return {\n kind: Kind.NULL,\n loc: this.loc(token)\n };\n\n default:\n return {\n kind: Kind.ENUM,\n value: token.value,\n loc: this.loc(token)\n };\n }\n\n case TokenKind.DOLLAR:\n if (!isConst) {\n return this.parseVariable();\n }\n\n break;\n }\n\n throw this.unexpected();\n };\n\n _proto.parseStringLiteral = function parseStringLiteral() {\n var token = this._lexer.token;\n\n this._lexer.advance();\n\n return {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n loc: this.loc(token)\n };\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n ;\n\n _proto.parseList = function parseList(isConst) {\n var _this = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this.parseValueLiteral(isConst);\n };\n\n return {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n */\n ;\n\n _proto.parseObject = function parseObject(isConst) {\n var _this2 = this;\n\n var start = this._lexer.token;\n\n var item = function item() {\n return _this2.parseObjectField(isConst);\n };\n\n return {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n loc: this.loc(start)\n };\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n ;\n\n _proto.parseObjectField = function parseObjectField(isConst) {\n var start = this._lexer.token;\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return {\n kind: Kind.OBJECT_FIELD,\n name: name,\n value: this.parseValueLiteral(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n ;\n\n _proto.parseDirectives = function parseDirectives(isConst) {\n var directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n /**\n * Directive[Const] : @ Name Arguments[?Const]?\n */\n ;\n\n _proto.parseDirective = function parseDirective(isConst) {\n var start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n ;\n\n _proto.parseTypeReference = function parseTypeReference() {\n var start = this._lexer.token;\n var type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n type = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = {\n kind: Kind.LIST_TYPE,\n type: type,\n loc: this.loc(start)\n };\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return {\n kind: Kind.NON_NULL_TYPE,\n type: type,\n loc: this.loc(start)\n };\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n ;\n\n _proto.parseNamedType = function parseNamedType() {\n var start = this._lexer.token;\n return {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n loc: this.loc(start)\n };\n } // Implements the parsing rules in the Type Definition section.\n\n /**\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {\n // Many definitions begin with a description and require a lookahead.\n var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n }\n\n throw this.unexpected(keywordToken);\n };\n\n _proto.peekDescription = function peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n ;\n\n _proto.parseDescription = function parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n */\n ;\n\n _proto.parseSchemaDefinition = function parseSchemaDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.many(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n return {\n kind: Kind.SCHEMA_DEFINITION,\n description: description,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n ;\n\n _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {\n var start = this._lexer.token;\n var operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n var type = this.parseNamedType();\n return {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation: operation,\n type: type,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n ;\n\n _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n ;\n\n _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {\n var _this$_options2;\n\n if (!this.expectOptionalKeyword('implements')) {\n return [];\n }\n\n if (((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true) {\n var types = []; // Optional leading ampersand\n\n this.expectOptionalToken(TokenKind.AMP);\n\n do {\n types.push(this.parseNamedType());\n } while (this.expectOptionalToken(TokenKind.AMP) || this.peek(TokenKind.NAME));\n\n return types;\n }\n\n return this.delimitedMany(TokenKind.AMP, this.parseNamedType);\n }\n /**\n * FieldsDefinition : { FieldDefinition+ }\n */\n ;\n\n _proto.parseFieldsDefinition = function parseFieldsDefinition() {\n var _this$_options3;\n\n // Legacy support for the SDL?\n if (((_this$_options3 = this._options) === null || _this$_options3 === void 0 ? void 0 : _this$_options3.allowLegacySDLEmptyFields) === true && this.peek(TokenKind.BRACE_L) && this._lexer.lookahead().kind === TokenKind.BRACE_R) {\n this._lexer.advance();\n\n this._lexer.advance();\n\n return [];\n }\n\n return this.optionalMany(TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R);\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n ;\n\n _proto.parseFieldDefinition = function parseFieldDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.FIELD_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n type: type,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n ;\n\n _proto.parseArgumentDefs = function parseArgumentDefs() {\n return this.optionalMany(TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R);\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n ;\n\n _proto.parseInputValueDef = function parseInputValueDef() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n this.expectToken(TokenKind.COLON);\n var type = this.parseTypeReference();\n var defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseValueLiteral(true);\n }\n\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description: description,\n name: name,\n type: type,\n defaultValue: defaultValue,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n ;\n\n _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description: description,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n ;\n\n _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n ;\n\n _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS) ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType) : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n ;\n\n _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * EnumValuesDefinition : { EnumValueDefinition+ }\n */\n ;\n\n _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R);\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n *\n * EnumValue : Name\n */\n ;\n\n _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n ;\n\n _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description: description,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InputFieldsDefinition : { InputValueDefinition+ }\n */\n ;\n\n _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {\n return this.optionalMany(TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R);\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n ;\n\n _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {\n var keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n */\n ;\n\n _proto.parseSchemaExtension = function parseSchemaExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n var directives = this.parseDirectives(true);\n var operationTypes = this.optionalMany(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCHEMA_EXTENSION,\n directives: directives,\n operationTypes: operationTypes,\n loc: this.loc(start)\n };\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n ;\n\n _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name: name,\n directives: directives,\n loc: this.loc(start)\n };\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n ;\n\n _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n ;\n\n _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n var name = this.parseName();\n var interfaces = this.parseImplementsInterfaces();\n var directives = this.parseDirectives(true);\n var fields = this.parseFieldsDefinition();\n\n if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name: name,\n interfaces: interfaces,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n ;\n\n _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.UNION_TYPE_EXTENSION,\n name: name,\n directives: directives,\n types: types,\n loc: this.loc(start)\n };\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n ;\n\n _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name: name,\n directives: directives,\n values: values,\n loc: this.loc(start)\n };\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n ;\n\n _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {\n var start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n var name = this.parseName();\n var directives = this.parseDirectives(true);\n var fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name: name,\n directives: directives,\n fields: fields,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n */\n ;\n\n _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {\n var start = this._lexer.token;\n var description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n var name = this.parseName();\n var args = this.parseArgumentDefs();\n var repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n var locations = this.parseDirectiveLocations();\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n description: description,\n name: name,\n arguments: args,\n repeatable: repeatable,\n locations: locations,\n loc: this.loc(start)\n };\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n ;\n\n _proto.parseDirectiveLocations = function parseDirectiveLocations() {\n return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n ;\n\n _proto.parseDirectiveLocation = function parseDirectiveLocation() {\n var start = this._lexer.token;\n var name = this.parseName();\n\n if (DirectiveLocation[name.value] !== undefined) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a location object, used to identify the place in the source that created a given parsed object.\n */\n ;\n\n _proto.loc = function loc(startToken) {\n var _this$_options4;\n\n if (((_this$_options4 = this._options) === null || _this$_options4 === void 0 ? void 0 : _this$_options4.noLocation) !== true) {\n return new Location(startToken, this._lexer.lastToken, this._lexer.source);\n }\n }\n /**\n * Determines if the next token is of a given kind\n */\n ;\n\n _proto.peek = function peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectToken = function expectToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n throw syntaxError(this._lexer.source, token.start, \"Expected \".concat(getTokenKindDesc(kind), \", found \").concat(getTokenDesc(token), \".\"));\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and return undefined.\n */\n ;\n\n _proto.expectOptionalToken = function expectOptionalToken(kind) {\n var token = this._lexer.token;\n\n if (token.kind === kind) {\n this._lexer.advance();\n\n return token;\n }\n\n return undefined;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n ;\n\n _proto.expectKeyword = function expectKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n } else {\n throw syntaxError(this._lexer.source, token.start, \"Expected \\\"\".concat(value, \"\\\", found \").concat(getTokenDesc(token), \".\"));\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n ;\n\n _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {\n var token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this._lexer.advance();\n\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token is encountered.\n */\n ;\n\n _proto.unexpected = function unexpected(atToken) {\n var token = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(this._lexer.source, token.start, \"Unexpected \".concat(getTokenDesc(token), \".\"));\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.any = function any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always return non-empty list\n * that begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n ;\n\n _proto.many = function many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n * Advances the parser to the next lex token after last item in the list.\n */\n ;\n\n _proto.delimitedMany = function delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n var nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n };\n\n return Parser;\n}();\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n var value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? \" \\\"\".concat(value, \"\\\"\") : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? \"\\\"\".concat(kind, \"\\\"\") : kind;\n}\n","import inspect from \"../jsutils/inspect.mjs\";\nimport { isNode } from \"./ast.mjs\";\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport var QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n 'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],\n InterfaceTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields']\n};\nexport var BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to four permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n *\n * 2) Named visitors that trigger upon entering and leaving a node of\n * a specific kind.\n *\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n *\n * 4) Parallel visitors for entering and leaving nodes of a specific kind.\n *\n * visit(ast, {\n * enter: {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * },\n * leave: {\n * Kind(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n */\n\nexport function visit(root, visitor) {\n var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;\n\n /* eslint-disable no-undef-init */\n var stack = undefined;\n var inArray = Array.isArray(root);\n var keys = [root];\n var index = -1;\n var edits = [];\n var node = undefined;\n var key = undefined;\n var parent = undefined;\n var path = [];\n var ancestors = [];\n var newRoot = root;\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n var isLeaving = index === keys.length;\n var isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n } else {\n var clone = {};\n\n for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n clone[k] = node[k];\n }\n\n node = clone;\n }\n\n var editOffset = 0;\n\n for (var ii = 0; ii < edits.length; ii++) {\n var editKey = edits[ii][0];\n var editValue = edits[ii][1];\n\n if (inArray) {\n editKey -= editOffset;\n }\n\n if (inArray && editValue === null) {\n node.splice(editKey, 1);\n editOffset++;\n } else {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else {\n key = parent ? inArray ? index : keys[index] : undefined;\n node = parent ? parent[key] : newRoot;\n\n if (node === null || node === undefined) {\n continue;\n }\n\n if (parent) {\n path.push(key);\n }\n }\n\n var result = void 0;\n\n if (!Array.isArray(node)) {\n if (!isNode(node)) {\n throw new Error(\"Invalid AST Node: \".concat(inspect(node), \".\"));\n }\n\n var visitFn = getVisitFn(visitor, node.kind, isLeaving);\n\n if (visitFn) {\n result = visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _visitorKeys$node$kin;\n\n stack = {\n inArray: inArray,\n index: index,\n keys: keys,\n edits: edits,\n prev: stack\n };\n inArray = Array.isArray(node);\n keys = inArray ? node : (_visitorKeys$node$kin = visitorKeys[node.kind]) !== null && _visitorKeys$node$kin !== void 0 ? _visitorKeys$node$kin : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n newRoot = edits[edits.length - 1][1];\n }\n\n return newRoot;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n var skipping = new Array(visitors.length);\n return {\n enter: function enter(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n false);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n }\n },\n leave: function leave(node) {\n for (var i = 0; i < visitors.length; i++) {\n if (skipping[i] == null) {\n var fn = getVisitFn(visitors[i], node.kind,\n /* isLeaving */\n true);\n\n if (fn) {\n var result = fn.apply(visitors[i], arguments);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n }\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n var kindVisitor = visitor[kind];\n\n if (kindVisitor) {\n if (!isLeaving && typeof kindVisitor === 'function') {\n // { Kind() {} }\n return kindVisitor;\n }\n\n var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;\n\n if (typeof kindSpecificVisitor === 'function') {\n // { Kind: { enter() {}, leave() {} } }\n return kindSpecificVisitor;\n }\n } else {\n var specificVisitor = isLeaving ? visitor.leave : visitor.enter;\n\n if (specificVisitor) {\n if (typeof specificVisitor === 'function') {\n // { enter() {}, leave() {} }\n return specificVisitor;\n }\n\n var specificKindVisitor = specificVisitor[kind];\n\n if (typeof specificKindVisitor === 'function') {\n // { enter: { Kind() {} }, leave: { Kind() {} } }\n return specificKindVisitor;\n }\n }\n }\n}\n","import { visit } from \"./visitor.mjs\";\nimport { printBlockString } from \"./blockString.mjs\";\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, {\n leave: printDocASTReducer\n });\n}\nvar MAX_LINE_LENGTH = 80; // TODO: provide better type coverage in future\n\nvar printDocASTReducer = {\n Name: function Name(node) {\n return node.value;\n },\n Variable: function Variable(node) {\n return '$' + node.name;\n },\n // Document\n Document: function Document(node) {\n return join(node.definitions, '\\n\\n') + '\\n';\n },\n OperationDefinition: function OperationDefinition(node) {\n var op = node.operation;\n var name = node.name;\n var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n var directives = join(node.directives, ' ');\n var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');\n },\n VariableDefinition: function VariableDefinition(_ref) {\n var variable = _ref.variable,\n type = _ref.type,\n defaultValue = _ref.defaultValue,\n directives = _ref.directives;\n return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));\n },\n SelectionSet: function SelectionSet(_ref2) {\n var selections = _ref2.selections;\n return block(selections);\n },\n Field: function Field(_ref3) {\n var alias = _ref3.alias,\n name = _ref3.name,\n args = _ref3.arguments,\n directives = _ref3.directives,\n selectionSet = _ref3.selectionSet;\n var prefix = wrap('', alias, ': ') + name;\n var argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n Argument: function Argument(_ref4) {\n var name = _ref4.name,\n value = _ref4.value;\n return name + ': ' + value;\n },\n // Fragments\n FragmentSpread: function FragmentSpread(_ref5) {\n var name = _ref5.name,\n directives = _ref5.directives;\n return '...' + name + wrap(' ', join(directives, ' '));\n },\n InlineFragment: function InlineFragment(_ref6) {\n var typeCondition = _ref6.typeCondition,\n directives = _ref6.directives,\n selectionSet = _ref6.selectionSet;\n return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');\n },\n FragmentDefinition: function FragmentDefinition(_ref7) {\n var name = _ref7.name,\n typeCondition = _ref7.typeCondition,\n variableDefinitions = _ref7.variableDefinitions,\n directives = _ref7.directives,\n selectionSet = _ref7.selectionSet;\n return (// Note: fragment variable definitions are experimental and may be changed\n // or removed in the future.\n \"fragment \".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), \" \") + \"on \".concat(typeCondition, \" \").concat(wrap('', join(directives, ' '), ' ')) + selectionSet\n );\n },\n // Value\n IntValue: function IntValue(_ref8) {\n var value = _ref8.value;\n return value;\n },\n FloatValue: function FloatValue(_ref9) {\n var value = _ref9.value;\n return value;\n },\n StringValue: function StringValue(_ref10, key) {\n var value = _ref10.value,\n isBlockString = _ref10.block;\n return isBlockString ? printBlockString(value, key === 'description' ? '' : ' ') : JSON.stringify(value);\n },\n BooleanValue: function BooleanValue(_ref11) {\n var value = _ref11.value;\n return value ? 'true' : 'false';\n },\n NullValue: function NullValue() {\n return 'null';\n },\n EnumValue: function EnumValue(_ref12) {\n var value = _ref12.value;\n return value;\n },\n ListValue: function ListValue(_ref13) {\n var values = _ref13.values;\n return '[' + join(values, ', ') + ']';\n },\n ObjectValue: function ObjectValue(_ref14) {\n var fields = _ref14.fields;\n return '{' + join(fields, ', ') + '}';\n },\n ObjectField: function ObjectField(_ref15) {\n var name = _ref15.name,\n value = _ref15.value;\n return name + ': ' + value;\n },\n // Directive\n Directive: function Directive(_ref16) {\n var name = _ref16.name,\n args = _ref16.arguments;\n return '@' + name + wrap('(', join(args, ', '), ')');\n },\n // Type\n NamedType: function NamedType(_ref17) {\n var name = _ref17.name;\n return name;\n },\n ListType: function ListType(_ref18) {\n var type = _ref18.type;\n return '[' + type + ']';\n },\n NonNullType: function NonNullType(_ref19) {\n var type = _ref19.type;\n return type + '!';\n },\n // Type System Definitions\n SchemaDefinition: addDescription(function (_ref20) {\n var directives = _ref20.directives,\n operationTypes = _ref20.operationTypes;\n return join(['schema', join(directives, ' '), block(operationTypes)], ' ');\n }),\n OperationTypeDefinition: function OperationTypeDefinition(_ref21) {\n var operation = _ref21.operation,\n type = _ref21.type;\n return operation + ': ' + type;\n },\n ScalarTypeDefinition: addDescription(function (_ref22) {\n var name = _ref22.name,\n directives = _ref22.directives;\n return join(['scalar', name, join(directives, ' ')], ' ');\n }),\n ObjectTypeDefinition: addDescription(function (_ref23) {\n var name = _ref23.name,\n interfaces = _ref23.interfaces,\n directives = _ref23.directives,\n fields = _ref23.fields;\n return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n FieldDefinition: addDescription(function (_ref24) {\n var name = _ref24.name,\n args = _ref24.arguments,\n type = _ref24.type,\n directives = _ref24.directives;\n return name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));\n }),\n InputValueDefinition: addDescription(function (_ref25) {\n var name = _ref25.name,\n type = _ref25.type,\n defaultValue = _ref25.defaultValue,\n directives = _ref25.directives;\n return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');\n }),\n InterfaceTypeDefinition: addDescription(function (_ref26) {\n var name = _ref26.name,\n interfaces = _ref26.interfaces,\n directives = _ref26.directives,\n fields = _ref26.fields;\n return join(['interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n }),\n UnionTypeDefinition: addDescription(function (_ref27) {\n var name = _ref27.name,\n directives = _ref27.directives,\n types = _ref27.types;\n return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n }),\n EnumTypeDefinition: addDescription(function (_ref28) {\n var name = _ref28.name,\n directives = _ref28.directives,\n values = _ref28.values;\n return join(['enum', name, join(directives, ' '), block(values)], ' ');\n }),\n EnumValueDefinition: addDescription(function (_ref29) {\n var name = _ref29.name,\n directives = _ref29.directives;\n return join([name, join(directives, ' ')], ' ');\n }),\n InputObjectTypeDefinition: addDescription(function (_ref30) {\n var name = _ref30.name,\n directives = _ref30.directives,\n fields = _ref30.fields;\n return join(['input', name, join(directives, ' '), block(fields)], ' ');\n }),\n DirectiveDefinition: addDescription(function (_ref31) {\n var name = _ref31.name,\n args = _ref31.arguments,\n repeatable = _ref31.repeatable,\n locations = _ref31.locations;\n return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');\n }),\n SchemaExtension: function SchemaExtension(_ref32) {\n var directives = _ref32.directives,\n operationTypes = _ref32.operationTypes;\n return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');\n },\n ScalarTypeExtension: function ScalarTypeExtension(_ref33) {\n var name = _ref33.name,\n directives = _ref33.directives;\n return join(['extend scalar', name, join(directives, ' ')], ' ');\n },\n ObjectTypeExtension: function ObjectTypeExtension(_ref34) {\n var name = _ref34.name,\n interfaces = _ref34.interfaces,\n directives = _ref34.directives,\n fields = _ref34.fields;\n return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {\n var name = _ref35.name,\n interfaces = _ref35.interfaces,\n directives = _ref35.directives,\n fields = _ref35.fields;\n return join(['extend interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n },\n UnionTypeExtension: function UnionTypeExtension(_ref36) {\n var name = _ref36.name,\n directives = _ref36.directives,\n types = _ref36.types;\n return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n },\n EnumTypeExtension: function EnumTypeExtension(_ref37) {\n var name = _ref37.name,\n directives = _ref37.directives,\n values = _ref37.values;\n return join(['extend enum', name, join(directives, ' '), block(values)], ' ');\n },\n InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {\n var name = _ref38.name,\n directives = _ref38.directives,\n fields = _ref38.fields;\n return join(['extend input', name, join(directives, ' '), block(fields)], ' ');\n }\n};\n\nfunction addDescription(cb) {\n return function (node) {\n return join([node.description, cb(node)], '\\n');\n };\n}\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\n\nfunction join(maybeArray) {\n var _maybeArray$filter$jo;\n\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (_maybeArray$filter$jo = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter(function (x) {\n return x;\n }).join(separator)) !== null && _maybeArray$filter$jo !== void 0 ? _maybeArray$filter$jo : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an\n * indented \"{ }\" block.\n */\n\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\n\nfunction wrap(start, maybeString) {\n var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n return maybeString != null && maybeString !== '' ? start + maybeString + end : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction isMultiline(str) {\n return str.indexOf('\\n') !== -1;\n}\n\nfunction hasMultilineItems(maybeArray) {\n return maybeArray != null && maybeArray.some(isMultiline);\n}\n","/*\n * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n/**\n * This Symbol is used to reference an internal-only PubSub provider that\n * is used for AppSync/GraphQL subscriptions in the API category.\n */\nvar hasSymbol = typeof Symbol !== 'undefined' && typeof Symbol.for === 'function';\n/**\n * @deprecated Unused, all usecases have migrated to INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER\n */\nexport var INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER = hasSymbol\n ? Symbol.for('INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER')\n : '@@INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER';\nexport var INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER = hasSymbol\n ? Symbol.for('INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER')\n : '@@INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER';\nexport var USER_AGENT_HEADER = 'x-amz-user-agent';\n//# sourceMappingURL=constants.js.map","/*\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nexport var CONTROL_MSG;\n(function (CONTROL_MSG) {\n CONTROL_MSG[\"CONNECTION_CLOSED\"] = \"Connection closed\";\n CONTROL_MSG[\"CONNECTION_FAILED\"] = \"Connection failed\";\n CONTROL_MSG[\"REALTIME_SUBSCRIPTION_INIT_ERROR\"] = \"AppSync Realtime subscription init error\";\n CONTROL_MSG[\"SUBSCRIPTION_ACK\"] = \"Subscription ack\";\n CONTROL_MSG[\"TIMEOUT_DISCONNECT\"] = \"Timeout disconnect\";\n})(CONTROL_MSG || (CONTROL_MSG = {}));\n/** @enum {string} */\nexport var ConnectionState;\n(function (ConnectionState) {\n /*\n * The connection is alive and healthy\n */\n ConnectionState[\"Connected\"] = \"Connected\";\n /*\n * The connection is alive, but the connection is offline\n */\n ConnectionState[\"ConnectedPendingNetwork\"] = \"ConnectedPendingNetwork\";\n /*\n * The connection has been disconnected while in use\n */\n ConnectionState[\"ConnectionDisrupted\"] = \"ConnectionDisrupted\";\n /*\n * The connection has been disconnected and the network is offline\n */\n ConnectionState[\"ConnectionDisruptedPendingNetwork\"] = \"ConnectionDisruptedPendingNetwork\";\n /*\n * The connection is in the process of connecting\n */\n ConnectionState[\"Connecting\"] = \"Connecting\";\n /*\n * The connection is not in use and is being disconnected\n */\n ConnectionState[\"ConnectedPendingDisconnect\"] = \"ConnectedPendingDisconnect\";\n /*\n * The connection is not in use and has been disconnected\n */\n ConnectionState[\"Disconnected\"] = \"Disconnected\";\n /*\n * The connection is alive, but a keep alive message has been missed\n */\n ConnectionState[\"ConnectedPendingKeepAlive\"] = \"ConnectedPendingKeepAlive\";\n})(ConnectionState || (ConnectionState = {}));\n//# sourceMappingURL=PubSub.js.map","import zenObservable from 'zen-observable';\n\nvar Observable = zenObservable;\n\nexport default Observable;\nexport { Observable };\n//# sourceMappingURL=bundle.esm.js.map\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('AbstractPubSubProvider');\nvar AbstractPubSubProvider = /** @class */ (function () {\n function AbstractPubSubProvider(options) {\n if (options === void 0) { options = {}; }\n this._config = options;\n }\n AbstractPubSubProvider.prototype.configure = function (config) {\n if (config === void 0) { config = {}; }\n this._config = __assign(__assign({}, config), this._config);\n logger.debug(\"configure \" + this.getProviderName(), this._config);\n return this.options;\n };\n AbstractPubSubProvider.prototype.getCategory = function () {\n return 'PubSub';\n };\n Object.defineProperty(AbstractPubSubProvider.prototype, \"options\", {\n get: function () {\n return __assign({}, this._config);\n },\n enumerable: true,\n configurable: true\n });\n return AbstractPubSubProvider;\n}());\nexport { AbstractPubSubProvider };\n//# sourceMappingURL=PubSubProvider.js.map","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nimport { browserOrNode, isWebWorker } from '@aws-amplify/core';\nimport Observable from 'zen-observable-ts';\nvar ReachabilityNavigator = /** @class */ (function () {\n function ReachabilityNavigator() {\n }\n ReachabilityNavigator.prototype.networkMonitor = function (netInfo) {\n if (browserOrNode().isNode) {\n return Observable.from([{ online: true }]);\n }\n var globalObj = isWebWorker() ? self : window;\n return new Observable(function (observer) {\n observer.next({ online: globalObj.navigator.onLine });\n var notifyOnline = function () { return observer.next({ online: true }); };\n var notifyOffline = function () { return observer.next({ online: false }); };\n globalObj.addEventListener('online', notifyOnline);\n globalObj.addEventListener('offline', notifyOffline);\n ReachabilityNavigator._observers.push(observer);\n return function () {\n globalObj.removeEventListener('online', notifyOnline);\n globalObj.removeEventListener('offline', notifyOffline);\n ReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(function (_observer) { return _observer !== observer; });\n };\n });\n };\n // expose observers to simulate offline mode for integration testing\n ReachabilityNavigator._observerOverride = function (status) {\n var e_1, _a;\n var _loop_1 = function (observer) {\n if (observer.closed) {\n ReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(function (_observer) { return _observer !== observer; });\n return \"continue\";\n }\n observer.next(status);\n };\n try {\n for (var _b = __values(ReachabilityNavigator._observers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n _loop_1(observer);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n ReachabilityNavigator._observers = [];\n return ReachabilityNavigator;\n}());\nexport default ReachabilityNavigator;\n//# sourceMappingURL=Reachability.js.map","export var MAX_DELAY_MS = 5000;\nexport var NON_RETRYABLE_CODES = [400, 401, 403];\nexport var CONNECTION_STATE_CHANGE = 'ConnectionStateChange';\nexport var MESSAGE_TYPES;\n(function (MESSAGE_TYPES) {\n /**\n * Client -> Server message.\n * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_INIT\"] = \"connection_init\";\n /**\n * Server -> Client message\n * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ERROR\"] = \"connection_error\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ACK\"] = \"connection_ack\";\n /**\n * Client -> Server message.\n * This message type is for register subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_START\"] = \"start\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_START message\n */\n MESSAGE_TYPES[\"GQL_START_ACK\"] = \"start_ack\";\n /**\n * Server -> Client message.\n * This message type is for subscription message from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_DATA\"] = \"data\";\n /**\n * Server -> Client message.\n * This message type helps the client to know is still receiving messages from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_KEEP_ALIVE\"] = \"ka\";\n /**\n * Client -> Server message.\n * This message type is for unregister subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_STOP\"] = \"stop\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message\n */\n MESSAGE_TYPES[\"GQL_COMPLETE\"] = \"complete\";\n /**\n * Server -> Client message.\n * This message type is for sending error messages from AWS AppSync RealTime to the client\n */\n MESSAGE_TYPES[\"GQL_ERROR\"] = \"error\";\n})(MESSAGE_TYPES || (MESSAGE_TYPES = {}));\nexport var SUBSCRIPTION_STATUS;\n(function (SUBSCRIPTION_STATUS) {\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"PENDING\"] = 0] = \"PENDING\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"CONNECTED\"] = 1] = \"CONNECTED\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"FAILED\"] = 2] = \"FAILED\";\n})(SUBSCRIPTION_STATUS || (SUBSCRIPTION_STATUS = {}));\nexport var SOCKET_STATUS;\n(function (SOCKET_STATUS) {\n SOCKET_STATUS[SOCKET_STATUS[\"CLOSED\"] = 0] = \"CLOSED\";\n SOCKET_STATUS[SOCKET_STATUS[\"READY\"] = 1] = \"READY\";\n SOCKET_STATUS[SOCKET_STATUS[\"CONNECTING\"] = 2] = \"CONNECTING\";\n})(SOCKET_STATUS || (SOCKET_STATUS = {}));\nexport var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nexport var AWS_APPSYNC_REALTIME_HEADERS = {\n accept: 'application/json, text/javascript',\n 'content-encoding': 'amz-1.0',\n 'content-type': 'application/json; charset=UTF-8',\n};\n/**\n * Time in milleseconds to wait for GQL_CONNECTION_INIT message\n */\nexport var CONNECTION_INIT_TIMEOUT = 15000;\n/**\n * Time in milleseconds to wait for GQL_START_ACK message\n */\nexport var START_ACK_TIMEOUT = 15000;\n/**\n * Default Time in milleseconds to wait for GQL_CONNECTION_KEEP_ALIVE message\n */\nexport var DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;\n/**\n * Default Time in milleseconds to alert for missed GQL_CONNECTION_KEEP_ALIVE message\n */\nexport var DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT = 65 * 1000;\n//# sourceMappingURL=constants.js.map","import { Reachability } from '@aws-amplify/core';\nexport var ReachabilityMonitor = function () { return new Reachability().networkMonitor(); };\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport Observable from 'zen-observable-ts';\nimport { ConnectionState } from '../types/PubSub';\nimport { ReachabilityMonitor } from './ReachabilityMonitor';\nexport var CONNECTION_CHANGE = {\n KEEP_ALIVE_MISSED: { keepAliveState: 'unhealthy' },\n KEEP_ALIVE: { keepAliveState: 'healthy' },\n CONNECTION_ESTABLISHED: { connectionState: 'connected' },\n CONNECTION_FAILED: {\n intendedConnectionState: 'disconnected',\n connectionState: 'disconnected',\n },\n CLOSING_CONNECTION: { intendedConnectionState: 'disconnected' },\n OPENING_CONNECTION: {\n intendedConnectionState: 'connected',\n connectionState: 'connecting',\n },\n CLOSED: { connectionState: 'disconnected' },\n ONLINE: { networkState: 'connected' },\n OFFLINE: { networkState: 'disconnected' },\n};\nvar ConnectionStateMonitor = /** @class */ (function () {\n function ConnectionStateMonitor() {\n var _this = this;\n this._networkMonitoringSubscription = undefined;\n this._linkedConnectionState = {\n networkState: 'connected',\n connectionState: 'disconnected',\n intendedConnectionState: 'disconnected',\n keepAliveState: 'healthy',\n };\n this._linkedConnectionStateObservable =\n new Observable(function (connectionStateObserver) {\n connectionStateObserver.next(_this._linkedConnectionState);\n _this._linkedConnectionStateObserver = connectionStateObserver;\n });\n }\n /**\n * Turn network state monitoring on if it isn't on already\n */\n ConnectionStateMonitor.prototype.enableNetworkMonitoring = function () {\n var _this = this;\n // Maintain the network state based on the reachability monitor\n if (this._networkMonitoringSubscription === undefined) {\n this._networkMonitoringSubscription = ReachabilityMonitor().subscribe(function (_a) {\n var online = _a.online;\n _this.record(online ? CONNECTION_CHANGE.ONLINE : CONNECTION_CHANGE.OFFLINE);\n });\n }\n };\n /**\n * Turn network state monitoring off if it isn't off already\n */\n ConnectionStateMonitor.prototype.disableNetworkMonitoring = function () {\n var _a;\n (_a = this._networkMonitoringSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\n this._networkMonitoringSubscription = undefined;\n };\n Object.defineProperty(ConnectionStateMonitor.prototype, \"connectionStateObservable\", {\n /**\n * Get the observable that allows us to monitor the connection state\n *\n * @returns {Observable} - The observable that emits ConnectionState updates\n */\n get: function () {\n var _this = this;\n var previous;\n // The linked state aggregates state changes to any of the network, connection,\n // intendedConnection and keepAliveHealth. Some states will change these independent\n // states without changing the overall connection state.\n // After translating from linked states to ConnectionState, then remove any duplicates\n return this._linkedConnectionStateObservable\n .map(function (value) {\n return _this.connectionStatesTranslator(value);\n })\n .filter(function (current) {\n var toInclude = current !== previous;\n previous = current;\n return toInclude;\n });\n },\n enumerable: true,\n configurable: true\n });\n /*\n * Updates local connection state and emits the full state to the observer.\n */\n ConnectionStateMonitor.prototype.record = function (statusUpdates) {\n // Maintain the network monitor\n if (statusUpdates.intendedConnectionState === 'connected') {\n this.enableNetworkMonitoring();\n }\n else if (statusUpdates.intendedConnectionState === 'disconnected') {\n this.disableNetworkMonitoring();\n }\n // Maintain the socket state\n var newSocketStatus = __assign(__assign({}, this._linkedConnectionState), statusUpdates);\n this._linkedConnectionState = __assign({}, newSocketStatus);\n this._linkedConnectionStateObserver.next(this._linkedConnectionState);\n };\n /*\n * Translate the ConnectionState structure into a specific ConnectionState string literal union\n */\n ConnectionStateMonitor.prototype.connectionStatesTranslator = function (_a) {\n var connectionState = _a.connectionState, networkState = _a.networkState, intendedConnectionState = _a.intendedConnectionState, keepAliveState = _a.keepAliveState;\n if (connectionState === 'connected' && networkState === 'disconnected')\n return ConnectionState.ConnectedPendingNetwork;\n if (connectionState === 'connected' &&\n intendedConnectionState === 'disconnected')\n return ConnectionState.ConnectedPendingDisconnect;\n if (connectionState === 'disconnected' &&\n intendedConnectionState === 'connected' &&\n networkState === 'disconnected')\n return ConnectionState.ConnectionDisruptedPendingNetwork;\n if (connectionState === 'disconnected' &&\n intendedConnectionState === 'connected')\n return ConnectionState.ConnectionDisrupted;\n if (connectionState === 'connected' && keepAliveState === 'unhealthy')\n return ConnectionState.ConnectedPendingKeepAlive;\n // All remaining states directly correspond to the connection state\n if (connectionState === 'connecting')\n return ConnectionState.Connecting;\n if (connectionState === 'disconnected')\n return ConnectionState.Disconnected;\n return ConnectionState.Connected;\n };\n return ConnectionStateMonitor;\n}());\nexport { ConnectionStateMonitor };\n//# sourceMappingURL=ConnectionStateMonitor.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n/*\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport * as Paho from 'paho-mqtt';\nimport { v4 as uuid } from 'uuid';\nimport Observable from 'zen-observable-ts';\nimport { AbstractPubSubProvider } from './PubSubProvider';\nimport { ConsoleLogger as Logger, Hub } from '@aws-amplify/core';\nimport { ConnectionStateMonitor, CONNECTION_CHANGE, } from '../utils/ConnectionStateMonitor';\nimport { AMPLIFY_SYMBOL, CONNECTION_STATE_CHANGE } from './constants';\nvar logger = new Logger('MqttOverWSProvider');\nexport function mqttTopicMatch(filter, topic) {\n var filterArray = filter.split('/');\n var length = filterArray.length;\n var topicArray = topic.split('/');\n for (var i = 0; i < length; ++i) {\n var left = filterArray[i];\n var right = topicArray[i];\n if (left === '#')\n return topicArray.length >= length;\n if (left !== '+' && left !== right)\n return false;\n }\n return length === topicArray.length;\n}\nvar ClientsQueue = /** @class */ (function () {\n function ClientsQueue() {\n this.promises = new Map();\n }\n ClientsQueue.prototype.get = function (clientId, clientFactory) {\n return __awaiter(this, void 0, void 0, function () {\n var cachedPromise, newPromise;\n return __generator(this, function (_a) {\n cachedPromise = this.promises.get(clientId);\n if (cachedPromise) {\n return [2 /*return*/, cachedPromise];\n }\n if (clientFactory) {\n newPromise = clientFactory(clientId);\n this.promises.set(clientId, newPromise);\n return [2 /*return*/, newPromise];\n }\n return [2 /*return*/, undefined];\n });\n });\n };\n Object.defineProperty(ClientsQueue.prototype, \"allClients\", {\n get: function () {\n return Array.from(this.promises.keys());\n },\n enumerable: true,\n configurable: true\n });\n ClientsQueue.prototype.remove = function (clientId) {\n this.promises.delete(clientId);\n };\n return ClientsQueue;\n}());\nvar dispatchPubSubEvent = function (event, data, message) {\n Hub.dispatch('pubsub', { event: event, data: data, message: message }, 'PubSub', AMPLIFY_SYMBOL);\n};\nvar topicSymbol = typeof Symbol !== 'undefined' ? Symbol('topic') : '@@topic';\nvar MqttOverWSProvider = /** @class */ (function (_super) {\n __extends(MqttOverWSProvider, _super);\n function MqttOverWSProvider(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, __assign(__assign({}, options), { clientId: options.clientId || uuid() })) || this;\n _this._clientsQueue = new ClientsQueue();\n _this.connectionStateMonitor = new ConnectionStateMonitor();\n _this._topicObservers = new Map();\n _this._clientIdObservers = new Map();\n // Monitor the connection health state and pass changes along to Hub\n _this.connectionStateMonitor.connectionStateObservable.subscribe(function (connectionStateChange) {\n dispatchPubSubEvent(CONNECTION_STATE_CHANGE, {\n provider: _this,\n connectionState: connectionStateChange,\n }, \"Connection state is \" + connectionStateChange);\n });\n return _this;\n }\n Object.defineProperty(MqttOverWSProvider.prototype, \"clientId\", {\n get: function () {\n return this.options.clientId;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MqttOverWSProvider.prototype, \"endpoint\", {\n get: function () {\n return this.options.aws_pubsub_endpoint;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MqttOverWSProvider.prototype, \"clientsQueue\", {\n get: function () {\n return this._clientsQueue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MqttOverWSProvider.prototype, \"isSSLEnabled\", {\n get: function () {\n return !this.options\n .aws_appsync_dangerously_connect_to_http_endpoint_for_testing;\n },\n enumerable: true,\n configurable: true\n });\n MqttOverWSProvider.prototype.getTopicForValue = function (value) {\n return typeof value === 'object' && value[topicSymbol];\n };\n MqttOverWSProvider.prototype.getProviderName = function () {\n return 'MqttOverWSProvider';\n };\n MqttOverWSProvider.prototype.onDisconnect = function (_a) {\n var _this = this;\n var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, [\"clientId\", \"errorCode\"]);\n if (errorCode !== 0) {\n logger.warn(clientId, JSON.stringify(__assign({ errorCode: errorCode }, args), null, 2));\n var topicsToDelete_1 = [];\n if (!clientId) {\n return;\n }\n var clientIdObservers = this._clientIdObservers.get(clientId);\n if (!clientIdObservers) {\n return;\n }\n clientIdObservers.forEach(function (observer) {\n observer.error('Disconnected, error code: ' + errorCode);\n // removing observers for disconnected clientId\n _this._topicObservers.forEach(function (observerForTopic, observerTopic) {\n observerForTopic.delete(observer);\n if (observerForTopic.size === 0) {\n topicsToDelete_1.push(observerTopic);\n }\n });\n });\n // forgiving any trace of clientId\n this._clientIdObservers.delete(clientId);\n // Removing topics that are not listen by an observer\n topicsToDelete_1.forEach(function (topic) {\n _this._topicObservers.delete(topic);\n });\n }\n };\n MqttOverWSProvider.prototype.newClient = function (_a) {\n var url = _a.url, clientId = _a.clientId;\n return __awaiter(this, void 0, void 0, function () {\n var client;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger.debug('Creating new MQTT client', clientId);\n this.connectionStateMonitor.record(CONNECTION_CHANGE.OPENING_CONNECTION);\n client = new Paho.Client(url, clientId);\n // client.trace = (args) => logger.debug(clientId, JSON.stringify(args, null, 2));\n client.onMessageArrived = function (_a) {\n var topic = _a.destinationName, msg = _a.payloadString;\n _this._onMessage(topic, msg);\n };\n client.onConnectionLost = function (_a) {\n var errorCode = _a.errorCode, args = __rest(_a, [\"errorCode\"]);\n _this.onDisconnect(__assign({ clientId: clientId, errorCode: errorCode }, args));\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n };\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n client.connect({\n useSSL: _this.isSSLEnabled,\n mqttVersion: 3,\n onSuccess: function () { return resolve(client); },\n onFailure: function () {\n reject();\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\n },\n });\n })];\n case 1:\n _b.sent();\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_ESTABLISHED);\n return [2 /*return*/, client];\n }\n });\n });\n };\n MqttOverWSProvider.prototype.connect = function (clientId, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function (clientId) {\n return _this.newClient(__assign(__assign({}, options), { clientId: clientId }));\n })];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n MqttOverWSProvider.prototype.disconnect = function (clientId) {\n return __awaiter(this, void 0, void 0, function () {\n var client;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.clientsQueue.get(clientId)];\n case 1:\n client = _a.sent();\n if (client && client.isConnected()) {\n client.disconnect();\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n }\n this.clientsQueue.remove(clientId);\n return [2 /*return*/];\n }\n });\n });\n };\n MqttOverWSProvider.prototype.publish = function (topics, msg) {\n return __awaiter(this, void 0, void 0, function () {\n var targetTopics, message, url, client;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n targetTopics = [].concat(topics);\n message = JSON.stringify(msg);\n return [4 /*yield*/, this.endpoint];\n case 1:\n url = _a.sent();\n return [4 /*yield*/, this.connect(this.clientId, { url: url })];\n case 2:\n client = _a.sent();\n logger.debug('Publishing to topic(s)', targetTopics.join(','), message);\n targetTopics.forEach(function (topic) { return client.send(topic, message); });\n return [2 /*return*/];\n }\n });\n });\n };\n MqttOverWSProvider.prototype._onMessage = function (topic, msg) {\n try {\n var matchedTopicObservers_1 = [];\n this._topicObservers.forEach(function (observerForTopic, observerTopic) {\n if (mqttTopicMatch(observerTopic, topic)) {\n matchedTopicObservers_1.push(observerForTopic);\n }\n });\n var parsedMessage_1 = JSON.parse(msg);\n if (typeof parsedMessage_1 === 'object') {\n parsedMessage_1[topicSymbol] = topic;\n }\n matchedTopicObservers_1.forEach(function (observersForTopic) {\n observersForTopic.forEach(function (observer) { return observer.next(parsedMessage_1); });\n });\n }\n catch (error) {\n logger.warn('Error handling message', error, msg);\n }\n };\n MqttOverWSProvider.prototype.subscribe = function (topics, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var targetTopics = [].concat(topics);\n logger.debug('Subscribing to topic(s)', targetTopics.join(','));\n return new Observable(function (observer) {\n targetTopics.forEach(function (topic) {\n // this._topicObservers is used to notify the observers according to the topic received on the message\n var observersForTopic = _this._topicObservers.get(topic);\n if (!observersForTopic) {\n observersForTopic = new Set();\n _this._topicObservers.set(topic, observersForTopic);\n }\n observersForTopic.add(observer);\n });\n // @ts-ignore\n var client;\n var _a = options.clientId, clientId = _a === void 0 ? _this.clientId : _a;\n // this._clientIdObservers is used to close observers when client gets disconnected\n var observersForClientId = _this._clientIdObservers.get(clientId);\n if (!observersForClientId) {\n observersForClientId = new Set();\n }\n observersForClientId.add(observer);\n _this._clientIdObservers.set(clientId, observersForClientId);\n (function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, url, _b, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = options.url;\n if (!(_a === void 0)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.endpoint];\n case 1:\n _b = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n _b = _a;\n _c.label = 3;\n case 3:\n url = _b;\n _c.label = 4;\n case 4:\n _c.trys.push([4, 6, , 7]);\n return [4 /*yield*/, this.connect(clientId, { url: url })];\n case 5:\n client = _c.sent();\n targetTopics.forEach(function (topic) {\n client.subscribe(topic);\n });\n return [3 /*break*/, 7];\n case 6:\n e_1 = _c.sent();\n observer.error(e_1);\n return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n }); })();\n return function () {\n var _a, _b;\n logger.debug('Unsubscribing from topic(s)', targetTopics.join(','));\n if (client) {\n (_a = _this._clientIdObservers.get(clientId)) === null || _a === void 0 ? void 0 : _a.delete(observer);\n // No more observers per client => client not needed anymore\n if (((_b = _this._clientIdObservers.get(clientId)) === null || _b === void 0 ? void 0 : _b.size) === 0) {\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSING_CONNECTION);\n _this.disconnect(clientId);\n _this._clientIdObservers.delete(clientId);\n }\n targetTopics.forEach(function (topic) {\n var observersForTopic = _this._topicObservers.get(topic) ||\n new Set();\n observersForTopic.delete(observer);\n // if no observers exists for the topic, topic should be removed\n if (observersForTopic.size === 0) {\n _this._topicObservers.delete(topic);\n if (client.isConnected()) {\n client.unsubscribe(topic);\n }\n }\n });\n }\n return null;\n };\n });\n };\n return MqttOverWSProvider;\n}(AbstractPubSubProvider));\nexport { MqttOverWSProvider };\n//# sourceMappingURL=MqttOverWSProvider.js.map","import { GRAPHQL_AUTH_MODE } from '@aws-amplify/auth';\nexport { GRAPHQL_AUTH_MODE };\nexport var GraphQLAuthError;\n(function (GraphQLAuthError) {\n GraphQLAuthError[\"NO_API_KEY\"] = \"No api-key configured\";\n GraphQLAuthError[\"NO_CURRENT_USER\"] = \"No current user\";\n GraphQLAuthError[\"NO_CREDENTIALS\"] = \"No credentials\";\n GraphQLAuthError[\"NO_FEDERATED_JWT\"] = \"No federated jwt\";\n GraphQLAuthError[\"NO_AUTH_TOKEN\"] = \"No auth token specified\";\n})(GraphQLAuthError || (GraphQLAuthError = {}));\n//# sourceMappingURL=index.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport Observable from 'zen-observable-ts';\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { MqttOverWSProvider } from './MqttOverWSProvider';\nvar logger = new Logger('AWSAppSyncProvider');\n/**\n * @deprecated Unused, all usecases have migrated to AWSAppSyncRealtimeProvider\n */\nvar AWSAppSyncProvider = /** @class */ (function (_super) {\n __extends(AWSAppSyncProvider, _super);\n function AWSAppSyncProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._topicClient = new Map();\n _this._topicAlias = new Map();\n return _this;\n }\n Object.defineProperty(AWSAppSyncProvider.prototype, \"endpoint\", {\n get: function () {\n throw new Error('Not supported');\n },\n enumerable: true,\n configurable: true\n });\n AWSAppSyncProvider.prototype.getProviderName = function () {\n return 'AWSAppSyncProvider';\n };\n AWSAppSyncProvider.prototype.publish = function (topics, msg, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw new Error('Operation not supported');\n });\n });\n };\n AWSAppSyncProvider.prototype._cleanUp = function (clientId) {\n var _this = this;\n var topicsForClient = Array.from(this._topicClient.entries())\n .filter(function (_a) {\n var _b = __read(_a, 2), c = _b[1];\n return c.clientId === clientId;\n })\n .map(function (_a) {\n var _b = __read(_a, 1), t = _b[0];\n return t;\n });\n topicsForClient.forEach(function (t) { return _this._cleanUpForTopic(t); });\n };\n AWSAppSyncProvider.prototype._cleanUpForTopic = function (topic) {\n this._topicClient.delete(topic);\n this._topicAlias.delete(topic);\n };\n AWSAppSyncProvider.prototype.onDisconnect = function (_a) {\n var _this = this;\n var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, [\"clientId\", \"errorCode\"]);\n if (errorCode !== 0) {\n var topicsForClient = Array.from(this._topicClient.entries())\n .filter(function (_a) {\n var _b = __read(_a, 2), c = _b[1];\n return c.clientId === clientId;\n })\n .map(function (_a) {\n var _b = __read(_a, 1), t = _b[0];\n return t;\n });\n topicsForClient.forEach(function (topic) {\n if (_this._topicObservers.has(topic)) {\n _this._topicObservers.get(topic).forEach(function (obs) {\n if (!obs.closed) {\n obs.error(args);\n }\n });\n _this._topicObservers.delete(topic);\n }\n });\n this._cleanUp(clientId);\n }\n };\n AWSAppSyncProvider.prototype.disconnect = function (clientId) {\n return __awaiter(this, void 0, void 0, function () {\n var client;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function () { return null; })];\n case 1:\n client = _a.sent();\n return [4 /*yield*/, _super.prototype.disconnect.call(this, clientId)];\n case 2:\n _a.sent();\n this._cleanUp(clientId);\n return [2 /*return*/];\n }\n });\n });\n };\n AWSAppSyncProvider.prototype.subscribe = function (topics, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var result = new Observable(function (observer) {\n var targetTopics = [].concat(topics);\n logger.debug('Subscribing to topic(s)', targetTopics.join(','));\n (function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, mqttConnections, newSubscriptions, newAliases, map;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n // Add these topics to map\n targetTopics.forEach(function (t) {\n if (!_this._topicObservers.has(t)) {\n _this._topicObservers.set(t, new Set());\n }\n _this._topicObservers.get(t).add(observer);\n });\n _a = options.mqttConnections, mqttConnections = _a === void 0 ? [] : _a, newSubscriptions = options.newSubscriptions;\n newAliases = Object.entries(newSubscriptions).map(function (_a) {\n var _b = __read(_a, 2), alias = _b[0], v = _b[1];\n return [v.topic, alias];\n });\n // Merge new aliases with old ones\n this._topicAlias = new Map(__spread(Array.from(this._topicAlias.entries()), newAliases));\n map = Object.entries(targetTopics.reduce(function (acc, elem) {\n var connectionInfoForTopic = mqttConnections.find(function (c) { return c.topics.indexOf(elem) > -1; });\n if (connectionInfoForTopic) {\n var clientId = connectionInfoForTopic.client, url = connectionInfoForTopic.url;\n if (!acc[clientId]) {\n acc[clientId] = {\n url: url,\n topics: new Set(),\n };\n }\n acc[clientId].topics.add(elem);\n }\n return acc;\n }, {}));\n // reconnect everything we have in the map\n return [4 /*yield*/, Promise.all(map.map(function (_a) {\n var _b = __read(_a, 2), clientId = _b[0], _c = _b[1], url = _c.url, topics = _c.topics;\n return __awaiter(_this, void 0, void 0, function () {\n var client, err_1;\n var _this = this;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n client = null;\n _d.label = 1;\n case 1:\n _d.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.connect(clientId, {\n clientId: clientId,\n url: url,\n })];\n case 2:\n client = _d.sent();\n return [3 /*break*/, 4];\n case 3:\n err_1 = _d.sent();\n observer.error({ message: 'Failed to connect', error: err_1 });\n observer.complete();\n return [2 /*return*/, undefined];\n case 4:\n // subscribe to all topics for this client\n // store topic-client mapping\n topics.forEach(function (topic) {\n if (client.isConnected()) {\n client.subscribe(topic);\n _this._topicClient.set(topic, client);\n }\n });\n return [2 /*return*/, client];\n }\n });\n });\n }))];\n case 1:\n // reconnect everything we have in the map\n _b.sent();\n return [2 /*return*/];\n }\n });\n }); })();\n return function () {\n logger.debug('Unsubscribing from topic(s)', targetTopics.join(','));\n targetTopics.forEach(function (t) {\n var client = _this._topicClient.get(t);\n if (client && client.isConnected()) {\n client.unsubscribe(t);\n _this._topicClient.delete(t);\n if (!Array.from(_this._topicClient.values()).some(function (c) { return c === client; })) {\n _this.disconnect(client.clientId);\n }\n }\n _this._topicObservers.delete(t);\n });\n };\n });\n return Observable.from(result).map(function (value) {\n var topic = _this.getTopicForValue(value);\n var alias = _this._topicAlias.get(topic);\n value.data = Object.entries(value.data).reduce(function (obj, _a) {\n var _b = __read(_a, 2), origKey = _b[0], val = _b[1];\n return ((obj[(alias || origKey)] = val), obj);\n }, {});\n return value;\n });\n };\n return AWSAppSyncProvider;\n}(MqttOverWSProvider));\nexport { AWSAppSyncProvider };\n//# sourceMappingURL=AWSAppSyncProvider.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Amplify } from './Amplify';\nimport { Platform } from './Platform';\nexport { AmplifyClass } from './Amplify';\nexport { ClientDevice } from './ClientDevice';\nexport { ConsoleLogger, ConsoleLogger as Logger } from './Logger';\nexport * from './Errors';\nexport { Hub } from './Hub';\nexport { I18n } from './I18n';\nexport * from './JS';\nexport { Signer } from './Signer';\nexport * from './Parser';\nexport * from './Providers';\nexport { FacebookOAuth, GoogleOAuth } from './OAuthHelper';\nexport * from './RNComponents';\nexport { Credentials, CredentialsClass } from './Credentials';\nexport { ServiceWorker } from './ServiceWorker';\nexport { StorageHelper, MemoryStorage } from './StorageHelper';\nexport { UniversalStorage } from './UniversalStorage';\nexport { Platform, getAmplifyUserAgent } from './Platform';\nexport * from './constants';\nexport var Constants = {\n userAgent: Platform.userAgent,\n};\nexport * from './constants';\nexport * from './Util';\nexport { Amplify };\n/**\n * @deprecated use named import\n */\nexport default Amplify;\n//# sourceMappingURL=index.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/*\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport Observable from 'zen-observable-ts';\nimport { GraphQLError } from 'graphql';\nimport * as url from 'url';\nimport { v4 as uuid } from 'uuid';\nimport { Buffer } from 'buffer';\nimport { Logger, Credentials, Signer, Hub, Constants, USER_AGENT_HEADER, jitteredExponentialRetry, NonRetryableError, } from '@aws-amplify/core';\nimport Cache from '@aws-amplify/cache';\nimport Auth from '@aws-amplify/auth';\nimport { AbstractPubSubProvider } from '../PubSubProvider';\nimport { CONTROL_MSG } from '../../types/PubSub';\nimport { AMPLIFY_SYMBOL, AWS_APPSYNC_REALTIME_HEADERS, CONNECTION_INIT_TIMEOUT, DEFAULT_KEEP_ALIVE_TIMEOUT, DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT, MAX_DELAY_MS, MESSAGE_TYPES, NON_RETRYABLE_CODES, SOCKET_STATUS, START_ACK_TIMEOUT, SUBSCRIPTION_STATUS, CONNECTION_STATE_CHANGE, } from '../constants';\nimport { ConnectionStateMonitor, CONNECTION_CHANGE, } from '../../utils/ConnectionStateMonitor';\nvar logger = new Logger('AWSAppSyncRealTimeProvider');\nvar dispatchApiEvent = function (event, data, message) {\n Hub.dispatch('api', { event: event, data: data, message: message }, 'PubSub', AMPLIFY_SYMBOL);\n};\nvar standardDomainPattern = /^https:\\/\\/\\w{26}\\.appsync\\-api\\.\\w{2}(?:(?:\\-\\w{2,})+)\\-\\d\\.amazonaws.com\\/graphql$/i;\nvar customDomainPath = '/realtime';\nvar AWSAppSyncRealTimeProvider = /** @class */ (function (_super) {\n __extends(AWSAppSyncRealTimeProvider, _super);\n function AWSAppSyncRealTimeProvider(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, options) || this;\n _this.socketStatus = SOCKET_STATUS.CLOSED;\n _this.keepAliveTimeout = DEFAULT_KEEP_ALIVE_TIMEOUT;\n _this.subscriptionObserverMap = new Map();\n _this.promiseArray = [];\n _this.connectionStateMonitor = new ConnectionStateMonitor();\n // Monitor the connection state and pass changes along to Hub\n _this.connectionStateMonitor.connectionStateObservable.subscribe(function (ConnectionState) {\n dispatchApiEvent(CONNECTION_STATE_CHANGE, {\n provider: _this,\n connectionState: ConnectionState,\n }, \"Connection state is \" + ConnectionState);\n });\n return _this;\n }\n AWSAppSyncRealTimeProvider.prototype.getNewWebSocket = function (url, protocol) {\n return new WebSocket(url, protocol);\n };\n AWSAppSyncRealTimeProvider.prototype.getProviderName = function () {\n return 'AWSAppSyncRealTimeProvider';\n };\n AWSAppSyncRealTimeProvider.prototype.newClient = function () {\n throw new Error('Not used here');\n };\n AWSAppSyncRealTimeProvider.prototype.publish = function (_topics, _msg, _options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw new Error('Operation not supported');\n });\n });\n };\n // Check if url matches standard domain pattern\n AWSAppSyncRealTimeProvider.prototype.isCustomDomain = function (url) {\n return url.match(standardDomainPattern) === null;\n };\n AWSAppSyncRealTimeProvider.prototype.subscribe = function (_topics, options) {\n var _this = this;\n var appSyncGraphqlEndpoint = options === null || options === void 0 ? void 0 : options.appSyncGraphqlEndpoint;\n return new Observable(function (observer) {\n if (!options || !appSyncGraphqlEndpoint) {\n observer.error({\n errors: [\n __assign({}, new GraphQLError(\"Subscribe only available for AWS AppSync endpoint\")),\n ],\n });\n observer.complete();\n }\n else {\n var subscriptionId_1 = uuid();\n _this._startSubscriptionWithAWSAppSyncRealTime({\n options: options,\n observer: observer,\n subscriptionId: subscriptionId_1,\n }).catch(function (err) {\n observer.error({\n errors: [\n __assign({}, new GraphQLError(CONTROL_MSG.REALTIME_SUBSCRIPTION_INIT_ERROR + \": \" + err)),\n ],\n });\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n observer.complete();\n });\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var subscriptionState, err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, 3, 4]);\n // Waiting that subscription has been connected before trying to unsubscribe\n return [4 /*yield*/, this._waitForSubscriptionToBeConnected(subscriptionId_1)];\n case 1:\n // Waiting that subscription has been connected before trying to unsubscribe\n _a.sent();\n subscriptionState = (this.subscriptionObserverMap.get(subscriptionId_1) || {}).subscriptionState;\n if (!subscriptionState) {\n // subscription already unsubscribed\n return [2 /*return*/];\n }\n if (subscriptionState === SUBSCRIPTION_STATUS.CONNECTED) {\n this._sendUnsubscriptionMessage(subscriptionId_1);\n }\n else {\n throw new Error('Subscription never connected');\n }\n return [3 /*break*/, 4];\n case 2:\n err_1 = _a.sent();\n logger.debug(\"Error while unsubscribing \" + err_1);\n return [3 /*break*/, 4];\n case 3:\n this._removeSubscriptionObserver(subscriptionId_1);\n return [7 /*endfinally*/];\n case 4: return [2 /*return*/];\n }\n });\n }); };\n }\n });\n };\n Object.defineProperty(AWSAppSyncRealTimeProvider.prototype, \"isSSLEnabled\", {\n get: function () {\n return !this.options\n .aws_appsync_dangerously_connect_to_http_endpoint_for_testing;\n },\n enumerable: true,\n configurable: true\n });\n AWSAppSyncRealTimeProvider.prototype._startSubscriptionWithAWSAppSyncRealTime = function (_a) {\n var options = _a.options, observer = _a.observer, subscriptionId = _a.subscriptionId;\n var _b, _c;\n return __awaiter(this, void 0, void 0, function () {\n var appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, _d, graphql_headers, _e, additionalHeaders, subscriptionState, data, dataString, headerObj, _f, _g, subscriptionMessage, stringToAWSRealTime, err_2, message, subscriptionFailedCallback_1, _h, subscriptionFailedCallback, subscriptionReadyCallback;\n var _j;\n var _this = this;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n appSyncGraphqlEndpoint = options.appSyncGraphqlEndpoint, authenticationType = options.authenticationType, query = options.query, variables = options.variables, apiKey = options.apiKey, region = options.region, _d = options.graphql_headers, graphql_headers = _d === void 0 ? function () { return ({}); } : _d, _e = options.additionalHeaders, additionalHeaders = _e === void 0 ? {} : _e;\n subscriptionState = SUBSCRIPTION_STATUS.PENDING;\n data = {\n query: query,\n variables: variables,\n };\n // Having a subscription id map will make it simple to forward messages received\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query !== null && query !== void 0 ? query : '',\n variables: variables !== null && variables !== void 0 ? variables : {},\n subscriptionState: subscriptionState,\n startAckTimeoutId: undefined,\n });\n dataString = JSON.stringify(data);\n _f = [{}];\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n payload: dataString,\n canonicalUri: '',\n region: region,\n additionalHeaders: additionalHeaders,\n })];\n case 1:\n _g = [__assign.apply(void 0, _f.concat([(_k.sent())]))];\n return [4 /*yield*/, graphql_headers()];\n case 2:\n headerObj = __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), additionalHeaders]), (_j = {}, _j[USER_AGENT_HEADER] = Constants.userAgent, _j)]);\n subscriptionMessage = {\n id: subscriptionId,\n payload: {\n data: dataString,\n extensions: {\n authorization: __assign({}, headerObj),\n },\n },\n type: MESSAGE_TYPES.GQL_START,\n };\n stringToAWSRealTime = JSON.stringify(subscriptionMessage);\n _k.label = 3;\n case 3:\n _k.trys.push([3, 5, , 6]);\n this.connectionStateMonitor.record(CONNECTION_CHANGE.OPENING_CONNECTION);\n return [4 /*yield*/, this._initializeWebSocketConnection({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n region: region,\n additionalHeaders: additionalHeaders,\n })];\n case 4:\n _k.sent();\n return [3 /*break*/, 6];\n case 5:\n err_2 = _k.sent();\n logger.debug({ err: err_2 });\n message = (_b = err_2['message']) !== null && _b !== void 0 ? _b : '';\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n observer.error({\n errors: [\n __assign({}, new GraphQLError(CONTROL_MSG.CONNECTION_FAILED + \": \" + message)),\n ],\n });\n observer.complete();\n subscriptionFailedCallback_1 = (this.subscriptionObserverMap.get(subscriptionId) || {}).subscriptionFailedCallback;\n // Notify concurrent unsubscription\n if (typeof subscriptionFailedCallback_1 === 'function') {\n subscriptionFailedCallback_1();\n }\n return [2 /*return*/];\n case 6:\n _h = (_c = this.subscriptionObserverMap.get(subscriptionId)) !== null && _c !== void 0 ? _c : {}, subscriptionFailedCallback = _h.subscriptionFailedCallback, subscriptionReadyCallback = _h.subscriptionReadyCallback;\n // This must be done before sending the message in order to be listening immediately\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n query: query !== null && query !== void 0 ? query : '',\n variables: variables !== null && variables !== void 0 ? variables : {},\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n startAckTimeoutId: setTimeout(function () {\n _this._timeoutStartSubscriptionAck.call(_this, subscriptionId);\n }, START_ACK_TIMEOUT),\n });\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n // Waiting that subscription has been connected before trying to unsubscribe\n AWSAppSyncRealTimeProvider.prototype._waitForSubscriptionToBeConnected = function (subscriptionId) {\n return __awaiter(this, void 0, void 0, function () {\n var subscriptionObserver, subscriptionState;\n var _this = this;\n return __generator(this, function (_a) {\n subscriptionObserver = this.subscriptionObserverMap.get(subscriptionId);\n if (subscriptionObserver) {\n subscriptionState = subscriptionObserver.subscriptionState;\n // This in case unsubscribe is invoked before sending start subscription message\n if (subscriptionState === SUBSCRIPTION_STATUS.PENDING) {\n return [2 /*return*/, new Promise(function (res, rej) {\n var observer = subscriptionObserver.observer, subscriptionState = subscriptionObserver.subscriptionState, variables = subscriptionObserver.variables, query = subscriptionObserver.query;\n _this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n variables: variables,\n query: query,\n subscriptionReadyCallback: res,\n subscriptionFailedCallback: rej,\n });\n })];\n }\n }\n return [2 /*return*/];\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._sendUnsubscriptionMessage = function (subscriptionId) {\n try {\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN &&\n this.socketStatus === SOCKET_STATUS.READY) {\n // Preparing unsubscribe message to stop receiving messages for that subscription\n var unsubscribeMessage = {\n id: subscriptionId,\n type: MESSAGE_TYPES.GQL_STOP,\n };\n var stringToAWSRealTime = JSON.stringify(unsubscribeMessage);\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n }\n catch (err) {\n // If GQL_STOP is not sent because of disconnection issue, then there is nothing the client can do\n logger.debug({ err: err });\n }\n };\n AWSAppSyncRealTimeProvider.prototype._removeSubscriptionObserver = function (subscriptionId) {\n this.subscriptionObserverMap.delete(subscriptionId);\n // Verifying 1000ms after removing subscription in case there are new subscription unmount/mount\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n };\n AWSAppSyncRealTimeProvider.prototype._closeSocketIfRequired = function () {\n if (this.subscriptionObserverMap.size > 0) {\n // Active subscriptions on the WebSocket\n return;\n }\n if (!this.awsRealTimeSocket) {\n this.socketStatus = SOCKET_STATUS.CLOSED;\n return;\n }\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSING_CONNECTION);\n if (this.awsRealTimeSocket.bufferedAmount > 0) {\n // Still data on the WebSocket\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n }\n else {\n logger.debug('closing WebSocket...');\n if (this.keepAliveTimeoutId) {\n clearTimeout(this.keepAliveTimeoutId);\n }\n if (this.keepAliveAlertTimeoutId) {\n clearTimeout(this.keepAliveAlertTimeoutId);\n }\n var tempSocket = this.awsRealTimeSocket;\n // Cleaning callbacks to avoid race condition, socket still exists\n tempSocket.onclose = null;\n tempSocket.onerror = null;\n tempSocket.close(1000);\n this.awsRealTimeSocket = undefined;\n this.socketStatus = SOCKET_STATUS.CLOSED;\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n }\n };\n AWSAppSyncRealTimeProvider.prototype._handleIncomingSubscriptionMessage = function (message) {\n var _this = this;\n logger.debug(\"subscription message from AWS AppSync RealTime: \" + message.data);\n var _a = JSON.parse(message.data), _b = _a.id, id = _b === void 0 ? '' : _b, payload = _a.payload, type = _a.type;\n var _c = this.subscriptionObserverMap.get(id) || {}, _d = _c.observer, observer = _d === void 0 ? null : _d, _e = _c.query, query = _e === void 0 ? '' : _e, _f = _c.variables, variables = _f === void 0 ? {} : _f, startAckTimeoutId = _c.startAckTimeoutId, subscriptionReadyCallback = _c.subscriptionReadyCallback, subscriptionFailedCallback = _c.subscriptionFailedCallback;\n logger.debug({ id: id, observer: observer, query: query, variables: variables });\n if (type === MESSAGE_TYPES.GQL_DATA && payload && payload.data) {\n if (observer) {\n observer.next(payload);\n }\n else {\n logger.debug(\"observer not found for id: \" + id);\n }\n return;\n }\n if (type === MESSAGE_TYPES.GQL_START_ACK) {\n logger.debug(\"subscription ready for \" + JSON.stringify({ query: query, variables: variables }));\n if (typeof subscriptionReadyCallback === 'function') {\n subscriptionReadyCallback();\n }\n if (startAckTimeoutId)\n clearTimeout(startAckTimeoutId);\n dispatchApiEvent(CONTROL_MSG.SUBSCRIPTION_ACK, { query: query, variables: variables }, 'Connection established for subscription');\n var subscriptionState = SUBSCRIPTION_STATUS.CONNECTED;\n if (observer) {\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: undefined,\n subscriptionState: subscriptionState,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n });\n }\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_ESTABLISHED);\n return;\n }\n if (type === MESSAGE_TYPES.GQL_CONNECTION_KEEP_ALIVE) {\n if (this.keepAliveTimeoutId)\n clearTimeout(this.keepAliveTimeoutId);\n if (this.keepAliveAlertTimeoutId)\n clearTimeout(this.keepAliveAlertTimeoutId);\n this.keepAliveTimeoutId = setTimeout(function () { return _this._errorDisconnect(CONTROL_MSG.TIMEOUT_DISCONNECT); }, this.keepAliveTimeout);\n this.keepAliveAlertTimeoutId = setTimeout(function () {\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.KEEP_ALIVE_MISSED);\n }, DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT);\n this.connectionStateMonitor.record(CONNECTION_CHANGE.KEEP_ALIVE);\n return;\n }\n if (type === MESSAGE_TYPES.GQL_ERROR) {\n var subscriptionState = SUBSCRIPTION_STATUS.FAILED;\n if (observer) {\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: startAckTimeoutId,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n subscriptionState: subscriptionState,\n });\n observer.error({\n errors: [\n __assign({}, new GraphQLError(CONTROL_MSG.CONNECTION_FAILED + \": \" + JSON.stringify(payload))),\n ],\n });\n if (startAckTimeoutId)\n clearTimeout(startAckTimeoutId);\n observer.complete();\n if (typeof subscriptionFailedCallback === 'function') {\n subscriptionFailedCallback();\n }\n }\n }\n };\n AWSAppSyncRealTimeProvider.prototype._errorDisconnect = function (msg) {\n logger.debug(\"Disconnect error: \" + msg);\n this.subscriptionObserverMap.forEach(function (_a) {\n var observer = _a.observer;\n if (observer && !observer.closed) {\n observer.error({\n errors: [__assign({}, new GraphQLError(msg))],\n });\n }\n });\n this.subscriptionObserverMap.clear();\n if (this.awsRealTimeSocket) {\n this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);\n this.awsRealTimeSocket.close();\n }\n this.socketStatus = SOCKET_STATUS.CLOSED;\n };\n AWSAppSyncRealTimeProvider.prototype._timeoutStartSubscriptionAck = function (subscriptionId) {\n var subscriptionObserver = this.subscriptionObserverMap.get(subscriptionId);\n if (subscriptionObserver) {\n var observer = subscriptionObserver.observer, query = subscriptionObserver.query, variables = subscriptionObserver.variables;\n if (!observer) {\n return;\n }\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query,\n variables: variables,\n subscriptionState: SUBSCRIPTION_STATUS.FAILED,\n });\n if (observer && !observer.closed) {\n observer.error({\n errors: [\n __assign({}, new GraphQLError(\"Subscription timeout \" + JSON.stringify({\n query: query,\n variables: variables,\n }))),\n ],\n });\n // Cleanup will be automatically executed\n observer.complete();\n }\n logger.debug('timeoutStartSubscription', JSON.stringify({ query: query, variables: variables }));\n }\n };\n AWSAppSyncRealTimeProvider.prototype._initializeWebSocketConnection = function (_a) {\n var _this = this;\n var appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, authenticationType = _a.authenticationType, apiKey = _a.apiKey, region = _a.region, additionalHeaders = _a.additionalHeaders;\n if (this.socketStatus === SOCKET_STATUS.READY) {\n return;\n }\n return new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var payloadString, headerString, _a, _b, headerQs, payloadQs, discoverableEndpoint, protocol, awsRealTimeUrl, err_3;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n this.promiseArray.push({ res: res, rej: rej });\n if (!(this.socketStatus === SOCKET_STATUS.CLOSED)) return [3 /*break*/, 5];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 4, , 5]);\n this.socketStatus = SOCKET_STATUS.CONNECTING;\n payloadString = '{}';\n _b = (_a = JSON).stringify;\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n authenticationType: authenticationType,\n payload: payloadString,\n canonicalUri: '/connect',\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n region: region,\n additionalHeaders: additionalHeaders,\n })];\n case 2:\n headerString = _b.apply(_a, [_c.sent()]);\n headerQs = Buffer.from(headerString).toString('base64');\n payloadQs = Buffer.from(payloadString).toString('base64');\n discoverableEndpoint = appSyncGraphqlEndpoint !== null && appSyncGraphqlEndpoint !== void 0 ? appSyncGraphqlEndpoint : '';\n if (this.isCustomDomain(discoverableEndpoint)) {\n discoverableEndpoint =\n discoverableEndpoint.concat(customDomainPath);\n }\n else {\n discoverableEndpoint = discoverableEndpoint\n .replace('appsync-api', 'appsync-realtime-api')\n .replace('gogi-beta', 'grt-beta');\n }\n protocol = this.isSSLEnabled ? 'wss://' : 'ws://';\n discoverableEndpoint = discoverableEndpoint\n .replace('https://', protocol)\n .replace('http://', protocol);\n awsRealTimeUrl = discoverableEndpoint + \"?header=\" + headerQs + \"&payload=\" + payloadQs;\n return [4 /*yield*/, this._initializeRetryableHandshake(awsRealTimeUrl)];\n case 3:\n _c.sent();\n this.promiseArray.forEach(function (_a) {\n var res = _a.res;\n logger.debug('Notifying connection successful');\n res();\n });\n this.socketStatus = SOCKET_STATUS.READY;\n this.promiseArray = [];\n return [3 /*break*/, 5];\n case 4:\n err_3 = _c.sent();\n this.promiseArray.forEach(function (_a) {\n var rej = _a.rej;\n return rej(err_3);\n });\n this.promiseArray = [];\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN) {\n this.awsRealTimeSocket.close(3001);\n }\n this.awsRealTimeSocket = undefined;\n this.socketStatus = SOCKET_STATUS.CLOSED;\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n }); });\n };\n AWSAppSyncRealTimeProvider.prototype._initializeRetryableHandshake = function (awsRealTimeUrl) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(\"Initializaling retryable Handshake\");\n return [4 /*yield*/, jitteredExponentialRetry(this._initializeHandshake.bind(this), [awsRealTimeUrl], MAX_DELAY_MS)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._initializeHandshake = function (awsRealTimeUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var err_4, _a, errorType, errorCode;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger.debug(\"Initializing handshake \" + awsRealTimeUrl);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n var newSocket = _this.getNewWebSocket(awsRealTimeUrl, 'graphql-ws');\n newSocket.onerror = function () {\n logger.debug(\"WebSocket connection error\");\n };\n newSocket.onclose = function () {\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\n rej(new Error('Connection handshake error'));\n };\n newSocket.onopen = function () {\n _this.awsRealTimeSocket = newSocket;\n return res();\n };\n });\n })()];\n case 2:\n _b.sent();\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n if (_this.awsRealTimeSocket) {\n var ackOk_1 = false;\n _this.awsRealTimeSocket.onerror = function (error) {\n logger.debug(\"WebSocket error \" + JSON.stringify(error));\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger.debug(\"WebSocket closed \" + event.reason);\n rej(new Error(JSON.stringify(event)));\n };\n _this.awsRealTimeSocket.onmessage = function (message) {\n logger.debug(\"subscription message from AWS AppSyncRealTime: \" + message.data + \" \");\n var data = JSON.parse(message.data);\n var type = data.type, _a = data.payload, _b = (_a === void 0 ? {} : _a).connectionTimeoutMs, connectionTimeoutMs = _b === void 0 ? DEFAULT_KEEP_ALIVE_TIMEOUT : _b;\n if (type === MESSAGE_TYPES.GQL_CONNECTION_ACK) {\n ackOk_1 = true;\n if (_this.awsRealTimeSocket) {\n _this.keepAliveTimeout = connectionTimeoutMs;\n _this.awsRealTimeSocket.onmessage =\n _this._handleIncomingSubscriptionMessage.bind(_this);\n _this.awsRealTimeSocket.onerror = function (err) {\n logger.debug(err);\n _this._errorDisconnect(CONTROL_MSG.CONNECTION_CLOSED);\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger.debug(\"WebSocket closed \" + event.reason);\n _this._errorDisconnect(CONTROL_MSG.CONNECTION_CLOSED);\n };\n }\n res('Cool, connected to AWS AppSyncRealTime');\n return;\n }\n if (type === MESSAGE_TYPES.GQL_CONNECTION_ERROR) {\n var _c = data.payload, _d = (_c === void 0 ? {} : _c).errors, _e = __read(_d === void 0 ? [] : _d, 1), _f = _e[0], _g = _f === void 0 ? {} : _f, _h = _g.errorType, errorType = _h === void 0 ? '' : _h, _j = _g.errorCode, errorCode = _j === void 0 ? 0 : _j;\n rej({ errorType: errorType, errorCode: errorCode });\n }\n };\n var gqlInit = {\n type: MESSAGE_TYPES.GQL_CONNECTION_INIT,\n };\n _this.awsRealTimeSocket.send(JSON.stringify(gqlInit));\n var checkAckOk_1 = function (ackOk) {\n if (!ackOk) {\n _this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_FAILED);\n rej(new Error(\"Connection timeout: ack from AWSAppSyncRealTime was not received after \" + CONNECTION_INIT_TIMEOUT + \" ms\"));\n }\n };\n setTimeout(function () { return checkAckOk_1(ackOk_1); }, CONNECTION_INIT_TIMEOUT);\n }\n });\n })()];\n case 3:\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n err_4 = _b.sent();\n _a = err_4, errorType = _a.errorType, errorCode = _a.errorCode;\n if (NON_RETRYABLE_CODES.includes(errorCode)) {\n throw new NonRetryableError(errorType);\n }\n else if (errorType) {\n throw new Error(errorType);\n }\n else {\n throw err_4;\n }\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeHeaderBasedAuth = function (_a) {\n var authenticationType = _a.authenticationType, payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, apiKey = _a.apiKey, region = _a.region, additionalHeaders = _a.additionalHeaders;\n return __awaiter(this, void 0, void 0, function () {\n var headerHandler, handler, host, result;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n headerHandler = {\n API_KEY: this._awsRealTimeApiKeyHeader.bind(this),\n AWS_IAM: this._awsRealTimeIAMHeader.bind(this),\n OPENID_CONNECT: this._awsRealTimeOPENIDHeader.bind(this),\n AMAZON_COGNITO_USER_POOLS: this._awsRealTimeCUPHeader.bind(this),\n AWS_LAMBDA: this._customAuthHeader,\n };\n if (!(!authenticationType || !headerHandler[authenticationType])) return [3 /*break*/, 1];\n logger.debug(\"Authentication type \" + authenticationType + \" not supported\");\n return [2 /*return*/, ''];\n case 1:\n handler = headerHandler[authenticationType];\n host = url.parse(appSyncGraphqlEndpoint !== null && appSyncGraphqlEndpoint !== void 0 ? appSyncGraphqlEndpoint : '').host;\n logger.debug(\"Authenticating with \" + authenticationType);\n return [4 /*yield*/, handler({\n payload: payload,\n canonicalUri: canonicalUri,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n apiKey: apiKey,\n region: region,\n host: host,\n additionalHeaders: additionalHeaders,\n })];\n case 2:\n result = _b.sent();\n return [2 /*return*/, result];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeCUPHeader = function (_a) {\n var host = _a.host;\n return __awaiter(this, void 0, void 0, function () {\n var session;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Auth.currentSession()];\n case 1:\n session = _b.sent();\n return [2 /*return*/, {\n Authorization: session.getAccessToken().getJwtToken(),\n host: host,\n }];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeOPENIDHeader = function (_a) {\n var host = _a.host;\n return __awaiter(this, void 0, void 0, function () {\n var token, federatedInfo, currentUser;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, Cache.getItem('federatedInfo')];\n case 1:\n federatedInfo = _b.sent();\n if (!federatedInfo) return [3 /*break*/, 2];\n token = federatedInfo.token;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, Auth.currentAuthenticatedUser()];\n case 3:\n currentUser = _b.sent();\n if (currentUser) {\n token = currentUser.token;\n }\n _b.label = 4;\n case 4:\n if (!token) {\n throw new Error('No federated jwt');\n }\n return [2 /*return*/, {\n Authorization: token,\n host: host,\n }];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeApiKeyHeader = function (_a) {\n var apiKey = _a.apiKey, host = _a.host;\n return __awaiter(this, void 0, void 0, function () {\n var dt, dtStr;\n return __generator(this, function (_b) {\n dt = new Date();\n dtStr = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, '');\n return [2 /*return*/, {\n host: host,\n 'x-amz-date': dtStr,\n 'x-api-key': apiKey,\n }];\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._awsRealTimeIAMHeader = function (_a) {\n var payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, region = _a.region;\n return __awaiter(this, void 0, void 0, function () {\n var endpointInfo, credentialsOK, creds, request, signed_params;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n endpointInfo = {\n region: region,\n service: 'appsync',\n };\n return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _b.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n return [4 /*yield*/, Credentials.get().then(function (credentials) {\n var _a = credentials, secretAccessKey = _a.secretAccessKey, accessKeyId = _a.accessKeyId, sessionToken = _a.sessionToken;\n return {\n secret_key: secretAccessKey,\n access_key: accessKeyId,\n session_token: sessionToken,\n };\n })];\n case 2:\n creds = _b.sent();\n request = {\n url: \"\" + appSyncGraphqlEndpoint + canonicalUri,\n data: payload,\n method: 'POST',\n headers: __assign({}, AWS_APPSYNC_REALTIME_HEADERS),\n };\n signed_params = Signer.sign(request, creds, endpointInfo);\n return [2 /*return*/, signed_params.headers];\n }\n });\n });\n };\n AWSAppSyncRealTimeProvider.prototype._customAuthHeader = function (_a) {\n var host = _a.host, additionalHeaders = _a.additionalHeaders;\n if (!additionalHeaders || !additionalHeaders['Authorization']) {\n throw new Error('No auth token specified');\n }\n return {\n Authorization: additionalHeaders.Authorization,\n host: host,\n };\n };\n /**\n * @private\n */\n AWSAppSyncRealTimeProvider.prototype._ensureCredentials = function () {\n return Credentials.get()\n .then(function (credentials) {\n if (!credentials)\n return false;\n var cred = Credentials.shear(credentials);\n logger.debug('set credentials for AWSAppSyncRealTimeProvider', cred);\n return true;\n })\n .catch(function (err) {\n logger.warn('ensure credentials error', err);\n return false;\n });\n };\n return AWSAppSyncRealTimeProvider;\n}(AbstractPubSubProvider));\nexport { AWSAppSyncRealTimeProvider };\n//# sourceMappingURL=index.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/*\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n// import '../Common/Polyfills';\nimport Observable from 'zen-observable-ts';\nimport { Amplify, browserOrNode, ConsoleLogger as Logger, INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER, INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER, } from '@aws-amplify/core';\nimport { AWSAppSyncProvider, AWSAppSyncRealTimeProvider } from './Providers';\nvar isNode = browserOrNode().isNode;\nvar logger = new Logger('PubSub');\nvar PubSubClass = /** @class */ (function () {\n /**\n * Initialize PubSub with AWS configurations\n *\n * @param {PubSubOptions} options - Configuration object for PubSub\n */\n function PubSubClass(options) {\n this._options = options !== null && options !== void 0 ? options : {};\n logger.debug('PubSub Options', this._options);\n this._pluggables = [];\n this.subscribe = this.subscribe.bind(this);\n }\n Object.defineProperty(PubSubClass.prototype, \"awsAppSyncProvider\", {\n /**\n * Lazy instantiate AWSAppSyncProvider when it is required by the API category\n */\n get: function () {\n if (!this._awsAppSyncProvider) {\n this._awsAppSyncProvider = new AWSAppSyncProvider(this._options);\n }\n return this._awsAppSyncProvider;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PubSubClass.prototype, \"awsAppSyncRealTimeProvider\", {\n /**\n * Lazy instantiate AWSAppSyncRealTimeProvider when it is required by the API category\n */\n get: function () {\n if (!this._awsAppSyncRealTimeProvider) {\n this._awsAppSyncRealTimeProvider = new AWSAppSyncRealTimeProvider(this._options);\n }\n return this._awsAppSyncRealTimeProvider;\n },\n enumerable: true,\n configurable: true\n });\n PubSubClass.prototype.getModuleName = function () {\n return 'PubSub';\n };\n /**\n * Configure PubSub part with configurations\n *\n * @param {PubSubOptions} config - Configuration for PubSub\n * @return {Object} - The current configuration\n */\n PubSubClass.prototype.configure = function (options) {\n var _this = this;\n var opt = options ? options.PubSub || options : {};\n logger.debug('configure PubSub', { opt: opt });\n this._options = Object.assign({}, this._options, opt);\n this._pluggables.map(function (pluggable) { return pluggable.configure(_this._options); });\n return this._options;\n };\n /**\n * add plugin into Analytics category\n * @param {Object} pluggable - an instance of the plugin\n */\n PubSubClass.prototype.addPluggable = function (pluggable) {\n return __awaiter(this, void 0, void 0, function () {\n var config;\n return __generator(this, function (_a) {\n if (pluggable && pluggable.getCategory() === 'PubSub') {\n this._pluggables.push(pluggable);\n config = pluggable.configure(this._options);\n return [2 /*return*/, config];\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * remove plugin from PubSub category\n * @param providerName - the name of the plugin\n */\n PubSubClass.prototype.removePluggable = function (providerName) {\n this._pluggables = this._pluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; });\n };\n PubSubClass.prototype.getProviderByName = function (providerName) {\n if (providerName === INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER) {\n return this.awsAppSyncProvider;\n }\n if (providerName === INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER) {\n return this.awsAppSyncRealTimeProvider;\n }\n return this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === providerName; });\n };\n PubSubClass.prototype.getProviders = function (options) {\n if (options === void 0) { options = {}; }\n var providerName = options.provider;\n if (!providerName) {\n return this._pluggables;\n }\n var provider = this.getProviderByName(providerName);\n if (!provider) {\n throw new Error(\"Could not find provider named \" + providerName);\n }\n return [provider];\n };\n PubSubClass.prototype.publish = function (topics, msg, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, Promise.all(this.getProviders(options).map(function (provider) {\n return provider.publish(topics, msg, options);\n }))];\n });\n });\n };\n PubSubClass.prototype.subscribe = function (topics, options) {\n if (isNode && this._options && this._options.ssr) {\n throw new Error('Subscriptions are not supported for Server-Side Rendering (SSR)');\n }\n logger.debug('subscribe options', options);\n var providers = this.getProviders(options);\n return new Observable(function (observer) {\n var observables = providers.map(function (provider) { return ({\n provider: provider,\n observable: provider.subscribe(topics, options),\n }); });\n var subscriptions = observables.map(function (_a) {\n var provider = _a.provider, observable = _a.observable;\n return observable.subscribe({\n start: console.error,\n next: function (value) { return observer.next({ provider: provider, value: value }); },\n error: function (error) { return observer.error({ provider: provider, error: error }); },\n });\n });\n return function () {\n return subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); });\n };\n });\n };\n return PubSubClass;\n}());\nexport { PubSubClass };\nexport var PubSub = new PubSubClass();\nAmplify.register(PubSub);\n//# sourceMappingURL=PubSub.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { print, parse, GraphQLError, } from 'graphql';\nimport { Amplify, ConsoleLogger as Logger, Credentials, getAmplifyUserAgent, INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER, } from '@aws-amplify/core';\nimport { PubSub } from '@aws-amplify/pubsub';\nimport Auth from '@aws-amplify/auth';\nimport Cache from '@aws-amplify/cache';\nimport { GraphQLAuthError, } from './types';\nimport { RestClient } from '@aws-amplify/api-rest';\nvar USER_AGENT_HEADER = 'x-amz-user-agent';\nvar logger = new Logger('GraphQLAPI');\nexport var graphqlOperation = function (query, variables, authToken, userAgentSuffix) {\n if (variables === void 0) { variables = {}; }\n return ({\n query: query,\n variables: variables,\n authToken: authToken,\n userAgentSuffix: userAgentSuffix,\n });\n};\n/**\n * Export Cloud Logic APIs\n */\nvar GraphQLAPIClass = /** @class */ (function () {\n /**\n * Initialize GraphQL API with AWS configuration\n * @param {Object} options - Configuration object for API\n */\n function GraphQLAPIClass(options) {\n this._api = null;\n this.Auth = Auth;\n this.Cache = Cache;\n this.Credentials = Credentials;\n this._options = options;\n logger.debug('API Options', this._options);\n }\n GraphQLAPIClass.prototype.getModuleName = function () {\n return 'GraphQLAPI';\n };\n /**\n * Configure API\n * @param {Object} config - Configuration of the API\n * @return {Object} - The current configuration\n */\n GraphQLAPIClass.prototype.configure = function (options) {\n var _a = options || {}, _b = _a.API, API = _b === void 0 ? {} : _b, otherOptions = __rest(_a, [\"API\"]);\n var opt = __assign(__assign({}, otherOptions), API);\n logger.debug('configure GraphQL API', { opt: opt });\n if (opt['aws_project_region']) {\n opt = Object.assign({}, opt, {\n region: opt['aws_project_region'],\n header: {},\n });\n }\n if (typeof opt.graphql_headers !== 'undefined' &&\n typeof opt.graphql_headers !== 'function') {\n logger.warn('graphql_headers should be a function');\n opt.graphql_headers = undefined;\n }\n this._options = Object.assign({}, this._options, opt);\n this.createInstance();\n return this._options;\n };\n /**\n * Create an instance of API for the library\n * @return - A promise of true if Success\n */\n GraphQLAPIClass.prototype.createInstance = function () {\n logger.debug('create Rest instance');\n if (this._options) {\n this._api = new RestClient(this._options);\n // Share instance Credentials with client for SSR\n this._api.Credentials = this.Credentials;\n return true;\n }\n else {\n return Promise.reject('API not configured');\n }\n };\n GraphQLAPIClass.prototype._headerBasedAuth = function (defaultAuthenticationType, additionalHeaders) {\n if (additionalHeaders === void 0) { additionalHeaders = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, aws_appsync_authenticationType, apiKey, authenticationType, headers, _b, credentialsOK, token, federatedInfo, currentUser, e_1, session, e_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = this._options, aws_appsync_authenticationType = _a.aws_appsync_authenticationType, apiKey = _a.aws_appsync_apiKey;\n authenticationType = defaultAuthenticationType || aws_appsync_authenticationType || 'AWS_IAM';\n headers = {};\n _b = authenticationType;\n switch (_b) {\n case 'API_KEY': return [3 /*break*/, 1];\n case 'AWS_IAM': return [3 /*break*/, 2];\n case 'OPENID_CONNECT': return [3 /*break*/, 4];\n case 'AMAZON_COGNITO_USER_POOLS': return [3 /*break*/, 11];\n case 'AWS_LAMBDA': return [3 /*break*/, 15];\n }\n return [3 /*break*/, 16];\n case 1:\n if (!apiKey) {\n throw new Error(GraphQLAuthError.NO_API_KEY);\n }\n headers = {\n Authorization: null,\n 'X-Api-Key': apiKey,\n };\n return [3 /*break*/, 17];\n case 2: return [4 /*yield*/, this._ensureCredentials()];\n case 3:\n credentialsOK = _c.sent();\n if (!credentialsOK) {\n throw new Error(GraphQLAuthError.NO_CREDENTIALS);\n }\n return [3 /*break*/, 17];\n case 4:\n _c.trys.push([4, 9, , 10]);\n token = void 0;\n return [4 /*yield*/, Cache.getItem('federatedInfo')];\n case 5:\n federatedInfo = _c.sent();\n if (!federatedInfo) return [3 /*break*/, 6];\n token = federatedInfo.token;\n return [3 /*break*/, 8];\n case 6: return [4 /*yield*/, Auth.currentAuthenticatedUser()];\n case 7:\n currentUser = _c.sent();\n if (currentUser) {\n token = currentUser.token;\n }\n _c.label = 8;\n case 8:\n if (!token) {\n throw new Error(GraphQLAuthError.NO_FEDERATED_JWT);\n }\n headers = {\n Authorization: token,\n };\n return [3 /*break*/, 10];\n case 9:\n e_1 = _c.sent();\n throw new Error(GraphQLAuthError.NO_CURRENT_USER);\n case 10: return [3 /*break*/, 17];\n case 11:\n _c.trys.push([11, 13, , 14]);\n return [4 /*yield*/, this.Auth.currentSession()];\n case 12:\n session = _c.sent();\n headers = {\n Authorization: session.getAccessToken().getJwtToken(),\n };\n return [3 /*break*/, 14];\n case 13:\n e_2 = _c.sent();\n throw new Error(GraphQLAuthError.NO_CURRENT_USER);\n case 14: return [3 /*break*/, 17];\n case 15:\n if (!additionalHeaders.Authorization) {\n throw new Error(GraphQLAuthError.NO_AUTH_TOKEN);\n }\n headers = {\n Authorization: additionalHeaders.Authorization,\n };\n return [3 /*break*/, 17];\n case 16:\n headers = {\n Authorization: null,\n };\n return [3 /*break*/, 17];\n case 17: return [2 /*return*/, headers];\n }\n });\n });\n };\n /**\n * to get the operation type\n * @param operation\n */\n GraphQLAPIClass.prototype.getGraphqlOperationType = function (operation) {\n var doc = parse(operation);\n var definitions = doc.definitions;\n var _a = __read(definitions, 1), operationType = _a[0].operation;\n return operationType;\n };\n /**\n * Executes a GraphQL operation\n *\n * @param options - GraphQL Options\n * @param [additionalHeaders] - headers to merge in after any `graphql_headers` set in the config\n * @returns An Observable if the query is a subscription query, else a promise of the graphql result.\n */\n GraphQLAPIClass.prototype.graphql = function (_a, additionalHeaders) {\n var paramQuery = _a.query, _b = _a.variables, variables = _b === void 0 ? {} : _b, authMode = _a.authMode, authToken = _a.authToken, userAgentSuffix = _a.userAgentSuffix;\n var query = typeof paramQuery === 'string'\n ? parse(paramQuery)\n : parse(print(paramQuery));\n var _c = __read(query.definitions.filter(function (def) { return def.kind === 'OperationDefinition'; }), 1), _d = _c[0], operationDef = _d === void 0 ? {} : _d;\n var operationType = operationDef.operation;\n var headers = additionalHeaders || {};\n // if an authorization header is set, have the explicit authToken take precedence\n if (authToken) {\n headers.Authorization = authToken;\n }\n switch (operationType) {\n case 'query':\n case 'mutation':\n this.createInstanceIfNotCreated();\n var cancellableToken = this._api.getCancellableToken();\n var initParams = { cancellableToken: cancellableToken };\n var responsePromise = this._graphql({ query: query, variables: variables, authMode: authMode, userAgentSuffix: userAgentSuffix }, headers, initParams);\n this._api.updateRequestToBeCancellable(responsePromise, cancellableToken);\n return responsePromise;\n case 'subscription':\n return this._graphqlSubscribe({ query: query, variables: variables, authMode: authMode }, headers);\n default:\n throw new Error(\"invalid operation type: \" + operationType);\n }\n };\n GraphQLAPIClass.prototype._graphql = function (_a, additionalHeaders, initParams) {\n var query = _a.query, variables = _a.variables, authMode = _a.authMode, userAgentSuffix = _a.userAgentSuffix;\n if (additionalHeaders === void 0) { additionalHeaders = {}; }\n if (initParams === void 0) { initParams = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _b, region, appSyncGraphqlEndpoint, _c, graphql_headers, customGraphqlEndpoint, customEndpointRegion, headers, _d, _e, _f, _g, _h, _j, body, init, endpoint, error, response, err_1, errors;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n this.createInstanceIfNotCreated();\n _b = this._options, region = _b.aws_appsync_region, appSyncGraphqlEndpoint = _b.aws_appsync_graphqlEndpoint, _c = _b.graphql_headers, graphql_headers = _c === void 0 ? function () { return ({}); } : _c, customGraphqlEndpoint = _b.graphql_endpoint, customEndpointRegion = _b.graphql_endpoint_iam_region;\n _d = [{}];\n _e = !customGraphqlEndpoint;\n if (!_e) return [3 /*break*/, 2];\n return [4 /*yield*/, this._headerBasedAuth(authMode, additionalHeaders)];\n case 1:\n _e = (_l.sent());\n _l.label = 2;\n case 2:\n _f = [__assign.apply(void 0, _d.concat([(_e)]))];\n _g = customGraphqlEndpoint;\n if (!_g) return [3 /*break*/, 6];\n if (!customEndpointRegion) return [3 /*break*/, 4];\n return [4 /*yield*/, this._headerBasedAuth(authMode, additionalHeaders)];\n case 3:\n _h = _l.sent();\n return [3 /*break*/, 5];\n case 4:\n _h = { Authorization: null };\n _l.label = 5;\n case 5:\n _g = (_h);\n _l.label = 6;\n case 6:\n _j = [__assign.apply(void 0, _f.concat([(_g)]))];\n return [4 /*yield*/, graphql_headers({ query: query, variables: variables })];\n case 7:\n headers = __assign.apply(void 0, [__assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), additionalHeaders]), (!customGraphqlEndpoint && (_k = {},\n _k[USER_AGENT_HEADER] = getAmplifyUserAgent(userAgentSuffix),\n _k))]);\n body = {\n query: print(query),\n variables: variables,\n };\n init = Object.assign({\n headers: headers,\n body: body,\n signerServiceInfo: {\n service: !customGraphqlEndpoint ? 'appsync' : 'execute-api',\n region: !customGraphqlEndpoint ? region : customEndpointRegion,\n },\n }, initParams);\n endpoint = customGraphqlEndpoint || appSyncGraphqlEndpoint;\n if (!endpoint) {\n error = new GraphQLError('No graphql endpoint provided.');\n throw {\n data: {},\n errors: [error],\n };\n }\n _l.label = 8;\n case 8:\n _l.trys.push([8, 10, , 11]);\n return [4 /*yield*/, this._api.post(endpoint, init)];\n case 9:\n response = _l.sent();\n return [3 /*break*/, 11];\n case 10:\n err_1 = _l.sent();\n // If the exception is because user intentionally\n // cancelled the request, do not modify the exception\n // so that clients can identify the exception correctly.\n if (this._api.isCancel(err_1)) {\n throw err_1;\n }\n response = {\n data: {},\n errors: [new GraphQLError(err_1.message, null, null, null, null, err_1)],\n };\n return [3 /*break*/, 11];\n case 11:\n errors = response.errors;\n if (errors && errors.length) {\n throw response;\n }\n return [2 /*return*/, response];\n }\n });\n });\n };\n GraphQLAPIClass.prototype.createInstanceIfNotCreated = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this._api) return [3 /*break*/, 2];\n return [4 /*yield*/, this.createInstance()];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param {any} error - Any error\n * @return {boolean} - A boolean indicating if the error was from an api request cancellation\n */\n GraphQLAPIClass.prototype.isCancel = function (error) {\n return this._api.isCancel(error);\n };\n /**\n * Cancels an inflight request. Only applicable for graphql queries and mutations\n * @param {any} request - request to cancel\n * @return {boolean} - A boolean indicating if the request was cancelled\n */\n GraphQLAPIClass.prototype.cancel = function (request, message) {\n return this._api.cancel(request, message);\n };\n /**\n * Check if the request has a corresponding cancel token in the WeakMap.\n * @params request - The request promise\n * @return if the request has a corresponding cancel token.\n */\n GraphQLAPIClass.prototype.hasCancelToken = function (request) {\n return this._api.hasCancelToken(request);\n };\n GraphQLAPIClass.prototype._graphqlSubscribe = function (_a, additionalHeaders) {\n var query = _a.query, variables = _a.variables, defaultAuthenticationType = _a.authMode, authToken = _a.authToken;\n if (additionalHeaders === void 0) { additionalHeaders = {}; }\n var _b = this._options, region = _b.aws_appsync_region, appSyncGraphqlEndpoint = _b.aws_appsync_graphqlEndpoint, aws_appsync_authenticationType = _b.aws_appsync_authenticationType, apiKey = _b.aws_appsync_apiKey, _c = _b.graphql_headers, graphql_headers = _c === void 0 ? function () { return ({}); } : _c;\n var authenticationType = defaultAuthenticationType || aws_appsync_authenticationType || 'AWS_IAM';\n if (PubSub && typeof PubSub.subscribe === 'function') {\n return PubSub.subscribe('', {\n provider: INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n apiKey: apiKey,\n query: print(query),\n region: region,\n variables: variables,\n graphql_headers: graphql_headers,\n additionalHeaders: additionalHeaders,\n authToken: authToken,\n });\n }\n else {\n logger.debug('No pubsub module applied for subscription');\n throw new Error('No pubsub module applied for subscription');\n }\n };\n /**\n * @private\n */\n GraphQLAPIClass.prototype._ensureCredentials = function () {\n var _this = this;\n return this.Credentials.get()\n .then(function (credentials) {\n if (!credentials)\n return false;\n var cred = _this.Credentials.shear(credentials);\n logger.debug('set credentials for api', cred);\n return true;\n })\n .catch(function (err) {\n logger.warn('ensure credentials error', err);\n return false;\n });\n };\n return GraphQLAPIClass;\n}());\nexport { GraphQLAPIClass };\nexport var GraphQLAPI = new GraphQLAPIClass(null);\nAmplify.register(GraphQLAPI);\n//# sourceMappingURL=GraphQLAPI.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Auth } from '@aws-amplify/auth';\nimport Cache from '@aws-amplify/cache';\nimport { RestAPIClass } from '@aws-amplify/api-rest';\nimport { GraphQLAPIClass, } from '@aws-amplify/api-graphql';\nimport { Amplify, ConsoleLogger as Logger, Credentials, } from '@aws-amplify/core';\nvar logger = new Logger('API');\n/**\n * @deprecated\n * Use RestApi or GraphQLAPI to reduce your application bundle size\n * Export Cloud Logic APIs\n */\nvar APIClass = /** @class */ (function () {\n /**\n * Initialize API with AWS configuration\n * @param {Object} options - Configuration object for API\n */\n function APIClass(options) {\n this.Auth = Auth;\n this.Cache = Cache;\n this.Credentials = Credentials;\n this._options = options;\n this._restApi = new RestAPIClass(options);\n this._graphqlApi = new GraphQLAPIClass(options);\n logger.debug('API Options', this._options);\n }\n APIClass.prototype.getModuleName = function () {\n return 'API';\n };\n /**\n * Configure API part with aws configurations\n * @param {Object} config - Configuration of the API\n * @return {Object} - The current configuration\n */\n APIClass.prototype.configure = function (options) {\n this._options = Object.assign({}, this._options, options);\n // Share Amplify instance with client for SSR\n this._restApi.Credentials = this.Credentials;\n this._graphqlApi.Auth = this.Auth;\n this._graphqlApi.Cache = this.Cache;\n this._graphqlApi.Credentials = this.Credentials;\n var restAPIConfig = this._restApi.configure(this._options);\n var graphQLAPIConfig = this._graphqlApi.configure(this._options);\n return __assign(__assign({}, restAPIConfig), graphQLAPIConfig);\n };\n /**\n * Make a GET request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.get = function (apiName, path, init) {\n return this._restApi.get(apiName, path, init);\n };\n /**\n * Make a POST request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.post = function (apiName, path, init) {\n return this._restApi.post(apiName, path, init);\n };\n /**\n * Make a PUT request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.put = function (apiName, path, init) {\n return this._restApi.put(apiName, path, init);\n };\n /**\n * Make a PATCH request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.patch = function (apiName, path, init) {\n return this._restApi.patch(apiName, path, init);\n };\n /**\n * Make a DEL request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.del = function (apiName, path, init) {\n return this._restApi.del(apiName, path, init);\n };\n /**\n * Make a HEAD request\n * @param apiName - The api name of the request\n * @param path - The path of the request\n * @param [init] - Request extra params\n * @return A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.head = function (apiName, path, init) {\n return this._restApi.head(apiName, path, init);\n };\n /**\n * Checks to see if an error thrown is from an api request cancellation\n * @param error - Any error\n * @return If the error was from an api request cancellation\n */\n APIClass.prototype.isCancel = function (error) {\n return this._restApi.isCancel(error);\n };\n /**\n * Cancels an inflight request for either a GraphQL request or a Rest API request.\n * @param request - request to cancel\n * @param [message] - custom error message\n * @return If the request was cancelled\n */\n APIClass.prototype.cancel = function (request, message) {\n if (this._restApi.hasCancelToken(request)) {\n return this._restApi.cancel(request, message);\n }\n else if (this._graphqlApi.hasCancelToken(request)) {\n return this._graphqlApi.cancel(request, message);\n }\n return false;\n };\n /**\n * Getting endpoint for API\n * @param apiName - The name of the api\n * @return The endpoint of the api\n */\n APIClass.prototype.endpoint = function (apiName) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this._restApi.endpoint(apiName)];\n });\n });\n };\n /**\n * to get the operation type\n * @param operation\n */\n APIClass.prototype.getGraphqlOperationType = function (operation) {\n return this._graphqlApi.getGraphqlOperationType(operation);\n };\n APIClass.prototype.graphql = function (options, additionalHeaders) {\n return this._graphqlApi.graphql(options, additionalHeaders);\n };\n return APIClass;\n}());\nexport { APIClass };\nexport var API = new APIClass(null);\nAmplify.register(API);\n//# sourceMappingURL=API.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nexport var CognitoHostedUIIdentityProvider;\n(function (CognitoHostedUIIdentityProvider) {\n CognitoHostedUIIdentityProvider[\"Cognito\"] = \"COGNITO\";\n CognitoHostedUIIdentityProvider[\"Google\"] = \"Google\";\n CognitoHostedUIIdentityProvider[\"Facebook\"] = \"Facebook\";\n CognitoHostedUIIdentityProvider[\"Amazon\"] = \"LoginWithAmazon\";\n CognitoHostedUIIdentityProvider[\"Apple\"] = \"SignInWithApple\";\n})(CognitoHostedUIIdentityProvider || (CognitoHostedUIIdentityProvider = {}));\nexport function isFederatedSignInOptions(obj) {\n var keys = ['provider'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function isFederatedSignInOptionsCustom(obj) {\n var keys = ['customProvider'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function hasCustomState(obj) {\n var keys = ['customState'];\n return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); });\n}\nexport function isCognitoHostedOpts(oauth) {\n return oauth.redirectSignIn !== undefined;\n}\nexport var AuthErrorTypes;\n(function (AuthErrorTypes) {\n AuthErrorTypes[\"NoConfig\"] = \"noConfig\";\n AuthErrorTypes[\"MissingAuthConfig\"] = \"missingAuthConfig\";\n AuthErrorTypes[\"EmptyUsername\"] = \"emptyUsername\";\n AuthErrorTypes[\"InvalidUsername\"] = \"invalidUsername\";\n AuthErrorTypes[\"EmptyPassword\"] = \"emptyPassword\";\n AuthErrorTypes[\"EmptyCode\"] = \"emptyCode\";\n AuthErrorTypes[\"SignUpError\"] = \"signUpError\";\n AuthErrorTypes[\"NoMFA\"] = \"noMFA\";\n AuthErrorTypes[\"InvalidMFA\"] = \"invalidMFA\";\n AuthErrorTypes[\"EmptyChallengeResponse\"] = \"emptyChallengeResponse\";\n AuthErrorTypes[\"NoUserSession\"] = \"noUserSession\";\n AuthErrorTypes[\"Default\"] = \"default\";\n AuthErrorTypes[\"DeviceConfig\"] = \"deviceConfig\";\n AuthErrorTypes[\"NetworkError\"] = \"networkError\";\n AuthErrorTypes[\"AutoSignInError\"] = \"autoSignInError\";\n})(AuthErrorTypes || (AuthErrorTypes = {}));\nexport function isUsernamePasswordOpts(obj) {\n return !!obj.username;\n}\nexport var GRAPHQL_AUTH_MODE;\n(function (GRAPHQL_AUTH_MODE) {\n GRAPHQL_AUTH_MODE[\"API_KEY\"] = \"API_KEY\";\n GRAPHQL_AUTH_MODE[\"AWS_IAM\"] = \"AWS_IAM\";\n GRAPHQL_AUTH_MODE[\"OPENID_CONNECT\"] = \"OPENID_CONNECT\";\n GRAPHQL_AUTH_MODE[\"AMAZON_COGNITO_USER_POOLS\"] = \"AMAZON_COGNITO_USER_POOLS\";\n GRAPHQL_AUTH_MODE[\"AWS_LAMBDA\"] = \"AWS_LAMBDA\";\n})(GRAPHQL_AUTH_MODE || (GRAPHQL_AUTH_MODE = {}));\n//# sourceMappingURL=Auth.js.map","import * as cookie from 'cookie';\r\nexport function hasDocumentCookie() {\r\n // Can we get/set cookies on document.cookie?\r\n return typeof document === 'object' && typeof document.cookie === 'string';\r\n}\r\nexport function cleanCookies() {\r\n document.cookie.split(';').forEach(function (c) {\r\n document.cookie = c\r\n .replace(/^ +/, '')\r\n .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/');\r\n });\r\n}\r\nexport function parseCookies(cookies, options) {\r\n if (typeof cookies === 'string') {\r\n return cookie.parse(cookies, options);\r\n }\r\n else if (typeof cookies === 'object' && cookies !== null) {\r\n return cookies;\r\n }\r\n else {\r\n return {};\r\n }\r\n}\r\nexport function isParsingCookie(value, doNotParse) {\r\n if (typeof doNotParse === 'undefined') {\r\n // We guess if the cookie start with { or [, it has been serialized\r\n doNotParse =\r\n !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '\"');\r\n }\r\n return !doNotParse;\r\n}\r\nexport function readCookie(value, options) {\r\n if (options === void 0) { options = {}; }\r\n var cleanValue = cleanupCookieValue(value);\r\n if (isParsingCookie(cleanValue, options.doNotParse)) {\r\n try {\r\n return JSON.parse(cleanValue);\r\n }\r\n catch (e) {\r\n // At least we tried\r\n }\r\n }\r\n // Ignore clean value if we failed the deserialization\r\n // It is not relevant anymore to trim those values\r\n return value;\r\n}\r\nfunction cleanupCookieValue(value) {\r\n // express prepend j: before serializing a cookie\r\n if (value && value[0] === 'j' && value[1] === ':') {\r\n return value.substr(2);\r\n }\r\n return value;\r\n}\r\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nimport * as cookie from 'cookie';\r\nimport { hasDocumentCookie, parseCookies, readCookie } from './utils';\r\nvar Cookies = /** @class */ (function () {\r\n function Cookies(cookies, options) {\r\n var _this = this;\r\n this.changeListeners = [];\r\n this.HAS_DOCUMENT_COOKIE = false;\r\n this.cookies = parseCookies(cookies, options);\r\n new Promise(function () {\r\n _this.HAS_DOCUMENT_COOKIE = hasDocumentCookie();\r\n }).catch(function () { });\r\n }\r\n Cookies.prototype._updateBrowserValues = function (parseOptions) {\r\n if (!this.HAS_DOCUMENT_COOKIE) {\r\n return;\r\n }\r\n this.cookies = cookie.parse(document.cookie, parseOptions);\r\n };\r\n Cookies.prototype._emitChange = function (params) {\r\n for (var i = 0; i < this.changeListeners.length; ++i) {\r\n this.changeListeners[i](params);\r\n }\r\n };\r\n Cookies.prototype.get = function (name, options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n return readCookie(this.cookies[name], options);\r\n };\r\n Cookies.prototype.getAll = function (options, parseOptions) {\r\n if (options === void 0) { options = {}; }\r\n this._updateBrowserValues(parseOptions);\r\n var result = {};\r\n for (var name_1 in this.cookies) {\r\n result[name_1] = readCookie(this.cookies[name_1], options);\r\n }\r\n return result;\r\n };\r\n Cookies.prototype.set = function (name, value, options) {\r\n var _a;\r\n if (typeof value === 'object') {\r\n value = JSON.stringify(value);\r\n }\r\n this.cookies = __assign(__assign({}, this.cookies), (_a = {}, _a[name] = value, _a));\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, value, options);\r\n }\r\n this._emitChange({ name: name, value: value, options: options });\r\n };\r\n Cookies.prototype.remove = function (name, options) {\r\n var finalOptions = (options = __assign(__assign({}, options), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 }));\r\n this.cookies = __assign({}, this.cookies);\r\n delete this.cookies[name];\r\n if (this.HAS_DOCUMENT_COOKIE) {\r\n document.cookie = cookie.serialize(name, '', finalOptions);\r\n }\r\n this._emitChange({ name: name, value: undefined, options: options });\r\n };\r\n Cookies.prototype.addChangeListener = function (callback) {\r\n this.changeListeners.push(callback);\r\n };\r\n Cookies.prototype.removeChangeListener = function (callback) {\r\n var idx = this.changeListeners.indexOf(callback);\r\n if (idx >= 0) {\r\n this.changeListeners.splice(idx, 1);\r\n }\r\n };\r\n return Cookies;\r\n}());\r\nexport default Cookies;\r\n","import Cookies from './Cookies';\r\nexport default Cookies;\r\n","import Cookies from 'universal-cookie';\nimport { browserOrNode } from '../JS';\nvar isBrowser = browserOrNode().isBrowser;\nvar UniversalStorage = /** @class */ (function () {\n function UniversalStorage(context) {\n if (context === void 0) { context = {}; }\n this.cookies = new Cookies();\n this.store = isBrowser ? window.localStorage : Object.create(null);\n this.cookies = context.req\n ? new Cookies(context.req.headers.cookie)\n : new Cookies();\n Object.assign(this.store, this.cookies.getAll());\n }\n Object.defineProperty(UniversalStorage.prototype, \"length\", {\n get: function () {\n return Object.entries(this.store).length;\n },\n enumerable: true,\n configurable: true\n });\n UniversalStorage.prototype.clear = function () {\n var _this = this;\n Array.from(new Array(this.length))\n .map(function (_, i) { return _this.key(i); })\n .forEach(function (key) { return _this.removeItem(key); });\n };\n UniversalStorage.prototype.getItem = function (key) {\n return this.getLocalItem(key);\n };\n UniversalStorage.prototype.getLocalItem = function (key) {\n return Object.prototype.hasOwnProperty.call(this.store, key)\n ? this.store[key]\n : null;\n };\n UniversalStorage.prototype.getUniversalItem = function (key) {\n return this.cookies.get(key);\n };\n UniversalStorage.prototype.key = function (index) {\n return Object.keys(this.store)[index];\n };\n UniversalStorage.prototype.removeItem = function (key) {\n this.removeLocalItem(key);\n this.removeUniversalItem(key);\n };\n UniversalStorage.prototype.removeLocalItem = function (key) {\n delete this.store[key];\n };\n UniversalStorage.prototype.removeUniversalItem = function (key) {\n this.cookies.remove(key, {\n path: '/',\n });\n };\n UniversalStorage.prototype.setItem = function (key, value) {\n this.setLocalItem(key, value);\n // keys take the shape:\n // 1. `${ProviderPrefix}.${userPoolClientId}.${username}.${tokenType}\n // 2. `${ProviderPrefix}.${userPoolClientId}.LastAuthUser\n var tokenType = key.split('.').pop();\n switch (tokenType) {\n // LastAuthUser is needed for computing other key names\n case 'LastAuthUser':\n // accessToken is required for CognitoUserSession\n case 'accessToken':\n // refreshToken originates on the client, but SSR pages won't fail when this expires\n // Note: the new `accessToken` will also be refreshed on the client (since Amplify doesn't set server-side cookies)\n case 'refreshToken':\n // Required for CognitoUserSession\n case 'idToken':\n isBrowser\n ? this.setUniversalItem(key, value)\n : this.setLocalItem(key, value);\n // userData is used when `Auth.currentAuthenticatedUser({ bypassCache: false })`.\n // Can be persisted to speed up calls to `Auth.currentAuthenticatedUser()`\n // case 'userData':\n // Ignoring clockDrift on the server for now, but needs testing\n // case 'clockDrift':\n }\n };\n UniversalStorage.prototype.setLocalItem = function (key, value) {\n this.store[key] = value;\n };\n UniversalStorage.prototype.setUniversalItem = function (key, value) {\n this.cookies.set(key, value, {\n path: '/',\n // `httpOnly` cannot be set via JavaScript: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#JavaScript_access_using_Document.cookie\n sameSite: true,\n // Allow unsecure requests to http://localhost:3000/ when in development.\n secure: window.location.hostname === 'localhost' ? false : true,\n });\n };\n return UniversalStorage;\n}());\nexport { UniversalStorage };\n//# sourceMappingURL=index.js.map","export function urlSafeEncode(str) {\n return str\n .split('')\n .map(function (char) {\n return char\n .charCodeAt(0)\n .toString(16)\n .padStart(2, '0');\n })\n .join('');\n}\nexport function urlSafeDecode(hex) {\n return hex\n .match(/.{2}/g)\n .map(function (char) { return String.fromCharCode(parseInt(char, 16)); })\n .join('');\n}\n//# sourceMappingURL=StringUtils.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar SELF = '_self';\nexport var launchUri = function (url) {\n var windowProxy = window.open(url, SELF);\n if (windowProxy) {\n return Promise.resolve(windowProxy);\n }\n else {\n return Promise.reject();\n }\n};\n//# sourceMappingURL=urlOpener.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nexport var setState = function (state) {\n window.sessionStorage.setItem('oauth_state', state);\n};\nexport var getState = function () {\n var oauth_state = window.sessionStorage.getItem('oauth_state');\n window.sessionStorage.removeItem('oauth_state');\n return oauth_state;\n};\nexport var setPKCE = function (private_key) {\n window.sessionStorage.setItem('ouath_pkce_key', private_key);\n};\nexport var getPKCE = function () {\n var ouath_pkce_key = window.sessionStorage.getItem('ouath_pkce_key');\n window.sessionStorage.removeItem('ouath_pkce_key');\n return ouath_pkce_key;\n};\nexport var clearAll = function () {\n window.sessionStorage.removeItem('ouath_pkce_key');\n window.sessionStorage.removeItem('oauth_state');\n};\n//# sourceMappingURL=oauthStorage.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { parse } from 'url'; // Used for OAuth parsing of Cognito Hosted UI\nimport { launchUri } from './urlOpener';\nimport * as oAuthStorage from './oauthStorage';\nimport { isCognitoHostedOpts, CognitoHostedUIIdentityProvider, } from '../types/Auth';\nimport { ConsoleLogger as Logger, Hub, urlSafeEncode } from '@aws-amplify/core';\nimport sha256 from 'crypto-js/sha256';\nimport Base64 from 'crypto-js/enc-base64';\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&\n typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nvar dispatchAuthEvent = function (event, data, message) {\n Hub.dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL);\n};\nvar logger = new Logger('OAuth');\nvar OAuth = /** @class */ (function () {\n function OAuth(_a) {\n var config = _a.config, cognitoClientId = _a.cognitoClientId, _b = _a.scopes, scopes = _b === void 0 ? [] : _b;\n this._urlOpener = config.urlOpener || launchUri;\n this._config = config;\n this._cognitoClientId = cognitoClientId;\n if (!this.isValidScopes(scopes))\n throw Error('scopes must be a String Array');\n this._scopes = scopes;\n }\n OAuth.prototype.isValidScopes = function (scopes) {\n return (Array.isArray(scopes) && scopes.every(function (scope) { return typeof scope === 'string'; }));\n };\n OAuth.prototype.oauthSignIn = function (responseType, domain, redirectSignIn, clientId, provider, customState) {\n if (responseType === void 0) { responseType = 'code'; }\n if (provider === void 0) { provider = CognitoHostedUIIdentityProvider.Cognito; }\n var generatedState = this._generateState(32);\n /* encodeURIComponent is not URL safe, use urlSafeEncode instead. Cognito\n single-encodes/decodes url on first sign in and double-encodes/decodes url\n when user already signed in. Using encodeURIComponent, Base32, Base64 add\n characters % or = which on further encoding becomes unsafe. '=' create issue\n for parsing query params.\n Refer: https://github.com/aws-amplify/amplify-js/issues/5218 */\n var state = customState\n ? generatedState + \"-\" + urlSafeEncode(customState)\n : generatedState;\n oAuthStorage.setState(state);\n var pkce_key = this._generateRandom(128);\n oAuthStorage.setPKCE(pkce_key);\n var code_challenge = this._generateChallenge(pkce_key);\n var code_challenge_method = 'S256';\n var scopesString = this._scopes.join(' ');\n var queryString = Object.entries(__assign(__assign({ redirect_uri: redirectSignIn, response_type: responseType, client_id: clientId, identity_provider: provider, scope: scopesString, state: state }, (responseType === 'code' ? { code_challenge: code_challenge } : {})), (responseType === 'code' ? { code_challenge_method: code_challenge_method } : {})))\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return encodeURIComponent(k) + \"=\" + encodeURIComponent(v);\n })\n .join('&');\n var URL = \"https://\" + domain + \"/oauth2/authorize?\" + queryString;\n logger.debug(\"Redirecting to \" + URL);\n this._urlOpener(URL, redirectSignIn);\n };\n OAuth.prototype._handleCodeFlow = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var code, currentUrlPathname, redirectSignInPathname, oAuthTokenEndpoint, client_id, redirect_uri, code_verifier, oAuthTokenBody, body, _a, access_token, refresh_token, id_token, error;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n code = (parse(currentUrl).query || '')\n .split('&')\n .map(function (pairings) { return pairings.split('='); })\n .reduce(function (accum, _a) {\n var _b;\n var _c = __read(_a, 2), k = _c[0], v = _c[1];\n return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b)));\n }, { code: undefined }).code;\n currentUrlPathname = parse(currentUrl).pathname || '/';\n redirectSignInPathname = parse(this._config.redirectSignIn).pathname || '/';\n if (!code || currentUrlPathname !== redirectSignInPathname) {\n return [2 /*return*/];\n }\n oAuthTokenEndpoint = 'https://' + this._config.domain + '/oauth2/token';\n dispatchAuthEvent('codeFlow', {}, \"Retrieving tokens from \" + oAuthTokenEndpoint);\n client_id = isCognitoHostedOpts(this._config)\n ? this._cognitoClientId\n : this._config.clientID;\n redirect_uri = isCognitoHostedOpts(this._config)\n ? this._config.redirectSignIn\n : this._config.redirectUri;\n code_verifier = oAuthStorage.getPKCE();\n oAuthTokenBody = __assign({ grant_type: 'authorization_code', code: code,\n client_id: client_id,\n redirect_uri: redirect_uri }, (code_verifier ? { code_verifier: code_verifier } : {}));\n logger.debug(\"Calling token endpoint: \" + oAuthTokenEndpoint + \" with\", oAuthTokenBody);\n body = Object.entries(oAuthTokenBody)\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return encodeURIComponent(k) + \"=\" + encodeURIComponent(v);\n })\n .join('&');\n return [4 /*yield*/, fetch(oAuthTokenEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: body,\n })];\n case 1: return [4 /*yield*/, (_b.sent()).json()];\n case 2:\n _a = _b.sent(), access_token = _a.access_token, refresh_token = _a.refresh_token, id_token = _a.id_token, error = _a.error;\n if (error) {\n throw new Error(error);\n }\n return [2 /*return*/, {\n accessToken: access_token,\n refreshToken: refresh_token,\n idToken: id_token,\n }];\n }\n });\n });\n };\n OAuth.prototype._handleImplicitFlow = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, id_token, access_token;\n return __generator(this, function (_b) {\n _a = (parse(currentUrl).hash || '#')\n .substr(1) // Remove # from returned code\n .split('&')\n .map(function (pairings) { return pairings.split('='); })\n .reduce(function (accum, _a) {\n var _b;\n var _c = __read(_a, 2), k = _c[0], v = _c[1];\n return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b)));\n }, {\n id_token: undefined,\n access_token: undefined,\n }), id_token = _a.id_token, access_token = _a.access_token;\n dispatchAuthEvent('implicitFlow', {}, \"Got tokens from \" + currentUrl);\n logger.debug(\"Retrieving implicit tokens from \" + currentUrl + \" with\");\n return [2 /*return*/, {\n accessToken: access_token,\n idToken: id_token,\n refreshToken: null,\n }];\n });\n });\n };\n OAuth.prototype.handleAuthResponse = function (currentUrl) {\n return __awaiter(this, void 0, void 0, function () {\n var urlParams, error, error_description, state, _a, _b, e_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 5, , 6]);\n urlParams = currentUrl\n ? __assign(__assign({}, (parse(currentUrl).hash || '#')\n .substr(1)\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .reduce(function (acc, _a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return ((acc[k] = v), acc);\n }, {})), (parse(currentUrl).query || '')\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .reduce(function (acc, _a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return ((acc[k] = v), acc);\n }, {}))\n : {};\n error = urlParams.error, error_description = urlParams.error_description;\n if (error) {\n throw new Error(error_description);\n }\n state = this._validateState(urlParams);\n logger.debug(\"Starting \" + this._config.responseType + \" flow with \" + currentUrl);\n if (!(this._config.responseType === 'code')) return [3 /*break*/, 2];\n _a = [{}];\n return [4 /*yield*/, this._handleCodeFlow(currentUrl)];\n case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_c.sent())])), { state: state }])];\n case 2:\n _b = [{}];\n return [4 /*yield*/, this._handleImplicitFlow(currentUrl)];\n case 3: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _b.concat([(_c.sent())])), { state: state }])];\n case 4: return [3 /*break*/, 6];\n case 5:\n e_1 = _c.sent();\n logger.error(\"Error handling auth response.\", e_1);\n throw e_1;\n case 6: return [2 /*return*/];\n }\n });\n });\n };\n OAuth.prototype._validateState = function (urlParams) {\n if (!urlParams) {\n return;\n }\n var savedState = oAuthStorage.getState();\n var returnedState = urlParams.state;\n // This is because savedState only exists if the flow was initiated by Amplify\n if (savedState && savedState !== returnedState) {\n throw new Error('Invalid state in OAuth flow');\n }\n return returnedState;\n };\n OAuth.prototype.signOut = function () {\n return __awaiter(this, void 0, void 0, function () {\n var oAuthLogoutEndpoint, client_id, signout_uri;\n return __generator(this, function (_a) {\n oAuthLogoutEndpoint = 'https://' + this._config.domain + '/logout?';\n client_id = isCognitoHostedOpts(this._config)\n ? this._cognitoClientId\n : this._config.oauth.clientID;\n signout_uri = isCognitoHostedOpts(this._config)\n ? this._config.redirectSignOut\n : this._config.returnTo;\n oAuthLogoutEndpoint += Object.entries({\n client_id: client_id,\n logout_uri: encodeURIComponent(signout_uri),\n })\n .map(function (_a) {\n var _b = __read(_a, 2), k = _b[0], v = _b[1];\n return k + \"=\" + v;\n })\n .join('&');\n dispatchAuthEvent('oAuthSignOut', { oAuth: 'signOut' }, \"Signing out from \" + oAuthLogoutEndpoint);\n logger.debug(\"Signing out from \" + oAuthLogoutEndpoint);\n return [2 /*return*/, this._urlOpener(oAuthLogoutEndpoint, signout_uri)];\n });\n });\n };\n OAuth.prototype._generateState = function (length) {\n var result = '';\n var i = length;\n var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (; i > 0; --i)\n result += chars[Math.round(Math.random() * (chars.length - 1))];\n return result;\n };\n OAuth.prototype._generateChallenge = function (code) {\n return this._base64URL(sha256(code));\n };\n OAuth.prototype._base64URL = function (string) {\n return string\n .toString(Base64)\n .replace(/=/g, '')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_');\n };\n OAuth.prototype._generateRandom = function (size) {\n var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n var buffer = new Uint8Array(size);\n if (typeof window !== 'undefined' && !!window.crypto) {\n window.crypto.getRandomValues(buffer);\n }\n else {\n for (var i = 0; i < size; i += 1) {\n buffer[i] = (Math.random() * CHARSET.length) | 0;\n }\n }\n return this._bufferToString(buffer);\n };\n OAuth.prototype._bufferToString = function (buffer) {\n var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var state = [];\n for (var i = 0; i < buffer.byteLength; i += 1) {\n var index = buffer[i] % CHARSET.length;\n state.push(CHARSET[index]);\n }\n return state.join('');\n };\n return OAuth;\n}());\nexport default OAuth;\n//# sourceMappingURL=OAuth.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { browserOrNode } from '@aws-amplify/core';\nexport default (function (callback) {\n if (browserOrNode().isBrowser && window.location) {\n var url = window.location.href;\n callback({ url: url });\n }\n else if (browserOrNode().isNode) {\n // continue building on ssr\n (function () { }); // noop\n }\n else {\n throw new Error('Not supported');\n }\n});\n//# sourceMappingURL=urlListener.js.map","/*\n * Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { AuthErrorStrings } from './common/AuthErrorStrings';\nvar logger = new Logger('AuthError');\nvar AuthError = /** @class */ (function (_super) {\n __extends(AuthError, _super);\n function AuthError(type) {\n var _this = this;\n var _a = authErrorMessages[type], message = _a.message, log = _a.log;\n _this = _super.call(this, message) || this;\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n _this.constructor = AuthError;\n Object.setPrototypeOf(_this, AuthError.prototype);\n _this.name = 'AuthError';\n _this.log = log || message;\n logger.error(_this.log);\n return _this;\n }\n return AuthError;\n}(Error));\nexport { AuthError };\nvar NoUserPoolError = /** @class */ (function (_super) {\n __extends(NoUserPoolError, _super);\n function NoUserPoolError(type) {\n var _this = _super.call(this, type) || this;\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n _this.constructor = NoUserPoolError;\n Object.setPrototypeOf(_this, NoUserPoolError.prototype);\n _this.name = 'NoUserPoolError';\n return _this;\n }\n return NoUserPoolError;\n}(AuthError));\nexport { NoUserPoolError };\nexport var authErrorMessages = {\n noConfig: {\n message: AuthErrorStrings.DEFAULT_MSG,\n log: \"\\n Error: Amplify has not been configured correctly.\\n This error is typically caused by one of the following scenarios:\\n\\n 1. Make sure you're passing the awsconfig object to Amplify.configure() in your app's entry point\\n See https://aws-amplify.github.io/docs/js/authentication#configure-your-app for more information\\n \\n 2. There might be multiple conflicting versions of amplify packages in your node_modules.\\n\\t\\t\\t\\tRefer to our docs site for help upgrading Amplify packages (https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js)\\n \",\n },\n missingAuthConfig: {\n message: AuthErrorStrings.DEFAULT_MSG,\n log: \"\\n Error: Amplify has not been configured correctly. \\n The configuration object is missing required auth properties.\\n This error is typically caused by one of the following scenarios:\\n\\n 1. Did you run `amplify push` after adding auth via `amplify add auth`?\\n See https://aws-amplify.github.io/docs/js/authentication#amplify-project-setup for more information\\n\\n 2. This could also be caused by multiple conflicting versions of amplify packages, see (https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js) for help upgrading Amplify packages.\\n \",\n },\n emptyUsername: {\n message: AuthErrorStrings.EMPTY_USERNAME,\n },\n // TODO: should include a list of valid sign-in types\n invalidUsername: {\n message: AuthErrorStrings.INVALID_USERNAME,\n },\n emptyPassword: {\n message: AuthErrorStrings.EMPTY_PASSWORD,\n },\n emptyCode: {\n message: AuthErrorStrings.EMPTY_CODE,\n },\n signUpError: {\n message: AuthErrorStrings.SIGN_UP_ERROR,\n log: 'The first parameter should either be non-null string or object',\n },\n noMFA: {\n message: AuthErrorStrings.NO_MFA,\n },\n invalidMFA: {\n message: AuthErrorStrings.INVALID_MFA,\n },\n emptyChallengeResponse: {\n message: AuthErrorStrings.EMPTY_CHALLENGE,\n },\n noUserSession: {\n message: AuthErrorStrings.NO_USER_SESSION,\n },\n deviceConfig: {\n message: AuthErrorStrings.DEVICE_CONFIG,\n },\n networkError: {\n message: AuthErrorStrings.NETWORK_ERROR,\n },\n autoSignInError: {\n message: AuthErrorStrings.AUTOSIGNIN_ERROR,\n },\n default: {\n message: AuthErrorStrings.DEFAULT_MSG,\n },\n};\n//# sourceMappingURL=Errors.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n *\t http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { isUsernamePasswordOpts, isCognitoHostedOpts, isFederatedSignInOptions, isFederatedSignInOptionsCustom, hasCustomState, } from './types';\nimport { Amplify, ConsoleLogger as Logger, Credentials, Hub, StorageHelper, Parser, browserOrNode, UniversalStorage, urlSafeDecode, } from '@aws-amplify/core';\nimport { CookieStorage, CognitoUserPool, AuthenticationDetails, CognitoUser, CognitoUserSession, CognitoUserAttribute, CognitoIdToken, CognitoRefreshToken, CognitoAccessToken, } from 'amazon-cognito-identity-js';\nimport { parse } from 'url';\nimport OAuth from './OAuth/OAuth';\nimport { default as urlListener } from './urlListener';\nimport { AuthError, NoUserPoolError } from './Errors';\nimport { AuthErrorTypes, CognitoHostedUIIdentityProvider, } from './types/Auth';\nvar logger = new Logger('AuthClass');\nvar USER_ADMIN_SCOPE = 'aws.cognito.signin.user.admin';\n// 10 sec, following this guide https://www.nngroup.com/articles/response-times-3-important-limits/\nvar OAUTH_FLOW_MS_TIMEOUT = 10 * 1000;\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nvar dispatchAuthEvent = function (event, data, message) {\n Hub.dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL);\n};\n// Cognito Documentation for max device\n// tslint:disable-next-line:max-line-length\n// https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListDevices.html#API_ListDevices_RequestSyntax\nvar MAX_DEVICES = 60;\nvar MAX_AUTOSIGNIN_POLLING_MS = 3 * 60 * 1000;\n/**\n * Provide authentication steps\n */\nvar AuthClass = /** @class */ (function () {\n /**\n * Initialize Auth with AWS configurations\n * @param {Object} config - Configuration of the Auth\n */\n function AuthClass(config) {\n var _this = this;\n this.userPool = null;\n this.user = null;\n this.oAuthFlowInProgress = false;\n this.autoSignInInitiated = false;\n this.Credentials = Credentials;\n this.wrapRefreshSessionCallback = function (callback) {\n var wrapped = function (error, data) {\n if (data) {\n dispatchAuthEvent('tokenRefresh', undefined, \"New token retrieved\");\n }\n else {\n dispatchAuthEvent('tokenRefresh_failure', error, \"Failed to retrieve new token\");\n }\n return callback(error, data);\n };\n return wrapped;\n }; // prettier-ignore\n this.configure(config);\n this.currentCredentials = this.currentCredentials.bind(this);\n this.currentUserCredentials = this.currentUserCredentials.bind(this);\n Hub.listen('auth', function (_a) {\n var payload = _a.payload;\n var event = payload.event;\n switch (event) {\n case 'signIn':\n _this._storage.setItem('amplify-signin-with-hostedUI', 'false');\n break;\n case 'signOut':\n _this._storage.removeItem('amplify-signin-with-hostedUI');\n break;\n case 'cognitoHostedUI':\n _this._storage.setItem('amplify-signin-with-hostedUI', 'true');\n break;\n }\n });\n }\n AuthClass.prototype.getModuleName = function () {\n return 'Auth';\n };\n AuthClass.prototype.configure = function (config) {\n var _this = this;\n if (!config)\n return this._config || {};\n logger.debug('configure Auth');\n var conf = Object.assign({}, this._config, Parser.parseMobilehubConfig(config).Auth, config);\n this._config = conf;\n var _a = this._config, userPoolId = _a.userPoolId, userPoolWebClientId = _a.userPoolWebClientId, cookieStorage = _a.cookieStorage, oauth = _a.oauth, region = _a.region, identityPoolId = _a.identityPoolId, mandatorySignIn = _a.mandatorySignIn, refreshHandlers = _a.refreshHandlers, identityPoolRegion = _a.identityPoolRegion, clientMetadata = _a.clientMetadata, endpoint = _a.endpoint;\n if (!this._config.storage) {\n // backward compatability\n if (cookieStorage)\n this._storage = new CookieStorage(cookieStorage);\n else {\n this._storage = config.ssr\n ? new UniversalStorage()\n : new StorageHelper().getStorage();\n }\n }\n else {\n if (!this._isValidAuthStorage(this._config.storage)) {\n logger.error('The storage in the Auth config is not valid!');\n throw new Error('Empty storage object');\n }\n this._storage = this._config.storage;\n }\n this._storageSync = Promise.resolve();\n if (typeof this._storage['sync'] === 'function') {\n this._storageSync = this._storage['sync']();\n }\n if (userPoolId) {\n var userPoolData = {\n UserPoolId: userPoolId,\n ClientId: userPoolWebClientId,\n endpoint: endpoint,\n };\n userPoolData.Storage = this._storage;\n this.userPool = new CognitoUserPool(userPoolData, this.wrapRefreshSessionCallback);\n }\n this.Credentials.configure({\n mandatorySignIn: mandatorySignIn,\n region: identityPoolRegion || region,\n userPoolId: userPoolId,\n identityPoolId: identityPoolId,\n refreshHandlers: refreshHandlers,\n storage: this._storage,\n });\n // initialize cognitoauth client if hosted ui options provided\n // to keep backward compatibility:\n var cognitoHostedUIConfig = oauth\n ? isCognitoHostedOpts(this._config.oauth)\n ? oauth\n : oauth.awsCognito\n : undefined;\n if (cognitoHostedUIConfig) {\n var cognitoAuthParams = Object.assign({\n cognitoClientId: userPoolWebClientId,\n UserPoolId: userPoolId,\n domain: cognitoHostedUIConfig['domain'],\n scopes: cognitoHostedUIConfig['scope'],\n redirectSignIn: cognitoHostedUIConfig['redirectSignIn'],\n redirectSignOut: cognitoHostedUIConfig['redirectSignOut'],\n responseType: cognitoHostedUIConfig['responseType'],\n Storage: this._storage,\n urlOpener: cognitoHostedUIConfig['urlOpener'],\n clientMetadata: clientMetadata,\n }, cognitoHostedUIConfig['options']);\n this._oAuthHandler = new OAuth({\n scopes: cognitoAuthParams.scopes,\n config: cognitoAuthParams,\n cognitoClientId: cognitoAuthParams.cognitoClientId,\n });\n // **NOTE** - Remove this in a future major release as it is a breaking change\n // Prevents _handleAuthResponse from being called multiple times in Expo\n // See https://github.com/aws-amplify/amplify-js/issues/4388\n var usedResponseUrls_1 = {};\n urlListener(function (_a) {\n var url = _a.url;\n if (usedResponseUrls_1[url]) {\n return;\n }\n usedResponseUrls_1[url] = true;\n _this._handleAuthResponse(url);\n });\n }\n dispatchAuthEvent('configured', null, \"The Auth category has been configured successfully\");\n if (!this.autoSignInInitiated &&\n typeof this._storage['getItem'] === 'function') {\n var pollingInitiated = this.isTrueStorageValue('amplify-polling-started');\n if (pollingInitiated) {\n dispatchAuthEvent('autoSignIn_failure', null, AuthErrorTypes.AutoSignInError);\n this._storage.removeItem('amplify-auto-sign-in');\n }\n this._storage.removeItem('amplify-polling-started');\n }\n return this._config;\n };\n /**\n * Sign up with username, password and other attributes like phone, email\n * @param {String | object} params - The user attributes used for signin\n * @param {String[]} restOfAttrs - for the backward compatability\n * @return - A promise resolves callback data if success\n */\n AuthClass.prototype.signUp = function (params) {\n var _this = this;\n var restOfAttrs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n restOfAttrs[_i - 1] = arguments[_i];\n }\n var _a, _b, _c;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n var username = null;\n var password = null;\n var attributes = [];\n var validationData = null;\n var clientMetadata;\n var autoSignIn = { enabled: false };\n var autoSignInValidationData = {};\n var autoSignInClientMetaData = {};\n if (params && typeof params === 'string') {\n username = params;\n password = restOfAttrs ? restOfAttrs[0] : null;\n var email = restOfAttrs ? restOfAttrs[1] : null;\n var phone_number = restOfAttrs ? restOfAttrs[2] : null;\n if (email)\n attributes.push(new CognitoUserAttribute({ Name: 'email', Value: email }));\n if (phone_number)\n attributes.push(new CognitoUserAttribute({\n Name: 'phone_number',\n Value: phone_number,\n }));\n }\n else if (params && typeof params === 'object') {\n username = params['username'];\n password = params['password'];\n if (params && params.clientMetadata) {\n clientMetadata = params.clientMetadata;\n }\n else if (this._config.clientMetadata) {\n clientMetadata = this._config.clientMetadata;\n }\n var attrs_1 = params['attributes'];\n if (attrs_1) {\n Object.keys(attrs_1).map(function (key) {\n attributes.push(new CognitoUserAttribute({ Name: key, Value: attrs_1[key] }));\n });\n }\n var validationDataObject_1 = params['validationData'];\n if (validationDataObject_1) {\n validationData = [];\n Object.keys(validationDataObject_1).map(function (key) {\n validationData.push(new CognitoUserAttribute({\n Name: key,\n Value: validationDataObject_1[key],\n }));\n });\n }\n autoSignIn = (_a = params.autoSignIn) !== null && _a !== void 0 ? _a : { enabled: false };\n if (autoSignIn.enabled) {\n this._storage.setItem('amplify-auto-sign-in', 'true');\n autoSignInValidationData = (_b = autoSignIn.validationData) !== null && _b !== void 0 ? _b : {};\n autoSignInClientMetaData = (_c = autoSignIn.clientMetaData) !== null && _c !== void 0 ? _c : {};\n }\n }\n else {\n return this.rejectAuthError(AuthErrorTypes.SignUpError);\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n logger.debug('signUp attrs:', attributes);\n logger.debug('signUp validation data:', validationData);\n return new Promise(function (resolve, reject) {\n _this.userPool.signUp(username, password, attributes, validationData, function (err, data) {\n if (err) {\n dispatchAuthEvent('signUp_failure', err, username + \" failed to signup\");\n reject(err);\n }\n else {\n dispatchAuthEvent('signUp', data, username + \" has signed up successfully\");\n if (autoSignIn.enabled) {\n _this.handleAutoSignIn(username, password, autoSignInValidationData, autoSignInClientMetaData, data);\n }\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n AuthClass.prototype.handleAutoSignIn = function (username, password, validationData, clientMetadata, data) {\n this.autoSignInInitiated = true;\n var authDetails = new AuthenticationDetails({\n Username: username,\n Password: password,\n ValidationData: validationData,\n ClientMetadata: clientMetadata,\n });\n if (data.userConfirmed) {\n this.signInAfterUserConfirmed(authDetails);\n }\n else if (this._config.signUpVerificationMethod === 'link') {\n this.handleLinkAutoSignIn(authDetails);\n }\n else {\n this.handleCodeAutoSignIn(authDetails);\n }\n };\n AuthClass.prototype.handleCodeAutoSignIn = function (authDetails) {\n var _this = this;\n var listenEvent = function (_a) {\n var payload = _a.payload;\n if (payload.event === 'confirmSignUp') {\n _this.signInAfterUserConfirmed(authDetails, listenEvent);\n }\n };\n Hub.listen('auth', listenEvent);\n };\n AuthClass.prototype.handleLinkAutoSignIn = function (authDetails) {\n var _this = this;\n this._storage.setItem('amplify-polling-started', 'true');\n var start = Date.now();\n var autoSignInPollingIntervalId = setInterval(function () {\n if (Date.now() - start > MAX_AUTOSIGNIN_POLLING_MS) {\n clearInterval(autoSignInPollingIntervalId);\n dispatchAuthEvent('autoSignIn_failure', null, 'Please confirm your account and use your credentials to sign in.');\n _this._storage.removeItem('amplify-auto-sign-in');\n }\n else {\n _this.signInAfterUserConfirmed(authDetails, null, autoSignInPollingIntervalId);\n }\n }, 5000);\n };\n AuthClass.prototype.signInAfterUserConfirmed = function (authDetails, listenEvent, autoSignInPollingIntervalId) {\n return __awaiter(this, void 0, void 0, function () {\n var user, error_1;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n user = this.createCognitoUser(authDetails.getUsername());\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, user.authenticateUser(authDetails, this.authCallbacks(user, function (value) {\n dispatchAuthEvent('autoSignIn', value, authDetails.getUsername() + \" has signed in successfully\");\n if (listenEvent) {\n Hub.remove('auth', listenEvent);\n }\n if (autoSignInPollingIntervalId) {\n clearInterval(autoSignInPollingIntervalId);\n _this._storage.removeItem('amplify-polling-started');\n }\n _this._storage.removeItem('amplify-auto-sign-in');\n }, function (error) {\n logger.error(error);\n _this._storage.removeItem('amplify-auto-sign-in');\n }))];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_1 = _a.sent();\n logger.error(error_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Send the verification code to confirm sign up\n * @param {String} username - The username to be confirmed\n * @param {String} code - The verification code\n * @param {ConfirmSignUpOptions} options - other options for confirm signup\n * @return - A promise resolves callback data if success\n */\n AuthClass.prototype.confirmSignUp = function (username, code, options) {\n var _this = this;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n var user = this.createCognitoUser(username);\n var forceAliasCreation = options && typeof options.forceAliasCreation === 'boolean'\n ? options.forceAliasCreation\n : true;\n var clientMetadata;\n if (options && options.clientMetadata) {\n clientMetadata = options.clientMetadata;\n }\n else if (this._config.clientMetadata) {\n clientMetadata = this._config.clientMetadata;\n }\n return new Promise(function (resolve, reject) {\n user.confirmRegistration(code, forceAliasCreation, function (err, data) {\n if (err) {\n reject(err);\n }\n else {\n dispatchAuthEvent('confirmSignUp', data, username + \" has been confirmed successfully\");\n var autoSignIn = _this.isTrueStorageValue('amplify-auto-sign-in');\n if (autoSignIn && !_this.autoSignInInitiated) {\n dispatchAuthEvent('autoSignIn_failure', null, AuthErrorTypes.AutoSignInError);\n _this._storage.removeItem('amplify-auto-sign-in');\n }\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n AuthClass.prototype.isTrueStorageValue = function (value) {\n var item = this._storage.getItem(value);\n return item ? item === 'true' : false;\n };\n /**\n * Resend the verification code\n * @param {String} username - The username to be confirmed\n * @param {ClientMetadata} clientMetadata - Metadata to be passed to Cognito Lambda triggers\n * @return - A promise resolves code delivery details if successful\n */\n AuthClass.prototype.resendSignUp = function (username, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.resendConfirmationCode(function (err, data) {\n if (err) {\n reject(err);\n }\n else {\n resolve(data);\n }\n }, clientMetadata);\n });\n };\n /**\n * Sign in\n * @param {String | SignInOpts} usernameOrSignInOpts - The username to be signed in or the sign in options\n * @param {String} pw - The password of the username\n * @param {ClientMetaData} clientMetadata - Client metadata for custom workflows\n * @return - A promise resolves the CognitoUser\n */\n AuthClass.prototype.signIn = function (usernameOrSignInOpts, pw, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n var username = null;\n var password = null;\n var validationData = {};\n // for backward compatibility\n if (typeof usernameOrSignInOpts === 'string') {\n username = usernameOrSignInOpts;\n password = pw;\n }\n else if (isUsernamePasswordOpts(usernameOrSignInOpts)) {\n if (typeof pw !== 'undefined') {\n logger.warn('The password should be defined under the first parameter object!');\n }\n username = usernameOrSignInOpts.username;\n password = usernameOrSignInOpts.password;\n validationData = usernameOrSignInOpts.validationData;\n }\n else {\n return this.rejectAuthError(AuthErrorTypes.InvalidUsername);\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var authDetails = new AuthenticationDetails({\n Username: username,\n Password: password,\n ValidationData: validationData,\n ClientMetadata: clientMetadata,\n });\n if (password) {\n return this.signInWithPassword(authDetails);\n }\n else {\n return this.signInWithoutPassword(authDetails);\n }\n };\n /**\n * Return an object with the authentication callbacks\n * @param {CognitoUser} user - the cognito user object\n * @param {} resolve - function called when resolving the current step\n * @param {} reject - function called when rejecting the current step\n * @return - an object with the callback methods for user authentication\n */\n AuthClass.prototype.authCallbacks = function (user, resolve, reject) {\n var _this = this;\n var that = this;\n return {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_1, currentUser, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n delete user['challengeName'];\n delete user['challengeParam'];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 9]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 9];\n case 4:\n e_1 = _a.sent();\n logger.debug('cannot get cognito credentials', e_1);\n return [3 /*break*/, 9];\n case 5:\n _a.trys.push([5, 7, , 8]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 6:\n currentUser = _a.sent();\n that.user = currentUser;\n dispatchAuthEvent('signIn', currentUser, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(currentUser);\n return [3 /*break*/, 8];\n case 7:\n e_2 = _a.sent();\n logger.error('Failed to get the signed in user', e_2);\n reject(e_2);\n return [3 /*break*/, 8];\n case 8: return [7 /*endfinally*/];\n case 9: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('signIn failure', err);\n dispatchAuthEvent('signIn_failure', err, user.getUsername() + \" failed to signin\");\n reject(err);\n },\n customChallenge: function (challengeParam) {\n logger.debug('signIn custom challenge answer required');\n user['challengeName'] = 'CUSTOM_CHALLENGE';\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaRequired: function (challengeName, challengeParam) {\n logger.debug('signIn MFA required');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaSetup: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n newPasswordRequired: function (userAttributes, requiredAttributes) {\n logger.debug('signIn new password');\n user['challengeName'] = 'NEW_PASSWORD_REQUIRED';\n user['challengeParam'] = {\n userAttributes: userAttributes,\n requiredAttributes: requiredAttributes,\n };\n resolve(user);\n },\n totpRequired: function (challengeName, challengeParam) {\n logger.debug('signIn totpRequired');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n selectMFAType: function (challengeName, challengeParam) {\n logger.debug('signIn selectMFAType', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n };\n };\n /**\n * Sign in with a password\n * @private\n * @param {AuthenticationDetails} authDetails - the user sign in data\n * @return - A promise resolves the CognitoUser object if success or mfa required\n */\n AuthClass.prototype.signInWithPassword = function (authDetails) {\n var _this = this;\n if (this.pendingSignIn) {\n throw new Error('Pending sign-in attempt already in progress');\n }\n var user = this.createCognitoUser(authDetails.getUsername());\n this.pendingSignIn = new Promise(function (resolve, reject) {\n user.authenticateUser(authDetails, _this.authCallbacks(user, function (value) {\n _this.pendingSignIn = null;\n resolve(value);\n }, function (error) {\n _this.pendingSignIn = null;\n reject(error);\n }));\n });\n return this.pendingSignIn;\n };\n /**\n * Sign in without a password\n * @private\n * @param {AuthenticationDetails} authDetails - the user sign in data\n * @return - A promise resolves the CognitoUser object if success or mfa required\n */\n AuthClass.prototype.signInWithoutPassword = function (authDetails) {\n var _this = this;\n var user = this.createCognitoUser(authDetails.getUsername());\n user.setAuthenticationFlowType('CUSTOM_AUTH');\n return new Promise(function (resolve, reject) {\n user.initiateAuth(authDetails, _this.authCallbacks(user, resolve, reject));\n });\n };\n /**\n * This was previously used by an authenticated user to get MFAOptions,\n * but no longer returns a meaningful response. Refer to the documentation for\n * how to setup and use MFA: https://docs.amplify.aws/lib/auth/mfa/q/platform/js\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves the current preferred mfa option if success\n */\n AuthClass.prototype.getMFAOptions = function (user) {\n return new Promise(function (res, rej) {\n user.getMFAOptions(function (err, mfaOptions) {\n if (err) {\n logger.debug('get MFA Options failed', err);\n rej(err);\n return;\n }\n logger.debug('get MFA options success', mfaOptions);\n res(mfaOptions);\n return;\n });\n });\n };\n /**\n * get preferred mfa method\n * @param {CognitoUser} user - the current cognito user\n * @param {GetPreferredMFAOpts} params - options for getting the current user preferred MFA\n */\n AuthClass.prototype.getPreferredMFA = function (user, params) {\n var _this = this;\n var that = this;\n return new Promise(function (res, rej) {\n var clientMetadata = _this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n var bypassCache = params ? params.bypassCache : false;\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_1, mfaType;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting preferred mfa failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_1 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_1.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n mfaType = that._getMfaTypeFromUserData(data);\n if (!mfaType) {\n rej('invalid MFA Type');\n return [2 /*return*/];\n }\n else {\n res(mfaType);\n return [2 /*return*/];\n }\n return [2 /*return*/];\n }\n });\n }); }, { bypassCache: bypassCache, clientMetadata: clientMetadata });\n });\n };\n AuthClass.prototype._getMfaTypeFromUserData = function (data) {\n var ret = null;\n var preferredMFA = data.PreferredMfaSetting;\n // if the user has used Auth.setPreferredMFA() to setup the mfa type\n // then the \"PreferredMfaSetting\" would exist in the response\n if (preferredMFA) {\n ret = preferredMFA;\n }\n else {\n // if mfaList exists but empty, then its noMFA\n var mfaList = data.UserMFASettingList;\n if (!mfaList) {\n // if SMS was enabled by using Auth.enableSMS(),\n // the response would contain MFAOptions\n // as for now Cognito only supports for SMS, so we will say it is 'SMS_MFA'\n // if it does not exist, then it should be NOMFA\n var MFAOptions = data.MFAOptions;\n if (MFAOptions) {\n ret = 'SMS_MFA';\n }\n else {\n ret = 'NOMFA';\n }\n }\n else if (mfaList.length === 0) {\n ret = 'NOMFA';\n }\n else {\n logger.debug('invalid case for getPreferredMFA', data);\n }\n }\n return ret;\n };\n AuthClass.prototype._getUserData = function (user, params) {\n var _this = this;\n return new Promise(function (res, rej) {\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_2 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_2.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n res(data);\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); }, params);\n });\n };\n /**\n * set preferred MFA method\n * @param {CognitoUser} user - the current Cognito user\n * @param {string} mfaMethod - preferred mfa method\n * @return - A promise resolve if success\n */\n AuthClass.prototype.setPreferredMFA = function (user, mfaMethod) {\n return __awaiter(this, void 0, void 0, function () {\n var clientMetadata, userData, smsMfaSettings, totpMfaSettings, _a, mfaList, currentMFAType, that;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientMetadata = this._config.clientMetadata;\n return [4 /*yield*/, this._getUserData(user, {\n bypassCache: true,\n clientMetadata: clientMetadata,\n })];\n case 1:\n userData = _b.sent();\n smsMfaSettings = null;\n totpMfaSettings = null;\n _a = mfaMethod;\n switch (_a) {\n case 'TOTP': return [3 /*break*/, 2];\n case 'SOFTWARE_TOKEN_MFA': return [3 /*break*/, 2];\n case 'SMS': return [3 /*break*/, 3];\n case 'SMS_MFA': return [3 /*break*/, 3];\n case 'NOMFA': return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n totpMfaSettings = {\n PreferredMfa: true,\n Enabled: true,\n };\n return [3 /*break*/, 7];\n case 3:\n smsMfaSettings = {\n PreferredMfa: true,\n Enabled: true,\n };\n return [3 /*break*/, 7];\n case 4:\n mfaList = userData['UserMFASettingList'];\n return [4 /*yield*/, this._getMfaTypeFromUserData(userData)];\n case 5:\n currentMFAType = _b.sent();\n if (currentMFAType === 'NOMFA') {\n return [2 /*return*/, Promise.resolve('No change for mfa type')];\n }\n else if (currentMFAType === 'SMS_MFA') {\n smsMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else if (currentMFAType === 'SOFTWARE_TOKEN_MFA') {\n totpMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else {\n return [2 /*return*/, this.rejectAuthError(AuthErrorTypes.InvalidMFA)];\n }\n // if there is a UserMFASettingList in the response\n // we need to disable every mfa type in that list\n if (mfaList && mfaList.length !== 0) {\n // to disable SMS or TOTP if exists in that list\n mfaList.forEach(function (mfaType) {\n if (mfaType === 'SMS_MFA') {\n smsMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n else if (mfaType === 'SOFTWARE_TOKEN_MFA') {\n totpMfaSettings = {\n PreferredMfa: false,\n Enabled: false,\n };\n }\n });\n }\n return [3 /*break*/, 7];\n case 6:\n logger.debug('no validmfa method provided');\n return [2 /*return*/, this.rejectAuthError(AuthErrorTypes.NoMFA)];\n case 7:\n that = this;\n return [2 /*return*/, new Promise(function (res, rej) {\n user.setUserMfaPreference(smsMfaSettings, totpMfaSettings, function (err, result) {\n if (err) {\n logger.debug('Set user mfa preference error', err);\n return rej(err);\n }\n logger.debug('Set user mfa success', result);\n logger.debug('Caching the latest user data into local');\n // cache the latest result into user data\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_3 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_3.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5: return [2 /*return*/, res(result)];\n }\n });\n }); }, {\n bypassCache: true,\n clientMetadata: clientMetadata,\n });\n });\n })];\n }\n });\n });\n };\n /**\n * disable SMS\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves is success\n */\n AuthClass.prototype.disableSMS = function (user) {\n return new Promise(function (res, rej) {\n user.disableMFA(function (err, data) {\n if (err) {\n logger.debug('disable mfa failed', err);\n rej(err);\n return;\n }\n logger.debug('disable mfa succeed', data);\n res(data);\n return;\n });\n });\n };\n /**\n * enable SMS\n * @deprecated\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves is success\n */\n AuthClass.prototype.enableSMS = function (user) {\n return new Promise(function (res, rej) {\n user.enableMFA(function (err, data) {\n if (err) {\n logger.debug('enable mfa failed', err);\n rej(err);\n return;\n }\n logger.debug('enable mfa succeed', data);\n res(data);\n return;\n });\n });\n };\n /**\n * Setup TOTP\n * @param {CognitoUser} user - the current user\n * @return - A promise resolves with the secret code if success\n */\n AuthClass.prototype.setupTOTP = function (user) {\n return new Promise(function (res, rej) {\n user.associateSoftwareToken({\n onFailure: function (err) {\n logger.debug('associateSoftwareToken failed', err);\n rej(err);\n return;\n },\n associateSecretCode: function (secretCode) {\n logger.debug('associateSoftwareToken sucess', secretCode);\n res(secretCode);\n return;\n },\n });\n });\n };\n /**\n * verify TOTP setup\n * @param {CognitoUser} user - the current user\n * @param {string} challengeAnswer - challenge answer\n * @return - A promise resolves is success\n */\n AuthClass.prototype.verifyTotpToken = function (user, challengeAnswer) {\n logger.debug('verification totp token', user, challengeAnswer);\n return new Promise(function (res, rej) {\n user.verifySoftwareToken(challengeAnswer, 'My TOTP device', {\n onFailure: function (err) {\n logger.debug('verifyTotpToken failed', err);\n rej(err);\n return;\n },\n onSuccess: function (data) {\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n logger.debug('verifyTotpToken success', data);\n res(data);\n return;\n },\n });\n });\n };\n /**\n * Send MFA code to confirm sign in\n * @param {Object} user - The CognitoUser object\n * @param {String} code - The confirmation code\n */\n AuthClass.prototype.confirmSignIn = function (user, code, mfaType, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.sendMFACode(code, {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 6]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 6];\n case 4:\n e_3 = _a.sent();\n logger.debug('cannot get cognito credentials', e_3);\n return [3 /*break*/, 6];\n case 5:\n that.user = user;\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(user);\n return [7 /*endfinally*/];\n case 6: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('confirm signIn failure', err);\n reject(err);\n },\n }, mfaType, clientMetadata);\n });\n };\n AuthClass.prototype.completeNewPassword = function (user, password, requiredAttributes, clientMetadata) {\n var _this = this;\n if (requiredAttributes === void 0) { requiredAttributes = {}; }\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.completeNewPasswordChallenge(password, requiredAttributes, {\n onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () {\n var cred, e_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug(session);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, 5, 6]);\n return [4 /*yield*/, this.Credentials.clear()];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 3:\n cred = _a.sent();\n logger.debug('succeed to get cognito credentials', cred);\n return [3 /*break*/, 6];\n case 4:\n e_4 = _a.sent();\n logger.debug('cannot get cognito credentials', e_4);\n return [3 /*break*/, 6];\n case 5:\n that.user = user;\n dispatchAuthEvent('signIn', user, \"A user \" + user.getUsername() + \" has been signed in\");\n resolve(user);\n return [7 /*endfinally*/];\n case 6: return [2 /*return*/];\n }\n });\n }); },\n onFailure: function (err) {\n logger.debug('completeNewPassword failure', err);\n dispatchAuthEvent('completeNewPassword_failure', err, _this.user + \" failed to complete the new password flow\");\n reject(err);\n },\n mfaRequired: function (challengeName, challengeParam) {\n logger.debug('signIn MFA required');\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n mfaSetup: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n totpRequired: function (challengeName, challengeParam) {\n logger.debug('signIn mfa setup', challengeName);\n user['challengeName'] = challengeName;\n user['challengeParam'] = challengeParam;\n resolve(user);\n },\n }, clientMetadata);\n });\n };\n /**\n * Send the answer to a custom challenge\n * @param {CognitoUser} user - The CognitoUser object\n * @param {String} challengeResponses - The confirmation code\n */\n AuthClass.prototype.sendCustomChallengeAnswer = function (user, challengeResponses, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!challengeResponses) {\n return this.rejectAuthError(AuthErrorTypes.EmptyChallengeResponse);\n }\n var that = this;\n return new Promise(function (resolve, reject) {\n user.sendCustomChallengeAnswer(challengeResponses, _this.authCallbacks(user, resolve, reject), clientMetadata);\n });\n };\n /**\n * Delete an authenticated users' attributes\n * @param {CognitoUser} - The currently logged in user object\n * @return {Promise}\n **/\n AuthClass.prototype.deleteUserAttributes = function (user, attributeNames) {\n var that = this;\n return new Promise(function (resolve, reject) {\n that.userSession(user).then(function (session) {\n user.deleteAttributes(attributeNames, function (err, result) {\n if (err) {\n return reject(err);\n }\n else {\n return resolve(result);\n }\n });\n });\n });\n };\n /**\n * Delete the current authenticated user\n * @return {Promise}\n **/\n // TODO: Check return type void\n AuthClass.prototype.deleteUser = function () {\n return __awaiter(this, void 0, void 0, function () {\n var e_5, isSignedInHostedUI;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this._storageSync];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_5 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_5);\n throw new Error(e_5);\n case 3:\n isSignedInHostedUI = this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true';\n return [2 /*return*/, new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var user_1;\n var _this = this;\n return __generator(this, function (_a) {\n if (this.userPool) {\n user_1 = this.userPool.getCurrentUser();\n if (!user_1) {\n logger.debug('Failed to get user from user pool');\n return [2 /*return*/, rej(new Error('No current user.'))];\n }\n else {\n user_1.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_4;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('Failed to get the user session', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user_1)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_4 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_4.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5:\n user_1.deleteUser(function (err, result) {\n if (err) {\n rej(err);\n }\n else {\n dispatchAuthEvent('userDeleted', result, 'The authenticated user has been deleted.');\n user_1.signOut();\n _this.user = null;\n try {\n _this.cleanCachedItems(); // clean aws credentials\n }\n catch (e) {\n // TODO: change to rejects in refactor\n logger.debug('failed to clear cached items');\n }\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n dispatchAuthEvent('signOut', _this.user, \"A user has been signed out\");\n res(result);\n }\n }\n });\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); });\n }\n }\n else {\n logger.debug('no Congito User pool');\n rej(new Error('Cognito User pool does not exist'));\n }\n return [2 /*return*/];\n });\n }); })];\n }\n });\n });\n };\n /**\n * Update an authenticated users' attributes\n * @param {CognitoUser} - The currently logged in user object\n * @return {Promise}\n **/\n AuthClass.prototype.updateUserAttributes = function (user, attributes, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n var attributeList = [];\n var that = this;\n return new Promise(function (resolve, reject) {\n that.userSession(user).then(function (session) {\n for (var key in attributes) {\n if (key !== 'sub' && key.indexOf('_verified') < 0) {\n var attr = {\n Name: key,\n Value: attributes[key],\n };\n attributeList.push(attr);\n }\n }\n user.updateAttributes(attributeList, function (err, result) {\n if (err) {\n return reject(err);\n }\n else {\n return resolve(result);\n }\n }, clientMetadata);\n });\n });\n };\n /**\n * Return user attributes\n * @param {Object} user - The CognitoUser object\n * @return - A promise resolves to user attributes if success\n */\n AuthClass.prototype.userAttributes = function (user) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.userSession(user).then(function (session) {\n user.getUserAttributes(function (err, attributes) {\n if (err) {\n reject(err);\n }\n else {\n resolve(attributes);\n }\n });\n });\n });\n };\n AuthClass.prototype.verifiedContact = function (user) {\n var that = this;\n return this.userAttributes(user).then(function (attributes) {\n var attrs = that.attributesToObject(attributes);\n var unverified = {};\n var verified = {};\n if (attrs['email']) {\n if (attrs['email_verified']) {\n verified['email'] = attrs['email'];\n }\n else {\n unverified['email'] = attrs['email'];\n }\n }\n if (attrs['phone_number']) {\n if (attrs['phone_number_verified']) {\n verified['phone_number'] = attrs['phone_number'];\n }\n else {\n unverified['phone_number'] = attrs['phone_number'];\n }\n }\n return {\n verified: verified,\n unverified: unverified,\n };\n });\n };\n AuthClass.prototype.isErrorWithMessage = function (err) {\n return (typeof err === 'object' &&\n Object.prototype.hasOwnProperty.call(err, 'message'));\n };\n // Session revoked by another app\n AuthClass.prototype.isTokenRevokedError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Access Token has been revoked');\n };\n AuthClass.prototype.isRefreshTokenRevokedError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Refresh Token has been revoked');\n };\n AuthClass.prototype.isUserDisabledError = function (err) {\n return this.isErrorWithMessage(err) && err.message === 'User is disabled.';\n };\n AuthClass.prototype.isUserDoesNotExistError = function (err) {\n return (this.isErrorWithMessage(err) && err.message === 'User does not exist.');\n };\n AuthClass.prototype.isRefreshTokenExpiredError = function (err) {\n return (this.isErrorWithMessage(err) &&\n err.message === 'Refresh Token has expired');\n };\n AuthClass.prototype.isSignedInHostedUI = function () {\n return (this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true');\n };\n AuthClass.prototype.isSessionInvalid = function (err) {\n return (this.isUserDisabledError(err) ||\n this.isUserDoesNotExistError(err) ||\n this.isTokenRevokedError(err) ||\n this.isRefreshTokenRevokedError(err) ||\n this.isRefreshTokenExpiredError(err));\n };\n AuthClass.prototype.cleanUpInvalidSession = function (user) {\n return __awaiter(this, void 0, void 0, function () {\n var e_6;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n user.signOut();\n this.user = null;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanCachedItems()];\n case 2:\n _a.sent(); // clean aws credentials\n return [3 /*break*/, 4];\n case 3:\n e_6 = _a.sent();\n logger.debug('failed to clear cached items');\n return [3 /*break*/, 4];\n case 4:\n if (this.isSignedInHostedUI()) {\n return [2 /*return*/, new Promise(function (res, rej) {\n _this.oAuthSignOutRedirect(res, rej);\n })];\n }\n else {\n dispatchAuthEvent('signOut', this.user, \"A user has been signed out\");\n }\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Get current authenticated user\n * @return - A promise resolves to current authenticated CognitoUser if success\n */\n AuthClass.prototype.currentUserPoolUser = function (params) {\n var _this = this;\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n return new Promise(function (res, rej) {\n _this._storageSync\n .then(function () { return __awaiter(_this, void 0, void 0, function () {\n var user, clientMetadata;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.isOAuthInProgress()) return [3 /*break*/, 2];\n logger.debug('OAuth signIn in progress, waiting for resolution...');\n return [4 /*yield*/, new Promise(function (res) {\n var timeoutId = setTimeout(function () {\n logger.debug('OAuth signIn in progress timeout');\n Hub.remove('auth', hostedUISignCallback);\n res();\n }, OAUTH_FLOW_MS_TIMEOUT);\n Hub.listen('auth', hostedUISignCallback);\n function hostedUISignCallback(_a) {\n var payload = _a.payload;\n var event = payload.event;\n if (event === 'cognitoHostedUI' ||\n event === 'cognitoHostedUI_failure') {\n logger.debug(\"OAuth signIn resolved: \" + event);\n clearTimeout(timeoutId);\n Hub.remove('auth', hostedUISignCallback);\n res();\n }\n }\n })];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n user = this.userPool.getCurrentUser();\n if (!user) {\n logger.debug('Failed to get user from user pool');\n rej('No current user');\n return [2 /*return*/];\n }\n clientMetadata = this._config.clientMetadata;\n // refresh the session if the session expired.\n user.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_5, bypassCache, clientMetadata, _a, scope;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('Failed to get the user session', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _b.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_5 = _b.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_5.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n bypassCache = params ? params.bypassCache : false;\n if (!bypassCache) return [3 /*break*/, 7];\n return [4 /*yield*/, this.Credentials.clear()];\n case 6:\n _b.sent();\n _b.label = 7;\n case 7:\n clientMetadata = this._config.clientMetadata;\n _a = session.getAccessToken().decodePayload().scope, scope = _a === void 0 ? '' : _a;\n if (scope.split(' ').includes(USER_ADMIN_SCOPE)) {\n user.getUserData(function (err, data) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_6, preferredMFA, attributeList, i, attribute, userAttribute, attributes;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 7];\n logger.debug('getting user data failed', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_6 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_6.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [3 /*break*/, 6];\n case 5:\n res(user);\n _a.label = 6;\n case 6: return [2 /*return*/];\n case 7:\n preferredMFA = data.PreferredMfaSetting || 'NOMFA';\n attributeList = [];\n for (i = 0; i < data.UserAttributes.length; i++) {\n attribute = {\n Name: data.UserAttributes[i].Name,\n Value: data.UserAttributes[i].Value,\n };\n userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n attributes = this.attributesToObject(attributeList);\n Object.assign(user, { attributes: attributes, preferredMFA: preferredMFA });\n return [2 /*return*/, res(user)];\n }\n });\n }); }, { bypassCache: bypassCache, clientMetadata: clientMetadata });\n }\n else {\n logger.debug(\"Unable to get the user data because the \" + USER_ADMIN_SCOPE + \" \" +\n \"is not in the scopes of the access token\");\n return [2 /*return*/, res(user)];\n }\n return [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n return [2 /*return*/];\n }\n });\n }); })\n .catch(function (e) {\n logger.debug('Failed to sync cache info into memory', e);\n return rej(e);\n });\n });\n };\n AuthClass.prototype.isOAuthInProgress = function () {\n return this.oAuthFlowInProgress;\n };\n /**\n * Get current authenticated user\n * @param {CurrentUserOpts} - options for getting the current user\n * @return - A promise resolves to current authenticated CognitoUser if success\n */\n AuthClass.prototype.currentAuthenticatedUser = function (params) {\n return __awaiter(this, void 0, void 0, function () {\n var federatedUser, e_7, federatedInfo, user, e_8;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('getting current authenticated user');\n federatedUser = null;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_7 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_7);\n throw e_7;\n case 4:\n try {\n federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo'));\n if (federatedInfo) {\n federatedUser = __assign(__assign({}, federatedInfo.user), { token: federatedInfo.token });\n }\n }\n catch (e) {\n logger.debug('cannot load federated user from auth storage');\n }\n if (!federatedUser) return [3 /*break*/, 5];\n this.user = federatedUser;\n logger.debug('get current authenticated federated user', this.user);\n return [2 /*return*/, this.user];\n case 5:\n logger.debug('get current authenticated userpool user');\n user = null;\n _a.label = 6;\n case 6:\n _a.trys.push([6, 8, , 9]);\n return [4 /*yield*/, this.currentUserPoolUser(params)];\n case 7:\n user = _a.sent();\n return [3 /*break*/, 9];\n case 8:\n e_8 = _a.sent();\n if (e_8 === 'No userPool') {\n logger.error('Cannot get the current user because the user pool is missing. ' +\n 'Please make sure the Auth module is configured with a valid Cognito User Pool ID');\n }\n logger.debug('The user is not authenticated by the error', e_8);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 9:\n this.user = user;\n return [2 /*return*/, this.user];\n }\n });\n });\n };\n /**\n * Get current user's session\n * @return - A promise resolves to session object if success\n */\n AuthClass.prototype.currentSession = function () {\n var that = this;\n logger.debug('Getting current session');\n // Purposely not calling the reject method here because we don't need a console error\n if (!this.userPool) {\n return Promise.reject(new Error('No User Pool in the configuration.'));\n }\n return new Promise(function (res, rej) {\n that\n .currentUserPoolUser()\n .then(function (user) {\n that\n .userSession(user)\n .then(function (session) {\n res(session);\n return;\n })\n .catch(function (e) {\n logger.debug('Failed to get the current session', e);\n rej(e);\n return;\n });\n })\n .catch(function (e) {\n logger.debug('Failed to get the current user', e);\n rej(e);\n return;\n });\n });\n };\n /**\n * Get the corresponding user session\n * @param {Object} user - The CognitoUser object\n * @return - A promise resolves to the session\n */\n AuthClass.prototype.userSession = function (user) {\n var _this = this;\n if (!user) {\n logger.debug('the user is null');\n return this.rejectAuthError(AuthErrorTypes.NoUserSession);\n }\n var clientMetadata = this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n return new Promise(function (res, rej) {\n logger.debug('Getting the session from this user:', user);\n user.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_7;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('Failed to get the session from user', user);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_7 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_7.message));\n return [2 /*return*/];\n case 4:\n rej(err);\n return [2 /*return*/];\n case 5:\n logger.debug('Succeed to get the user session', session);\n res(session);\n return [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n });\n };\n /**\n * Get authenticated credentials of current user.\n * @return - A promise resolves to be current user's credentials\n */\n AuthClass.prototype.currentUserCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var e_9, federatedInfo;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('Getting current user credentials');\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n e_9 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_9);\n throw e_9;\n case 4:\n federatedInfo = null;\n try {\n federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo'));\n }\n catch (e) {\n logger.debug('failed to get or parse item aws-amplify-federatedInfo', e);\n }\n if (federatedInfo) {\n // refresh the jwt token here if necessary\n return [2 /*return*/, this.Credentials.refreshFederatedToken(federatedInfo)];\n }\n else {\n return [2 /*return*/, this.currentSession()\n .then(function (session) {\n logger.debug('getting session success', session);\n return _this.Credentials.set(session, 'session');\n })\n .catch(function () {\n logger.debug('getting guest credentials');\n return _this.Credentials.set(null, 'guest');\n })];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.currentCredentials = function () {\n logger.debug('getting current credentials');\n return this.Credentials.get();\n };\n /**\n * Initiate an attribute confirmation request\n * @param {Object} user - The CognitoUser\n * @param {Object} attr - The attributes to be verified\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyUserAttribute = function (user, attr, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n return new Promise(function (resolve, reject) {\n user.getAttributeVerificationCode(attr, {\n onSuccess: function (success) {\n return resolve(success);\n },\n onFailure: function (err) {\n return reject(err);\n },\n }, clientMetadata);\n });\n };\n /**\n * Confirm an attribute using a confirmation code\n * @param {Object} user - The CognitoUser\n * @param {Object} attr - The attribute to be verified\n * @param {String} code - The confirmation code\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyUserAttributeSubmit = function (user, attr, code) {\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n return new Promise(function (resolve, reject) {\n user.verifyAttribute(attr, code, {\n onSuccess: function (data) {\n resolve(data);\n return;\n },\n onFailure: function (err) {\n reject(err);\n return;\n },\n });\n });\n };\n AuthClass.prototype.verifyCurrentUserAttribute = function (attr) {\n var that = this;\n return that\n .currentUserPoolUser()\n .then(function (user) { return that.verifyUserAttribute(user, attr); });\n };\n /**\n * Confirm current user's attribute using a confirmation code\n * @param {Object} attr - The attribute to be verified\n * @param {String} code - The confirmation code\n * @return - A promise resolves to callback data if success\n */\n AuthClass.prototype.verifyCurrentUserAttributeSubmit = function (attr, code) {\n var that = this;\n return that\n .currentUserPoolUser()\n .then(function (user) { return that.verifyUserAttributeSubmit(user, attr, code); });\n };\n AuthClass.prototype.cognitoIdentitySignOut = function (opts, user) {\n return __awaiter(this, void 0, void 0, function () {\n var e_10, isSignedInHostedUI;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this._storageSync];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_10 = _a.sent();\n logger.debug('Failed to sync cache info into memory', e_10);\n throw e_10;\n case 3:\n isSignedInHostedUI = this._oAuthHandler &&\n this._storage.getItem('amplify-signin-with-hostedUI') === 'true';\n return [2 /*return*/, new Promise(function (res, rej) {\n if (opts && opts.global) {\n logger.debug('user global sign out', user);\n // in order to use global signout\n // we must validate the user as an authenticated user by using getSession\n var clientMetadata = _this._config.clientMetadata; // TODO: verify behavior if this is override during signIn\n user.getSession(function (err, result) { return __awaiter(_this, void 0, void 0, function () {\n var cleanUpError_8;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!err) return [3 /*break*/, 5];\n logger.debug('failed to get the user session', err);\n if (!this.isSessionInvalid(err)) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.cleanUpInvalidSession(user)];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n cleanUpError_8 = _a.sent();\n rej(new Error(\"Session is invalid due to: \" + err.message + \" and failed to clean up invalid session: \" + cleanUpError_8.message));\n return [2 /*return*/];\n case 4: return [2 /*return*/, rej(err)];\n case 5:\n user.globalSignOut({\n onSuccess: function (data) {\n logger.debug('global sign out success');\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n return res();\n }\n },\n onFailure: function (err) {\n logger.debug('global sign out failed', err);\n return rej(err);\n },\n });\n return [2 /*return*/];\n }\n });\n }); }, { clientMetadata: clientMetadata });\n }\n else {\n logger.debug('user sign out', user);\n user.signOut(function () {\n if (isSignedInHostedUI) {\n _this.oAuthSignOutRedirect(res, rej);\n }\n else {\n return res();\n }\n });\n }\n })];\n }\n });\n });\n };\n AuthClass.prototype.oAuthSignOutRedirect = function (resolve, reject) {\n var isBrowser = browserOrNode().isBrowser;\n if (isBrowser) {\n this.oAuthSignOutRedirectOrReject(reject);\n }\n else {\n this.oAuthSignOutAndResolve(resolve);\n }\n };\n AuthClass.prototype.oAuthSignOutAndResolve = function (resolve) {\n this._oAuthHandler.signOut();\n resolve();\n };\n AuthClass.prototype.oAuthSignOutRedirectOrReject = function (reject) {\n this._oAuthHandler.signOut(); // this method redirects url\n // App should be redirected to another url otherwise it will reject\n setTimeout(function () { return reject(Error('Signout timeout fail')); }, 3000);\n };\n /**\n * Sign out method\n * @\n * @return - A promise resolved if success\n */\n AuthClass.prototype.signOut = function (opts) {\n return __awaiter(this, void 0, void 0, function () {\n var e_11, user;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.cleanCachedItems()];\n case 1:\n _a.sent();\n return [3 /*break*/, 3];\n case 2:\n e_11 = _a.sent();\n logger.debug('failed to clear cached items');\n return [3 /*break*/, 3];\n case 3:\n if (!this.userPool) return [3 /*break*/, 7];\n user = this.userPool.getCurrentUser();\n if (!user) return [3 /*break*/, 5];\n return [4 /*yield*/, this.cognitoIdentitySignOut(opts, user)];\n case 4:\n _a.sent();\n return [3 /*break*/, 6];\n case 5:\n logger.debug('no current Cognito user');\n _a.label = 6;\n case 6: return [3 /*break*/, 8];\n case 7:\n logger.debug('no Cognito User pool');\n _a.label = 8;\n case 8:\n /**\n * Note for future refactor - no reliable way to get username with\n * Cognito User Pools vs Identity when federating with Social Providers\n * This is why we need a well structured session object that can be inspected\n * and information passed back in the message below for Hub dispatch\n */\n dispatchAuthEvent('signOut', this.user, \"A user has been signed out\");\n this.user = null;\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.cleanCachedItems = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: \n // clear cognito cached item\n return [4 /*yield*/, this.Credentials.clear()];\n case 1:\n // clear cognito cached item\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Change a password for an authenticated user\n * @param {Object} user - The CognitoUser object\n * @param {String} oldPassword - the current password\n * @param {String} newPassword - the requested new password\n * @return - A promise resolves if success\n */\n AuthClass.prototype.changePassword = function (user, oldPassword, newPassword, clientMetadata) {\n var _this = this;\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n return new Promise(function (resolve, reject) {\n _this.userSession(user).then(function (session) {\n user.changePassword(oldPassword, newPassword, function (err, data) {\n if (err) {\n logger.debug('change password failure', err);\n return reject(err);\n }\n else {\n return resolve(data);\n }\n }, clientMetadata);\n });\n });\n };\n /**\n * Initiate a forgot password request\n * @param {String} username - the username to change password\n * @return - A promise resolves if success\n */\n AuthClass.prototype.forgotPassword = function (username, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.forgotPassword({\n onSuccess: function () {\n resolve();\n return;\n },\n onFailure: function (err) {\n logger.debug('forgot password failure', err);\n dispatchAuthEvent('forgotPassword_failure', err, username + \" forgotPassword failed\");\n reject(err);\n return;\n },\n inputVerificationCode: function (data) {\n dispatchAuthEvent('forgotPassword', user, username + \" has initiated forgot password flow\");\n resolve(data);\n return;\n },\n }, clientMetadata);\n });\n };\n /**\n * Confirm a new password using a confirmation Code\n * @param {String} username - The username\n * @param {String} code - The confirmation code\n * @param {String} password - The new password\n * @return - A promise that resolves if success\n */\n AuthClass.prototype.forgotPasswordSubmit = function (username, code, password, clientMetadata) {\n if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; }\n if (!this.userPool) {\n return this.rejectNoUserPool();\n }\n if (!username) {\n return this.rejectAuthError(AuthErrorTypes.EmptyUsername);\n }\n if (!code) {\n return this.rejectAuthError(AuthErrorTypes.EmptyCode);\n }\n if (!password) {\n return this.rejectAuthError(AuthErrorTypes.EmptyPassword);\n }\n var user = this.createCognitoUser(username);\n return new Promise(function (resolve, reject) {\n user.confirmPassword(code, password, {\n onSuccess: function (success) {\n dispatchAuthEvent('forgotPasswordSubmit', user, username + \" forgotPasswordSubmit successful\");\n resolve(success);\n return;\n },\n onFailure: function (err) {\n dispatchAuthEvent('forgotPasswordSubmit_failure', err, username + \" forgotPasswordSubmit failed\");\n reject(err);\n return;\n },\n }, clientMetadata);\n });\n };\n /**\n * Get user information\n * @async\n * @return {Object }- current User's information\n */\n AuthClass.prototype.currentUserInfo = function () {\n return __awaiter(this, void 0, void 0, function () {\n var source, user, attributes, userAttrs, credentials, e_12, info, err_1, user;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n source = this.Credentials.getCredSource();\n if (!(!source || source === 'aws' || source === 'userPool')) return [3 /*break*/, 9];\n return [4 /*yield*/, this.currentUserPoolUser().catch(function (err) {\n return logger.error(err);\n })];\n case 1:\n user = _a.sent();\n if (!user) {\n return [2 /*return*/, null];\n }\n _a.label = 2;\n case 2:\n _a.trys.push([2, 8, , 9]);\n return [4 /*yield*/, this.userAttributes(user)];\n case 3:\n attributes = _a.sent();\n userAttrs = this.attributesToObject(attributes);\n credentials = null;\n _a.label = 4;\n case 4:\n _a.trys.push([4, 6, , 7]);\n return [4 /*yield*/, this.currentCredentials()];\n case 5:\n credentials = _a.sent();\n return [3 /*break*/, 7];\n case 6:\n e_12 = _a.sent();\n logger.debug('Failed to retrieve credentials while getting current user info', e_12);\n return [3 /*break*/, 7];\n case 7:\n info = {\n id: credentials ? credentials.identityId : undefined,\n username: user.getUsername(),\n attributes: userAttrs,\n };\n return [2 /*return*/, info];\n case 8:\n err_1 = _a.sent();\n logger.error('currentUserInfo error', err_1);\n return [2 /*return*/, {}];\n case 9:\n if (source === 'federated') {\n user = this.user;\n return [2 /*return*/, user ? user : {}];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AuthClass.prototype.federatedSignIn = function (providerOrOptions, response, user) {\n return __awaiter(this, void 0, void 0, function () {\n var options, provider, customState, client_id, redirect_uri, provider, loggedInUser, token, identity_id, expires_at, credentials, currentUser;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._config.identityPoolId && !this._config.userPoolId) {\n throw new Error(\"Federation requires either a User Pool or Identity Pool in config\");\n }\n // Ensure backwards compatability\n if (typeof providerOrOptions === 'undefined') {\n if (this._config.identityPoolId && !this._config.userPoolId) {\n throw new Error(\"Federation with Identity Pools requires tokens passed as arguments\");\n }\n }\n if (!(isFederatedSignInOptions(providerOrOptions) ||\n isFederatedSignInOptionsCustom(providerOrOptions) ||\n hasCustomState(providerOrOptions) ||\n typeof providerOrOptions === 'undefined')) return [3 /*break*/, 1];\n options = providerOrOptions || {\n provider: CognitoHostedUIIdentityProvider.Cognito,\n };\n provider = isFederatedSignInOptions(options)\n ? options.provider\n : options.customProvider;\n customState = isFederatedSignInOptions(options)\n ? options.customState\n : options.customState;\n if (this._config.userPoolId) {\n client_id = isCognitoHostedOpts(this._config.oauth)\n ? this._config.userPoolWebClientId\n : this._config.oauth.clientID;\n redirect_uri = isCognitoHostedOpts(this._config.oauth)\n ? this._config.oauth.redirectSignIn\n : this._config.oauth.redirectUri;\n this._oAuthHandler.oauthSignIn(this._config.oauth.responseType, this._config.oauth.domain, redirect_uri, client_id, provider, customState);\n }\n return [3 /*break*/, 4];\n case 1:\n provider = providerOrOptions;\n // To check if the user is already logged in\n try {\n loggedInUser = JSON.stringify(JSON.parse(this._storage.getItem('aws-amplify-federatedInfo')).user);\n if (loggedInUser) {\n logger.warn(\"There is already a signed in user: \" + loggedInUser + \" in your app.\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tYou should not call Auth.federatedSignIn method again as it may cause unexpected behavior.\");\n }\n }\n catch (e) { }\n token = response.token, identity_id = response.identity_id, expires_at = response.expires_at;\n return [4 /*yield*/, this.Credentials.set({ provider: provider, token: token, identity_id: identity_id, user: user, expires_at: expires_at }, 'federation')];\n case 2:\n credentials = _a.sent();\n return [4 /*yield*/, this.currentAuthenticatedUser()];\n case 3:\n currentUser = _a.sent();\n dispatchAuthEvent('signIn', currentUser, \"A user \" + currentUser.username + \" has been signed in\");\n logger.debug('federated sign in credentials', credentials);\n return [2 /*return*/, credentials];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Used to complete the OAuth flow with or without the Cognito Hosted UI\n * @param {String} URL - optional parameter for customers to pass in the response URL\n */\n AuthClass.prototype._handleAuthResponse = function (URL) {\n return __awaiter(this, void 0, void 0, function () {\n var currentUrl, hasCodeOrError, hasTokenOrError, _a, accessToken, idToken, refreshToken, state, session, credentials, isCustomStateIncluded, currentUser, customState, err_2;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (this.oAuthFlowInProgress) {\n logger.debug(\"Skipping URL \" + URL + \" current flow in progress\");\n return [2 /*return*/];\n }\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 8, 9]);\n this.oAuthFlowInProgress = true;\n if (!this._config.userPoolId) {\n throw new Error(\"OAuth responses require a User Pool defined in config\");\n }\n dispatchAuthEvent('parsingCallbackUrl', { url: URL }, \"The callback url is being parsed\");\n currentUrl = URL || (browserOrNode().isBrowser ? window.location.href : '');\n hasCodeOrError = !!(parse(currentUrl).query || '')\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .find(function (_a) {\n var _b = __read(_a, 1), k = _b[0];\n return k === 'code' || k === 'error';\n });\n hasTokenOrError = !!(parse(currentUrl).hash || '#')\n .substr(1)\n .split('&')\n .map(function (entry) { return entry.split('='); })\n .find(function (_a) {\n var _b = __read(_a, 1), k = _b[0];\n return k === 'access_token' || k === 'error';\n });\n if (!(hasCodeOrError || hasTokenOrError)) return [3 /*break*/, 7];\n this._storage.setItem('amplify-redirected-from-hosted-ui', 'true');\n _b.label = 2;\n case 2:\n _b.trys.push([2, 6, , 7]);\n return [4 /*yield*/, this._oAuthHandler.handleAuthResponse(currentUrl)];\n case 3:\n _a = _b.sent(), accessToken = _a.accessToken, idToken = _a.idToken, refreshToken = _a.refreshToken, state = _a.state;\n session = new CognitoUserSession({\n IdToken: new CognitoIdToken({ IdToken: idToken }),\n RefreshToken: new CognitoRefreshToken({\n RefreshToken: refreshToken,\n }),\n AccessToken: new CognitoAccessToken({\n AccessToken: accessToken,\n }),\n });\n credentials = void 0;\n if (!this._config.identityPoolId) return [3 /*break*/, 5];\n return [4 /*yield*/, this.Credentials.set(session, 'session')];\n case 4:\n credentials = _b.sent();\n logger.debug('AWS credentials', credentials);\n _b.label = 5;\n case 5:\n isCustomStateIncluded = /-/.test(state);\n currentUser = this.createCognitoUser(session.getIdToken().decodePayload()['cognito:username']);\n // This calls cacheTokens() in Cognito SDK\n currentUser.setSignInUserSession(session);\n if (window && typeof window.history !== 'undefined') {\n window.history.replaceState({}, null, this._config.oauth.redirectSignIn);\n }\n dispatchAuthEvent('signIn', currentUser, \"A user \" + currentUser.getUsername() + \" has been signed in\");\n dispatchAuthEvent('cognitoHostedUI', currentUser, \"A user \" + currentUser.getUsername() + \" has been signed in via Cognito Hosted UI\");\n if (isCustomStateIncluded) {\n customState = state.split('-').splice(1).join('-');\n dispatchAuthEvent('customOAuthState', urlSafeDecode(customState), \"State for user \" + currentUser.getUsername());\n }\n //#endregion\n return [2 /*return*/, credentials];\n case 6:\n err_2 = _b.sent();\n logger.debug('Error in cognito hosted auth response', err_2);\n // Just like a successful handling of `?code`, replace the window history to \"dispose\" of the `code`.\n // Otherwise, reloading the page will throw errors as the `code` has already been spent.\n if (window && typeof window.history !== 'undefined') {\n window.history.replaceState({}, null, this._config.oauth.redirectSignIn);\n }\n dispatchAuthEvent('signIn_failure', err_2, \"The OAuth response flow failed\");\n dispatchAuthEvent('cognitoHostedUI_failure', err_2, \"A failure occurred when returning to the Cognito Hosted UI\");\n dispatchAuthEvent('customState_failure', err_2, \"A failure occurred when returning state\");\n return [3 /*break*/, 7];\n case 7: return [3 /*break*/, 9];\n case 8:\n this.oAuthFlowInProgress = false;\n return [7 /*endfinally*/];\n case 9: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Compact version of credentials\n * @param {Object} credentials\n * @return {Object} - Credentials\n */\n AuthClass.prototype.essentialCredentials = function (credentials) {\n return {\n accessKeyId: credentials.accessKeyId,\n sessionToken: credentials.sessionToken,\n secretAccessKey: credentials.secretAccessKey,\n identityId: credentials.identityId,\n authenticated: credentials.authenticated,\n };\n };\n AuthClass.prototype.attributesToObject = function (attributes) {\n var _this = this;\n var obj = {};\n if (attributes) {\n attributes.map(function (attribute) {\n if (attribute.Name === 'email_verified' ||\n attribute.Name === 'phone_number_verified') {\n obj[attribute.Name] =\n _this.isTruthyString(attribute.Value) || attribute.Value === true;\n }\n else {\n obj[attribute.Name] = attribute.Value;\n }\n });\n }\n return obj;\n };\n AuthClass.prototype.isTruthyString = function (value) {\n return (typeof value.toLowerCase === 'function' && value.toLowerCase() === 'true');\n };\n AuthClass.prototype.createCognitoUser = function (username) {\n var userData = {\n Username: username,\n Pool: this.userPool,\n };\n userData.Storage = this._storage;\n var authenticationFlowType = this._config.authenticationFlowType;\n var user = new CognitoUser(userData);\n if (authenticationFlowType) {\n user.setAuthenticationFlowType(authenticationFlowType);\n }\n return user;\n };\n AuthClass.prototype._isValidAuthStorage = function (obj) {\n // We need to check if the obj has the functions of Storage\n return (!!obj &&\n typeof obj.getItem === 'function' &&\n typeof obj.setItem === 'function' &&\n typeof obj.removeItem === 'function' &&\n typeof obj.clear === 'function');\n };\n AuthClass.prototype.noUserPoolErrorHandler = function (config) {\n if (config) {\n if (!config.userPoolId || !config.identityPoolId) {\n return AuthErrorTypes.MissingAuthConfig;\n }\n }\n return AuthErrorTypes.NoConfig;\n };\n AuthClass.prototype.rejectAuthError = function (type) {\n return Promise.reject(new AuthError(type));\n };\n AuthClass.prototype.rejectNoUserPool = function () {\n var type = this.noUserPoolErrorHandler(this._config);\n return Promise.reject(new NoUserPoolError(type));\n };\n AuthClass.prototype.rememberDevice = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_2 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_2);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n currUser.setDeviceStatusRemembered({\n onSuccess: function (data) {\n res(data);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n });\n })];\n }\n });\n });\n };\n AuthClass.prototype.forgetDevice = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_3;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_3 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_3);\n return [2 /*return*/, Promise.reject('The user is not authenticated')];\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n currUser.forgetDevice({\n onSuccess: function (data) {\n res(data);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n });\n })];\n }\n });\n });\n };\n AuthClass.prototype.fetchDevices = function () {\n return __awaiter(this, void 0, void 0, function () {\n var currUser, error_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.currentUserPoolUser()];\n case 1:\n currUser = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_4 = _a.sent();\n logger.debug('The user is not authenticated by the error', error_4);\n throw new Error('The user is not authenticated');\n case 3:\n currUser.getCachedDeviceKeyAndPassword();\n return [2 /*return*/, new Promise(function (res, rej) {\n var cb = {\n onSuccess: function (data) {\n var deviceList = data.Devices.map(function (device) {\n var deviceName = device.DeviceAttributes.find(function (_a) {\n var Name = _a.Name;\n return Name === 'device_name';\n }) || {};\n var deviceInfo = {\n id: device.DeviceKey,\n name: deviceName.Value,\n };\n return deviceInfo;\n });\n res(deviceList);\n },\n onFailure: function (err) {\n if (err.code === 'InvalidParameterException') {\n rej(new AuthError(AuthErrorTypes.DeviceConfig));\n }\n else if (err.code === 'NetworkError') {\n rej(new AuthError(AuthErrorTypes.NetworkError));\n }\n else {\n rej(err);\n }\n },\n };\n currUser.listDevices(MAX_DEVICES, null, cb);\n })];\n }\n });\n });\n };\n return AuthClass;\n}());\nexport { AuthClass };\nexport var Auth = new AuthClass(null);\nAmplify.register(Auth);\n//# sourceMappingURL=Auth.js.map","export var AuthErrorStrings;\n(function (AuthErrorStrings) {\n AuthErrorStrings[\"DEFAULT_MSG\"] = \"Authentication Error\";\n AuthErrorStrings[\"EMPTY_EMAIL\"] = \"Email cannot be empty\";\n AuthErrorStrings[\"EMPTY_PHONE\"] = \"Phone number cannot be empty\";\n AuthErrorStrings[\"EMPTY_USERNAME\"] = \"Username cannot be empty\";\n AuthErrorStrings[\"INVALID_USERNAME\"] = \"The username should either be a string or one of the sign in types\";\n AuthErrorStrings[\"EMPTY_PASSWORD\"] = \"Password cannot be empty\";\n AuthErrorStrings[\"EMPTY_CODE\"] = \"Confirmation code cannot be empty\";\n AuthErrorStrings[\"SIGN_UP_ERROR\"] = \"Error creating account\";\n AuthErrorStrings[\"NO_MFA\"] = \"No valid MFA method provided\";\n AuthErrorStrings[\"INVALID_MFA\"] = \"Invalid MFA type\";\n AuthErrorStrings[\"EMPTY_CHALLENGE\"] = \"Challenge response cannot be empty\";\n AuthErrorStrings[\"NO_USER_SESSION\"] = \"Failed to get the session because the user is empty\";\n AuthErrorStrings[\"NETWORK_ERROR\"] = \"Network Error\";\n AuthErrorStrings[\"DEVICE_CONFIG\"] = \"Device tracking has not been configured in this User Pool\";\n AuthErrorStrings[\"AUTOSIGNIN_ERROR\"] = \"Please use your credentials to sign in\";\n})(AuthErrorStrings || (AuthErrorStrings = {}));\n//# sourceMappingURL=AuthErrorStrings.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { Auth } from './Auth';\nimport { CognitoHostedUIIdentityProvider, GRAPHQL_AUTH_MODE, } from './types/Auth';\nimport { CognitoUser, CookieStorage, appendToCognitoUserAgent, } from 'amazon-cognito-identity-js';\nimport { AuthErrorStrings } from './common/AuthErrorStrings';\n/**\n * @deprecated use named import\n */\nexport default Auth;\nexport { Auth, CognitoUser, CookieStorage, CognitoHostedUIIdentityProvider, appendToCognitoUserAgent, AuthErrorStrings, GRAPHQL_AUTH_MODE, };\n//# sourceMappingURL=index.js.map","var __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { ConsoleLogger as LoggerClass } from './Logger';\nvar logger = new LoggerClass('Amplify');\nvar AmplifyClass = /** @class */ (function () {\n function AmplifyClass() {\n // Everything that is `register`ed is tracked here\n this._components = [];\n this._config = {};\n // All modules (with `getModuleName()`) are stored here for dependency injection\n this._modules = {};\n // for backward compatibility to avoid breaking change\n // if someone is using like Amplify.Auth\n this.Auth = null;\n this.Analytics = null;\n this.API = null;\n this.Credentials = null;\n this.Storage = null;\n this.I18n = null;\n this.Cache = null;\n this.PubSub = null;\n this.Interactions = null;\n this.Pushnotification = null;\n this.UI = null;\n this.XR = null;\n this.Predictions = null;\n this.DataStore = null;\n this.Geo = null;\n this.Logger = LoggerClass;\n this.ServiceWorker = null;\n }\n AmplifyClass.prototype.register = function (comp) {\n logger.debug('component registered in amplify', comp);\n this._components.push(comp);\n if (typeof comp.getModuleName === 'function') {\n this._modules[comp.getModuleName()] = comp;\n this[comp.getModuleName()] = comp;\n }\n else {\n logger.debug('no getModuleName method for component', comp);\n }\n // Finally configure this new component(category) loaded\n // With the new modularization changes in Amplify V3, all the Amplify\n // component are not loaded/registered right away but when they are\n // imported (and hence instantiated) in the client's app. This ensures\n // that all new components imported get correctly configured with the\n // configuration that Amplify.configure() was called with.\n comp.configure(this._config);\n };\n AmplifyClass.prototype.configure = function (config) {\n var _this = this;\n if (!config)\n return this._config;\n this._config = Object.assign(this._config, config);\n logger.debug('amplify config', this._config);\n // Dependency Injection via property-setting.\n // This avoids introducing a public method/interface/setter that's difficult to remove later.\n // Plus, it reduces `if` statements within the `constructor` and `configure` of each module\n Object.entries(this._modules).forEach(function (_a) {\n var _b = __read(_a, 2), Name = _b[0], comp = _b[1];\n // e.g. Auth.*\n Object.keys(comp).forEach(function (property) {\n // e.g. Auth[\"Credentials\"] = this._modules[\"Credentials\"] when set\n if (_this._modules[property]) {\n comp[property] = _this._modules[property];\n }\n });\n });\n this._components.map(function (comp) {\n comp.configure(_this._config);\n });\n return this._config;\n };\n AmplifyClass.prototype.addPluggable = function (pluggable) {\n if (pluggable &&\n pluggable['getCategory'] &&\n typeof pluggable['getCategory'] === 'function') {\n this._components.map(function (comp) {\n if (comp['addPluggable'] &&\n typeof comp['addPluggable'] === 'function') {\n comp.addPluggable(pluggable);\n }\n });\n }\n };\n return AmplifyClass;\n}());\nexport { AmplifyClass };\nexport var Amplify = new AmplifyClass();\n/**\n * @deprecated use named import\n */\nexport default Amplify;\n//# sourceMappingURL=Amplify.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\nvar logger = new Logger('CognitoCredentials');\nvar waitForInit = new Promise(function (res, rej) {\n if (!browserOrNode().isBrowser) {\n logger.debug('not in the browser, directly resolved');\n return res();\n }\n var ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n if (ga) {\n logger.debug('google api already loaded');\n return res();\n }\n else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\nvar GoogleOAuth = /** @class */ (function () {\n function GoogleOAuth() {\n this.initialized = false;\n this.refreshGoogleToken = this.refreshGoogleToken.bind(this);\n this._refreshGoogleTokenImpl = this._refreshGoogleTokenImpl.bind(this);\n }\n GoogleOAuth.prototype.refreshGoogleToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n logger.debug('need to wait for the Google SDK loaded');\n return [4 /*yield*/, waitForInit];\n case 1:\n _a.sent();\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n case 2: return [2 /*return*/, this._refreshGoogleTokenImpl()];\n }\n });\n });\n };\n GoogleOAuth.prototype._refreshGoogleTokenImpl = function () {\n var ga = null;\n if (browserOrNode().isBrowser)\n ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null;\n if (!ga) {\n logger.debug('no gapi auth2 available');\n return Promise.reject('no gapi auth2 available');\n }\n return new Promise(function (res, rej) {\n ga.getAuthInstance()\n .then(function (googleAuth) {\n if (!googleAuth) {\n logger.debug('google Auth undefined');\n rej(new NonRetryableError('google Auth undefined'));\n }\n var googleUser = googleAuth.currentUser.get();\n // refresh the token\n if (googleUser.isSignedIn()) {\n logger.debug('refreshing the google access token');\n googleUser\n .reloadAuthResponse()\n .then(function (authResponse) {\n var id_token = authResponse.id_token, expires_at = authResponse.expires_at;\n res({ token: id_token, expires_at: expires_at });\n })\n .catch(function (err) {\n if (err && err.error === 'network_error') {\n // Not using NonRetryableError so handler will be retried\n rej('Network error reloading google auth response');\n }\n else {\n rej(new NonRetryableError('Failed to reload google auth response'));\n }\n });\n }\n else {\n rej(new NonRetryableError('User is not signed in with Google'));\n }\n })\n .catch(function (err) {\n logger.debug('Failed to refresh google token', err);\n rej(new NonRetryableError('Failed to refresh google token'));\n });\n });\n };\n return GoogleOAuth;\n}());\nexport { GoogleOAuth };\n/**\n * @deprecated use named import\n */\nexport default GoogleOAuth;\n//# sourceMappingURL=GoogleOAuth.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { browserOrNode } from '../JS';\nimport { NonRetryableError } from '../Util';\nvar logger = new Logger('CognitoCredentials');\nvar waitForInit = new Promise(function (res, rej) {\n if (!browserOrNode().isBrowser) {\n logger.debug('not in the browser, directly resolved');\n return res();\n }\n var fb = window['FB'];\n if (fb) {\n logger.debug('FB SDK already loaded');\n return res();\n }\n else {\n setTimeout(function () {\n return res();\n }, 2000);\n }\n});\nvar FacebookOAuth = /** @class */ (function () {\n function FacebookOAuth() {\n this.initialized = false;\n this.refreshFacebookToken = this.refreshFacebookToken.bind(this);\n this._refreshFacebookTokenImpl = this._refreshFacebookTokenImpl.bind(this);\n }\n FacebookOAuth.prototype.refreshFacebookToken = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this.initialized) return [3 /*break*/, 2];\n logger.debug('need to wait for the Facebook SDK loaded');\n return [4 /*yield*/, waitForInit];\n case 1:\n _a.sent();\n this.initialized = true;\n logger.debug('finish waiting');\n _a.label = 2;\n case 2: return [2 /*return*/, this._refreshFacebookTokenImpl()];\n }\n });\n });\n };\n FacebookOAuth.prototype._refreshFacebookTokenImpl = function () {\n var fb = null;\n if (browserOrNode().isBrowser)\n fb = window['FB'];\n if (!fb) {\n var errorMessage = 'no fb sdk available';\n logger.debug(errorMessage);\n return Promise.reject(new NonRetryableError(errorMessage));\n }\n return new Promise(function (res, rej) {\n fb.getLoginStatus(function (fbResponse) {\n if (!fbResponse || !fbResponse.authResponse) {\n var errorMessage = 'no response from facebook when refreshing the jwt token';\n logger.debug(errorMessage);\n // There is no definitive indication for a network error in\n // fbResponse, so we are treating it as an invalid token.\n rej(new NonRetryableError(errorMessage));\n }\n else {\n var response = fbResponse.authResponse;\n var accessToken = response.accessToken, expiresIn = response.expiresIn;\n var date = new Date();\n var expires_at = expiresIn * 1000 + date.getTime();\n if (!accessToken) {\n var errorMessage = 'the jwtToken is undefined';\n logger.debug(errorMessage);\n rej(new NonRetryableError(errorMessage));\n }\n res({\n token: accessToken,\n expires_at: expires_at,\n });\n }\n }, { scope: 'public_profile,email' });\n });\n };\n return FacebookOAuth;\n}());\nexport { FacebookOAuth };\n/**\n * @deprecated use named import\n */\nexport default FacebookOAuth;\n//# sourceMappingURL=FacebookOAuth.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { GoogleOAuth as GoogleOAuthClass } from './GoogleOAuth';\nimport { FacebookOAuth as FacebookOAuthClass } from './FacebookOAuth';\nexport var GoogleOAuth = new GoogleOAuthClass();\nexport var FacebookOAuth = new FacebookOAuthClass();\n//# sourceMappingURL=index.js.map","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __assign } from \"tslib\";\nexport var AmbiguousRoleResolutionType;\n(function (AmbiguousRoleResolutionType) {\n AmbiguousRoleResolutionType[\"AUTHENTICATED_ROLE\"] = \"AuthenticatedRole\";\n AmbiguousRoleResolutionType[\"DENY\"] = \"Deny\";\n})(AmbiguousRoleResolutionType || (AmbiguousRoleResolutionType = {}));\nexport var CognitoIdentityProvider;\n(function (CognitoIdentityProvider) {\n CognitoIdentityProvider.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CognitoIdentityProvider || (CognitoIdentityProvider = {}));\nexport var CreateIdentityPoolInput;\n(function (CreateIdentityPoolInput) {\n CreateIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateIdentityPoolInput || (CreateIdentityPoolInput = {}));\nexport var IdentityPool;\n(function (IdentityPool) {\n IdentityPool.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityPool || (IdentityPool = {}));\nexport var InternalErrorException;\n(function (InternalErrorException) {\n InternalErrorException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InternalErrorException || (InternalErrorException = {}));\nexport var InvalidParameterException;\n(function (InvalidParameterException) {\n InvalidParameterException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidParameterException || (InvalidParameterException = {}));\nexport var LimitExceededException;\n(function (LimitExceededException) {\n LimitExceededException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LimitExceededException || (LimitExceededException = {}));\nexport var NotAuthorizedException;\n(function (NotAuthorizedException) {\n NotAuthorizedException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NotAuthorizedException || (NotAuthorizedException = {}));\nexport var ResourceConflictException;\n(function (ResourceConflictException) {\n ResourceConflictException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceConflictException || (ResourceConflictException = {}));\nexport var TooManyRequestsException;\n(function (TooManyRequestsException) {\n TooManyRequestsException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TooManyRequestsException || (TooManyRequestsException = {}));\nexport var DeleteIdentitiesInput;\n(function (DeleteIdentitiesInput) {\n DeleteIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentitiesInput || (DeleteIdentitiesInput = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ErrorCode[\"ACCESS_DENIED\"] = \"AccessDenied\";\n ErrorCode[\"INTERNAL_SERVER_ERROR\"] = \"InternalServerError\";\n})(ErrorCode || (ErrorCode = {}));\nexport var UnprocessedIdentityId;\n(function (UnprocessedIdentityId) {\n UnprocessedIdentityId.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnprocessedIdentityId || (UnprocessedIdentityId = {}));\nexport var DeleteIdentitiesResponse;\n(function (DeleteIdentitiesResponse) {\n DeleteIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentitiesResponse || (DeleteIdentitiesResponse = {}));\nexport var DeleteIdentityPoolInput;\n(function (DeleteIdentityPoolInput) {\n DeleteIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteIdentityPoolInput || (DeleteIdentityPoolInput = {}));\nexport var ResourceNotFoundException;\n(function (ResourceNotFoundException) {\n ResourceNotFoundException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ResourceNotFoundException || (ResourceNotFoundException = {}));\nexport var DescribeIdentityInput;\n(function (DescribeIdentityInput) {\n DescribeIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeIdentityInput || (DescribeIdentityInput = {}));\nexport var IdentityDescription;\n(function (IdentityDescription) {\n IdentityDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityDescription || (IdentityDescription = {}));\nexport var DescribeIdentityPoolInput;\n(function (DescribeIdentityPoolInput) {\n DescribeIdentityPoolInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DescribeIdentityPoolInput || (DescribeIdentityPoolInput = {}));\nexport var ExternalServiceException;\n(function (ExternalServiceException) {\n ExternalServiceException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExternalServiceException || (ExternalServiceException = {}));\nexport var GetCredentialsForIdentityInput;\n(function (GetCredentialsForIdentityInput) {\n GetCredentialsForIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetCredentialsForIdentityInput || (GetCredentialsForIdentityInput = {}));\nexport var Credentials;\n(function (Credentials) {\n Credentials.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Credentials || (Credentials = {}));\nexport var GetCredentialsForIdentityResponse;\n(function (GetCredentialsForIdentityResponse) {\n GetCredentialsForIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetCredentialsForIdentityResponse || (GetCredentialsForIdentityResponse = {}));\nexport var InvalidIdentityPoolConfigurationException;\n(function (InvalidIdentityPoolConfigurationException) {\n InvalidIdentityPoolConfigurationException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidIdentityPoolConfigurationException || (InvalidIdentityPoolConfigurationException = {}));\nexport var GetIdInput;\n(function (GetIdInput) {\n GetIdInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdInput || (GetIdInput = {}));\nexport var GetIdResponse;\n(function (GetIdResponse) {\n GetIdResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdResponse || (GetIdResponse = {}));\nexport var GetIdentityPoolRolesInput;\n(function (GetIdentityPoolRolesInput) {\n GetIdentityPoolRolesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdentityPoolRolesInput || (GetIdentityPoolRolesInput = {}));\nexport var MappingRuleMatchType;\n(function (MappingRuleMatchType) {\n MappingRuleMatchType[\"CONTAINS\"] = \"Contains\";\n MappingRuleMatchType[\"EQUALS\"] = \"Equals\";\n MappingRuleMatchType[\"NOT_EQUAL\"] = \"NotEqual\";\n MappingRuleMatchType[\"STARTS_WITH\"] = \"StartsWith\";\n})(MappingRuleMatchType || (MappingRuleMatchType = {}));\nexport var MappingRule;\n(function (MappingRule) {\n MappingRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MappingRule || (MappingRule = {}));\nexport var RulesConfigurationType;\n(function (RulesConfigurationType) {\n RulesConfigurationType.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RulesConfigurationType || (RulesConfigurationType = {}));\nexport var RoleMappingType;\n(function (RoleMappingType) {\n RoleMappingType[\"RULES\"] = \"Rules\";\n RoleMappingType[\"TOKEN\"] = \"Token\";\n})(RoleMappingType || (RoleMappingType = {}));\nexport var RoleMapping;\n(function (RoleMapping) {\n RoleMapping.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RoleMapping || (RoleMapping = {}));\nexport var GetIdentityPoolRolesResponse;\n(function (GetIdentityPoolRolesResponse) {\n GetIdentityPoolRolesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetIdentityPoolRolesResponse || (GetIdentityPoolRolesResponse = {}));\nexport var GetOpenIdTokenInput;\n(function (GetOpenIdTokenInput) {\n GetOpenIdTokenInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenInput || (GetOpenIdTokenInput = {}));\nexport var GetOpenIdTokenResponse;\n(function (GetOpenIdTokenResponse) {\n GetOpenIdTokenResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenResponse || (GetOpenIdTokenResponse = {}));\nexport var DeveloperUserAlreadyRegisteredException;\n(function (DeveloperUserAlreadyRegisteredException) {\n DeveloperUserAlreadyRegisteredException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeveloperUserAlreadyRegisteredException || (DeveloperUserAlreadyRegisteredException = {}));\nexport var GetOpenIdTokenForDeveloperIdentityInput;\n(function (GetOpenIdTokenForDeveloperIdentityInput) {\n GetOpenIdTokenForDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenForDeveloperIdentityInput || (GetOpenIdTokenForDeveloperIdentityInput = {}));\nexport var GetOpenIdTokenForDeveloperIdentityResponse;\n(function (GetOpenIdTokenForDeveloperIdentityResponse) {\n GetOpenIdTokenForDeveloperIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetOpenIdTokenForDeveloperIdentityResponse || (GetOpenIdTokenForDeveloperIdentityResponse = {}));\nexport var ListIdentitiesInput;\n(function (ListIdentitiesInput) {\n ListIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentitiesInput || (ListIdentitiesInput = {}));\nexport var ListIdentitiesResponse;\n(function (ListIdentitiesResponse) {\n ListIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentitiesResponse || (ListIdentitiesResponse = {}));\nexport var ListIdentityPoolsInput;\n(function (ListIdentityPoolsInput) {\n ListIdentityPoolsInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentityPoolsInput || (ListIdentityPoolsInput = {}));\nexport var IdentityPoolShortDescription;\n(function (IdentityPoolShortDescription) {\n IdentityPoolShortDescription.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IdentityPoolShortDescription || (IdentityPoolShortDescription = {}));\nexport var ListIdentityPoolsResponse;\n(function (ListIdentityPoolsResponse) {\n ListIdentityPoolsResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListIdentityPoolsResponse || (ListIdentityPoolsResponse = {}));\nexport var ListTagsForResourceInput;\n(function (ListTagsForResourceInput) {\n ListTagsForResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForResourceInput || (ListTagsForResourceInput = {}));\nexport var ListTagsForResourceResponse;\n(function (ListTagsForResourceResponse) {\n ListTagsForResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListTagsForResourceResponse || (ListTagsForResourceResponse = {}));\nexport var LookupDeveloperIdentityInput;\n(function (LookupDeveloperIdentityInput) {\n LookupDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LookupDeveloperIdentityInput || (LookupDeveloperIdentityInput = {}));\nexport var LookupDeveloperIdentityResponse;\n(function (LookupDeveloperIdentityResponse) {\n LookupDeveloperIdentityResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LookupDeveloperIdentityResponse || (LookupDeveloperIdentityResponse = {}));\nexport var MergeDeveloperIdentitiesInput;\n(function (MergeDeveloperIdentitiesInput) {\n MergeDeveloperIdentitiesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MergeDeveloperIdentitiesInput || (MergeDeveloperIdentitiesInput = {}));\nexport var MergeDeveloperIdentitiesResponse;\n(function (MergeDeveloperIdentitiesResponse) {\n MergeDeveloperIdentitiesResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MergeDeveloperIdentitiesResponse || (MergeDeveloperIdentitiesResponse = {}));\nexport var ConcurrentModificationException;\n(function (ConcurrentModificationException) {\n ConcurrentModificationException.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ConcurrentModificationException || (ConcurrentModificationException = {}));\nexport var SetIdentityPoolRolesInput;\n(function (SetIdentityPoolRolesInput) {\n SetIdentityPoolRolesInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SetIdentityPoolRolesInput || (SetIdentityPoolRolesInput = {}));\nexport var TagResourceInput;\n(function (TagResourceInput) {\n TagResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TagResourceInput || (TagResourceInput = {}));\nexport var TagResourceResponse;\n(function (TagResourceResponse) {\n TagResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TagResourceResponse || (TagResourceResponse = {}));\nexport var UnlinkDeveloperIdentityInput;\n(function (UnlinkDeveloperIdentityInput) {\n UnlinkDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnlinkDeveloperIdentityInput || (UnlinkDeveloperIdentityInput = {}));\nexport var UnlinkIdentityInput;\n(function (UnlinkIdentityInput) {\n UnlinkIdentityInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UnlinkIdentityInput || (UnlinkIdentityInput = {}));\nexport var UntagResourceInput;\n(function (UntagResourceInput) {\n UntagResourceInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UntagResourceInput || (UntagResourceInput = {}));\nexport var UntagResourceResponse;\n(function (UntagResourceResponse) {\n UntagResourceResponse.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(UntagResourceResponse || (UntagResourceResponse = {}));\n//# sourceMappingURL=models_0.js.map","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { HttpRequest as __HttpRequest } from \"@aws-sdk/protocol-http\";\nexport var serializeAws_json1_1CreateIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.CreateIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1CreateIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DeleteIdentitiesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DeleteIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1DeleteIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DeleteIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DeleteIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1DeleteIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DescribeIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DescribeIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1DescribeIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.DescribeIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1DescribeIdentityPoolInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetCredentialsForIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetCredentialsForIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1GetCredentialsForIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetIdCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetId\",\n };\n body = JSON.stringify(serializeAws_json1_1GetIdInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetIdentityPoolRolesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetIdentityPoolRoles\",\n };\n body = JSON.stringify(serializeAws_json1_1GetIdentityPoolRolesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetOpenIdTokenCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetOpenIdToken\",\n };\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListIdentitiesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1ListIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListIdentityPoolsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListIdentityPools\",\n };\n body = JSON.stringify(serializeAws_json1_1ListIdentityPoolsInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1ListTagsForResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.ListTagsForResource\",\n };\n body = JSON.stringify(serializeAws_json1_1ListTagsForResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1LookupDeveloperIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.LookupDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1LookupDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1MergeDeveloperIdentitiesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.MergeDeveloperIdentities\",\n };\n body = JSON.stringify(serializeAws_json1_1MergeDeveloperIdentitiesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1SetIdentityPoolRolesCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.SetIdentityPoolRoles\",\n };\n body = JSON.stringify(serializeAws_json1_1SetIdentityPoolRolesInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1TagResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.TagResource\",\n };\n body = JSON.stringify(serializeAws_json1_1TagResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UnlinkDeveloperIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UnlinkDeveloperIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1UnlinkDeveloperIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UnlinkIdentityCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UnlinkIdentity\",\n };\n body = JSON.stringify(serializeAws_json1_1UnlinkIdentityInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UntagResourceCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UntagResource\",\n };\n body = JSON.stringify(serializeAws_json1_1UntagResourceInput(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var serializeAws_json1_1UpdateIdentityPoolCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, body;\n return __generator(this, function (_a) {\n headers = {\n \"content-type\": \"application/x-amz-json-1.1\",\n \"x-amz-target\": \"AWSCognitoIdentityService.UpdateIdentityPool\",\n };\n body = JSON.stringify(serializeAws_json1_1IdentityPool(input, context));\n return [2 /*return*/, buildHttpRpcRequest(context, headers, \"/\", undefined, body)];\n });\n}); };\nexport var deserializeAws_json1_1CreateIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1CreateIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1CreateIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"LimitExceededException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DeleteIdentitiesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DeleteIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1DeleteIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DeleteIdentitiesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, parsedBody, message;\n var _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n _a = [__assign({}, output)];\n _f = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_f.body = _g.sent(), _f)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"TooManyRequestsException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 6];\n }\n return [3 /*break*/, 8];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 9];\n case 8:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _g.label = 9;\n case 9:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DeleteIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DeleteIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DeleteIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DescribeIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DescribeIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityDescription(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DescribeIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1DescribeIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1DescribeIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1DescribeIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetCredentialsForIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetCredentialsForIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetCredentialsForIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetCredentialsForIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidIdentityPoolConfigurationException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidIdentityPoolConfigurationException\": return [3 /*break*/, 6];\n case \"InvalidParameterException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _m.label = 19;\n case 19:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetIdCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetIdCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetIdResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetIdCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"LimitExceededException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _m.label = 19;\n case 19:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetIdentityPoolRolesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetIdentityPoolRolesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetIdentityPoolRolesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetIdentityPoolRolesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetOpenIdTokenCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetOpenIdTokenCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetOpenIdTokenResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetOpenIdTokenCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"DeveloperUserAlreadyRegisteredException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#DeveloperUserAlreadyRegisteredException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1ListIdentitiesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1ListIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListIdentitiesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1ListIdentityPoolsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1ListIdentityPoolsCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListIdentityPoolsResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListIdentityPoolsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1ListTagsForResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1ListTagsForResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1ListTagsForResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1LookupDeveloperIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1LookupDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1LookupDeveloperIdentityResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1LookupDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1MergeDeveloperIdentitiesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1MergeDeveloperIdentitiesCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1MergeDeveloperIdentitiesResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1MergeDeveloperIdentitiesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1SetIdentityPoolRolesCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1SetIdentityPoolRolesCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1SetIdentityPoolRolesCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1TagResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1TagResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1TagResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1TagResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UnlinkDeveloperIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UnlinkDeveloperIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UnlinkDeveloperIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, parsedBody, message;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _a = [__assign({}, output)];\n _j = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_j.body = _k.sent(), _j)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceConflictException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 8];\n case \"ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 10];\n case \"TooManyRequestsException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 12];\n }\n return [3 /*break*/, 14];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 15];\n case 14:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _k.label = 15;\n case 15:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UnlinkIdentityCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UnlinkIdentityCommandError(output, context)];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n response = {\n $metadata: deserializeMetadata(output),\n };\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UnlinkIdentityCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, parsedBody, message;\n var _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = [__assign({}, output)];\n _k = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_k.body = _l.sent(), _k)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ExternalServiceException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ExternalServiceException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"NotAuthorizedException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 8];\n case \"ResourceConflictException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 10];\n case \"ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 12];\n case \"TooManyRequestsException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 14];\n }\n return [3 /*break*/, 16];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 17];\n case 16:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _l.label = 17;\n case 17:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UntagResourceCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UntagResourceCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1UntagResourceResponse(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UntagResourceCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, parsedBody, message;\n var _h;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n _a = [__assign({}, output)];\n _h = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_h.body = _j.sent(), _h)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InternalErrorException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 2];\n case \"InvalidParameterException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 4];\n case \"NotAuthorizedException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 6];\n case \"ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 8];\n case \"TooManyRequestsException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 10];\n }\n return [3 /*break*/, 12];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 13];\n case 12:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _j.label = 13;\n case 13:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_json1_1UpdateIdentityPoolCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var data, contents, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_json1_1UpdateIdentityPoolCommandError(output, context)];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents = {};\n contents = deserializeAws_json1_1IdentityPool(data, context);\n response = __assign({ $metadata: deserializeMetadata(output) }, contents);\n return [2 /*return*/, Promise.resolve(response)];\n }\n });\n}); };\nvar deserializeAws_json1_1UpdateIdentityPoolCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message;\n var _l;\n return __generator(this, function (_m) {\n switch (_m.label) {\n case 0:\n _a = [__assign({}, output)];\n _l = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_l.body = _m.sent(), _l)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestJsonErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"com.amazonaws.cognitoidentity#ConcurrentModificationException\": return [3 /*break*/, 2];\n case \"InternalErrorException\": return [3 /*break*/, 4];\n case \"com.amazonaws.cognitoidentity#InternalErrorException\": return [3 /*break*/, 4];\n case \"InvalidParameterException\": return [3 /*break*/, 6];\n case \"com.amazonaws.cognitoidentity#InvalidParameterException\": return [3 /*break*/, 6];\n case \"LimitExceededException\": return [3 /*break*/, 8];\n case \"com.amazonaws.cognitoidentity#LimitExceededException\": return [3 /*break*/, 8];\n case \"NotAuthorizedException\": return [3 /*break*/, 10];\n case \"com.amazonaws.cognitoidentity#NotAuthorizedException\": return [3 /*break*/, 10];\n case \"ResourceConflictException\": return [3 /*break*/, 12];\n case \"com.amazonaws.cognitoidentity#ResourceConflictException\": return [3 /*break*/, 12];\n case \"ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"com.amazonaws.cognitoidentity#ResourceNotFoundException\": return [3 /*break*/, 14];\n case \"TooManyRequestsException\": return [3 /*break*/, 16];\n case \"com.amazonaws.cognitoidentity#TooManyRequestsException\": return [3 /*break*/, 16];\n }\n return [3 /*break*/, 18];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 6:\n _e = [{}];\n return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)];\n case 7:\n response = __assign.apply(void 0, [__assign.apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 8:\n _f = [{}];\n return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)];\n case 9:\n response = __assign.apply(void 0, [__assign.apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 10:\n _g = [{}];\n return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)];\n case 11:\n response = __assign.apply(void 0, [__assign.apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 12:\n _h = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)];\n case 13:\n response = __assign.apply(void 0, [__assign.apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 14:\n _j = [{}];\n return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)];\n case 15:\n response = __assign.apply(void 0, [__assign.apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 16:\n _k = [{}];\n return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)];\n case 17:\n response = __assign.apply(void 0, [__assign.apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 19];\n case 18:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _m.label = 19;\n case 19:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nvar deserializeAws_json1_1ConcurrentModificationExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ConcurrentModificationException(body, context);\n contents = __assign({ name: \"ConcurrentModificationException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1DeveloperUserAlreadyRegisteredException(body, context);\n contents = __assign({ name: \"DeveloperUserAlreadyRegisteredException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ExternalServiceExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ExternalServiceException(body, context);\n contents = __assign({ name: \"ExternalServiceException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InternalErrorExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1InternalErrorException(body, context);\n contents = __assign({ name: \"InternalErrorException\", $fault: \"server\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1InvalidIdentityPoolConfigurationException(body, context);\n contents = __assign({ name: \"InvalidIdentityPoolConfigurationException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1InvalidParameterExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1InvalidParameterException(body, context);\n contents = __assign({ name: \"InvalidParameterException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1LimitExceededExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1LimitExceededException(body, context);\n contents = __assign({ name: \"LimitExceededException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1NotAuthorizedExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1NotAuthorizedException(body, context);\n contents = __assign({ name: \"NotAuthorizedException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ResourceConflictExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ResourceConflictException(body, context);\n contents = __assign({ name: \"ResourceConflictException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1ResourceNotFoundExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1ResourceNotFoundException(body, context);\n contents = __assign({ name: \"ResourceNotFoundException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_json1_1TooManyRequestsExceptionResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var body, deserialized, contents;\n return __generator(this, function (_a) {\n body = parsedOutput.body;\n deserialized = deserializeAws_json1_1TooManyRequestsException(body, context);\n contents = __assign({ name: \"TooManyRequestsException\", $fault: \"client\", $metadata: deserializeMetadata(parsedOutput) }, deserialized);\n return [2 /*return*/, contents];\n });\n}); };\nvar serializeAws_json1_1CognitoIdentityProvider = function (input, context) {\n return __assign(__assign(__assign({}, (input.ClientId !== undefined && input.ClientId !== null && { ClientId: input.ClientId })), (input.ProviderName !== undefined && input.ProviderName !== null && { ProviderName: input.ProviderName })), (input.ServerSideTokenCheck !== undefined &&\n input.ServerSideTokenCheck !== null && { ServerSideTokenCheck: input.ServerSideTokenCheck }));\n};\nvar serializeAws_json1_1CognitoIdentityProviderList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_json1_1CognitoIdentityProvider(entry, context);\n });\n};\nvar serializeAws_json1_1CreateIdentityPoolInput = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.AllowClassicFlow !== undefined &&\n input.AllowClassicFlow !== null && { AllowClassicFlow: input.AllowClassicFlow })), (input.AllowUnauthenticatedIdentities !== undefined &&\n input.AllowUnauthenticatedIdentities !== null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n })), (input.CognitoIdentityProviders !== undefined &&\n input.CognitoIdentityProviders !== null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context),\n })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolName !== undefined &&\n input.IdentityPoolName !== null && { IdentityPoolName: input.IdentityPoolName })), (input.IdentityPoolTags !== undefined &&\n input.IdentityPoolTags !== null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n })), (input.OpenIdConnectProviderARNs !== undefined &&\n input.OpenIdConnectProviderARNs !== null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n })), (input.SamlProviderARNs !== undefined &&\n input.SamlProviderARNs !== null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n })), (input.SupportedLoginProviders !== undefined &&\n input.SupportedLoginProviders !== null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }));\n};\nvar serializeAws_json1_1DeleteIdentitiesInput = function (input, context) {\n return __assign({}, (input.IdentityIdsToDelete !== undefined &&\n input.IdentityIdsToDelete !== null && {\n IdentityIdsToDelete: serializeAws_json1_1IdentityIdList(input.IdentityIdsToDelete, context),\n }));\n};\nvar serializeAws_json1_1DeleteIdentityPoolInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1DescribeIdentityInput = function (input, context) {\n return __assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId }));\n};\nvar serializeAws_json1_1DescribeIdentityPoolInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1GetCredentialsForIdentityInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.CustomRoleArn !== undefined && input.CustomRoleArn !== null && { CustomRoleArn: input.CustomRoleArn })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1GetIdentityPoolRolesInput = function (input, context) {\n return __assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1GetIdInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.AccountId !== undefined && input.AccountId !== null && { AccountId: input.AccountId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })), (input.TokenDuration !== undefined && input.TokenDuration !== null && { TokenDuration: input.TokenDuration }));\n};\nvar serializeAws_json1_1GetOpenIdTokenInput = function (input, context) {\n return __assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) }));\n};\nvar serializeAws_json1_1IdentityIdList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1IdentityPool = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (input.AllowClassicFlow !== undefined &&\n input.AllowClassicFlow !== null && { AllowClassicFlow: input.AllowClassicFlow })), (input.AllowUnauthenticatedIdentities !== undefined &&\n input.AllowUnauthenticatedIdentities !== null && {\n AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities,\n })), (input.CognitoIdentityProviders !== undefined &&\n input.CognitoIdentityProviders !== null && {\n CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context),\n })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.IdentityPoolName !== undefined &&\n input.IdentityPoolName !== null && { IdentityPoolName: input.IdentityPoolName })), (input.IdentityPoolTags !== undefined &&\n input.IdentityPoolTags !== null && {\n IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context),\n })), (input.OpenIdConnectProviderARNs !== undefined &&\n input.OpenIdConnectProviderARNs !== null && {\n OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context),\n })), (input.SamlProviderARNs !== undefined &&\n input.SamlProviderARNs !== null && {\n SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context),\n })), (input.SupportedLoginProviders !== undefined &&\n input.SupportedLoginProviders !== null && {\n SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context),\n }));\n};\nvar serializeAws_json1_1IdentityPoolTagsListType = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1IdentityPoolTagsType = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1IdentityProviders = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1ListIdentitiesInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.HideDisabled !== undefined && input.HideDisabled !== null && { HideDisabled: input.HideDisabled })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1ListIdentityPoolsInput = function (input, context) {\n return __assign(__assign({}, (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1ListTagsForResourceInput = function (input, context) {\n return __assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn }));\n};\nvar serializeAws_json1_1LoginsList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1LoginsMap = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1LookupDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign(__assign({}, (input.DeveloperUserIdentifier !== undefined &&\n input.DeveloperUserIdentifier !== null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.MaxResults !== undefined && input.MaxResults !== null && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && input.NextToken !== null && { NextToken: input.NextToken }));\n};\nvar serializeAws_json1_1MappingRule = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.Claim !== undefined && input.Claim !== null && { Claim: input.Claim })), (input.MatchType !== undefined && input.MatchType !== null && { MatchType: input.MatchType })), (input.RoleARN !== undefined && input.RoleARN !== null && { RoleARN: input.RoleARN })), (input.Value !== undefined && input.Value !== null && { Value: input.Value }));\n};\nvar serializeAws_json1_1MappingRulesList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return serializeAws_json1_1MappingRule(entry, context);\n });\n};\nvar serializeAws_json1_1MergeDeveloperIdentitiesInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.DestinationUserIdentifier !== undefined &&\n input.DestinationUserIdentifier !== null && { DestinationUserIdentifier: input.DestinationUserIdentifier })), (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.SourceUserIdentifier !== undefined &&\n input.SourceUserIdentifier !== null && { SourceUserIdentifier: input.SourceUserIdentifier }));\n};\nvar serializeAws_json1_1OIDCProviderList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1RoleMapping = function (input, context) {\n return __assign(__assign(__assign({}, (input.AmbiguousRoleResolution !== undefined &&\n input.AmbiguousRoleResolution !== null && { AmbiguousRoleResolution: input.AmbiguousRoleResolution })), (input.RulesConfiguration !== undefined &&\n input.RulesConfiguration !== null && {\n RulesConfiguration: serializeAws_json1_1RulesConfigurationType(input.RulesConfiguration, context),\n })), (input.Type !== undefined && input.Type !== null && { Type: input.Type }));\n};\nvar serializeAws_json1_1RoleMappingMap = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = serializeAws_json1_1RoleMapping(value, context), _b));\n }, {});\n};\nvar serializeAws_json1_1RolesMap = function (input, context) {\n return Object.entries(input).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar serializeAws_json1_1RulesConfigurationType = function (input, context) {\n return __assign({}, (input.Rules !== undefined &&\n input.Rules !== null && { Rules: serializeAws_json1_1MappingRulesList(input.Rules, context) }));\n};\nvar serializeAws_json1_1SAMLProviderList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar serializeAws_json1_1SetIdentityPoolRolesInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId })), (input.RoleMappings !== undefined &&\n input.RoleMappings !== null && { RoleMappings: serializeAws_json1_1RoleMappingMap(input.RoleMappings, context) })), (input.Roles !== undefined &&\n input.Roles !== null && { Roles: serializeAws_json1_1RolesMap(input.Roles, context) }));\n};\nvar serializeAws_json1_1TagResourceInput = function (input, context) {\n return __assign(__assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn })), (input.Tags !== undefined &&\n input.Tags !== null && { Tags: serializeAws_json1_1IdentityPoolTagsType(input.Tags, context) }));\n};\nvar serializeAws_json1_1UnlinkDeveloperIdentityInput = function (input, context) {\n return __assign(__assign(__assign(__assign({}, (input.DeveloperProviderName !== undefined &&\n input.DeveloperProviderName !== null && { DeveloperProviderName: input.DeveloperProviderName })), (input.DeveloperUserIdentifier !== undefined &&\n input.DeveloperUserIdentifier !== null && { DeveloperUserIdentifier: input.DeveloperUserIdentifier })), (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined &&\n input.IdentityPoolId !== null && { IdentityPoolId: input.IdentityPoolId }));\n};\nvar serializeAws_json1_1UnlinkIdentityInput = function (input, context) {\n return __assign(__assign(__assign({}, (input.IdentityId !== undefined && input.IdentityId !== null && { IdentityId: input.IdentityId })), (input.Logins !== undefined &&\n input.Logins !== null && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })), (input.LoginsToRemove !== undefined &&\n input.LoginsToRemove !== null && {\n LoginsToRemove: serializeAws_json1_1LoginsList(input.LoginsToRemove, context),\n }));\n};\nvar serializeAws_json1_1UntagResourceInput = function (input, context) {\n return __assign(__assign({}, (input.ResourceArn !== undefined && input.ResourceArn !== null && { ResourceArn: input.ResourceArn })), (input.TagKeys !== undefined &&\n input.TagKeys !== null && { TagKeys: serializeAws_json1_1IdentityPoolTagsListType(input.TagKeys, context) }));\n};\nvar deserializeAws_json1_1CognitoIdentityProvider = function (output, context) {\n return {\n ClientId: output.ClientId !== undefined && output.ClientId !== null ? output.ClientId : undefined,\n ProviderName: output.ProviderName !== undefined && output.ProviderName !== null ? output.ProviderName : undefined,\n ServerSideTokenCheck: output.ServerSideTokenCheck !== undefined && output.ServerSideTokenCheck !== null\n ? output.ServerSideTokenCheck\n : undefined,\n };\n};\nvar deserializeAws_json1_1CognitoIdentityProviderList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1CognitoIdentityProvider(entry, context);\n });\n};\nvar deserializeAws_json1_1ConcurrentModificationException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1Credentials = function (output, context) {\n return {\n AccessKeyId: output.AccessKeyId !== undefined && output.AccessKeyId !== null ? output.AccessKeyId : undefined,\n Expiration: output.Expiration !== undefined && output.Expiration !== null\n ? new Date(Math.round(output.Expiration * 1000))\n : undefined,\n SecretKey: output.SecretKey !== undefined && output.SecretKey !== null ? output.SecretKey : undefined,\n SessionToken: output.SessionToken !== undefined && output.SessionToken !== null ? output.SessionToken : undefined,\n };\n};\nvar deserializeAws_json1_1DeleteIdentitiesResponse = function (output, context) {\n return {\n UnprocessedIdentityIds: output.UnprocessedIdentityIds !== undefined && output.UnprocessedIdentityIds !== null\n ? deserializeAws_json1_1UnprocessedIdentityIdList(output.UnprocessedIdentityIds, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1DeveloperUserAlreadyRegisteredException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1DeveloperUserIdentifierList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1ExternalServiceException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1GetCredentialsForIdentityResponse = function (output, context) {\n return {\n Credentials: output.Credentials !== undefined && output.Credentials !== null\n ? deserializeAws_json1_1Credentials(output.Credentials, context)\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1GetIdentityPoolRolesResponse = function (output, context) {\n return {\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n RoleMappings: output.RoleMappings !== undefined && output.RoleMappings !== null\n ? deserializeAws_json1_1RoleMappingMap(output.RoleMappings, context)\n : undefined,\n Roles: output.Roles !== undefined && output.Roles !== null\n ? deserializeAws_json1_1RolesMap(output.Roles, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1GetIdResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined,\n };\n};\nvar deserializeAws_json1_1GetOpenIdTokenResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined,\n };\n};\nvar deserializeAws_json1_1IdentitiesList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1IdentityDescription(entry, context);\n });\n};\nvar deserializeAws_json1_1IdentityDescription = function (output, context) {\n return {\n CreationDate: output.CreationDate !== undefined && output.CreationDate !== null\n ? new Date(Math.round(output.CreationDate * 1000))\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null\n ? new Date(Math.round(output.LastModifiedDate * 1000))\n : undefined,\n Logins: output.Logins !== undefined && output.Logins !== null\n ? deserializeAws_json1_1LoginsList(output.Logins, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPool = function (output, context) {\n return {\n AllowClassicFlow: output.AllowClassicFlow !== undefined && output.AllowClassicFlow !== null ? output.AllowClassicFlow : undefined,\n AllowUnauthenticatedIdentities: output.AllowUnauthenticatedIdentities !== undefined && output.AllowUnauthenticatedIdentities !== null\n ? output.AllowUnauthenticatedIdentities\n : undefined,\n CognitoIdentityProviders: output.CognitoIdentityProviders !== undefined && output.CognitoIdentityProviders !== null\n ? deserializeAws_json1_1CognitoIdentityProviderList(output.CognitoIdentityProviders, context)\n : undefined,\n DeveloperProviderName: output.DeveloperProviderName !== undefined && output.DeveloperProviderName !== null\n ? output.DeveloperProviderName\n : undefined,\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n IdentityPoolName: output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined,\n IdentityPoolTags: output.IdentityPoolTags !== undefined && output.IdentityPoolTags !== null\n ? deserializeAws_json1_1IdentityPoolTagsType(output.IdentityPoolTags, context)\n : undefined,\n OpenIdConnectProviderARNs: output.OpenIdConnectProviderARNs !== undefined && output.OpenIdConnectProviderARNs !== null\n ? deserializeAws_json1_1OIDCProviderList(output.OpenIdConnectProviderARNs, context)\n : undefined,\n SamlProviderARNs: output.SamlProviderARNs !== undefined && output.SamlProviderARNs !== null\n ? deserializeAws_json1_1SAMLProviderList(output.SamlProviderARNs, context)\n : undefined,\n SupportedLoginProviders: output.SupportedLoginProviders !== undefined && output.SupportedLoginProviders !== null\n ? deserializeAws_json1_1IdentityProviders(output.SupportedLoginProviders, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPoolShortDescription = function (output, context) {\n return {\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n IdentityPoolName: output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined,\n };\n};\nvar deserializeAws_json1_1IdentityPoolsList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1IdentityPoolShortDescription(entry, context);\n });\n};\nvar deserializeAws_json1_1IdentityPoolTagsType = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar deserializeAws_json1_1IdentityProviders = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar deserializeAws_json1_1InternalErrorException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1InvalidIdentityPoolConfigurationException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1InvalidParameterException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1LimitExceededException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1ListIdentitiesResponse = function (output, context) {\n return {\n Identities: output.Identities !== undefined && output.Identities !== null\n ? deserializeAws_json1_1IdentitiesList(output.Identities, context)\n : undefined,\n IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1ListIdentityPoolsResponse = function (output, context) {\n return {\n IdentityPools: output.IdentityPools !== undefined && output.IdentityPools !== null\n ? deserializeAws_json1_1IdentityPoolsList(output.IdentityPools, context)\n : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1ListTagsForResourceResponse = function (output, context) {\n return {\n Tags: output.Tags !== undefined && output.Tags !== null\n ? deserializeAws_json1_1IdentityPoolTagsType(output.Tags, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1LoginsList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1LookupDeveloperIdentityResponse = function (output, context) {\n return {\n DeveloperUserIdentifierList: output.DeveloperUserIdentifierList !== undefined && output.DeveloperUserIdentifierList !== null\n ? deserializeAws_json1_1DeveloperUserIdentifierList(output.DeveloperUserIdentifierList, context)\n : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined,\n };\n};\nvar deserializeAws_json1_1MappingRule = function (output, context) {\n return {\n Claim: output.Claim !== undefined && output.Claim !== null ? output.Claim : undefined,\n MatchType: output.MatchType !== undefined && output.MatchType !== null ? output.MatchType : undefined,\n RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined,\n Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined,\n };\n};\nvar deserializeAws_json1_1MappingRulesList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1MappingRule(entry, context);\n });\n};\nvar deserializeAws_json1_1MergeDeveloperIdentitiesResponse = function (output, context) {\n return {\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1NotAuthorizedException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1OIDCProviderList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1ResourceConflictException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1ResourceNotFoundException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1RoleMapping = function (output, context) {\n return {\n AmbiguousRoleResolution: output.AmbiguousRoleResolution !== undefined && output.AmbiguousRoleResolution !== null\n ? output.AmbiguousRoleResolution\n : undefined,\n RulesConfiguration: output.RulesConfiguration !== undefined && output.RulesConfiguration !== null\n ? deserializeAws_json1_1RulesConfigurationType(output.RulesConfiguration, context)\n : undefined,\n Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined,\n };\n};\nvar deserializeAws_json1_1RoleMappingMap = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = deserializeAws_json1_1RoleMapping(value, context), _b));\n }, {});\n};\nvar deserializeAws_json1_1RolesMap = function (output, context) {\n return Object.entries(output).reduce(function (acc, _a) {\n var _b;\n var _c = __read(_a, 2), key = _c[0], value = _c[1];\n if (value === null) {\n return acc;\n }\n return __assign(__assign({}, acc), (_b = {}, _b[key] = value, _b));\n }, {});\n};\nvar deserializeAws_json1_1RulesConfigurationType = function (output, context) {\n return {\n Rules: output.Rules !== undefined && output.Rules !== null\n ? deserializeAws_json1_1MappingRulesList(output.Rules, context)\n : undefined,\n };\n};\nvar deserializeAws_json1_1SAMLProviderList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_json1_1TagResourceResponse = function (output, context) {\n return {};\n};\nvar deserializeAws_json1_1TooManyRequestsException = function (output, context) {\n return {\n message: output.message !== undefined && output.message !== null ? output.message : undefined,\n };\n};\nvar deserializeAws_json1_1UnprocessedIdentityId = function (output, context) {\n return {\n ErrorCode: output.ErrorCode !== undefined && output.ErrorCode !== null ? output.ErrorCode : undefined,\n IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined,\n };\n};\nvar deserializeAws_json1_1UnprocessedIdentityIdList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_json1_1UnprocessedIdentityId(entry, context);\n });\n};\nvar deserializeAws_json1_1UntagResourceResponse = function (output, context) {\n return {};\n};\nvar deserializeMetadata = function (output) {\n var _a;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\n// Collect low-level response body stream to Uint8Array.\nvar collectBody = function (streamBody, context) {\n if (streamBody === void 0) { streamBody = new Uint8Array(); }\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\n// Encode Uint8Array data into string with utf-8.\nvar collectBodyString = function (streamBody, context) {\n return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });\n};\nvar buildHttpRpcRequest = function (context, headers, path, resolvedHostname, body) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, hostname, _b, protocol, port, contents;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n contents = {\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n path: path,\n headers: headers,\n };\n if (resolvedHostname !== undefined) {\n contents.hostname = resolvedHostname;\n }\n if (body !== undefined) {\n contents.body = body;\n }\n return [2 /*return*/, new __HttpRequest(contents)];\n }\n });\n}); };\nvar parseBody = function (streamBody, context) {\n return collectBodyString(streamBody, context).then(function (encoded) {\n if (encoded.length) {\n return JSON.parse(encoded);\n }\n return {};\n });\n};\n/**\n * Load an error code for the aws.rest-json-1.1 protocol.\n */\nvar loadRestJsonErrorCode = function (output, data) {\n var findKey = function (object, key) { return Object.keys(object).find(function (k) { return k.toLowerCase() === key.toLowerCase(); }); };\n var sanitizeErrorCode = function (rawValue) {\n var cleanValue = rawValue;\n if (cleanValue.indexOf(\":\") >= 0) {\n cleanValue = cleanValue.split(\":\")[0];\n }\n if (cleanValue.indexOf(\"#\") >= 0) {\n cleanValue = cleanValue.split(\"#\")[1];\n }\n return cleanValue;\n };\n var headerKey = findKey(output.headers, \"x-amzn-errortype\");\n if (headerKey !== undefined) {\n return sanitizeErrorCode(output.headers[headerKey]);\n }\n if (data.code !== undefined) {\n return sanitizeErrorCode(data.code);\n }\n if (data[\"__type\"] !== undefined) {\n return sanitizeErrorCode(data[\"__type\"]);\n }\n return \"\";\n};\n//# sourceMappingURL=Aws_json1_1.js.map","import { __extends } from \"tslib\";\nimport { GetCredentialsForIdentityInput, GetCredentialsForIdentityResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1GetCredentialsForIdentityCommand, serializeAws_json1_1GetCredentialsForIdentityCommand, } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Returns credentials for the provided identity ID. Any provided logins will be\n * validated against supported login providers. If the token is for\n * cognito-identity.amazonaws.com, it will be passed through to AWS Security Token Service\n * with the appropriate role for the token.

\n *

This is a public API. You do not need any credentials to call this API.

\n */\nvar GetCredentialsForIdentityCommand = /** @class */ (function (_super) {\n __extends(GetCredentialsForIdentityCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetCredentialsForIdentityCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n GetCredentialsForIdentityCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CognitoIdentityClient\";\n var commandName = \"GetCredentialsForIdentityCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetCredentialsForIdentityInput.filterSensitiveLog,\n outputFilterSensitiveLog: GetCredentialsForIdentityResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetCredentialsForIdentityCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1GetCredentialsForIdentityCommand(input, context);\n };\n GetCredentialsForIdentityCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1GetCredentialsForIdentityCommand(output, context);\n };\n return GetCredentialsForIdentityCommand;\n}($Command));\nexport { GetCredentialsForIdentityCommand };\n//# sourceMappingURL=GetCredentialsForIdentityCommand.js.map","import { __extends } from \"tslib\";\n/**\n * An error representing a failure of an individual credential provider.\n *\n * This error class has special meaning to the {@link chain} method. If a\n * provider in the chain is rejected with an error, the chain will only proceed\n * to the next provider if the value of the `tryNextLink` property on the error\n * is truthy. This allows individual providers to halt the chain and also\n * ensures the chain will stop if an entirely unexpected error is encountered.\n */\nvar ProviderError = /** @class */ (function (_super) {\n __extends(ProviderError, _super);\n function ProviderError(message, tryNextLink) {\n if (tryNextLink === void 0) { tryNextLink = true; }\n var _this = _super.call(this, message) || this;\n _this.tryNextLink = tryNextLink;\n return _this;\n }\n return ProviderError;\n}(Error));\nexport { ProviderError };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdmlkZXJFcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Qcm92aWRlckVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7R0FRRztBQUNIO0lBQW1DLGlDQUFLO0lBQ3RDLHVCQUFZLE9BQWUsRUFBa0IsV0FBMkI7UUFBM0IsNEJBQUEsRUFBQSxrQkFBMkI7UUFBeEUsWUFDRSxrQkFBTSxPQUFPLENBQUMsU0FDZjtRQUY0QyxpQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7O0lBRXhFLENBQUM7SUFDSCxvQkFBQztBQUFELENBQUMsQUFKRCxDQUFtQyxLQUFLLEdBSXZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBbiBlcnJvciByZXByZXNlbnRpbmcgYSBmYWlsdXJlIG9mIGFuIGluZGl2aWR1YWwgY3JlZGVudGlhbCBwcm92aWRlci5cbiAqXG4gKiBUaGlzIGVycm9yIGNsYXNzIGhhcyBzcGVjaWFsIG1lYW5pbmcgdG8gdGhlIHtAbGluayBjaGFpbn0gbWV0aG9kLiBJZiBhXG4gKiBwcm92aWRlciBpbiB0aGUgY2hhaW4gaXMgcmVqZWN0ZWQgd2l0aCBhbiBlcnJvciwgdGhlIGNoYWluIHdpbGwgb25seSBwcm9jZWVkXG4gKiB0byB0aGUgbmV4dCBwcm92aWRlciBpZiB0aGUgdmFsdWUgb2YgdGhlIGB0cnlOZXh0TGlua2AgcHJvcGVydHkgb24gdGhlIGVycm9yXG4gKiBpcyB0cnV0aHkuIFRoaXMgYWxsb3dzIGluZGl2aWR1YWwgcHJvdmlkZXJzIHRvIGhhbHQgdGhlIGNoYWluIGFuZCBhbHNvXG4gKiBlbnN1cmVzIHRoZSBjaGFpbiB3aWxsIHN0b3AgaWYgYW4gZW50aXJlbHkgdW5leHBlY3RlZCBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3ZpZGVyRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIHJlYWRvbmx5IHRyeU5leHRMaW5rOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG59XG4iXX0=","import { __read } from \"tslib\";\n/**\n * @internal\n */\nexport function resolveLogins(logins) {\n return Promise.all(Object.keys(logins).reduce(function (arr, name) {\n var tokenOrProvider = logins[name];\n if (typeof tokenOrProvider === \"string\") {\n arr.push([name, tokenOrProvider]);\n }\n else {\n arr.push(tokenOrProvider().then(function (token) { return [name, token]; }));\n }\n return arr;\n }, [])).then(function (resolvedPairs) {\n return resolvedPairs.reduce(function (logins, _a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n logins[key] = value;\n return logins;\n }, {});\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZUxvZ2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNvbHZlTG9naW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQTs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBYztJQUMxQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsR0FBd0QsRUFBRSxJQUFZO1FBQ2hHLElBQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRTtZQUN2QyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBcUIsQ0FBQyxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLEtBQUssSUFBSyxPQUFBLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBcUIsRUFBakMsQ0FBaUMsQ0FBQyxDQUFDLENBQUM7U0FDaEY7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFzQyxDQUFDLENBQzNDLENBQUMsSUFBSSxDQUFDLFVBQUMsYUFBYTtRQUNuQixPQUFBLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBQyxNQUFzQixFQUFFLEVBQVk7Z0JBQVosS0FBQSxhQUFZLEVBQVgsR0FBRyxRQUFBLEVBQUUsS0FBSyxRQUFBO1lBQ3ZELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQW9CLENBQUM7SUFIeEIsQ0FHd0IsQ0FDekIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dpbnMsIFJlc29sdmVkTG9naW5zIH0gZnJvbSBcIi4vTG9naW5zXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTG9naW5zKGxvZ2luczogTG9naW5zKTogUHJvbWlzZTxSZXNvbHZlZExvZ2lucz4ge1xuICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgT2JqZWN0LmtleXMobG9naW5zKS5yZWR1Y2UoKGFycjogQXJyYXk8W3N0cmluZywgc3RyaW5nXSB8IFByb21pc2U8W3N0cmluZywgc3RyaW5nXT4+LCBuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHRva2VuT3JQcm92aWRlciA9IGxvZ2luc1tuYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgdG9rZW5PclByb3ZpZGVyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGFyci5wdXNoKFtuYW1lLCB0b2tlbk9yUHJvdmlkZXJdIGFzIFtzdHJpbmcsIHN0cmluZ10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXJyLnB1c2godG9rZW5PclByb3ZpZGVyKCkudGhlbigodG9rZW4pID0+IFtuYW1lLCB0b2tlbl0gYXMgW3N0cmluZywgc3RyaW5nXSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFycjtcbiAgICB9LCBbXSBhcyBBcnJheTxQcm9taXNlPFtzdHJpbmcsIHN0cmluZ10+PilcbiAgKS50aGVuKChyZXNvbHZlZFBhaXJzKSA9PlxuICAgIHJlc29sdmVkUGFpcnMucmVkdWNlKChsb2dpbnM6IFJlc29sdmVkTG9naW5zLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGxvZ2luc1trZXldID0gdmFsdWU7XG4gICAgICByZXR1cm4gbG9naW5zO1xuICAgIH0sIHt9IGFzIFJlc29sdmVkTG9naW5zKVxuICApO1xufVxuIl19","import { __awaiter, __generator } from \"tslib\";\nimport { GetCredentialsForIdentityCommand } from \"@aws-sdk/client-cognito-identity\";\nimport { ProviderError } from \"@aws-sdk/property-provider\";\nimport { resolveLogins } from \"./resolveLogins\";\n/**\n * Retrieves temporary AWS credentials using Amazon Cognito's\n * `GetCredentialsForIdentity` operation.\n *\n * Results from this function call are not cached internally.\n */\nexport function fromCognitoIdentity(parameters) {\n var _this = this;\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, _c, AccessKeyId, Expiration, _d, SecretKey, SessionToken, _e, _f, _g, _h;\n var _j;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n _f = (_e = parameters.client).send;\n _g = GetCredentialsForIdentityCommand.bind;\n _j = {\n CustomRoleArn: parameters.customRoleArn,\n IdentityId: parameters.identityId\n };\n if (!parameters.logins) return [3 /*break*/, 2];\n return [4 /*yield*/, resolveLogins(parameters.logins)];\n case 1:\n _h = _k.sent();\n return [3 /*break*/, 3];\n case 2:\n _h = undefined;\n _k.label = 3;\n case 3: return [4 /*yield*/, _f.apply(_e, [new (_g.apply(GetCredentialsForIdentityCommand, [void 0, (_j.Logins = _h,\n _j)]))()])];\n case 4:\n _a = (_k.sent()).Credentials, _b = _a === void 0 ? throwOnMissingCredentials() : _a, _c = _b.AccessKeyId, AccessKeyId = _c === void 0 ? throwOnMissingAccessKeyId() : _c, Expiration = _b.Expiration, _d = _b.SecretKey, SecretKey = _d === void 0 ? throwOnMissingSecretKey() : _d, SessionToken = _b.SessionToken;\n return [2 /*return*/, {\n identityId: parameters.identityId,\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n }];\n }\n });\n }); };\n}\nfunction throwOnMissingAccessKeyId() {\n throw new ProviderError(\"Response from Amazon Cognito contained no access key ID\");\n}\nfunction throwOnMissingCredentials() {\n throw new ProviderError(\"Response from Amazon Cognito contained no credentials\");\n}\nfunction throwOnMissingSecretKey() {\n throw new ProviderError(\"Response from Amazon Cognito contained no secret key\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUNvZ25pdG9JZGVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mcm9tQ29nbml0b0lkZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBU2hEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFVBQXlDO0lBQTdFLGlCQXlCQztJQXhCQyxPQUFPOzs7Ozs7b0JBUUssS0FBQSxDQUFBLEtBQUEsVUFBVSxDQUFDLE1BQU0sQ0FBQSxDQUFDLElBQUksQ0FBQTt5QkFDMUIsZ0NBQWdDOzt3QkFDbEMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO3dCQUN2QyxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVU7O3lCQUN6QixVQUFVLENBQUMsTUFBTSxFQUFqQix3QkFBaUI7b0JBQUcscUJBQU0sYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBQTs7b0JBQXRDLEtBQUEsU0FBc0MsQ0FBQTs7O29CQUFHLEtBQUEsU0FBUyxDQUFBOzt3QkFKOUUscUJBQU0sY0FDUixjQUFJLGdDQUFnQyxZQUdsQyxTQUFNLEtBQXdFO3dDQUM5RSxFQUNILEVBQUE7O29CQVpDLEtBTUUsQ0FBQSxTQU1ILENBQUEsWUFQZ0MsRUFML0IscUJBS0kseUJBQXlCLEVBQUUsS0FBQSxFQUo3QixtQkFBeUMsRUFBekMsV0FBVyxtQkFBRyx5QkFBeUIsRUFBRSxLQUFBLEVBQ3pDLFVBQVUsZ0JBQUEsRUFDVixpQkFBcUMsRUFBckMsU0FBUyxtQkFBRyx1QkFBdUIsRUFBRSxLQUFBLEVBQ3JDLFlBQVksa0JBQUE7b0JBVWhCLHNCQUFPOzRCQUNMLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTs0QkFDakMsV0FBVyxFQUFFLFdBQVc7NEJBQ3hCLGVBQWUsRUFBRSxTQUFTOzRCQUMxQixZQUFZLEVBQUUsWUFBWTs0QkFDMUIsVUFBVSxFQUFFLFVBQVU7eUJBQ3ZCLEVBQUM7OztTQUNILENBQUM7QUFDSixDQUFDO0FBVUQsU0FBUyx5QkFBeUI7SUFDaEMsTUFBTSxJQUFJLGFBQWEsQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFTLHlCQUF5QjtJQUNoQyxNQUFNLElBQUksYUFBYSxDQUFDLHVEQUF1RCxDQUFDLENBQUM7QUFDbkYsQ0FBQztBQUVELFNBQVMsdUJBQXVCO0lBQzlCLE1BQU0sSUFBSSxhQUFhLENBQUMsc0RBQXNELENBQUMsQ0FBQztBQUNsRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eUNvbW1hbmQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LWNvZ25pdG8taWRlbnRpdHlcIjtcbmltcG9ydCB7IFByb3ZpZGVyRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvcHJvcGVydHktcHJvdmlkZXJcIjtcbmltcG9ydCB7IENyZWRlbnRpYWxQcm92aWRlciwgQ3JlZGVudGlhbHMgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB9IGZyb20gXCIuL0NvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHJlc29sdmVMb2dpbnMgfSBmcm9tIFwiLi9yZXNvbHZlTG9naW5zXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29nbml0b0lkZW50aXR5Q3JlZGVudGlhbHMgZXh0ZW5kcyBDcmVkZW50aWFscyB7XG4gIC8qKlxuICAgKiBUaGUgQ29nbml0byBJRCByZXR1cm5lZCBieSB0aGUgbGFzdCBjYWxsIHRvIEFXUy5Db2duaXRvSWRlbnRpdHkuZ2V0T3BlbklkVG9rZW4oKS5cbiAgICovXG4gIGlkZW50aXR5SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGVtcG9yYXJ5IEFXUyBjcmVkZW50aWFscyB1c2luZyBBbWF6b24gQ29nbml0bydzXG4gKiBgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eWAgb3BlcmF0aW9uLlxuICpcbiAqIFJlc3VsdHMgZnJvbSB0aGlzIGZ1bmN0aW9uIGNhbGwgYXJlIG5vdCBjYWNoZWQgaW50ZXJuYWxseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21Db2duaXRvSWRlbnRpdHkocGFyYW1ldGVyczogRnJvbUNvZ25pdG9JZGVudGl0eVBhcmFtZXRlcnMpOiBDcmVkZW50aWFsUHJvdmlkZXIge1xuICByZXR1cm4gYXN5bmMgKCk6IFByb21pc2U8Q29nbml0b0lkZW50aXR5Q3JlZGVudGlhbHM+ID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBDcmVkZW50aWFsczoge1xuICAgICAgICBBY2Nlc3NLZXlJZCA9IHRocm93T25NaXNzaW5nQWNjZXNzS2V5SWQoKSxcbiAgICAgICAgRXhwaXJhdGlvbixcbiAgICAgICAgU2VjcmV0S2V5ID0gdGhyb3dPbk1pc3NpbmdTZWNyZXRLZXkoKSxcbiAgICAgICAgU2Vzc2lvblRva2VuLFxuICAgICAgfSA9IHRocm93T25NaXNzaW5nQ3JlZGVudGlhbHMoKSxcbiAgICB9ID0gYXdhaXQgcGFyYW1ldGVycy5jbGllbnQuc2VuZChcbiAgICAgIG5ldyBHZXRDcmVkZW50aWFsc0ZvcklkZW50aXR5Q29tbWFuZCh7XG4gICAgICAgIEN1c3RvbVJvbGVBcm46IHBhcmFtZXRlcnMuY3VzdG9tUm9sZUFybixcbiAgICAgICAgSWRlbnRpdHlJZDogcGFyYW1ldGVycy5pZGVudGl0eUlkLFxuICAgICAgICBMb2dpbnM6IHBhcmFtZXRlcnMubG9naW5zID8gYXdhaXQgcmVzb2x2ZUxvZ2lucyhwYXJhbWV0ZXJzLmxvZ2lucykgOiB1bmRlZmluZWQsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWRlbnRpdHlJZDogcGFyYW1ldGVycy5pZGVudGl0eUlkLFxuICAgICAgYWNjZXNzS2V5SWQ6IEFjY2Vzc0tleUlkLFxuICAgICAgc2VjcmV0QWNjZXNzS2V5OiBTZWNyZXRLZXksXG4gICAgICBzZXNzaW9uVG9rZW46IFNlc3Npb25Ub2tlbixcbiAgICAgIGV4cGlyYXRpb246IEV4cGlyYXRpb24sXG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGcm9tQ29nbml0b0lkZW50aXR5UGFyYW1ldGVycyBleHRlbmRzIENvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnMge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgaWRlbnRpdHkgYWdhaW5zdCB3aGljaCBjcmVkZW50aWFscyB3aWxsIGJlXG4gICAqIGlzc3VlZC5cbiAgICovXG4gIGlkZW50aXR5SWQ6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gdGhyb3dPbk1pc3NpbmdBY2Nlc3NLZXlJZCgpOiBuZXZlciB7XG4gIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiUmVzcG9uc2UgZnJvbSBBbWF6b24gQ29nbml0byBjb250YWluZWQgbm8gYWNjZXNzIGtleSBJRFwiKTtcbn1cblxuZnVuY3Rpb24gdGhyb3dPbk1pc3NpbmdDcmVkZW50aWFscygpOiBuZXZlciB7XG4gIHRocm93IG5ldyBQcm92aWRlckVycm9yKFwiUmVzcG9uc2UgZnJvbSBBbWF6b24gQ29nbml0byBjb250YWluZWQgbm8gY3JlZGVudGlhbHNcIik7XG59XG5cbmZ1bmN0aW9uIHRocm93T25NaXNzaW5nU2VjcmV0S2V5KCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFByb3ZpZGVyRXJyb3IoXCJSZXNwb25zZSBmcm9tIEFtYXpvbiBDb2duaXRvIGNvbnRhaW5lZCBubyBzZWNyZXQga2V5XCIpO1xufVxuIl19","import { __extends } from \"tslib\";\nimport { GetIdInput, GetIdResponse } from \"../models/models_0\";\nimport { deserializeAws_json1_1GetIdCommand, serializeAws_json1_1GetIdCommand } from \"../protocols/Aws_json1_1\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Generates (or retrieves) a Cognito ID. Supplying multiple logins will create an\n * implicit linked account.

\n *

This is a public API. You do not need any credentials to call this API.

\n */\nvar GetIdCommand = /** @class */ (function (_super) {\n __extends(GetIdCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetIdCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n GetIdCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"CognitoIdentityClient\";\n var commandName = \"GetIdCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetIdInput.filterSensitiveLog,\n outputFilterSensitiveLog: GetIdResponse.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetIdCommand.prototype.serialize = function (input, context) {\n return serializeAws_json1_1GetIdCommand(input, context);\n };\n GetIdCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_json1_1GetIdCommand(output, context);\n };\n return GetIdCommand;\n}($Command));\nexport { GetIdCommand };\n//# sourceMappingURL=GetIdCommand.js.map","var STORE_NAME = \"IdentityIds\";\nvar IndexedDbStorage = /** @class */ (function () {\n function IndexedDbStorage(dbName) {\n if (dbName === void 0) { dbName = \"aws:cognito-identity-ids\"; }\n this.dbName = dbName;\n }\n IndexedDbStorage.prototype.getItem = function (key) {\n return this.withObjectStore(\"readonly\", function (store) {\n var req = store.get(key);\n return new Promise(function (resolve) {\n req.onerror = function () { return resolve(null); };\n req.onsuccess = function () { return resolve(req.result ? req.result.value : null); };\n });\n }).catch(function () { return null; });\n };\n IndexedDbStorage.prototype.removeItem = function (key) {\n return this.withObjectStore(\"readwrite\", function (store) {\n var req = store.delete(key);\n return new Promise(function (resolve, reject) {\n req.onerror = function () { return reject(req.error); };\n req.onsuccess = function () { return resolve(); };\n });\n });\n };\n IndexedDbStorage.prototype.setItem = function (id, value) {\n return this.withObjectStore(\"readwrite\", function (store) {\n var req = store.put({ id: id, value: value });\n return new Promise(function (resolve, reject) {\n req.onerror = function () { return reject(req.error); };\n req.onsuccess = function () { return resolve(); };\n });\n });\n };\n IndexedDbStorage.prototype.getDb = function () {\n var openDbRequest = self.indexedDB.open(this.dbName, 1);\n return new Promise(function (resolve, reject) {\n openDbRequest.onsuccess = function () {\n resolve(openDbRequest.result);\n };\n openDbRequest.onerror = function () {\n reject(openDbRequest.error);\n };\n openDbRequest.onblocked = function () {\n reject(new Error(\"Unable to access DB\"));\n };\n openDbRequest.onupgradeneeded = function () {\n var db = openDbRequest.result;\n db.onerror = function () {\n reject(new Error(\"Failed to create object store\"));\n };\n db.createObjectStore(STORE_NAME, { keyPath: \"id\" });\n };\n });\n };\n IndexedDbStorage.prototype.withObjectStore = function (mode, action) {\n return this.getDb().then(function (db) {\n var tx = db.transaction(STORE_NAME, mode);\n tx.oncomplete = function () { return db.close(); };\n return new Promise(function (resolve, reject) {\n tx.onerror = function () { return reject(tx.error); };\n resolve(action(tx.objectStore(STORE_NAME)));\n }).catch(function (err) {\n db.close();\n throw err;\n });\n });\n };\n return IndexedDbStorage;\n}());\nexport { IndexedDbStorage };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5kZXhlZERiU3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9JbmRleGVkRGJTdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLElBQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQztBQUVqQztJQUNFLDBCQUE2QixNQUEyQztRQUEzQyx1QkFBQSxFQUFBLG1DQUEyQztRQUEzQyxXQUFNLEdBQU4sTUFBTSxDQUFxQztJQUFHLENBQUM7SUFFNUUsa0NBQU8sR0FBUCxVQUFRLEdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxVQUFDLEtBQUs7WUFDNUMsSUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUUzQixPQUFPLElBQUksT0FBTyxDQUFnQixVQUFDLE9BQU87Z0JBQ3hDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBYixDQUFhLENBQUM7Z0JBRWxDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsY0FBTSxPQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQTdDLENBQTZDLENBQUM7WUFDdEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBTSxPQUFBLElBQUksRUFBSixDQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQscUNBQVUsR0FBVixVQUFXLEdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxVQUFDLEtBQUs7WUFDN0MsSUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUU5QixPQUFPLElBQUksT0FBTyxDQUFPLFVBQUMsT0FBTyxFQUFFLE1B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S0FBSyxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxHQUFHLENBQUM7WUFDWixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNILHVCQUFDO0FBQUQsQ0FBQyxBQWhGRCxJQWdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tIFwiLi9TdG9yYWdlXCI7XG5cbmNvbnN0IFNUT1JFX05BTUUgPSBcIklkZW50aXR5SWRzXCI7XG5cbmV4cG9ydCBjbGFzcyBJbmRleGVkRGJTdG9yYWdlIGltcGxlbWVudHMgU3RvcmFnZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGJOYW1lOiBzdHJpbmcgPSBcImF3czpjb2duaXRvLWlkZW50aXR5LWlkc1wiKSB7fVxuXG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkb25seVwiLCAoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IHJlcSA9IHN0b3JlLmdldChrZXkpO1xuXG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nIHwgbnVsbD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgcmVxLm9uZXJyb3IgPSAoKSA9PiByZXNvbHZlKG51bGwpO1xuXG4gICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSAoKSA9PiByZXNvbHZlKHJlcS5yZXN1bHQgPyByZXEucmVzdWx0LnZhbHVlIDogbnVsbCk7XG4gICAgICB9KTtcbiAgICB9KS5jYXRjaCgoKSA9PiBudWxsKTtcbiAgfVxuXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkd3JpdGVcIiwgKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCByZXEgPSBzdG9yZS5kZWxldGUoa2V5KTtcblxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgcmVxLm9uZXJyb3IgPSAoKSA9PiByZWplY3QocmVxLmVycm9yKTtcblxuICAgICAgICByZXEub25zdWNjZXNzID0gKCkgPT4gcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRJdGVtKGlkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy53aXRoT2JqZWN0U3RvcmUoXCJyZWFkd3JpdGVcIiwgKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCByZXEgPSBzdG9yZS5wdXQoeyBpZCwgdmFsdWUgfSk7XG5cbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHJlcS5vbmVycm9yID0gKCkgPT4gcmVqZWN0KHJlcS5lcnJvcik7XG5cbiAgICAgICAgcmVxLm9uc3VjY2VzcyA9ICgpID0+IHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYigpOiBQcm9taXNlPElEQkRhdGFiYXNlPiB7XG4gICAgY29uc3Qgb3BlbkRiUmVxdWVzdCA9IHNlbGYuaW5kZXhlZERCLm9wZW4odGhpcy5kYk5hbWUsIDEpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZShvcGVuRGJSZXF1ZXN0LnJlc3VsdCk7XG4gICAgICB9O1xuXG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHJlamVjdChvcGVuRGJSZXF1ZXN0LmVycm9yKTtcbiAgICAgIH07XG5cbiAgICAgIG9wZW5EYlJlcXVlc3Qub25ibG9ja2VkID0gKCkgPT4ge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKFwiVW5hYmxlIHRvIGFjY2VzcyBEQlwiKSk7XG4gICAgICB9O1xuXG4gICAgICBvcGVuRGJSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgZGIgPSBvcGVuRGJSZXF1ZXN0LnJlc3VsdDtcbiAgICAgICAgZGIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKFwiRmFpbGVkIHRvIGNyZWF0ZSBvYmplY3Qgc3RvcmVcIikpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKFNUT1JFX05BTUUsIHsga2V5UGF0aDogXCJpZFwiIH0pO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgd2l0aE9iamVjdFN0b3JlPFI+KG1vZGU6IElEQlRyYW5zYWN0aW9uTW9kZSwgYWN0aW9uOiAoc3RvcmU6IElEQk9iamVjdFN0b3JlKSA9PiBQcm9taXNlPFI+KTogUHJvbWlzZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGIoKS50aGVuKChkYikgPT4ge1xuICAgICAgY29uc3QgdHggPSBkYi50cmFuc2FjdGlvbihTVE9SRV9OQU1FLCBtb2RlKTtcbiAgICAgIHR4Lm9uY29tcGxldGUgPSAoKSA9PiBkYi5jbG9zZSgpO1xuXG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8Uj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0eC5vbmVycm9yID0gKCkgPT4gcmVqZWN0KHR4LmVycm9yKTtcblxuICAgICAgICByZXNvbHZlKGFjdGlvbih0eC5vYmplY3RTdG9yZShTVE9SRV9OQU1FKSkpO1xuICAgICAgfSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBkYi5jbG9zZSgpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19","var InMemoryStorage = /** @class */ (function () {\n function InMemoryStorage(store) {\n if (store === void 0) { store = {}; }\n this.store = store;\n }\n InMemoryStorage.prototype.getItem = function (key) {\n if (key in this.store) {\n return this.store[key];\n }\n return null;\n };\n InMemoryStorage.prototype.removeItem = function (key) {\n delete this.store[key];\n };\n InMemoryStorage.prototype.setItem = function (key, value) {\n this.store[key] = value;\n };\n return InMemoryStorage;\n}());\nexport { InMemoryStorage };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5NZW1vcnlTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0luTWVtb3J5U3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtJQUNFLHlCQUFvQixLQUFxQztRQUFyQyxzQkFBQSxFQUFBLFVBQXFDO1FBQXJDLFVBQUssR0FBTCxLQUFLLENBQWdDO0lBQUcsQ0FBQztJQUU3RCxpQ0FBTyxHQUFQLFVBQVEsR0FBVztRQUNqQixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG9DQUFVLEdBQVYsVUFBVyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsaUNBQU8sR0FBUCxVQUFRLEdBQVcsRUFBRSxLQUFhO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFsQkQsSUFrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSBcIi4vU3RvcmFnZVwiO1xuXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlTdG9yYWdlIGltcGxlbWVudHMgU3RvcmFnZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fSkge31cblxuICBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKGtleSBpbiB0aGlzLnN0b3JlKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yZVtrZXldO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGRlbGV0ZSB0aGlzLnN0b3JlW2tleV07XG4gIH1cblxuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZVtrZXldID0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==","import { IndexedDbStorage } from \"./IndexedDbStorage\";\nimport { InMemoryStorage } from \"./InMemoryStorage\";\nvar inMemoryStorage = new InMemoryStorage();\nexport function localStorage() {\n if (typeof self === \"object\" && self.indexedDB) {\n return new IndexedDbStorage();\n }\n if (typeof window === \"object\" && window.localStorage) {\n return window.localStorage;\n }\n return inMemoryStorage;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvY2FsU3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsSUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztBQUU5QyxNQUFNLFVBQVUsWUFBWTtJQUMxQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQzlDLE9BQU8sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0tBQy9CO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtRQUNyRCxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUM7S0FDNUI7SUFFRCxPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5kZXhlZERiU3RvcmFnZSB9IGZyb20gXCIuL0luZGV4ZWREYlN0b3JhZ2VcIjtcbmltcG9ydCB7IEluTWVtb3J5U3RvcmFnZSB9IGZyb20gXCIuL0luTWVtb3J5U3RvcmFnZVwiO1xuaW1wb3J0IHsgU3RvcmFnZSB9IGZyb20gXCIuL1N0b3JhZ2VcIjtcblxuY29uc3QgaW5NZW1vcnlTdG9yYWdlID0gbmV3IEluTWVtb3J5U3RvcmFnZSgpO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxTdG9yYWdlKCk6IFN0b3JhZ2Uge1xuICBpZiAodHlwZW9mIHNlbGYgPT09IFwib2JqZWN0XCIgJiYgc2VsZi5pbmRleGVkREIpIHtcbiAgICByZXR1cm4gbmV3IEluZGV4ZWREYlN0b3JhZ2UoKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UpIHtcbiAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgfVxuXG4gIHJldHVybiBpbk1lbW9yeVN0b3JhZ2U7XG59XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { GetIdCommand } from \"@aws-sdk/client-cognito-identity\";\nimport { ProviderError } from \"@aws-sdk/property-provider\";\nimport { fromCognitoIdentity } from \"./fromCognitoIdentity\";\nimport { localStorage } from \"./localStorage\";\nimport { resolveLogins } from \"./resolveLogins\";\n/**\n * Retrieves or generates a unique identifier using Amazon Cognito's `GetId`\n * operation, then generates temporary AWS credentials using Amazon Cognito's\n * `GetCredentialsForIdentity` operation.\n *\n * Results from `GetId` are cached internally, but results from\n * `GetCredentialsForIdentity` are not.\n */\nexport function fromCognitoIdentityPool(_a) {\n var _this = this;\n var accountId = _a.accountId, _b = _a.cache, cache = _b === void 0 ? localStorage() : _b, client = _a.client, customRoleArn = _a.customRoleArn, identityPoolId = _a.identityPoolId, logins = _a.logins, _c = _a.userIdentifier, userIdentifier = _c === void 0 ? !logins || Object.keys(logins).length === 0 ? \"ANONYMOUS\" : undefined : _c;\n var cacheKey = userIdentifier ? \"aws:cognito-identity-credentials:\" + identityPoolId + \":\" + userIdentifier : undefined;\n var provider = function () { return __awaiter(_this, void 0, void 0, function () {\n var identityId, _a, _b, IdentityId, _c, _d, _e, _f;\n var _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n _a = cacheKey;\n if (!_a) return [3 /*break*/, 2];\n return [4 /*yield*/, cache.getItem(cacheKey)];\n case 1:\n _a = (_h.sent());\n _h.label = 2;\n case 2:\n identityId = _a;\n if (!!identityId) return [3 /*break*/, 7];\n _d = (_c = client).send;\n _e = GetIdCommand.bind;\n _g = {\n AccountId: accountId,\n IdentityPoolId: identityPoolId\n };\n if (!logins) return [3 /*break*/, 4];\n return [4 /*yield*/, resolveLogins(logins)];\n case 3:\n _f = _h.sent();\n return [3 /*break*/, 5];\n case 4:\n _f = undefined;\n _h.label = 5;\n case 5: return [4 /*yield*/, _d.apply(_c, [new (_e.apply(GetIdCommand, [void 0, (_g.Logins = _f,\n _g)]))()])];\n case 6:\n _b = (_h.sent()).IdentityId, IdentityId = _b === void 0 ? throwOnMissingId() : _b;\n identityId = IdentityId;\n if (cacheKey) {\n Promise.resolve(cache.setItem(cacheKey, identityId)).catch(function () { });\n }\n _h.label = 7;\n case 7:\n provider = fromCognitoIdentity({\n client: client,\n customRoleArn: customRoleArn,\n logins: logins,\n identityId: identityId,\n });\n return [2 /*return*/, provider()];\n }\n });\n }); };\n return function () {\n return provider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (cacheKey) {\n Promise.resolve(cache.removeItem(cacheKey)).catch(function () { });\n }\n throw err;\n });\n }); });\n };\n}\nfunction throwOnMissingId() {\n throw new ProviderError(\"Response from Amazon Cognito contained no identity ID\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUNvZ25pdG9JZGVudGl0eVBvb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnJvbUNvZ25pdG9JZGVudGl0eVBvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdoRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEVBUUo7SUFScEMsaUJBNkNDO1FBNUNDLFNBQVMsZUFBQSxFQUNULGFBQXNCLEVBQXRCLEtBQUssbUJBQUcsWUFBWSxFQUFFLEtBQUEsRUFDdEIsTUFBTSxZQUFBLEVBQ04sYUFBYSxtQkFBQSxFQUNiLGNBQWMsb0JBQUEsRUFDZCxNQUFNLFlBQUEsRUFDTixzQkFBc0YsRUFBdEYsY0FBYyxtQkFBRyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFBO0lBRXRGLElBQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsc0NBQW9DLGNBQWMsU0FBSSxjQUFnQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFckgsSUFBSSxRQUFRLEdBQXVCOzs7Ozs7b0JBQ2hCLEtBQUEsUUFBUSxDQUFBOzZCQUFSLHdCQUFRO29CQUFLLHFCQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUE7O29CQUE5QixLQUFBLENBQUMsU0FBNkIsQ0FBQyxDQUFBOzs7b0JBQXhELFVBQVUsS0FBOEM7eUJBQ3hELENBQUMsVUFBVSxFQUFYLHdCQUFXO29CQUNxQyxLQUFBLENBQUEsS0FBQSxNQUFNLENBQUEsQ0FBQyxJQUFJLENBQUE7eUJBQ3ZELFlBQVk7O3dCQUNkLFNBQVMsRUFBRSxTQUFTO3dCQUNwQixjQUFjLEVBQUUsY0FBYzs7eUJBQ3RCLE1BQU0sRUFBTix3QkFBTTtvQkFBRyxxQkFBTSxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUE7O29CQUEzQixLQUFBLFNBQTJCLENBQUE7OztvQkFBRyxLQUFBLFNBQVMsQ0FBQTs7d0JBSmhCLHFCQUFNLGNBQ2hELGNBQUksWUFBWSxZQUdkLFNBQU0sS0FBa0Q7d0NBQ3hELEVBQ0gsRUFBQTs7b0JBTk8sS0FBb0MsQ0FBQSxTQU0zQyxDQUFBLFdBTnNDLEVBQS9CLFVBQVUsbUJBQUcsZ0JBQWdCLEVBQUUsS0FBQTtvQkFPdkMsVUFBVSxHQUFHLFVBQVUsQ0FBQztvQkFDeEIsSUFBSSxRQUFRLEVBQUU7d0JBQ1osT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO3FCQUN0RTs7O29CQUdILFFBQVEsR0FBRyxtQkFBbUIsQ0FBQzt3QkFDN0IsTUFBTSxRQUFBO3dCQUNOLGFBQWEsZUFBQTt3QkFDYixNQUFNLFFBQUE7d0JBQ04sVUFBVSxZQUFBO3FCQUNYLENBQUMsQ0FBQztvQkFFSCxzQkFBTyxRQUFRLEVBQUUsRUFBQzs7O1NBQ25CLENBQUM7SUFFRixPQUFPO1FBQ0wsT0FBQSxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBTyxHQUFHOztnQkFDekIsSUFBSSxRQUFRLEVBQUU7b0JBQ1osT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQU8sQ0FBQyxDQUFDLENBQUM7aUJBQzdEO2dCQUVELE1BQU0sR0FBRyxDQUFDOzthQUNYLENBQUM7SUFORixDQU1FLENBQUM7QUFDUCxDQUFDO0FBc0NELFNBQVMsZ0JBQWdCO0lBQ3ZCLE1BQU0sSUFBSSxhQUFhLENBQUMsdURBQXVELENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0SWRDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1jb2duaXRvLWlkZW50aXR5XCI7XG5pbXBvcnQgeyBQcm92aWRlckVycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3BlcnR5LXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBDcmVkZW50aWFsUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB9IGZyb20gXCIuL0NvZ25pdG9Qcm92aWRlclBhcmFtZXRlcnNcIjtcbmltcG9ydCB7IGZyb21Db2duaXRvSWRlbnRpdHkgfSBmcm9tIFwiLi9mcm9tQ29nbml0b0lkZW50aXR5XCI7XG5pbXBvcnQgeyBsb2NhbFN0b3JhZ2UgfSBmcm9tIFwiLi9sb2NhbFN0b3JhZ2VcIjtcbmltcG9ydCB7IHJlc29sdmVMb2dpbnMgfSBmcm9tIFwiLi9yZXNvbHZlTG9naW5zXCI7XG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSBcIi4vU3RvcmFnZVwiO1xuXG4vKipcbiAqIFJldHJpZXZlcyBvciBnZW5lcmF0ZXMgYSB1bmlxdWUgaWRlbnRpZmllciB1c2luZyBBbWF6b24gQ29nbml0bydzIGBHZXRJZGBcbiAqIG9wZXJhdGlvbiwgdGhlbiBnZW5lcmF0ZXMgdGVtcG9yYXJ5IEFXUyBjcmVkZW50aWFscyB1c2luZyBBbWF6b24gQ29nbml0bydzXG4gKiBgR2V0Q3JlZGVudGlhbHNGb3JJZGVudGl0eWAgb3BlcmF0aW9uLlxuICpcbiAqIFJlc3VsdHMgZnJvbSBgR2V0SWRgIGFyZSBjYWNoZWQgaW50ZXJuYWxseSwgYnV0IHJlc3VsdHMgZnJvbVxuICogYEdldENyZWRlbnRpYWxzRm9ySWRlbnRpdHlgIGFyZSBub3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tQ29nbml0b0lkZW50aXR5UG9vbCh7XG4gIGFjY291bnRJZCxcbiAgY2FjaGUgPSBsb2NhbFN0b3JhZ2UoKSxcbiAgY2xpZW50LFxuICBjdXN0b21Sb2xlQXJuLFxuICBpZGVudGl0eVBvb2xJZCxcbiAgbG9naW5zLFxuICB1c2VySWRlbnRpZmllciA9ICFsb2dpbnMgfHwgT2JqZWN0LmtleXMobG9naW5zKS5sZW5ndGggPT09IDAgPyBcIkFOT05ZTU9VU1wiIDogdW5kZWZpbmVkLFxufTogRnJvbUNvZ25pdG9JZGVudGl0eVBvb2xQYXJhbWV0ZXJzKTogQ3JlZGVudGlhbFByb3ZpZGVyIHtcbiAgY29uc3QgY2FjaGVLZXkgPSB1c2VySWRlbnRpZmllciA/IGBhd3M6Y29nbml0by1pZGVudGl0eS1jcmVkZW50aWFsczoke2lkZW50aXR5UG9vbElkfToke3VzZXJJZGVudGlmaWVyfWAgOiB1bmRlZmluZWQ7XG5cbiAgbGV0IHByb3ZpZGVyOiBDcmVkZW50aWFsUHJvdmlkZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGlkZW50aXR5SWQgPSBjYWNoZUtleSAmJiAoYXdhaXQgY2FjaGUuZ2V0SXRlbShjYWNoZUtleSkpO1xuICAgIGlmICghaWRlbnRpdHlJZCkge1xuICAgICAgY29uc3QgeyBJZGVudGl0eUlkID0gdGhyb3dPbk1pc3NpbmdJZCgpIH0gPSBhd2FpdCBjbGllbnQuc2VuZChcbiAgICAgICAgbmV3IEdldElkQ29tbWFuZCh7XG4gICAgICAgICAgQWNjb3VudElkOiBhY2NvdW50SWQsXG4gICAgICAgICAgSWRlbnRpdHlQb29sSWQ6IGlkZW50aXR5UG9vbElkLFxuICAgICAgICAgIExvZ2luczogbG9naW5zID8gYXdhaXQgcmVzb2x2ZUxvZ2lucyhsb2dpbnMpIDogdW5kZWZpbmVkLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIGlkZW50aXR5SWQgPSBJZGVudGl0eUlkO1xuICAgICAgaWYgKGNhY2hlS2V5KSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShjYWNoZS5zZXRJdGVtKGNhY2hlS2V5LCBpZGVudGl0eUlkKSkuY2F0Y2goKCkgPT4ge30pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByb3ZpZGVyID0gZnJvbUNvZ25pdG9JZGVudGl0eSh7XG4gICAgICBjbGllbnQsXG4gICAgICBjdXN0b21Sb2xlQXJuLFxuICAgICAgbG9naW5zLFxuICAgICAgaWRlbnRpdHlJZCxcbiAgICB9KTtcblxuICAgIHJldHVybiBwcm92aWRlcigpO1xuICB9O1xuXG4gIHJldHVybiAoKSA9PlxuICAgIHByb3ZpZGVyKCkuY2F0Y2goYXN5bmMgKGVycikgPT4ge1xuICAgICAgaWYgKGNhY2hlS2V5KSB7XG4gICAgICAgIFByb21pc2UucmVzb2x2ZShjYWNoZS5yZW1vdmVJdGVtKGNhY2hlS2V5KSkuY2F0Y2goKCkgPT4ge30pO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBlcnI7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbUNvZ25pdG9JZGVudGl0eVBvb2xQYXJhbWV0ZXJzIGV4dGVuZHMgQ29nbml0b1Byb3ZpZGVyUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBBIHN0YW5kYXJkIEFXUyBhY2NvdW50IElEICg5KyBkaWdpdHMpLlxuICAgKi9cbiAgYWNjb3VudElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNhY2hlIGluIHdoaWNoIHRvIHN0b3JlIHJlc29sdmVkIENvZ25pdG8gSWRlbnRpdHlJZHMuIElmIG5vdCBzdXBwbGllZCxcbiAgICogdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXIgd2lsbCBhdHRlbXB0IHRvIHN0b3JlIElkZW50aXR5SWRzIGluIG9uZSBvZiB0aGVcbiAgICogZm9sbG93aW5nIChpbiBvcmRlciBvZiBwcmVmZXJlbmNlKTpcbiAgICogICAxLiBJbmRleGVkREJcbiAgICogICAyLiBMb2NhbFN0b3JhZ2VcbiAgICogICAzLiBBbiBpbi1tZW1vcnkgY2FjaGUgb2JqZWN0IHRoYXQgd2lsbCBub3QgcGVyc2lzdCBiZXR3ZWVuIHBhZ2VzLlxuICAgKlxuICAgKiBJbmRleGVkREIgaXMgcHJlZmVycmVkIHRvIG1heGltaXplIGRhdGEgc2hhcmluZyBiZXR3ZWVuIHRvcC1sZXZlbFxuICAgKiBicm93c2luZyBjb250ZXh0cyBhbmQgd2ViIHdvcmtlcnMuXG4gICAqXG4gICAqIFRoZSBwcm92aWRlciB3aWxsIG5vdCBjYWNoZSBJZGVudGl0eUlkcyBvZiBhdXRoZW50aWNhdGVkIHVzZXJzIHVubGVzcyBhXG4gICAqIHNlcGFyYXRlIGB1c2VySWRlbnRpdGlmZXJgIHBhcmFtZXRlciBpcyBzdXBwbGllZC5cbiAgICovXG4gIGNhY2hlPzogU3RvcmFnZTtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgaWRlbnRpdHkgcG9vbCBmcm9tIHdoaWNoIGFuIGlkZW50aXR5IHNob3VsZFxuICAgKiBiZSByZXRyaWV2ZWQgb3IgZ2VuZXJhdGVkLlxuICAgKi9cbiAgaWRlbnRpdHlQb29sSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHVzZXIuIFRoaXMgaXMgZGlzdGluY3QgZnJvbSBhIENvZ25pdG9cbiAgICogSWRlbnRpdHlJZCBhbmQgc2hvdWxkIGluc3RlYWQgYmUgYW4gaWRlbnRpZmllciBtZWFuaW5nZnVsIHRvIHlvdXJcbiAgICogYXBwbGljYXRpb24uIFVzZWQgdG8gY2FjaGUgQ29nbml0byBJZGVudGl0eUlkcyBvbiBhIHBlci11c2VyIGJhc2lzLlxuICAgKi9cbiAgdXNlcklkZW50aWZpZXI/OiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHRocm93T25NaXNzaW5nSWQoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgUHJvdmlkZXJFcnJvcihcIlJlc3BvbnNlIGZyb20gQW1hem9uIENvZ25pdG8gY29udGFpbmVkIG5vIGlkZW50aXR5IElEXCIpO1xufVxuIl19","import { __assign } from \"tslib\";\n// Partition default templates\nvar AWS_TEMPLATE = \"cognito-identity.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"cognito-identity.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"cognito-identity.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"cognito-identity.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"cognito-identity.{region}.amazonaws.com\";\n// Partition regions\nvar AWS_REGIONS = new Set([\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n]);\nvar AWS_CN_REGIONS = new Set([\"cn-north-1\", \"cn-northwest-1\"]);\nvar AWS_ISO_REGIONS = new Set([\"us-iso-east-1\"]);\nvar AWS_ISO_B_REGIONS = new Set([\"us-isob-east-1\"]);\nvar AWS_US_GOV_REGIONS = new Set([\"us-gov-east-1\", \"us-gov-west-1\"]);\nexport var defaultRegionInfoProvider = function (region, options) {\n var regionInfo = undefined;\n switch (region) {\n // First, try to match exact region names.\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"cognito-identity.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"cognito-identity.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-north-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"cognito-identity.eu-west-3.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"fips-us-east-1\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-east-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"fips-us-east-2\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-east-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-2\",\n };\n break;\n case \"fips-us-gov-west-1\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\",\n };\n break;\n case \"fips-us-west-2\":\n regionInfo = {\n hostname: \"cognito-identity-fips.us-west-2.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-west-2\",\n };\n break;\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.sa-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-2\":\n regionInfo = {\n hostname: \"cognito-identity.us-east-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-west-1\":\n regionInfo = {\n hostname: \"cognito-identity.us-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-west-2\":\n regionInfo = {\n hostname: \"cognito-identity.us-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n // Next, try to match partition endpoints.\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n if (AWS_CN_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_CN_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-cn\",\n };\n }\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\",\n };\n }\n if (AWS_ISO_B_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_B_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso-b\",\n };\n }\n if (AWS_US_GOV_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_US_GOV_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-us-gov\",\n };\n }\n // Finally, assume it's an AWS partition endpoint.\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n }\n return Promise.resolve(__assign({ signingService: \"cognito-identity\" }, regionInfo));\n};\n//# sourceMappingURL=endpoints.js.map","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\nexport var ClientSharedValues = {\n apiVersion: \"2014-06-30\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"Cognito Identity\",\n urlParser: parseUrl,\n};\n//# sourceMappingURL=runtimeConfig.shared.js.map","import { __assign } from \"tslib\";\nimport packageInfo from \"./package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { FetchHttpHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { DEFAULT_MAX_ATTEMPTS } from \"@aws-sdk/middleware-retry\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64-browser\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { ClientSharedValues } from \"./runtimeConfig.shared\";\n/**\n * @internal\n */\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), { runtime: \"browser\", base64Decoder: fromBase64, base64Encoder: toBase64, bodyLengthChecker: calculateBodyLength, credentialDefaultProvider: function (_) { return function () { return Promise.reject(new Error(\"Credential is missing\")); }; }, defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version,\n }), maxAttempts: DEFAULT_MAX_ATTEMPTS, region: invalidProvider(\"Region is missing\"), requestHandler: new FetchHttpHandler(), sha256: Sha256, streamCollector: streamCollector, utf8Decoder: fromUtf8, utf8Encoder: toUtf8 });\n//# sourceMappingURL=runtimeConfig.browser.js.map","import { __assign, __extends } from \"tslib\";\nimport { ClientDefaultValues as __ClientDefaultValues } from \"./runtimeConfig\";\nimport { resolveEndpointsConfig, resolveRegionConfig, } from \"@aws-sdk/config-resolver\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { resolveAwsAuthConfig } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\n/**\n * Amazon Cognito Federated Identities\n *

Amazon Cognito Federated Identities is a web service that delivers scoped temporary\n * credentials to mobile devices and other untrusted environments. It uniquely identifies a\n * device and supplies the user with a consistent identity over the lifetime of an\n * application.

\n *

Using Amazon Cognito Federated Identities, you can enable authentication with one or\n * more third-party identity providers (Facebook, Google, or Login with Amazon) or an Amazon\n * Cognito user pool, and you can also choose to support unauthenticated access from your app.\n * Cognito delivers a unique identifier for each user and acts as an OpenID token provider\n * trusted by AWS Security Token Service (STS) to access temporary, limited-privilege AWS\n * credentials.

\n *

For a description of the authentication flow from the Amazon Cognito Developer Guide\n * see Authentication Flow.

\n *

For more information see Amazon Cognito Federated Identities.

\n */\nvar CognitoIdentityClient = /** @class */ (function (_super) {\n __extends(CognitoIdentityClient, _super);\n function CognitoIdentityClient(configuration) {\n var _this = this;\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n var _config_1 = resolveRegionConfig(_config_0);\n var _config_2 = resolveEndpointsConfig(_config_1);\n var _config_3 = resolveAwsAuthConfig(_config_2);\n var _config_4 = resolveRetryConfig(_config_3);\n var _config_5 = resolveHostHeaderConfig(_config_4);\n var _config_6 = resolveUserAgentConfig(_config_5);\n _this = _super.call(this, _config_6) || this;\n _this.config = _config_6;\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n CognitoIdentityClient.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CognitoIdentityClient;\n}(__Client));\nexport { CognitoIdentityClient };\n//# sourceMappingURL=CognitoIdentityClient.js.map","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { CognitoIdentityClient, } from '@aws-sdk/client-cognito-identity';\nimport { getAmplifyUserAgent } from '../Platform';\n/**\n * Returns a CognitoIdentityClient with middleware\n * @param {CognitoIdentityClientConfig} config\n * @return {CognitoIdentityClient}\n */\nexport function createCognitoIdentityClient(config) {\n var client = new CognitoIdentityClient({\n region: config.region,\n customUserAgent: getAmplifyUserAgent(),\n });\n client.middlewareStack.add(function (next, _) { return function (args) {\n return next(middlewareArgs(args));\n }; }, {\n step: 'build',\n name: 'cacheControlMiddleWare',\n });\n return client;\n}\nexport function middlewareArgs(args) {\n return __assign(__assign({}, args), { request: __assign(__assign({}, args.request), { headers: __assign(__assign({}, args.request.headers), { 'cache-control': 'no-store' }) }) });\n}\n//# sourceMappingURL=CognitoIdentityClient.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { ConsoleLogger as Logger } from './Logger';\nimport { StorageHelper } from './StorageHelper';\nimport { makeQuerablePromise } from './JS';\nimport { FacebookOAuth, GoogleOAuth } from './OAuthHelper';\nimport { jitteredExponentialRetry } from './Util';\nimport { Amplify } from './Amplify';\nimport { fromCognitoIdentity, fromCognitoIdentityPool, } from '@aws-sdk/credential-provider-cognito-identity';\nimport { GetIdCommand, GetCredentialsForIdentityCommand, } from '@aws-sdk/client-cognito-identity';\nimport { createCognitoIdentityClient } from './Util/CognitoIdentityClient';\nvar logger = new Logger('Credentials');\nvar CREDENTIALS_TTL = 50 * 60 * 1000; // 50 min, can be modified on config if required in the future\nvar COGNITO_IDENTITY_KEY_PREFIX = 'CognitoIdentityId-';\nvar CredentialsClass = /** @class */ (function () {\n function CredentialsClass(config) {\n this._gettingCredPromise = null;\n this._refreshHandlers = {};\n // Allow `Auth` to be injected for SSR, but Auth isn't a required dependency for Credentials\n this.Auth = undefined;\n this.configure(config);\n this._refreshHandlers['google'] = GoogleOAuth.refreshGoogleToken;\n this._refreshHandlers['facebook'] = FacebookOAuth.refreshFacebookToken;\n }\n CredentialsClass.prototype.getModuleName = function () {\n return 'Credentials';\n };\n CredentialsClass.prototype.getCredSource = function () {\n return this._credentials_source;\n };\n CredentialsClass.prototype.configure = function (config) {\n if (!config)\n return this._config || {};\n this._config = Object.assign({}, this._config, config);\n var refreshHandlers = this._config.refreshHandlers;\n // If the developer has provided an object of refresh handlers,\n // then we can merge the provided handlers with the current handlers.\n if (refreshHandlers) {\n this._refreshHandlers = __assign(__assign({}, this._refreshHandlers), refreshHandlers);\n }\n this._storage = this._config.storage;\n if (!this._storage) {\n this._storage = new StorageHelper().getStorage();\n }\n this._storageSync = Promise.resolve();\n if (typeof this._storage['sync'] === 'function') {\n this._storageSync = this._storage['sync']();\n }\n return this._config;\n };\n CredentialsClass.prototype.get = function () {\n logger.debug('getting credentials');\n return this._pickupCredentials();\n };\n // currently we only store the guest identity in local storage\n CredentialsClass.prototype._getCognitoIdentityIdStorageKey = function (identityPoolId) {\n return \"\" + COGNITO_IDENTITY_KEY_PREFIX + identityPoolId;\n };\n CredentialsClass.prototype._pickupCredentials = function () {\n logger.debug('picking up credentials');\n if (!this._gettingCredPromise || !this._gettingCredPromise.isPending()) {\n logger.debug('getting new cred promise');\n this._gettingCredPromise = makeQuerablePromise(this._keepAlive());\n }\n else {\n logger.debug('getting old cred promise');\n }\n return this._gettingCredPromise;\n };\n CredentialsClass.prototype._keepAlive = function () {\n return __awaiter(this, void 0, void 0, function () {\n var cred, _a, Auth, user_1, session, refreshToken_1, refreshRequest, err_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger.debug('checking if credentials exists and not expired');\n cred = this._credentials;\n if (cred && !this._isExpired(cred) && !this._isPastTTL()) {\n logger.debug('credentials not changed and not expired, directly return');\n return [2 /*return*/, Promise.resolve(cred)];\n }\n logger.debug('need to get a new credential or refresh the existing one');\n _a = this.Auth, Auth = _a === void 0 ? Amplify.Auth : _a;\n if (!Auth || typeof Auth.currentUserCredentials !== 'function') {\n return [2 /*return*/, Promise.reject('No Auth module registered in Amplify')];\n }\n if (!(!this._isExpired(cred) && this._isPastTTL())) return [3 /*break*/, 6];\n logger.debug('ttl has passed but token is not yet expired');\n _b.label = 1;\n case 1:\n _b.trys.push([1, 5, , 6]);\n return [4 /*yield*/, Auth.currentUserPoolUser()];\n case 2:\n user_1 = _b.sent();\n return [4 /*yield*/, Auth.currentSession()];\n case 3:\n session = _b.sent();\n refreshToken_1 = session.refreshToken;\n refreshRequest = new Promise(function (res, rej) {\n user_1.refreshSession(refreshToken_1, function (err, data) {\n return err ? rej(err) : res(data);\n });\n });\n return [4 /*yield*/, refreshRequest];\n case 4:\n _b.sent(); // note that rejections will be caught and handled in the catch block.\n return [3 /*break*/, 6];\n case 5:\n err_1 = _b.sent();\n // should not throw because user might just be on guest access or is authenticated through federation\n logger.debug('Error attempting to refreshing the session', err_1);\n return [3 /*break*/, 6];\n case 6: return [2 /*return*/, Auth.currentUserCredentials()];\n }\n });\n });\n };\n CredentialsClass.prototype.refreshFederatedToken = function (federatedInfo) {\n logger.debug('Getting federated credentials');\n var provider = federatedInfo.provider, user = federatedInfo.user, token = federatedInfo.token, identity_id = federatedInfo.identity_id;\n var expires_at = federatedInfo.expires_at;\n // Make sure expires_at is in millis\n expires_at =\n new Date(expires_at).getFullYear() === 1970\n ? expires_at * 1000\n : expires_at;\n var that = this;\n logger.debug('checking if federated jwt token expired');\n if (expires_at > new Date().getTime()) {\n // if not expired\n logger.debug('token not expired');\n return this._setCredentialsFromFederation({\n provider: provider,\n token: token,\n user: user,\n identity_id: identity_id,\n expires_at: expires_at,\n });\n }\n else {\n // if refresh handler exists\n if (that._refreshHandlers[provider] &&\n typeof that._refreshHandlers[provider] === 'function') {\n logger.debug('getting refreshed jwt token from federation provider');\n return this._providerRefreshWithRetry({\n refreshHandler: that._refreshHandlers[provider],\n provider: provider,\n user: user,\n });\n }\n else {\n logger.debug('no refresh handler for provider:', provider);\n this.clear();\n return Promise.reject('no refresh handler for provider');\n }\n }\n };\n CredentialsClass.prototype._providerRefreshWithRetry = function (_a) {\n var _this = this;\n var refreshHandler = _a.refreshHandler, provider = _a.provider, user = _a.user;\n var MAX_DELAY_MS = 10 * 1000;\n // refreshHandler will retry network errors, otherwise it will\n // return NonRetryableError to break out of jitteredExponentialRetry\n return jitteredExponentialRetry(refreshHandler, [], MAX_DELAY_MS)\n .then(function (data) {\n logger.debug('refresh federated token sucessfully', data);\n return _this._setCredentialsFromFederation({\n provider: provider,\n token: data.token,\n user: user,\n identity_id: data.identity_id,\n expires_at: data.expires_at,\n });\n })\n .catch(function (e) {\n var isNetworkError = typeof e === 'string' &&\n e.toLowerCase().lastIndexOf('network error', e.length) === 0;\n if (!isNetworkError) {\n _this.clear();\n }\n logger.debug('refresh federated token failed', e);\n return Promise.reject('refreshing federation token failed: ' + e);\n });\n };\n CredentialsClass.prototype._isExpired = function (credentials) {\n if (!credentials) {\n logger.debug('no credentials for expiration check');\n return true;\n }\n logger.debug('are these credentials expired?', credentials);\n var ts = Date.now();\n /* returns date object.\n https://github.com/aws/aws-sdk-js-v3/blob/v1.0.0-beta.1/packages/types/src/credentials.ts#L26\n */\n var expiration = credentials.expiration;\n return expiration.getTime() <= ts;\n };\n CredentialsClass.prototype._isPastTTL = function () {\n return this._nextCredentialsRefresh <= Date.now();\n };\n CredentialsClass.prototype._setCredentialsForGuest = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, identityPoolId, region, mandatorySignIn, identityId, _b, cognitoClient, credentials, cognitoIdentityParams, credentialsProvider;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n logger.debug('setting credentials for guest');\n _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region, mandatorySignIn = _a.mandatorySignIn;\n if (mandatorySignIn) {\n return [2 /*return*/, Promise.reject('cannot get guest credentials when mandatory signin enabled')];\n }\n if (!identityPoolId) {\n logger.debug('No Cognito Identity pool provided for unauthenticated access');\n return [2 /*return*/, Promise.reject('No Cognito Identity pool provided for unauthenticated access')];\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return [2 /*return*/, Promise.reject('region is not configured for getting the credentials')];\n }\n _b = this;\n return [4 /*yield*/, this._getGuestIdentityId()];\n case 1:\n identityId = (_b._identityId = _c.sent());\n cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n credentials = undefined;\n if (identityId) {\n cognitoIdentityParams = {\n identityId: identityId,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n }\n else {\n credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n }))];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n cognitoIdentityParams = {\n client: cognitoClient,\n identityId: IdentityId,\n };\n credentialsFromCognitoIdentity = fromCognitoIdentity(cognitoIdentityParams);\n return [2 /*return*/, credentialsFromCognitoIdentity()];\n }\n });\n }); };\n credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n }\n return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null)\n .then(function (res) {\n return res;\n })\n .catch(function (e) { return __awaiter(_this, void 0, void 0, function () {\n var credentialsProvider;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(e.name === 'ResourceNotFoundException' &&\n e.message === \"Identity '\" + identityId + \"' not found.\")) return [3 /*break*/, 2];\n logger.debug('Failed to load guest credentials');\n return [4 /*yield*/, this._removeGuestIdentityId()];\n case 1:\n _a.sent();\n credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n }))];\n case 1:\n IdentityId = (_a.sent()).IdentityId;\n this._identityId = IdentityId;\n cognitoIdentityParams = {\n client: cognitoClient,\n identityId: IdentityId,\n };\n credentialsFromCognitoIdentity = fromCognitoIdentity(cognitoIdentityParams);\n return [2 /*return*/, credentialsFromCognitoIdentity()];\n }\n });\n }); };\n credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null)];\n case 2: return [2 /*return*/, e];\n }\n });\n }); })];\n }\n });\n });\n };\n CredentialsClass.prototype._setCredentialsFromFederation = function (params) {\n var provider = params.provider, token = params.token, identity_id = params.identity_id;\n var domains = {\n google: 'accounts.google.com',\n facebook: 'graph.facebook.com',\n amazon: 'www.amazon.com',\n developer: 'cognito-identity.amazonaws.com',\n };\n // Use custom provider url instead of the predefined ones\n var domain = domains[provider] || provider;\n if (!domain) {\n return Promise.reject('You must specify a federated provider');\n }\n var logins = {};\n logins[domain] = token;\n var _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region;\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return Promise.reject('region is not configured for getting the credentials');\n }\n var cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n var credentials = undefined;\n if (identity_id) {\n var cognitoIdentityParams = {\n identityId: identity_id,\n logins: logins,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentity(cognitoIdentityParams)();\n }\n else {\n var cognitoIdentityParams = {\n logins: logins,\n identityPoolId: identityPoolId,\n client: cognitoClient,\n };\n credentials = fromCognitoIdentityPool(cognitoIdentityParams)();\n }\n return this._loadCredentials(credentials, 'federated', true, params);\n };\n CredentialsClass.prototype._setCredentialsFromSession = function (session) {\n var _this = this;\n logger.debug('set credentials from session');\n var idToken = session.getIdToken().getJwtToken();\n var _a = this._config, region = _a.region, userPoolId = _a.userPoolId, identityPoolId = _a.identityPoolId;\n if (!identityPoolId) {\n logger.debug('No Cognito Federated Identity pool provided');\n return Promise.reject('No Cognito Federated Identity pool provided');\n }\n if (!region) {\n logger.debug('region is not configured for getting the credentials');\n return Promise.reject('region is not configured for getting the credentials');\n }\n var key = 'cognito-idp.' + region + '.amazonaws.com/' + userPoolId;\n var logins = {};\n logins[key] = idToken;\n var cognitoClient = createCognitoIdentityClient({\n region: region,\n });\n /*\n Retreiving identityId with GetIdCommand to mimic the behavior in the following code in aws-sdk-v3:\n https://git.io/JeDxU\n\n Note: Retreive identityId from CredentialsProvider once aws-sdk-js v3 supports this.\n */\n var credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () {\n var guestIdentityId, generatedOrRetrievedIdentityId, IdentityId, _a, _b, AccessKeyId, Expiration, SecretKey, SessionToken, primaryIdentityId;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._getGuestIdentityId()];\n case 1:\n guestIdentityId = _c.sent();\n if (!!guestIdentityId) return [3 /*break*/, 3];\n return [4 /*yield*/, cognitoClient.send(new GetIdCommand({\n IdentityPoolId: identityPoolId,\n Logins: logins,\n }))];\n case 2:\n IdentityId = (_c.sent()).IdentityId;\n generatedOrRetrievedIdentityId = IdentityId;\n _c.label = 3;\n case 3: return [4 /*yield*/, cognitoClient.send(new GetCredentialsForIdentityCommand({\n IdentityId: guestIdentityId || generatedOrRetrievedIdentityId,\n Logins: logins,\n }))];\n case 4:\n _a = _c.sent(), _b = _a.Credentials, AccessKeyId = _b.AccessKeyId, Expiration = _b.Expiration, SecretKey = _b.SecretKey, SessionToken = _b.SessionToken, primaryIdentityId = _a.IdentityId;\n this._identityId = primaryIdentityId;\n if (!guestIdentityId) return [3 /*break*/, 6];\n // if guestIdentity is found and used by GetCredentialsForIdentity\n // it will be linked to the logins provided, and disqualified as an unauth identity\n logger.debug(\"The guest identity \" + guestIdentityId + \" has been successfully linked to the logins\");\n if (guestIdentityId === primaryIdentityId) {\n logger.debug(\"The guest identity \" + guestIdentityId + \" has become the primary identity\");\n }\n // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n return [4 /*yield*/, this._removeGuestIdentityId()];\n case 5:\n // remove it from local storage to avoid being used as a guest Identity by _setCredentialsForGuest\n _c.sent();\n _c.label = 6;\n case 6: \n // https://github.com/aws/aws-sdk-js-v3/blob/main/packages/credential-provider-cognito-identity/src/fromCognitoIdentity.ts#L40\n return [2 /*return*/, {\n accessKeyId: AccessKeyId,\n secretAccessKey: SecretKey,\n sessionToken: SessionToken,\n expiration: Expiration,\n identityId: primaryIdentityId,\n }];\n }\n });\n }); };\n var credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n throw err;\n });\n }); });\n return this._loadCredentials(credentials, 'userPool', true, null);\n };\n CredentialsClass.prototype._loadCredentials = function (credentials, source, authenticated, info) {\n var _this = this;\n var that = this;\n return new Promise(function (res, rej) {\n credentials\n .then(function (credentials) { return __awaiter(_this, void 0, void 0, function () {\n var user, provider, token, expires_at, identity_id;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger.debug('Load credentials successfully', credentials);\n if (this._identityId && !credentials.identityId) {\n credentials['identityId'] = this._identityId;\n }\n that._credentials = credentials;\n that._credentials.authenticated = authenticated;\n that._credentials_source = source;\n that._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL;\n if (source === 'federated') {\n user = Object.assign({ id: this._credentials.identityId }, info.user);\n provider = info.provider, token = info.token, expires_at = info.expires_at, identity_id = info.identity_id;\n try {\n this._storage.setItem('aws-amplify-federatedInfo', JSON.stringify({\n provider: provider,\n token: token,\n user: user,\n expires_at: expires_at,\n identity_id: identity_id,\n }));\n }\n catch (e) {\n logger.debug('Failed to put federated info into auth storage', e);\n }\n }\n if (!(source === 'guest')) return [3 /*break*/, 2];\n return [4 /*yield*/, this._setGuestIdentityId(credentials.identityId)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n res(that._credentials);\n return [2 /*return*/];\n }\n });\n }); })\n .catch(function (err) {\n if (err) {\n logger.debug('Failed to load credentials', credentials);\n logger.debug('Error loading credentials', err);\n rej(err);\n return;\n }\n });\n });\n };\n CredentialsClass.prototype.set = function (params, source) {\n if (source === 'session') {\n return this._setCredentialsFromSession(params);\n }\n else if (source === 'federation') {\n return this._setCredentialsFromFederation(params);\n }\n else if (source === 'guest') {\n return this._setCredentialsForGuest();\n }\n else {\n logger.debug('no source specified for setting credentials');\n return Promise.reject('invalid source');\n }\n };\n CredentialsClass.prototype.clear = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this._credentials = null;\n this._credentials_source = null;\n logger.debug('removing aws-amplify-federatedInfo from storage');\n this._storage.removeItem('aws-amplify-federatedInfo');\n return [2 /*return*/];\n });\n });\n };\n /* operations on local stored guest identity */\n CredentialsClass.prototype._getGuestIdentityId = function () {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n identityPoolId = this._config.identityPoolId;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n return [2 /*return*/, this._storage.getItem(this._getCognitoIdentityIdStorageKey(identityPoolId))];\n case 3:\n e_1 = _a.sent();\n logger.debug('Failed to get the cached guest identityId', e_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CredentialsClass.prototype._setGuestIdentityId = function (identityId) {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId, e_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n identityPoolId = this._config.identityPoolId;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this._storageSync];\n case 2:\n _a.sent();\n this._storage.setItem(this._getCognitoIdentityIdStorageKey(identityPoolId), identityId);\n return [3 /*break*/, 4];\n case 3:\n e_2 = _a.sent();\n logger.debug('Failed to cache guest identityId', e_2);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CredentialsClass.prototype._removeGuestIdentityId = function () {\n return __awaiter(this, void 0, void 0, function () {\n var identityPoolId;\n return __generator(this, function (_a) {\n identityPoolId = this._config.identityPoolId;\n logger.debug(\"removing \" + this._getCognitoIdentityIdStorageKey(identityPoolId) + \" from storage\");\n this._storage.removeItem(this._getCognitoIdentityIdStorageKey(identityPoolId));\n return [2 /*return*/];\n });\n });\n };\n /**\n * Compact version of credentials\n * @param {Object} credentials\n * @return {Object} - Credentials\n */\n CredentialsClass.prototype.shear = function (credentials) {\n return {\n accessKeyId: credentials.accessKeyId,\n sessionToken: credentials.sessionToken,\n secretAccessKey: credentials.secretAccessKey,\n identityId: credentials.identityId,\n authenticated: credentials.authenticated,\n };\n };\n return CredentialsClass;\n}());\nexport { CredentialsClass };\nexport var Credentials = new CredentialsClass(null);\nAmplify.register(Credentials);\n/**\n * @deprecated use named import\n */\nexport default Credentials;\n//# sourceMappingURL=Credentials.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Hub');\nvar AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&\n typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nfunction isLegacyCallback(callback) {\n return callback.onHubCapsule !== undefined;\n}\nvar HubClass = /** @class */ (function () {\n function HubClass(name) {\n this.listeners = [];\n this.patterns = [];\n this.protectedChannels = [\n 'core',\n 'auth',\n 'api',\n 'analytics',\n 'interactions',\n 'pubsub',\n 'storage',\n 'ui',\n 'xr',\n ];\n this.name = name;\n }\n // Note - Need to pass channel as a reference for removal to work and not anonymous function\n HubClass.prototype.remove = function (channel, listener) {\n if (channel instanceof RegExp) {\n var pattern_1 = this.patterns.find(function (_a) {\n var pattern = _a.pattern;\n return pattern.source === channel.source;\n });\n if (!pattern_1) {\n logger.warn(\"No listeners for \" + channel);\n return;\n }\n this.patterns = __spread(this.patterns.filter(function (x) { return x !== pattern_1; }));\n }\n else {\n var holder = this.listeners[channel];\n if (!holder) {\n logger.warn(\"No listeners for \" + channel);\n return;\n }\n this.listeners[channel] = __spread(holder.filter(function (_a) {\n var callback = _a.callback;\n return callback !== listener;\n }));\n }\n };\n HubClass.prototype.dispatch = function (channel, payload, source, ampSymbol) {\n if (source === void 0) { source = ''; }\n if (this.protectedChannels.indexOf(channel) > -1) {\n var hasAccess = ampSymbol === AMPLIFY_SYMBOL;\n if (!hasAccess) {\n logger.warn(\"WARNING: \" + channel + \" is protected and dispatching on it can have unintended consequences\");\n }\n }\n var capsule = {\n channel: channel,\n payload: __assign({}, payload),\n source: source,\n patternInfo: [],\n };\n try {\n this._toListeners(capsule);\n }\n catch (e) {\n logger.error(e);\n }\n };\n HubClass.prototype.listen = function (channel, callback, listenerName) {\n var _this = this;\n if (listenerName === void 0) { listenerName = 'noname'; }\n var cb;\n // Check for legacy onHubCapsule callback for backwards compatability\n if (isLegacyCallback(callback)) {\n logger.warn(\"WARNING onHubCapsule is Deprecated. Please pass in a callback.\");\n cb = callback.onHubCapsule.bind(callback);\n }\n else if (typeof callback !== 'function') {\n throw new Error('No callback supplied to Hub');\n }\n else {\n cb = callback;\n }\n if (channel instanceof RegExp) {\n this.patterns.push({\n pattern: channel,\n callback: cb,\n });\n }\n else {\n var holder = this.listeners[channel];\n if (!holder) {\n holder = [];\n this.listeners[channel] = holder;\n }\n holder.push({\n name: listenerName,\n callback: cb,\n });\n }\n return function () {\n _this.remove(channel, cb);\n };\n };\n HubClass.prototype._toListeners = function (capsule) {\n var channel = capsule.channel, payload = capsule.payload;\n var holder = this.listeners[channel];\n if (holder) {\n holder.forEach(function (listener) {\n logger.debug(\"Dispatching to \" + channel + \" with \", payload);\n try {\n listener.callback(capsule);\n }\n catch (e) {\n logger.error(e);\n }\n });\n }\n if (this.patterns.length > 0) {\n if (!payload.message) {\n logger.warn(\"Cannot perform pattern matching without a message key\");\n return;\n }\n var payloadStr_1 = payload.message;\n this.patterns.forEach(function (pattern) {\n var match = payloadStr_1.match(pattern.pattern);\n if (match) {\n var _a = __read(match), groups = _a.slice(1);\n var dispatchingCapsule = __assign(__assign({}, capsule), { patternInfo: groups });\n try {\n pattern.callback(dispatchingCapsule);\n }\n catch (e) {\n logger.error(e);\n }\n }\n });\n }\n };\n return HubClass;\n}());\nexport { HubClass };\n/*We export a __default__ instance of HubClass to use it as a\npseudo Singleton for the main messaging bus, however you can still create\nyour own instance of HubClass() for a separate \"private bus\" of events.*/\nexport var Hub = new HubClass('__default__');\n/**\n * @deprecated use named import\n */\nexport default Hub;\n//# sourceMappingURL=Hub.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger } from '../Logger';\nvar logger = new Logger('I18n');\n/**\n * Language transition class\n */\nvar I18n = /** @class */ (function () {\n /**\n * @constructor\n * Initialize with configurations\n * @param {Object} options\n */\n function I18n(options) {\n /**\n * @private\n */\n this._options = null;\n /**\n * @private\n */\n this._lang = null;\n /**\n * @private\n */\n this._dict = {};\n this._options = Object.assign({}, options);\n this._lang = this._options.language;\n if (!this._lang &&\n typeof window !== 'undefined' &&\n window &&\n window.navigator) {\n this._lang = window.navigator.language;\n }\n logger.debug(this._lang);\n }\n /**\n * @method\n * Explicitly setting language\n * @param {String} lang\n */\n I18n.prototype.setLanguage = function (lang) {\n this._lang = lang;\n };\n /**\n * @method\n * Get value\n * @param {String} key\n * @param {String} defVal - Default value\n */\n I18n.prototype.get = function (key, defVal) {\n if (defVal === void 0) { defVal = undefined; }\n if (!this._lang) {\n return typeof defVal !== 'undefined' ? defVal : key;\n }\n var lang = this._lang;\n var val = this.getByLanguage(key, lang);\n if (val) {\n return val;\n }\n if (lang.indexOf('-') > 0) {\n val = this.getByLanguage(key, lang.split('-')[0]);\n }\n if (val) {\n return val;\n }\n return typeof defVal !== 'undefined' ? defVal : key;\n };\n /**\n * @method\n * Get value according to specified language\n * @param {String} key\n * @param {String} language - Specified langurage to be used\n * @param {String} defVal - Default value\n */\n I18n.prototype.getByLanguage = function (key, language, defVal) {\n if (defVal === void 0) { defVal = null; }\n if (!language) {\n return defVal;\n }\n var lang_dict = this._dict[language];\n if (!lang_dict) {\n return defVal;\n }\n return lang_dict[key];\n };\n /**\n * @method\n * Add vocabularies for one language\n * @param {String} language - Language of the dictionary\n * @param {Object} vocabularies - Object that has key-value as dictionary entry\n */\n I18n.prototype.putVocabulariesForLanguage = function (language, vocabularies) {\n var lang_dict = this._dict[language];\n if (!lang_dict) {\n lang_dict = this._dict[language] = {};\n }\n Object.assign(lang_dict, vocabularies);\n };\n /**\n * @method\n * Add vocabularies for one language\n * @param {Object} vocabularies - Object that has language as key,\n * vocabularies of each language as value\n */\n I18n.prototype.putVocabularies = function (vocabularies) {\n var _this = this;\n Object.keys(vocabularies).map(function (key) {\n _this.putVocabulariesForLanguage(key, vocabularies[key]);\n });\n };\n return I18n;\n}());\nexport { I18n };\n//# sourceMappingURL=I18n.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { I18n as I18nClass } from './I18n';\nimport { ConsoleLogger as Logger } from '../Logger';\nimport { Amplify } from '../Amplify';\nvar logger = new Logger('I18n');\nvar _config = null;\nvar _i18n = null;\n/**\n * Export I18n APIs\n */\nvar I18n = /** @class */ (function () {\n function I18n() {\n }\n /**\n * @static\n * @method\n * Configure I18n part\n * @param {Object} config - Configuration of the I18n\n */\n I18n.configure = function (config) {\n logger.debug('configure I18n');\n if (!config) {\n return _config;\n }\n _config = Object.assign({}, _config, config.I18n || config);\n I18n.createInstance();\n return _config;\n };\n I18n.getModuleName = function () {\n return 'I18n';\n };\n /**\n * @static\n * @method\n * Create an instance of I18n for the library\n */\n I18n.createInstance = function () {\n logger.debug('create I18n instance');\n if (_i18n) {\n return;\n }\n _i18n = new I18nClass(_config);\n };\n /**\n * @static @method\n * Explicitly setting language\n * @param {String} lang\n */\n I18n.setLanguage = function (lang) {\n I18n.checkConfig();\n return _i18n.setLanguage(lang);\n };\n /**\n * @static @method\n * Get value\n * @param {String} key\n * @param {String} defVal - Default value\n */\n I18n.get = function (key, defVal) {\n if (!I18n.checkConfig()) {\n return typeof defVal === 'undefined' ? key : defVal;\n }\n return _i18n.get(key, defVal);\n };\n /**\n * @static\n * @method\n * Add vocabularies for one language\n * @param {String} langurage - Language of the dictionary\n * @param {Object} vocabularies - Object that has key-value as dictionary entry\n */\n I18n.putVocabulariesForLanguage = function (language, vocabularies) {\n I18n.checkConfig();\n return _i18n.putVocabulariesForLanguage(language, vocabularies);\n };\n /**\n * @static\n * @method\n * Add vocabularies for one language\n * @param {Object} vocabularies - Object that has language as key,\n * vocabularies of each language as value\n */\n I18n.putVocabularies = function (vocabularies) {\n I18n.checkConfig();\n return _i18n.putVocabularies(vocabularies);\n };\n I18n.checkConfig = function () {\n if (!_i18n) {\n _i18n = new I18nClass(_config);\n }\n return true;\n };\n return I18n;\n}());\nexport { I18n };\nAmplify.register(I18n);\n/**\n * @deprecated use named import\n */\nexport default I18n;\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar MIME_MAP = [\n { type: 'text/plain', ext: 'txt' },\n { type: 'text/html', ext: 'html' },\n { type: 'text/javascript', ext: 'js' },\n { type: 'text/css', ext: 'css' },\n { type: 'text/csv', ext: 'csv' },\n { type: 'text/yaml', ext: 'yml' },\n { type: 'text/yaml', ext: 'yaml' },\n { type: 'text/calendar', ext: 'ics' },\n { type: 'text/calendar', ext: 'ical' },\n { type: 'image/apng', ext: 'apng' },\n { type: 'image/bmp', ext: 'bmp' },\n { type: 'image/gif', ext: 'gif' },\n { type: 'image/x-icon', ext: 'ico' },\n { type: 'image/x-icon', ext: 'cur' },\n { type: 'image/jpeg', ext: 'jpg' },\n { type: 'image/jpeg', ext: 'jpeg' },\n { type: 'image/jpeg', ext: 'jfif' },\n { type: 'image/jpeg', ext: 'pjp' },\n { type: 'image/jpeg', ext: 'pjpeg' },\n { type: 'image/png', ext: 'png' },\n { type: 'image/svg+xml', ext: 'svg' },\n { type: 'image/tiff', ext: 'tif' },\n { type: 'image/tiff', ext: 'tiff' },\n { type: 'image/webp', ext: 'webp' },\n { type: 'application/json', ext: 'json' },\n { type: 'application/xml', ext: 'xml' },\n { type: 'application/x-sh', ext: 'sh' },\n { type: 'application/zip', ext: 'zip' },\n { type: 'application/x-rar-compressed', ext: 'rar' },\n { type: 'application/x-tar', ext: 'tar' },\n { type: 'application/x-bzip', ext: 'bz' },\n { type: 'application/x-bzip2', ext: 'bz2' },\n { type: 'application/pdf', ext: 'pdf' },\n { type: 'application/java-archive', ext: 'jar' },\n { type: 'application/msword', ext: 'doc' },\n { type: 'application/vnd.ms-excel', ext: 'xls' },\n { type: 'application/vnd.ms-excel', ext: 'xlsx' },\n { type: 'message/rfc822', ext: 'eml' },\n];\nexport var isEmpty = function (obj) {\n if (obj === void 0) { obj = {}; }\n return Object.keys(obj).length === 0;\n};\nexport var sortByField = function (list, field, dir) {\n if (!list || !list.sort) {\n return false;\n }\n var dirX = dir && dir === 'desc' ? -1 : 1;\n list.sort(function (a, b) {\n var a_val = a[field];\n var b_val = b[field];\n if (typeof b_val === 'undefined') {\n return typeof a_val === 'undefined' ? 0 : 1 * dirX;\n }\n if (typeof a_val === 'undefined') {\n return -1 * dirX;\n }\n if (a_val < b_val) {\n return -1 * dirX;\n }\n if (a_val > b_val) {\n return 1 * dirX;\n }\n return 0;\n });\n return true;\n};\nexport var objectLessAttributes = function (obj, less) {\n var ret = Object.assign({}, obj);\n if (less) {\n if (typeof less === 'string') {\n delete ret[less];\n }\n else {\n less.forEach(function (attr) {\n delete ret[attr];\n });\n }\n }\n return ret;\n};\nexport var filenameToContentType = function (filename, defVal) {\n if (defVal === void 0) { defVal = 'application/octet-stream'; }\n var name = filename.toLowerCase();\n var filtered = MIME_MAP.filter(function (mime) { return name.endsWith('.' + mime.ext); });\n return filtered.length > 0 ? filtered[0].type : defVal;\n};\nexport var isTextFile = function (contentType) {\n var type = contentType.toLowerCase();\n if (type.startsWith('text/')) {\n return true;\n }\n return ('application/json' === type ||\n 'application/xml' === type ||\n 'application/sh' === type);\n};\nexport var generateRandomString = function () {\n var result = '';\n var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n for (var i = 32; i > 0; i -= 1) {\n result += chars[Math.floor(Math.random() * chars.length)];\n }\n return result;\n};\nexport var makeQuerablePromise = function (promise) {\n if (promise.isResolved)\n return promise;\n var isPending = true;\n var isRejected = false;\n var isFullfilled = false;\n var result = promise.then(function (data) {\n isFullfilled = true;\n isPending = false;\n return data;\n }, function (e) {\n isRejected = true;\n isPending = false;\n throw e;\n });\n result.isFullfilled = function () { return isFullfilled; };\n result.isPending = function () { return isPending; };\n result.isRejected = function () { return isRejected; };\n return result;\n};\nexport var isWebWorker = function () {\n if (typeof self === 'undefined') {\n return false;\n }\n var selfContext = self;\n return typeof selfContext.WorkerGlobalScope !== 'undefined' &&\n self instanceof selfContext.WorkerGlobalScope;\n};\nexport var browserOrNode = function () {\n var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var isNode = typeof process !== 'undefined' &&\n process.versions != null &&\n process.versions.node != null;\n return {\n isBrowser: isBrowser,\n isNode: isNode,\n };\n};\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport var transferKeyToLowerCase = function (obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) { whiteListForItself = []; }\n if (whiteListForChildren === void 0) { whiteListForChildren = []; }\n if (!isStrictObject(obj))\n return obj;\n var ret = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferedKey = whiteListForItself.includes(key)\n ? key\n : key[0].toLowerCase() + key.slice(1);\n ret[transferedKey] = whiteListForChildren.includes(key)\n ? obj[key]\n : transferKeyToLowerCase(obj[key], whiteListForItself, whiteListForChildren);\n }\n }\n return ret;\n};\n/**\n * transfer the first letter of the keys to lowercase\n * @param {Object} obj - the object need to be transferred\n * @param {Array} whiteListForItself - whitelist itself from being transferred\n * @param {Array} whiteListForChildren - whitelist its children keys from being transferred\n */\nexport var transferKeyToUpperCase = function (obj, whiteListForItself, whiteListForChildren) {\n if (whiteListForItself === void 0) { whiteListForItself = []; }\n if (whiteListForChildren === void 0) { whiteListForChildren = []; }\n if (!isStrictObject(obj))\n return obj;\n var ret = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var transferredKey = whiteListForItself.includes(key)\n ? key\n : key[0].toUpperCase() + key.slice(1);\n ret[transferredKey] = whiteListForChildren.includes(key)\n ? obj[key]\n : transferKeyToUpperCase(obj[key], whiteListForItself, whiteListForChildren);\n }\n }\n return ret;\n};\n/**\n * Return true if the object is a strict object\n * which means it's not Array, Function, Number, String, Boolean or Null\n * @param obj the Object\n */\nexport var isStrictObject = function (obj) {\n return (obj instanceof Object &&\n !(obj instanceof Array) &&\n !(obj instanceof Function) &&\n !(obj instanceof Number) &&\n !(obj instanceof String) &&\n !(obj instanceof Boolean));\n};\n/**\n * @deprecated use per-function imports\n */\nvar JS = /** @class */ (function () {\n function JS() {\n }\n JS.isEmpty = isEmpty;\n JS.sortByField = sortByField;\n JS.objectLessAttributes = objectLessAttributes;\n JS.filenameToContentType = filenameToContentType;\n JS.isTextFile = isTextFile;\n JS.generateRandomString = generateRandomString;\n JS.makeQuerablePromise = makeQuerablePromise;\n JS.isWebWorker = isWebWorker;\n JS.browserOrNode = browserOrNode;\n JS.transferKeyToLowerCase = transferKeyToLowerCase;\n JS.transferKeyToUpperCase = transferKeyToUpperCase;\n JS.isStrictObject = isStrictObject;\n return JS;\n}());\nexport { JS };\n/**\n * @deprecated use per-function imports\n */\nexport default JS;\n//# sourceMappingURL=JS.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\n// Logging constants\nvar AWS_CLOUDWATCH_BASE_BUFFER_SIZE = 26;\nvar AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE = 1048576;\nvar AWS_CLOUDWATCH_MAX_EVENT_SIZE = 256000;\nvar AWS_CLOUDWATCH_CATEGORY = 'Logging';\nvar AWS_CLOUDWATCH_PROVIDER_NAME = 'AWSCloudWatch';\nvar NO_CREDS_ERROR_STRING = 'No credentials';\nvar RETRY_ERROR_CODES = [\n 'ResourceNotFoundException',\n 'InvalidSequenceTokenException',\n];\nexport { AWS_CLOUDWATCH_BASE_BUFFER_SIZE, AWS_CLOUDWATCH_CATEGORY, AWS_CLOUDWATCH_MAX_BATCH_EVENT_SIZE, AWS_CLOUDWATCH_MAX_EVENT_SIZE, AWS_CLOUDWATCH_PROVIDER_NAME, NO_CREDS_ERROR_STRING, RETRY_ERROR_CODES, };\n//# sourceMappingURL=Constants.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { AWS_CLOUDWATCH_CATEGORY } from '../Util/Constants';\nvar LOG_LEVELS = {\n VERBOSE: 1,\n DEBUG: 2,\n INFO: 3,\n WARN: 4,\n ERROR: 5,\n};\nexport var LOG_TYPE;\n(function (LOG_TYPE) {\n LOG_TYPE[\"DEBUG\"] = \"DEBUG\";\n LOG_TYPE[\"ERROR\"] = \"ERROR\";\n LOG_TYPE[\"INFO\"] = \"INFO\";\n LOG_TYPE[\"WARN\"] = \"WARN\";\n LOG_TYPE[\"VERBOSE\"] = \"VERBOSE\";\n})(LOG_TYPE || (LOG_TYPE = {}));\n/**\n * Write logs\n * @class Logger\n */\nvar ConsoleLogger = /** @class */ (function () {\n /**\n * @constructor\n * @param {string} name - Name of the logger\n */\n function ConsoleLogger(name, level) {\n if (level === void 0) { level = LOG_TYPE.WARN; }\n this.name = name;\n this.level = level;\n this._pluggables = [];\n }\n ConsoleLogger.prototype._padding = function (n) {\n return n < 10 ? '0' + n : '' + n;\n };\n ConsoleLogger.prototype._ts = function () {\n var dt = new Date();\n return ([this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(':') +\n '.' +\n dt.getMilliseconds());\n };\n ConsoleLogger.prototype.configure = function (config) {\n if (!config)\n return this._config;\n this._config = config;\n return this._config;\n };\n /**\n * Write log\n * @method\n * @memeberof Logger\n * @param {LOG_TYPE|string} type - log type, default INFO\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype._log = function (type) {\n var e_1, _a;\n var msg = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n msg[_i - 1] = arguments[_i];\n }\n var logger_level_name = this.level;\n if (ConsoleLogger.LOG_LEVEL) {\n logger_level_name = ConsoleLogger.LOG_LEVEL;\n }\n if (typeof window !== 'undefined' && window.LOG_LEVEL) {\n logger_level_name = window.LOG_LEVEL;\n }\n var logger_level = LOG_LEVELS[logger_level_name];\n var type_level = LOG_LEVELS[type];\n if (!(type_level >= logger_level)) {\n // Do nothing if type is not greater than or equal to logger level (handle undefined)\n return;\n }\n var log = console.log.bind(console);\n if (type === LOG_TYPE.ERROR && console.error) {\n log = console.error.bind(console);\n }\n if (type === LOG_TYPE.WARN && console.warn) {\n log = console.warn.bind(console);\n }\n var prefix = \"[\" + type + \"] \" + this._ts() + \" \" + this.name;\n var message = '';\n if (msg.length === 1 && typeof msg[0] === 'string') {\n message = prefix + \" - \" + msg[0];\n log(message);\n }\n else if (msg.length === 1) {\n message = prefix + \" \" + msg[0];\n log(prefix, msg[0]);\n }\n else if (typeof msg[0] === 'string') {\n var obj = msg.slice(1);\n if (obj.length === 1) {\n obj = obj[0];\n }\n message = prefix + \" - \" + msg[0] + \" \" + obj;\n log(prefix + \" - \" + msg[0], obj);\n }\n else {\n message = prefix + \" \" + msg;\n log(prefix, msg);\n }\n try {\n for (var _b = __values(this._pluggables), _c = _b.next(); !_c.done; _c = _b.next()) {\n var plugin = _c.value;\n var logEvent = { message: message, timestamp: Date.now() };\n plugin.pushLogs([logEvent]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Write General log. Default to INFO\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.log = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.INFO], msg));\n };\n /**\n * Write INFO log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.info = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.INFO], msg));\n };\n /**\n * Write WARN log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.warn = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.WARN], msg));\n };\n /**\n * Write ERROR log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.error = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.ERROR], msg));\n };\n /**\n * Write DEBUG log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.debug = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.DEBUG], msg));\n };\n /**\n * Write VERBOSE log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n ConsoleLogger.prototype.verbose = function () {\n var msg = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n msg[_i] = arguments[_i];\n }\n this._log.apply(this, __spread([LOG_TYPE.VERBOSE], msg));\n };\n ConsoleLogger.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategoryName() === AWS_CLOUDWATCH_CATEGORY) {\n this._pluggables.push(pluggable);\n pluggable.configure(this._config);\n }\n };\n ConsoleLogger.prototype.listPluggables = function () {\n return this._pluggables;\n };\n ConsoleLogger.LOG_LEVEL = null;\n return ConsoleLogger;\n}());\nexport { ConsoleLogger };\n//# sourceMappingURL=ConsoleLogger.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ConsoleLogger as Logger } from './Logger';\nvar logger = new Logger('Parser');\nexport var parseMobileHubConfig = function (config) {\n var amplifyConfig = {};\n // Analytics\n if (config['aws_mobile_analytics_app_id']) {\n var Analytics = {\n AWSPinpoint: {\n appId: config['aws_mobile_analytics_app_id'],\n region: config['aws_mobile_analytics_app_region'],\n },\n };\n amplifyConfig.Analytics = Analytics;\n }\n // Auth\n if (config['aws_cognito_identity_pool_id'] || config['aws_user_pools_id']) {\n amplifyConfig.Auth = {\n userPoolId: config['aws_user_pools_id'],\n userPoolWebClientId: config['aws_user_pools_web_client_id'],\n region: config['aws_cognito_region'],\n identityPoolId: config['aws_cognito_identity_pool_id'],\n identityPoolRegion: config['aws_cognito_region'],\n mandatorySignIn: config['aws_mandatory_sign_in'] === 'enable',\n signUpVerificationMethod: config['aws_cognito_sign_up_verification_method'] || 'code',\n };\n }\n // Storage\n var storageConfig;\n if (config['aws_user_files_s3_bucket']) {\n storageConfig = {\n AWSS3: {\n bucket: config['aws_user_files_s3_bucket'],\n region: config['aws_user_files_s3_bucket_region'],\n dangerouslyConnectToHttpEndpointForTesting: config['aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing'],\n },\n };\n }\n else {\n storageConfig = config ? config.Storage || config : {};\n }\n // Logging\n if (config['Logging']) {\n amplifyConfig.Logging = __assign(__assign({}, config['Logging']), { region: config['aws_project_region'] });\n }\n // Geo\n if (config['geo']) {\n amplifyConfig.Geo = Object.assign({}, config.geo);\n if (config.geo['amazon_location_service']) {\n amplifyConfig.Geo = {\n AmazonLocationService: config.geo['amazon_location_service'],\n };\n }\n }\n amplifyConfig.Analytics = Object.assign({}, amplifyConfig.Analytics, config.Analytics);\n amplifyConfig.Auth = Object.assign({}, amplifyConfig.Auth, config.Auth);\n amplifyConfig.Storage = Object.assign({}, storageConfig);\n amplifyConfig.Logging = Object.assign({}, amplifyConfig.Logging, config.Logging);\n logger.debug('parse config', config, 'to amplifyconfig', amplifyConfig);\n return amplifyConfig;\n};\n/**\n * @deprecated use per-function export\n */\nvar Parser = /** @class */ (function () {\n function Parser() {\n }\n Parser.parseMobilehubConfig = parseMobileHubConfig;\n return Parser;\n}());\nexport { Parser };\n/**\n * @deprecated use per-function export\n */\nexport default Parser;\n//# sourceMappingURL=Parser.js.map","// generated by genversion\nexport var version = '4.7.14';\n//# sourceMappingURL=version.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { version } from './version';\nvar BASE_USER_AGENT = \"aws-amplify/\" + version;\nexport var Platform = {\n userAgent: BASE_USER_AGENT + \" js\",\n product: '',\n navigator: null,\n isReactNative: false,\n};\nif (typeof navigator !== 'undefined' && navigator.product) {\n Platform.product = navigator.product || '';\n Platform.navigator = navigator || null;\n switch (navigator.product) {\n case 'ReactNative':\n Platform.userAgent = BASE_USER_AGENT + \" react-native\";\n Platform.isReactNative = true;\n break;\n default:\n Platform.userAgent = BASE_USER_AGENT + \" js\";\n Platform.isReactNative = false;\n break;\n }\n}\nexport var getAmplifyUserAgent = function (content) {\n return \"\" + Platform.userAgent + (content ? content : '');\n};\n/**\n * @deprecated use named import\n */\nexport default Platform;\n//# sourceMappingURL=index.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar dataMemory = {};\n/** @class */\nvar MemoryStorage = /** @class */ (function () {\n function MemoryStorage() {\n }\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n MemoryStorage.setItem = function (key, value) {\n dataMemory[key] = value;\n return dataMemory[key];\n };\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */\n MemoryStorage.getItem = function (key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key)\n ? dataMemory[key]\n : undefined;\n };\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {string} value - value that was deleted\n */\n MemoryStorage.removeItem = function (key) {\n return delete dataMemory[key];\n };\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n MemoryStorage.clear = function () {\n dataMemory = {};\n return dataMemory;\n };\n return MemoryStorage;\n}());\nexport { MemoryStorage };\nvar StorageHelper = /** @class */ (function () {\n /**\n * This is used to get a storage object\n * @returns {object} the storage\n */\n function StorageHelper() {\n try {\n this.storageWindow = window.localStorage;\n this.storageWindow.setItem('aws.amplify.test-ls', 1);\n this.storageWindow.removeItem('aws.amplify.test-ls');\n }\n catch (exception) {\n this.storageWindow = MemoryStorage;\n }\n }\n /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n StorageHelper.prototype.getStorage = function () {\n return this.storageWindow;\n };\n return StorageHelper;\n}());\nexport { StorageHelper };\n/**\n * @deprecated use named import\n */\nexport default StorageHelper;\n//# sourceMappingURL=index.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { ConsoleLogger as Logger } from '../Logger/ConsoleLogger';\nvar logger = new Logger('Util');\nvar NonRetryableError = /** @class */ (function (_super) {\n __extends(NonRetryableError, _super);\n function NonRetryableError(message) {\n var _this = _super.call(this, message) || this;\n _this.nonRetryable = true;\n return _this;\n }\n return NonRetryableError;\n}(Error));\nexport { NonRetryableError };\nvar isNonRetryableError = function (obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function retry(functionToRetry, args, delayFn, onTerminate) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\n return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {\n var attempt, terminated, timeout, wakeUp, lastError, _loop_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempt = 0;\n terminated = false;\n wakeUp = function () { };\n onTerminate &&\n onTerminate.then(function () {\n // signal not to try anymore.\n terminated = true;\n // stop sleeping if we're sleeping.\n clearTimeout(timeout);\n wakeUp();\n });\n _loop_1 = function () {\n var _a, _b, err_1, retryIn_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n attempt++;\n logger.debug(functionToRetry.name + \" attempt #\" + attempt + \" with this vars: \" + JSON.stringify(args));\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 7]);\n _a = {};\n _b = resolve;\n return [4 /*yield*/, functionToRetry.apply(void 0, __spread(args))];\n case 2: return [2 /*return*/, (_a.value = _b.apply(void 0, [_c.sent()]), _a)];\n case 3:\n err_1 = _c.sent();\n lastError = err_1;\n logger.debug(\"error on \" + functionToRetry.name, err_1);\n if (isNonRetryableError(err_1)) {\n logger.debug(functionToRetry.name + \" non retryable error\", err_1);\n return [2 /*return*/, { value: reject(err_1) }];\n }\n retryIn_1 = delayFn(attempt, args, err_1);\n logger.debug(functionToRetry.name + \" retrying in \" + retryIn_1 + \" ms\");\n if (!(retryIn_1 === false || terminated)) return [3 /*break*/, 4];\n return [2 /*return*/, { value: reject(err_1) }];\n case 4: return [4 /*yield*/, new Promise(function (r) {\n wakeUp = r; // export wakeUp for onTerminate handling\n timeout = setTimeout(wakeUp, retryIn_1);\n })];\n case 5:\n _c.sent();\n _c.label = 6;\n case 6: return [3 /*break*/, 7];\n case 7: return [2 /*return*/];\n }\n });\n };\n _a.label = 1;\n case 1:\n if (!!terminated) return [3 /*break*/, 3];\n return [5 /*yield**/, _loop_1()];\n case 2:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n return [3 /*break*/, 1];\n case 3:\n // reached if terminated while waiting for a timer.\n reject(lastError);\n return [2 /*return*/];\n }\n });\n }); })];\n });\n });\n}\nvar MAX_DELAY_MS = 5 * 60 * 1000;\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function jitteredBackoff(maxDelayMs) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\n/**\n * @private\n * Internal use of Amplify only\n */\nexport var jitteredExponentialRetry = function (functionToRetry, args, maxDelayMs, onTerminate) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs), onTerminate);\n};\n//# sourceMappingURL=Retry.js.map","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __assign } from \"tslib\";\nimport { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nexport var AbortIncompleteMultipartUpload;\n(function (AbortIncompleteMultipartUpload) {\n AbortIncompleteMultipartUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AbortIncompleteMultipartUpload || (AbortIncompleteMultipartUpload = {}));\nexport var AbortMultipartUploadOutput;\n(function (AbortMultipartUploadOutput) {\n AbortMultipartUploadOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AbortMultipartUploadOutput || (AbortMultipartUploadOutput = {}));\nexport var AbortMultipartUploadRequest;\n(function (AbortMultipartUploadRequest) {\n AbortMultipartUploadRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AbortMultipartUploadRequest || (AbortMultipartUploadRequest = {}));\nexport var NoSuchUpload;\n(function (NoSuchUpload) {\n NoSuchUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoSuchUpload || (NoSuchUpload = {}));\nexport var AccelerateConfiguration;\n(function (AccelerateConfiguration) {\n AccelerateConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AccelerateConfiguration || (AccelerateConfiguration = {}));\nexport var Grantee;\n(function (Grantee) {\n Grantee.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Grantee || (Grantee = {}));\nexport var Grant;\n(function (Grant) {\n Grant.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Grant || (Grant = {}));\nexport var Owner;\n(function (Owner) {\n Owner.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Owner || (Owner = {}));\nexport var AccessControlPolicy;\n(function (AccessControlPolicy) {\n AccessControlPolicy.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AccessControlPolicy || (AccessControlPolicy = {}));\nexport var AccessControlTranslation;\n(function (AccessControlTranslation) {\n AccessControlTranslation.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AccessControlTranslation || (AccessControlTranslation = {}));\nexport var CompleteMultipartUploadOutput;\n(function (CompleteMultipartUploadOutput) {\n CompleteMultipartUploadOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(CompleteMultipartUploadOutput || (CompleteMultipartUploadOutput = {}));\nexport var CompletedPart;\n(function (CompletedPart) {\n CompletedPart.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CompletedPart || (CompletedPart = {}));\nexport var CompletedMultipartUpload;\n(function (CompletedMultipartUpload) {\n CompletedMultipartUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CompletedMultipartUpload || (CompletedMultipartUpload = {}));\nexport var CompleteMultipartUploadRequest;\n(function (CompleteMultipartUploadRequest) {\n CompleteMultipartUploadRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CompleteMultipartUploadRequest || (CompleteMultipartUploadRequest = {}));\nexport var CopyObjectResult;\n(function (CopyObjectResult) {\n CopyObjectResult.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CopyObjectResult || (CopyObjectResult = {}));\nexport var CopyObjectOutput;\n(function (CopyObjectOutput) {\n CopyObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(CopyObjectOutput || (CopyObjectOutput = {}));\nexport var CopyObjectRequest;\n(function (CopyObjectRequest) {\n CopyObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING })), (obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }))); };\n})(CopyObjectRequest || (CopyObjectRequest = {}));\nexport var ObjectNotInActiveTierError;\n(function (ObjectNotInActiveTierError) {\n ObjectNotInActiveTierError.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectNotInActiveTierError || (ObjectNotInActiveTierError = {}));\nexport var BucketAlreadyExists;\n(function (BucketAlreadyExists) {\n BucketAlreadyExists.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(BucketAlreadyExists || (BucketAlreadyExists = {}));\nexport var BucketAlreadyOwnedByYou;\n(function (BucketAlreadyOwnedByYou) {\n BucketAlreadyOwnedByYou.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(BucketAlreadyOwnedByYou || (BucketAlreadyOwnedByYou = {}));\nexport var CreateBucketOutput;\n(function (CreateBucketOutput) {\n CreateBucketOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateBucketOutput || (CreateBucketOutput = {}));\nexport var CreateBucketConfiguration;\n(function (CreateBucketConfiguration) {\n CreateBucketConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateBucketConfiguration || (CreateBucketConfiguration = {}));\nexport var CreateBucketRequest;\n(function (CreateBucketRequest) {\n CreateBucketRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CreateBucketRequest || (CreateBucketRequest = {}));\nexport var CreateMultipartUploadOutput;\n(function (CreateMultipartUploadOutput) {\n CreateMultipartUploadOutput.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(CreateMultipartUploadOutput || (CreateMultipartUploadOutput = {}));\nexport var CreateMultipartUploadRequest;\n(function (CreateMultipartUploadRequest) {\n CreateMultipartUploadRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(CreateMultipartUploadRequest || (CreateMultipartUploadRequest = {}));\nexport var DeleteBucketRequest;\n(function (DeleteBucketRequest) {\n DeleteBucketRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketRequest || (DeleteBucketRequest = {}));\nexport var DeleteBucketAnalyticsConfigurationRequest;\n(function (DeleteBucketAnalyticsConfigurationRequest) {\n DeleteBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketAnalyticsConfigurationRequest || (DeleteBucketAnalyticsConfigurationRequest = {}));\nexport var DeleteBucketCorsRequest;\n(function (DeleteBucketCorsRequest) {\n DeleteBucketCorsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketCorsRequest || (DeleteBucketCorsRequest = {}));\nexport var DeleteBucketEncryptionRequest;\n(function (DeleteBucketEncryptionRequest) {\n DeleteBucketEncryptionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketEncryptionRequest || (DeleteBucketEncryptionRequest = {}));\nexport var DeleteBucketIntelligentTieringConfigurationRequest;\n(function (DeleteBucketIntelligentTieringConfigurationRequest) {\n DeleteBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketIntelligentTieringConfigurationRequest || (DeleteBucketIntelligentTieringConfigurationRequest = {}));\nexport var DeleteBucketInventoryConfigurationRequest;\n(function (DeleteBucketInventoryConfigurationRequest) {\n DeleteBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketInventoryConfigurationRequest || (DeleteBucketInventoryConfigurationRequest = {}));\nexport var DeleteBucketLifecycleRequest;\n(function (DeleteBucketLifecycleRequest) {\n DeleteBucketLifecycleRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketLifecycleRequest || (DeleteBucketLifecycleRequest = {}));\nexport var DeleteBucketMetricsConfigurationRequest;\n(function (DeleteBucketMetricsConfigurationRequest) {\n DeleteBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketMetricsConfigurationRequest || (DeleteBucketMetricsConfigurationRequest = {}));\nexport var DeleteBucketOwnershipControlsRequest;\n(function (DeleteBucketOwnershipControlsRequest) {\n DeleteBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketOwnershipControlsRequest || (DeleteBucketOwnershipControlsRequest = {}));\nexport var DeleteBucketPolicyRequest;\n(function (DeleteBucketPolicyRequest) {\n DeleteBucketPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketPolicyRequest || (DeleteBucketPolicyRequest = {}));\nexport var DeleteBucketReplicationRequest;\n(function (DeleteBucketReplicationRequest) {\n DeleteBucketReplicationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketReplicationRequest || (DeleteBucketReplicationRequest = {}));\nexport var DeleteBucketTaggingRequest;\n(function (DeleteBucketTaggingRequest) {\n DeleteBucketTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketTaggingRequest || (DeleteBucketTaggingRequest = {}));\nexport var DeleteBucketWebsiteRequest;\n(function (DeleteBucketWebsiteRequest) {\n DeleteBucketWebsiteRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteBucketWebsiteRequest || (DeleteBucketWebsiteRequest = {}));\nexport var DeleteObjectOutput;\n(function (DeleteObjectOutput) {\n DeleteObjectOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectOutput || (DeleteObjectOutput = {}));\nexport var DeleteObjectRequest;\n(function (DeleteObjectRequest) {\n DeleteObjectRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectRequest || (DeleteObjectRequest = {}));\nexport var DeletedObject;\n(function (DeletedObject) {\n DeletedObject.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeletedObject || (DeletedObject = {}));\nexport var _Error;\n(function (_Error) {\n _Error.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(_Error || (_Error = {}));\nexport var DeleteObjectsOutput;\n(function (DeleteObjectsOutput) {\n DeleteObjectsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectsOutput || (DeleteObjectsOutput = {}));\nexport var ObjectIdentifier;\n(function (ObjectIdentifier) {\n ObjectIdentifier.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectIdentifier || (ObjectIdentifier = {}));\nexport var Delete;\n(function (Delete) {\n Delete.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Delete || (Delete = {}));\nexport var DeleteObjectsRequest;\n(function (DeleteObjectsRequest) {\n DeleteObjectsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectsRequest || (DeleteObjectsRequest = {}));\nexport var DeleteObjectTaggingOutput;\n(function (DeleteObjectTaggingOutput) {\n DeleteObjectTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectTaggingOutput || (DeleteObjectTaggingOutput = {}));\nexport var DeleteObjectTaggingRequest;\n(function (DeleteObjectTaggingRequest) {\n DeleteObjectTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteObjectTaggingRequest || (DeleteObjectTaggingRequest = {}));\nexport var DeletePublicAccessBlockRequest;\n(function (DeletePublicAccessBlockRequest) {\n DeletePublicAccessBlockRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeletePublicAccessBlockRequest || (DeletePublicAccessBlockRequest = {}));\nexport var GetBucketAccelerateConfigurationOutput;\n(function (GetBucketAccelerateConfigurationOutput) {\n GetBucketAccelerateConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAccelerateConfigurationOutput || (GetBucketAccelerateConfigurationOutput = {}));\nexport var GetBucketAccelerateConfigurationRequest;\n(function (GetBucketAccelerateConfigurationRequest) {\n GetBucketAccelerateConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAccelerateConfigurationRequest || (GetBucketAccelerateConfigurationRequest = {}));\nexport var GetBucketAclOutput;\n(function (GetBucketAclOutput) {\n GetBucketAclOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAclOutput || (GetBucketAclOutput = {}));\nexport var GetBucketAclRequest;\n(function (GetBucketAclRequest) {\n GetBucketAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAclRequest || (GetBucketAclRequest = {}));\nexport var Tag;\n(function (Tag) {\n Tag.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Tag || (Tag = {}));\nexport var AnalyticsAndOperator;\n(function (AnalyticsAndOperator) {\n AnalyticsAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AnalyticsAndOperator || (AnalyticsAndOperator = {}));\nexport var AnalyticsFilter;\n(function (AnalyticsFilter) {\n AnalyticsFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n AnalyticsFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: AnalyticsAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(AnalyticsFilter || (AnalyticsFilter = {}));\nexport var AnalyticsS3BucketDestination;\n(function (AnalyticsS3BucketDestination) {\n AnalyticsS3BucketDestination.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AnalyticsS3BucketDestination || (AnalyticsS3BucketDestination = {}));\nexport var AnalyticsExportDestination;\n(function (AnalyticsExportDestination) {\n AnalyticsExportDestination.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(AnalyticsExportDestination || (AnalyticsExportDestination = {}));\nexport var StorageClassAnalysisDataExport;\n(function (StorageClassAnalysisDataExport) {\n StorageClassAnalysisDataExport.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StorageClassAnalysisDataExport || (StorageClassAnalysisDataExport = {}));\nexport var StorageClassAnalysis;\n(function (StorageClassAnalysis) {\n StorageClassAnalysis.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StorageClassAnalysis || (StorageClassAnalysis = {}));\nexport var AnalyticsConfiguration;\n(function (AnalyticsConfiguration) {\n AnalyticsConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: AnalyticsFilter.filterSensitiveLog(obj.Filter) }))); };\n})(AnalyticsConfiguration || (AnalyticsConfiguration = {}));\nexport var GetBucketAnalyticsConfigurationOutput;\n(function (GetBucketAnalyticsConfigurationOutput) {\n GetBucketAnalyticsConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: AnalyticsConfiguration.filterSensitiveLog(obj.AnalyticsConfiguration),\n }))); };\n})(GetBucketAnalyticsConfigurationOutput || (GetBucketAnalyticsConfigurationOutput = {}));\nexport var GetBucketAnalyticsConfigurationRequest;\n(function (GetBucketAnalyticsConfigurationRequest) {\n GetBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketAnalyticsConfigurationRequest || (GetBucketAnalyticsConfigurationRequest = {}));\nexport var CORSRule;\n(function (CORSRule) {\n CORSRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CORSRule || (CORSRule = {}));\nexport var GetBucketCorsOutput;\n(function (GetBucketCorsOutput) {\n GetBucketCorsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketCorsOutput || (GetBucketCorsOutput = {}));\nexport var GetBucketCorsRequest;\n(function (GetBucketCorsRequest) {\n GetBucketCorsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketCorsRequest || (GetBucketCorsRequest = {}));\nexport var ServerSideEncryptionByDefault;\n(function (ServerSideEncryptionByDefault) {\n ServerSideEncryptionByDefault.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.KMSMasterKeyID && { KMSMasterKeyID: SENSITIVE_STRING }))); };\n})(ServerSideEncryptionByDefault || (ServerSideEncryptionByDefault = {}));\nexport var ServerSideEncryptionRule;\n(function (ServerSideEncryptionRule) {\n ServerSideEncryptionRule.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ApplyServerSideEncryptionByDefault && {\n ApplyServerSideEncryptionByDefault: ServerSideEncryptionByDefault.filterSensitiveLog(obj.ApplyServerSideEncryptionByDefault),\n }))); };\n})(ServerSideEncryptionRule || (ServerSideEncryptionRule = {}));\nexport var ServerSideEncryptionConfiguration;\n(function (ServerSideEncryptionConfiguration) {\n ServerSideEncryptionConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return ServerSideEncryptionRule.filterSensitiveLog(item); }) }))); };\n})(ServerSideEncryptionConfiguration || (ServerSideEncryptionConfiguration = {}));\nexport var GetBucketEncryptionOutput;\n(function (GetBucketEncryptionOutput) {\n GetBucketEncryptionOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration.filterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n }))); };\n})(GetBucketEncryptionOutput || (GetBucketEncryptionOutput = {}));\nexport var GetBucketEncryptionRequest;\n(function (GetBucketEncryptionRequest) {\n GetBucketEncryptionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketEncryptionRequest || (GetBucketEncryptionRequest = {}));\nexport var IntelligentTieringAndOperator;\n(function (IntelligentTieringAndOperator) {\n IntelligentTieringAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IntelligentTieringAndOperator || (IntelligentTieringAndOperator = {}));\nexport var IntelligentTieringFilter;\n(function (IntelligentTieringFilter) {\n IntelligentTieringFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IntelligentTieringFilter || (IntelligentTieringFilter = {}));\nexport var Tiering;\n(function (Tiering) {\n Tiering.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Tiering || (Tiering = {}));\nexport var IntelligentTieringConfiguration;\n(function (IntelligentTieringConfiguration) {\n IntelligentTieringConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IntelligentTieringConfiguration || (IntelligentTieringConfiguration = {}));\nexport var GetBucketIntelligentTieringConfigurationOutput;\n(function (GetBucketIntelligentTieringConfigurationOutput) {\n GetBucketIntelligentTieringConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketIntelligentTieringConfigurationOutput || (GetBucketIntelligentTieringConfigurationOutput = {}));\nexport var GetBucketIntelligentTieringConfigurationRequest;\n(function (GetBucketIntelligentTieringConfigurationRequest) {\n GetBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketIntelligentTieringConfigurationRequest || (GetBucketIntelligentTieringConfigurationRequest = {}));\nexport var SSEKMS;\n(function (SSEKMS) {\n SSEKMS.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.KeyId && { KeyId: SENSITIVE_STRING }))); };\n})(SSEKMS || (SSEKMS = {}));\nexport var SSES3;\n(function (SSES3) {\n SSES3.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SSES3 || (SSES3 = {}));\nexport var InventoryEncryption;\n(function (InventoryEncryption) {\n InventoryEncryption.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMS && { SSEKMS: SSEKMS.filterSensitiveLog(obj.SSEKMS) }))); };\n})(InventoryEncryption || (InventoryEncryption = {}));\nexport var InventoryS3BucketDestination;\n(function (InventoryS3BucketDestination) {\n InventoryS3BucketDestination.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Encryption && { Encryption: InventoryEncryption.filterSensitiveLog(obj.Encryption) }))); };\n})(InventoryS3BucketDestination || (InventoryS3BucketDestination = {}));\nexport var InventoryDestination;\n(function (InventoryDestination) {\n InventoryDestination.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.S3BucketDestination && {\n S3BucketDestination: InventoryS3BucketDestination.filterSensitiveLog(obj.S3BucketDestination),\n }))); };\n})(InventoryDestination || (InventoryDestination = {}));\nexport var InventoryFilter;\n(function (InventoryFilter) {\n InventoryFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InventoryFilter || (InventoryFilter = {}));\nexport var InventorySchedule;\n(function (InventorySchedule) {\n InventorySchedule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InventorySchedule || (InventorySchedule = {}));\nexport var InventoryConfiguration;\n(function (InventoryConfiguration) {\n InventoryConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Destination && { Destination: InventoryDestination.filterSensitiveLog(obj.Destination) }))); };\n})(InventoryConfiguration || (InventoryConfiguration = {}));\nexport var GetBucketInventoryConfigurationOutput;\n(function (GetBucketInventoryConfigurationOutput) {\n GetBucketInventoryConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfiguration.filterSensitiveLog(obj.InventoryConfiguration),\n }))); };\n})(GetBucketInventoryConfigurationOutput || (GetBucketInventoryConfigurationOutput = {}));\nexport var GetBucketInventoryConfigurationRequest;\n(function (GetBucketInventoryConfigurationRequest) {\n GetBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketInventoryConfigurationRequest || (GetBucketInventoryConfigurationRequest = {}));\nexport var LifecycleExpiration;\n(function (LifecycleExpiration) {\n LifecycleExpiration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LifecycleExpiration || (LifecycleExpiration = {}));\nexport var LifecycleRuleAndOperator;\n(function (LifecycleRuleAndOperator) {\n LifecycleRuleAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LifecycleRuleAndOperator || (LifecycleRuleAndOperator = {}));\nexport var LifecycleRuleFilter;\n(function (LifecycleRuleFilter) {\n LifecycleRuleFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n LifecycleRuleFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: LifecycleRuleAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(LifecycleRuleFilter || (LifecycleRuleFilter = {}));\nexport var NoncurrentVersionExpiration;\n(function (NoncurrentVersionExpiration) {\n NoncurrentVersionExpiration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoncurrentVersionExpiration || (NoncurrentVersionExpiration = {}));\nexport var NoncurrentVersionTransition;\n(function (NoncurrentVersionTransition) {\n NoncurrentVersionTransition.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoncurrentVersionTransition || (NoncurrentVersionTransition = {}));\nexport var Transition;\n(function (Transition) {\n Transition.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Transition || (Transition = {}));\nexport var LifecycleRule;\n(function (LifecycleRule) {\n LifecycleRule.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: LifecycleRuleFilter.filterSensitiveLog(obj.Filter) }))); };\n})(LifecycleRule || (LifecycleRule = {}));\nexport var GetBucketLifecycleConfigurationOutput;\n(function (GetBucketLifecycleConfigurationOutput) {\n GetBucketLifecycleConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return LifecycleRule.filterSensitiveLog(item); }) }))); };\n})(GetBucketLifecycleConfigurationOutput || (GetBucketLifecycleConfigurationOutput = {}));\nexport var GetBucketLifecycleConfigurationRequest;\n(function (GetBucketLifecycleConfigurationRequest) {\n GetBucketLifecycleConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLifecycleConfigurationRequest || (GetBucketLifecycleConfigurationRequest = {}));\nexport var GetBucketLocationOutput;\n(function (GetBucketLocationOutput) {\n GetBucketLocationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLocationOutput || (GetBucketLocationOutput = {}));\nexport var GetBucketLocationRequest;\n(function (GetBucketLocationRequest) {\n GetBucketLocationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLocationRequest || (GetBucketLocationRequest = {}));\nexport var TargetGrant;\n(function (TargetGrant) {\n TargetGrant.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TargetGrant || (TargetGrant = {}));\nexport var LoggingEnabled;\n(function (LoggingEnabled) {\n LoggingEnabled.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LoggingEnabled || (LoggingEnabled = {}));\nexport var GetBucketLoggingOutput;\n(function (GetBucketLoggingOutput) {\n GetBucketLoggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLoggingOutput || (GetBucketLoggingOutput = {}));\nexport var GetBucketLoggingRequest;\n(function (GetBucketLoggingRequest) {\n GetBucketLoggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketLoggingRequest || (GetBucketLoggingRequest = {}));\nexport var MetricsAndOperator;\n(function (MetricsAndOperator) {\n MetricsAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MetricsAndOperator || (MetricsAndOperator = {}));\nexport var MetricsFilter;\n(function (MetricsFilter) {\n MetricsFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n MetricsFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: MetricsAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(MetricsFilter || (MetricsFilter = {}));\nexport var MetricsConfiguration;\n(function (MetricsConfiguration) {\n MetricsConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: MetricsFilter.filterSensitiveLog(obj.Filter) }))); };\n})(MetricsConfiguration || (MetricsConfiguration = {}));\nexport var GetBucketMetricsConfigurationOutput;\n(function (GetBucketMetricsConfigurationOutput) {\n GetBucketMetricsConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.MetricsConfiguration && {\n MetricsConfiguration: MetricsConfiguration.filterSensitiveLog(obj.MetricsConfiguration),\n }))); };\n})(GetBucketMetricsConfigurationOutput || (GetBucketMetricsConfigurationOutput = {}));\nexport var GetBucketMetricsConfigurationRequest;\n(function (GetBucketMetricsConfigurationRequest) {\n GetBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketMetricsConfigurationRequest || (GetBucketMetricsConfigurationRequest = {}));\nexport var GetBucketNotificationConfigurationRequest;\n(function (GetBucketNotificationConfigurationRequest) {\n GetBucketNotificationConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketNotificationConfigurationRequest || (GetBucketNotificationConfigurationRequest = {}));\nexport var FilterRule;\n(function (FilterRule) {\n FilterRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(FilterRule || (FilterRule = {}));\nexport var S3KeyFilter;\n(function (S3KeyFilter) {\n S3KeyFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(S3KeyFilter || (S3KeyFilter = {}));\nexport var NotificationConfigurationFilter;\n(function (NotificationConfigurationFilter) {\n NotificationConfigurationFilter.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NotificationConfigurationFilter || (NotificationConfigurationFilter = {}));\nexport var LambdaFunctionConfiguration;\n(function (LambdaFunctionConfiguration) {\n LambdaFunctionConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(LambdaFunctionConfiguration || (LambdaFunctionConfiguration = {}));\nexport var QueueConfiguration;\n(function (QueueConfiguration) {\n QueueConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(QueueConfiguration || (QueueConfiguration = {}));\nexport var TopicConfiguration;\n(function (TopicConfiguration) {\n TopicConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(TopicConfiguration || (TopicConfiguration = {}));\nexport var NotificationConfiguration;\n(function (NotificationConfiguration) {\n NotificationConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NotificationConfiguration || (NotificationConfiguration = {}));\nexport var OwnershipControlsRule;\n(function (OwnershipControlsRule) {\n OwnershipControlsRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OwnershipControlsRule || (OwnershipControlsRule = {}));\nexport var OwnershipControls;\n(function (OwnershipControls) {\n OwnershipControls.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OwnershipControls || (OwnershipControls = {}));\nexport var GetBucketOwnershipControlsOutput;\n(function (GetBucketOwnershipControlsOutput) {\n GetBucketOwnershipControlsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketOwnershipControlsOutput || (GetBucketOwnershipControlsOutput = {}));\nexport var GetBucketOwnershipControlsRequest;\n(function (GetBucketOwnershipControlsRequest) {\n GetBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketOwnershipControlsRequest || (GetBucketOwnershipControlsRequest = {}));\nexport var GetBucketPolicyOutput;\n(function (GetBucketPolicyOutput) {\n GetBucketPolicyOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyOutput || (GetBucketPolicyOutput = {}));\nexport var GetBucketPolicyRequest;\n(function (GetBucketPolicyRequest) {\n GetBucketPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyRequest || (GetBucketPolicyRequest = {}));\nexport var PolicyStatus;\n(function (PolicyStatus) {\n PolicyStatus.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PolicyStatus || (PolicyStatus = {}));\nexport var GetBucketPolicyStatusOutput;\n(function (GetBucketPolicyStatusOutput) {\n GetBucketPolicyStatusOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyStatusOutput || (GetBucketPolicyStatusOutput = {}));\nexport var GetBucketPolicyStatusRequest;\n(function (GetBucketPolicyStatusRequest) {\n GetBucketPolicyStatusRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketPolicyStatusRequest || (GetBucketPolicyStatusRequest = {}));\nexport var DeleteMarkerReplication;\n(function (DeleteMarkerReplication) {\n DeleteMarkerReplication.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteMarkerReplication || (DeleteMarkerReplication = {}));\nexport var EncryptionConfiguration;\n(function (EncryptionConfiguration) {\n EncryptionConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(EncryptionConfiguration || (EncryptionConfiguration = {}));\nexport var ReplicationTimeValue;\n(function (ReplicationTimeValue) {\n ReplicationTimeValue.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicationTimeValue || (ReplicationTimeValue = {}));\nexport var Metrics;\n(function (Metrics) {\n Metrics.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Metrics || (Metrics = {}));\nexport var ReplicationTime;\n(function (ReplicationTime) {\n ReplicationTime.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicationTime || (ReplicationTime = {}));\nexport var Destination;\n(function (Destination) {\n Destination.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Destination || (Destination = {}));\nexport var ExistingObjectReplication;\n(function (ExistingObjectReplication) {\n ExistingObjectReplication.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ExistingObjectReplication || (ExistingObjectReplication = {}));\nexport var ReplicationRuleAndOperator;\n(function (ReplicationRuleAndOperator) {\n ReplicationRuleAndOperator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicationRuleAndOperator || (ReplicationRuleAndOperator = {}));\nexport var ReplicationRuleFilter;\n(function (ReplicationRuleFilter) {\n ReplicationRuleFilter.visit = function (value, visitor) {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n ReplicationRuleFilter.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Prefix !== undefined)\n return { Prefix: obj.Prefix };\n if (obj.Tag !== undefined)\n return { Tag: Tag.filterSensitiveLog(obj.Tag) };\n if (obj.And !== undefined)\n return { And: ReplicationRuleAndOperator.filterSensitiveLog(obj.And) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(ReplicationRuleFilter || (ReplicationRuleFilter = {}));\nexport var ReplicaModifications;\n(function (ReplicaModifications) {\n ReplicaModifications.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ReplicaModifications || (ReplicaModifications = {}));\nexport var SseKmsEncryptedObjects;\n(function (SseKmsEncryptedObjects) {\n SseKmsEncryptedObjects.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SseKmsEncryptedObjects || (SseKmsEncryptedObjects = {}));\nexport var SourceSelectionCriteria;\n(function (SourceSelectionCriteria) {\n SourceSelectionCriteria.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SourceSelectionCriteria || (SourceSelectionCriteria = {}));\nexport var ReplicationRule;\n(function (ReplicationRule) {\n ReplicationRule.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Filter && { Filter: ReplicationRuleFilter.filterSensitiveLog(obj.Filter) }))); };\n})(ReplicationRule || (ReplicationRule = {}));\nexport var ReplicationConfiguration;\n(function (ReplicationConfiguration) {\n ReplicationConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return ReplicationRule.filterSensitiveLog(item); }) }))); };\n})(ReplicationConfiguration || (ReplicationConfiguration = {}));\nexport var GetBucketReplicationOutput;\n(function (GetBucketReplicationOutput) {\n GetBucketReplicationOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ReplicationConfiguration && {\n ReplicationConfiguration: ReplicationConfiguration.filterSensitiveLog(obj.ReplicationConfiguration),\n }))); };\n})(GetBucketReplicationOutput || (GetBucketReplicationOutput = {}));\nexport var GetBucketReplicationRequest;\n(function (GetBucketReplicationRequest) {\n GetBucketReplicationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketReplicationRequest || (GetBucketReplicationRequest = {}));\nexport var GetBucketRequestPaymentOutput;\n(function (GetBucketRequestPaymentOutput) {\n GetBucketRequestPaymentOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketRequestPaymentOutput || (GetBucketRequestPaymentOutput = {}));\nexport var GetBucketRequestPaymentRequest;\n(function (GetBucketRequestPaymentRequest) {\n GetBucketRequestPaymentRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketRequestPaymentRequest || (GetBucketRequestPaymentRequest = {}));\nexport var GetBucketTaggingOutput;\n(function (GetBucketTaggingOutput) {\n GetBucketTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketTaggingOutput || (GetBucketTaggingOutput = {}));\nexport var GetBucketTaggingRequest;\n(function (GetBucketTaggingRequest) {\n GetBucketTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketTaggingRequest || (GetBucketTaggingRequest = {}));\nexport var GetBucketVersioningOutput;\n(function (GetBucketVersioningOutput) {\n GetBucketVersioningOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketVersioningOutput || (GetBucketVersioningOutput = {}));\nexport var GetBucketVersioningRequest;\n(function (GetBucketVersioningRequest) {\n GetBucketVersioningRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketVersioningRequest || (GetBucketVersioningRequest = {}));\nexport var ErrorDocument;\n(function (ErrorDocument) {\n ErrorDocument.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ErrorDocument || (ErrorDocument = {}));\nexport var IndexDocument;\n(function (IndexDocument) {\n IndexDocument.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(IndexDocument || (IndexDocument = {}));\nexport var RedirectAllRequestsTo;\n(function (RedirectAllRequestsTo) {\n RedirectAllRequestsTo.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RedirectAllRequestsTo || (RedirectAllRequestsTo = {}));\nexport var Condition;\n(function (Condition) {\n Condition.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Condition || (Condition = {}));\nexport var Redirect;\n(function (Redirect) {\n Redirect.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Redirect || (Redirect = {}));\nexport var RoutingRule;\n(function (RoutingRule) {\n RoutingRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RoutingRule || (RoutingRule = {}));\nexport var GetBucketWebsiteOutput;\n(function (GetBucketWebsiteOutput) {\n GetBucketWebsiteOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketWebsiteOutput || (GetBucketWebsiteOutput = {}));\nexport var GetBucketWebsiteRequest;\n(function (GetBucketWebsiteRequest) {\n GetBucketWebsiteRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetBucketWebsiteRequest || (GetBucketWebsiteRequest = {}));\nexport var GetObjectOutput;\n(function (GetObjectOutput) {\n GetObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(GetObjectOutput || (GetObjectOutput = {}));\nexport var GetObjectRequest;\n(function (GetObjectRequest) {\n GetObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(GetObjectRequest || (GetObjectRequest = {}));\nexport var InvalidObjectState;\n(function (InvalidObjectState) {\n InvalidObjectState.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InvalidObjectState || (InvalidObjectState = {}));\nexport var NoSuchKey;\n(function (NoSuchKey) {\n NoSuchKey.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoSuchKey || (NoSuchKey = {}));\nexport var GetObjectAclOutput;\n(function (GetObjectAclOutput) {\n GetObjectAclOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectAclOutput || (GetObjectAclOutput = {}));\nexport var GetObjectAclRequest;\n(function (GetObjectAclRequest) {\n GetObjectAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectAclRequest || (GetObjectAclRequest = {}));\nexport var ObjectLockLegalHold;\n(function (ObjectLockLegalHold) {\n ObjectLockLegalHold.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockLegalHold || (ObjectLockLegalHold = {}));\nexport var GetObjectLegalHoldOutput;\n(function (GetObjectLegalHoldOutput) {\n GetObjectLegalHoldOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLegalHoldOutput || (GetObjectLegalHoldOutput = {}));\nexport var GetObjectLegalHoldRequest;\n(function (GetObjectLegalHoldRequest) {\n GetObjectLegalHoldRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLegalHoldRequest || (GetObjectLegalHoldRequest = {}));\nexport var DefaultRetention;\n(function (DefaultRetention) {\n DefaultRetention.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DefaultRetention || (DefaultRetention = {}));\nexport var ObjectLockRule;\n(function (ObjectLockRule) {\n ObjectLockRule.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockRule || (ObjectLockRule = {}));\nexport var ObjectLockConfiguration;\n(function (ObjectLockConfiguration) {\n ObjectLockConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockConfiguration || (ObjectLockConfiguration = {}));\nexport var GetObjectLockConfigurationOutput;\n(function (GetObjectLockConfigurationOutput) {\n GetObjectLockConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLockConfigurationOutput || (GetObjectLockConfigurationOutput = {}));\nexport var GetObjectLockConfigurationRequest;\n(function (GetObjectLockConfigurationRequest) {\n GetObjectLockConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectLockConfigurationRequest || (GetObjectLockConfigurationRequest = {}));\nexport var ObjectLockRetention;\n(function (ObjectLockRetention) {\n ObjectLockRetention.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectLockRetention || (ObjectLockRetention = {}));\nexport var GetObjectRetentionOutput;\n(function (GetObjectRetentionOutput) {\n GetObjectRetentionOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectRetentionOutput || (GetObjectRetentionOutput = {}));\nexport var GetObjectRetentionRequest;\n(function (GetObjectRetentionRequest) {\n GetObjectRetentionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectRetentionRequest || (GetObjectRetentionRequest = {}));\nexport var GetObjectTaggingOutput;\n(function (GetObjectTaggingOutput) {\n GetObjectTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTaggingOutput || (GetObjectTaggingOutput = {}));\nexport var GetObjectTaggingRequest;\n(function (GetObjectTaggingRequest) {\n GetObjectTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTaggingRequest || (GetObjectTaggingRequest = {}));\nexport var GetObjectTorrentOutput;\n(function (GetObjectTorrentOutput) {\n GetObjectTorrentOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTorrentOutput || (GetObjectTorrentOutput = {}));\nexport var GetObjectTorrentRequest;\n(function (GetObjectTorrentRequest) {\n GetObjectTorrentRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetObjectTorrentRequest || (GetObjectTorrentRequest = {}));\nexport var PublicAccessBlockConfiguration;\n(function (PublicAccessBlockConfiguration) {\n PublicAccessBlockConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PublicAccessBlockConfiguration || (PublicAccessBlockConfiguration = {}));\nexport var GetPublicAccessBlockOutput;\n(function (GetPublicAccessBlockOutput) {\n GetPublicAccessBlockOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetPublicAccessBlockOutput || (GetPublicAccessBlockOutput = {}));\nexport var GetPublicAccessBlockRequest;\n(function (GetPublicAccessBlockRequest) {\n GetPublicAccessBlockRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GetPublicAccessBlockRequest || (GetPublicAccessBlockRequest = {}));\nexport var HeadBucketRequest;\n(function (HeadBucketRequest) {\n HeadBucketRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(HeadBucketRequest || (HeadBucketRequest = {}));\nexport var NoSuchBucket;\n(function (NoSuchBucket) {\n NoSuchBucket.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(NoSuchBucket || (NoSuchBucket = {}));\nexport var HeadObjectOutput;\n(function (HeadObjectOutput) {\n HeadObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(HeadObjectOutput || (HeadObjectOutput = {}));\nexport var HeadObjectRequest;\n(function (HeadObjectRequest) {\n HeadObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(HeadObjectRequest || (HeadObjectRequest = {}));\nexport var ListBucketAnalyticsConfigurationsOutput;\n(function (ListBucketAnalyticsConfigurationsOutput) {\n ListBucketAnalyticsConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.AnalyticsConfigurationList && {\n AnalyticsConfigurationList: obj.AnalyticsConfigurationList.map(function (item) {\n return AnalyticsConfiguration.filterSensitiveLog(item);\n }),\n }))); };\n})(ListBucketAnalyticsConfigurationsOutput || (ListBucketAnalyticsConfigurationsOutput = {}));\nexport var ListBucketAnalyticsConfigurationsRequest;\n(function (ListBucketAnalyticsConfigurationsRequest) {\n ListBucketAnalyticsConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketAnalyticsConfigurationsRequest || (ListBucketAnalyticsConfigurationsRequest = {}));\nexport var ListBucketIntelligentTieringConfigurationsOutput;\n(function (ListBucketIntelligentTieringConfigurationsOutput) {\n ListBucketIntelligentTieringConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketIntelligentTieringConfigurationsOutput || (ListBucketIntelligentTieringConfigurationsOutput = {}));\nexport var ListBucketIntelligentTieringConfigurationsRequest;\n(function (ListBucketIntelligentTieringConfigurationsRequest) {\n ListBucketIntelligentTieringConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketIntelligentTieringConfigurationsRequest || (ListBucketIntelligentTieringConfigurationsRequest = {}));\nexport var ListBucketInventoryConfigurationsOutput;\n(function (ListBucketInventoryConfigurationsOutput) {\n ListBucketInventoryConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.InventoryConfigurationList && {\n InventoryConfigurationList: obj.InventoryConfigurationList.map(function (item) {\n return InventoryConfiguration.filterSensitiveLog(item);\n }),\n }))); };\n})(ListBucketInventoryConfigurationsOutput || (ListBucketInventoryConfigurationsOutput = {}));\nexport var ListBucketInventoryConfigurationsRequest;\n(function (ListBucketInventoryConfigurationsRequest) {\n ListBucketInventoryConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketInventoryConfigurationsRequest || (ListBucketInventoryConfigurationsRequest = {}));\nexport var ListBucketMetricsConfigurationsOutput;\n(function (ListBucketMetricsConfigurationsOutput) {\n ListBucketMetricsConfigurationsOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.MetricsConfigurationList && {\n MetricsConfigurationList: obj.MetricsConfigurationList.map(function (item) {\n return MetricsConfiguration.filterSensitiveLog(item);\n }),\n }))); };\n})(ListBucketMetricsConfigurationsOutput || (ListBucketMetricsConfigurationsOutput = {}));\nexport var ListBucketMetricsConfigurationsRequest;\n(function (ListBucketMetricsConfigurationsRequest) {\n ListBucketMetricsConfigurationsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketMetricsConfigurationsRequest || (ListBucketMetricsConfigurationsRequest = {}));\nexport var Bucket;\n(function (Bucket) {\n Bucket.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Bucket || (Bucket = {}));\nexport var ListBucketsOutput;\n(function (ListBucketsOutput) {\n ListBucketsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListBucketsOutput || (ListBucketsOutput = {}));\nexport var CommonPrefix;\n(function (CommonPrefix) {\n CommonPrefix.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CommonPrefix || (CommonPrefix = {}));\nexport var Initiator;\n(function (Initiator) {\n Initiator.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Initiator || (Initiator = {}));\nexport var MultipartUpload;\n(function (MultipartUpload) {\n MultipartUpload.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MultipartUpload || (MultipartUpload = {}));\nexport var ListMultipartUploadsOutput;\n(function (ListMultipartUploadsOutput) {\n ListMultipartUploadsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListMultipartUploadsOutput || (ListMultipartUploadsOutput = {}));\nexport var ListMultipartUploadsRequest;\n(function (ListMultipartUploadsRequest) {\n ListMultipartUploadsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListMultipartUploadsRequest || (ListMultipartUploadsRequest = {}));\nexport var _Object;\n(function (_Object) {\n _Object.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(_Object || (_Object = {}));\nexport var ListObjectsOutput;\n(function (ListObjectsOutput) {\n ListObjectsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsOutput || (ListObjectsOutput = {}));\nexport var ListObjectsRequest;\n(function (ListObjectsRequest) {\n ListObjectsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsRequest || (ListObjectsRequest = {}));\nexport var ListObjectsV2Output;\n(function (ListObjectsV2Output) {\n ListObjectsV2Output.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsV2Output || (ListObjectsV2Output = {}));\nexport var ListObjectsV2Request;\n(function (ListObjectsV2Request) {\n ListObjectsV2Request.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectsV2Request || (ListObjectsV2Request = {}));\nexport var DeleteMarkerEntry;\n(function (DeleteMarkerEntry) {\n DeleteMarkerEntry.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(DeleteMarkerEntry || (DeleteMarkerEntry = {}));\nexport var ObjectVersion;\n(function (ObjectVersion) {\n ObjectVersion.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectVersion || (ObjectVersion = {}));\nexport var ListObjectVersionsOutput;\n(function (ListObjectVersionsOutput) {\n ListObjectVersionsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectVersionsOutput || (ListObjectVersionsOutput = {}));\nexport var ListObjectVersionsRequest;\n(function (ListObjectVersionsRequest) {\n ListObjectVersionsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListObjectVersionsRequest || (ListObjectVersionsRequest = {}));\nexport var Part;\n(function (Part) {\n Part.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Part || (Part = {}));\nexport var ListPartsOutput;\n(function (ListPartsOutput) {\n ListPartsOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListPartsOutput || (ListPartsOutput = {}));\nexport var ListPartsRequest;\n(function (ListPartsRequest) {\n ListPartsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ListPartsRequest || (ListPartsRequest = {}));\nexport var PutBucketAccelerateConfigurationRequest;\n(function (PutBucketAccelerateConfigurationRequest) {\n PutBucketAccelerateConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketAccelerateConfigurationRequest || (PutBucketAccelerateConfigurationRequest = {}));\nexport var PutBucketAclRequest;\n(function (PutBucketAclRequest) {\n PutBucketAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketAclRequest || (PutBucketAclRequest = {}));\nexport var PutBucketAnalyticsConfigurationRequest;\n(function (PutBucketAnalyticsConfigurationRequest) {\n PutBucketAnalyticsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.AnalyticsConfiguration && {\n AnalyticsConfiguration: AnalyticsConfiguration.filterSensitiveLog(obj.AnalyticsConfiguration),\n }))); };\n})(PutBucketAnalyticsConfigurationRequest || (PutBucketAnalyticsConfigurationRequest = {}));\nexport var CORSConfiguration;\n(function (CORSConfiguration) {\n CORSConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CORSConfiguration || (CORSConfiguration = {}));\nexport var PutBucketCorsRequest;\n(function (PutBucketCorsRequest) {\n PutBucketCorsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketCorsRequest || (PutBucketCorsRequest = {}));\nexport var PutBucketEncryptionRequest;\n(function (PutBucketEncryptionRequest) {\n PutBucketEncryptionRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfiguration.filterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n }))); };\n})(PutBucketEncryptionRequest || (PutBucketEncryptionRequest = {}));\nexport var PutBucketIntelligentTieringConfigurationRequest;\n(function (PutBucketIntelligentTieringConfigurationRequest) {\n PutBucketIntelligentTieringConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketIntelligentTieringConfigurationRequest || (PutBucketIntelligentTieringConfigurationRequest = {}));\nexport var PutBucketInventoryConfigurationRequest;\n(function (PutBucketInventoryConfigurationRequest) {\n PutBucketInventoryConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfiguration.filterSensitiveLog(obj.InventoryConfiguration),\n }))); };\n})(PutBucketInventoryConfigurationRequest || (PutBucketInventoryConfigurationRequest = {}));\nexport var BucketLifecycleConfiguration;\n(function (BucketLifecycleConfiguration) {\n BucketLifecycleConfiguration.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Rules && { Rules: obj.Rules.map(function (item) { return LifecycleRule.filterSensitiveLog(item); }) }))); };\n})(BucketLifecycleConfiguration || (BucketLifecycleConfiguration = {}));\nexport var PutBucketLifecycleConfigurationRequest;\n(function (PutBucketLifecycleConfigurationRequest) {\n PutBucketLifecycleConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.LifecycleConfiguration && {\n LifecycleConfiguration: BucketLifecycleConfiguration.filterSensitiveLog(obj.LifecycleConfiguration),\n }))); };\n})(PutBucketLifecycleConfigurationRequest || (PutBucketLifecycleConfigurationRequest = {}));\nexport var BucketLoggingStatus;\n(function (BucketLoggingStatus) {\n BucketLoggingStatus.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(BucketLoggingStatus || (BucketLoggingStatus = {}));\nexport var PutBucketLoggingRequest;\n(function (PutBucketLoggingRequest) {\n PutBucketLoggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketLoggingRequest || (PutBucketLoggingRequest = {}));\nexport var PutBucketMetricsConfigurationRequest;\n(function (PutBucketMetricsConfigurationRequest) {\n PutBucketMetricsConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.MetricsConfiguration && {\n MetricsConfiguration: MetricsConfiguration.filterSensitiveLog(obj.MetricsConfiguration),\n }))); };\n})(PutBucketMetricsConfigurationRequest || (PutBucketMetricsConfigurationRequest = {}));\nexport var PutBucketNotificationConfigurationRequest;\n(function (PutBucketNotificationConfigurationRequest) {\n PutBucketNotificationConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketNotificationConfigurationRequest || (PutBucketNotificationConfigurationRequest = {}));\nexport var PutBucketOwnershipControlsRequest;\n(function (PutBucketOwnershipControlsRequest) {\n PutBucketOwnershipControlsRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketOwnershipControlsRequest || (PutBucketOwnershipControlsRequest = {}));\nexport var PutBucketPolicyRequest;\n(function (PutBucketPolicyRequest) {\n PutBucketPolicyRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketPolicyRequest || (PutBucketPolicyRequest = {}));\nexport var PutBucketReplicationRequest;\n(function (PutBucketReplicationRequest) {\n PutBucketReplicationRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.ReplicationConfiguration && {\n ReplicationConfiguration: ReplicationConfiguration.filterSensitiveLog(obj.ReplicationConfiguration),\n }))); };\n})(PutBucketReplicationRequest || (PutBucketReplicationRequest = {}));\nexport var RequestPaymentConfiguration;\n(function (RequestPaymentConfiguration) {\n RequestPaymentConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RequestPaymentConfiguration || (RequestPaymentConfiguration = {}));\nexport var PutBucketRequestPaymentRequest;\n(function (PutBucketRequestPaymentRequest) {\n PutBucketRequestPaymentRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketRequestPaymentRequest || (PutBucketRequestPaymentRequest = {}));\nexport var Tagging;\n(function (Tagging) {\n Tagging.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Tagging || (Tagging = {}));\nexport var PutBucketTaggingRequest;\n(function (PutBucketTaggingRequest) {\n PutBucketTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketTaggingRequest || (PutBucketTaggingRequest = {}));\nexport var VersioningConfiguration;\n(function (VersioningConfiguration) {\n VersioningConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(VersioningConfiguration || (VersioningConfiguration = {}));\nexport var PutBucketVersioningRequest;\n(function (PutBucketVersioningRequest) {\n PutBucketVersioningRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketVersioningRequest || (PutBucketVersioningRequest = {}));\nexport var WebsiteConfiguration;\n(function (WebsiteConfiguration) {\n WebsiteConfiguration.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(WebsiteConfiguration || (WebsiteConfiguration = {}));\nexport var PutBucketWebsiteRequest;\n(function (PutBucketWebsiteRequest) {\n PutBucketWebsiteRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutBucketWebsiteRequest || (PutBucketWebsiteRequest = {}));\nexport var PutObjectOutput;\n(function (PutObjectOutput) {\n PutObjectOutput.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(PutObjectOutput || (PutObjectOutput = {}));\nexport var PutObjectRequest;\n(function (PutObjectRequest) {\n PutObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING })), (obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }))); };\n})(PutObjectRequest || (PutObjectRequest = {}));\nexport var PutObjectAclOutput;\n(function (PutObjectAclOutput) {\n PutObjectAclOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectAclOutput || (PutObjectAclOutput = {}));\nexport var PutObjectAclRequest;\n(function (PutObjectAclRequest) {\n PutObjectAclRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectAclRequest || (PutObjectAclRequest = {}));\nexport var PutObjectLegalHoldOutput;\n(function (PutObjectLegalHoldOutput) {\n PutObjectLegalHoldOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLegalHoldOutput || (PutObjectLegalHoldOutput = {}));\nexport var PutObjectLegalHoldRequest;\n(function (PutObjectLegalHoldRequest) {\n PutObjectLegalHoldRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLegalHoldRequest || (PutObjectLegalHoldRequest = {}));\nexport var PutObjectLockConfigurationOutput;\n(function (PutObjectLockConfigurationOutput) {\n PutObjectLockConfigurationOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLockConfigurationOutput || (PutObjectLockConfigurationOutput = {}));\nexport var PutObjectLockConfigurationRequest;\n(function (PutObjectLockConfigurationRequest) {\n PutObjectLockConfigurationRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectLockConfigurationRequest || (PutObjectLockConfigurationRequest = {}));\nexport var PutObjectRetentionOutput;\n(function (PutObjectRetentionOutput) {\n PutObjectRetentionOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectRetentionOutput || (PutObjectRetentionOutput = {}));\nexport var PutObjectRetentionRequest;\n(function (PutObjectRetentionRequest) {\n PutObjectRetentionRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectRetentionRequest || (PutObjectRetentionRequest = {}));\nexport var PutObjectTaggingOutput;\n(function (PutObjectTaggingOutput) {\n PutObjectTaggingOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectTaggingOutput || (PutObjectTaggingOutput = {}));\nexport var PutObjectTaggingRequest;\n(function (PutObjectTaggingRequest) {\n PutObjectTaggingRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutObjectTaggingRequest || (PutObjectTaggingRequest = {}));\nexport var PutPublicAccessBlockRequest;\n(function (PutPublicAccessBlockRequest) {\n PutPublicAccessBlockRequest.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(PutPublicAccessBlockRequest || (PutPublicAccessBlockRequest = {}));\nexport var ObjectAlreadyInActiveTierError;\n(function (ObjectAlreadyInActiveTierError) {\n ObjectAlreadyInActiveTierError.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ObjectAlreadyInActiveTierError || (ObjectAlreadyInActiveTierError = {}));\nexport var RestoreObjectOutput;\n(function (RestoreObjectOutput) {\n RestoreObjectOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RestoreObjectOutput || (RestoreObjectOutput = {}));\nexport var GlacierJobParameters;\n(function (GlacierJobParameters) {\n GlacierJobParameters.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(GlacierJobParameters || (GlacierJobParameters = {}));\nexport var Encryption;\n(function (Encryption) {\n Encryption.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.KMSKeyId && { KMSKeyId: SENSITIVE_STRING }))); };\n})(Encryption || (Encryption = {}));\n//# sourceMappingURL=models_0.js.map","/**\n * Escapes characters that can not be in an XML attribute.\n */\nexport function escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLWF0dHJpYnV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lc2NhcGUtYXR0cmlidXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFhO0lBQzNDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDMUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXNjYXBlcyBjaGFyYWN0ZXJzIHRoYXQgY2FuIG5vdCBiZSBpbiBhbiBYTUwgYXR0cmlidXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlQXR0cmlidXRlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvJi9nLCBcIiZhbXA7XCIpLnJlcGxhY2UoLzwvZywgXCImbHQ7XCIpLnJlcGxhY2UoLz4vZywgXCImZ3Q7XCIpLnJlcGxhY2UoL1wiL2csIFwiJnF1b3Q7XCIpO1xufVxuIl19","import { __values } from \"tslib\";\nimport { escapeAttribute } from \"./escape-attribute\";\n/**\n * Represents an XML node.\n */\nvar XmlNode = /** @class */ (function () {\n function XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n }\n XmlNode.prototype.withName = function (name) {\n this.name = name;\n return this;\n };\n XmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n };\n XmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n };\n XmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n };\n XmlNode.prototype.toString = function () {\n var e_1, _a;\n var hasChildren = Boolean(this.children.length);\n var xmlText = \"<\" + this.name;\n // add attributes\n var attributes = this.attributes;\n try {\n for (var _b = __values(Object.keys(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var attributeName = _c.value;\n var attribute = attributes[attributeName];\n if (typeof attribute !== \"undefined\" && attribute !== null) {\n xmlText += \" \" + attributeName + \"=\\\"\" + escapeAttribute(\"\" + attribute) + \"\\\"\";\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return (xmlText += !hasChildren ? \"/>\" : \">\" + this.children.map(function (c) { return c.toString(); }).join(\"\") + \"\");\n };\n return XmlNode;\n}());\nexport { XmlNode };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWG1sTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9YbWxOb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHckQ7O0dBRUc7QUFDSDtJQUdFLGlCQUFvQixJQUFZLEVBQWtCLFFBQTJCO1FBQTNCLHlCQUFBLEVBQUEsYUFBMkI7UUFBekQsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFrQixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUZyRSxlQUFVLEdBQTRCLEVBQUUsQ0FBQztJQUUrQixDQUFDO0lBRWpGLDBCQUFRLEdBQVIsVUFBUyxJQUFZO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELDhCQUFZLEdBQVosVUFBYSxJQUFZLEVBQUUsS0FBVTtRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCw4QkFBWSxHQUFaLFVBQWEsS0FBaUI7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUNBQWUsR0FBZixVQUFnQixJQUFZO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCwwQkFBUSxHQUFSOztRQUNFLElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELElBQUksT0FBTyxHQUFHLE1BQUksSUFBSSxDQUFDLElBQU0sQ0FBQztRQUM5QixpQkFBaUI7UUFDakIsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzs7WUFDbkMsS0FBNEIsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBaEQsSUFBTSxhQUFhLFdBQUE7Z0JBQ3RCLElBQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtvQkFDMUQsT0FBTyxJQUFJLE1BQUksYUFBYSxXQUFLLGVBQWUsQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQUcsQ0FBQztpQkFDckU7YUFDRjs7Ozs7Ozs7O1FBRUQsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFaLENBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBSyxJQUFJLENBQUMsSUFBSSxNQUFHLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBQ0gsY0FBQztBQUFELENBQUMsQUF2Q0QsSUF1Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlc2NhcGVBdHRyaWJ1dGUgfSBmcm9tIFwiLi9lc2NhcGUtYXR0cmlidXRlXCI7XG5pbXBvcnQgeyBTdHJpbmdhYmxlIH0gZnJvbSBcIi4vc3RyaW5nYWJsZVwiO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gWE1MIG5vZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBYbWxOb2RlIHtcbiAgcHJpdmF0ZSBhdHRyaWJ1dGVzOiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmFtZTogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgY2hpbGRyZW46IFN0cmluZ2FibGVbXSA9IFtdKSB7fVxuXG4gIHdpdGhOYW1lKG5hbWU6IHN0cmluZyk6IFhtbE5vZGUge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRBdHRyaWJ1dGUobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogWG1sTm9kZSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRDaGlsZE5vZGUoY2hpbGQ6IFN0cmluZ2FibGUpOiBYbWxOb2RlIHtcbiAgICB0aGlzLmNoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVtb3ZlQXR0cmlidXRlKG5hbWU6IHN0cmluZyk6IFhtbE5vZGUge1xuICAgIGRlbGV0ZSB0aGlzLmF0dHJpYnV0ZXNbbmFtZV07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gQm9vbGVhbih0aGlzLmNoaWxkcmVuLmxlbmd0aCk7XG4gICAgbGV0IHhtbFRleHQgPSBgPCR7dGhpcy5uYW1lfWA7XG4gICAgLy8gYWRkIGF0dHJpYnV0ZXNcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5hdHRyaWJ1dGVzO1xuICAgIGZvciAoY29uc3QgYXR0cmlidXRlTmFtZSBvZiBPYmplY3Qua2V5cyhhdHRyaWJ1dGVzKSkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gYXR0cmlidXRlc1thdHRyaWJ1dGVOYW1lXTtcbiAgICAgIGlmICh0eXBlb2YgYXR0cmlidXRlICE9PSBcInVuZGVmaW5lZFwiICYmIGF0dHJpYnV0ZSAhPT0gbnVsbCkge1xuICAgICAgICB4bWxUZXh0ICs9IGAgJHthdHRyaWJ1dGVOYW1lfT1cIiR7ZXNjYXBlQXR0cmlidXRlKFwiXCIgKyBhdHRyaWJ1dGUpfVwiYDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKHhtbFRleHQgKz0gIWhhc0NoaWxkcmVuID8gXCIvPlwiIDogYD4ke3RoaXMuY2hpbGRyZW4ubWFwKChjKSA9PiBjLnRvU3RyaW5nKCkpLmpvaW4oXCJcIil9PC8ke3RoaXMubmFtZX0+YCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Escapes characters that can not be in an XML element.\n */\nexport function escapeElement(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXNjYXBlLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQWE7SUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXNjYXBlcyBjaGFyYWN0ZXJzIHRoYXQgY2FuIG5vdCBiZSBpbiBhbiBYTUwgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUVsZW1lbnQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKC8mL2csIFwiJmFtcDtcIikucmVwbGFjZSgvPC9nLCBcIiZsdDtcIikucmVwbGFjZSgvPi9nLCBcIiZndDtcIik7XG59XG4iXX0=","import { escapeElement } from \"./escape-element\";\n/**\n * Represents an XML text value.\n */\nvar XmlText = /** @class */ (function () {\n function XmlText(value) {\n this.value = value;\n }\n XmlText.prototype.toString = function () {\n return escapeElement(\"\" + this.value);\n };\n return XmlText;\n}());\nexport { XmlText };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiWG1sVGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9YbWxUZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRDs7R0FFRztBQUNIO0lBQ0UsaUJBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBQUcsQ0FBQztJQUVyQywwQkFBUSxHQUFSO1FBQ0UsT0FBTyxhQUFhLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0gsY0FBQztBQUFELENBQUMsQUFORCxJQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXNjYXBlRWxlbWVudCB9IGZyb20gXCIuL2VzY2FwZS1lbGVtZW50XCI7XG5pbXBvcnQgeyBTdHJpbmdhYmxlIH0gZnJvbSBcIi4vc3RyaW5nYWJsZVwiO1xuLyoqXG4gKiBSZXByZXNlbnRzIGFuIFhNTCB0ZXh0IHZhbHVlLlxuICovXG5leHBvcnQgY2xhc3MgWG1sVGV4dCBpbXBsZW1lbnRzIFN0cmluZ2FibGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhbHVlOiBzdHJpbmcpIHt9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZXNjYXBlRWxlbWVudChcIlwiICsgdGhpcy52YWx1ZSk7XG4gIH1cbn1cbiJdfQ==","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { AnalyticsFilter, LifecycleRuleFilter, MetricsFilter, ReplicationRuleFilter, } from \"../models/models_0\";\nimport { HttpRequest as __HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { dateToUtcString as __dateToUtcString, extendedEncodeURIComponent as __extendedEncodeURIComponent, getArrayIfSingleItem as __getArrayIfSingleItem, getValueFromTextNode as __getValueFromTextNode, } from \"@aws-sdk/smithy-client\";\nimport { XmlNode as __XmlNode, XmlText as __XmlText } from \"@aws-sdk/xml-builder\";\nimport { parse as xmlParse } from \"fast-xml-parser\";\nexport var serializeAws_restXmlAbortMultipartUploadCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"x-id\": \"AbortMultipartUpload\" }, (input.UploadId !== undefined && { uploadId: input.UploadId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCompleteMultipartUploadCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({}, (input.UploadId !== undefined && { uploadId: input.UploadId }));\n if (input.MultipartUpload !== undefined) {\n contents = serializeAws_restXmlCompletedMultipartUpload(input.MultipartUpload, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCopyObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.CacheControl) && { \"cache-control\": input.CacheControl })), (isSerializableHeaderValue(input.ContentDisposition) && { \"content-disposition\": input.ContentDisposition })), (isSerializableHeaderValue(input.ContentEncoding) && { \"content-encoding\": input.ContentEncoding })), (isSerializableHeaderValue(input.ContentLanguage) && { \"content-language\": input.ContentLanguage })), (isSerializableHeaderValue(input.ContentType) && { \"content-type\": input.ContentType })), (isSerializableHeaderValue(input.CopySource) && { \"x-amz-copy-source\": input.CopySource })), (isSerializableHeaderValue(input.CopySourceIfMatch) && {\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfModifiedSince) && {\n \"x-amz-copy-source-if-modified-since\": __dateToUtcString(input.CopySourceIfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.CopySourceIfNoneMatch) && {\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince) && {\n \"x-amz-copy-source-if-unmodified-since\": __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.Expires) && { expires: __dateToUtcString(input.Expires).toString() })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.MetadataDirective) && { \"x-amz-metadata-directive\": input.MetadataDirective })), (isSerializableHeaderValue(input.TaggingDirective) && { \"x-amz-tagging-directive\": input.TaggingDirective })), (isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n })), (isSerializableHeaderValue(input.StorageClass) && { \"x-amz-storage-class\": input.StorageClass })), (isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n })), (isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n })), (isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString(),\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerAlgorithm) && {\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKey) && {\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKeyMD5) && {\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Tagging) && { \"x-amz-tagging\": input.Tagging })), (isSerializableHeaderValue(input.ObjectLockMode) && { \"x-amz-object-lock-mode\": input.ObjectLockMode })), (isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (isSerializableHeaderValue(input.ExpectedSourceBucketOwner) && {\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n })), (input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n return (__assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a)));\n }, {})));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n \"x-id\": \"CopyObject\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCreateBucketCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWrite) && { \"x-amz-grant-write\": input.GrantWrite })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ObjectLockEnabledForBucket) && {\n \"x-amz-bucket-object-lock-enabled\": input.ObjectLockEnabledForBucket.toString(),\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.CreateBucketConfiguration !== undefined) {\n contents = serializeAws_restXmlCreateBucketConfiguration(input.CreateBucketConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlCreateMultipartUploadCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.CacheControl) && { \"cache-control\": input.CacheControl })), (isSerializableHeaderValue(input.ContentDisposition) && { \"content-disposition\": input.ContentDisposition })), (isSerializableHeaderValue(input.ContentEncoding) && { \"content-encoding\": input.ContentEncoding })), (isSerializableHeaderValue(input.ContentLanguage) && { \"content-language\": input.ContentLanguage })), (isSerializableHeaderValue(input.ContentType) && { \"content-type\": input.ContentType })), (isSerializableHeaderValue(input.Expires) && { expires: __dateToUtcString(input.Expires).toString() })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n })), (isSerializableHeaderValue(input.StorageClass) && { \"x-amz-storage-class\": input.StorageClass })), (isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n })), (isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n })), (isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString(),\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Tagging) && { \"x-amz-tagging\": input.Tagging })), (isSerializableHeaderValue(input.ObjectLockMode) && { \"x-amz-object-lock-mode\": input.ObjectLockMode })), (isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n return (__assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a)));\n }, {})));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n uploads: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketCorsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n cors: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketEncryptionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n encryption: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {};\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketInventoryConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketLifecycleCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n lifecycle: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketMetricsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketOwnershipControlsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n ownershipControls: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketPolicyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policy: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketReplicationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n replication: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n tagging: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteBucketWebsiteCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n website: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.MFA) && { \"x-amz-mfa\": input.MFA })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString(),\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"x-id\": \"DeleteObject\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteObjectsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.MFA) && { \"x-amz-mfa\": input.MFA })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString(),\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n delete: \"\",\n };\n if (input.Delete !== undefined) {\n contents = serializeAws_restXmlDelete(input.Delete, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeleteObjectTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ tagging: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlDeletePublicAccessBlockCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n publicAccessBlock: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"DELETE\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketAccelerateConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n accelerate: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n acl: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketAnalyticsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\", \"x-id\": \"GetBucketAnalyticsConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketCorsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n cors: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketEncryptionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n encryption: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {};\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\", \"x-id\": \"GetBucketIntelligentTieringConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketInventoryConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\", \"x-id\": \"GetBucketInventoryConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketLifecycleConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n lifecycle: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketLocationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n location: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketLoggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n logging: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketMetricsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\", \"x-id\": \"GetBucketMetricsConfiguration\" }, (input.Id !== undefined && { id: input.Id }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketNotificationConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n notification: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketOwnershipControlsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n ownershipControls: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketPolicyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policy: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketPolicyStatusCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policyStatus: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketReplicationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n replication: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketRequestPaymentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n requestPayment: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n tagging: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketVersioningCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n versioning: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetBucketWebsiteCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n website: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.IfMatch) && { \"if-match\": input.IfMatch })), (isSerializableHeaderValue(input.IfModifiedSince) && {\n \"if-modified-since\": __dateToUtcString(input.IfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.IfNoneMatch) && { \"if-none-match\": input.IfNoneMatch })), (isSerializableHeaderValue(input.IfUnmodifiedSince) && {\n \"if-unmodified-since\": __dateToUtcString(input.IfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.Range) && { range: input.Range })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"x-id\": \"GetObject\" }, (input.ResponseCacheControl !== undefined && { \"response-cache-control\": input.ResponseCacheControl })), (input.ResponseContentDisposition !== undefined && {\n \"response-content-disposition\": input.ResponseContentDisposition,\n })), (input.ResponseContentEncoding !== undefined && { \"response-content-encoding\": input.ResponseContentEncoding })), (input.ResponseContentLanguage !== undefined && { \"response-content-language\": input.ResponseContentLanguage })), (input.ResponseContentType !== undefined && { \"response-content-type\": input.ResponseContentType })), (input.ResponseExpires !== undefined && {\n \"response-expires\": (input.ResponseExpires.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (input.VersionId !== undefined && { versionId: input.VersionId })), (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ acl: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectLegalHoldCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"legal-hold\": \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectLockConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n \"object-lock\": \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectRetentionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ retention: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ tagging: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetObjectTorrentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n torrent: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlGetPublicAccessBlockCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n publicAccessBlock: \"\",\n };\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlHeadBucketCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"HEAD\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlHeadObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.IfMatch) && { \"if-match\": input.IfMatch })), (isSerializableHeaderValue(input.IfModifiedSince) && {\n \"if-modified-since\": __dateToUtcString(input.IfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.IfNoneMatch) && { \"if-none-match\": input.IfNoneMatch })), (isSerializableHeaderValue(input.IfUnmodifiedSince) && {\n \"if-unmodified-since\": __dateToUtcString(input.IfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.Range) && { range: input.Range })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign({}, (input.VersionId !== undefined && { versionId: input.VersionId })), (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"HEAD\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketAnalyticsConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\", \"x-id\": \"ListBucketAnalyticsConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {};\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\", \"x-id\": \"ListBucketIntelligentTieringConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketInventoryConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\", \"x-id\": \"ListBucketInventoryConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketMetricsConfigurationsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\", \"x-id\": \"ListBucketMetricsConfigurations\" }, (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListBucketsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {};\n resolvedPath = \"/\";\n body = \"\";\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListMultipartUploadsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign({ uploads: \"\" }, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.KeyMarker !== undefined && { \"key-marker\": input.KeyMarker })), (input.MaxUploads !== undefined && { \"max-uploads\": input.MaxUploads.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix })), (input.UploadIdMarker !== undefined && { \"upload-id-marker\": input.UploadIdMarker }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListObjectsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign({}, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.Marker !== undefined && { marker: input.Marker })), (input.MaxKeys !== undefined && { \"max-keys\": input.MaxKeys.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListObjectsV2Command = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"list-type\": \"2\" }, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.MaxKeys !== undefined && { \"max-keys\": input.MaxKeys.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix })), (input.ContinuationToken !== undefined && { \"continuation-token\": input.ContinuationToken })), (input.FetchOwner !== undefined && { \"fetch-owner\": input.FetchOwner.toString() })), (input.StartAfter !== undefined && { \"start-after\": input.StartAfter }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListObjectVersionsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({}, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign(__assign(__assign(__assign(__assign(__assign({ versions: \"\" }, (input.Delimiter !== undefined && { delimiter: input.Delimiter })), (input.EncodingType !== undefined && { \"encoding-type\": input.EncodingType })), (input.KeyMarker !== undefined && { \"key-marker\": input.KeyMarker })), (input.MaxKeys !== undefined && { \"max-keys\": input.MaxKeys.toString() })), (input.Prefix !== undefined && { prefix: input.Prefix })), (input.VersionIdMarker !== undefined && { \"version-id-marker\": input.VersionIdMarker }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlListPartsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({}, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign(__assign({ \"x-id\": \"ListParts\" }, (input.MaxParts !== undefined && { \"max-parts\": input.MaxParts.toString() })), (input.PartNumberMarker !== undefined && { \"part-number-marker\": input.PartNumberMarker })), (input.UploadId !== undefined && { uploadId: input.UploadId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"GET\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketAccelerateConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n accelerate: \"\",\n };\n if (input.AccelerateConfiguration !== undefined) {\n contents = serializeAws_restXmlAccelerateConfiguration(input.AccelerateConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWrite) && { \"x-amz-grant-write\": input.GrantWrite })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n acl: \"\",\n };\n if (input.AccessControlPolicy !== undefined) {\n contents = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketAnalyticsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ analytics: \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.AnalyticsConfiguration !== undefined) {\n contents = serializeAws_restXmlAnalyticsConfiguration(input.AnalyticsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketCorsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n cors: \"\",\n };\n if (input.CORSConfiguration !== undefined) {\n contents = serializeAws_restXmlCORSConfiguration(input.CORSConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketEncryptionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n encryption: \"\",\n };\n if (input.ServerSideEncryptionConfiguration !== undefined) {\n contents = serializeAws_restXmlServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = {\n \"content-type\": \"application/xml\",\n };\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ \"intelligent-tiering\": \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.IntelligentTieringConfiguration !== undefined) {\n contents = serializeAws_restXmlIntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketInventoryConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ inventory: \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.InventoryConfiguration !== undefined) {\n contents = serializeAws_restXmlInventoryConfiguration(input.InventoryConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketLifecycleConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n lifecycle: \"\",\n };\n if (input.LifecycleConfiguration !== undefined) {\n contents = serializeAws_restXmlBucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketLoggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n logging: \"\",\n };\n if (input.BucketLoggingStatus !== undefined) {\n contents = serializeAws_restXmlBucketLoggingStatus(input.BucketLoggingStatus, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketMetricsConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = __assign({ metrics: \"\" }, (input.Id !== undefined && { id: input.Id }));\n if (input.MetricsConfiguration !== undefined) {\n contents = serializeAws_restXmlMetricsConfiguration(input.MetricsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketNotificationConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n notification: \"\",\n };\n if (input.NotificationConfiguration !== undefined) {\n contents = serializeAws_restXmlNotificationConfiguration(input.NotificationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketOwnershipControlsCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n ownershipControls: \"\",\n };\n if (input.OwnershipControls !== undefined) {\n contents = serializeAws_restXmlOwnershipControls(input.OwnershipControls, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketPolicyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"text/plain\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ConfirmRemoveSelfBucketAccess) && {\n \"x-amz-confirm-remove-self-bucket-access\": input.ConfirmRemoveSelfBucketAccess.toString(),\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n policy: \"\",\n };\n if (input.Policy !== undefined) {\n contents = input.Policy;\n body = contents;\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketReplicationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.Token) && { \"x-amz-bucket-object-lock-token\": input.Token })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n replication: \"\",\n };\n if (input.ReplicationConfiguration !== undefined) {\n contents = serializeAws_restXmlReplicationConfiguration(input.ReplicationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketRequestPaymentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n requestPayment: \"\",\n };\n if (input.RequestPaymentConfiguration !== undefined) {\n contents = serializeAws_restXmlRequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n tagging: \"\",\n };\n if (input.Tagging !== undefined) {\n contents = serializeAws_restXmlTagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketVersioningCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.MFA) && { \"x-amz-mfa\": input.MFA })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n versioning: \"\",\n };\n if (input.VersioningConfiguration !== undefined) {\n contents = serializeAws_restXmlVersioningConfiguration(input.VersioningConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutBucketWebsiteCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n website: \"\",\n };\n if (input.WebsiteConfiguration !== undefined) {\n contents = serializeAws_restXmlWebsiteConfiguration(input.WebsiteConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/octet-stream\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.CacheControl) && { \"cache-control\": input.CacheControl })), (isSerializableHeaderValue(input.ContentDisposition) && { \"content-disposition\": input.ContentDisposition })), (isSerializableHeaderValue(input.ContentEncoding) && { \"content-encoding\": input.ContentEncoding })), (isSerializableHeaderValue(input.ContentLanguage) && { \"content-language\": input.ContentLanguage })), (isSerializableHeaderValue(input.ContentLength) && { \"content-length\": input.ContentLength.toString() })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ContentType) && { \"content-type\": input.ContentType })), (isSerializableHeaderValue(input.Expires) && { expires: __dateToUtcString(input.Expires).toString() })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.ServerSideEncryption) && {\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n })), (isSerializableHeaderValue(input.StorageClass) && { \"x-amz-storage-class\": input.StorageClass })), (isSerializableHeaderValue(input.WebsiteRedirectLocation) && {\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.SSEKMSKeyId) && {\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n })), (isSerializableHeaderValue(input.SSEKMSEncryptionContext) && {\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n })), (isSerializableHeaderValue(input.BucketKeyEnabled) && {\n \"x-amz-server-side-encryption-bucket-key-enabled\": input.BucketKeyEnabled.toString(),\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Tagging) && { \"x-amz-tagging\": input.Tagging })), (isSerializableHeaderValue(input.ObjectLockMode) && { \"x-amz-object-lock-mode\": input.ObjectLockMode })), (isSerializableHeaderValue(input.ObjectLockRetainUntilDate) && {\n \"x-amz-object-lock-retain-until-date\": (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n })), (isSerializableHeaderValue(input.ObjectLockLegalHoldStatus) && {\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce(function (acc, suffix) {\n var _a;\n return (__assign(__assign({}, acc), (_a = {}, _a[\"x-amz-meta-\" + suffix.toLowerCase()] = input.Metadata[suffix], _a)));\n }, {})));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n \"x-id\": \"PutObject\",\n };\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectAclCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ACL) && { \"x-amz-acl\": input.ACL })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.GrantFullControl) && { \"x-amz-grant-full-control\": input.GrantFullControl })), (isSerializableHeaderValue(input.GrantRead) && { \"x-amz-grant-read\": input.GrantRead })), (isSerializableHeaderValue(input.GrantReadACP) && { \"x-amz-grant-read-acp\": input.GrantReadACP })), (isSerializableHeaderValue(input.GrantWrite) && { \"x-amz-grant-write\": input.GrantWrite })), (isSerializableHeaderValue(input.GrantWriteACP) && { \"x-amz-grant-write-acp\": input.GrantWriteACP })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ acl: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.AccessControlPolicy !== undefined) {\n contents = serializeAws_restXmlAccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectLegalHoldCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ \"legal-hold\": \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.LegalHold !== undefined) {\n contents = serializeAws_restXmlObjectLockLegalHold(input.LegalHold, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectLockConfigurationCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.Token) && { \"x-amz-bucket-object-lock-token\": input.Token })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n \"object-lock\": \"\",\n };\n if (input.ObjectLockConfiguration !== undefined) {\n contents = serializeAws_restXmlObjectLockConfiguration(input.ObjectLockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectRetentionCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.BypassGovernanceRetention) && {\n \"x-amz-bypass-governance-retention\": input.BypassGovernanceRetention.toString(),\n })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ retention: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.Retention !== undefined) {\n contents = serializeAws_restXmlObjectLockRetention(input.Retention, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutObjectTaggingCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ tagging: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.Tagging !== undefined) {\n contents = serializeAws_restXmlTagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlPutPublicAccessBlockCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n query = {\n publicAccessBlock: \"\",\n };\n if (input.PublicAccessBlockConfiguration !== undefined) {\n contents = serializeAws_restXmlPublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlRestoreObjectCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign({ restore: \"\" }, (input.VersionId !== undefined && { versionId: input.VersionId }));\n if (input.RestoreRequest !== undefined) {\n contents = serializeAws_restXmlRestoreRequest(input.RestoreRequest, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlSelectObjectContentCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, bodyNode, node, node, node, node, node, node, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign({ \"content-type\": \"application/xml\" }, (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = {\n select: \"\",\n \"select-type\": \"2\",\n };\n body = '';\n bodyNode = new __XmlNode(\"SelectObjectContentRequest\");\n bodyNode.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n if (input.Expression !== undefined) {\n node = new __XmlNode(\"Expression\").addChildNode(new __XmlText(input.Expression)).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType !== undefined) {\n node = new __XmlNode(\"ExpressionType\")\n .addChildNode(new __XmlText(input.ExpressionType))\n .withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.InputSerialization !== undefined) {\n node = serializeAws_restXmlInputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization !== undefined) {\n node = serializeAws_restXmlOutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.RequestProgress !== undefined) {\n node = serializeAws_restXmlRequestProgress(input.RequestProgress, context).withName(\"RequestProgress\");\n bodyNode.addChildNode(node);\n }\n if (input.ScanRange !== undefined) {\n node = serializeAws_restXmlScanRange(input.ScanRange, context).withName(\"ScanRange\");\n bodyNode.addChildNode(node);\n }\n body += bodyNode.toString();\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"POST\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlUploadPartCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, contents, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign({ \"content-type\": \"application/octet-stream\" }, (isSerializableHeaderValue(input.ContentLength) && { \"content-length\": input.ContentLength.toString() })), (isSerializableHeaderValue(input.ContentMD5) && { \"content-md5\": input.ContentMD5 })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign({ \"x-id\": \"UploadPart\" }, (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() })), (input.UploadId !== undefined && { uploadId: input.UploadId }));\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var serializeAws_restXmlUploadPartCopyCommand = function (input, context) { return __awaiter(void 0, void 0, void 0, function () {\n var headers, resolvedPath, labelValue, labelValue, query, body, _a, hostname, _b, protocol, port;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n headers = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (isSerializableHeaderValue(input.CopySource) && { \"x-amz-copy-source\": input.CopySource })), (isSerializableHeaderValue(input.CopySourceIfMatch) && {\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfModifiedSince) && {\n \"x-amz-copy-source-if-modified-since\": __dateToUtcString(input.CopySourceIfModifiedSince).toString(),\n })), (isSerializableHeaderValue(input.CopySourceIfNoneMatch) && {\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n })), (isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince) && {\n \"x-amz-copy-source-if-unmodified-since\": __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString(),\n })), (isSerializableHeaderValue(input.CopySourceRange) && { \"x-amz-copy-source-range\": input.CopySourceRange })), (isSerializableHeaderValue(input.SSECustomerAlgorithm) && {\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.SSECustomerKey) && {\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n })), (isSerializableHeaderValue(input.SSECustomerKeyMD5) && {\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerAlgorithm) && {\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKey) && {\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n })), (isSerializableHeaderValue(input.CopySourceSSECustomerKeyMD5) && {\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n })), (isSerializableHeaderValue(input.RequestPayer) && { \"x-amz-request-payer\": input.RequestPayer })), (isSerializableHeaderValue(input.ExpectedBucketOwner) && {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n })), (isSerializableHeaderValue(input.ExpectedSourceBucketOwner) && {\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n }));\n resolvedPath = \"/{Bucket}/{Key+}\";\n if (input.Bucket !== undefined) {\n labelValue = input.Bucket;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Bucket.\");\n }\n resolvedPath = resolvedPath.replace(\"{Bucket}\", __extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Bucket.\");\n }\n if (input.Key !== undefined) {\n labelValue = input.Key;\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: Key.\");\n }\n resolvedPath = resolvedPath.replace(\"{Key+}\", labelValue\n .split(\"/\")\n .map(function (segment) { return __extendedEncodeURIComponent(segment); })\n .join(\"/\"));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: Key.\");\n }\n query = __assign(__assign({ \"x-id\": \"UploadPartCopy\" }, (input.PartNumber !== undefined && { partNumber: input.PartNumber.toString() })), (input.UploadId !== undefined && { uploadId: input.UploadId }));\n return [4 /*yield*/, context.endpoint()];\n case 1:\n _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? \"https\" : _b, port = _a.port;\n return [2 /*return*/, new __HttpRequest({\n protocol: protocol,\n hostname: hostname,\n port: port,\n method: \"PUT\",\n headers: headers,\n path: resolvedPath,\n query: query,\n body: body,\n })];\n }\n });\n}); };\nexport var deserializeAws_restXmlAbortMultipartUploadCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlAbortMultipartUploadCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlAbortMultipartUploadCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchUpload\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchUpload\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchUploadResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlCompleteMultipartUploadCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlCompleteMultipartUploadCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Bucket: undefined,\n BucketKeyEnabled: undefined,\n ETag: undefined,\n Expiration: undefined,\n Key: undefined,\n Location: undefined,\n RequestCharged: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data[\"ETag\"] !== undefined) {\n contents.ETag = data[\"ETag\"];\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = data[\"Key\"];\n }\n if (data[\"Location\"] !== undefined) {\n contents.Location = data[\"Location\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlCompleteMultipartUploadCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlCopyObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlCopyObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n CopyObjectResult: undefined,\n CopySourceVersionId: undefined,\n Expiration: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-copy-source-version-id\"] !== undefined) {\n contents.CopySourceVersionId = output.headers[\"x-amz-copy-source-version-id\"];\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.CopyObjectResult = deserializeAws_restXmlCopyObjectResult(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlCopyObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ObjectNotInActiveTierError\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#ObjectNotInActiveTierError\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlObjectNotInActiveTierErrorResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlCreateBucketCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlCreateBucketCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Location: undefined,\n };\n if (output.headers[\"location\"] !== undefined) {\n contents.Location = output.headers[\"location\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlCreateBucketCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, parsedBody, message;\n var _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = [__assign({}, output)];\n _e = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_e.body = _f.sent(), _e)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"BucketAlreadyExists\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#BucketAlreadyExists\": return [3 /*break*/, 2];\n case \"BucketAlreadyOwnedByYou\": return [3 /*break*/, 4];\n case \"com.amazonaws.s3#BucketAlreadyOwnedByYou\": return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlBucketAlreadyExistsResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_restXmlBucketAlreadyOwnedByYouResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 6:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _f.label = 7;\n case 7:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlCreateMultipartUploadCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlCreateMultipartUploadCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AbortDate: undefined,\n AbortRuleId: undefined,\n Bucket: undefined,\n BucketKeyEnabled: undefined,\n Key: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n UploadId: undefined,\n };\n if (output.headers[\"x-amz-abort-date\"] !== undefined) {\n contents.AbortDate = new Date(output.headers[\"x-amz-abort-date\"]);\n }\n if (output.headers[\"x-amz-abort-rule-id\"] !== undefined) {\n contents.AbortRuleId = output.headers[\"x-amz-abort-rule-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = data[\"Key\"];\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = data[\"UploadId\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlCreateMultipartUploadCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketAnalyticsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketCorsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketCorsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketCorsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketEncryptionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketEncryptionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketEncryptionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketIntelligentTieringConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketInventoryConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketInventoryConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketInventoryConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketLifecycleCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketLifecycleCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketLifecycleCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketMetricsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketMetricsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketMetricsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketOwnershipControlsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketOwnershipControlsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketOwnershipControlsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketPolicyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketPolicyCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketPolicyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketReplicationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketReplicationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketReplicationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteBucketWebsiteCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteBucketWebsiteCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteBucketWebsiteCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n DeleteMarker: undefined,\n RequestCharged: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = output.headers[\"x-amz-delete-marker\"] === \"true\";\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteObjectsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteObjectsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Deleted: undefined,\n Errors: undefined,\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.Deleted === \"\") {\n contents.Deleted = [];\n }\n if (data[\"Deleted\"] !== undefined) {\n contents.Deleted = deserializeAws_restXmlDeletedObjects(__getArrayIfSingleItem(data[\"Deleted\"]), context);\n }\n if (data.Error === \"\") {\n contents.Errors = [];\n }\n if (data[\"Error\"] !== undefined) {\n contents.Errors = deserializeAws_restXmlErrors(__getArrayIfSingleItem(data[\"Error\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteObjectsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeleteObjectTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeleteObjectTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeleteObjectTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlDeletePublicAccessBlockCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlDeletePublicAccessBlockCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlDeletePublicAccessBlockCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketAccelerateConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketAccelerateConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Status: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Status\"] !== undefined) {\n contents.Status = data[\"Status\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketAccelerateConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketAclCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketAclCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Grants: undefined,\n Owner: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = deserializeAws_restXmlGrants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketAclCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketAnalyticsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketAnalyticsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AnalyticsConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.AnalyticsConfiguration = deserializeAws_restXmlAnalyticsConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketAnalyticsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketCorsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketCorsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CORSRules: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CORSRule === \"\") {\n contents.CORSRules = [];\n }\n if (data[\"CORSRule\"] !== undefined) {\n contents.CORSRules = deserializeAws_restXmlCORSRules(__getArrayIfSingleItem(data[\"CORSRule\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketCorsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketEncryptionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketEncryptionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ServerSideEncryptionConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.ServerSideEncryptionConfiguration = deserializeAws_restXmlServerSideEncryptionConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketEncryptionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n IntelligentTieringConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.IntelligentTieringConfiguration = deserializeAws_restXmlIntelligentTieringConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketIntelligentTieringConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketInventoryConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketInventoryConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n InventoryConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.InventoryConfiguration = deserializeAws_restXmlInventoryConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketInventoryConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketLifecycleConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketLifecycleConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Rules: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.Rule === \"\") {\n contents.Rules = [];\n }\n if (data[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlLifecycleRules(__getArrayIfSingleItem(data[\"Rule\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketLifecycleConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketLocationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketLocationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LocationConstraint: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"LocationConstraint\"] !== undefined) {\n contents.LocationConstraint = data[\"LocationConstraint\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketLocationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketLoggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketLoggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LoggingEnabled: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"LoggingEnabled\"] !== undefined) {\n contents.LoggingEnabled = deserializeAws_restXmlLoggingEnabled(data[\"LoggingEnabled\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketLoggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketMetricsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketMetricsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n MetricsConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.MetricsConfiguration = deserializeAws_restXmlMetricsConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketMetricsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketNotificationConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketNotificationConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LambdaFunctionConfigurations: undefined,\n QueueConfigurations: undefined,\n TopicConfigurations: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CloudFunctionConfiguration === \"\") {\n contents.LambdaFunctionConfigurations = [];\n }\n if (data[\"CloudFunctionConfiguration\"] !== undefined) {\n contents.LambdaFunctionConfigurations = deserializeAws_restXmlLambdaFunctionConfigurationList(__getArrayIfSingleItem(data[\"CloudFunctionConfiguration\"]), context);\n }\n if (data.QueueConfiguration === \"\") {\n contents.QueueConfigurations = [];\n }\n if (data[\"QueueConfiguration\"] !== undefined) {\n contents.QueueConfigurations = deserializeAws_restXmlQueueConfigurationList(__getArrayIfSingleItem(data[\"QueueConfiguration\"]), context);\n }\n if (data.TopicConfiguration === \"\") {\n contents.TopicConfigurations = [];\n }\n if (data[\"TopicConfiguration\"] !== undefined) {\n contents.TopicConfigurations = deserializeAws_restXmlTopicConfigurationList(__getArrayIfSingleItem(data[\"TopicConfiguration\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketNotificationConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketOwnershipControlsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketOwnershipControlsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n OwnershipControls: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.OwnershipControls = deserializeAws_restXmlOwnershipControls(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketOwnershipControlsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketPolicyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketPolicyCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Policy: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Policy\"] !== undefined) {\n contents.Policy = data[\"Policy\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketPolicyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketPolicyStatusCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketPolicyStatusCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n PolicyStatus: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.PolicyStatus = deserializeAws_restXmlPolicyStatus(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketPolicyStatusCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketReplicationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketReplicationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ReplicationConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.ReplicationConfiguration = deserializeAws_restXmlReplicationConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketReplicationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketRequestPaymentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketRequestPaymentCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Payer: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Payer\"] !== undefined) {\n contents.Payer = data[\"Payer\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketRequestPaymentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n TagSet: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketVersioningCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketVersioningCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n MFADelete: undefined,\n Status: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"MfaDelete\"] !== undefined) {\n contents.MFADelete = data[\"MfaDelete\"];\n }\n if (data[\"Status\"] !== undefined) {\n contents.Status = data[\"Status\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketVersioningCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetBucketWebsiteCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetBucketWebsiteCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ErrorDocument: undefined,\n IndexDocument: undefined,\n RedirectAllRequestsTo: undefined,\n RoutingRules: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ErrorDocument\"] !== undefined) {\n contents.ErrorDocument = deserializeAws_restXmlErrorDocument(data[\"ErrorDocument\"], context);\n }\n if (data[\"IndexDocument\"] !== undefined) {\n contents.IndexDocument = deserializeAws_restXmlIndexDocument(data[\"IndexDocument\"], context);\n }\n if (data[\"RedirectAllRequestsTo\"] !== undefined) {\n contents.RedirectAllRequestsTo = deserializeAws_restXmlRedirectAllRequestsTo(data[\"RedirectAllRequestsTo\"], context);\n }\n if (data.RoutingRules === \"\") {\n contents.RoutingRules = [];\n }\n if (data[\"RoutingRules\"] !== undefined && data[\"RoutingRules\"][\"RoutingRule\"] !== undefined) {\n contents.RoutingRules = deserializeAws_restXmlRoutingRules(__getArrayIfSingleItem(data[\"RoutingRules\"][\"RoutingRule\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetBucketWebsiteCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AcceptRanges: undefined,\n Body: undefined,\n BucketKeyEnabled: undefined,\n CacheControl: undefined,\n ContentDisposition: undefined,\n ContentEncoding: undefined,\n ContentLanguage: undefined,\n ContentLength: undefined,\n ContentRange: undefined,\n ContentType: undefined,\n DeleteMarker: undefined,\n ETag: undefined,\n Expiration: undefined,\n Expires: undefined,\n LastModified: undefined,\n Metadata: undefined,\n MissingMeta: undefined,\n ObjectLockLegalHoldStatus: undefined,\n ObjectLockMode: undefined,\n ObjectLockRetainUntilDate: undefined,\n PartsCount: undefined,\n ReplicationStatus: undefined,\n RequestCharged: undefined,\n Restore: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n StorageClass: undefined,\n TagCount: undefined,\n VersionId: undefined,\n WebsiteRedirectLocation: undefined,\n };\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = output.headers[\"x-amz-delete-marker\"] === \"true\";\n }\n if (output.headers[\"accept-ranges\"] !== undefined) {\n contents.AcceptRanges = output.headers[\"accept-ranges\"];\n }\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-restore\"] !== undefined) {\n contents.Restore = output.headers[\"x-amz-restore\"];\n }\n if (output.headers[\"last-modified\"] !== undefined) {\n contents.LastModified = new Date(output.headers[\"last-modified\"]);\n }\n if (output.headers[\"content-length\"] !== undefined) {\n contents.ContentLength = parseInt(output.headers[\"content-length\"], 10);\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-missing-meta\"] !== undefined) {\n contents.MissingMeta = parseInt(output.headers[\"x-amz-missing-meta\"], 10);\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"cache-control\"] !== undefined) {\n contents.CacheControl = output.headers[\"cache-control\"];\n }\n if (output.headers[\"content-disposition\"] !== undefined) {\n contents.ContentDisposition = output.headers[\"content-disposition\"];\n }\n if (output.headers[\"content-encoding\"] !== undefined) {\n contents.ContentEncoding = output.headers[\"content-encoding\"];\n }\n if (output.headers[\"content-language\"] !== undefined) {\n contents.ContentLanguage = output.headers[\"content-language\"];\n }\n if (output.headers[\"content-range\"] !== undefined) {\n contents.ContentRange = output.headers[\"content-range\"];\n }\n if (output.headers[\"content-type\"] !== undefined) {\n contents.ContentType = output.headers[\"content-type\"];\n }\n if (output.headers[\"expires\"] !== undefined) {\n contents.Expires = new Date(output.headers[\"expires\"]);\n }\n if (output.headers[\"x-amz-website-redirect-location\"] !== undefined) {\n contents.WebsiteRedirectLocation = output.headers[\"x-amz-website-redirect-location\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-storage-class\"] !== undefined) {\n contents.StorageClass = output.headers[\"x-amz-storage-class\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n if (output.headers[\"x-amz-replication-status\"] !== undefined) {\n contents.ReplicationStatus = output.headers[\"x-amz-replication-status\"];\n }\n if (output.headers[\"x-amz-mp-parts-count\"] !== undefined) {\n contents.PartsCount = parseInt(output.headers[\"x-amz-mp-parts-count\"], 10);\n }\n if (output.headers[\"x-amz-tagging-count\"] !== undefined) {\n contents.TagCount = parseInt(output.headers[\"x-amz-tagging-count\"], 10);\n }\n if (output.headers[\"x-amz-object-lock-mode\"] !== undefined) {\n contents.ObjectLockMode = output.headers[\"x-amz-object-lock-mode\"];\n }\n if (output.headers[\"x-amz-object-lock-retain-until-date\"] !== undefined) {\n contents.ObjectLockRetainUntilDate = new Date(output.headers[\"x-amz-object-lock-retain-until-date\"]);\n }\n if (output.headers[\"x-amz-object-lock-legal-hold\"] !== undefined) {\n contents.ObjectLockLegalHoldStatus = output.headers[\"x-amz-object-lock-legal-hold\"];\n }\n Object.keys(output.headers).forEach(function (header) {\n if (contents.Metadata === undefined) {\n contents.Metadata = {};\n }\n if (header.startsWith(\"x-amz-meta-\")) {\n contents.Metadata[header.substring(11)] = output.headers[header];\n }\n });\n data = output.body;\n contents.Body = data;\n return [2 /*return*/, Promise.resolve(contents)];\n });\n}); };\nvar deserializeAws_restXmlGetObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, _d, parsedBody, message;\n var _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = [__assign({}, output)];\n _e = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_e.body = _f.sent(), _e)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"InvalidObjectState\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#InvalidObjectState\": return [3 /*break*/, 2];\n case \"NoSuchKey\": return [3 /*break*/, 4];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 4];\n }\n return [3 /*break*/, 6];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlInvalidObjectStateResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 4:\n _d = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context)];\n case 5:\n response = __assign.apply(void 0, [__assign.apply(void 0, _d.concat([(_f.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 7];\n case 6:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _f.label = 7;\n case 7:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectAclCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectAclCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Grants: undefined,\n Owner: undefined,\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = deserializeAws_restXmlGrants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectAclCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchKey\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectLegalHoldCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectLegalHoldCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n LegalHold: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.LegalHold = deserializeAws_restXmlObjectLockLegalHold(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectLegalHoldCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectLockConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectLockConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ObjectLockConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.ObjectLockConfiguration = deserializeAws_restXmlObjectLockConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectLockConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectRetentionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectRetentionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Retention: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.Retention = deserializeAws_restXmlObjectLockRetention(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectRetentionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n TagSet: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetObjectTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetObjectTorrentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetObjectTorrentCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Body: undefined,\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n data = output.body;\n contents.Body = data;\n return [2 /*return*/, Promise.resolve(contents)];\n });\n}); };\nvar deserializeAws_restXmlGetObjectTorrentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlGetPublicAccessBlockCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlGetPublicAccessBlockCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n PublicAccessBlockConfiguration: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.PublicAccessBlockConfiguration = deserializeAws_restXmlPublicAccessBlockConfiguration(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlGetPublicAccessBlockCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlHeadBucketCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlHeadBucketCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlHeadBucketCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchBucket\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchBucket\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchBucketResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlHeadObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlHeadObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AcceptRanges: undefined,\n ArchiveStatus: undefined,\n BucketKeyEnabled: undefined,\n CacheControl: undefined,\n ContentDisposition: undefined,\n ContentEncoding: undefined,\n ContentLanguage: undefined,\n ContentLength: undefined,\n ContentType: undefined,\n DeleteMarker: undefined,\n ETag: undefined,\n Expiration: undefined,\n Expires: undefined,\n LastModified: undefined,\n Metadata: undefined,\n MissingMeta: undefined,\n ObjectLockLegalHoldStatus: undefined,\n ObjectLockMode: undefined,\n ObjectLockRetainUntilDate: undefined,\n PartsCount: undefined,\n ReplicationStatus: undefined,\n RequestCharged: undefined,\n Restore: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n StorageClass: undefined,\n VersionId: undefined,\n WebsiteRedirectLocation: undefined,\n };\n if (output.headers[\"x-amz-delete-marker\"] !== undefined) {\n contents.DeleteMarker = output.headers[\"x-amz-delete-marker\"] === \"true\";\n }\n if (output.headers[\"accept-ranges\"] !== undefined) {\n contents.AcceptRanges = output.headers[\"accept-ranges\"];\n }\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"x-amz-restore\"] !== undefined) {\n contents.Restore = output.headers[\"x-amz-restore\"];\n }\n if (output.headers[\"x-amz-archive-status\"] !== undefined) {\n contents.ArchiveStatus = output.headers[\"x-amz-archive-status\"];\n }\n if (output.headers[\"last-modified\"] !== undefined) {\n contents.LastModified = new Date(output.headers[\"last-modified\"]);\n }\n if (output.headers[\"content-length\"] !== undefined) {\n contents.ContentLength = parseInt(output.headers[\"content-length\"], 10);\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-missing-meta\"] !== undefined) {\n contents.MissingMeta = parseInt(output.headers[\"x-amz-missing-meta\"], 10);\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"cache-control\"] !== undefined) {\n contents.CacheControl = output.headers[\"cache-control\"];\n }\n if (output.headers[\"content-disposition\"] !== undefined) {\n contents.ContentDisposition = output.headers[\"content-disposition\"];\n }\n if (output.headers[\"content-encoding\"] !== undefined) {\n contents.ContentEncoding = output.headers[\"content-encoding\"];\n }\n if (output.headers[\"content-language\"] !== undefined) {\n contents.ContentLanguage = output.headers[\"content-language\"];\n }\n if (output.headers[\"content-type\"] !== undefined) {\n contents.ContentType = output.headers[\"content-type\"];\n }\n if (output.headers[\"expires\"] !== undefined) {\n contents.Expires = new Date(output.headers[\"expires\"]);\n }\n if (output.headers[\"x-amz-website-redirect-location\"] !== undefined) {\n contents.WebsiteRedirectLocation = output.headers[\"x-amz-website-redirect-location\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-storage-class\"] !== undefined) {\n contents.StorageClass = output.headers[\"x-amz-storage-class\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n if (output.headers[\"x-amz-replication-status\"] !== undefined) {\n contents.ReplicationStatus = output.headers[\"x-amz-replication-status\"];\n }\n if (output.headers[\"x-amz-mp-parts-count\"] !== undefined) {\n contents.PartsCount = parseInt(output.headers[\"x-amz-mp-parts-count\"], 10);\n }\n if (output.headers[\"x-amz-object-lock-mode\"] !== undefined) {\n contents.ObjectLockMode = output.headers[\"x-amz-object-lock-mode\"];\n }\n if (output.headers[\"x-amz-object-lock-retain-until-date\"] !== undefined) {\n contents.ObjectLockRetainUntilDate = new Date(output.headers[\"x-amz-object-lock-retain-until-date\"]);\n }\n if (output.headers[\"x-amz-object-lock-legal-hold\"] !== undefined) {\n contents.ObjectLockLegalHoldStatus = output.headers[\"x-amz-object-lock-legal-hold\"];\n }\n Object.keys(output.headers).forEach(function (header) {\n if (contents.Metadata === undefined) {\n contents.Metadata = {};\n }\n if (header.startsWith(\"x-amz-meta-\")) {\n contents.Metadata[header.substring(11)] = output.headers[header];\n }\n });\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlHeadObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchKey\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListBucketAnalyticsConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListBucketAnalyticsConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AnalyticsConfigurationList: undefined,\n ContinuationToken: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.AnalyticsConfiguration === \"\") {\n contents.AnalyticsConfigurationList = [];\n }\n if (data[\"AnalyticsConfiguration\"] !== undefined) {\n contents.AnalyticsConfigurationList = deserializeAws_restXmlAnalyticsConfigurationList(__getArrayIfSingleItem(data[\"AnalyticsConfiguration\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketAnalyticsConfigurationsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n IntelligentTieringConfigurationList: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data.IntelligentTieringConfiguration === \"\") {\n contents.IntelligentTieringConfigurationList = [];\n }\n if (data[\"IntelligentTieringConfiguration\"] !== undefined) {\n contents.IntelligentTieringConfigurationList = deserializeAws_restXmlIntelligentTieringConfigurationList(__getArrayIfSingleItem(data[\"IntelligentTieringConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketIntelligentTieringConfigurationsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListBucketInventoryConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListBucketInventoryConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n InventoryConfigurationList: undefined,\n IsTruncated: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data.InventoryConfiguration === \"\") {\n contents.InventoryConfigurationList = [];\n }\n if (data[\"InventoryConfiguration\"] !== undefined) {\n contents.InventoryConfigurationList = deserializeAws_restXmlInventoryConfigurationList(__getArrayIfSingleItem(data[\"InventoryConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketInventoryConfigurationsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListBucketMetricsConfigurationsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListBucketMetricsConfigurationsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n ContinuationToken: undefined,\n IsTruncated: undefined,\n MetricsConfigurationList: undefined,\n NextContinuationToken: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data.MetricsConfiguration === \"\") {\n contents.MetricsConfigurationList = [];\n }\n if (data[\"MetricsConfiguration\"] !== undefined) {\n contents.MetricsConfigurationList = deserializeAws_restXmlMetricsConfigurationList(__getArrayIfSingleItem(data[\"MetricsConfiguration\"]), context);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketMetricsConfigurationsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListBucketsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListBucketsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Buckets: undefined,\n Owner: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.Buckets === \"\") {\n contents.Buckets = [];\n }\n if (data[\"Buckets\"] !== undefined && data[\"Buckets\"][\"Bucket\"] !== undefined) {\n contents.Buckets = deserializeAws_restXmlBuckets(__getArrayIfSingleItem(data[\"Buckets\"][\"Bucket\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListBucketsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListMultipartUploadsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListMultipartUploadsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Bucket: undefined,\n CommonPrefixes: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyMarker: undefined,\n MaxUploads: undefined,\n NextKeyMarker: undefined,\n NextUploadIdMarker: undefined,\n Prefix: undefined,\n UploadIdMarker: undefined,\n Uploads: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = data[\"KeyMarker\"];\n }\n if (data[\"MaxUploads\"] !== undefined) {\n contents.MaxUploads = parseInt(data[\"MaxUploads\"]);\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = data[\"NextKeyMarker\"];\n }\n if (data[\"NextUploadIdMarker\"] !== undefined) {\n contents.NextUploadIdMarker = data[\"NextUploadIdMarker\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n if (data[\"UploadIdMarker\"] !== undefined) {\n contents.UploadIdMarker = data[\"UploadIdMarker\"];\n }\n if (data.Upload === \"\") {\n contents.Uploads = [];\n }\n if (data[\"Upload\"] !== undefined) {\n contents.Uploads = deserializeAws_restXmlMultipartUploadList(__getArrayIfSingleItem(data[\"Upload\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListMultipartUploadsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListObjectsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListObjectsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n Contents: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n Marker: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextMarker: undefined,\n Prefix: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n if (data[\"Contents\"] !== undefined) {\n contents.Contents = deserializeAws_restXmlObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"Marker\"] !== undefined) {\n contents.Marker = data[\"Marker\"];\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = data[\"Name\"];\n }\n if (data[\"NextMarker\"] !== undefined) {\n contents.NextMarker = data[\"NextMarker\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListObjectsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchBucket\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchBucket\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchBucketResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListObjectsV2Command = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListObjectsV2CommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n Contents: undefined,\n ContinuationToken: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyCount: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextContinuationToken: undefined,\n Prefix: undefined,\n StartAfter: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n if (data[\"Contents\"] !== undefined) {\n contents.Contents = deserializeAws_restXmlObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = data[\"ContinuationToken\"];\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"KeyCount\"] !== undefined) {\n contents.KeyCount = parseInt(data[\"KeyCount\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = data[\"Name\"];\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = data[\"NextContinuationToken\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n if (data[\"StartAfter\"] !== undefined) {\n contents.StartAfter = data[\"StartAfter\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListObjectsV2CommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchBucket\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchBucket\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchBucketResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListObjectVersionsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListObjectVersionsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n CommonPrefixes: undefined,\n DeleteMarkers: undefined,\n Delimiter: undefined,\n EncodingType: undefined,\n IsTruncated: undefined,\n KeyMarker: undefined,\n MaxKeys: undefined,\n Name: undefined,\n NextKeyMarker: undefined,\n NextVersionIdMarker: undefined,\n Prefix: undefined,\n VersionIdMarker: undefined,\n Versions: undefined,\n };\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = deserializeAws_restXmlCommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.DeleteMarker === \"\") {\n contents.DeleteMarkers = [];\n }\n if (data[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarkers = deserializeAws_restXmlDeleteMarkers(__getArrayIfSingleItem(data[\"DeleteMarker\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = data[\"Delimiter\"];\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = data[\"EncodingType\"];\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = data[\"KeyMarker\"];\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = parseInt(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = data[\"Name\"];\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = data[\"NextKeyMarker\"];\n }\n if (data[\"NextVersionIdMarker\"] !== undefined) {\n contents.NextVersionIdMarker = data[\"NextVersionIdMarker\"];\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = data[\"Prefix\"];\n }\n if (data[\"VersionIdMarker\"] !== undefined) {\n contents.VersionIdMarker = data[\"VersionIdMarker\"];\n }\n if (data.Version === \"\") {\n contents.Versions = [];\n }\n if (data[\"Version\"] !== undefined) {\n contents.Versions = deserializeAws_restXmlObjectVersionList(__getArrayIfSingleItem(data[\"Version\"]), context);\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListObjectVersionsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlListPartsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlListPartsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n AbortDate: undefined,\n AbortRuleId: undefined,\n Bucket: undefined,\n Initiator: undefined,\n IsTruncated: undefined,\n Key: undefined,\n MaxParts: undefined,\n NextPartNumberMarker: undefined,\n Owner: undefined,\n PartNumberMarker: undefined,\n Parts: undefined,\n RequestCharged: undefined,\n StorageClass: undefined,\n UploadId: undefined,\n };\n if (output.headers[\"x-amz-abort-date\"] !== undefined) {\n contents.AbortDate = new Date(output.headers[\"x-amz-abort-date\"]);\n }\n if (output.headers[\"x-amz-abort-rule-id\"] !== undefined) {\n contents.AbortRuleId = output.headers[\"x-amz-abort-rule-id\"];\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = data[\"Bucket\"];\n }\n if (data[\"Initiator\"] !== undefined) {\n contents.Initiator = deserializeAws_restXmlInitiator(data[\"Initiator\"], context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = data[\"IsTruncated\"] == \"true\";\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = data[\"Key\"];\n }\n if (data[\"MaxParts\"] !== undefined) {\n contents.MaxParts = parseInt(data[\"MaxParts\"]);\n }\n if (data[\"NextPartNumberMarker\"] !== undefined) {\n contents.NextPartNumberMarker = data[\"NextPartNumberMarker\"];\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(data[\"Owner\"], context);\n }\n if (data[\"PartNumberMarker\"] !== undefined) {\n contents.PartNumberMarker = data[\"PartNumberMarker\"];\n }\n if (data.Part === \"\") {\n contents.Parts = [];\n }\n if (data[\"Part\"] !== undefined) {\n contents.Parts = deserializeAws_restXmlParts(__getArrayIfSingleItem(data[\"Part\"]), context);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = data[\"StorageClass\"];\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = data[\"UploadId\"];\n }\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlListPartsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketAccelerateConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketAccelerateConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketAccelerateConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketAclCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketAclCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketAclCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketAnalyticsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketAnalyticsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketAnalyticsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketCorsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketCorsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketCorsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketEncryptionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketEncryptionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketEncryptionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketIntelligentTieringConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketInventoryConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketInventoryConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketInventoryConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketLifecycleConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketLifecycleConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketLifecycleConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketLoggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketLoggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketLoggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketMetricsConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketMetricsConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketMetricsConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketNotificationConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketNotificationConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketNotificationConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketOwnershipControlsCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketOwnershipControlsCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketOwnershipControlsCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketPolicyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketPolicyCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketPolicyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketReplicationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketReplicationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketReplicationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketRequestPaymentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketRequestPaymentCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketRequestPaymentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketVersioningCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketVersioningCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketVersioningCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutBucketWebsiteCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutBucketWebsiteCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutBucketWebsiteCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n ETag: undefined,\n Expiration: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSEncryptionContext: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-expiration\"] !== undefined) {\n contents.Expiration = output.headers[\"x-amz-expiration\"];\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-context\"] !== undefined) {\n contents.SSEKMSEncryptionContext = output.headers[\"x-amz-server-side-encryption-context\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectAclCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectAclCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectAclCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"NoSuchKey\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#NoSuchKey\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlNoSuchKeyResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectLegalHoldCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectLegalHoldCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectLegalHoldCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectLockConfigurationCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectLockConfigurationCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectLockConfigurationCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectRetentionCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectRetentionCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectRetentionCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutObjectTaggingCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutObjectTaggingCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n VersionId: undefined,\n };\n if (output.headers[\"x-amz-version-id\"] !== undefined) {\n contents.VersionId = output.headers[\"x-amz-version-id\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutObjectTaggingCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlPutPublicAccessBlockCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlPutPublicAccessBlockCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n };\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlPutPublicAccessBlockCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlRestoreObjectCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlRestoreObjectCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n RequestCharged: undefined,\n RestoreOutputPath: undefined,\n };\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n if (output.headers[\"x-amz-restore-output-path\"] !== undefined) {\n contents.RestoreOutputPath = output.headers[\"x-amz-restore-output-path\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlRestoreObjectCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, _b, _c, parsedBody, message;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = [__assign({}, output)];\n _d = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_d.body = _e.sent(), _d)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n _b = errorCode;\n switch (_b) {\n case \"ObjectAlreadyInActiveTierError\": return [3 /*break*/, 2];\n case \"com.amazonaws.s3#ObjectAlreadyInActiveTierError\": return [3 /*break*/, 2];\n }\n return [3 /*break*/, 4];\n case 2:\n _c = [{}];\n return [4 /*yield*/, deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse(parsedOutput, context)];\n case 3:\n response = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_e.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]);\n return [3 /*break*/, 5];\n case 4:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n _e.label = 5;\n case 5:\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlSelectObjectContentCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlSelectObjectContentCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n Payload: undefined,\n };\n data = context.eventStreamMarshaller.deserialize(output.body, function (event) { return __awaiter(void 0, void 0, void 0, function () {\n var eventName, eventHeaders, eventMessage, parsedEvent;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n eventName = Object.keys(event)[0];\n eventHeaders = Object.entries(event[eventName].headers).reduce(function (accummulator, curr) {\n accummulator[curr[0]] = curr[1].value;\n return accummulator;\n }, {});\n eventMessage = {\n headers: eventHeaders,\n body: event[eventName].body,\n };\n parsedEvent = (_a = {},\n _a[eventName] = eventMessage,\n _a);\n return [4 /*yield*/, deserializeAws_restXmlSelectObjectContentEventStream_event(parsedEvent, context)];\n case 1: return [2 /*return*/, _b.sent()];\n }\n });\n }); });\n contents.Payload = data;\n return [2 /*return*/, Promise.resolve(contents)];\n });\n}); };\nvar deserializeAws_restXmlSelectObjectContentCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlUploadPartCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlUploadPartCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n ETag: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n };\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"etag\"] !== undefined) {\n contents.ETag = output.headers[\"etag\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, collectBody(output.body, context)];\n case 1:\n _a.sent();\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlUploadPartCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nexport var deserializeAws_restXmlUploadPartCopyCommand = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return [2 /*return*/, deserializeAws_restXmlUploadPartCopyCommandError(output, context)];\n }\n contents = {\n $metadata: deserializeMetadata(output),\n BucketKeyEnabled: undefined,\n CopyPartResult: undefined,\n CopySourceVersionId: undefined,\n RequestCharged: undefined,\n SSECustomerAlgorithm: undefined,\n SSECustomerKeyMD5: undefined,\n SSEKMSKeyId: undefined,\n ServerSideEncryption: undefined,\n };\n if (output.headers[\"x-amz-copy-source-version-id\"] !== undefined) {\n contents.CopySourceVersionId = output.headers[\"x-amz-copy-source-version-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption\"] !== undefined) {\n contents.ServerSideEncryption = output.headers[\"x-amz-server-side-encryption\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-algorithm\"] !== undefined) {\n contents.SSECustomerAlgorithm = output.headers[\"x-amz-server-side-encryption-customer-algorithm\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-customer-key-md5\"] !== undefined) {\n contents.SSECustomerKeyMD5 = output.headers[\"x-amz-server-side-encryption-customer-key-md5\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"] !== undefined) {\n contents.SSEKMSKeyId = output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"];\n }\n if (output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] !== undefined) {\n contents.BucketKeyEnabled = output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"] === \"true\";\n }\n if (output.headers[\"x-amz-request-charged\"] !== undefined) {\n contents.RequestCharged = output.headers[\"x-amz-request-charged\"];\n }\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n data = _a.sent();\n contents.CopyPartResult = deserializeAws_restXmlCopyPartResult(data, context);\n return [2 /*return*/, Promise.resolve(contents)];\n }\n });\n}); };\nvar deserializeAws_restXmlUploadPartCopyCommandError = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var parsedOutput, _a, response, errorCode, parsedBody, message;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = [__assign({}, output)];\n _b = {};\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n parsedOutput = __assign.apply(void 0, _a.concat([(_b.body = _c.sent(), _b)]));\n errorCode = \"UnknownError\";\n errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n default:\n parsedBody = parsedOutput.body;\n errorCode = parsedBody.code || parsedBody.Code || errorCode;\n response = __assign(__assign({}, parsedBody), { name: \"\" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: \"client\", $metadata: deserializeMetadata(output) });\n }\n message = response.message || response.Message || errorCode;\n response.message = message;\n delete response.Message;\n return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))];\n }\n });\n}); };\nvar deserializeAws_restXmlSelectObjectContentEventStream_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, _b, _c, _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n if (!(output[\"Records\"] !== undefined)) return [3 /*break*/, 2];\n _a = {};\n return [4 /*yield*/, deserializeAws_restXmlRecordsEvent_event(output[\"Records\"], context)];\n case 1: return [2 /*return*/, (_a.Records = _f.sent(),\n _a)];\n case 2:\n if (!(output[\"Stats\"] !== undefined)) return [3 /*break*/, 4];\n _b = {};\n return [4 /*yield*/, deserializeAws_restXmlStatsEvent_event(output[\"Stats\"], context)];\n case 3: return [2 /*return*/, (_b.Stats = _f.sent(),\n _b)];\n case 4:\n if (!(output[\"Progress\"] !== undefined)) return [3 /*break*/, 6];\n _c = {};\n return [4 /*yield*/, deserializeAws_restXmlProgressEvent_event(output[\"Progress\"], context)];\n case 5: return [2 /*return*/, (_c.Progress = _f.sent(),\n _c)];\n case 6:\n if (!(output[\"Cont\"] !== undefined)) return [3 /*break*/, 8];\n _d = {};\n return [4 /*yield*/, deserializeAws_restXmlContinuationEvent_event(output[\"Cont\"], context)];\n case 7: return [2 /*return*/, (_d.Cont = _f.sent(),\n _d)];\n case 8:\n if (!(output[\"End\"] !== undefined)) return [3 /*break*/, 10];\n _e = {};\n return [4 /*yield*/, deserializeAws_restXmlEndEvent_event(output[\"End\"], context)];\n case 9: return [2 /*return*/, (_e.End = _f.sent(),\n _e)];\n case 10: return [2 /*return*/, { $unknown: output }];\n }\n });\n}); };\nvar deserializeAws_restXmlContinuationEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlEndEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlProgressEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n contents = {};\n _a = contents;\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n _a.Details = _b.sent();\n return [2 /*return*/, contents];\n }\n });\n}); };\nvar deserializeAws_restXmlRecordsEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents;\n return __generator(this, function (_a) {\n contents = {};\n contents.Payload = output.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlStatsEvent_event = function (output, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n contents = {};\n _a = contents;\n return [4 /*yield*/, parseBody(output.body, context)];\n case 1:\n _a.Details = _b.sent();\n return [2 /*return*/, contents];\n }\n });\n}); };\nvar deserializeAws_restXmlBucketAlreadyExistsResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"BucketAlreadyExists\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlBucketAlreadyOwnedByYouResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"BucketAlreadyOwnedByYou\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlInvalidObjectStateResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"InvalidObjectState\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n AccessTier: undefined,\n StorageClass: undefined,\n };\n data = parsedOutput.body;\n if (data[\"AccessTier\"] !== undefined) {\n contents.AccessTier = data[\"AccessTier\"];\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = data[\"StorageClass\"];\n }\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlNoSuchBucketResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"NoSuchBucket\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlNoSuchKeyResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"NoSuchKey\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlNoSuchUploadResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"NoSuchUpload\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlObjectAlreadyInActiveTierErrorResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"ObjectAlreadyInActiveTierError\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar deserializeAws_restXmlObjectNotInActiveTierErrorResponse = function (parsedOutput, context) { return __awaiter(void 0, void 0, void 0, function () {\n var contents, data;\n return __generator(this, function (_a) {\n contents = {\n name: \"ObjectNotInActiveTierError\",\n $fault: \"client\",\n $metadata: deserializeMetadata(parsedOutput),\n };\n data = parsedOutput.body;\n return [2 /*return*/, contents];\n });\n}); };\nvar serializeAws_restXmlAbortIncompleteMultipartUpload = function (input, context) {\n var bodyNode = new __XmlNode(\"AbortIncompleteMultipartUpload\");\n if (input.DaysAfterInitiation !== undefined && input.DaysAfterInitiation !== null) {\n var node = new __XmlNode(\"DaysAfterInitiation\")\n .addChildNode(new __XmlText(String(input.DaysAfterInitiation)))\n .withName(\"DaysAfterInitiation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAccelerateConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"AccelerateConfiguration\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"BucketAccelerateStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAccessControlPolicy = function (input, context) {\n var bodyNode = new __XmlNode(\"AccessControlPolicy\");\n if (input.Grants !== undefined && input.Grants !== null) {\n var nodes = serializeAws_restXmlGrants(input.Grants, context);\n var containerNode_1 = new __XmlNode(\"AccessControlList\");\n nodes.map(function (node) {\n containerNode_1.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_1);\n }\n if (input.Owner !== undefined && input.Owner !== null) {\n var node = serializeAws_restXmlOwner(input.Owner, context).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAccessControlTranslation = function (input, context) {\n var bodyNode = new __XmlNode(\"AccessControlTranslation\");\n if (input.Owner !== undefined && input.Owner !== null) {\n var node = new __XmlNode(\"OwnerOverride\").addChildNode(new __XmlText(input.Owner)).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAllowedHeaders = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"AllowedHeader\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlAllowedMethods = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"AllowedMethod\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlAllowedOrigins = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"AllowedOrigin\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlAnalyticsAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"AnalyticsId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlAnalyticsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClassAnalysis !== undefined && input.StorageClassAnalysis !== null) {\n var node = serializeAws_restXmlStorageClassAnalysis(input.StorageClassAnalysis, context).withName(\"StorageClassAnalysis\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsExportDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsExportDestination\");\n if (input.S3BucketDestination !== undefined && input.S3BucketDestination !== null) {\n var node = serializeAws_restXmlAnalyticsS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsFilter\");\n AnalyticsFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlAnalyticsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlAnalyticsS3BucketDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"AnalyticsS3BucketDestination\");\n if (input.Format !== undefined && input.Format !== null) {\n var node = new __XmlNode(\"AnalyticsS3ExportFileFormat\")\n .addChildNode(new __XmlText(input.Format))\n .withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketAccountId !== undefined && input.BucketAccountId !== null) {\n var node = new __XmlNode(\"AccountId\")\n .addChildNode(new __XmlText(input.BucketAccountId))\n .withName(\"BucketAccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlBucketLifecycleConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"BucketLifecycleConfiguration\");\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlLifecycleRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlBucketLoggingStatus = function (input, context) {\n var bodyNode = new __XmlNode(\"BucketLoggingStatus\");\n if (input.LoggingEnabled !== undefined && input.LoggingEnabled !== null) {\n var node = serializeAws_restXmlLoggingEnabled(input.LoggingEnabled, context).withName(\"LoggingEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCompletedMultipartUpload = function (input, context) {\n var bodyNode = new __XmlNode(\"CompletedMultipartUpload\");\n if (input.Parts !== undefined && input.Parts !== null) {\n var nodes = serializeAws_restXmlCompletedPartList(input.Parts, context);\n nodes.map(function (node) {\n node = node.withName(\"Part\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCompletedPart = function (input, context) {\n var bodyNode = new __XmlNode(\"CompletedPart\");\n if (input.ETag !== undefined && input.ETag !== null) {\n var node = new __XmlNode(\"ETag\").addChildNode(new __XmlText(input.ETag)).withName(\"ETag\");\n bodyNode.addChildNode(node);\n }\n if (input.PartNumber !== undefined && input.PartNumber !== null) {\n var node = new __XmlNode(\"PartNumber\")\n .addChildNode(new __XmlText(String(input.PartNumber)))\n .withName(\"PartNumber\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCompletedPartList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlCompletedPart(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlCondition = function (input, context) {\n var bodyNode = new __XmlNode(\"Condition\");\n if (input.HttpErrorCodeReturnedEquals !== undefined && input.HttpErrorCodeReturnedEquals !== null) {\n var node = new __XmlNode(\"HttpErrorCodeReturnedEquals\")\n .addChildNode(new __XmlText(input.HttpErrorCodeReturnedEquals))\n .withName(\"HttpErrorCodeReturnedEquals\");\n bodyNode.addChildNode(node);\n }\n if (input.KeyPrefixEquals !== undefined && input.KeyPrefixEquals !== null) {\n var node = new __XmlNode(\"KeyPrefixEquals\")\n .addChildNode(new __XmlText(input.KeyPrefixEquals))\n .withName(\"KeyPrefixEquals\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCORSConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"CORSConfiguration\");\n if (input.CORSRules !== undefined && input.CORSRules !== null) {\n var nodes = serializeAws_restXmlCORSRules(input.CORSRules, context);\n nodes.map(function (node) {\n node = node.withName(\"CORSRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCORSRule = function (input, context) {\n var bodyNode = new __XmlNode(\"CORSRule\");\n if (input.AllowedHeaders !== undefined && input.AllowedHeaders !== null) {\n var nodes = serializeAws_restXmlAllowedHeaders(input.AllowedHeaders, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedMethods !== undefined && input.AllowedMethods !== null) {\n var nodes = serializeAws_restXmlAllowedMethods(input.AllowedMethods, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedMethod\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedOrigins !== undefined && input.AllowedOrigins !== null) {\n var nodes = serializeAws_restXmlAllowedOrigins(input.AllowedOrigins, context);\n nodes.map(function (node) {\n node = node.withName(\"AllowedOrigin\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.ExposeHeaders !== undefined && input.ExposeHeaders !== null) {\n var nodes = serializeAws_restXmlExposeHeaders(input.ExposeHeaders, context);\n nodes.map(function (node) {\n node = node.withName(\"ExposeHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.MaxAgeSeconds !== undefined && input.MaxAgeSeconds !== null) {\n var node = new __XmlNode(\"MaxAgeSeconds\")\n .addChildNode(new __XmlText(String(input.MaxAgeSeconds)))\n .withName(\"MaxAgeSeconds\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCORSRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlCORSRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlCreateBucketConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"CreateBucketConfiguration\");\n if (input.LocationConstraint !== undefined && input.LocationConstraint !== null) {\n var node = new __XmlNode(\"BucketLocationConstraint\")\n .addChildNode(new __XmlText(input.LocationConstraint))\n .withName(\"LocationConstraint\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCSVInput = function (input, context) {\n var bodyNode = new __XmlNode(\"CSVInput\");\n if (input.FileHeaderInfo !== undefined && input.FileHeaderInfo !== null) {\n var node = new __XmlNode(\"FileHeaderInfo\")\n .addChildNode(new __XmlText(input.FileHeaderInfo))\n .withName(\"FileHeaderInfo\");\n bodyNode.addChildNode(node);\n }\n if (input.Comments !== undefined && input.Comments !== null) {\n var node = new __XmlNode(\"Comments\").addChildNode(new __XmlText(input.Comments)).withName(\"Comments\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter !== undefined && input.QuoteEscapeCharacter !== null) {\n var node = new __XmlNode(\"QuoteEscapeCharacter\")\n .addChildNode(new __XmlText(input.QuoteEscapeCharacter))\n .withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\")\n .addChildNode(new __XmlText(input.RecordDelimiter))\n .withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter !== undefined && input.FieldDelimiter !== null) {\n var node = new __XmlNode(\"FieldDelimiter\")\n .addChildNode(new __XmlText(input.FieldDelimiter))\n .withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter !== undefined && input.QuoteCharacter !== null) {\n var node = new __XmlNode(\"QuoteCharacter\")\n .addChildNode(new __XmlText(input.QuoteCharacter))\n .withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.AllowQuotedRecordDelimiter !== undefined && input.AllowQuotedRecordDelimiter !== null) {\n var node = new __XmlNode(\"AllowQuotedRecordDelimiter\")\n .addChildNode(new __XmlText(String(input.AllowQuotedRecordDelimiter)))\n .withName(\"AllowQuotedRecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlCSVOutput = function (input, context) {\n var bodyNode = new __XmlNode(\"CSVOutput\");\n if (input.QuoteFields !== undefined && input.QuoteFields !== null) {\n var node = new __XmlNode(\"QuoteFields\").addChildNode(new __XmlText(input.QuoteFields)).withName(\"QuoteFields\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter !== undefined && input.QuoteEscapeCharacter !== null) {\n var node = new __XmlNode(\"QuoteEscapeCharacter\")\n .addChildNode(new __XmlText(input.QuoteEscapeCharacter))\n .withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\")\n .addChildNode(new __XmlText(input.RecordDelimiter))\n .withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter !== undefined && input.FieldDelimiter !== null) {\n var node = new __XmlNode(\"FieldDelimiter\")\n .addChildNode(new __XmlText(input.FieldDelimiter))\n .withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter !== undefined && input.QuoteCharacter !== null) {\n var node = new __XmlNode(\"QuoteCharacter\")\n .addChildNode(new __XmlText(input.QuoteCharacter))\n .withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDefaultRetention = function (input, context) {\n var bodyNode = new __XmlNode(\"DefaultRetention\");\n if (input.Mode !== undefined && input.Mode !== null) {\n var node = new __XmlNode(\"ObjectLockRetentionMode\").addChildNode(new __XmlText(input.Mode)).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.Years !== undefined && input.Years !== null) {\n var node = new __XmlNode(\"Years\").addChildNode(new __XmlText(String(input.Years))).withName(\"Years\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDelete = function (input, context) {\n var bodyNode = new __XmlNode(\"Delete\");\n if (input.Objects !== undefined && input.Objects !== null) {\n var nodes = serializeAws_restXmlObjectIdentifierList(input.Objects, context);\n nodes.map(function (node) {\n node = node.withName(\"Object\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Quiet !== undefined && input.Quiet !== null) {\n var node = new __XmlNode(\"Quiet\").addChildNode(new __XmlText(String(input.Quiet))).withName(\"Quiet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDeleteMarkerReplication = function (input, context) {\n var bodyNode = new __XmlNode(\"DeleteMarkerReplication\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"DeleteMarkerReplicationStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"Destination\");\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Account !== undefined && input.Account !== null) {\n var node = new __XmlNode(\"AccountId\").addChildNode(new __XmlText(input.Account)).withName(\"Account\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"StorageClass\").addChildNode(new __XmlText(input.StorageClass)).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlTranslation !== undefined && input.AccessControlTranslation !== null) {\n var node = serializeAws_restXmlAccessControlTranslation(input.AccessControlTranslation, context).withName(\"AccessControlTranslation\");\n bodyNode.addChildNode(node);\n }\n if (input.EncryptionConfiguration !== undefined && input.EncryptionConfiguration !== null) {\n var node = serializeAws_restXmlEncryptionConfiguration(input.EncryptionConfiguration, context).withName(\"EncryptionConfiguration\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicationTime !== undefined && input.ReplicationTime !== null) {\n var node = serializeAws_restXmlReplicationTime(input.ReplicationTime, context).withName(\"ReplicationTime\");\n bodyNode.addChildNode(node);\n }\n if (input.Metrics !== undefined && input.Metrics !== null) {\n var node = serializeAws_restXmlMetrics(input.Metrics, context).withName(\"Metrics\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlEncryption = function (input, context) {\n var bodyNode = new __XmlNode(\"Encryption\");\n if (input.EncryptionType !== undefined && input.EncryptionType !== null) {\n var node = new __XmlNode(\"ServerSideEncryption\")\n .addChildNode(new __XmlText(input.EncryptionType))\n .withName(\"EncryptionType\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSKeyId !== undefined && input.KMSKeyId !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\").addChildNode(new __XmlText(input.KMSKeyId)).withName(\"KMSKeyId\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSContext !== undefined && input.KMSContext !== null) {\n var node = new __XmlNode(\"KMSContext\").addChildNode(new __XmlText(input.KMSContext)).withName(\"KMSContext\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlEncryptionConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"EncryptionConfiguration\");\n if (input.ReplicaKmsKeyID !== undefined && input.ReplicaKmsKeyID !== null) {\n var node = new __XmlNode(\"ReplicaKmsKeyID\")\n .addChildNode(new __XmlText(input.ReplicaKmsKeyID))\n .withName(\"ReplicaKmsKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlErrorDocument = function (input, context) {\n var bodyNode = new __XmlNode(\"ErrorDocument\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlEventList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"Event\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlExistingObjectReplication = function (input, context) {\n var bodyNode = new __XmlNode(\"ExistingObjectReplication\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ExistingObjectReplicationStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlExposeHeaders = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"ExposeHeader\").addChildNode(new __XmlText(entry));\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlFilterRule = function (input, context) {\n var bodyNode = new __XmlNode(\"FilterRule\");\n if (input.Name !== undefined && input.Name !== null) {\n var node = new __XmlNode(\"FilterRuleName\").addChildNode(new __XmlText(input.Name)).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"FilterRuleValue\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlFilterRuleList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlFilterRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlGlacierJobParameters = function (input, context) {\n var bodyNode = new __XmlNode(\"GlacierJobParameters\");\n if (input.Tier !== undefined && input.Tier !== null) {\n var node = new __XmlNode(\"Tier\").addChildNode(new __XmlText(input.Tier)).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlGrant = function (input, context) {\n var bodyNode = new __XmlNode(\"Grant\");\n if (input.Grantee !== undefined && input.Grantee !== null) {\n var node = serializeAws_restXmlGrantee(input.Grantee, context).withName(\"Grantee\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission !== undefined && input.Permission !== null) {\n var node = new __XmlNode(\"Permission\").addChildNode(new __XmlText(input.Permission)).withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlGrantee = function (input, context) {\n var bodyNode = new __XmlNode(\"Grantee\");\n if (input.DisplayName !== undefined && input.DisplayName !== null) {\n var node = new __XmlNode(\"DisplayName\").addChildNode(new __XmlText(input.DisplayName)).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.EmailAddress !== undefined && input.EmailAddress !== null) {\n var node = new __XmlNode(\"EmailAddress\").addChildNode(new __XmlText(input.EmailAddress)).withName(\"EmailAddress\");\n bodyNode.addChildNode(node);\n }\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.URI !== undefined && input.URI !== null) {\n var node = new __XmlNode(\"URI\").addChildNode(new __XmlText(input.URI)).withName(\"URI\");\n bodyNode.addChildNode(node);\n }\n if (input.Type !== undefined && input.Type !== null) {\n bodyNode.addAttribute(\"xsi:type\", input.Type);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlGrants = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nvar serializeAws_restXmlIndexDocument = function (input, context) {\n var bodyNode = new __XmlNode(\"IndexDocument\");\n if (input.Suffix !== undefined && input.Suffix !== null) {\n var node = new __XmlNode(\"Suffix\").addChildNode(new __XmlText(input.Suffix)).withName(\"Suffix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInputSerialization = function (input, context) {\n var bodyNode = new __XmlNode(\"InputSerialization\");\n if (input.CSV !== undefined && input.CSV !== null) {\n var node = serializeAws_restXmlCSVInput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.CompressionType !== undefined && input.CompressionType !== null) {\n var node = new __XmlNode(\"CompressionType\")\n .addChildNode(new __XmlText(input.CompressionType))\n .withName(\"CompressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON !== undefined && input.JSON !== null) {\n var node = serializeAws_restXmlJSONInput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n if (input.Parquet !== undefined && input.Parquet !== null) {\n var node = serializeAws_restXmlParquetInput(input.Parquet, context).withName(\"Parquet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlIntelligentTieringAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlIntelligentTieringConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"IntelligentTieringId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlIntelligentTieringFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"IntelligentTieringStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Tierings !== undefined && input.Tierings !== null) {\n var nodes = serializeAws_restXmlTieringList(input.Tierings, context);\n nodes.map(function (node) {\n node = node.withName(\"Tiering\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlIntelligentTieringFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"IntelligentTieringFilter\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tag !== undefined && input.Tag !== null) {\n var node = serializeAws_restXmlTag(input.Tag, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n }\n if (input.And !== undefined && input.And !== null) {\n var node = serializeAws_restXmlIntelligentTieringAndOperator(input.And, context).withName(\"And\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryConfiguration\");\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlInventoryDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.IsEnabled !== undefined && input.IsEnabled !== null) {\n var node = new __XmlNode(\"IsEnabled\").addChildNode(new __XmlText(String(input.IsEnabled))).withName(\"IsEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlInventoryFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"InventoryId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.IncludedObjectVersions !== undefined && input.IncludedObjectVersions !== null) {\n var node = new __XmlNode(\"InventoryIncludedObjectVersions\")\n .addChildNode(new __XmlText(input.IncludedObjectVersions))\n .withName(\"IncludedObjectVersions\");\n bodyNode.addChildNode(node);\n }\n if (input.OptionalFields !== undefined && input.OptionalFields !== null) {\n var nodes = serializeAws_restXmlInventoryOptionalFields(input.OptionalFields, context);\n var containerNode_2 = new __XmlNode(\"OptionalFields\");\n nodes.map(function (node) {\n containerNode_2.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_2);\n }\n if (input.Schedule !== undefined && input.Schedule !== null) {\n var node = serializeAws_restXmlInventorySchedule(input.Schedule, context).withName(\"Schedule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryDestination\");\n if (input.S3BucketDestination !== undefined && input.S3BucketDestination !== null) {\n var node = serializeAws_restXmlInventoryS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryEncryption = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryEncryption\");\n if (input.SSES3 !== undefined && input.SSES3 !== null) {\n var node = serializeAws_restXmlSSES3(input.SSES3, context).withName(\"SSE-S3\");\n bodyNode.addChildNode(node);\n }\n if (input.SSEKMS !== undefined && input.SSEKMS !== null) {\n var node = serializeAws_restXmlSSEKMS(input.SSEKMS, context).withName(\"SSE-KMS\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryFilter\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventoryOptionalFields = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = new __XmlNode(\"InventoryOptionalField\").addChildNode(new __XmlText(entry));\n return node.withName(\"Field\");\n });\n};\nvar serializeAws_restXmlInventoryS3BucketDestination = function (input, context) {\n var bodyNode = new __XmlNode(\"InventoryS3BucketDestination\");\n if (input.AccountId !== undefined && input.AccountId !== null) {\n var node = new __XmlNode(\"AccountId\").addChildNode(new __XmlText(input.AccountId)).withName(\"AccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket !== undefined && input.Bucket !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.Bucket)).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Format !== undefined && input.Format !== null) {\n var node = new __XmlNode(\"InventoryFormat\").addChildNode(new __XmlText(input.Format)).withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption !== undefined && input.Encryption !== null) {\n var node = serializeAws_restXmlInventoryEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlInventorySchedule = function (input, context) {\n var bodyNode = new __XmlNode(\"InventorySchedule\");\n if (input.Frequency !== undefined && input.Frequency !== null) {\n var node = new __XmlNode(\"InventoryFrequency\").addChildNode(new __XmlText(input.Frequency)).withName(\"Frequency\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlJSONInput = function (input, context) {\n var bodyNode = new __XmlNode(\"JSONInput\");\n if (input.Type !== undefined && input.Type !== null) {\n var node = new __XmlNode(\"JSONType\").addChildNode(new __XmlText(input.Type)).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlJSONOutput = function (input, context) {\n var bodyNode = new __XmlNode(\"JSONOutput\");\n if (input.RecordDelimiter !== undefined && input.RecordDelimiter !== null) {\n var node = new __XmlNode(\"RecordDelimiter\")\n .addChildNode(new __XmlText(input.RecordDelimiter))\n .withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLambdaFunctionConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"LambdaFunctionConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.LambdaFunctionArn !== undefined && input.LambdaFunctionArn !== null) {\n var node = new __XmlNode(\"LambdaFunctionArn\")\n .addChildNode(new __XmlText(input.LambdaFunctionArn))\n .withName(\"CloudFunction\");\n bodyNode.addChildNode(node);\n }\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLambdaFunctionConfigurationList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlLambdaFunctionConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlLifecycleExpiration = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleExpiration\");\n if (input.Date !== undefined && input.Date !== null) {\n var node = new __XmlNode(\"Date\")\n .addChildNode(new __XmlText(input.Date.toISOString().split(\".\")[0] + \"Z\"))\n .withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpiredObjectDeleteMarker !== undefined && input.ExpiredObjectDeleteMarker !== null) {\n var node = new __XmlNode(\"ExpiredObjectDeleteMarker\")\n .addChildNode(new __XmlText(String(input.ExpiredObjectDeleteMarker)))\n .withName(\"ExpiredObjectDeleteMarker\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRule = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRule\");\n if (input.Expiration !== undefined && input.Expiration !== null) {\n var node = serializeAws_restXmlLifecycleExpiration(input.Expiration, context).withName(\"Expiration\");\n bodyNode.addChildNode(node);\n }\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlLifecycleRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ExpirationStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Transitions !== undefined && input.Transitions !== null) {\n var nodes = serializeAws_restXmlTransitionList(input.Transitions, context);\n nodes.map(function (node) {\n node = node.withName(\"Transition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionTransitions !== undefined && input.NoncurrentVersionTransitions !== null) {\n var nodes = serializeAws_restXmlNoncurrentVersionTransitionList(input.NoncurrentVersionTransitions, context);\n nodes.map(function (node) {\n node = node.withName(\"NoncurrentVersionTransition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionExpiration !== undefined && input.NoncurrentVersionExpiration !== null) {\n var node = serializeAws_restXmlNoncurrentVersionExpiration(input.NoncurrentVersionExpiration, context).withName(\"NoncurrentVersionExpiration\");\n bodyNode.addChildNode(node);\n }\n if (input.AbortIncompleteMultipartUpload !== undefined && input.AbortIncompleteMultipartUpload !== null) {\n var node = serializeAws_restXmlAbortIncompleteMultipartUpload(input.AbortIncompleteMultipartUpload, context).withName(\"AbortIncompleteMultipartUpload\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRuleAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRuleAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRuleFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"LifecycleRuleFilter\");\n LifecycleRuleFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlLifecycleRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlLifecycleRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlLifecycleRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlLoggingEnabled = function (input, context) {\n var bodyNode = new __XmlNode(\"LoggingEnabled\");\n if (input.TargetBucket !== undefined && input.TargetBucket !== null) {\n var node = new __XmlNode(\"TargetBucket\").addChildNode(new __XmlText(input.TargetBucket)).withName(\"TargetBucket\");\n bodyNode.addChildNode(node);\n }\n if (input.TargetGrants !== undefined && input.TargetGrants !== null) {\n var nodes = serializeAws_restXmlTargetGrants(input.TargetGrants, context);\n var containerNode_3 = new __XmlNode(\"TargetGrants\");\n nodes.map(function (node) {\n containerNode_3.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_3);\n }\n if (input.TargetPrefix !== undefined && input.TargetPrefix !== null) {\n var node = new __XmlNode(\"TargetPrefix\").addChildNode(new __XmlText(input.TargetPrefix)).withName(\"TargetPrefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetadataEntry = function (input, context) {\n var bodyNode = new __XmlNode(\"MetadataEntry\");\n if (input.Name !== undefined && input.Name !== null) {\n var node = new __XmlNode(\"MetadataKey\").addChildNode(new __XmlText(input.Name)).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"MetadataValue\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetrics = function (input, context) {\n var bodyNode = new __XmlNode(\"Metrics\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"MetricsStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.EventThreshold !== undefined && input.EventThreshold !== null) {\n var node = serializeAws_restXmlReplicationTimeValue(input.EventThreshold, context).withName(\"EventThreshold\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetricsAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"MetricsAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetricsConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"MetricsConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"MetricsId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlMetricsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlMetricsFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"MetricsFilter\");\n MetricsFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlMetricsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlNoncurrentVersionExpiration = function (input, context) {\n var bodyNode = new __XmlNode(\"NoncurrentVersionExpiration\");\n if (input.NoncurrentDays !== undefined && input.NoncurrentDays !== null) {\n var node = new __XmlNode(\"Days\")\n .addChildNode(new __XmlText(String(input.NoncurrentDays)))\n .withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlNoncurrentVersionTransition = function (input, context) {\n var bodyNode = new __XmlNode(\"NoncurrentVersionTransition\");\n if (input.NoncurrentDays !== undefined && input.NoncurrentDays !== null) {\n var node = new __XmlNode(\"Days\")\n .addChildNode(new __XmlText(String(input.NoncurrentDays)))\n .withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"TransitionStorageClass\")\n .addChildNode(new __XmlText(input.StorageClass))\n .withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlNoncurrentVersionTransitionList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlNoncurrentVersionTransition(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlNotificationConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"NotificationConfiguration\");\n if (input.TopicConfigurations !== undefined && input.TopicConfigurations !== null) {\n var nodes = serializeAws_restXmlTopicConfigurationList(input.TopicConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"TopicConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.QueueConfigurations !== undefined && input.QueueConfigurations !== null) {\n var nodes = serializeAws_restXmlQueueConfigurationList(input.QueueConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"QueueConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.LambdaFunctionConfigurations !== undefined && input.LambdaFunctionConfigurations !== null) {\n var nodes = serializeAws_restXmlLambdaFunctionConfigurationList(input.LambdaFunctionConfigurations, context);\n nodes.map(function (node) {\n node = node.withName(\"CloudFunctionConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlNotificationConfigurationFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"NotificationConfigurationFilter\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = serializeAws_restXmlS3KeyFilter(input.Key, context).withName(\"S3Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectIdentifier = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectIdentifier\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.VersionId !== undefined && input.VersionId !== null) {\n var node = new __XmlNode(\"ObjectVersionId\").addChildNode(new __XmlText(input.VersionId)).withName(\"VersionId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectIdentifierList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlObjectIdentifier(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlObjectLockConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockConfiguration\");\n if (input.ObjectLockEnabled !== undefined && input.ObjectLockEnabled !== null) {\n var node = new __XmlNode(\"ObjectLockEnabled\")\n .addChildNode(new __XmlText(input.ObjectLockEnabled))\n .withName(\"ObjectLockEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Rule !== undefined && input.Rule !== null) {\n var node = serializeAws_restXmlObjectLockRule(input.Rule, context).withName(\"Rule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectLockLegalHold = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockLegalHold\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ObjectLockLegalHoldStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectLockRetention = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockRetention\");\n if (input.Mode !== undefined && input.Mode !== null) {\n var node = new __XmlNode(\"ObjectLockRetentionMode\").addChildNode(new __XmlText(input.Mode)).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.RetainUntilDate !== undefined && input.RetainUntilDate !== null) {\n var node = new __XmlNode(\"Date\")\n .addChildNode(new __XmlText(input.RetainUntilDate.toISOString().split(\".\")[0] + \"Z\"))\n .withName(\"RetainUntilDate\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlObjectLockRule = function (input, context) {\n var bodyNode = new __XmlNode(\"ObjectLockRule\");\n if (input.DefaultRetention !== undefined && input.DefaultRetention !== null) {\n var node = serializeAws_restXmlDefaultRetention(input.DefaultRetention, context).withName(\"DefaultRetention\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOutputLocation = function (input, context) {\n var bodyNode = new __XmlNode(\"OutputLocation\");\n if (input.S3 !== undefined && input.S3 !== null) {\n var node = serializeAws_restXmlS3Location(input.S3, context).withName(\"S3\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOutputSerialization = function (input, context) {\n var bodyNode = new __XmlNode(\"OutputSerialization\");\n if (input.CSV !== undefined && input.CSV !== null) {\n var node = serializeAws_restXmlCSVOutput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON !== undefined && input.JSON !== null) {\n var node = serializeAws_restXmlJSONOutput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwner = function (input, context) {\n var bodyNode = new __XmlNode(\"Owner\");\n if (input.DisplayName !== undefined && input.DisplayName !== null) {\n var node = new __XmlNode(\"DisplayName\").addChildNode(new __XmlText(input.DisplayName)).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwnershipControls = function (input, context) {\n var bodyNode = new __XmlNode(\"OwnershipControls\");\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlOwnershipControlsRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwnershipControlsRule = function (input, context) {\n var bodyNode = new __XmlNode(\"OwnershipControlsRule\");\n if (input.ObjectOwnership !== undefined && input.ObjectOwnership !== null) {\n var node = new __XmlNode(\"ObjectOwnership\")\n .addChildNode(new __XmlText(input.ObjectOwnership))\n .withName(\"ObjectOwnership\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlOwnershipControlsRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlOwnershipControlsRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlParquetInput = function (input, context) {\n var bodyNode = new __XmlNode(\"ParquetInput\");\n return bodyNode;\n};\nvar serializeAws_restXmlPublicAccessBlockConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"PublicAccessBlockConfiguration\");\n if (input.BlockPublicAcls !== undefined && input.BlockPublicAcls !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.BlockPublicAcls)))\n .withName(\"BlockPublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.IgnorePublicAcls !== undefined && input.IgnorePublicAcls !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.IgnorePublicAcls)))\n .withName(\"IgnorePublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.BlockPublicPolicy !== undefined && input.BlockPublicPolicy !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.BlockPublicPolicy)))\n .withName(\"BlockPublicPolicy\");\n bodyNode.addChildNode(node);\n }\n if (input.RestrictPublicBuckets !== undefined && input.RestrictPublicBuckets !== null) {\n var node = new __XmlNode(\"Setting\")\n .addChildNode(new __XmlText(String(input.RestrictPublicBuckets)))\n .withName(\"RestrictPublicBuckets\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlQueueConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"QueueConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.QueueArn !== undefined && input.QueueArn !== null) {\n var node = new __XmlNode(\"QueueArn\").addChildNode(new __XmlText(input.QueueArn)).withName(\"Queue\");\n bodyNode.addChildNode(node);\n }\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlQueueConfigurationList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlQueueConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlRedirect = function (input, context) {\n var bodyNode = new __XmlNode(\"Redirect\");\n if (input.HostName !== undefined && input.HostName !== null) {\n var node = new __XmlNode(\"HostName\").addChildNode(new __XmlText(input.HostName)).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.HttpRedirectCode !== undefined && input.HttpRedirectCode !== null) {\n var node = new __XmlNode(\"HttpRedirectCode\")\n .addChildNode(new __XmlText(input.HttpRedirectCode))\n .withName(\"HttpRedirectCode\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol !== undefined && input.Protocol !== null) {\n var node = new __XmlNode(\"Protocol\").addChildNode(new __XmlText(input.Protocol)).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyPrefixWith !== undefined && input.ReplaceKeyPrefixWith !== null) {\n var node = new __XmlNode(\"ReplaceKeyPrefixWith\")\n .addChildNode(new __XmlText(input.ReplaceKeyPrefixWith))\n .withName(\"ReplaceKeyPrefixWith\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyWith !== undefined && input.ReplaceKeyWith !== null) {\n var node = new __XmlNode(\"ReplaceKeyWith\")\n .addChildNode(new __XmlText(input.ReplaceKeyWith))\n .withName(\"ReplaceKeyWith\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRedirectAllRequestsTo = function (input, context) {\n var bodyNode = new __XmlNode(\"RedirectAllRequestsTo\");\n if (input.HostName !== undefined && input.HostName !== null) {\n var node = new __XmlNode(\"HostName\").addChildNode(new __XmlText(input.HostName)).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol !== undefined && input.Protocol !== null) {\n var node = new __XmlNode(\"Protocol\").addChildNode(new __XmlText(input.Protocol)).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicaModifications = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicaModifications\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicaModificationsStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationConfiguration\");\n if (input.Role !== undefined && input.Role !== null) {\n var node = new __XmlNode(\"Role\").addChildNode(new __XmlText(input.Role)).withName(\"Role\");\n bodyNode.addChildNode(node);\n }\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlReplicationRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRule = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRule\");\n if (input.ID !== undefined && input.ID !== null) {\n var node = new __XmlNode(\"ID\").addChildNode(new __XmlText(input.ID)).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Priority !== undefined && input.Priority !== null) {\n var node = new __XmlNode(\"Priority\").addChildNode(new __XmlText(String(input.Priority))).withName(\"Priority\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlReplicationRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicationRuleStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.SourceSelectionCriteria !== undefined && input.SourceSelectionCriteria !== null) {\n var node = serializeAws_restXmlSourceSelectionCriteria(input.SourceSelectionCriteria, context).withName(\"SourceSelectionCriteria\");\n bodyNode.addChildNode(node);\n }\n if (input.ExistingObjectReplication !== undefined && input.ExistingObjectReplication !== null) {\n var node = serializeAws_restXmlExistingObjectReplication(input.ExistingObjectReplication, context).withName(\"ExistingObjectReplication\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.DeleteMarkerReplication !== undefined && input.DeleteMarkerReplication !== null) {\n var node = serializeAws_restXmlDeleteMarkerReplication(input.DeleteMarkerReplication, context).withName(\"DeleteMarkerReplication\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRuleAndOperator = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRuleAndOperator\");\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags !== undefined && input.Tags !== null) {\n var nodes = serializeAws_restXmlTagSet(input.Tags, context);\n nodes.map(function (node) {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRuleFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationRuleFilter\");\n ReplicationRuleFilter.visit(input, {\n Prefix: function (value) {\n var node = new __XmlNode(\"Prefix\").addChildNode(new __XmlText(value)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: function (value) {\n var node = serializeAws_restXmlTag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: function (value) {\n var node = serializeAws_restXmlReplicationRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: function (name, value) {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlReplicationRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlReplicationTime = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationTime\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"ReplicationTimeStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Time !== undefined && input.Time !== null) {\n var node = serializeAws_restXmlReplicationTimeValue(input.Time, context).withName(\"Time\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlReplicationTimeValue = function (input, context) {\n var bodyNode = new __XmlNode(\"ReplicationTimeValue\");\n if (input.Minutes !== undefined && input.Minutes !== null) {\n var node = new __XmlNode(\"Minutes\").addChildNode(new __XmlText(String(input.Minutes))).withName(\"Minutes\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRequestPaymentConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"RequestPaymentConfiguration\");\n if (input.Payer !== undefined && input.Payer !== null) {\n var node = new __XmlNode(\"Payer\").addChildNode(new __XmlText(input.Payer)).withName(\"Payer\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRequestProgress = function (input, context) {\n var bodyNode = new __XmlNode(\"RequestProgress\");\n if (input.Enabled !== undefined && input.Enabled !== null) {\n var node = new __XmlNode(\"EnableRequestProgress\")\n .addChildNode(new __XmlText(String(input.Enabled)))\n .withName(\"Enabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRestoreRequest = function (input, context) {\n var bodyNode = new __XmlNode(\"RestoreRequest\");\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.GlacierJobParameters !== undefined && input.GlacierJobParameters !== null) {\n var node = serializeAws_restXmlGlacierJobParameters(input.GlacierJobParameters, context).withName(\"GlacierJobParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.Type !== undefined && input.Type !== null) {\n var node = new __XmlNode(\"RestoreRequestType\").addChildNode(new __XmlText(input.Type)).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n if (input.Tier !== undefined && input.Tier !== null) {\n var node = new __XmlNode(\"Tier\").addChildNode(new __XmlText(input.Tier)).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n if (input.Description !== undefined && input.Description !== null) {\n var node = new __XmlNode(\"Description\").addChildNode(new __XmlText(input.Description)).withName(\"Description\");\n bodyNode.addChildNode(node);\n }\n if (input.SelectParameters !== undefined && input.SelectParameters !== null) {\n var node = serializeAws_restXmlSelectParameters(input.SelectParameters, context).withName(\"SelectParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputLocation !== undefined && input.OutputLocation !== null) {\n var node = serializeAws_restXmlOutputLocation(input.OutputLocation, context).withName(\"OutputLocation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRoutingRule = function (input, context) {\n var bodyNode = new __XmlNode(\"RoutingRule\");\n if (input.Condition !== undefined && input.Condition !== null) {\n var node = serializeAws_restXmlCondition(input.Condition, context).withName(\"Condition\");\n bodyNode.addChildNode(node);\n }\n if (input.Redirect !== undefined && input.Redirect !== null) {\n var node = serializeAws_restXmlRedirect(input.Redirect, context).withName(\"Redirect\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlRoutingRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlRoutingRule(entry, context);\n return node.withName(\"RoutingRule\");\n });\n};\nvar serializeAws_restXmlS3KeyFilter = function (input, context) {\n var bodyNode = new __XmlNode(\"S3KeyFilter\");\n if (input.FilterRules !== undefined && input.FilterRules !== null) {\n var nodes = serializeAws_restXmlFilterRuleList(input.FilterRules, context);\n nodes.map(function (node) {\n node = node.withName(\"FilterRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlS3Location = function (input, context) {\n var bodyNode = new __XmlNode(\"S3Location\");\n if (input.BucketName !== undefined && input.BucketName !== null) {\n var node = new __XmlNode(\"BucketName\").addChildNode(new __XmlText(input.BucketName)).withName(\"BucketName\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix !== undefined && input.Prefix !== null) {\n var node = new __XmlNode(\"LocationPrefix\").addChildNode(new __XmlText(input.Prefix)).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption !== undefined && input.Encryption !== null) {\n var node = serializeAws_restXmlEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n if (input.CannedACL !== undefined && input.CannedACL !== null) {\n var node = new __XmlNode(\"ObjectCannedACL\").addChildNode(new __XmlText(input.CannedACL)).withName(\"CannedACL\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlList !== undefined && input.AccessControlList !== null) {\n var nodes = serializeAws_restXmlGrants(input.AccessControlList, context);\n var containerNode_4 = new __XmlNode(\"AccessControlList\");\n nodes.map(function (node) {\n containerNode_4.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_4);\n }\n if (input.Tagging !== undefined && input.Tagging !== null) {\n var node = serializeAws_restXmlTagging(input.Tagging, context).withName(\"Tagging\");\n bodyNode.addChildNode(node);\n }\n if (input.UserMetadata !== undefined && input.UserMetadata !== null) {\n var nodes = serializeAws_restXmlUserMetadata(input.UserMetadata, context);\n var containerNode_5 = new __XmlNode(\"UserMetadata\");\n nodes.map(function (node) {\n containerNode_5.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_5);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"StorageClass\").addChildNode(new __XmlText(input.StorageClass)).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlScanRange = function (input, context) {\n var bodyNode = new __XmlNode(\"ScanRange\");\n if (input.Start !== undefined && input.Start !== null) {\n var node = new __XmlNode(\"Start\").addChildNode(new __XmlText(String(input.Start))).withName(\"Start\");\n bodyNode.addChildNode(node);\n }\n if (input.End !== undefined && input.End !== null) {\n var node = new __XmlNode(\"End\").addChildNode(new __XmlText(String(input.End))).withName(\"End\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSelectParameters = function (input, context) {\n var bodyNode = new __XmlNode(\"SelectParameters\");\n if (input.InputSerialization !== undefined && input.InputSerialization !== null) {\n var node = serializeAws_restXmlInputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType !== undefined && input.ExpressionType !== null) {\n var node = new __XmlNode(\"ExpressionType\")\n .addChildNode(new __XmlText(input.ExpressionType))\n .withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.Expression !== undefined && input.Expression !== null) {\n var node = new __XmlNode(\"Expression\").addChildNode(new __XmlText(input.Expression)).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization !== undefined && input.OutputSerialization !== null) {\n var node = serializeAws_restXmlOutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionByDefault = function (input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionByDefault\");\n if (input.SSEAlgorithm !== undefined && input.SSEAlgorithm !== null) {\n var node = new __XmlNode(\"ServerSideEncryption\")\n .addChildNode(new __XmlText(input.SSEAlgorithm))\n .withName(\"SSEAlgorithm\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSMasterKeyID !== undefined && input.KMSMasterKeyID !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\")\n .addChildNode(new __XmlText(input.KMSMasterKeyID))\n .withName(\"KMSMasterKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionConfiguration\");\n if (input.Rules !== undefined && input.Rules !== null) {\n var nodes = serializeAws_restXmlServerSideEncryptionRules(input.Rules, context);\n nodes.map(function (node) {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionRule = function (input, context) {\n var bodyNode = new __XmlNode(\"ServerSideEncryptionRule\");\n if (input.ApplyServerSideEncryptionByDefault !== undefined && input.ApplyServerSideEncryptionByDefault !== null) {\n var node = serializeAws_restXmlServerSideEncryptionByDefault(input.ApplyServerSideEncryptionByDefault, context).withName(\"ApplyServerSideEncryptionByDefault\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketKeyEnabled !== undefined && input.BucketKeyEnabled !== null) {\n var node = new __XmlNode(\"BucketKeyEnabled\")\n .addChildNode(new __XmlText(String(input.BucketKeyEnabled)))\n .withName(\"BucketKeyEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlServerSideEncryptionRules = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlServerSideEncryptionRule(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlSourceSelectionCriteria = function (input, context) {\n var bodyNode = new __XmlNode(\"SourceSelectionCriteria\");\n if (input.SseKmsEncryptedObjects !== undefined && input.SseKmsEncryptedObjects !== null) {\n var node = serializeAws_restXmlSseKmsEncryptedObjects(input.SseKmsEncryptedObjects, context).withName(\"SseKmsEncryptedObjects\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicaModifications !== undefined && input.ReplicaModifications !== null) {\n var node = serializeAws_restXmlReplicaModifications(input.ReplicaModifications, context).withName(\"ReplicaModifications\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSSEKMS = function (input, context) {\n var bodyNode = new __XmlNode(\"SSE-KMS\");\n if (input.KeyId !== undefined && input.KeyId !== null) {\n var node = new __XmlNode(\"SSEKMSKeyId\").addChildNode(new __XmlText(input.KeyId)).withName(\"KeyId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSseKmsEncryptedObjects = function (input, context) {\n var bodyNode = new __XmlNode(\"SseKmsEncryptedObjects\");\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"SseKmsEncryptedObjectsStatus\")\n .addChildNode(new __XmlText(input.Status))\n .withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlSSES3 = function (input, context) {\n var bodyNode = new __XmlNode(\"SSE-S3\");\n return bodyNode;\n};\nvar serializeAws_restXmlStorageClassAnalysis = function (input, context) {\n var bodyNode = new __XmlNode(\"StorageClassAnalysis\");\n if (input.DataExport !== undefined && input.DataExport !== null) {\n var node = serializeAws_restXmlStorageClassAnalysisDataExport(input.DataExport, context).withName(\"DataExport\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlStorageClassAnalysisDataExport = function (input, context) {\n var bodyNode = new __XmlNode(\"StorageClassAnalysisDataExport\");\n if (input.OutputSchemaVersion !== undefined && input.OutputSchemaVersion !== null) {\n var node = new __XmlNode(\"StorageClassAnalysisSchemaVersion\")\n .addChildNode(new __XmlText(input.OutputSchemaVersion))\n .withName(\"OutputSchemaVersion\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination !== undefined && input.Destination !== null) {\n var node = serializeAws_restXmlAnalyticsExportDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTag = function (input, context) {\n var bodyNode = new __XmlNode(\"Tag\");\n if (input.Key !== undefined && input.Key !== null) {\n var node = new __XmlNode(\"ObjectKey\").addChildNode(new __XmlText(input.Key)).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.Value !== undefined && input.Value !== null) {\n var node = new __XmlNode(\"Value\").addChildNode(new __XmlText(input.Value)).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTagging = function (input, context) {\n var bodyNode = new __XmlNode(\"Tagging\");\n if (input.TagSet !== undefined && input.TagSet !== null) {\n var nodes = serializeAws_restXmlTagSet(input.TagSet, context);\n var containerNode_6 = new __XmlNode(\"TagSet\");\n nodes.map(function (node) {\n containerNode_6.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_6);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTagSet = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlTag(entry, context);\n return node.withName(\"Tag\");\n });\n};\nvar serializeAws_restXmlTargetGrant = function (input, context) {\n var bodyNode = new __XmlNode(\"TargetGrant\");\n if (input.Grantee !== undefined && input.Grantee !== null) {\n var node = serializeAws_restXmlGrantee(input.Grantee, context).withName(\"Grantee\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission !== undefined && input.Permission !== null) {\n var node = new __XmlNode(\"BucketLogsPermission\")\n .addChildNode(new __XmlText(input.Permission))\n .withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTargetGrants = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlTargetGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nvar serializeAws_restXmlTiering = function (input, context) {\n var bodyNode = new __XmlNode(\"Tiering\");\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"IntelligentTieringDays\")\n .addChildNode(new __XmlText(String(input.Days)))\n .withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessTier !== undefined && input.AccessTier !== null) {\n var node = new __XmlNode(\"IntelligentTieringAccessTier\")\n .addChildNode(new __XmlText(input.AccessTier))\n .withName(\"AccessTier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTieringList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlTiering(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlTopicConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"TopicConfiguration\");\n if (input.Id !== undefined && input.Id !== null) {\n var node = new __XmlNode(\"NotificationId\").addChildNode(new __XmlText(input.Id)).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.TopicArn !== undefined && input.TopicArn !== null) {\n var node = new __XmlNode(\"TopicArn\").addChildNode(new __XmlText(input.TopicArn)).withName(\"Topic\");\n bodyNode.addChildNode(node);\n }\n if (input.Events !== undefined && input.Events !== null) {\n var nodes = serializeAws_restXmlEventList(input.Events, context);\n nodes.map(function (node) {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter !== undefined && input.Filter !== null) {\n var node = serializeAws_restXmlNotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTopicConfigurationList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlTopicConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlTransition = function (input, context) {\n var bodyNode = new __XmlNode(\"Transition\");\n if (input.Date !== undefined && input.Date !== null) {\n var node = new __XmlNode(\"Date\")\n .addChildNode(new __XmlText(input.Date.toISOString().split(\".\")[0] + \"Z\"))\n .withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days !== undefined && input.Days !== null) {\n var node = new __XmlNode(\"Days\").addChildNode(new __XmlText(String(input.Days))).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass !== undefined && input.StorageClass !== null) {\n var node = new __XmlNode(\"TransitionStorageClass\")\n .addChildNode(new __XmlText(input.StorageClass))\n .withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlTransitionList = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlTransition(entry, context);\n return node.withName(\"member\");\n });\n};\nvar serializeAws_restXmlUserMetadata = function (input, context) {\n return input\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n var node = serializeAws_restXmlMetadataEntry(entry, context);\n return node.withName(\"MetadataEntry\");\n });\n};\nvar serializeAws_restXmlVersioningConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"VersioningConfiguration\");\n if (input.MFADelete !== undefined && input.MFADelete !== null) {\n var node = new __XmlNode(\"MFADelete\").addChildNode(new __XmlText(input.MFADelete)).withName(\"MfaDelete\");\n bodyNode.addChildNode(node);\n }\n if (input.Status !== undefined && input.Status !== null) {\n var node = new __XmlNode(\"BucketVersioningStatus\").addChildNode(new __XmlText(input.Status)).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nvar serializeAws_restXmlWebsiteConfiguration = function (input, context) {\n var bodyNode = new __XmlNode(\"WebsiteConfiguration\");\n if (input.ErrorDocument !== undefined && input.ErrorDocument !== null) {\n var node = serializeAws_restXmlErrorDocument(input.ErrorDocument, context).withName(\"ErrorDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.IndexDocument !== undefined && input.IndexDocument !== null) {\n var node = serializeAws_restXmlIndexDocument(input.IndexDocument, context).withName(\"IndexDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.RedirectAllRequestsTo !== undefined && input.RedirectAllRequestsTo !== null) {\n var node = serializeAws_restXmlRedirectAllRequestsTo(input.RedirectAllRequestsTo, context).withName(\"RedirectAllRequestsTo\");\n bodyNode.addChildNode(node);\n }\n if (input.RoutingRules !== undefined && input.RoutingRules !== null) {\n var nodes = serializeAws_restXmlRoutingRules(input.RoutingRules, context);\n var containerNode_7 = new __XmlNode(\"RoutingRules\");\n nodes.map(function (node) {\n containerNode_7.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode_7);\n }\n return bodyNode;\n};\nvar deserializeAws_restXmlAbortIncompleteMultipartUpload = function (output, context) {\n var contents = {\n DaysAfterInitiation: undefined,\n };\n if (output[\"DaysAfterInitiation\"] !== undefined) {\n contents.DaysAfterInitiation = parseInt(output[\"DaysAfterInitiation\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlAccessControlTranslation = function (output, context) {\n var contents = {\n Owner: undefined,\n };\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = output[\"Owner\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlAllowedHeaders = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlAllowedMethods = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlAllowedOrigins = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlAnalyticsAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlAnalyticsConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined,\n StorageClassAnalysis: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlAnalyticsFilter(output[\"Filter\"], context);\n }\n if (output[\"StorageClassAnalysis\"] !== undefined) {\n contents.StorageClassAnalysis = deserializeAws_restXmlStorageClassAnalysis(output[\"StorageClassAnalysis\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlAnalyticsConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlAnalyticsConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlAnalyticsExportDestination = function (output, context) {\n var contents = {\n S3BucketDestination: undefined,\n };\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = deserializeAws_restXmlAnalyticsS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlAnalyticsFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlAnalyticsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlAnalyticsS3BucketDestination = function (output, context) {\n var contents = {\n Format: undefined,\n BucketAccountId: undefined,\n Bucket: undefined,\n Prefix: undefined,\n };\n if (output[\"Format\"] !== undefined) {\n contents.Format = output[\"Format\"];\n }\n if (output[\"BucketAccountId\"] !== undefined) {\n contents.BucketAccountId = output[\"BucketAccountId\"];\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = output[\"Bucket\"];\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlBucket = function (output, context) {\n var contents = {\n Name: undefined,\n CreationDate: undefined,\n };\n if (output[\"Name\"] !== undefined) {\n contents.Name = output[\"Name\"];\n }\n if (output[\"CreationDate\"] !== undefined) {\n contents.CreationDate = new Date(output[\"CreationDate\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlBuckets = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlBucket(entry, context);\n });\n};\nvar deserializeAws_restXmlCommonPrefix = function (output, context) {\n var contents = {\n Prefix: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlCommonPrefixList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlCommonPrefix(entry, context);\n });\n};\nvar deserializeAws_restXmlCondition = function (output, context) {\n var contents = {\n HttpErrorCodeReturnedEquals: undefined,\n KeyPrefixEquals: undefined,\n };\n if (output[\"HttpErrorCodeReturnedEquals\"] !== undefined) {\n contents.HttpErrorCodeReturnedEquals = output[\"HttpErrorCodeReturnedEquals\"];\n }\n if (output[\"KeyPrefixEquals\"] !== undefined) {\n contents.KeyPrefixEquals = output[\"KeyPrefixEquals\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlCopyObjectResult = function (output, context) {\n var contents = {\n ETag: undefined,\n LastModified: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlCopyPartResult = function (output, context) {\n var contents = {\n ETag: undefined,\n LastModified: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlCORSRule = function (output, context) {\n var contents = {\n AllowedHeaders: undefined,\n AllowedMethods: undefined,\n AllowedOrigins: undefined,\n ExposeHeaders: undefined,\n MaxAgeSeconds: undefined,\n };\n if (output.AllowedHeader === \"\") {\n contents.AllowedHeaders = [];\n }\n if (output[\"AllowedHeader\"] !== undefined) {\n contents.AllowedHeaders = deserializeAws_restXmlAllowedHeaders(__getArrayIfSingleItem(output[\"AllowedHeader\"]), context);\n }\n if (output.AllowedMethod === \"\") {\n contents.AllowedMethods = [];\n }\n if (output[\"AllowedMethod\"] !== undefined) {\n contents.AllowedMethods = deserializeAws_restXmlAllowedMethods(__getArrayIfSingleItem(output[\"AllowedMethod\"]), context);\n }\n if (output.AllowedOrigin === \"\") {\n contents.AllowedOrigins = [];\n }\n if (output[\"AllowedOrigin\"] !== undefined) {\n contents.AllowedOrigins = deserializeAws_restXmlAllowedOrigins(__getArrayIfSingleItem(output[\"AllowedOrigin\"]), context);\n }\n if (output.ExposeHeader === \"\") {\n contents.ExposeHeaders = [];\n }\n if (output[\"ExposeHeader\"] !== undefined) {\n contents.ExposeHeaders = deserializeAws_restXmlExposeHeaders(__getArrayIfSingleItem(output[\"ExposeHeader\"]), context);\n }\n if (output[\"MaxAgeSeconds\"] !== undefined) {\n contents.MaxAgeSeconds = parseInt(output[\"MaxAgeSeconds\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlCORSRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlCORSRule(entry, context);\n });\n};\nvar deserializeAws_restXmlDefaultRetention = function (output, context) {\n var contents = {\n Mode: undefined,\n Days: undefined,\n Years: undefined,\n };\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = output[\"Mode\"];\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"Years\"] !== undefined) {\n contents.Years = parseInt(output[\"Years\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlDeletedObject = function (output, context) {\n var contents = {\n Key: undefined,\n VersionId: undefined,\n DeleteMarker: undefined,\n DeleteMarkerVersionId: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarker = output[\"DeleteMarker\"] == \"true\";\n }\n if (output[\"DeleteMarkerVersionId\"] !== undefined) {\n contents.DeleteMarkerVersionId = output[\"DeleteMarkerVersionId\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlDeletedObjects = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlDeletedObject(entry, context);\n });\n};\nvar deserializeAws_restXmlDeleteMarkerEntry = function (output, context) {\n var contents = {\n Owner: undefined,\n Key: undefined,\n VersionId: undefined,\n IsLatest: undefined,\n LastModified: undefined,\n };\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = output[\"IsLatest\"] == \"true\";\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlDeleteMarkerReplication = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlDeleteMarkers = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlDeleteMarkerEntry(entry, context);\n });\n};\nvar deserializeAws_restXmlDestination = function (output, context) {\n var contents = {\n Bucket: undefined,\n Account: undefined,\n StorageClass: undefined,\n AccessControlTranslation: undefined,\n EncryptionConfiguration: undefined,\n ReplicationTime: undefined,\n Metrics: undefined,\n };\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = output[\"Bucket\"];\n }\n if (output[\"Account\"] !== undefined) {\n contents.Account = output[\"Account\"];\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"AccessControlTranslation\"] !== undefined) {\n contents.AccessControlTranslation = deserializeAws_restXmlAccessControlTranslation(output[\"AccessControlTranslation\"], context);\n }\n if (output[\"EncryptionConfiguration\"] !== undefined) {\n contents.EncryptionConfiguration = deserializeAws_restXmlEncryptionConfiguration(output[\"EncryptionConfiguration\"], context);\n }\n if (output[\"ReplicationTime\"] !== undefined) {\n contents.ReplicationTime = deserializeAws_restXmlReplicationTime(output[\"ReplicationTime\"], context);\n }\n if (output[\"Metrics\"] !== undefined) {\n contents.Metrics = deserializeAws_restXmlMetrics(output[\"Metrics\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlEncryptionConfiguration = function (output, context) {\n var contents = {\n ReplicaKmsKeyID: undefined,\n };\n if (output[\"ReplicaKmsKeyID\"] !== undefined) {\n contents.ReplicaKmsKeyID = output[\"ReplicaKmsKeyID\"];\n }\n return contents;\n};\nvar deserializeAws_restXml_Error = function (output, context) {\n var contents = {\n Key: undefined,\n VersionId: undefined,\n Code: undefined,\n Message: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"Code\"] !== undefined) {\n contents.Code = output[\"Code\"];\n }\n if (output[\"Message\"] !== undefined) {\n contents.Message = output[\"Message\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlErrorDocument = function (output, context) {\n var contents = {\n Key: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlErrors = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXml_Error(entry, context);\n });\n};\nvar deserializeAws_restXmlEventList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlExistingObjectReplication = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlExposeHeaders = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlFilterRule = function (output, context) {\n var contents = {\n Name: undefined,\n Value: undefined,\n };\n if (output[\"Name\"] !== undefined) {\n contents.Name = output[\"Name\"];\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = output[\"Value\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlFilterRuleList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlFilterRule(entry, context);\n });\n};\nvar deserializeAws_restXmlGrant = function (output, context) {\n var contents = {\n Grantee: undefined,\n Permission: undefined,\n };\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = deserializeAws_restXmlGrantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = output[\"Permission\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlGrantee = function (output, context) {\n var contents = {\n DisplayName: undefined,\n EmailAddress: undefined,\n ID: undefined,\n URI: undefined,\n Type: undefined,\n };\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = output[\"DisplayName\"];\n }\n if (output[\"EmailAddress\"] !== undefined) {\n contents.EmailAddress = output[\"EmailAddress\"];\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"URI\"] !== undefined) {\n contents.URI = output[\"URI\"];\n }\n if (output[\"xsi:type\"] !== undefined) {\n contents.Type = output[\"xsi:type\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlGrants = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlGrant(entry, context);\n });\n};\nvar deserializeAws_restXmlIndexDocument = function (output, context) {\n var contents = {\n Suffix: undefined,\n };\n if (output[\"Suffix\"] !== undefined) {\n contents.Suffix = output[\"Suffix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlInitiator = function (output, context) {\n var contents = {\n ID: undefined,\n DisplayName: undefined,\n };\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = output[\"DisplayName\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlIntelligentTieringAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlIntelligentTieringConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined,\n Status: undefined,\n Tierings: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlIntelligentTieringFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output.Tiering === \"\") {\n contents.Tierings = [];\n }\n if (output[\"Tiering\"] !== undefined) {\n contents.Tierings = deserializeAws_restXmlTieringList(__getArrayIfSingleItem(output[\"Tiering\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlIntelligentTieringConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlIntelligentTieringConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlIntelligentTieringFilter = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tag: undefined,\n And: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tag = deserializeAws_restXmlTag(output[\"Tag\"], context);\n }\n if (output[\"And\"] !== undefined) {\n contents.And = deserializeAws_restXmlIntelligentTieringAndOperator(output[\"And\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryConfiguration = function (output, context) {\n var contents = {\n Destination: undefined,\n IsEnabled: undefined,\n Filter: undefined,\n Id: undefined,\n IncludedObjectVersions: undefined,\n OptionalFields: undefined,\n Schedule: undefined,\n };\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlInventoryDestination(output[\"Destination\"], context);\n }\n if (output[\"IsEnabled\"] !== undefined) {\n contents.IsEnabled = output[\"IsEnabled\"] == \"true\";\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlInventoryFilter(output[\"Filter\"], context);\n }\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"IncludedObjectVersions\"] !== undefined) {\n contents.IncludedObjectVersions = output[\"IncludedObjectVersions\"];\n }\n if (output.OptionalFields === \"\") {\n contents.OptionalFields = [];\n }\n if (output[\"OptionalFields\"] !== undefined && output[\"OptionalFields\"][\"Field\"] !== undefined) {\n contents.OptionalFields = deserializeAws_restXmlInventoryOptionalFields(__getArrayIfSingleItem(output[\"OptionalFields\"][\"Field\"]), context);\n }\n if (output[\"Schedule\"] !== undefined) {\n contents.Schedule = deserializeAws_restXmlInventorySchedule(output[\"Schedule\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlInventoryConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlInventoryDestination = function (output, context) {\n var contents = {\n S3BucketDestination: undefined,\n };\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = deserializeAws_restXmlInventoryS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryEncryption = function (output, context) {\n var contents = {\n SSES3: undefined,\n SSEKMS: undefined,\n };\n if (output[\"SSE-S3\"] !== undefined) {\n contents.SSES3 = deserializeAws_restXmlSSES3(output[\"SSE-S3\"], context);\n }\n if (output[\"SSE-KMS\"] !== undefined) {\n contents.SSEKMS = deserializeAws_restXmlSSEKMS(output[\"SSE-KMS\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryFilter = function (output, context) {\n var contents = {\n Prefix: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlInventoryOptionalFields = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return entry;\n });\n};\nvar deserializeAws_restXmlInventoryS3BucketDestination = function (output, context) {\n var contents = {\n AccountId: undefined,\n Bucket: undefined,\n Format: undefined,\n Prefix: undefined,\n Encryption: undefined,\n };\n if (output[\"AccountId\"] !== undefined) {\n contents.AccountId = output[\"AccountId\"];\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = output[\"Bucket\"];\n }\n if (output[\"Format\"] !== undefined) {\n contents.Format = output[\"Format\"];\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Encryption\"] !== undefined) {\n contents.Encryption = deserializeAws_restXmlInventoryEncryption(output[\"Encryption\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlInventorySchedule = function (output, context) {\n var contents = {\n Frequency: undefined,\n };\n if (output[\"Frequency\"] !== undefined) {\n contents.Frequency = output[\"Frequency\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlLambdaFunctionConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n LambdaFunctionArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"CloudFunction\"] !== undefined) {\n contents.LambdaFunctionArn = output[\"CloudFunction\"];\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlLambdaFunctionConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlLambdaFunctionConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlLifecycleExpiration = function (output, context) {\n var contents = {\n Date: undefined,\n Days: undefined,\n ExpiredObjectDeleteMarker: undefined,\n };\n if (output[\"Date\"] !== undefined) {\n contents.Date = new Date(output[\"Date\"]);\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"ExpiredObjectDeleteMarker\"] !== undefined) {\n contents.ExpiredObjectDeleteMarker = output[\"ExpiredObjectDeleteMarker\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlLifecycleRule = function (output, context) {\n var contents = {\n Expiration: undefined,\n ID: undefined,\n Prefix: undefined,\n Filter: undefined,\n Status: undefined,\n Transitions: undefined,\n NoncurrentVersionTransitions: undefined,\n NoncurrentVersionExpiration: undefined,\n AbortIncompleteMultipartUpload: undefined,\n };\n if (output[\"Expiration\"] !== undefined) {\n contents.Expiration = deserializeAws_restXmlLifecycleExpiration(output[\"Expiration\"], context);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlLifecycleRuleFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output.Transition === \"\") {\n contents.Transitions = [];\n }\n if (output[\"Transition\"] !== undefined) {\n contents.Transitions = deserializeAws_restXmlTransitionList(__getArrayIfSingleItem(output[\"Transition\"]), context);\n }\n if (output.NoncurrentVersionTransition === \"\") {\n contents.NoncurrentVersionTransitions = [];\n }\n if (output[\"NoncurrentVersionTransition\"] !== undefined) {\n contents.NoncurrentVersionTransitions = deserializeAws_restXmlNoncurrentVersionTransitionList(__getArrayIfSingleItem(output[\"NoncurrentVersionTransition\"]), context);\n }\n if (output[\"NoncurrentVersionExpiration\"] !== undefined) {\n contents.NoncurrentVersionExpiration = deserializeAws_restXmlNoncurrentVersionExpiration(output[\"NoncurrentVersionExpiration\"], context);\n }\n if (output[\"AbortIncompleteMultipartUpload\"] !== undefined) {\n contents.AbortIncompleteMultipartUpload = deserializeAws_restXmlAbortIncompleteMultipartUpload(output[\"AbortIncompleteMultipartUpload\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlLifecycleRuleAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlLifecycleRuleFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlLifecycleRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlLifecycleRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlLifecycleRule(entry, context);\n });\n};\nvar deserializeAws_restXmlLoggingEnabled = function (output, context) {\n var contents = {\n TargetBucket: undefined,\n TargetGrants: undefined,\n TargetPrefix: undefined,\n };\n if (output[\"TargetBucket\"] !== undefined) {\n contents.TargetBucket = output[\"TargetBucket\"];\n }\n if (output.TargetGrants === \"\") {\n contents.TargetGrants = [];\n }\n if (output[\"TargetGrants\"] !== undefined && output[\"TargetGrants\"][\"Grant\"] !== undefined) {\n contents.TargetGrants = deserializeAws_restXmlTargetGrants(__getArrayIfSingleItem(output[\"TargetGrants\"][\"Grant\"]), context);\n }\n if (output[\"TargetPrefix\"] !== undefined) {\n contents.TargetPrefix = output[\"TargetPrefix\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlMetrics = function (output, context) {\n var contents = {\n Status: undefined,\n EventThreshold: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output[\"EventThreshold\"] !== undefined) {\n contents.EventThreshold = deserializeAws_restXmlReplicationTimeValue(output[\"EventThreshold\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMetricsAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMetricsConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlMetricsFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMetricsConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlMetricsConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlMetricsFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlMetricsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlMultipartUpload = function (output, context) {\n var contents = {\n UploadId: undefined,\n Key: undefined,\n Initiated: undefined,\n StorageClass: undefined,\n Owner: undefined,\n Initiator: undefined,\n };\n if (output[\"UploadId\"] !== undefined) {\n contents.UploadId = output[\"UploadId\"];\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"Initiated\"] !== undefined) {\n contents.Initiated = new Date(output[\"Initiated\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n if (output[\"Initiator\"] !== undefined) {\n contents.Initiator = deserializeAws_restXmlInitiator(output[\"Initiator\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlMultipartUploadList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlMultipartUpload(entry, context);\n });\n};\nvar deserializeAws_restXmlNoncurrentVersionExpiration = function (output, context) {\n var contents = {\n NoncurrentDays: undefined,\n };\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = parseInt(output[\"NoncurrentDays\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlNoncurrentVersionTransition = function (output, context) {\n var contents = {\n NoncurrentDays: undefined,\n StorageClass: undefined,\n };\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = parseInt(output[\"NoncurrentDays\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlNoncurrentVersionTransitionList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlNoncurrentVersionTransition(entry, context);\n });\n};\nvar deserializeAws_restXmlNotificationConfigurationFilter = function (output, context) {\n var contents = {\n Key: undefined,\n };\n if (output[\"S3Key\"] !== undefined) {\n contents.Key = deserializeAws_restXmlS3KeyFilter(output[\"S3Key\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXml_Object = function (output, context) {\n var contents = {\n Key: undefined,\n LastModified: undefined,\n ETag: undefined,\n Size: undefined,\n StorageClass: undefined,\n Owner: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXml_Object(entry, context);\n });\n};\nvar deserializeAws_restXmlObjectLockConfiguration = function (output, context) {\n var contents = {\n ObjectLockEnabled: undefined,\n Rule: undefined,\n };\n if (output[\"ObjectLockEnabled\"] !== undefined) {\n contents.ObjectLockEnabled = output[\"ObjectLockEnabled\"];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rule = deserializeAws_restXmlObjectLockRule(output[\"Rule\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectLockLegalHold = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectLockRetention = function (output, context) {\n var contents = {\n Mode: undefined,\n RetainUntilDate: undefined,\n };\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = output[\"Mode\"];\n }\n if (output[\"RetainUntilDate\"] !== undefined) {\n contents.RetainUntilDate = new Date(output[\"RetainUntilDate\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectLockRule = function (output, context) {\n var contents = {\n DefaultRetention: undefined,\n };\n if (output[\"DefaultRetention\"] !== undefined) {\n contents.DefaultRetention = deserializeAws_restXmlDefaultRetention(output[\"DefaultRetention\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectVersion = function (output, context) {\n var contents = {\n ETag: undefined,\n Size: undefined,\n StorageClass: undefined,\n Key: undefined,\n VersionId: undefined,\n IsLatest: undefined,\n LastModified: undefined,\n Owner: undefined,\n };\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = output[\"VersionId\"];\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = output[\"IsLatest\"] == \"true\";\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = deserializeAws_restXmlOwner(output[\"Owner\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlObjectVersionList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlObjectVersion(entry, context);\n });\n};\nvar deserializeAws_restXmlOwner = function (output, context) {\n var contents = {\n DisplayName: undefined,\n ID: undefined,\n };\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = output[\"DisplayName\"];\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlOwnershipControls = function (output, context) {\n var contents = {\n Rules: undefined,\n };\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlOwnershipControlsRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlOwnershipControlsRule = function (output, context) {\n var contents = {\n ObjectOwnership: undefined,\n };\n if (output[\"ObjectOwnership\"] !== undefined) {\n contents.ObjectOwnership = output[\"ObjectOwnership\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlOwnershipControlsRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlOwnershipControlsRule(entry, context);\n });\n};\nvar deserializeAws_restXmlPart = function (output, context) {\n var contents = {\n PartNumber: undefined,\n LastModified: undefined,\n ETag: undefined,\n Size: undefined,\n };\n if (output[\"PartNumber\"] !== undefined) {\n contents.PartNumber = parseInt(output[\"PartNumber\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = new Date(output[\"LastModified\"]);\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = output[\"ETag\"];\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = parseInt(output[\"Size\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlParts = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlPart(entry, context);\n });\n};\nvar deserializeAws_restXmlPolicyStatus = function (output, context) {\n var contents = {\n IsPublic: undefined,\n };\n if (output[\"IsPublic\"] !== undefined) {\n contents.IsPublic = output[\"IsPublic\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlPublicAccessBlockConfiguration = function (output, context) {\n var contents = {\n BlockPublicAcls: undefined,\n IgnorePublicAcls: undefined,\n BlockPublicPolicy: undefined,\n RestrictPublicBuckets: undefined,\n };\n if (output[\"BlockPublicAcls\"] !== undefined) {\n contents.BlockPublicAcls = output[\"BlockPublicAcls\"] == \"true\";\n }\n if (output[\"IgnorePublicAcls\"] !== undefined) {\n contents.IgnorePublicAcls = output[\"IgnorePublicAcls\"] == \"true\";\n }\n if (output[\"BlockPublicPolicy\"] !== undefined) {\n contents.BlockPublicPolicy = output[\"BlockPublicPolicy\"] == \"true\";\n }\n if (output[\"RestrictPublicBuckets\"] !== undefined) {\n contents.RestrictPublicBuckets = output[\"RestrictPublicBuckets\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlQueueConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n QueueArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Queue\"] !== undefined) {\n contents.QueueArn = output[\"Queue\"];\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlQueueConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlQueueConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlRedirect = function (output, context) {\n var contents = {\n HostName: undefined,\n HttpRedirectCode: undefined,\n Protocol: undefined,\n ReplaceKeyPrefixWith: undefined,\n ReplaceKeyWith: undefined,\n };\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = output[\"HostName\"];\n }\n if (output[\"HttpRedirectCode\"] !== undefined) {\n contents.HttpRedirectCode = output[\"HttpRedirectCode\"];\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = output[\"Protocol\"];\n }\n if (output[\"ReplaceKeyPrefixWith\"] !== undefined) {\n contents.ReplaceKeyPrefixWith = output[\"ReplaceKeyPrefixWith\"];\n }\n if (output[\"ReplaceKeyWith\"] !== undefined) {\n contents.ReplaceKeyWith = output[\"ReplaceKeyWith\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlRedirectAllRequestsTo = function (output, context) {\n var contents = {\n HostName: undefined,\n Protocol: undefined,\n };\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = output[\"HostName\"];\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = output[\"Protocol\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicaModifications = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationConfiguration = function (output, context) {\n var contents = {\n Role: undefined,\n Rules: undefined,\n };\n if (output[\"Role\"] !== undefined) {\n contents.Role = output[\"Role\"];\n }\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlReplicationRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationRule = function (output, context) {\n var contents = {\n ID: undefined,\n Priority: undefined,\n Prefix: undefined,\n Filter: undefined,\n Status: undefined,\n SourceSelectionCriteria: undefined,\n ExistingObjectReplication: undefined,\n Destination: undefined,\n DeleteMarkerReplication: undefined,\n };\n if (output[\"ID\"] !== undefined) {\n contents.ID = output[\"ID\"];\n }\n if (output[\"Priority\"] !== undefined) {\n contents.Priority = parseInt(output[\"Priority\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlReplicationRuleFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output[\"SourceSelectionCriteria\"] !== undefined) {\n contents.SourceSelectionCriteria = deserializeAws_restXmlSourceSelectionCriteria(output[\"SourceSelectionCriteria\"], context);\n }\n if (output[\"ExistingObjectReplication\"] !== undefined) {\n contents.ExistingObjectReplication = deserializeAws_restXmlExistingObjectReplication(output[\"ExistingObjectReplication\"], context);\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlDestination(output[\"Destination\"], context);\n }\n if (output[\"DeleteMarkerReplication\"] !== undefined) {\n contents.DeleteMarkerReplication = deserializeAws_restXmlDeleteMarkerReplication(output[\"DeleteMarkerReplication\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationRuleAndOperator = function (output, context) {\n var contents = {\n Prefix: undefined,\n Tags: undefined,\n };\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = output[\"Prefix\"];\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tags = deserializeAws_restXmlTagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationRuleFilter = function (output, context) {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: output[\"Prefix\"],\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: deserializeAws_restXmlTag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: deserializeAws_restXmlReplicationRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nvar deserializeAws_restXmlReplicationRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlReplicationRule(entry, context);\n });\n};\nvar deserializeAws_restXmlReplicationTime = function (output, context) {\n var contents = {\n Status: undefined,\n Time: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n if (output[\"Time\"] !== undefined) {\n contents.Time = deserializeAws_restXmlReplicationTimeValue(output[\"Time\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlReplicationTimeValue = function (output, context) {\n var contents = {\n Minutes: undefined,\n };\n if (output[\"Minutes\"] !== undefined) {\n contents.Minutes = parseInt(output[\"Minutes\"]);\n }\n return contents;\n};\nvar deserializeAws_restXmlRoutingRule = function (output, context) {\n var contents = {\n Condition: undefined,\n Redirect: undefined,\n };\n if (output[\"Condition\"] !== undefined) {\n contents.Condition = deserializeAws_restXmlCondition(output[\"Condition\"], context);\n }\n if (output[\"Redirect\"] !== undefined) {\n contents.Redirect = deserializeAws_restXmlRedirect(output[\"Redirect\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlRoutingRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlRoutingRule(entry, context);\n });\n};\nvar deserializeAws_restXmlS3KeyFilter = function (output, context) {\n var contents = {\n FilterRules: undefined,\n };\n if (output.FilterRule === \"\") {\n contents.FilterRules = [];\n }\n if (output[\"FilterRule\"] !== undefined) {\n contents.FilterRules = deserializeAws_restXmlFilterRuleList(__getArrayIfSingleItem(output[\"FilterRule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionByDefault = function (output, context) {\n var contents = {\n SSEAlgorithm: undefined,\n KMSMasterKeyID: undefined,\n };\n if (output[\"SSEAlgorithm\"] !== undefined) {\n contents.SSEAlgorithm = output[\"SSEAlgorithm\"];\n }\n if (output[\"KMSMasterKeyID\"] !== undefined) {\n contents.KMSMasterKeyID = output[\"KMSMasterKeyID\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionConfiguration = function (output, context) {\n var contents = {\n Rules: undefined,\n };\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rules = deserializeAws_restXmlServerSideEncryptionRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionRule = function (output, context) {\n var contents = {\n ApplyServerSideEncryptionByDefault: undefined,\n BucketKeyEnabled: undefined,\n };\n if (output[\"ApplyServerSideEncryptionByDefault\"] !== undefined) {\n contents.ApplyServerSideEncryptionByDefault = deserializeAws_restXmlServerSideEncryptionByDefault(output[\"ApplyServerSideEncryptionByDefault\"], context);\n }\n if (output[\"BucketKeyEnabled\"] !== undefined) {\n contents.BucketKeyEnabled = output[\"BucketKeyEnabled\"] == \"true\";\n }\n return contents;\n};\nvar deserializeAws_restXmlServerSideEncryptionRules = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlServerSideEncryptionRule(entry, context);\n });\n};\nvar deserializeAws_restXmlSourceSelectionCriteria = function (output, context) {\n var contents = {\n SseKmsEncryptedObjects: undefined,\n ReplicaModifications: undefined,\n };\n if (output[\"SseKmsEncryptedObjects\"] !== undefined) {\n contents.SseKmsEncryptedObjects = deserializeAws_restXmlSseKmsEncryptedObjects(output[\"SseKmsEncryptedObjects\"], context);\n }\n if (output[\"ReplicaModifications\"] !== undefined) {\n contents.ReplicaModifications = deserializeAws_restXmlReplicaModifications(output[\"ReplicaModifications\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlSSEKMS = function (output, context) {\n var contents = {\n KeyId: undefined,\n };\n if (output[\"KeyId\"] !== undefined) {\n contents.KeyId = output[\"KeyId\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlSseKmsEncryptedObjects = function (output, context) {\n var contents = {\n Status: undefined,\n };\n if (output[\"Status\"] !== undefined) {\n contents.Status = output[\"Status\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlSSES3 = function (output, context) {\n var contents = {};\n return contents;\n};\nvar deserializeAws_restXmlStorageClassAnalysis = function (output, context) {\n var contents = {\n DataExport: undefined,\n };\n if (output[\"DataExport\"] !== undefined) {\n contents.DataExport = deserializeAws_restXmlStorageClassAnalysisDataExport(output[\"DataExport\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlStorageClassAnalysisDataExport = function (output, context) {\n var contents = {\n OutputSchemaVersion: undefined,\n Destination: undefined,\n };\n if (output[\"OutputSchemaVersion\"] !== undefined) {\n contents.OutputSchemaVersion = output[\"OutputSchemaVersion\"];\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = deserializeAws_restXmlAnalyticsExportDestination(output[\"Destination\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlTag = function (output, context) {\n var contents = {\n Key: undefined,\n Value: undefined,\n };\n if (output[\"Key\"] !== undefined) {\n contents.Key = output[\"Key\"];\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = output[\"Value\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTagSet = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlTag(entry, context);\n });\n};\nvar deserializeAws_restXmlTargetGrant = function (output, context) {\n var contents = {\n Grantee: undefined,\n Permission: undefined,\n };\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = deserializeAws_restXmlGrantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = output[\"Permission\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTargetGrants = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlTargetGrant(entry, context);\n });\n};\nvar deserializeAws_restXmlTiering = function (output, context) {\n var contents = {\n Days: undefined,\n AccessTier: undefined,\n };\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"AccessTier\"] !== undefined) {\n contents.AccessTier = output[\"AccessTier\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTieringList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlTiering(entry, context);\n });\n};\nvar deserializeAws_restXmlTopicConfiguration = function (output, context) {\n var contents = {\n Id: undefined,\n TopicArn: undefined,\n Events: undefined,\n Filter: undefined,\n };\n if (output[\"Id\"] !== undefined) {\n contents.Id = output[\"Id\"];\n }\n if (output[\"Topic\"] !== undefined) {\n contents.TopicArn = output[\"Topic\"];\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n if (output[\"Event\"] !== undefined) {\n contents.Events = deserializeAws_restXmlEventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = deserializeAws_restXmlNotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nvar deserializeAws_restXmlTopicConfigurationList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlTopicConfiguration(entry, context);\n });\n};\nvar deserializeAws_restXmlTransition = function (output, context) {\n var contents = {\n Date: undefined,\n Days: undefined,\n StorageClass: undefined,\n };\n if (output[\"Date\"] !== undefined) {\n contents.Date = new Date(output[\"Date\"]);\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = parseInt(output[\"Days\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = output[\"StorageClass\"];\n }\n return contents;\n};\nvar deserializeAws_restXmlTransitionList = function (output, context) {\n return (output || [])\n .filter(function (e) { return e != null; })\n .map(function (entry) {\n if (entry === null) {\n return null;\n }\n return deserializeAws_restXmlTransition(entry, context);\n });\n};\nvar deserializeMetadata = function (output) {\n var _a;\n return ({\n httpStatusCode: output.statusCode,\n requestId: (_a = output.headers[\"x-amzn-requestid\"]) !== null && _a !== void 0 ? _a : output.headers[\"x-amzn-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n });\n};\n// Collect low-level response body stream to Uint8Array.\nvar collectBody = function (streamBody, context) {\n if (streamBody === void 0) { streamBody = new Uint8Array(); }\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\n// Encode Uint8Array data into string with utf-8.\nvar collectBodyString = function (streamBody, context) {\n return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });\n};\nvar isSerializableHeaderValue = function (value) {\n return value !== undefined &&\n value !== null &&\n value !== \"\" &&\n (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) &&\n (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\n};\nvar decodeEscapedXML = function (str) {\n return str\n .replace(/&/g, \"&\")\n .replace(/'/g, \"'\")\n .replace(/"/g, '\"')\n .replace(/>/g, \">\")\n .replace(/</g, \"<\");\n};\nvar parseBody = function (streamBody, context) {\n return collectBodyString(streamBody, context).then(function (encoded) {\n if (encoded.length) {\n var parsedObj = xmlParse(encoded, {\n attributeNamePrefix: \"\",\n ignoreAttributes: false,\n parseNodeValue: false,\n tagValueProcessor: function (val, tagName) { return decodeEscapedXML(val); },\n });\n var textNodeName = \"#text\";\n var key = Object.keys(parsedObj)[0];\n var parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return __getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n });\n};\nvar loadRestXmlErrorCode = function (output, data) {\n if (data.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n return \"\";\n};\n//# sourceMappingURL=Aws_restXml.js.map","import { __read } from \"tslib\";\n/**\n * Validate whether a string is an ARN.\n */\nexport var validate = function (str) {\n return typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6;\n};\n/**\n * Parse an ARN string into structure with partition, service, region, accountId and resource values\n */\nexport var parse = function (arn) {\n var segments = arn.split(\":\");\n if (segments.length < 6 || segments[0] !== \"arn\")\n throw new Error(\"Malformed ARN\");\n var _a = __read(segments), \n //Skip \"arn\" literal\n partition = _a[1], service = _a[2], region = _a[3], accountId = _a[4], resource = _a.slice(5);\n return {\n partition: partition,\n service: service,\n region: region,\n accountId: accountId,\n resource: resource.join(\":\"),\n };\n};\n/**\n * Build an ARN with service, partition, region, accountId, and resources strings\n */\nexport var build = function (arnObject) {\n var _a = arnObject.partition, partition = _a === void 0 ? \"aws\" : _a, service = arnObject.service, region = arnObject.region, accountId = arnObject.accountId, resource = arnObject.resource;\n if ([service, region, accountId, resource].some(function (segment) { return typeof segment !== \"string\"; })) {\n throw new Error(\"Input ARN object is invalid\");\n }\n return \"arn:\" + partition + \":\" + service + \":\" + region + \":\" + accountId + \":\" + resource;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQU9BOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUFHLFVBQUMsR0FBUTtJQUMvQixPQUFBLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDO0FBQWxGLENBQWtGLENBQUM7QUFFckY7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxLQUFLLEdBQUcsVUFBQyxHQUFXO0lBQy9CLElBQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0UsSUFBQSxLQUFBLE9BUUYsUUFBUSxDQUFBO0lBTlYsb0JBQW9CO0lBQ3BCLFNBQVMsUUFBQSxFQUNULE9BQU8sUUFBQSxFQUNQLE1BQU0sUUFBQSxFQUNOLFNBQVMsUUFBQSxFQUNOLFFBQVEsY0FDRCxDQUFDO0lBRWIsT0FBTztRQUNMLFNBQVMsV0FBQTtRQUNULE9BQU8sU0FBQTtRQUNQLE1BQU0sUUFBQTtRQUNOLFNBQVMsV0FBQTtRQUNULFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztLQUM3QixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBSUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxLQUFLLEdBQUcsVUFBQyxTQUF1QjtJQUNuQyxJQUFBLEtBQTRELFNBQVMsVUFBcEQsRUFBakIsU0FBUyxtQkFBRyxLQUFLLEtBQUEsRUFBRSxPQUFPLEdBQWtDLFNBQVMsUUFBM0MsRUFBRSxNQUFNLEdBQTBCLFNBQVMsT0FBbkMsRUFBRSxTQUFTLEdBQWUsU0FBUyxVQUF4QixFQUFFLFFBQVEsR0FBSyxTQUFTLFNBQWQsQ0FBZTtJQUM5RSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsT0FBTyxPQUFPLEtBQUssUUFBUSxFQUEzQixDQUEyQixDQUFDLEVBQUU7UUFDekYsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ2hEO0lBQ0QsT0FBTyxTQUFPLFNBQVMsU0FBSSxPQUFPLFNBQUksTUFBTSxTQUFJLFNBQVMsU0FBSSxRQUFVLENBQUM7QUFDMUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBUk4ge1xuICBwYXJ0aXRpb246IHN0cmluZztcbiAgc2VydmljZTogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHJlc291cmNlOiBzdHJpbmc7XG59XG4vKipcbiAqIFZhbGlkYXRlIHdoZXRoZXIgYSBzdHJpbmcgaXMgYW4gQVJOLlxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPSAoc3RyOiBhbnkpOiBib29sZWFuID0+XG4gIHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIgJiYgc3RyLmluZGV4T2YoXCJhcm46XCIpID09PSAwICYmIHN0ci5zcGxpdChcIjpcIikubGVuZ3RoID49IDY7XG5cbi8qKlxuICogUGFyc2UgYW4gQVJOIHN0cmluZyBpbnRvIHN0cnVjdHVyZSB3aXRoIHBhcnRpdGlvbiwgc2VydmljZSwgcmVnaW9uLCBhY2NvdW50SWQgYW5kIHJlc291cmNlIHZhbHVlc1xuICovXG5leHBvcnQgY29uc3QgcGFyc2UgPSAoYXJuOiBzdHJpbmcpOiBBUk4gPT4ge1xuICBjb25zdCBzZWdtZW50cyA9IGFybi5zcGxpdChcIjpcIik7XG4gIGlmIChzZWdtZW50cy5sZW5ndGggPCA2IHx8IHNlZ21lbnRzWzBdICE9PSBcImFyblwiKSB0aHJvdyBuZXcgRXJyb3IoXCJNYWxmb3JtZWQgQVJOXCIpO1xuICBjb25zdCBbXG4gICAgLFxuICAgIC8vU2tpcCBcImFyblwiIGxpdGVyYWxcbiAgICBwYXJ0aXRpb24sXG4gICAgc2VydmljZSxcbiAgICByZWdpb24sXG4gICAgYWNjb3VudElkLFxuICAgIC4uLnJlc291cmNlXG4gIF0gPSBzZWdtZW50cztcblxuICByZXR1cm4ge1xuICAgIHBhcnRpdGlvbixcbiAgICBzZXJ2aWNlLFxuICAgIHJlZ2lvbixcbiAgICBhY2NvdW50SWQsXG4gICAgcmVzb3VyY2U6IHJlc291cmNlLmpvaW4oXCI6XCIpLFxuICB9O1xufTtcblxudHlwZSBidWlsZE9wdGlvbnMgPSBPbWl0PEFSTiwgXCJwYXJ0aXRpb25cIj4gJiB7IHBhcnRpdGlvbj86IHN0cmluZyB9O1xuXG4vKipcbiAqIEJ1aWxkIGFuIEFSTiB3aXRoIHNlcnZpY2UsIHBhcnRpdGlvbiwgcmVnaW9uLCBhY2NvdW50SWQsIGFuZCByZXNvdXJjZXMgc3RyaW5nc1xuICovXG5leHBvcnQgY29uc3QgYnVpbGQgPSAoYXJuT2JqZWN0OiBidWlsZE9wdGlvbnMpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IHBhcnRpdGlvbiA9IFwiYXdzXCIsIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZSB9ID0gYXJuT2JqZWN0O1xuICBpZiAoW3NlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudElkLCByZXNvdXJjZV0uc29tZSgoc2VnbWVudCkgPT4gdHlwZW9mIHNlZ21lbnQgIT09IFwic3RyaW5nXCIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgQVJOIG9iamVjdCBpcyBpbnZhbGlkXCIpO1xuICB9XG4gIHJldHVybiBgYXJuOiR7cGFydGl0aW9ufToke3NlcnZpY2V9OiR7cmVnaW9ufToke2FjY291bnRJZH06JHtyZXNvdXJjZX1gO1xufTtcbiJdfQ==","import { __read } from \"tslib\";\nvar DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nvar IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nvar DOTS_PATTERN = /\\.\\./;\nexport var DOT_PATTERN = /\\./;\nexport var S3_HOSTNAME_PATTERN = /^(.+\\.)?s3[.-]([a-z0-9-]+)\\./;\nvar S3_US_EAST_1_ALTNAME_PATTERN = /^s3(-external-1)?\\.amazonaws\\.com$/;\nvar AWS_PARTITION_SUFFIX = \"amazonaws.com\";\nexport var isBucketNameOptions = function (options) { return typeof options.bucketName === \"string\"; };\n/**\n * Get pseudo region from supplied region. For example, if supplied with `fips-us-west-2`, it returns `us-west-2`.\n * @internal\n */\nexport var getPseudoRegion = function (region) { return (isFipsRegion(region) ? region.replace(/fips-|-fips/, \"\") : region); };\n/**\n * Determines whether a given string is DNS compliant per the rules outlined by\n * S3. Length, capitaization, and leading dot restrictions are enforced by the\n * DOMAIN_PATTERN regular expression.\n * @internal\n *\n * @see https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html\n */\nexport var isDnsCompatibleBucketName = function (bucketName) {\n return DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\n};\nvar getRegionalSuffix = function (hostname) {\n var parts = hostname.match(S3_HOSTNAME_PATTERN);\n return [parts[2], hostname.replace(new RegExp(\"^\" + parts[0]), \"\")];\n};\nexport var getSuffix = function (hostname) {\n return S3_US_EAST_1_ALTNAME_PATTERN.test(hostname) ? [\"us-east-1\", AWS_PARTITION_SUFFIX] : getRegionalSuffix(hostname);\n};\n/**\n * Infer region and hostname suffix from a complete hostname\n * @internal\n * @param hostname - Hostname\n * @returns [Region, Hostname suffix]\n */\nexport var getSuffixForArnEndpoint = function (hostname) {\n return S3_US_EAST_1_ALTNAME_PATTERN.test(hostname)\n ? [hostname.replace(\".\" + AWS_PARTITION_SUFFIX, \"\"), AWS_PARTITION_SUFFIX]\n : getRegionalSuffix(hostname);\n};\nexport var validateArnEndpointOptions = function (options) {\n if (options.pathStyleEndpoint) {\n throw new Error(\"Path-style S3 endpoint is not supported when bucket is an ARN\");\n }\n if (options.accelerateEndpoint) {\n throw new Error(\"Accelerate endpoint is not supported when bucket is an ARN\");\n }\n if (!options.tlsCompatible) {\n throw new Error(\"HTTPS is required when bucket is an ARN\");\n }\n};\nexport var validateService = function (service) {\n if (service !== \"s3\" && service !== \"s3-outposts\") {\n throw new Error(\"Expect 's3' or 's3-outposts' in ARN service component\");\n }\n};\nexport var validateS3Service = function (service) {\n if (service !== \"s3\") {\n throw new Error(\"Expect 's3' in Accesspoint ARN service component\");\n }\n};\nexport var validateOutpostService = function (service) {\n if (service !== \"s3-outposts\") {\n throw new Error(\"Expect 's3-posts' in Outpost ARN service component\");\n }\n};\n/**\n * Validate partition inferred from ARN is the same to `options.clientPartition`.\n * @internal\n */\nexport var validatePartition = function (partition, options) {\n if (partition !== options.clientPartition) {\n throw new Error(\"Partition in ARN is incompatible, got \\\"\" + partition + \"\\\" but expected \\\"\" + options.clientPartition + \"\\\"\");\n }\n};\n/**\n * validate region value inferred from ARN. If `options.useArnRegion` is set, it validates the region is not a FIPS\n * region. If `options.useArnRegion` is unset, it validates the region is equal to `options.clientRegion` or\n * `options.clientSigningRegion`.\n * @internal\n */\nexport var validateRegion = function (region, options) {\n if (region === \"\") {\n throw new Error(\"ARN region is empty\");\n }\n if (!options.useArnRegion &&\n !isEqualRegions(region, options.clientRegion) &&\n !isEqualRegions(region, options.clientSigningRegion)) {\n throw new Error(\"Region in ARN is incompatible, got \" + region + \" but expected \" + options.clientRegion);\n }\n if (options.useArnRegion && isFipsRegion(region)) {\n throw new Error(\"Endpoint does not support FIPS region\");\n }\n};\nvar isFipsRegion = function (region) { return region.startsWith(\"fips-\") || region.endsWith(\"-fips\"); };\nvar isEqualRegions = function (regionA, regionB) {\n return regionA === regionB || getPseudoRegion(regionA) === regionB || regionA === getPseudoRegion(regionB);\n};\n/**\n * Validate an account ID\n * @internal\n */\nexport var validateAccountId = function (accountId) {\n if (!/[0-9]{12}/.exec(accountId)) {\n throw new Error(\"Access point ARN accountID does not match regex '[0-9]{12}'\");\n }\n};\n/**\n * Validate a host label according to https://tools.ietf.org/html/rfc3986#section-3.2.2\n * @internal\n */\nexport var validateDNSHostLabel = function (label, options) {\n if (options === void 0) { options = { tlsCompatible: true }; }\n // reference: https://tools.ietf.org/html/rfc3986#section-3.2.2\n if (label.length >= 64 ||\n !/^[a-z0-9][a-z0-9.-]+[a-z0-9]$/.test(label) ||\n /(\\d+\\.){3}\\d+/.test(label) ||\n /[.-]{2}/.test(label) ||\n ((options === null || options === void 0 ? void 0 : options.tlsCompatible) && DOT_PATTERN.test(label))) {\n throw new Error(\"Invalid DNS label \" + label);\n }\n};\n/**\n * Validate and parse an Access Point ARN or Outposts ARN\n * @internal\n *\n * @param resource - The resource section of an ARN\n * @returns Access Point Name and optional Outpost ID.\n */\nexport var getArnResources = function (resource) {\n var delimiter = resource.includes(\":\") ? \":\" : \"/\";\n var _a = __read(resource.split(delimiter)), resourceType = _a[0], rest = _a.slice(1);\n if (resourceType === \"accesspoint\") {\n // Parse accesspoint ARN\n if (rest.length !== 1 || rest[0] === \"\") {\n throw new Error(\"Access Point ARN should have one resource accesspoint\" + delimiter + \"{accesspointname}\");\n }\n return { accesspointName: rest[0] };\n }\n else if (resourceType === \"outpost\") {\n // Parse outpost ARN\n if (!rest[0] || rest[1] !== \"accesspoint\" || !rest[2] || rest.length !== 3) {\n throw new Error(\"Outpost ARN should have resource outpost\" + delimiter + \"{outpostId}\" + delimiter + \"accesspoint\" + delimiter + \"{accesspointName}\");\n }\n var _b = __read(rest, 3), outpostId = _b[0], _ = _b[1], accesspointName = _b[2];\n return { outpostId: outpostId, accesspointName: accesspointName };\n }\n else {\n throw new Error(\"ARN resource should begin with 'accesspoint\" + delimiter + \"' or 'outpost\" + delimiter + \"'\");\n }\n};\n/**\n * Throw if dual stack configuration is set to true.\n * @internal\n */\nexport var validateNoDualstack = function (dualstackEndpoint) {\n if (dualstackEndpoint)\n throw new Error(\"Dualstack endpoint is not supported with Outpost\");\n};\n/**\n * Validate region is not appended or prepended with a `fips-`\n * @internal\n */\nexport var validateNoFIPS = function (region) {\n if (isFipsRegion(region !== null && region !== void 0 ? region : \"\"))\n throw new Error(\"FIPS region is not supported with Outpost, got \" + region);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWVVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWNrZXRIb3N0bmFtZVV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxJQUFNLGNBQWMsR0FBRyxzQ0FBc0MsQ0FBQztBQUM5RCxJQUFNLGtCQUFrQixHQUFHLGVBQWUsQ0FBQztBQUMzQyxJQUFNLFlBQVksR0FBRyxNQUFNLENBQUM7QUFDNUIsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUNoQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyw4QkFBOEIsQ0FBQztBQUNsRSxJQUFNLDRCQUE0QixHQUFHLG9DQUFvQyxDQUFDO0FBQzFFLElBQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDO0FBd0I3QyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxVQUNqQyxPQUFpRCxJQUNiLE9BQUEsT0FBTyxPQUFPLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBdEMsQ0FBc0MsQ0FBQztBQUU3RTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsVUFBQyxNQUFjLElBQUssT0FBQSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFuRSxDQUFtRSxDQUFDO0FBRXZIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRyxVQUFDLFVBQWtCO0lBQzFELE9BQUEsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0FBQXpHLENBQXlHLENBQUM7QUFFNUcsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLFFB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QzFFLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkNBQTJDLFNBQVMsbUJBQWMsU0FBUyxtQkFBYyxTQUFTLHNCQUFtQixDQUN0SCxDQUFDO1NBQ0g7UUFDSyxJQUFBLEtBQUEsT0FBa0MsSUFBSSxJQUFBLEVBQXJDLFNBQVMsUUFBQSxFQUFFLENBQUMsUUFBQSxFQUFFLGVBQWUsUUFBUSxDQUFDO1FBQzdDLE9BQU8sRUFBRSxTQUFTLFdBQUEsRUFBRSxlQUFlLGlCQUFBLEVBQUUsQ0FBQztLQUN2QztTQUFNO1FBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBOEMsU0FBUyxxQkFBZ0IsU0FBUyxNQUFHLENBQUMsQ0FBQztLQUN0RztBQUNILENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLFVBQUMsaUJBQTBCO0lBQzVELElBQUksaUJBQWlCO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0FBQzdGLENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxVQUFDLE1BQWM7SUFDM0MsSUFBSSxZQUFZLENBQUMsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksRUFBRSxDQUFDO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBa0QsTUFBUSxDQUFDLENBQUM7QUFDOUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVJOIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG5jb25zdCBET01BSU5fUEFUVEVSTiA9IC9eW2EtejAtOV1bYS16MC05XFwuXFwtXXsxLDYxfVthLXowLTldJC87XG5jb25zdCBJUF9BRERSRVNTX1BBVFRFUk4gPSAvKFxcZCtcXC4pezN9XFxkKy87XG5jb25zdCBET1RTX1BBVFRFUk4gPSAvXFwuXFwuLztcbmV4cG9ydCBjb25zdCBET1RfUEFUVEVSTiA9IC9cXC4vO1xuZXhwb3J0IGNvbnN0IFMzX0hPU1ROQU1FX1BBVFRFUk4gPSAvXiguK1xcLik/czNbLi1dKFthLXowLTktXSspXFwuLztcbmNvbnN0IFMzX1VTX0VBU1RfMV9BTFROQU1FX1BBVFRFUk4gPSAvXnMzKC1leHRlcm5hbC0xKT9cXC5hbWF6b25hd3NcXC5jb20kLztcbmNvbnN0IEFXU19QQVJUSVRJT05fU1VGRklYID0gXCJhbWF6b25hd3MuY29tXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZXNzUG9pbnRBcm4gZXh0ZW5kcyBBUk4ge1xuICBhY2Nlc3NQb2ludE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRIb3N0bmFtZVBhcmFtcyB7XG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG4gIGJhc2VIb3N0bmFtZTogc3RyaW5nO1xuICBidWNrZXROYW1lOiBzdHJpbmc7XG4gIGNsaWVudFJlZ2lvbjogc3RyaW5nO1xuICBhY2NlbGVyYXRlRW5kcG9pbnQ/OiBib29sZWFuO1xuICBkdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG4gIHBhdGhTdHlsZUVuZHBvaW50PzogYm9vbGVhbjtcbiAgdGxzQ29tcGF0aWJsZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJuSG9zdG5hbWVQYXJhbXMgZXh0ZW5kcyBPbWl0PEJ1Y2tldEhvc3RuYW1lUGFyYW1zLCBcImJ1Y2tldE5hbWVcIj4ge1xuICBidWNrZXROYW1lOiBBUk47XG4gIGNsaWVudFNpZ25pbmdSZWdpb24/OiBzdHJpbmc7XG4gIGNsaWVudFBhcnRpdGlvbj86IHN0cmluZztcbiAgdXNlQXJuUmVnaW9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGlzQnVja2V0TmFtZU9wdGlvbnMgPSAoXG4gIG9wdGlvbnM6IEJ1Y2tldEhvc3RuYW1lUGFyYW1zIHwgQXJuSG9zdG5hbWVQYXJhbXNcbik6IG9wdGlvbnMgaXMgQnVja2V0SG9zdG5hbWVQYXJhbXMgPT4gdHlwZW9mIG9wdGlvbnMuYnVja2V0TmFtZSA9PT0gXCJzdHJpbmdcIjtcblxuLyoqXG4gKiBHZXQgcHNldWRvIHJlZ2lvbiBmcm9tIHN1cHBsaWVkIHJlZ2lvbi4gRm9yIGV4YW1wbGUsIGlmIHN1cHBsaWVkIHdpdGggYGZpcHMtdXMtd2VzdC0yYCwgaXQgcmV0dXJucyBgdXMtd2VzdC0yYC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgZ2V0UHNldWRvUmVnaW9uID0gKHJlZ2lvbjogc3RyaW5nKSA9PiAoaXNGaXBzUmVnaW9uKHJlZ2lvbikgPyByZWdpb24ucmVwbGFjZSgvZmlwcy18LWZpcHMvLCBcIlwiKSA6IHJlZ2lvbik7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZ2l2ZW4gc3RyaW5nIGlzIEROUyBjb21wbGlhbnQgcGVyIHRoZSBydWxlcyBvdXRsaW5lZCBieVxuICogUzMuIExlbmd0aCwgY2FwaXRhaXphdGlvbiwgYW5kIGxlYWRpbmcgZG90IHJlc3RyaWN0aW9ucyBhcmUgZW5mb3JjZWQgYnkgdGhlXG4gKiBET01BSU5fUEFUVEVSTiByZWd1bGFyIGV4cHJlc3Npb24uXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25TMy9sYXRlc3QvZGV2L0J1Y2tldFJlc3RyaWN0aW9ucy5odG1sXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lID0gKGJ1Y2tldE5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgRE9NQUlOX1BBVFRFUk4udGVzdChidWNrZXROYW1lKSAmJiAhSVBfQUREUkVTU19QQVRURVJOLnRlc3QoYnVja2V0TmFtZSkgJiYgIURPVFNfUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpO1xuXG5jb25zdCBnZXRSZWdpb25hbFN1ZmZpeCA9IChob3N0bmFtZTogc3RyaW5nKTogW3N0cmluZywgc3RyaW5nXSA9PiB7XG4gIGNvbnN0IHBhcnRzID0gaG9zdG5hbWUubWF0Y2goUzNfSE9TVE5BTUVfUEFUVEVSTikhO1xuICByZXR1cm4gW3BhcnRzWzJdLCBob3N0bmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoYF4ke3BhcnRzWzBdfWApLCBcIlwiKV07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3VmZml4ID0gKGhvc3RuYW1lOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmddID0+XG4gIFMzX1VTX0VBU1RfMV9BTFROQU1FX1BBVFRFUk4udGVzdChob3N0bmFtZSkgPyBbXCJ1cy1lYXN0LTFcIiwgQVdTX1BBUlRJVElPTl9TVUZGSVhdIDogZ2V0UmVnaW9uYWxTdWZmaXgoaG9zdG5hbWUpO1xuXG4vKipcbiAqIEluZmVyIHJlZ2lvbiBhbmQgaG9zdG5hbWUgc3VmZml4IGZyb20gYSBjb21wbGV0ZSBob3N0bmFtZVxuICogQGludGVybmFsXG4gKiBAcGFyYW0gaG9zdG5hbWUgLSBIb3N0bmFtZVxuICogQHJldHVybnMgW1JlZ2lvbiwgSG9zdG5hbWUgc3VmZml4XVxuICovXG5leHBvcnQgY29uc3QgZ2V0U3VmZml4Rm9yQXJuRW5kcG9pbnQgPSAoaG9zdG5hbWU6IHN0cmluZyk6IFtzdHJpbmcsIHN0cmluZ10gPT5cbiAgUzNfVVNfRUFTVF8xX0FMVE5BTUVfUEFUVEVSTi50ZXN0KGhvc3RuYW1lKVxuICAgID8gW2hvc3RuYW1lLnJlcGxhY2UoYC4ke0FXU19QQVJUSVRJT05fU1VGRklYfWAsIFwiXCIpLCBBV1NfUEFSVElUSU9OX1NVRkZJWF1cbiAgICA6IGdldFJlZ2lvbmFsU3VmZml4KGhvc3RuYW1lKTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlQXJuRW5kcG9pbnRPcHRpb25zID0gKG9wdGlvbnM6IHtcbiAgYWNjZWxlcmF0ZUVuZHBvaW50PzogYm9vbGVhbjtcbiAgdGxzQ29tcGF0aWJsZT86IGJvb2xlYW47XG4gIHBhdGhTdHlsZUVuZHBvaW50PzogYm9vbGVhbjtcbn0pID0+IHtcbiAgaWYgKG9wdGlvbnMucGF0aFN0eWxlRW5kcG9pbnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoLXN0eWxlIFMzIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBidWNrZXQgaXMgYW4gQVJOXCIpO1xuICB9XG4gIGlmIChvcHRpb25zLmFjY2VsZXJhdGVFbmRwb2ludCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkFjY2VsZXJhdGUgZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gIH1cbiAgaWYgKCFvcHRpb25zLnRsc0NvbXBhdGlibGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJIVFRQUyBpcyByZXF1aXJlZCB3aGVuIGJ1Y2tldCBpcyBhbiBBUk5cIik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVNlcnZpY2UgPSAoc2VydmljZTogc3RyaW5nKSA9PiB7XG4gIGlmIChzZXJ2aWNlICE9PSBcInMzXCIgJiYgc2VydmljZSAhPT0gXCJzMy1vdXRwb3N0c1wiKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRXhwZWN0ICdzMycgb3IgJ3MzLW91dHBvc3RzJyBpbiBBUk4gc2VydmljZSBjb21wb25lbnRcIik7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVMzU2VydmljZSA9IChzZXJ2aWNlOiBzdHJpbmcpID0+IHtcbiAgaWYgKHNlcnZpY2UgIT09IFwiczNcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdCAnczMnIGluIEFjY2Vzc3BvaW50IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlT3V0cG9zdFNlcnZpY2UgPSAoc2VydmljZTogc3RyaW5nKSA9PiB7XG4gIGlmIChzZXJ2aWNlICE9PSBcInMzLW91dHBvc3RzXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFeHBlY3QgJ3MzLXBvc3RzJyBpbiBPdXRwb3N0IEFSTiBzZXJ2aWNlIGNvbXBvbmVudFwiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBwYXJ0aXRpb24gaW5mZXJyZWQgZnJvbSBBUk4gaXMgdGhlIHNhbWUgdG8gYG9wdGlvbnMuY2xpZW50UGFydGl0aW9uYC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVQYXJ0aXRpb24gPSAocGFydGl0aW9uOiBzdHJpbmcsIG9wdGlvbnM6IHsgY2xpZW50UGFydGl0aW9uOiBzdHJpbmcgfSkgPT4ge1xuICBpZiAocGFydGl0aW9uICE9PSBvcHRpb25zLmNsaWVudFBhcnRpdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgUGFydGl0aW9uIGluIEFSTiBpcyBpbmNvbXBhdGlibGUsIGdvdCBcIiR7cGFydGl0aW9ufVwiIGJ1dCBleHBlY3RlZCBcIiR7b3B0aW9ucy5jbGllbnRQYXJ0aXRpb259XCJgKTtcbiAgfVxufTtcblxuLyoqXG4gKiB2YWxpZGF0ZSByZWdpb24gdmFsdWUgaW5mZXJyZWQgZnJvbSBBUk4uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgc2V0LCBpdCB2YWxpZGF0ZXMgdGhlIHJlZ2lvbiBpcyBub3QgYSBGSVBTXG4gKiByZWdpb24uIElmIGBvcHRpb25zLnVzZUFyblJlZ2lvbmAgaXMgdW5zZXQsIGl0IHZhbGlkYXRlcyB0aGUgcmVnaW9uIGlzIGVxdWFsIHRvIGBvcHRpb25zLmNsaWVudFJlZ2lvbmAgb3JcbiAqIGBvcHRpb25zLmNsaWVudFNpZ25pbmdSZWdpb25gLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlZ2lvbiA9IChcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICB1c2VBcm5SZWdpb24/OiBib29sZWFuO1xuICAgIGNsaWVudFJlZ2lvbjogc3RyaW5nO1xuICAgIGNsaWVudFNpZ25pbmdSZWdpb246IHN0cmluZztcbiAgfVxuKSA9PiB7XG4gIGlmIChyZWdpb24gPT09IFwiXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBUk4gcmVnaW9uIGlzIGVtcHR5XCIpO1xuICB9XG4gIGlmIChcbiAgICAhb3B0aW9ucy51c2VBcm5SZWdpb24gJiZcbiAgICAhaXNFcXVhbFJlZ2lvbnMocmVnaW9uLCBvcHRpb25zLmNsaWVudFJlZ2lvbikgJiZcbiAgICAhaXNFcXVhbFJlZ2lvbnMocmVnaW9uLCBvcHRpb25zLmNsaWVudFNpZ25pbmdSZWdpb24pXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVnaW9uIGluIEFSTiBpcyBpbmNvbXBhdGlibGUsIGdvdCAke3JlZ2lvbn0gYnV0IGV4cGVjdGVkICR7b3B0aW9ucy5jbGllbnRSZWdpb259YCk7XG4gIH1cbiAgaWYgKG9wdGlvbnMudXNlQXJuUmVnaW9uICYmIGlzRmlwc1JlZ2lvbihyZWdpb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBGSVBTIHJlZ2lvblwiKTtcbiAgfVxufTtcblxuY29uc3QgaXNGaXBzUmVnaW9uID0gKHJlZ2lvbjogc3RyaW5nKSA9PiByZWdpb24uc3RhcnRzV2l0aChcImZpcHMtXCIpIHx8IHJlZ2lvbi5lbmRzV2l0aChcIi1maXBzXCIpO1xuXG5jb25zdCBpc0VxdWFsUmVnaW9ucyA9IChyZWdpb25BOiBzdHJpbmcsIHJlZ2lvbkI6IHN0cmluZykgPT5cbiAgcmVnaW9uQSA9PT0gcmVnaW9uQiB8fCBnZXRQc2V1ZG9SZWdpb24ocmVnaW9uQSkgPT09IHJlZ2lvbkIgfHwgcmVnaW9uQSA9PT0gZ2V0UHNldWRvUmVnaW9uKHJlZ2lvbkIpO1xuXG4vKipcbiAqIFZhbGlkYXRlIGFuIGFjY291bnQgSURcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVBY2NvdW50SWQgPSAoYWNjb3VudElkOiBzdHJpbmcpID0+IHtcbiAgaWYgKCEvWzAtOV17MTJ9Ly5leGVjKGFjY291bnRJZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBY2Nlc3MgcG9pbnQgQVJOIGFjY291bnRJRCBkb2VzIG5vdCBtYXRjaCByZWdleCAnWzAtOV17MTJ9J1wiKTtcbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGhvc3QgbGFiZWwgYWNjb3JkaW5nIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4yLjJcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGVETlNIb3N0TGFiZWwgPSAobGFiZWw6IHN0cmluZywgb3B0aW9uczogeyB0bHNDb21wYXRpYmxlPzogYm9vbGVhbiB9ID0geyB0bHNDb21wYXRpYmxlOiB0cnVlIH0pID0+IHtcbiAgLy8gcmVmZXJlbmNlOiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNzZWN0aW9uLTMuMi4yXG4gIGlmIChcbiAgICBsYWJlbC5sZW5ndGggPj0gNjQgfHxcbiAgICAhL15bYS16MC05XVthLXowLTkuLV0rW2EtejAtOV0kLy50ZXN0KGxhYmVsKSB8fFxuICAgIC8oXFxkK1xcLil7M31cXGQrLy50ZXN0KGxhYmVsKSB8fFxuICAgIC9bLi1dezJ9Ly50ZXN0KGxhYmVsKSB8fFxuICAgIChvcHRpb25zPy50bHNDb21wYXRpYmxlICYmIERPVF9QQVRURVJOLnRlc3QobGFiZWwpKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRE5TIGxhYmVsICR7bGFiZWx9YCk7XG4gIH1cbn07XG5cbi8qKlxuICogVmFsaWRhdGUgYW5kIHBhcnNlIGFuIEFjY2VzcyBQb2ludCBBUk4gb3IgT3V0cG9zdHMgQVJOXG4gKiBAaW50ZXJuYWxcbiAqXG4gKiBAcGFyYW0gcmVzb3VyY2UgLSBUaGUgcmVzb3VyY2Ugc2VjdGlvbiBvZiBhbiBBUk5cbiAqIEByZXR1cm5zIEFjY2VzcyBQb2ludCBOYW1lIGFuZCBvcHRpb25hbCBPdXRwb3N0IElELlxuICovXG5leHBvcnQgY29uc3QgZ2V0QXJuUmVzb3VyY2VzID0gKFxuICByZXNvdXJjZTogc3RyaW5nXG4pOiB7XG4gIGFjY2Vzc3BvaW50TmFtZTogc3RyaW5nO1xuICBvdXRwb3N0SWQ/OiBzdHJpbmc7XG59ID0+IHtcbiAgY29uc3QgZGVsaW1pdGVyID0gcmVzb3VyY2UuaW5jbHVkZXMoXCI6XCIpID8gXCI6XCIgOiBcIi9cIjtcbiAgY29uc3QgW3Jlc291cmNlVHlwZSwgLi4ucmVzdF0gPSByZXNvdXJjZS5zcGxpdChkZWxpbWl0ZXIpO1xuICBpZiAocmVzb3VyY2VUeXBlID09PSBcImFjY2Vzc3BvaW50XCIpIHtcbiAgICAvLyBQYXJzZSBhY2Nlc3Nwb2ludCBBUk5cbiAgICBpZiAocmVzdC5sZW5ndGggIT09IDEgfHwgcmVzdFswXSA9PT0gXCJcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBY2Nlc3MgUG9pbnQgQVJOIHNob3VsZCBoYXZlIG9uZSByZXNvdXJjZSBhY2Nlc3Nwb2ludCR7ZGVsaW1pdGVyfXthY2Nlc3Nwb2ludG5hbWV9YCk7XG4gICAgfVxuICAgIHJldHVybiB7IGFjY2Vzc3BvaW50TmFtZTogcmVzdFswXSB9O1xuICB9IGVsc2UgaWYgKHJlc291cmNlVHlwZSA9PT0gXCJvdXRwb3N0XCIpIHtcbiAgICAvLyBQYXJzZSBvdXRwb3N0IEFSTlxuICAgIGlmICghcmVzdFswXSB8fCByZXN0WzFdICE9PSBcImFjY2Vzc3BvaW50XCIgfHwgIXJlc3RbMl0gfHwgcmVzdC5sZW5ndGggIT09IDMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE91dHBvc3QgQVJOIHNob3VsZCBoYXZlIHJlc291cmNlIG91dHBvc3Qke2RlbGltaXRlcn17b3V0cG9zdElkfSR7ZGVsaW1pdGVyfWFjY2Vzc3BvaW50JHtkZWxpbWl0ZXJ9e2FjY2Vzc3BvaW50TmFtZX1gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBbb3V0cG9zdElkLCBfLCBhY2Nlc3Nwb2ludE5hbWVdID0gcmVzdDtcbiAgICByZXR1cm4geyBvdXRwb3N0SWQsIGFjY2Vzc3BvaW50TmFtZSB9O1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgQVJOIHJlc291cmNlIHNob3VsZCBiZWdpbiB3aXRoICdhY2Nlc3Nwb2ludCR7ZGVsaW1pdGVyfScgb3IgJ291dHBvc3Qke2RlbGltaXRlcn0nYCk7XG4gIH1cbn07XG5cbi8qKlxuICogVGhyb3cgaWYgZHVhbCBzdGFjayBjb25maWd1cmF0aW9uIGlzIHNldCB0byB0cnVlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU5vRHVhbHN0YWNrID0gKGR1YWxzdGFja0VuZHBvaW50OiBib29sZWFuKSA9PiB7XG4gIGlmIChkdWFsc3RhY2tFbmRwb2ludCkgdGhyb3cgbmV3IEVycm9yKFwiRHVhbHN0YWNrIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBPdXRwb3N0XCIpO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSByZWdpb24gaXMgbm90IGFwcGVuZGVkIG9yIHByZXBlbmRlZCB3aXRoIGEgYGZpcHMtYFxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZU5vRklQUyA9IChyZWdpb246IHN0cmluZykgPT4ge1xuICBpZiAoaXNGaXBzUmVnaW9uKHJlZ2lvbiA/PyBcIlwiKSkgdGhyb3cgbmV3IEVycm9yKGBGSVBTIHJlZ2lvbiBpcyBub3Qgc3VwcG9ydGVkIHdpdGggT3V0cG9zdCwgZ290ICR7cmVnaW9ufWApO1xufTtcbiJdfQ==","import { __assign, __read } from \"tslib\";\nimport { DOT_PATTERN, getArnResources, getSuffix, getSuffixForArnEndpoint, isBucketNameOptions, isDnsCompatibleBucketName, validateAccountId, validateArnEndpointOptions, validateDNSHostLabel, validateNoDualstack, validateNoFIPS, validateOutpostService, validatePartition, validateRegion, validateS3Service, validateService, } from \"./bucketHostnameUtils\";\nexport var bucketHostname = function (options) {\n var isCustomEndpoint = options.isCustomEndpoint, baseHostname = options.baseHostname, dualstackEndpoint = options.dualstackEndpoint, accelerateEndpoint = options.accelerateEndpoint;\n if (isCustomEndpoint) {\n if (dualstackEndpoint)\n throw new Error(\"Dualstack endpoint is not supported with custom endpoint\");\n if (accelerateEndpoint)\n throw new Error(\"Accelerate endpoint is not supported with custom endpoint\");\n }\n return isBucketNameOptions(options)\n ? // Construct endpoint when bucketName is a string referring to a bucket name\n getEndpointFromBucketName(__assign(__assign({}, options), { isCustomEndpoint: isCustomEndpoint }))\n : // Construct endpoint when bucketName is an ARN referring to an S3 resource like Access Point\n getEndpointFromArn(__assign(__assign({}, options), { isCustomEndpoint: isCustomEndpoint }));\n};\nvar getEndpointFromArn = function (options) {\n var isCustomEndpoint = options.isCustomEndpoint, baseHostname = options.baseHostname;\n var _a = __read(isCustomEndpoint\n ? [options.clientRegion, baseHostname]\n : // Infer client region and hostname suffix from hostname from endpoints.json, like `s3.us-west-2.amazonaws.com`\n getSuffixForArnEndpoint(baseHostname), 2), clientRegion = _a[0], hostnameSuffix = _a[1];\n var pathStyleEndpoint = options.pathStyleEndpoint, _b = options.dualstackEndpoint, dualstackEndpoint = _b === void 0 ? false : _b, _c = options.accelerateEndpoint, accelerateEndpoint = _c === void 0 ? false : _c, _d = options.tlsCompatible, tlsCompatible = _d === void 0 ? true : _d, useArnRegion = options.useArnRegion, bucketName = options.bucketName, _e = options.clientPartition, clientPartition = _e === void 0 ? \"aws\" : _e, _f = options.clientSigningRegion, clientSigningRegion = _f === void 0 ? clientRegion : _f;\n validateArnEndpointOptions({ pathStyleEndpoint: pathStyleEndpoint, accelerateEndpoint: accelerateEndpoint, tlsCompatible: tlsCompatible });\n // Validate and parse the ARN supplied as a bucket name\n var service = bucketName.service, partition = bucketName.partition, accountId = bucketName.accountId, region = bucketName.region, resource = bucketName.resource;\n validateService(service);\n validatePartition(partition, { clientPartition: clientPartition });\n validateAccountId(accountId);\n validateRegion(region, { useArnRegion: useArnRegion, clientRegion: clientRegion, clientSigningRegion: clientSigningRegion });\n var _g = getArnResources(resource), accesspointName = _g.accesspointName, outpostId = _g.outpostId;\n validateDNSHostLabel(accesspointName + \"-\" + accountId, { tlsCompatible: tlsCompatible });\n var endpointRegion = useArnRegion ? region : clientRegion;\n var signingRegion = useArnRegion ? region : clientSigningRegion;\n if (outpostId) {\n // if this is an Outpost ARN\n validateOutpostService(service);\n validateDNSHostLabel(outpostId, { tlsCompatible: tlsCompatible });\n validateNoDualstack(dualstackEndpoint);\n validateNoFIPS(endpointRegion);\n var hostnamePrefix_1 = accesspointName + \"-\" + accountId + \".\" + outpostId;\n return {\n bucketEndpoint: true,\n hostname: \"\" + hostnamePrefix_1 + (isCustomEndpoint ? \"\" : \".s3-outposts.\" + endpointRegion) + \".\" + hostnameSuffix,\n signingRegion: signingRegion,\n signingService: \"s3-outposts\",\n };\n }\n // construct endpoint from Accesspoint ARN\n validateS3Service(service);\n var hostnamePrefix = accesspointName + \"-\" + accountId;\n return {\n bucketEndpoint: true,\n hostname: \"\" + hostnamePrefix + (isCustomEndpoint ? \"\" : \".s3-accesspoint\" + (dualstackEndpoint ? \".dualstack\" : \"\") + \".\" + endpointRegion) + \".\" + hostnameSuffix,\n signingRegion: signingRegion,\n };\n};\nvar getEndpointFromBucketName = function (_a) {\n var _b = _a.accelerateEndpoint, accelerateEndpoint = _b === void 0 ? false : _b, region = _a.clientRegion, baseHostname = _a.baseHostname, bucketName = _a.bucketName, _c = _a.dualstackEndpoint, dualstackEndpoint = _c === void 0 ? false : _c, _d = _a.pathStyleEndpoint, pathStyleEndpoint = _d === void 0 ? false : _d, _e = _a.tlsCompatible, tlsCompatible = _e === void 0 ? true : _e, _f = _a.isCustomEndpoint, isCustomEndpoint = _f === void 0 ? false : _f;\n var _g = __read(isCustomEndpoint ? [region, baseHostname] : getSuffix(baseHostname), 2), clientRegion = _g[0], hostnameSuffix = _g[1];\n if (pathStyleEndpoint || !isDnsCompatibleBucketName(bucketName) || (tlsCompatible && DOT_PATTERN.test(bucketName))) {\n return {\n bucketEndpoint: false,\n hostname: dualstackEndpoint ? \"s3.dualstack.\" + clientRegion + \".\" + hostnameSuffix : baseHostname,\n };\n }\n if (accelerateEndpoint) {\n baseHostname = \"s3-accelerate\" + (dualstackEndpoint ? \".dualstack\" : \"\") + \".\" + hostnameSuffix;\n }\n else if (dualstackEndpoint) {\n baseHostname = \"s3.dualstack.\" + clientRegion + \".\" + hostnameSuffix;\n }\n return {\n bucketEndpoint: true,\n hostname: bucketName + \".\" + baseHostname,\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0SG9zdG5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVja2V0SG9zdG5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFHTCxXQUFXLEVBQ1gsZUFBZSxFQUNmLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixlQUFlLEdBQ2hCLE1BQU0sdUJBQXVCLENBQUM7QUFTL0IsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLFVBQUMsT0FBaUQ7SUFDdEUsSUFBQSxnQkFBZ0IsR0FBMEQsT0FBTyxpQkFBakUsRUFBRSxZQUFZLEdBQTRDLE9BQU8sYUFBbkQsRUFBRSxpQkFBaUIsR0FBeUIsT0FBTyxrQkFBaEMsRUFBRSxrQkFBa0IsR0FBSyxPQUFPLG1CQUFaLENBQWE7SUFFMUYsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQixJQUFJLGlCQUFpQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUNuRyxJQUFJLGtCQUFrQjtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztLQUN0RztJQUVELE9BQU8sbUJBQW1CLENBQUMsT0FBTyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyw0RUFBNEU7WUFDNUUseUJBQXlCLHVCQUFNLE9BQU8sS0FBRSxnQkFBZ0Isa0JBQUEsSUFBRztRQUM3RCxDQUFDLENBQUMsNkZBQTZGO1lBQzdGLGtCQUFrQix1QkFBTSxPQUFPLEtBQUUsZ0JBQWdCLGtCQUFBLElBQUcsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRixJQUFNLGtCQUFrQixHQUFHLFVBQUMsT0FBMEQ7SUFDNUUsSUFBQSxn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OUYsQ0FBQztLQUNIO0lBRUQsSUFBSSxrQkFBa0IsRUFBRTtRQUN0QixZQUFZLEdBQUcsbUJBQWdCLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBSSxjQUFnQixDQUFDO0tBQzFGO1NBQU0sSUFBSSxpQkFBaUIsRUFBRTtRQUM1QixZQUFZLEdBQUcsa0JBQWdCLFlBQVksU0FBSSxjQUFnQixDQUFDO0tBQ2pFO0lBRUQsT0FBTztRQUNMLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFFBQVEsRUFBSyxVQUFVLFNBQUksWUFBYztLQUMxQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXJuSG9zdG5hbWVQYXJhbXMsXG4gIEJ1Y2tldEhvc3RuYW1lUGFyYW1zLFxuICBET1RfUEFUVEVSTixcbiAgZ2V0QXJuUmVzb3VyY2VzLFxuICBnZXRTdWZmaXgsXG4gIGdldFN1ZmZpeEZvckFybkVuZHBvaW50LFxuICBpc0J1Y2tldE5hbWVPcHRpb25zLFxuICBpc0Ruc0NvbXBhdGlibGVCdWNrZXROYW1lLFxuICB2YWxpZGF0ZUFjY291bnRJZCxcbiAgdmFsaWRhdGVBcm5FbmRwb2ludE9wdGlvbnMsXG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsLFxuICB2YWxpZGF0ZU5vRHVhbHN0YWNrLFxuICB2YWxpZGF0ZU5vRklQUyxcbiAgdmFsaWRhdGVPdXRwb3N0U2VydmljZSxcbiAgdmFsaWRhdGVQYXJ0aXRpb24sXG4gIHZhbGlkYXRlUmVnaW9uLFxuICB2YWxpZGF0ZVMzU2VydmljZSxcbiAgdmFsaWRhdGVTZXJ2aWNlLFxufSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0SG9zdG5hbWUge1xuICBob3N0bmFtZTogc3RyaW5nO1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgc2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbiAgc2lnbmluZ1NlcnZpY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBidWNrZXRIb3N0bmFtZSA9IChvcHRpb25zOiBCdWNrZXRIb3N0bmFtZVBhcmFtcyB8IEFybkhvc3RuYW1lUGFyYW1zKTogQnVja2V0SG9zdG5hbWUgPT4ge1xuICBjb25zdCB7IGlzQ3VzdG9tRW5kcG9pbnQsIGJhc2VIb3N0bmFtZSwgZHVhbHN0YWNrRW5kcG9pbnQsIGFjY2VsZXJhdGVFbmRwb2ludCB9ID0gb3B0aW9ucztcblxuICBpZiAoaXNDdXN0b21FbmRwb2ludCkge1xuICAgIGlmIChkdWFsc3RhY2tFbmRwb2ludCkgdGhyb3cgbmV3IEVycm9yKFwiRHVhbHN0YWNrIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCBjdXN0b20gZW5kcG9pbnRcIik7XG4gICAgaWYgKGFjY2VsZXJhdGVFbmRwb2ludCkgdGhyb3cgbmV3IEVycm9yKFwiQWNjZWxlcmF0ZSBlbmRwb2ludCBpcyBub3Qgc3VwcG9ydGVkIHdpdGggY3VzdG9tIGVuZHBvaW50XCIpO1xuICB9XG5cbiAgcmV0dXJuIGlzQnVja2V0TmFtZU9wdGlvbnMob3B0aW9ucylcbiAgICA/IC8vIENvbnN0cnVjdCBlbmRwb2ludCB3aGVuIGJ1Y2tldE5hbWUgaXMgYSBzdHJpbmcgcmVmZXJyaW5nIHRvIGEgYnVja2V0IG5hbWVcbiAgICAgIGdldEVuZHBvaW50RnJvbUJ1Y2tldE5hbWUoeyAuLi5vcHRpb25zLCBpc0N1c3RvbUVuZHBvaW50IH0pXG4gICAgOiAvLyBDb25zdHJ1Y3QgZW5kcG9pbnQgd2hlbiBidWNrZXROYW1lIGlzIGFuIEFSTiByZWZlcnJpbmcgdG8gYW4gUzMgcmVzb3VyY2UgbGlrZSBBY2Nlc3MgUG9pbnRcbiAgICAgIGdldEVuZHBvaW50RnJvbUFybih7IC4uLm9wdGlvbnMsIGlzQ3VzdG9tRW5kcG9pbnQgfSk7XG59O1xuXG5jb25zdCBnZXRFbmRwb2ludEZyb21Bcm4gPSAob3B0aW9uczogQXJuSG9zdG5hbWVQYXJhbXMgJiB7IGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW4gfSk6IEJ1Y2tldEhvc3RuYW1lID0+IHtcbiAgY29uc3QgeyBpc0N1c3RvbUVuZHBvaW50LCBiYXNlSG9zdG5hbWUgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IFtjbGllbnRSZWdpb24sIGhvc3RuYW1lU3VmZml4XSA9IGlzQ3VzdG9tRW5kcG9pbnRcbiAgICA/IFtvcHRpb25zLmNsaWVudFJlZ2lvbiwgYmFzZUhvc3RuYW1lXVxuICAgIDogLy8gSW5mZXIgY2xpZW50IHJlZ2lvbiBhbmQgaG9zdG5hbWUgc3VmZml4IGZyb20gaG9zdG5hbWUgZnJvbSBlbmRwb2ludHMuanNvbiwgbGlrZSBgczMudXMtd2VzdC0yLmFtYXpvbmF3cy5jb21gXG4gICAgICBnZXRTdWZmaXhGb3JBcm5FbmRwb2ludChiYXNlSG9zdG5hbWUpO1xuXG4gIGNvbnN0IHtcbiAgICBwYXRoU3R5bGVFbmRwb2ludCxcbiAgICBkdWFsc3RhY2tFbmRwb2ludCA9IGZhbHNlLFxuICAgIGFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICAgIHRsc0NvbXBhdGlibGUgPSB0cnVlLFxuICAgIHVzZUFyblJlZ2lvbixcbiAgICBidWNrZXROYW1lLFxuICAgIGNsaWVudFBhcnRpdGlvbiA9IFwiYXdzXCIsXG4gICAgY2xpZW50U2lnbmluZ1JlZ2lvbiA9IGNsaWVudFJlZ2lvbixcbiAgfSA9IG9wdGlvbnM7XG5cbiAgdmFsaWRhdGVBcm5FbmRwb2ludE9wdGlvbnMoeyBwYXRoU3R5bGVFbmRwb2ludCwgYWNjZWxlcmF0ZUVuZHBvaW50LCB0bHNDb21wYXRpYmxlIH0pO1xuXG4gIC8vIFZhbGlkYXRlIGFuZCBwYXJzZSB0aGUgQVJOIHN1cHBsaWVkIGFzIGEgYnVja2V0IG5hbWVcbiAgY29uc3QgeyBzZXJ2aWNlLCBwYXJ0aXRpb24sIGFjY291bnRJZCwgcmVnaW9uLCByZXNvdXJjZSB9ID0gYnVja2V0TmFtZTtcbiAgdmFsaWRhdGVTZXJ2aWNlKHNlcnZpY2UpO1xuICB2YWxpZGF0ZVBhcnRpdGlvbihwYXJ0aXRpb24sIHsgY2xpZW50UGFydGl0aW9uIH0pO1xuICB2YWxpZGF0ZUFjY291bnRJZChhY2NvdW50SWQpO1xuICB2YWxpZGF0ZVJlZ2lvbihyZWdpb24sIHsgdXNlQXJuUmVnaW9uLCBjbGllbnRSZWdpb24sIGNsaWVudFNpZ25pbmdSZWdpb24gfSk7XG4gIGNvbnN0IHsgYWNjZXNzcG9pbnROYW1lLCBvdXRwb3N0SWQgfSA9IGdldEFyblJlc291cmNlcyhyZXNvdXJjZSk7XG4gIHZhbGlkYXRlRE5TSG9zdExhYmVsKGAke2FjY2Vzc3BvaW50TmFtZX0tJHthY2NvdW50SWR9YCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuXG4gIGNvbnN0IGVuZHBvaW50UmVnaW9uID0gdXNlQXJuUmVnaW9uID8gcmVnaW9uIDogY2xpZW50UmVnaW9uO1xuICBjb25zdCBzaWduaW5nUmVnaW9uID0gdXNlQXJuUmVnaW9uID8gcmVnaW9uIDogY2xpZW50U2lnbmluZ1JlZ2lvbjtcbiAgaWYgKG91dHBvc3RJZCkge1xuICAgIC8vIGlmIHRoaXMgaXMgYW4gT3V0cG9zdCBBUk5cbiAgICB2YWxpZGF0ZU91dHBvc3RTZXJ2aWNlKHNlcnZpY2UpO1xuICAgIHZhbGlkYXRlRE5TSG9zdExhYmVsKG91dHBvc3RJZCwgeyB0bHNDb21wYXRpYmxlIH0pO1xuICAgIHZhbGlkYXRlTm9EdWFsc3RhY2soZHVhbHN0YWNrRW5kcG9pbnQpO1xuICAgIHZhbGlkYXRlTm9GSVBTKGVuZHBvaW50UmVnaW9uKTtcbiAgICBjb25zdCBob3N0bmFtZVByZWZpeCA9IGAke2FjY2Vzc3BvaW50TmFtZX0tJHthY2NvdW50SWR9LiR7b3V0cG9zdElkfWA7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgICAgaG9zdG5hbWU6IGAke2hvc3RuYW1lUHJlZml4fSR7aXNDdXN0b21FbmRwb2ludCA/IFwiXCIgOiBgLnMzLW91dHBvc3RzLiR7ZW5kcG9pbnRSZWdpb259YH0uJHtob3N0bmFtZVN1ZmZpeH1gLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlOiBcInMzLW91dHBvc3RzXCIsXG4gICAgfTtcbiAgfVxuICAvLyBjb25zdHJ1Y3QgZW5kcG9pbnQgZnJvbSBBY2Nlc3Nwb2ludCBBUk5cbiAgdmFsaWRhdGVTM1NlcnZpY2Uoc2VydmljZSk7XG4gIGNvbnN0IGhvc3RuYW1lUHJlZml4ID0gYCR7YWNjZXNzcG9pbnROYW1lfS0ke2FjY291bnRJZH1gO1xuICByZXR1cm4ge1xuICAgIGJ1Y2tldEVuZHBvaW50OiB0cnVlLFxuICAgIGhvc3RuYW1lOiBgJHtob3N0bmFtZVByZWZpeH0ke1xuICAgICAgaXNDdXN0b21FbmRwb2ludCA/IFwiXCIgOiBgLnMzLWFjY2Vzc3BvaW50JHtkdWFsc3RhY2tFbmRwb2ludCA/IFwiLmR1YWxzdGFja1wiIDogXCJcIn0uJHtlbmRwb2ludFJlZ2lvbn1gXG4gICAgfS4ke2hvc3RuYW1lU3VmZml4fWAsXG4gICAgc2lnbmluZ1JlZ2lvbixcbiAgfTtcbn07XG5cbmNvbnN0IGdldEVuZHBvaW50RnJvbUJ1Y2tldE5hbWUgPSAoe1xuICBhY2NlbGVyYXRlRW5kcG9pbnQgPSBmYWxzZSxcbiAgY2xpZW50UmVnaW9uOiByZWdpb24sXG4gIGJhc2VIb3N0bmFtZSxcbiAgYnVja2V0TmFtZSxcbiAgZHVhbHN0YWNrRW5kcG9pbnQgPSBmYWxzZSxcbiAgcGF0aFN0eWxlRW5kcG9pbnQgPSBmYWxzZSxcbiAgdGxzQ29tcGF0aWJsZSA9IHRydWUsXG4gIGlzQ3VzdG9tRW5kcG9pbnQgPSBmYWxzZSxcbn06IEJ1Y2tldEhvc3RuYW1lUGFyYW1zICYgeyBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuIH0pOiBCdWNrZXRIb3N0bmFtZSA9PiB7XG4gIGNvbnN0IFtjbGllbnRSZWdpb24sIGhvc3RuYW1lU3VmZml4XSA9IGlzQ3VzdG9tRW5kcG9pbnQgPyBbcmVnaW9uLCBiYXNlSG9zdG5hbWVdIDogZ2V0U3VmZml4KGJhc2VIb3N0bmFtZSk7XG4gIGlmIChwYXRoU3R5bGVFbmRwb2ludCB8fCAhaXNEbnNDb21wYXRpYmxlQnVja2V0TmFtZShidWNrZXROYW1lKSB8fCAodGxzQ29tcGF0aWJsZSAmJiBET1RfUEFUVEVSTi50ZXN0KGJ1Y2tldE5hbWUpKSkge1xuICAgIHJldHVybiB7XG4gICAgICBidWNrZXRFbmRwb2ludDogZmFsc2UsXG4gICAgICBob3N0bmFtZTogZHVhbHN0YWNrRW5kcG9pbnQgPyBgczMuZHVhbHN0YWNrLiR7Y2xpZW50UmVnaW9ufS4ke2hvc3RuYW1lU3VmZml4fWAgOiBiYXNlSG9zdG5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChhY2NlbGVyYXRlRW5kcG9pbnQpIHtcbiAgICBiYXNlSG9zdG5hbWUgPSBgczMtYWNjZWxlcmF0ZSR7ZHVhbHN0YWNrRW5kcG9pbnQgPyBcIi5kdWFsc3RhY2tcIiA6IFwiXCJ9LiR7aG9zdG5hbWVTdWZmaXh9YDtcbiAgfSBlbHNlIGlmIChkdWFsc3RhY2tFbmRwb2ludCkge1xuICAgIGJhc2VIb3N0bmFtZSA9IGBzMy5kdWFsc3RhY2suJHtjbGllbnRSZWdpb259LiR7aG9zdG5hbWVTdWZmaXh9YDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYnVja2V0RW5kcG9pbnQ6IHRydWUsXG4gICAgaG9zdG5hbWU6IGAke2J1Y2tldE5hbWV9LiR7YmFzZUhvc3RuYW1lfWAsXG4gIH07XG59O1xuIl19","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { parse as parseArn, validate as validateArn } from \"@aws-sdk/util-arn-parser\";\nimport { bucketHostname } from \"./bucketHostname\";\nimport { getPseudoRegion } from \"./bucketHostnameUtils\";\nexport var bucketEndpointMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var bucketName, replaceBucketInPath, request, bucketArn, clientRegion, _a, _b, partition, _c, signingRegion, useArnRegion, _d, hostname, bucketEndpoint, modifiedSigningRegion, signingService, clientRegion, _e, _f, hostname, bucketEndpoint;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n bucketName = args.input.Bucket;\n replaceBucketInPath = options.bucketEndpoint;\n request = args.request;\n if (!HttpRequest.isInstance(request)) return [3 /*break*/, 8];\n if (!options.bucketEndpoint) return [3 /*break*/, 1];\n request.hostname = bucketName;\n return [3 /*break*/, 7];\n case 1:\n if (!validateArn(bucketName)) return [3 /*break*/, 5];\n bucketArn = parseArn(bucketName);\n _a = getPseudoRegion;\n return [4 /*yield*/, options.region()];\n case 2:\n clientRegion = _a.apply(void 0, [_g.sent()]);\n return [4 /*yield*/, options.regionInfoProvider(clientRegion)];\n case 3:\n _b = (_g.sent()) || {}, partition = _b.partition, _c = _b.signingRegion, signingRegion = _c === void 0 ? clientRegion : _c;\n return [4 /*yield*/, options.useArnRegion()];\n case 4:\n useArnRegion = _g.sent();\n _d = bucketHostname({\n bucketName: bucketArn,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint: options.useDualstackEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n useArnRegion: useArnRegion,\n clientPartition: partition,\n clientSigningRegion: signingRegion,\n clientRegion: clientRegion,\n isCustomEndpoint: options.isCustomEndpoint,\n }), hostname = _d.hostname, bucketEndpoint = _d.bucketEndpoint, modifiedSigningRegion = _d.signingRegion, signingService = _d.signingService;\n // If the request needs to use a region or service name inferred from ARN that different from client region, we\n // need to set them in the handler context so the signer will use them\n if (modifiedSigningRegion && modifiedSigningRegion !== signingRegion) {\n context[\"signing_region\"] = modifiedSigningRegion;\n }\n if (signingService && signingService !== \"s3\") {\n context[\"signing_service\"] = signingService;\n }\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n return [3 /*break*/, 7];\n case 5:\n _e = getPseudoRegion;\n return [4 /*yield*/, options.region()];\n case 6:\n clientRegion = _e.apply(void 0, [_g.sent()]);\n _f = bucketHostname({\n bucketName: bucketName,\n clientRegion: clientRegion,\n baseHostname: request.hostname,\n accelerateEndpoint: options.useAccelerateEndpoint,\n dualstackEndpoint: options.useDualstackEndpoint,\n pathStyleEndpoint: options.forcePathStyle,\n tlsCompatible: request.protocol === \"https:\",\n isCustomEndpoint: options.isCustomEndpoint,\n }), hostname = _f.hostname, bucketEndpoint = _f.bucketEndpoint;\n request.hostname = hostname;\n replaceBucketInPath = bucketEndpoint;\n _g.label = 7;\n case 7:\n if (replaceBucketInPath) {\n request.path = request.path.replace(/^(\\/)?[^\\/]+/, \"\");\n if (request.path === \"\") {\n request.path = \"/\";\n }\n }\n _g.label = 8;\n case 8: return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n}); }; }; };\nexport var bucketEndpointMiddlewareOptions = {\n tags: [\"BUCKET_ENDPOINT\"],\n name: \"bucketEndpointMiddleware\",\n relation: \"before\",\n toMiddleware: \"hostHeaderMiddleware\",\n override: true,\n};\nexport var getBucketEndpointPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.addRelativeTo(bucketEndpointMiddleware(options), bucketEndpointMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1Y2tldEVuZHBvaW50TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBV3JELE9BQU8sRUFBRSxLQUFLLElBQUksUUFBUSxFQUFFLFFBQVEsSUFBSSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUFHLFVBQUMsT0FBcUMsSUFBZ0MsT0FBQSxVQUc1RyxJQUErQixFQUMvQixPQUFnQyxJQUNGLE9BQUEsVUFBTyxJQUFnQzs7Ozs7Z0JBQ3JELFVBQVUsR0FBSyxJQUFJLENBQUMsS0FBMkIsT0FBckMsQ0FBc0M7Z0JBQzVELG1CQUFtQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7Z0JBQzNDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO3FCQUN6QixXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUEvQix3QkFBK0I7cUJBQzdCLE9BQU8sQ0FBQyxjQUFjLEVBQXRCLHdCQUFzQjtnQkFDeEIsT0FBTyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7OztxQkFDckIsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUF2Qix3QkFBdUI7Z0JBQzFCLFNBQVMsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2xCLEtBQUEsZUFBZSxDQUFBO2dCQUFDLHFCQUFNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBQTs7Z0JBQXJELFlBQVksR0FBRyxrQkFBZ0IsU0FBc0IsRUFBQztnQkFDUCxxQkFBTSxPQUFPLENBQUMsa0JBQWtCLENB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cEMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxPQUFxQyxJQUEwQixPQUFBLENBQUM7SUFDdEcsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxFQUFFLCtCQUErQixDQUFDLENBQUM7SUFDaEcsQ0FBQztDQUNGLENBQUMsRUFKcUcsQ0FJckcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgSGFuZGxlckV4ZWN1dGlvbkNvbnRleHQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VBcm4sIHZhbGlkYXRlIGFzIHZhbGlkYXRlQXJuIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG5pbXBvcnQgeyBidWNrZXRIb3N0bmFtZSB9IGZyb20gXCIuL2J1Y2tldEhvc3RuYW1lXCI7XG5pbXBvcnQgeyBnZXRQc2V1ZG9SZWdpb24gfSBmcm9tIFwiLi9idWNrZXRIb3N0bmFtZVV0aWxzXCI7XG5pbXBvcnQgeyBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZSA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiA9PiA8XG4gIE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyXG4+KFxuICBuZXh0OiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+LFxuICBjb250ZXh0OiBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dFxuKTogQnVpbGRIYW5kbGVyPGFueSwgT3V0cHV0PiA9PiBhc3luYyAoYXJnczogQnVpbGRIYW5kbGVyQXJndW1lbnRzPGFueT4pOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gIGNvbnN0IHsgQnVja2V0OiBidWNrZXROYW1lIH0gPSBhcmdzLmlucHV0IGFzIHsgQnVja2V0OiBzdHJpbmcgfTtcbiAgbGV0IHJlcGxhY2VCdWNrZXRJblBhdGggPSBvcHRpb25zLmJ1Y2tldEVuZHBvaW50O1xuICBjb25zdCByZXF1ZXN0ID0gYXJncy5yZXF1ZXN0O1xuICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgIGlmIChvcHRpb25zLmJ1Y2tldEVuZHBvaW50KSB7XG4gICAgICByZXF1ZXN0Lmhvc3RuYW1lID0gYnVja2V0TmFtZTtcbiAgICB9IGVsc2UgaWYgKHZhbGlkYXRlQXJuKGJ1Y2tldE5hbWUpKSB7XG4gICAgICBjb25zdCBidWNrZXRBcm4gPSBwYXJzZUFybihidWNrZXROYW1lKTtcbiAgICAgIGNvbnN0IGNsaWVudFJlZ2lvbiA9IGdldFBzZXVkb1JlZ2lvbihhd2FpdCBvcHRpb25zLnJlZ2lvbigpKTtcbiAgICAgIGNvbnN0IHsgcGFydGl0aW9uLCBzaWduaW5nUmVnaW9uID0gY2xpZW50UmVnaW9uIH0gPSAoYXdhaXQgb3B0aW9ucy5yZWdpb25JbmZvUHJvdmlkZXIoY2xpZW50UmVnaW9uKSkgfHwge307XG4gICAgICBjb25zdCB1c2VBcm5SZWdpb24gPSBhd2FpdCBvcHRpb25zLnVzZUFyblJlZ2lvbigpO1xuICAgICAgY29uc3QgeyBob3N0bmFtZSwgYnVja2V0RW5kcG9pbnQsIHNpZ25pbmdSZWdpb246IG1vZGlmaWVkU2lnbmluZ1JlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSA9IGJ1Y2tldEhvc3RuYW1lKHtcbiAgICAgICAgYnVja2V0TmFtZTogYnVja2V0QXJuLFxuICAgICAgICBiYXNlSG9zdG5hbWU6IHJlcXVlc3QuaG9zdG5hbWUsXG4gICAgICAgIGFjY2VsZXJhdGVFbmRwb2ludDogb3B0aW9ucy51c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgICAgIGR1YWxzdGFja0VuZHBvaW50OiBvcHRpb25zLnVzZUR1YWxzdGFja0VuZHBvaW50LFxuICAgICAgICBwYXRoU3R5bGVFbmRwb2ludDogb3B0aW9ucy5mb3JjZVBhdGhTdHlsZSxcbiAgICAgICAgdGxzQ29tcGF0aWJsZTogcmVxdWVzdC5wcm90b2NvbCA9PT0gXCJodHRwczpcIixcbiAgICAgICAgdXNlQXJuUmVnaW9uLFxuICAgICAgICBjbGllbnRQYXJ0aXRpb246IHBhcnRpdGlvbixcbiAgICAgICAgY2xpZW50U2lnbmluZ1JlZ2lvbjogc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgY2xpZW50UmVnaW9uOiBjbGllbnRSZWdpb24sXG4gICAgICAgIGlzQ3VzdG9tRW5kcG9pbnQ6IG9wdGlvbnMuaXNDdXN0b21FbmRwb2ludCxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBJZiB0aGUgcmVxdWVzdCBuZWVkcyB0byB1c2UgYSByZWdpb24gb3Igc2VydmljZSBuYW1lIGluZmVycmVkIGZyb20gQVJOIHRoYXQgZGlmZmVyZW50IGZyb20gY2xpZW50IHJlZ2lvbiwgd2VcbiAgICAgIC8vIG5lZWQgdG8gc2V0IHRoZW0gaW4gdGhlIGhhbmRsZXIgY29udGV4dCBzbyB0aGUgc2lnbmVyIHdpbGwgdXNlIHRoZW1cbiAgICAgIGlmIChtb2RpZmllZFNpZ25pbmdSZWdpb24gJiYgbW9kaWZpZWRTaWduaW5nUmVnaW9uICE9PSBzaWduaW5nUmVnaW9uKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3JlZ2lvblwiXSA9IG1vZGlmaWVkU2lnbmluZ1JlZ2lvbjtcbiAgICAgIH1cbiAgICAgIGlmIChzaWduaW5nU2VydmljZSAmJiBzaWduaW5nU2VydmljZSAhPT0gXCJzM1wiKSB7XG4gICAgICAgIGNvbnRleHRbXCJzaWduaW5nX3NlcnZpY2VcIl0gPSBzaWduaW5nU2VydmljZTtcbiAgICAgIH1cblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjbGllbnRSZWdpb24gPSBnZXRQc2V1ZG9SZWdpb24oYXdhaXQgb3B0aW9ucy5yZWdpb24oKSk7XG4gICAgICBjb25zdCB7IGhvc3RuYW1lLCBidWNrZXRFbmRwb2ludCB9ID0gYnVja2V0SG9zdG5hbWUoe1xuICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICBjbGllbnRSZWdpb24sXG4gICAgICAgIGJhc2VIb3N0bmFtZTogcmVxdWVzdC5ob3N0bmFtZSxcbiAgICAgICAgYWNjZWxlcmF0ZUVuZHBvaW50OiBvcHRpb25zLnVzZUFjY2VsZXJhdGVFbmRwb2ludCxcbiAgICAgICAgZHVhbHN0YWNrRW5kcG9pbnQ6IG9wdGlvbnMudXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgICAgIHBhdGhTdHlsZUVuZHBvaW50OiBvcHRpb25zLmZvcmNlUGF0aFN0eWxlLFxuICAgICAgICB0bHNDb21wYXRpYmxlOiByZXF1ZXN0LnByb3RvY29sID09PSBcImh0dHBzOlwiLFxuICAgICAgICBpc0N1c3RvbUVuZHBvaW50OiBvcHRpb25zLmlzQ3VzdG9tRW5kcG9pbnQsXG4gICAgICB9KTtcblxuICAgICAgcmVxdWVzdC5ob3N0bmFtZSA9IGhvc3RuYW1lO1xuICAgICAgcmVwbGFjZUJ1Y2tldEluUGF0aCA9IGJ1Y2tldEVuZHBvaW50O1xuICAgIH1cblxuICAgIGlmIChyZXBsYWNlQnVja2V0SW5QYXRoKSB7XG4gICAgICByZXF1ZXN0LnBhdGggPSByZXF1ZXN0LnBhdGgucmVwbGFjZSgvXihcXC8pP1teXFwvXSsvLCBcIlwiKTtcbiAgICAgIGlmIChyZXF1ZXN0LnBhdGggPT09IFwiXCIpIHtcbiAgICAgICAgcmVxdWVzdC5wYXRoID0gXCIvXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5leHQoeyAuLi5hcmdzLCByZXF1ZXN0IH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1Y2tldEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnM6IFJlbGF0aXZlTWlkZGxld2FyZU9wdGlvbnMgPSB7XG4gIHRhZ3M6IFtcIkJVQ0tFVF9FTkRQT0lOVFwiXSxcbiAgbmFtZTogXCJidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVcIixcbiAgcmVsYXRpb246IFwiYmVmb3JlXCIsXG4gIHRvTWlkZGxld2FyZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRCdWNrZXRFbmRwb2ludFBsdWdpbiA9IChvcHRpb25zOiBCdWNrZXRFbmRwb2ludFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYnVja2V0RW5kcG9pbnRNaWRkbGV3YXJlKG9wdGlvbnMpLCBidWNrZXRFbmRwb2ludE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","import { __assign } from \"tslib\";\nexport function resolveBucketEndpointConfig(input) {\n var _a = input.bucketEndpoint, bucketEndpoint = _a === void 0 ? false : _a, _b = input.forcePathStyle, forcePathStyle = _b === void 0 ? false : _b, _c = input.useAccelerateEndpoint, useAccelerateEndpoint = _c === void 0 ? false : _c, _d = input.useDualstackEndpoint, useDualstackEndpoint = _d === void 0 ? false : _d, _e = input.useArnRegion, useArnRegion = _e === void 0 ? false : _e;\n return __assign(__assign({}, input), { bucketEndpoint: bucketEndpoint,\n forcePathStyle: forcePathStyle,\n useAccelerateEndpoint: useAccelerateEndpoint,\n useDualstackEndpoint: useDualstackEndpoint, useArnRegion: typeof useArnRegion === \"function\" ? useArnRegion : function () { return Promise.resolve(useArnRegion); } });\n}\nexport var NODE_USE_ARN_REGION_ENV_NAME = \"AWS_S3_USE_ARN_REGION\";\nexport var NODE_USE_ARN_REGION_INI_NAME = \"s3_use_arn_region\";\n/**\n * Config to load useArnRegion from environment variables and shared INI files\n *\n * @api private\n */\nexport var NODE_USE_ARN_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n if (!Object.prototype.hasOwnProperty.call(env, NODE_USE_ARN_REGION_ENV_NAME))\n return undefined;\n if (env[NODE_USE_ARN_REGION_ENV_NAME] === \"true\")\n return true;\n if (env[NODE_USE_ARN_REGION_ENV_NAME] === \"false\")\n return false;\n throw new Error(\"Cannot load env \" + NODE_USE_ARN_REGION_ENV_NAME + \". Expected \\\"true\\\" or \\\"false\\\", got \" + env[NODE_USE_ARN_REGION_ENV_NAME] + \".\");\n },\n configFileSelector: function (profile) {\n if (!Object.prototype.hasOwnProperty.call(profile, NODE_USE_ARN_REGION_INI_NAME))\n return undefined;\n if (profile[NODE_USE_ARN_REGION_INI_NAME] === \"true\")\n return true;\n if (profile[NODE_USE_ARN_REGION_INI_NAME] === \"false\")\n return false;\n throw new Error(\"Cannot load shared config entry \" + NODE_USE_ARN_REGION_INI_NAME + \". Expected \\\"true\\\" or \\\"false\\\", got \" + profile[NODE_USE_ARN_REGION_INI_NAME] + \".\");\n },\n default: false,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQTJDQSxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLEtBQXlEO0lBR3ZELElBQUEsS0FLRSxLQUFLLGVBTGUsRUFBdEIsY0FBYyxtQkFBRyxLQUFLLEtBQUEsRUFDdEIsS0FJRSxLQUFLLGVBSmUsRUFBdEIsY0FBYyxtQkFBRyxLQUFLLEtBQUEsRUFDdEIsS0FHRSxLQUFLLHNCQUhzQixFQUE3QixxQkFBcUIsbUJBQUcsS0FBSyxLQUFBLEVBQzdCLEtBRUUsS0FBSyxxQkFGcUIsRUFBNUIsb0JBQW9CLG1CQUFHLEtBQUssS0FBQSxFQUM1QixLQUNFLEtBQUssYUFEYSxFQUFwQixZQUFZLG1CQUFHLEtBQUssS0FBQSxDQUNaO0lBQ1YsNkJBQ0ssS0FBSyxLQUNSLGNBQWMsZ0JBQUE7UUFDZCxjQUFjLGdCQUFBO1FBQ2QscUJBQXFCLHVCQUFBO1FBQ3JCLG9CQUFvQixzQkFBQSxFQUNwQixZQUFZLEVBQUUsT0FBTyxZQUFZLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUE3QixDQUE2QixJQUNyRztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyx1QkFBdUIsQ0FBQztBQUNwRSxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyxtQkFBbUIsQ0FBQztBQUVoRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLElBQU0sa0NBQWtDLEdBQW1DO0lBQ2hGLDJCQUEyQixFQUFFLFVBQUMsR0FBc0I7UUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUMvRixJQUFJLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5RCxJQUFJLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxLQUFLLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNoRSxNQUFNLElBQUksS0FBSyxDQUNiLHFCQUFtQiw0QkFBNEIsOENBQXFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFHLENBQ3pILENBQUM7SUFDSixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsVUFBQyxPQUFPO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDRCQUE0QixDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDbkcsSUFBSSxPQUFPLENBQUMsNEJBQTRCLENBQUMsS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbEUsSUFBSSxPQUFPLENBQUMsNEJBQTRCLENBQUMsS0FBSyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FDYixxQ0FBbUMsNEJBQTRCLDhDQUFxQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsTUFBRyxDQUM3SSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvYWRlZENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gXCJAYXdzLXNkay9ub2RlLWNvbmZpZy1wcm92aWRlclwiO1xuaW1wb3J0IHsgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50SW5wdXRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcHJvdmlkZWQgZW5kcG9pbnQgYWRkcmVzc2VzIGFuIGluZGl2aWR1YWwgYnVja2V0LlxuICAgKi9cbiAgYnVja2V0RW5kcG9pbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciB0byBmb3JjZSBwYXRoIHN0eWxlIFVSTHMgZm9yIFMzIG9iamVjdHMgKGUuZy4sIGh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS88YnVja2V0TmFtZT4vPGtleT4gaW5zdGVhZCBvZiBodHRwczovLzxidWNrZXROYW1lPi5zMy5hbWF6b25hd3MuY29tLzxrZXk+XG4gICAqL1xuICBmb3JjZVBhdGhTdHlsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSB0aGUgUzMgVHJhbnNmZXIgQWNjZWxlcmF0aW9uIGVuZHBvaW50IGJ5IGRlZmF1bHRcbiAgICovXG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmFibGVzIElQdjYvSVB2NCBkdWFsc3RhY2sgZW5kcG9pbnQuIFdoZW4gYSBETlMgbG9va3VwIGlzIHBlcmZvcm1lZCBvbiBhbiBlbmRwb2ludCBvZiB0aGlzIHR5cGUsIGl0IHJldHVybnMgYW4g4oCcQeKAnSByZWNvcmQgd2l0aCBhbiBJUHY0IGFkZHJlc3MgYW5kIGFuIOKAnEFBQUHigJ0gcmVjb3JkIHdpdGggYW4gSVB2NiBhZGRyZXNzLiBJbiBtb3N0IGNhc2VzIHRoZSBuZXR3b3JrIHN0YWNrIGluIHRoZSBjbGllbnQgZW52aXJvbm1lbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHByZWZlciB0aGUgQUFBQSByZWNvcmQgYW5kIG1ha2UgYSBjb25uZWN0aW9uIHVzaW5nIHRoZSBJUHY2IGFkZHJlc3MuIE5vdGUsIGhvd2V2ZXIsIHRoYXQgY3VycmVudGx5IG9uIFdpbmRvd3MsIHRoZSBJUHY0IGFkZHJlc3Mgd2lsbCBiZSBwcmVmZXJyZWQuXG4gICAqL1xuICB1c2VEdWFsc3RhY2tFbmRwb2ludD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG92ZXJyaWRlIHRoZSByZXF1ZXN0IHJlZ2lvbiB3aXRoIHRoZSByZWdpb24gaW5mZXJyZWQgZnJvbSByZXF1ZXN0ZWQgcmVzb3VyY2UncyBBUk4uIERlZmF1bHRzIHRvIGZhbHNlXG4gICAqL1xuICB1c2VBcm5SZWdpb24/OiBib29sZWFuIHwgUHJvdmlkZXI8Ym9vbGVhbj47XG59XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xuICBidWNrZXRFbmRwb2ludDogYm9vbGVhbjtcbiAgZm9yY2VQYXRoU3R5bGU6IGJvb2xlYW47XG4gIHVzZUFjY2VsZXJhdGVFbmRwb2ludDogYm9vbGVhbjtcbiAgdXNlRHVhbHN0YWNrRW5kcG9pbnQ6IGJvb2xlYW47XG4gIHVzZUFyblJlZ2lvbjogUHJvdmlkZXI8Ym9vbGVhbj47XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcmVnaW9uSW5mb1Byb3ZpZGVyOiBSZWdpb25JbmZvUHJvdmlkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQnVja2V0RW5kcG9pbnRDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgQnVja2V0RW5kcG9pbnRJbnB1dENvbmZpZ1xuKTogVCAmIEJ1Y2tldEVuZHBvaW50UmVzb2x2ZWRDb25maWcge1xuICBjb25zdCB7XG4gICAgYnVja2V0RW5kcG9pbnQgPSBmYWxzZSxcbiAgICBmb3JjZVBhdGhTdHlsZSA9IGZhbHNlLFxuICAgIHVzZUFjY2VsZXJhdGVFbmRwb2ludCA9IGZhbHNlLFxuICAgIHVzZUR1YWxzdGFja0VuZHBvaW50ID0gZmFsc2UsXG4gICAgdXNlQXJuUmVnaW9uID0gZmFsc2UsXG4gIH0gPSBpbnB1dDtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBidWNrZXRFbmRwb2ludCxcbiAgICBmb3JjZVBhdGhTdHlsZSxcbiAgICB1c2VBY2NlbGVyYXRlRW5kcG9pbnQsXG4gICAgdXNlRHVhbHN0YWNrRW5kcG9pbnQsXG4gICAgdXNlQXJuUmVnaW9uOiB0eXBlb2YgdXNlQXJuUmVnaW9uID09PSBcImZ1bmN0aW9uXCIgPyB1c2VBcm5SZWdpb24gOiAoKSA9PiBQcm9taXNlLnJlc29sdmUodXNlQXJuUmVnaW9uKSxcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUgPSBcIkFXU19TM19VU0VfQVJOX1JFR0lPTlwiO1xuZXhwb3J0IGNvbnN0IE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUgPSBcInMzX3VzZV9hcm5fcmVnaW9uXCI7XG5cbi8qKlxuICogQ29uZmlnIHRvIGxvYWQgdXNlQXJuUmVnaW9uIGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCBzaGFyZWQgSU5JIGZpbGVzXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBOT0RFX1VTRV9BUk5fUkVHSU9OX0NPTkZJR19PUFRJT05TOiBMb2FkZWRDb25maWdTZWxlY3RvcnM8Ym9vbGVhbj4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudjogTm9kZUpTLlByb2Nlc3NFbnYpID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlbnYsIE5PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChlbnZbTk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRV0gPT09IFwidHJ1ZVwiKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdID09PSBcImZhbHNlXCIpIHJldHVybiBmYWxzZTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGxvYWQgZW52ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9FTlZfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7ZW52W05PREVfVVNFX0FSTl9SRUdJT05fRU5WX05BTUVdfS5gXG4gICAgKTtcbiAgfSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4ge1xuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb2ZpbGUsIE5PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUUpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9maWxlW05PREVfVVNFX0FSTl9SRUdJT05fSU5JX05BTUVdID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XG4gICAgaWYgKHByb2ZpbGVbTk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRV0gPT09IFwiZmFsc2VcIikgcmV0dXJuIGZhbHNlO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBDYW5ub3QgbG9hZCBzaGFyZWQgY29uZmlnIGVudHJ5ICR7Tk9ERV9VU0VfQVJOX1JFR0lPTl9JTklfTkFNRX0uIEV4cGVjdGVkIFwidHJ1ZVwiIG9yIFwiZmFsc2VcIiwgZ290ICR7cHJvZmlsZVtOT0RFX1VTRV9BUk5fUkVHSU9OX0lOSV9OQU1FXX0uYFxuICAgICk7XG4gIH0sXG4gIGRlZmF1bHQ6IGZhbHNlLFxufTtcbiJdfQ==","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { validate as validateArn } from \"@aws-sdk/util-arn-parser\";\n/**\n * @internal\n */\nexport function validateBucketNameMiddleware() {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var Bucket, err;\n return __generator(this, function (_a) {\n Bucket = args.input.Bucket;\n if (typeof Bucket === \"string\" && !validateArn(Bucket) && Bucket.indexOf(\"/\") >= 0) {\n err = new Error(\"Bucket name shouldn't contain '/', received '\" + Bucket + \"'\");\n err.name = \"InvalidBucketName\";\n throw err;\n }\n return [2 /*return*/, next(__assign({}, args))];\n });\n }); }; };\n}\n/**\n * @internal\n */\nexport var validateBucketNameMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"VALIDATE_BUCKET_NAME\"],\n name: \"validateBucketNameMiddleware\",\n override: true,\n};\n/**\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport var getValidateBucketNamePlugin = function (unused) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(validateBucketNameMiddleware(), validateBucketNameMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYnVja2V0LW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGUtYnVja2V0LW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVNBLE9BQU8sRUFBRSxRQUFRLElBQUksV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCO0lBQTVDLGlCQWdCQztJQWZDLE9BQU8sVUFDTCxJQUFvQyxJQUNELE9BQUEsVUFDbkMsSUFBcUM7OztZQUcxQixNQUFNLEdBQ2IsSUFBSSxhQURTLENBQ1I7WUFDVCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDNUUsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLGtEQUFnRCxNQUFNLE1BQUcsQ0FBQyxDQUFDO2dCQUNqRixHQUFHLENBQUMsSUFBSSxHQUFHLG1CQUFtQixDQUFDO2dCQUMvQixNQUFNLEdBQUcsQ0FBQzthQUNYO1lBQ0Qsc0JBQU8sSUFBSSxjQUFNLElBQUksRUFBRyxFQUFDOztTQUMxQixFQVpvQyxDQVlwQyxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sbUNBQW1DLEdBQTZCO0lBQzNFLElBQUksRUFBRSxZQUFZO0lBQ2xCLElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDO0lBQzlCLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUY7O0dBRUc7QUFDSCw2REFBNkQ7QUFDN0QsTUFBTSxDQUFDLElBQU0sMkJBQTJCLEdBQUcsVUFBQyxNQUFXLElBQTBCLE9BQUEsQ0FBQztJQUNoRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7Q0FDRixDQUFDLEVBSitFLENBSS9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbml0aWFsaXplSGFuZGxlcixcbiAgSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIEluaXRpYWxpemVNaWRkbGV3YXJlLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHZhbGlkYXRlIGFzIHZhbGlkYXRlQXJuIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYXJuLXBhcnNlclwiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZSgpOiBJbml0aWFsaXplTWlkZGxld2FyZTxhbnksIGFueT4ge1xuICByZXR1cm4gPE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyPihcbiAgICBuZXh0OiBJbml0aWFsaXplSGFuZGxlcjxhbnksIE91dHB1dD5cbiAgKTogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgICBhcmdzOiBJbml0aWFsaXplSGFuZGxlckFyZ3VtZW50czxhbnk+XG4gICk6IFByb21pc2U8SW5pdGlhbGl6ZUhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGlucHV0OiB7IEJ1Y2tldCB9LFxuICAgIH0gPSBhcmdzO1xuICAgIGlmICh0eXBlb2YgQnVja2V0ID09PSBcInN0cmluZ1wiICYmICF2YWxpZGF0ZUFybihCdWNrZXQpICYmIEJ1Y2tldC5pbmRleE9mKFwiL1wiKSA+PSAwKSB7XG4gICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoYEJ1Y2tldCBuYW1lIHNob3VsZG4ndCBjb250YWluICcvJywgcmVjZWl2ZWQgJyR7QnVja2V0fSdgKTtcbiAgICAgIGVyci5uYW1lID0gXCJJbnZhbGlkQnVja2V0TmFtZVwiO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCh7IC4uLmFyZ3MgfSk7XG4gIH07XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUJ1Y2tldE5hbWVNaWRkbGV3YXJlT3B0aW9uczogSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImluaXRpYWxpemVcIixcbiAgdGFnczogW1wiVkFMSURBVEVfQlVDS0VUX05BTUVcIl0sXG4gIG5hbWU6IFwidmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmV4cG9ydCBjb25zdCBnZXRWYWxpZGF0ZUJ1Y2tldE5hbWVQbHVnaW4gPSAodW51c2VkOiBhbnkpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkKHZhbGlkYXRlQnVja2V0TmFtZU1pZGRsZXdhcmUoKSwgdmFsaWRhdGVCdWNrZXROYW1lTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\n/**\n * @internal\n */\nexport var useRegionalEndpointMiddleware = function (config) { return function (next) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request) || config.isCustomEndpoint)\n return [2 /*return*/, next(__assign({}, args))];\n if (!(request.hostname === \"s3.amazonaws.com\")) return [3 /*break*/, 1];\n request.hostname = \"s3.us-east-1.amazonaws.com\";\n return [3 /*break*/, 3];\n case 1:\n _a = \"aws-global\";\n return [4 /*yield*/, config.region()];\n case 2:\n if (_a === (_b.sent())) {\n request.hostname = \"s3.amazonaws.com\";\n }\n _b.label = 3;\n case 3: return [2 /*return*/, next(__assign({}, args))];\n }\n });\n}); }; }; };\n/**\n * @internal\n */\nexport var useRegionalEndpointMiddlewareOptions = {\n step: \"build\",\n tags: [\"USE_REGIONAL_ENDPOINT\", \"S3\"],\n name: \"useRegionalEndpointMiddleware\",\n override: true,\n};\n/**\n * @internal\n */\nexport var getUseRegionalEndpointPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(useRegionalEndpointMiddleware(config), useRegionalEndpointMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJlZ2lvbmFsLWVuZHBvaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZS1yZWdpb25hbC1lbmRwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBaUJyRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLDZCQUE2QixHQUFHLFVBQUMsTUFBMEIsSUFBZ0MsT0FBQSxVQUd0RyxJQUErQixJQUNELE9BQUEsVUFBTyxJQUFnQzs7Ozs7Z0JBQzdELE9BQU8sR0FBSyxJQUFJLFFBQVQsQ0FBVTtnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLGdCQUFnQjtvQkFBRSxzQkFBTyxJQUFJLGNBQU0sSUFBSSxFQUFHLEVBQUM7cUJBQ3RGLENBQUEsT0FBTyxDQUFDLFFBQVEsS0FBSyxrQkFBa0IsQ0FBQSxFQUF2Qyx3QkFBdUM7Z0JBQ3pDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsNEJBQTRCLENBQUM7OztnQkFDdkMsS0FBQSxZQUFZLENBQUE7Z0JBQU0scUJBQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFBOztnQkFBM0MsSUFBSSxPQUFpQixDQUFDLFNBQXFCLENBQUMsRUFBRTtvQkFDbkQsT0FBTyxDQUFDLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQztpQkFDdkM7O29CQUNELHNCQUFPLElBQUksY0FBTSxJQUFJLEVBQUcsRUFBQzs7O0tBQzFCLEVBVCtCLENBUy9CLEVBYnVHLENBYXZHLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLG9DQUFvQyxHQUF3QjtJQUN2RSxJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQztJQUNyQyxJQUFJLEVBQUUsK0JBQStCO0lBQ3JDLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQUcsVUFBQyxNQUEwQixJQUEwQixPQUFBLENBQUM7SUFDaEcsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxFQUFFLG9DQUFvQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztDQUNGLENBQUMsRUFKK0YsQ0FJL0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPcHRpb25zLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgUHJvdmlkZXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG50eXBlIFByZXZpb3VzbHlSZXNvbHZlZCA9IHtcbiAgcmVnaW9uOiBQcm92aWRlcjxzdHJpbmc+O1xuICBpc0N1c3RvbUVuZHBvaW50OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVJlZ2lvbmFsRW5kcG9pbnRNaWRkbGV3YXJlID0gKGNvbmZpZzogUHJldmlvdXNseVJlc29sdmVkKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiA9PiA8XG4gIE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyXG4+KFxuICBuZXh0OiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+XG4pOiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55Pik6IFByb21pc2U8QnVpbGRIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UocmVxdWVzdCkgfHwgY29uZmlnLmlzQ3VzdG9tRW5kcG9pbnQpIHJldHVybiBuZXh0KHsgLi4uYXJncyB9KTtcbiAgaWYgKHJlcXVlc3QuaG9zdG5hbWUgPT09IFwiczMuYW1hem9uYXdzLmNvbVwiKSB7XG4gICAgcmVxdWVzdC5ob3N0bmFtZSA9IFwiczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cIjtcbiAgfSBlbHNlIGlmIChcImF3cy1nbG9iYWxcIiA9PT0gKGF3YWl0IGNvbmZpZy5yZWdpb24oKSkpIHtcbiAgICByZXF1ZXN0Lmhvc3RuYW1lID0gXCJzMy5hbWF6b25hd3MuY29tXCI7XG4gIH1cbiAgcmV0dXJuIG5leHQoeyAuLi5hcmdzIH0pO1xufTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVJlZ2lvbmFsRW5kcG9pbnRNaWRkbGV3YXJlT3B0aW9uczogQnVpbGRIYW5kbGVyT3B0aW9ucyA9IHtcbiAgc3RlcDogXCJidWlsZFwiLFxuICB0YWdzOiBbXCJVU0VfUkVHSU9OQUxfRU5EUE9JTlRcIiwgXCJTM1wiXSxcbiAgbmFtZTogXCJ1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRVc2VSZWdpb25hbEVuZHBvaW50UGx1Z2luID0gKGNvbmZpZzogUHJldmlvdXNseVJlc29sdmVkKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZCh1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZShjb25maWcpLCB1c2VSZWdpb25hbEVuZHBvaW50TWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { HttpResponse } from \"@aws-sdk/protocol-http\";\n/**\n * In case of an internal error/terminated connection, S3 operations may return 200 errors. CopyObject, UploadPartCopy,\n * CompleteMultipartUpload may return empty payload or payload with only xml Preamble.\n * @internal\n */\nexport var throw200ExceptionsMiddleware = function (config) { return function (next) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var result, response, statusCode, body, bodyBytes, bodyString, err;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, next(args)];\n case 1:\n result = _a.sent();\n response = result.response;\n if (!HttpResponse.isInstance(response))\n return [2 /*return*/, result];\n statusCode = response.statusCode, body = response.body;\n if (statusCode < 200 && statusCode >= 300)\n return [2 /*return*/, result];\n return [4 /*yield*/, collectBody(body, config)];\n case 2:\n bodyBytes = _a.sent();\n return [4 /*yield*/, collectBodyString(bodyBytes, config)];\n case 3:\n bodyString = _a.sent();\n if (bodyBytes.length === 0) {\n err = new Error(\"S3 aborted request\");\n err.name = \"InternalError\";\n throw err;\n }\n if (bodyString && bodyString.match(\"\")) {\n // Set the error code to 4XX so that error deserializer can parse them\n response.statusCode = 400;\n }\n // Body stream is consumed and paused at this point. So replace the response.body to the collected bytes.\n // So that the deserializer can consume the body as normal.\n response.body = bodyBytes;\n return [2 /*return*/, result];\n }\n });\n}); }; }; };\n// Collect low-level response body stream to Uint8Array.\nvar collectBody = function (streamBody, context) {\n if (streamBody === void 0) { streamBody = new Uint8Array(); }\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\n// Encode Uint8Array data into string with utf-8.\nvar collectBodyString = function (streamBody, context) {\n return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); });\n};\n/**\n * @internal\n */\nexport var throw200ExceptionsMiddlewareOptions = {\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\",\n tags: [\"THROW_200_EXCEPTIONS\", \"S3\"],\n name: \"throw200ExceptionsMiddleware\",\n override: true,\n};\n/**\n *\n * @internal\n */\nexport var getThrow200ExceptionsPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3ctMjAwLWV4Y2VwdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGhyb3ctMjAwLWV4Y2VwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVF0RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQUcsVUFBQyxNQUEwQixJQUFzQyxPQUFBLFVBQzNHLElBQUksSUFDRCxPQUFBLFVBQU8sSUFBSTs7OztvQkFDQyxxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUE7O2dCQUF6QixNQUFNLEdBQUcsU0FBZ0I7Z0JBQ3ZCLFFBQVEsR0FBSyxNQUFNLFNBQVgsQ0FBWTtnQkFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO29CQUFFLHNCQUFPLE1BQU0sRUFBQztnQkFDOUMsVUFBVSxHQUFXLFFBQVEsV0FBbkIsRUFBRSxJQUFJLEdBQUssUUFBUSxLQUFiLENBQWM7Z0JBQ3RDLElBQUksVUFBVSxHQUFHLEdBQUcsSUFBSSxVQUFVLElBQUksR0FBRztvQkFBRSxzQkFBTyxNQUFNLEVBQUM7Z0JBR3ZDLHFCQUFNLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUE7O2dCQUEzQyxTQUFTLEdBQUcsU0FBK0I7Z0JBQzlCLHFCQUFNLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsRUFBQTs7Z0JBQXZELFVBQVUsR0FBRyxTQUEwQztnQkFDN0QsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDcEIsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7b0JBQzVDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDO29CQUMzQixNQUFNLEdBQUcsQ0FBQztpQkFDWDtnQkFDRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUM3QyxzRUFBc0U7b0JBQ3RFLFFBQVEsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO2lCQUMzQjtnQkFFRCx5R0FBeUc7Z0JBQ3pHLDJEQUEyRDtnQkFDM0QsUUFBUSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7Z0JBQzFCLHNCQUFPLE1BQU0sRUFBQzs7O0tBQ2YsRUF4QkksQ0F3QkosRUExQjRHLENBMEI1RyxDQUFDO0FBRUYsd0RBQXdEO0FBQ3hELElBQU0sV0FBVyxHQUFHLFVBQUMsVUFBa0MsRUFBRSxPQUEyQjtJQUEvRCwyQkFBQSxFQUFBLGlCQUFzQixVQUFVLEVBQUU7SUFDckQsSUFBSSxVQUFVLFlBQVksVUFBVSxFQUFFO1FBQ3BDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNwQztJQUNELE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsQ0FBQztBQUNsRixDQUFDLENBQUM7QUFFRixpREFBaUQ7QUFDakQsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLFVBQWUsRUFBRSxPQUEyQjtJQUNyRSxPQUFBLFdBQVcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBekIsQ0FBeUIsQ0FBQztBQUExRSxDQUEwRSxDQUFDO0FBRTdFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sbUNBQW1DLEdBQThCO0lBQzVFLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLFlBQVksRUFBRSx3QkFBd0I7SUFDdEMsSUFBSSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDO0lBQ3BDLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sMkJBQTJCLEdBQUcsVUFBQyxNQUEwQixJQUEwQixPQUFBLENBQUM7SUFDL0YsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxFQUFFLG1DQUFtQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztDQUNGLENBQUMsRUFKOEYsQ0FJOUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXNwb25zZSB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBEZXNlcmlhbGl6ZU1pZGRsZXdhcmUsIEVuY29kZXIsIFBsdWdnYWJsZSwgUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucywgU3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbnR5cGUgUHJldmlvdXNseVJlc29sdmVkID0ge1xuICBzdHJlYW1Db2xsZWN0b3I6IFN0cmVhbUNvbGxlY3RvcjtcbiAgdXRmOEVuY29kZXI6IEVuY29kZXI7XG59O1xuXG4vKipcbiAqIEluIGNhc2Ugb2YgYW4gaW50ZXJuYWwgZXJyb3IvdGVybWluYXRlZCBjb25uZWN0aW9uLCBTMyBvcGVyYXRpb25zIG1heSByZXR1cm4gMjAwIGVycm9ycy4gQ29weU9iamVjdCwgVXBsb2FkUGFydENvcHksXG4gKiBDb21wbGV0ZU11bHRpcGFydFVwbG9hZCBtYXkgcmV0dXJuIGVtcHR5IHBheWxvYWQgb3IgcGF5bG9hZCB3aXRoIG9ubHkgeG1sIFByZWFtYmxlLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlID0gKGNvbmZpZzogUHJldmlvdXNseVJlc29sdmVkKTogRGVzZXJpYWxpemVNaWRkbGV3YXJlPGFueSwgYW55PiA9PiAoXG4gIG5leHRcbikgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgY29uc3QgeyByZXNwb25zZSB9ID0gcmVzdWx0O1xuICBpZiAoIUh0dHBSZXNwb25zZS5pc0luc3RhbmNlKHJlc3BvbnNlKSkgcmV0dXJuIHJlc3VsdDtcbiAgY29uc3QgeyBzdGF0dXNDb2RlLCBib2R5IH0gPSByZXNwb25zZTtcbiAgaWYgKHN0YXR1c0NvZGUgPCAyMDAgJiYgc3RhdHVzQ29kZSA+PSAzMDApIHJldHVybiByZXN1bHQ7XG5cbiAgLy8gVGhyb3cgMlhYIHJlc3BvbnNlIHRoYXQncyBlaXRoZXIgYW4gZXJyb3Igb3IgaGFzIGVtcHR5IGJvZHkuXG4gIGNvbnN0IGJvZHlCeXRlcyA9IGF3YWl0IGNvbGxlY3RCb2R5KGJvZHksIGNvbmZpZyk7XG4gIGNvbnN0IGJvZHlTdHJpbmcgPSBhd2FpdCBjb2xsZWN0Qm9keVN0cmluZyhib2R5Qnl0ZXMsIGNvbmZpZyk7XG4gIGlmIChib2R5Qnl0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgY29uc3QgZXJyID0gbmV3IEVycm9yKFwiUzMgYWJvcnRlZCByZXF1ZXN0XCIpO1xuICAgIGVyci5uYW1lID0gXCJJbnRlcm5hbEVycm9yXCI7XG4gICAgdGhyb3cgZXJyO1xuICB9XG4gIGlmIChib2R5U3RyaW5nICYmIGJvZHlTdHJpbmcubWF0Y2goXCI8RXJyb3I+XCIpKSB7XG4gICAgLy8gU2V0IHRoZSBlcnJvciBjb2RlIHRvIDRYWCBzbyB0aGF0IGVycm9yIGRlc2VyaWFsaXplciBjYW4gcGFyc2UgdGhlbVxuICAgIHJlc3BvbnNlLnN0YXR1c0NvZGUgPSA0MDA7XG4gIH1cblxuICAvLyBCb2R5IHN0cmVhbSBpcyBjb25zdW1lZCBhbmQgcGF1c2VkIGF0IHRoaXMgcG9pbnQuIFNvIHJlcGxhY2UgdGhlIHJlc3BvbnNlLmJvZHkgdG8gdGhlIGNvbGxlY3RlZCBieXRlcy5cbiAgLy8gU28gdGhhdCB0aGUgZGVzZXJpYWxpemVyIGNhbiBjb25zdW1lIHRoZSBib2R5IGFzIG5vcm1hbC5cbiAgcmVzcG9uc2UuYm9keSA9IGJvZHlCeXRlcztcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8vIENvbGxlY3QgbG93LWxldmVsIHJlc3BvbnNlIGJvZHkgc3RyZWFtIHRvIFVpbnQ4QXJyYXkuXG5jb25zdCBjb2xsZWN0Qm9keSA9IChzdHJlYW1Cb2R5OiBhbnkgPSBuZXcgVWludDhBcnJheSgpLCBjb250ZXh0OiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQcm9taXNlPFVpbnQ4QXJyYXk+ID0+IHtcbiAgaWYgKHN0cmVhbUJvZHkgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzdHJlYW1Cb2R5KTtcbiAgfVxuICByZXR1cm4gY29udGV4dC5zdHJlYW1Db2xsZWN0b3Ioc3RyZWFtQm9keSkgfHwgUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KCkpO1xufTtcblxuLy8gRW5jb2RlIFVpbnQ4QXJyYXkgZGF0YSBpbnRvIHN0cmluZyB3aXRoIHV0Zi04LlxuY29uc3QgY29sbGVjdEJvZHlTdHJpbmcgPSAoc3RyZWFtQm9keTogYW55LCBjb250ZXh0OiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQcm9taXNlPHN0cmluZz4gPT5cbiAgY29sbGVjdEJvZHkoc3RyZWFtQm9keSwgY29udGV4dCkudGhlbigoYm9keSkgPT4gY29udGV4dC51dGY4RW5jb2Rlcihib2R5KSk7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCB0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlT3B0aW9uczogUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgcmVsYXRpb246IFwiYWZ0ZXJcIixcbiAgdG9NaWRkbGV3YXJlOiBcImRlc2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgdGFnczogW1wiVEhST1dfMjAwX0VYQ0VQVElPTlNcIiwgXCJTM1wiXSxcbiAgbmFtZTogXCJ0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuLyoqXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRUaHJvdzIwMEV4Y2VwdGlvbnNQbHVnaW4gPSAoY29uZmlnOiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyh0aHJvdzIwMEV4Y2VwdGlvbnNNaWRkbGV3YXJlKGNvbmZpZyksIHRocm93MjAwRXhjZXB0aW9uc01pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","import { __assign, __awaiter, __generator, __values } from \"tslib\";\nexport function ssecMiddleware(options) {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var input, properties, properties_1, properties_1_1, prop, value, valueView, encoded, hash, _a, _b, _c, _d, e_1_1;\n var e_1, _e, _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n input = __assign({}, args.input);\n properties = [\n {\n target: \"SSECustomerKey\",\n hash: \"SSECustomerKeyMD5\",\n },\n {\n target: \"CopySourceSSECustomerKey\",\n hash: \"CopySourceSSECustomerKeyMD5\",\n },\n ];\n _g.label = 1;\n case 1:\n _g.trys.push([1, 6, 7, 8]);\n properties_1 = __values(properties), properties_1_1 = properties_1.next();\n _g.label = 2;\n case 2:\n if (!!properties_1_1.done) return [3 /*break*/, 5];\n prop = properties_1_1.value;\n value = input[prop.target];\n if (!value) return [3 /*break*/, 4];\n valueView = ArrayBuffer.isView(value)\n ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength)\n : typeof value === \"string\"\n ? options.utf8Decoder(value)\n : new Uint8Array(value);\n encoded = options.base64Encoder(valueView);\n hash = new options.md5();\n hash.update(valueView);\n _a = [__assign({}, input)];\n _f = {}, _f[prop.target] = encoded;\n _b = prop.hash;\n _d = (_c = options).base64Encoder;\n return [4 /*yield*/, hash.digest()];\n case 3:\n input = __assign.apply(void 0, _a.concat([(_f[_b] = _d.apply(_c, [_g.sent()]), _f)]));\n _g.label = 4;\n case 4:\n properties_1_1 = properties_1.next();\n return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 8];\n case 6:\n e_1_1 = _g.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (properties_1_1 && !properties_1_1.done && (_e = properties_1.return)) _e.call(properties_1);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/, next(__assign(__assign({}, args), { input: input }))];\n }\n });\n }); }; };\n}\nexport var ssecMiddlewareOptions = {\n name: \"ssecMiddleware\",\n step: \"initialize\",\n tags: [\"SSE\"],\n override: true,\n};\nexport var getSsecPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(ssecMiddleware(config), ssecMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWFBLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBcUM7SUFBcEUsaUJBMENDO0lBekNDLE9BQU8sVUFDTCxJQUFvQyxJQUNELE9BQUEsVUFDbkMsSUFBcUM7Ozs7OztvQkFFakMsS0FBSyxnQkFBUSxJQUFJLENBQUMsS0FBSyxDQUFFLENBQUM7b0JBQ3hCLFVBQVUsR0FBRzt3QkFDakI7NEJBQ0UsTUFBTSxFQUFFLGdCQUFnQjs0QkFDeEIsSUFBSSxFQUFFLG1CQUFtQjt5QkFDMUI7d0JBQ0Q7NEJBQ0UsTUFBTSxFQUFFLDBCQUEwQjs0QkFDbEMsSUFBSSxFQUFFLDZCQUE2Qjt5QkFDcEM7cUJBQ0YsQ0FBQzs7OztvQkFFaUIsZUFBQSxTQUFBLFVBQVUsQ0FBQTs7OztvQkFBbEIsSUFBSTtvQkFDUCxLQUFLLEdBQTRCLEtBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQzlELEtBQUssRUFBTCx3QkFBSztvQkFDRCxTQUFTLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7d0JBQ3pDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQzt3QkFDbEUsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVE7NEJBQzNCLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQzs0QkFDNUIsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwQixPQUFPLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDM0MsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3VDQUVqQixLQUFhO2dDQUNoQixJQUFJLENBQUMsTUFBTSxJQUFHLE9BQU87b0JBQ3JCLEtBQUEsSUFBSSxDQUFDLElBQUksQ0FBQTtvQkFBRyxLQUFBLENBQUEsS0FBQSxPQUFPLENBQUEsQ0FBQyxhQUFhLENBQUE7b0JBQUMscUJBQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFBOztvQkFIeEQsS0FBSywrQ0FHVSxjQUFzQixTQUFtQixFQUFDLFFBQ3hELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7d0JBSU4sc0JBQU8sSUFBSSx1QkFDTixJQUFJLEtBQ1AsS0FBSyxPQUFBLElBQ0wsRUFBQzs7O1NBQ0osRUF0Q29DLENBc0NwQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxJQUFNLHFCQUFxQixHQUE2QjtJQUM3RCxJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLElBQUksRUFBRSxZQUFZO0lBQ2xCLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQztJQUNiLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxVQUFDLE1BQW9DLElBQTBCLE9BQUEsQ0FBQztJQUMzRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGLENBQUMsRUFKMEYsQ0FJMUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluaXRpYWxpemVIYW5kbGVyLFxuICBJbml0aWFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zLFxuICBJbml0aWFsaXplSGFuZGxlck91dHB1dCxcbiAgSW5pdGlhbGl6ZU1pZGRsZXdhcmUsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG4gIFNvdXJjZURhdGEsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBSZXNvbHZlZFNzZWNNaWRkbGV3YXJlQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gc3NlY01pZGRsZXdhcmUob3B0aW9uczogUmVzb2x2ZWRTc2VjTWlkZGxld2FyZUNvbmZpZyk6IEluaXRpYWxpemVNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KFxuICAgIG5leHQ6IEluaXRpYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0PlxuICApOiBJbml0aWFsaXplSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKFxuICAgIGFyZ3M6IEluaXRpYWxpemVIYW5kbGVyQXJndW1lbnRzPGFueT5cbiAgKTogUHJvbWlzZTxJbml0aWFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgbGV0IGlucHV0ID0geyAuLi5hcmdzLmlucHV0IH07XG4gICAgY29uc3QgcHJvcGVydGllcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdGFyZ2V0OiBcIlNTRUN1c3RvbWVyS2V5XCIsXG4gICAgICAgIGhhc2g6IFwiU1NFQ3VzdG9tZXJLZXlNRDVcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRhcmdldDogXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlcIixcbiAgICAgICAgaGFzaDogXCJDb3B5U291cmNlU1NFQ3VzdG9tZXJLZXlNRDVcIixcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICBjb25zdCB2YWx1ZTogU291cmNlRGF0YSB8IHVuZGVmaW5lZCA9IChpbnB1dCBhcyBhbnkpW3Byb3AudGFyZ2V0XTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBjb25zdCB2YWx1ZVZpZXcgPSBBcnJheUJ1ZmZlci5pc1ZpZXcodmFsdWUpXG4gICAgICAgICAgPyBuZXcgVWludDhBcnJheSh2YWx1ZS5idWZmZXIsIHZhbHVlLmJ5dGVPZmZzZXQsIHZhbHVlLmJ5dGVMZW5ndGgpXG4gICAgICAgICAgOiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IG9wdGlvbnMudXRmOERlY29kZXIodmFsdWUpXG4gICAgICAgICAgOiBuZXcgVWludDhBcnJheSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IGVuY29kZWQgPSBvcHRpb25zLmJhc2U2NEVuY29kZXIodmFsdWVWaWV3KTtcbiAgICAgICAgY29uc3QgaGFzaCA9IG5ldyBvcHRpb25zLm1kNSgpO1xuICAgICAgICBoYXNoLnVwZGF0ZSh2YWx1ZVZpZXcpO1xuICAgICAgICBpbnB1dCA9IHtcbiAgICAgICAgICAuLi4oaW5wdXQgYXMgYW55KSxcbiAgICAgICAgICBbcHJvcC50YXJnZXRdOiBlbmNvZGVkLFxuICAgICAgICAgIFtwcm9wLmhhc2hdOiBvcHRpb25zLmJhc2U2NEVuY29kZXIoYXdhaXQgaGFzaC5kaWdlc3QoKSksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgLi4uYXJncyxcbiAgICAgIGlucHV0LFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3Qgc3NlY01pZGRsZXdhcmVPcHRpb25zOiBJbml0aWFsaXplSGFuZGxlck9wdGlvbnMgPSB7XG4gIG5hbWU6IFwic3NlY01pZGRsZXdhcmVcIixcbiAgc3RlcDogXCJpbml0aWFsaXplXCIsXG4gIHRhZ3M6IFtcIlNTRVwiXSxcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3NlY1BsdWdpbiA9IChjb25maWc6IFJlc29sdmVkU3NlY01pZGRsZXdhcmVDb25maWcpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkKHNzZWNNaWRkbGV3YXJlKGNvbmZpZyksIHNzZWNNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","import { __extends } from \"tslib\";\nimport { CopyObjectOutput, CopyObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlCopyObjectCommand, serializeAws_restXmlCopyObjectCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Creates a copy of an object that is already stored in Amazon S3.

\n * \n *

You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your\n * object up to 5 GB in size in a single atomic operation using this API. However, to copy\n * an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API.\n * For more information, see Copy Object Using the REST Multipart Upload API.

\n *
\n *

All copy requests must be authenticated. Additionally, you must have\n * read access to the source object and write\n * access to the destination bucket. For more information, see REST Authentication. Both the Region\n * that you want to copy the object from and the Region that you want to copy the object to\n * must be enabled for your account.

\n *

A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3\n * is copying the files. If the error occurs before the copy operation starts, you receive a\n * standard Amazon S3 error. If the error occurs during the copy operation, the error response is\n * embedded in the 200 OK response. This means that a 200 OK\n * response can contain either a success or an error. Design your application to parse the\n * contents of the response and handle it appropriately.

\n *

If the copy is successful, you receive a response with information about the copied\n * object.

\n * \n *

If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not,\n * it would not contain the content-length, and you would need to read the entire\n * body.

\n *
\n *

The copy request charge is based on the storage class and Region that you specify for\n * the destination object. For pricing information, see Amazon S3 pricing.

\n * \n *

Amazon S3 transfer acceleration does not support cross-Region copies. If you request a\n * cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad\n * Request error. For more information, see Transfer Acceleration.

\n *
\n *

\n * Metadata\n *

\n *

When copying an object, you can preserve all metadata (default) or specify new metadata.\n * However, the ACL is not preserved and is set to private for the user making the request. To\n * override the default ACL setting, specify a new ACL when generating a copy request. For\n * more information, see Using ACLs.

\n *

To specify whether you want the object metadata copied from the source object or\n * replaced with metadata provided in the request, you can optionally add the\n * x-amz-metadata-directive header. When you grant permissions, you can use\n * the s3:x-amz-metadata-directive condition key to enforce certain metadata\n * behavior when objects are uploaded. For more information, see Specifying Conditions in a\n * Policy in the Amazon S3 Developer Guide. For a complete list of\n * Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for\n * Amazon S3.

\n *

\n * \n * x-amz-copy-source-if Headers\n *

\n *

To only copy an object under certain conditions, such as whether the Etag\n * matches or whether the object was modified before or after a specified date, use the\n * following request parameters:

\n *
    \n *
  • \n *

    \n * x-amz-copy-source-if-match\n *

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-none-match\n *

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-unmodified-since\n *

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-modified-since\n *

    \n *
  • \n *
\n *

If both the x-amz-copy-source-if-match and\n * x-amz-copy-source-if-unmodified-since headers are present in the request\n * and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

\n *
    \n *
  • \n *

    \n * x-amz-copy-source-if-match condition evaluates to true

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-unmodified-since condition evaluates to\n * false

    \n *
  • \n *
\n *\n *

If both the x-amz-copy-source-if-none-match and\n * x-amz-copy-source-if-modified-since headers are present in the request and\n * evaluate as follows, Amazon S3 returns the 412 Precondition Failed response\n * code:

\n *
    \n *
  • \n *

    \n * x-amz-copy-source-if-none-match condition evaluates to false

    \n *
  • \n *
  • \n *

    \n * x-amz-copy-source-if-modified-since condition evaluates to\n * true

    \n *
  • \n *
\n *\n * \n *

All headers with the x-amz- prefix, including\n * x-amz-copy-source, must be signed.

\n *
\n *

\n * Server-side encryption\n *

\n *

When you perform a CopyObject operation, you can optionally use the appropriate encryption-related headers to encrypt the object using server-side encryption with AWS managed encryption keys (SSE-S3 or SSE-KMS) or a customer-provided encryption key. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. For more information about server-side encryption, see Using\n * Server-Side Encryption.

\n *

If a target object uses SSE-KMS, you can enable an S3 Bucket Key for the object. For more\n * information, see Amazon S3 Bucket Keys in the Amazon Simple Storage Service Developer Guide.

\n *

\n * Access Control List (ACL)-Specific Request\n * Headers\n *

\n *

When copying an object, you can optionally use headers to grant ACL-based permissions.\n * By default, all objects are private. Only the owner has full access control. When adding a\n * new object, you can grant permissions to individual AWS accounts or to predefined groups\n * defined by Amazon S3. These permissions are then added to the ACL on the object. For more\n * information, see Access Control List (ACL) Overview and Managing ACLs Using the REST\n * API.

\n *\n *

\n * Storage Class Options\n *

\n *

You can use the CopyObject operation to change the storage class of an\n * object that is already stored in Amazon S3 using the StorageClass parameter. For\n * more information, see Storage\n * Classes in the Amazon S3 Service Developer Guide.

\n *

\n * Versioning\n *

\n *

By default, x-amz-copy-source identifies the current version of an object\n * to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was\n * deleted. To copy a different version, use the versionId subresource.

\n *

If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for\n * the object being copied. This version ID is different from the version ID of the source\n * object. Amazon S3 returns the version ID of the copied object in the\n * x-amz-version-id response header in the response.

\n *

If you do not enable versioning or suspend it on the target bucket, the version ID that\n * Amazon S3 generates is always null.

\n *

If the source object's storage class is GLACIER, you must restore a copy of this object\n * before you can use it as a source object for the copy operation. For more information, see\n * RestoreObject.

\n *

The following operations are related to CopyObject:

\n * \n *

For more information, see Copying\n * Objects.

\n */\nvar CopyObjectCommand = /** @class */ (function (_super) {\n __extends(CopyObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function CopyObjectCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n CopyObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"CopyObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: CopyObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: CopyObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n CopyObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCopyObjectCommand(input, context);\n };\n CopyObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCopyObjectCommand(output, context);\n };\n return CopyObjectCommand;\n}($Command));\nexport { CopyObjectCommand };\n//# sourceMappingURL=CopyObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { GetObjectOutput, GetObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlGetObjectCommand, serializeAws_restXmlGetObjectCommand } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Retrieves objects from Amazon S3. To use GET, you must have READ\n * access to the object. If you grant READ access to the anonymous user, you can\n * return the object without using an authorization header.

\n *\n *

An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer\n * file system. You can, however, create a logical hierarchy by using object key names that\n * imply a folder structure. For example, instead of naming an object sample.jpg,\n * you can name it photos/2006/February/sample.jpg.

\n *\n *

To get an object from such a logical hierarchy, specify the full key name for the object\n * in the GET operation. For a virtual hosted-style request example, if you have\n * the object photos/2006/February/sample.jpg, specify the resource as\n * /photos/2006/February/sample.jpg. For a path-style request example, if you\n * have the object photos/2006/February/sample.jpg in the bucket named\n * examplebucket, specify the resource as\n * /examplebucket/photos/2006/February/sample.jpg. For more information about\n * request types, see HTTP Host Header Bucket Specification.

\n *\n *

To distribute large files to many people, you can save bandwidth costs by using\n * BitTorrent. For more information, see Amazon S3\n * Torrent. For more information about returning the ACL of an object, see GetObjectAcl.

\n *\n *

If the object you are retrieving is stored in the S3 Glacier or\n * S3 Glacier Deep Archive storage class, or S3 Intelligent-Tiering Archive or\n * S3 Intelligent-Tiering Deep Archive tiers, before you can retrieve the object you must first restore a\n * copy using RestoreObject. Otherwise, this operation returns an\n * InvalidObjectStateError error. For information about restoring archived\n * objects, see Restoring Archived\n * Objects.

\n *\n *

Encryption request headers, like x-amz-server-side-encryption, should not\n * be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS\n * KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your\n * object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

\n *

If you encrypt an object by using server-side encryption with customer-provided\n * encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object,\n * you must use the following headers:

\n *
    \n *
  • \n *

    x-amz-server-side-encryption-customer-algorithm

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key-MD5

    \n *
  • \n *
\n *

For more information about SSE-C, see Server-Side Encryption (Using\n * Customer-Provided Encryption Keys).

\n *\n *

Assuming you have permission to read object tags (permission for the\n * s3:GetObjectVersionTagging action), the response also returns the\n * x-amz-tagging-count header that provides the count of number of tags\n * associated with the object. You can use GetObjectTagging to retrieve\n * the tag set associated with an object.

\n *\n *

\n * Permissions\n *

\n *

You need the s3:GetObject permission for this operation. For more\n * information, see Specifying Permissions\n * in a Policy. If the object you request does not exist, the error Amazon S3 returns\n * depends on whether you also have the s3:ListBucket permission.

\n *
    \n *
  • \n *

    If you have the s3:ListBucket permission on the bucket, Amazon S3 will\n * return an HTTP status code 404 (\"no such key\") error.

    \n *
  • \n *
  • \n *

    If you don’t have the s3:ListBucket permission, Amazon S3 will return an\n * HTTP status code 403 (\"access denied\") error.

    \n *
  • \n *
\n *\n *\n *

\n * Versioning\n *

\n *

By default, the GET operation returns the current version of an object. To return a\n * different version, use the versionId subresource.

\n *\n * \n *

If the current version of the object is a delete marker, Amazon S3 behaves as if the\n * object was deleted and includes x-amz-delete-marker: true in the\n * response.

\n *
\n *\n *\n *

For more information about versioning, see PutBucketVersioning.

\n *\n *

\n * Overriding Response Header Values\n *

\n *

There are times when you want to override certain response header values in a GET\n * response. For example, you might override the Content-Disposition response header value in\n * your GET request.

\n *\n *

You can override values for a set of response headers using the following query\n * parameters. These response header values are sent only on a successful request, that is,\n * when status code 200 OK is returned. The set of headers you can override using these\n * parameters is a subset of the headers that Amazon S3 accepts when you create an object. The\n * response headers that you can override for the GET response are Content-Type,\n * Content-Language, Expires, Cache-Control,\n * Content-Disposition, and Content-Encoding. To override these\n * header values in the GET response, you use the following request parameters.

\n *\n * \n *

You must sign the request, either using an Authorization header or a presigned URL,\n * when using these parameters. They cannot be used with an unsigned (anonymous)\n * request.

\n *
\n *
    \n *
  • \n *

    \n * response-content-type\n *

    \n *
  • \n *
  • \n *

    \n * response-content-language\n *

    \n *
  • \n *
  • \n *

    \n * response-expires\n *

    \n *
  • \n *
  • \n *

    \n * response-cache-control\n *

    \n *
  • \n *
  • \n *

    \n * response-content-disposition\n *

    \n *
  • \n *
  • \n *

    \n * response-content-encoding\n *

    \n *
  • \n *
\n *\n *

\n * Additional Considerations about Request Headers\n *

\n *\n *

If both of the If-Match and If-Unmodified-Since headers are\n * present in the request as follows: If-Match condition evaluates to\n * true, and; If-Unmodified-Since condition evaluates to\n * false; then, S3 returns 200 OK and the data requested.

\n *\n *

If both of the If-None-Match and If-Modified-Since headers are\n * present in the request as follows: If-None-Match condition evaluates to\n * false, and; If-Modified-Since condition evaluates to\n * true; then, S3 returns 304 Not Modified response code.

\n *\n *

For more information about conditional requests, see RFC 7232.

\n *\n *

The following operations are related to GetObject:

\n * \n */\nvar GetObjectCommand = /** @class */ (function (_super) {\n __extends(GetObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function GetObjectCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n GetObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"GetObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: GetObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: GetObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n GetObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlGetObjectCommand(input, context);\n };\n GetObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlGetObjectCommand(output, context);\n };\n return GetObjectCommand;\n}($Command));\nexport { GetObjectCommand };\n//# sourceMappingURL=GetObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { DeleteObjectOutput, DeleteObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlDeleteObjectCommand, serializeAws_restXmlDeleteObjectCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Removes the null version (if there is one) of an object and inserts a delete marker,\n * which becomes the latest version of the object. If there isn't a null version, Amazon S3 does\n * not remove any objects.

\n *\n *

To remove a specific version, you must be the bucket owner and you must use the version\n * Id subresource. Using this subresource permanently deletes the version. If the object\n * deleted is a delete marker, Amazon S3 sets the response header,\n * x-amz-delete-marker, to true.

\n *\n *

If the object you want to delete is in a bucket where the bucket versioning\n * configuration is MFA Delete enabled, you must include the x-amz-mfa request\n * header in the DELETE versionId request. Requests that include\n * x-amz-mfa must use HTTPS.

\n *\n *

For more information about MFA Delete, see Using MFA Delete. To see sample requests that use versioning, see Sample Request.

\n *\n *

You can delete objects by explicitly calling the DELETE Object API or configure its\n * lifecycle (PutBucketLifecycle) to\n * enable Amazon S3 to remove them for you. If you want to block users or accounts from removing or\n * deleting objects from your bucket, you must deny them the s3:DeleteObject,\n * s3:DeleteObjectVersion, and s3:PutLifeCycleConfiguration\n * actions.

\n *\n *

The following operation is related to DeleteObject:

\n * \n */\nvar DeleteObjectCommand = /** @class */ (function (_super) {\n __extends(DeleteObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function DeleteObjectCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n DeleteObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"DeleteObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: DeleteObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: DeleteObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n DeleteObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlDeleteObjectCommand(input, context);\n };\n DeleteObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlDeleteObjectCommand(output, context);\n };\n return DeleteObjectCommand;\n}($Command));\nexport { DeleteObjectCommand };\n//# sourceMappingURL=DeleteObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { ListObjectsV2Output, ListObjectsV2Request } from \"../models/models_0\";\nimport { deserializeAws_restXmlListObjectsV2Command, serializeAws_restXmlListObjectsV2Command, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request\n * parameters as selection criteria to return a subset of the objects in a bucket. A 200\n * OK response can contain valid or invalid XML. Make sure to design your\n * application to parse the contents of the response and handle it appropriately.

\n *\n *

To use this operation, you must have READ access to the bucket.

\n *\n *

To use this operation in an AWS Identity and Access Management (IAM) policy, you must\n * have permissions to perform the s3:ListBucket action. The bucket owner has\n * this permission by default and can grant this permission to others. For more information\n * about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3\n * Resources.

\n * \n *

This section describes the latest revision of the API. We recommend that you use this\n * revised API for application development. For backward compatibility, Amazon S3 continues to\n * support the prior version of this API, ListObjects.

\n *
\n *\n *

To get a list of your buckets, see ListBuckets.

\n *\n *

The following operations are related to ListObjectsV2:

\n * \n */\nvar ListObjectsV2Command = /** @class */ (function (_super) {\n __extends(ListObjectsV2Command, _super);\n // Start section: command_properties\n // End section: command_properties\n function ListObjectsV2Command(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n ListObjectsV2Command.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"ListObjectsV2Command\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: ListObjectsV2Request.filterSensitiveLog,\n outputFilterSensitiveLog: ListObjectsV2Output.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n ListObjectsV2Command.prototype.serialize = function (input, context) {\n return serializeAws_restXmlListObjectsV2Command(input, context);\n };\n ListObjectsV2Command.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlListObjectsV2Command(output, context);\n };\n return ListObjectsV2Command;\n}($Command));\nexport { ListObjectsV2Command };\n//# sourceMappingURL=ListObjectsV2Command.js.map","import { buildQueryString } from \"@aws-sdk/querystring-builder\";\nexport function formatUrl(request) {\n var port = request.port, query = request.query;\n var protocol = request.protocol, path = request.path, hostname = request.hostname;\n if (protocol && protocol.substr(-1) !== \":\") {\n protocol += \":\";\n }\n if (port) {\n hostname += \":\" + port;\n }\n if (path && path.charAt(0) !== \"/\") {\n path = \"/\" + path;\n }\n var queryString = query ? buildQueryString(query) : \"\";\n if (queryString && queryString[0] !== \"?\") {\n queryString = \"?\" + queryString;\n }\n return protocol + \"//\" + hostname + path + queryString;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHaEUsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUFnRDtJQUNoRSxJQUFBLElBQUksR0FBWSxPQUFPLEtBQW5CLEVBQUUsS0FBSyxHQUFLLE9BQU8sTUFBWixDQUFhO0lBQzFCLElBQUEsUUFBUSxHQUFxQixPQUFPLFNBQTVCLEVBQUUsSUFBSSxHQUFlLE9BQU8sS0FBdEIsRUFBRSxRQUFRLEdBQUssT0FBTyxTQUFaLENBQWE7SUFDM0MsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtRQUMzQyxRQUFRLElBQUksR0FBRyxDQUFDO0tBQ2pCO0lBQ0QsSUFBSSxJQUFJLEVBQUU7UUFDUixRQUFRLElBQUksTUFBSSxJQUFNLENBQUM7S0FDeEI7SUFDRCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtRQUNsQyxJQUFJLEdBQUcsTUFBSSxJQUFNLENBQUM7S0FDbkI7SUFDRCxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkQsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtRQUN6QyxXQUFXLEdBQUcsTUFBSSxXQUFhLENBQUM7S0FDakM7SUFDRCxPQUFVLFFBQVEsVUFBSyxRQUFRLEdBQUcsSUFBSSxHQUFHLFdBQWEsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVpbGRRdWVyeVN0cmluZyB9IGZyb20gXCJAYXdzLXNkay9xdWVyeXN0cmluZy1idWlsZGVyXCI7XG5pbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VXJsKHJlcXVlc3Q6IE9taXQ8SHR0cFJlcXVlc3QsIFwiaGVhZGVyc1wiIHwgXCJtZXRob2RcIj4pOiBzdHJpbmcge1xuICBjb25zdCB7IHBvcnQsIHF1ZXJ5IH0gPSByZXF1ZXN0O1xuICBsZXQgeyBwcm90b2NvbCwgcGF0aCwgaG9zdG5hbWUgfSA9IHJlcXVlc3Q7XG4gIGlmIChwcm90b2NvbCAmJiBwcm90b2NvbC5zdWJzdHIoLTEpICE9PSBcIjpcIikge1xuICAgIHByb3RvY29sICs9IFwiOlwiO1xuICB9XG4gIGlmIChwb3J0KSB7XG4gICAgaG9zdG5hbWUgKz0gYDoke3BvcnR9YDtcbiAgfVxuICBpZiAocGF0aCAmJiBwYXRoLmNoYXJBdCgwKSAhPT0gXCIvXCIpIHtcbiAgICBwYXRoID0gYC8ke3BhdGh9YDtcbiAgfVxuICBsZXQgcXVlcnlTdHJpbmcgPSBxdWVyeSA/IGJ1aWxkUXVlcnlTdHJpbmcocXVlcnkpIDogXCJcIjtcbiAgaWYgKHF1ZXJ5U3RyaW5nICYmIHF1ZXJ5U3RyaW5nWzBdICE9PSBcIj9cIikge1xuICAgIHF1ZXJ5U3RyaW5nID0gYD8ke3F1ZXJ5U3RyaW5nfWA7XG4gIH1cbiAgcmV0dXJuIGAke3Byb3RvY29sfS8vJHtob3N0bmFtZX0ke3BhdGh9JHtxdWVyeVN0cmluZ31gO1xufVxuIl19","import { __awaiter, __generator } from \"tslib\";\nexport function createRequest(client, command) {\n return __awaiter(this, void 0, void 0, function () {\n var interceptMiddleware, clientStack, handler;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n interceptMiddleware = function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, { output: { request: args.request }, response: undefined }];\n });\n }); }; };\n clientStack = client.middlewareStack.clone();\n // @ts-ignore: add middleware to the last of 'build' step\n clientStack.add(interceptMiddleware, {\n step: \"build\",\n priority: \"low\",\n });\n handler = command.resolveMiddleware(clientStack, client.config, undefined);\n return [4 /*yield*/, handler(command).then(function (output) { return output.output.request; })];\n case 1: \n // @ts-ignore\n return [2 /*return*/, _a.sent()];\n }\n });\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUdBLE1BQU0sVUFBZ0IsYUFBYSxDQUtqQyxNQUF5RCxFQUN6RCxPQUE2RTs7Ozs7OztvQkFHdkUsbUJBQW1CLEdBQTJDLFVBQUMsSUFBSSxJQUFLLE9BQUEsVUFBTyxJQUFJOzs0QkFDdkYsc0JBQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsRUFBQzs7eUJBQzFFLEVBRjZFLENBRTdFLENBQUM7b0JBQ0ksV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBRW5ELHlEQUF5RDtvQkFDekQsV0FBVyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRTt3QkFDbkMsSUFBSSxFQUFFLE9BQU87d0JBQ2IsUUFBUSxFQUFFLEtBQUs7cUJBQ2hCLENBQUMsQ0FBQztvQkFFRyxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUcxRSxxQkFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQXJCLENBQXFCLENBQUMsRUFBQTs7Z0JBRHJFLGFBQWE7Z0JBQ2Isc0JBQU8sU0FBOEQsRUFBQzs7OztDQUN2RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaWVudCwgQ29tbWFuZCB9IGZyb20gXCJAYXdzLXNkay9zbWl0aHktY2xpZW50XCI7XG5pbXBvcnQgeyBCdWlsZE1pZGRsZXdhcmUsIEh0dHBSZXF1ZXN0LCBNZXRhZGF0YUJlYXJlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVxdWVzdDxcbiAgSW5wdXRUeXBlc1VuaW9uIGV4dGVuZHMgb2JqZWN0LFxuICBJbnB1dFR5cGUgZXh0ZW5kcyBJbnB1dFR5cGVzVW5pb24sXG4gIE91dHB1dFR5cGUgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciA9IE1ldGFkYXRhQmVhcmVyXG4+KFxuICBjbGllbnQ6IENsaWVudDxhbnksIElucHV0VHlwZXNVbmlvbiwgTWV0YWRhdGFCZWFyZXIsIGFueT4sXG4gIGNvbW1hbmQ6IENvbW1hbmQ8SW5wdXRUeXBlLCBPdXRwdXRUeXBlLCBhbnksIElucHV0VHlwZXNVbmlvbiwgTWV0YWRhdGFCZWFyZXI+XG4pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgY29uc3QgaW50ZXJjZXB0TWlkZGxld2FyZTogQnVpbGRNaWRkbGV3YXJlPElucHV0VHlwZSwgT3V0cHV0VHlwZT4gPSAobmV4dCkgPT4gYXN5bmMgKGFyZ3MpID0+IHtcbiAgICByZXR1cm4geyBvdXRwdXQ6IHsgcmVxdWVzdDogYXJncy5yZXF1ZXN0IH0gYXMgYW55LCByZXNwb25zZTogdW5kZWZpbmVkIH07XG4gIH07XG4gIGNvbnN0IGNsaWVudFN0YWNrID0gY2xpZW50Lm1pZGRsZXdhcmVTdGFjay5jbG9uZSgpO1xuXG4gIC8vIEB0cy1pZ25vcmU6IGFkZCBtaWRkbGV3YXJlIHRvIHRoZSBsYXN0IG9mICdidWlsZCcgc3RlcFxuICBjbGllbnRTdGFjay5hZGQoaW50ZXJjZXB0TWlkZGxld2FyZSwge1xuICAgIHN0ZXA6IFwiYnVpbGRcIixcbiAgICBwcmlvcml0eTogXCJsb3dcIixcbiAgfSk7XG5cbiAgY29uc3QgaGFuZGxlciA9IGNvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUoY2xpZW50U3RhY2ssIGNsaWVudC5jb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gYXdhaXQgaGFuZGxlcihjb21tYW5kKS50aGVuKChvdXRwdXQpID0+IG91dHB1dC5vdXRwdXQucmVxdWVzdCk7XG59XG4iXX0=","export var StorageErrorStrings;\n(function (StorageErrorStrings) {\n StorageErrorStrings[\"NO_CREDENTIALS\"] = \"No credentials\";\n StorageErrorStrings[\"NO_SRC_KEY\"] = \"source param should be an object with the property \\\"key\\\" with value of type string\";\n StorageErrorStrings[\"NO_DEST_KEY\"] = \"destination param should be an object with the property \\\"key\\\" with value of type string\";\n StorageErrorStrings[\"INVALID_BLOB\"] = \"Object must be an instance of Blob\";\n})(StorageErrorStrings || (StorageErrorStrings = {}));\nexport var AWSS3ProviderMultipartCopierErrors;\n(function (AWSS3ProviderMultipartCopierErrors) {\n AWSS3ProviderMultipartCopierErrors[\"CLEANUP_FAILED\"] = \"Multipart copy clean up failed\";\n AWSS3ProviderMultipartCopierErrors[\"NO_OBJECT_FOUND\"] = \"Object does not exist\";\n AWSS3ProviderMultipartCopierErrors[\"INVALID_QUEUESIZE\"] = \"Queue size must be a positive number\";\n AWSS3ProviderMultipartCopierErrors[\"NO_COPYSOURCE\"] = \"You must specify a copy source\";\n AWSS3ProviderMultipartCopierErrors[\"MAX_NUM_PARTS_EXCEEDED\"] = \"Only a maximum of 10000 parts are allowed\";\n})(AWSS3ProviderMultipartCopierErrors || (AWSS3ProviderMultipartCopierErrors = {}));\nexport var AWSS3ProviderUploadErrorStrings;\n(function (AWSS3ProviderUploadErrorStrings) {\n AWSS3ProviderUploadErrorStrings[\"UPLOAD_PAUSED_MESSAGE\"] = \"paused\";\n})(AWSS3ProviderUploadErrorStrings || (AWSS3ProviderUploadErrorStrings = {}));\n//# sourceMappingURL=StorageErrorStrings.js.map","export var UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport var SHA256_HEADER = \"X-Amz-Content-Sha256\";\nexport var ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport var CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport var AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport var SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport var EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport var HOST_HEADER = \"host\";\nexport var ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUNuRCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsc0JBQXNCLENBQUM7QUFFcEQsTUFBTSxDQUFDLElBQU0scUJBQXFCLEdBQUcsaUJBQWlCLENBQUM7QUFDdkQsTUFBTSxDQUFDLElBQU0sc0JBQXNCLEdBQUcsa0JBQWtCLENBQUM7QUFDekQsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDO0FBQ2pELE1BQU0sQ0FBQyxJQUFNLDBCQUEwQixHQUFHLHFCQUFxQixDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGVBQWUsQ0FBQztBQUNuRCxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1BBWUxPQUQgPSBcIlVOU0lHTkVELVBBWUxPQURcIjtcbmV4cG9ydCBjb25zdCBTSEEyNTZfSEVBREVSID0gXCJYLUFtei1Db250ZW50LVNoYTI1NlwiO1xuXG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBIT1NUX0hFQURFUiA9IFwiaG9zdFwiO1xuZXhwb3J0IGNvbnN0IEFMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2XCI7XG4iXX0=","import { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nvar S3RequestPresigner = /** @class */ (function () {\n function S3RequestPresigner(options) {\n var resolvedOptions = __assign({ \n // Allow `signingName` because we want to support usecase of supply client's resolved config\n // directly. Where service equals signingName.\n service: options.signingName || options.service || \"s3\", uriEscapePath: options.uriEscapePath || false }, options);\n this.signer = new SignatureV4(resolvedOptions);\n }\n S3RequestPresigner.prototype.presign = function (requestToSign, _a) {\n if (_a === void 0) { _a = {}; }\n var _b = _a.unsignableHeaders, unsignableHeaders = _b === void 0 ? new Set() : _b, _c = _a.unhoistableHeaders, unhoistableHeaders = _c === void 0 ? new Set() : _c, options = __rest(_a, [\"unsignableHeaders\", \"unhoistableHeaders\"]);\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_d) {\n unsignableHeaders.add(\"content-type\");\n // S3 requires SSE headers to be signed in headers instead of query\n // See: https://github.com/aws/aws-sdk-js-v3/issues/1576\n Object.keys(requestToSign.headers)\n .map(function (header) { return header.toLowerCase(); })\n .filter(function (header) { return header.startsWith(\"x-amz-server-side-encryption\"); })\n .forEach(function (header) {\n unhoistableHeaders.add(header);\n });\n requestToSign.headers[SHA256_HEADER] = UNSIGNED_PAYLOAD;\n if (!requestToSign.headers[\"host\"]) {\n requestToSign.headers.host = requestToSign.hostname;\n }\n return [2 /*return*/, this.signer.presign(requestToSign, __assign({ expiresIn: 900, unsignableHeaders: unsignableHeaders,\n unhoistableHeaders: unhoistableHeaders }, options))];\n });\n });\n };\n return S3RequestPresigner;\n}());\nexport { S3RequestPresigner };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2lnbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByZXNpZ25lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBMEMsTUFBTSx1QkFBdUIsQ0FBQztBQUk1RixPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBYzlEO0lBRUUsNEJBQVksT0FBa0M7UUFDNUMsSUFBTSxlQUFlO1lBQ25CLDRGQUE0RjtZQUM1Riw4Q0FBOEM7WUFDOUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQ3ZELGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLEtBQUssSUFDMUMsT0FBTyxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFWSxvQ0FBTyxHQUFwQixVQUNFLGFBQTJCLEVBQzNCLEVBQThHO1FBQTlHLG1CQUFBLEVBQUEsT0FBOEc7UUFBNUcsSUFBQSx5QkFBNkIsRUFBN0IsaUJBQWlCLG1CQUFHLElBQUksR0FBRyxFQUFFLEtBQUEsRUFBRSwwQkFBOEIsRUFBOUIsa0JBQWtCLG1CQUFHLElBQUksR0FBRyxFQUFFLEtBQUEsRUFBSyxPQUFPLGNBQTNFLDJDQUE2RSxDQUFGOzs7Z0JBRTNFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDdEMsbUVBQW1FO2dCQUNuRSx3REFBd0Q7Z0JBQ3hELE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztxQkFDL0IsR0FBRyxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFwQixDQUFvQixDQUFDO3FCQUNyQyxNQUFNLENBQUMsVUFBQyxNQUFNLElBQUssT0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLEVBQWpELENBQWlELENBQUM7cUJBQ3JFLE9BQU8sQ0FBQyxVQUFDLE1BQU07b0JBQ2Qsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqQyxDQUFDLENBQUMsQ0FBQztnQkFDTCxhQUFhLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO2dCQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDbEMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztpQkFDckQ7Z0JBQ0Qsc0JBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxhQUN0QyxTQUFTLEVBQUUsR0FBRyxFQUNkLGlCQUFpQixtQkFBQTt3QkFDakIsa0JBQWtCLG9CQUFBLElBQ2YsT0FBTyxFQUNWLEVBQUM7OztLQUNKO0lBQ0gseUJBQUM7QUFBRCxDQUFDLEFBckNELElBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmF0dXJlVjQsIFNpZ25hdHVyZVY0Q3J5cHRvSW5pdCwgU2lnbmF0dXJlVjRJbml0IH0gZnJvbSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NFwiO1xuaW1wb3J0IHsgUmVxdWVzdFByZXNpZ25lciwgUmVxdWVzdFByZXNpZ25pbmdBcmd1bWVudHMgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IEh0dHBSZXF1ZXN0IGFzIElIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBTSEEyNTZfSEVBREVSLCBVTlNJR05FRF9QQVlMT0FEIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogUGFydGlhbEJ5PFQsIEs+IG1ha2VzIHByb3BlcnRpZXMgc3BlY2lmaWVkIGluIEsgb3B0aW9uYWwgaW4gaW50ZXJmYWNlIFRcbiAqIHNlZTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDMxNTk4ODcvbWFrZS1hLXNpbmdsZS1wcm9wZXJ0eS1vcHRpb25hbC1pbi10eXBlc2NyaXB0XG4gKiAqL1xudHlwZSBPbWl0PFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IFBpY2s8VCwgRXhjbHVkZTxrZXlvZiBULCBLPj47XG50eXBlIFBhcnRpYWxCeTxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBPbWl0PFQsIEs+ICYgUGFydGlhbDxQaWNrPFQsIEs+PjtcblxuZXhwb3J0IHR5cGUgUzNSZXF1ZXN0UHJlc2lnbmVyT3B0aW9ucyA9IFBhcnRpYWxCeTxcbiAgU2lnbmF0dXJlVjRJbml0ICYgU2lnbmF0dXJlVjRDcnlwdG9Jbml0LFxuICBcInNlcnZpY2VcIiB8IFwidXJpRXNjYXBlUGF0aFwiXG4+ICYgeyBzaWduaW5nTmFtZT86IHN0cmluZyB9O1xuXG5leHBvcnQgY2xhc3MgUzNSZXF1ZXN0UHJlc2lnbmVyIGltcGxlbWVudHMgUmVxdWVzdFByZXNpZ25lciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2lnbmVyOiBTaWduYXR1cmVWNDtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogUzNSZXF1ZXN0UHJlc2lnbmVyT3B0aW9ucykge1xuICAgIGNvbnN0IHJlc29sdmVkT3B0aW9ucyA9IHtcbiAgICAgIC8vIEFsbG93IGBzaWduaW5nTmFtZWAgYmVjYXVzZSB3ZSB3YW50IHRvIHN1cHBvcnQgdXNlY2FzZSBvZiBzdXBwbHkgY2xpZW50J3MgcmVzb2x2ZWQgY29uZmlnXG4gICAgICAvLyBkaXJlY3RseS4gV2hlcmUgc2VydmljZSBlcXVhbHMgc2lnbmluZ05hbWUuXG4gICAgICBzZXJ2aWNlOiBvcHRpb25zLnNpZ25pbmdOYW1lIHx8IG9wdGlvbnMuc2VydmljZSB8fCBcInMzXCIsXG4gICAgICB1cmlFc2NhcGVQYXRoOiBvcHRpb25zLnVyaUVzY2FwZVBhdGggfHwgZmFsc2UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gICAgdGhpcy5zaWduZXIgPSBuZXcgU2lnbmF0dXJlVjQocmVzb2x2ZWRPcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKFxuICAgIHJlcXVlc3RUb1NpZ246IElIdHRwUmVxdWVzdCxcbiAgICB7IHVuc2lnbmFibGVIZWFkZXJzID0gbmV3IFNldCgpLCB1bmhvaXN0YWJsZUhlYWRlcnMgPSBuZXcgU2V0KCksIC4uLm9wdGlvbnMgfTogUmVxdWVzdFByZXNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPElIdHRwUmVxdWVzdD4ge1xuICAgIHVuc2lnbmFibGVIZWFkZXJzLmFkZChcImNvbnRlbnQtdHlwZVwiKTtcbiAgICAvLyBTMyByZXF1aXJlcyBTU0UgaGVhZGVycyB0byBiZSBzaWduZWQgaW4gaGVhZGVycyBpbnN0ZWFkIG9mIHF1ZXJ5XG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1zZGstanMtdjMvaXNzdWVzLzE1NzZcbiAgICBPYmplY3Qua2V5cyhyZXF1ZXN0VG9TaWduLmhlYWRlcnMpXG4gICAgICAubWFwKChoZWFkZXIpID0+IGhlYWRlci50b0xvd2VyQ2FzZSgpKVxuICAgICAgLmZpbHRlcigoaGVhZGVyKSA9PiBoZWFkZXIuc3RhcnRzV2l0aChcIngtYW16LXNlcnZlci1zaWRlLWVuY3J5cHRpb25cIikpXG4gICAgICAuZm9yRWFjaCgoaGVhZGVyKSA9PiB7XG4gICAgICAgIHVuaG9pc3RhYmxlSGVhZGVycy5hZGQoaGVhZGVyKTtcbiAgICAgIH0pO1xuICAgIHJlcXVlc3RUb1NpZ24uaGVhZGVyc1tTSEEyNTZfSEVBREVSXSA9IFVOU0lHTkVEX1BBWUxPQUQ7XG4gICAgaWYgKCFyZXF1ZXN0VG9TaWduLmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgICByZXF1ZXN0VG9TaWduLmhlYWRlcnMuaG9zdCA9IHJlcXVlc3RUb1NpZ24uaG9zdG5hbWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNpZ25lci5wcmVzaWduKHJlcXVlc3RUb1NpZ24sIHtcbiAgICAgIGV4cGlyZXNJbjogOTAwLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICB1bmhvaXN0YWJsZUhlYWRlcnMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","/*\n * Copyright 2017-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { HttpResponse } from '@aws-sdk/protocol-http';\nimport { buildQueryString } from '@aws-sdk/querystring-builder';\nimport axios from 'axios';\nimport { ConsoleLogger as Logger, Platform } from '@aws-amplify/core';\nimport { AWSS3ProviderUploadErrorStrings } from '../common/StorageErrorStrings';\nvar logger = new Logger('axios-http-handler');\nexport var SEND_UPLOAD_PROGRESS_EVENT = 'sendUploadProgress';\nexport var SEND_DOWNLOAD_PROGRESS_EVENT = 'sendDownloadProgress';\nfunction isBlob(body) {\n return typeof Blob !== 'undefined' && body instanceof Blob;\n}\nfunction hasErrorResponse(error) {\n return (typeof error !== 'undefined' &&\n Object.prototype.hasOwnProperty.call(error, 'response') &&\n typeof error.response !== 'undefined' &&\n Object.prototype.hasOwnProperty.call(error.response, 'status') &&\n typeof error.response.status === 'number');\n}\nvar normalizeHeaders = function (headers, normalizedName) {\n var e_1, _a;\n try {\n for (var _b = __values(Object.entries(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), k = _d[0], v = _d[1];\n if (k !== normalizedName &&\n k.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = v;\n delete headers[k];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n};\nexport var reactNativeRequestTransformer = [\n function (data, headers) {\n if (isBlob(data)) {\n normalizeHeaders(headers, 'Content-Type');\n normalizeHeaders(headers, 'Accept');\n return data;\n }\n // Axios' default transformRequest is an array\n return axios.defaults.transformRequest[0].call(null, data, headers);\n },\n];\nvar AxiosHttpHandler = /** @class */ (function () {\n function AxiosHttpHandler(httpOptions, emitter, cancelTokenSource) {\n if (httpOptions === void 0) { httpOptions = {}; }\n this.httpOptions = httpOptions;\n this.emitter = emitter;\n this.cancelTokenSource = cancelTokenSource;\n }\n AxiosHttpHandler.prototype.destroy = function () {\n // Do nothing. TLS and HTTP/2 connection pooling is handled by the\n // browser.\n };\n AxiosHttpHandler.prototype.handle = function (request, options) {\n var requestTimeoutInMs = this.httpOptions.requestTimeout;\n // prioritize the call specific event emitter, this is useful for multipart upload as each individual parts has\n // their own event emitter, without having to create s3client for every individual calls.\n var emitter = options.emitter || this.emitter;\n var path = request.path;\n if (request.query) {\n var queryString = buildQueryString(request.query);\n if (queryString) {\n path += \"?\" + queryString;\n }\n }\n var port = request.port;\n var url = request.protocol + \"//\" + request.hostname + (port ? \":\" + port : '') + path;\n var axiosRequest = {};\n axiosRequest.url = url;\n axiosRequest.method = request.method;\n axiosRequest.headers = request.headers;\n // The host header is automatically added by the browser and adding it explicitly in the\n // axios request throws an error https://github.com/aws-amplify/amplify-js/issues/5376\n // This is because the host header is a forbidden header for the http client to set\n // see https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name and\n // https://fetch.spec.whatwg.org/#forbidden-header-name\n // The reason we are removing this header here instead of in the aws-sdk's client\n // middleware is that the host header is required to be in the request signature and if\n // we remove it from the middlewares, then the request fails because the header is added\n // by the browser but is absent from the signature.\n delete axiosRequest.headers['host'];\n if (request.body) {\n axiosRequest.data = request.body;\n }\n else {\n // Fix for https://github.com/aws-amplify/amplify-js/issues/5432\n // If the POST request body is empty but content-type header is set, axios is forcibly removing it\n // See https://github.com/axios/axios/issues/1535 and refusing to fix it https://github.com/axios/axios/issues/755\n // This change is a workaround to set the data as null (instead of undefined) to prevent axios from\n // removing the content-type header. Link for the source code\n // https://github.com/axios/axios/blob/dc4bc49673943e35280e5df831f5c3d0347a9393/lib/adapters/xhr.js#L121-L123\n if (axiosRequest.headers[Object.keys(axiosRequest.headers).find(function (key) { return key.toLowerCase() === 'content-type'; })]) {\n axiosRequest.data = null;\n }\n }\n if (emitter) {\n // TODO: Unify linting rules across JS repo\n axiosRequest.onUploadProgress = function (event) {\n emitter.emit(SEND_UPLOAD_PROGRESS_EVENT, event);\n logger.debug(event);\n };\n // TODO: Unify linting rules across JS repo\n axiosRequest.onDownloadProgress = function (event) {\n emitter.emit(SEND_DOWNLOAD_PROGRESS_EVENT, event);\n logger.debug(event);\n };\n }\n // If a cancel token source is passed down from the provider, allows cancellation of in-flight requests\n if (this.cancelTokenSource) {\n axiosRequest.cancelToken = this.cancelTokenSource.token;\n }\n if (options.cancelTokenSource) {\n axiosRequest.cancelToken = options.cancelTokenSource.token;\n }\n // From gamma release, aws-sdk now expects all response type to be of blob or streams\n axiosRequest.responseType = 'blob';\n // In Axios, Blobs are identified by calling Object.prototype.toString on the object. However, on React Native,\n // calling Object.prototype.toString on a Blob returns '[object Object]' instead of '[object Blob]', which causes\n // Axios to treat Blobs as generic Javascript objects. Therefore we need a to use a custom request transformer\n // to correctly handle Blob in React Native.\n if (Platform.isReactNative) {\n axiosRequest.transformRequest = reactNativeRequestTransformer;\n }\n var raceOfPromises = [\n axios\n .request(axiosRequest)\n .then(function (response) {\n return {\n response: new HttpResponse({\n headers: response.headers,\n statusCode: response.status,\n body: response.data,\n }),\n };\n })\n .catch(function (error) {\n var _a, _b;\n // Error\n if (error.message !==\n AWSS3ProviderUploadErrorStrings.UPLOAD_PAUSED_MESSAGE) {\n logger.error(error.message);\n }\n // for axios' cancel error, we should re-throw it back so it's not considered an s3client error\n // if we return empty, or an abitrary error HttpResponse, it will be hard to debug down the line.\n //\n // for errors that does not have a 'response' object, it's very likely that it is an unexpected error for\n // example a disconnect. Without it we cannot meaningfully reconstruct a HttpResponse, and the AWS SDK might\n // consider the request successful by mistake. In this case we should also re-throw the error.\n if (axios.isCancel(error) || !hasErrorResponse(error)) {\n throw error;\n }\n // otherwise, we should re-construct an HttpResponse from the error, so that it can be passed down to other\n // aws sdk middleware (e.g retry, clock skew correction, error message serializing)\n return {\n response: new HttpResponse({\n statusCode: error.response.status,\n body: (_a = error.response) === null || _a === void 0 ? void 0 : _a.data,\n headers: (_b = error.response) === null || _b === void 0 ? void 0 : _b.headers,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n return Promise.race(raceOfPromises);\n };\n return AxiosHttpHandler;\n}());\nexport { AxiosHttpHandler };\nfunction requestTimeout(timeoutInMs) {\n if (timeoutInMs === void 0) { timeoutInMs = 0; }\n return new Promise(function (resolve, reject) {\n if (timeoutInMs) {\n setTimeout(function () {\n var timeoutError = new Error(\"Request did not complete within \" + timeoutInMs + \" ms\");\n timeoutError.name = 'TimeoutError';\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n//# sourceMappingURL=axios-http-handler.js.map","export var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&\n typeof Symbol.for === 'function'\n ? Symbol.for('amplify_default')\n : '@@amplify_default');\nexport var SET_CONTENT_LENGTH_HEADER = 'contentLengthMiddleware';\nexport var localTestingStorageEndpoint = 'http://localhost:20005';\nexport var UPLOADS_STORAGE_KEY = '__uploadInProgress';\n//# sourceMappingURL=StorageConstants.js.map","import { Hub } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL } from './StorageConstants';\nexport var byteLength = function (x) {\n if (typeof x === 'string') {\n return x.length;\n }\n else if (isArrayBuffer(x)) {\n return x.byteLength;\n }\n else if (isBlob(x)) {\n return x.size;\n }\n else {\n throw new Error('Cannot determine byte length of ' + x);\n }\n};\nexport var dispatchStorageEvent = function (track, event, attrs, metrics, message) {\n if (track) {\n var data = { attrs: attrs };\n if (metrics) {\n data['metrics'] = metrics;\n }\n Hub.dispatch('storage', {\n event: event,\n data: data,\n message: message,\n }, 'Storage', AMPLIFY_SYMBOL);\n }\n};\nexport var isFile = function (x) {\n return typeof x !== 'undefined' && x instanceof File;\n};\nexport var isBlob = function (x) {\n return typeof x !== 'undefined' && x instanceof Blob;\n};\nvar isArrayBuffer = function (x) {\n return typeof x !== 'undefined' && x instanceof ArrayBuffer;\n};\n//# sourceMappingURL=StorageUtils.js.map","import { toHex } from \"@aws-sdk/util-hex-encoding\";\n/**\n * A lossless representation of a signed, 64-bit integer. Instances of this\n * class may be used in arithmetic expressions as if they were numeric\n * primitives, but the binary representation will be preserved unchanged as the\n * `bytes` property of the object. The bytes should be encoded as big-endian,\n * two's complement integers.\n */\nvar Int64 = /** @class */ (function () {\n function Int64(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n Int64.fromNumber = function (number) {\n if (number > 9223372036854775807 || number < -9223372036854775808) {\n throw new Error(number + \" is too large (or, if negative, too small) to represent as an Int64\");\n }\n var bytes = new Uint8Array(8);\n for (var i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n };\n /**\n * Called implicitly by infix arithmetic operators.\n */\n Int64.prototype.valueOf = function () {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n };\n Int64.prototype.toString = function () {\n return String(this.valueOf());\n };\n return Int64;\n}());\nexport { Int64 };\nfunction negate(bytes) {\n for (var i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (var i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50NjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvSW50NjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSW5EOzs7Ozs7R0FNRztBQUNIO0lBQ0UsZUFBcUIsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNwQyxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFTSxnQkFBVSxHQUFqQixVQUFrQixNQUFjO1FBQzlCLElBQUksTUFBTSxHQUFHLG1CQUFtQixJQUFJLE1BQU0sR0FBRyxDQUFDLG1CQUFtQixFQUFFO1lBQ2pFLE1BQU0sSUFBSSxLQUFLLENBQUksTUFBTSx3RUFBcUUsQ0FBQyxDQUFDO1NBQ2pHO1FBRUQsSUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLFNBQVMsSUFBSSxHQUFHLEVBQUU7WUFDeEcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztTQUN0QjtRQUVELElBQUksTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNkLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBRUQsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBTyxHQUFQO1FBQ0UsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQVUsQ0FBQztRQUN2QyxJQUFJLFFBQVEsRUFBRTtZQUNaLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNmO1FBRUQsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELHdCQUFRLEdBQVI7UUFDRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0gsWUFBQztBQUFELENBQUMsQUF4Q0QsSUF3Q0M7O0FBRUQsU0FBUyxNQUFNLENBQUMsS0FBaUI7SUFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0tBQ2xCO0lBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzNCLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1gsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUFFLE1BQU07S0FDM0I7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50NjQgYXMgSUludDY0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEludDY0IGV4dGVuZHMgSUludDY0IHt9XG5cbi8qKlxuICogQSBsb3NzbGVzcyByZXByZXNlbnRhdGlvbiBvZiBhIHNpZ25lZCwgNjQtYml0IGludGVnZXIuIEluc3RhbmNlcyBvZiB0aGlzXG4gKiBjbGFzcyBtYXkgYmUgdXNlZCBpbiBhcml0aG1ldGljIGV4cHJlc3Npb25zIGFzIGlmIHRoZXkgd2VyZSBudW1lcmljXG4gKiBwcmltaXRpdmVzLCBidXQgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiB3aWxsIGJlIHByZXNlcnZlZCB1bmNoYW5nZWQgYXMgdGhlXG4gKiBgYnl0ZXNgIHByb3BlcnR5IG9mIHRoZSBvYmplY3QuIFRoZSBieXRlcyBzaG91bGQgYmUgZW5jb2RlZCBhcyBiaWctZW5kaWFuLFxuICogdHdvJ3MgY29tcGxlbWVudCBpbnRlZ2Vycy5cbiAqL1xuZXhwb3J0IGNsYXNzIEludDY0IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgYnl0ZXM6IFVpbnQ4QXJyYXkpIHtcbiAgICBpZiAoYnl0ZXMuYnl0ZUxlbmd0aCAhPT0gOCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW50NjQgYnVmZmVycyBtdXN0IGJlIGV4YWN0bHkgOCBieXRlc1wiKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZnJvbU51bWJlcihudW1iZXI6IG51bWJlcik6IEludDY0IHtcbiAgICBpZiAobnVtYmVyID4gOTIyMzM3MjAzNjg1NDc3NTgwNyB8fCBudW1iZXIgPCAtOTIyMzM3MjAzNjg1NDc3NTgwOCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke251bWJlcn0gaXMgdG9vIGxhcmdlIChvciwgaWYgbmVnYXRpdmUsIHRvbyBzbWFsbCkgdG8gcmVwcmVzZW50IGFzIGFuIEludDY0YCk7XG4gICAgfVxuXG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheSg4KTtcbiAgICBmb3IgKGxldCBpID0gNywgcmVtYWluaW5nID0gTWF0aC5hYnMoTWF0aC5yb3VuZChudW1iZXIpKTsgaSA+IC0xICYmIHJlbWFpbmluZyA+IDA7IGktLSwgcmVtYWluaW5nIC89IDI1Nikge1xuICAgICAgYnl0ZXNbaV0gPSByZW1haW5pbmc7XG4gICAgfVxuXG4gICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgIG5lZ2F0ZShieXRlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbnQ2NChieXRlcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGltcGxpY2l0bHkgYnkgaW5maXggYXJpdGhtZXRpYyBvcGVyYXRvcnMuXG4gICAqL1xuICB2YWx1ZU9mKCk6IG51bWJlciB7XG4gICAgY29uc3QgYnl0ZXMgPSB0aGlzLmJ5dGVzLnNsaWNlKDApO1xuICAgIGNvbnN0IG5lZ2F0aXZlID0gYnl0ZXNbMF0gJiAwYjEwMDAwMDAwO1xuICAgIGlmIChuZWdhdGl2ZSkge1xuICAgICAgbmVnYXRlKGJ5dGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VJbnQodG9IZXgoYnl0ZXMpLCAxNikgKiAobmVnYXRpdmUgPyAtMSA6IDEpO1xuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFN0cmluZyh0aGlzLnZhbHVlT2YoKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbmVnYXRlKGJ5dGVzOiBVaW50OEFycmF5KTogdm9pZCB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgODsgaSsrKSB7XG4gICAgYnl0ZXNbaV0gXj0gMHhmZjtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSA3OyBpID4gLTE7IGktLSkge1xuICAgIGJ5dGVzW2ldKys7XG4gICAgaWYgKGJ5dGVzW2ldICE9PSAwKSBicmVhaztcbiAgfVxufVxuIl19","import { __values } from \"tslib\";\nimport { fromHex, toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\n/**\n * @internal\n */\nvar HeaderMarshaller = /** @class */ (function () {\n function HeaderMarshaller(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n HeaderMarshaller.prototype.format = function (headers) {\n var e_1, _a, e_2, _b;\n var chunks = [];\n try {\n for (var _c = __values(Object.keys(headers)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerName = _d.value;\n var bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var out = new Uint8Array(chunks.reduce(function (carry, bytes) { return carry + bytes.byteLength; }, 0));\n var position = 0;\n try {\n for (var chunks_1 = __values(chunks), chunks_1_1 = chunks_1.next(); !chunks_1_1.done; chunks_1_1 = chunks_1.next()) {\n var chunk = chunks_1_1.value;\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (chunks_1_1 && !chunks_1_1.done && (_b = chunks_1.return)) _b.call(chunks_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return out;\n };\n HeaderMarshaller.prototype.formatHeaderValue = function (header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 /* boolTrue */ : 1 /* boolFalse */]);\n case \"byte\":\n return Uint8Array.from([2 /* byte */, header.value]);\n case \"short\":\n var shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3 /* short */);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n var intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4 /* integer */);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n var longBytes = new Uint8Array(9);\n longBytes[0] = 5 /* long */;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n var binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6 /* byteArray */);\n binView.setUint16(1, header.value.byteLength, false);\n var binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n var utf8Bytes = this.fromUtf8(header.value);\n var strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7 /* string */);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n var strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n var tsBytes = new Uint8Array(9);\n tsBytes[0] = 8 /* timestamp */;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(\"Invalid UUID received: \" + header.value);\n }\n var uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9 /* uuid */;\n uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n };\n HeaderMarshaller.prototype.parse = function (headers) {\n var out = {};\n var position = 0;\n while (position < headers.byteLength) {\n var nameLength = headers.getUint8(position++);\n var name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0 /* boolTrue */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true,\n };\n break;\n case 1 /* boolFalse */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false,\n };\n break;\n case 2 /* byte */:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++),\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false),\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false),\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n var binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n var stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n };\n position += 8;\n break;\n case 9 /* uuid */:\n var uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: toHex(uuidBytes.subarray(0, 4)) + \"-\" + toHex(uuidBytes.subarray(4, 6)) + \"-\" + toHex(uuidBytes.subarray(6, 8)) + \"-\" + toHex(uuidBytes.subarray(8, 10)) + \"-\" + toHex(uuidBytes.subarray(10)),\n };\n break;\n default:\n throw new Error(\"Unrecognized header type tag\");\n }\n }\n return out;\n };\n return HeaderMarshaller;\n}());\nexport { HeaderMarshaller };\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nvar BOOLEAN_TAG = \"boolean\";\nvar BYTE_TAG = \"byte\";\nvar SHORT_TAG = \"short\";\nvar INT_TAG = \"integer\";\nvar LONG_TAG = \"long\";\nvar BINARY_TAG = \"binary\";\nvar STRING_TAG = \"string\";\nvar TIMESTAMP_TAG = \"timestamp\";\nvar UUID_TAG = \"uuid\";\nvar UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVhZGVyTWFyc2hhbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9IZWFkZXJNYXJzaGFsbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEM7O0dBRUc7QUFDSDtJQUNFLDBCQUE2QixNQUFlLEVBQW1CLFFBQWlCO1FBQW5ELFdBQU0sR0FBTixNQUFNLENBQVM7UUFBbUIsYUFBUSxHQUFSLFFBQVEsQ0FBUztJQUFHLENBQUM7SUFFcEYsaUNBQU0sR0FBTixVQUFPLE9BQXVCOztRQUM1QixJQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDOztZQUVyQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO2dCQUExQyxJQUFNLFVBQVUsV0FBQTtnQkFDbkIsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RHOzs7Ozs7Ozs7UUFFRCxJQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQUMsS0FBSyxFQUFFLEtBQUssSUFBSyxPQUFBLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxFQUF4QixDQUF3QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekYsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDOztZQUNqQixLQUFvQixJQUFB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QUMxQixpRUFBWSxDQUFBO0lBQ1osbUVBQVMsQ0FBQTtJQUNULHlEQUFJLENBQUE7SUFDSiwyREFBSyxDQUFBO0lBQ0wsK0RBQU8sQ0FBQTtJQUNQLHlEQUFJLENBQUE7SUFDSixtRUFBUyxDQUFBO0lBQ1QsNkRBQU0sQ0FBQTtJQUNOLG1FQUFTLENBQUE7SUFDVCx5REFBSSxDQUFBO0FBQ04sQ0FBQyxFQVhVLGlCQUFpQixLQUFqQixpQkFBaUIsUUFXM0I7QUFFRCxJQUFNLFdBQVcsR0FBRyxTQUFTLENBQUM7QUFDOUIsSUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQ3hCLElBQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQztBQUMxQixJQUFNLE9BQU8sR0FBRyxTQUFTLENBQUM7QUFDMUIsSUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBQ3hCLElBQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQztBQUM1QixJQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7QUFDNUIsSUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFDO0FBQ2xDLElBQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztBQUV4QixJQUFNLFlBQVksR0FBRyxnRUFBZ0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY29kZXIsIEVuY29kZXIsIE1lc3NhZ2VIZWFkZXJzLCBNZXNzYWdlSGVhZGVyVmFsdWUgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGZyb21IZXgsIHRvSGV4IH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtaGV4LWVuY29kaW5nXCI7XG5cbmltcG9ydCB7IEludDY0IH0gZnJvbSBcIi4vSW50NjRcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIEhlYWRlck1hcnNoYWxsZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRvVXRmODogRW5jb2RlciwgcHJpdmF0ZSByZWFkb25seSBmcm9tVXRmODogRGVjb2Rlcikge31cblxuICBmb3JtYXQoaGVhZGVyczogTWVzc2FnZUhlYWRlcnMpOiBVaW50OEFycmF5IHtcbiAgICBjb25zdCBjaHVua3M6IEFycmF5PFVpbnQ4QXJyYXk+ID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICAgIGNvbnN0IGJ5dGVzID0gdGhpcy5mcm9tVXRmOChoZWFkZXJOYW1lKTtcbiAgICAgIGNodW5rcy5wdXNoKFVpbnQ4QXJyYXkuZnJvbShbYnl0ZXMuYnl0ZUxlbmd0aF0pLCBieXRlcywgdGhpcy5mb3JtYXRIZWFkZXJWYWx1ZShoZWFkZXJzW2hlYWRlck5hbWVdKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0ID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmtzLnJlZHVjZSgoY2FycnksIGJ5dGVzKSA9PiBjYXJyeSArIGJ5dGVzLmJ5dGVMZW5ndGgsIDApKTtcbiAgICBsZXQgcG9zaXRpb24gPSAwO1xuICAgIGZvciAoY29uc3QgY2h1bmsgb2YgY2h1bmtzKSB7XG4gICAgICBvdXQuc2V0KGNodW5rLCBwb3NpdGlvbik7XG4gICAgICBwb3NpdGlvbiArPSBjaHVuay5ieXRlTGVuZ3RoO1xuICAgIH1cblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEhlYWRlclZhbHVlKGhlYWRlcjogTWVzc2FnZUhlYWRlclZhbHVlKTogVWludDhBcnJheSB7XG4gICAgc3dpdGNoIChoZWFkZXIudHlwZSkge1xuICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShbaGVhZGVyLnZhbHVlID8gSEVBREVSX1ZBTFVFX1RZUEUuYm9vbFRydWUgOiBIRUFERVJfVkFMVUVfVFlQRS5ib29sRmFsc2VdKTtcbiAgICAgIGNhc2UgXCJieXRlXCI6XG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LmZyb20oW0hFQURFUl9WQUxVRV9UWVBFLmJ5dGUsIGhlYWRlci52YWx1ZV0pO1xuICAgICAgY2FzZSBcInNob3J0XCI6XG4gICAgICAgIGNvbnN0IHNob3J0VmlldyA9IG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoMykpO1xuICAgICAgICBzaG9ydFZpZXcuc2V0VWludDgoMCwgSEVBREVSX1ZBTFVFX1RZUEUuc2hvcnQpO1xuICAgICAgICBzaG9ydFZpZXcuc2V0SW50MTYoMSwgaGVhZGVyLnZhbHVlLCBmYWxzZSk7XG4gICAgICAgIHJldHVybiBuZXcgVWludDhBcnJheShzaG9ydFZpZXcuYnVmZmVyKTtcbiAgICAgIGNhc2UgXCJpbnRlZ2VyXCI6XG4gICAgICAgIGNvbnN0IGludFZpZXcgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDUpKTtcbiAgICAgICAgaW50Vmlldy5zZXRVaW50OCgwLCBIRUFERVJfVkFMVUVfVFlQRS5pbnRlZ2VyKTtcbiAgICAgICAgaW50Vmlldy5zZXRJbnQzMigxLCBoZWFkZXIudmFsdWUsIGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGludFZpZXcuYnVmZmVyKTtcbiAgICAgIGNhc2UgXCJsb25nXCI6XG4gICAgICAgIGNvbnN0IGxvbmdCeXRlcyA9IG5ldyBVaW50OEFycmF5KDkpO1xuICAgICAgICBsb25nQnl0ZXNbMF0gPSBIRUFERVJfVkFMVUVfVFlQRS5sb25nO1xuICAgICAgICBsb25nQnl0ZXMuc2V0KGhlYWRlci52YWx1ZS5ieXRlcywgMSk7XG4gICAgICAgIHJldHVybiBsb25nQnl0ZXM7XG4gICAgICBjYXNlIFwiYmluYXJ5XCI6XG4gICAgICAgIGNvbnN0IGJpblZpZXcgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDMgKyBoZWFkZXIudmFsdWUuYnl0ZUxlbmd0aCkpO1xuICAgICAgICBiaW5WaWV3LnNldFVpbnQ4KDAsIEhFQURFUl9WQUxVRV9UWVBFLmJ5dGVBcnJheSk7XG4gICAgICAgIGJpblZpZXcuc2V0VWludDE2KDEsIGhlYWRlci52YWx1ZS5ieXRlTGVuZ3RoLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IGJpbkJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYmluVmlldy5idWZmZXIpO1xuICAgICAgICBiaW5CeXRlcy5zZXQoaGVhZGVyLnZhbHVlLCAzKTtcbiAgICAgICAgcmV0dXJuIGJpbkJ5dGVzO1xuICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICBjb25zdCB1dGY4Qnl0ZXMgPSB0aGlzLmZyb21VdGY4KGhlYWRlci52YWx1ZSk7XG4gICAgICAgIGNvbnN0IHN0clZpZXcgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDMgKyB1dGY4Qnl0ZXMuYnl0ZUxlbmd0aCkpO1xuICAgICAgICBzdHJWaWV3LnNldFVpbnQ4KDAsIEhFQURFUl9WQUxVRV9UWVBFLnN0cmluZyk7XG4gICAgICAgIHN0clZpZXcuc2V0VWludDE2KDEsIHV0ZjhCeXRlcy5ieXRlTGVuZ3RoLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IHN0ckJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoc3RyVmlldy5idWZmZXIpO1xuICAgICAgICBzdHJCeXRlcy5zZXQodXRmOEJ5dGVzLCAzKTtcbiAgICAgICAgcmV0dXJuIHN0ckJ5dGVzO1xuICAgICAgY2FzZSBcInRpbWVzdGFtcFwiOlxuICAgICAgICBjb25zdCB0c0J5dGVzID0gbmV3IFVpbnQ4QXJyYXkoOSk7XG4gICAgICAgIHRzQnl0ZXNbMF0gPSBIRUFERVJfVkFMVUVfVFlQRS50aW1lc3RhbXA7XG4gICAgICAgIHRzQnl0ZXMuc2V0KEludDY0LmZyb21OdW1iZXIoaGVhZGVyLnZhbHVlLnZhbHVlT2YoKSkuYnl0ZXMsIDEpO1xuICAgICAgICByZXR1cm4gdHNCeXRlcztcbiAgICAgIGNhc2UgXCJ1dWlkXCI6XG4gICAgICAgIGlmICghVVVJRF9QQVRURVJOLnRlc3QoaGVhZGVyLnZhbHVlKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBVVUlEIHJlY2VpdmVkOiAke2hlYWRlci52YWx1ZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHV1aWRCeXRlcyA9IG5ldyBVaW50OEFycmF5KDE3KTtcbiAgICAgICAgdXVpZEJ5dGVzWzBdID0gSEVBREVSX1ZBTFVFX1RZUEUudXVpZDtcbiAgICAgICAgdXVpZEJ5dGVzLnNldChmcm9tSGV4KGhlYWRlci52YWx1ZS5yZXBsYWNlKC9cXC0vZywgXCJcIikpLCAxKTtcbiAgICAgICAgcmV0dXJuIHV1aWRCeXRlcztcbiAgICB9XG4gIH1cblxuICBwYXJzZShoZWFkZXJzOiBEYXRhVmlldyk6IE1lc3NhZ2VIZWFkZXJzIHtcbiAgICBjb25zdCBvdXQ6IE1lc3NhZ2VIZWFkZXJzID0ge307XG4gICAgbGV0IHBvc2l0aW9uID0gMDtcblxuICAgIHdoaWxlIChwb3NpdGlvbiA8IGhlYWRlcnMuYnl0ZUxlbmd0aCkge1xuICAgICAgY29uc3QgbmFtZUxlbmd0aCA9IGhlYWRlcnMuZ2V0VWludDgocG9zaXRpb24rKyk7XG4gICAgICBjb25zdCBuYW1lID0gdGhpcy50b1V0ZjgobmV3IFVpbnQ4QXJyYXkoaGVhZGVycy5idWZmZXIsIGhlYWRlcnMuYnl0ZU9mZnNldCArIHBvc2l0aW9uLCBuYW1lTGVuZ3RoKSk7XG4gICAgICBwb3NpdGlvbiArPSBuYW1lTGVuZ3RoO1xuXG4gICAgICBzd2l0Y2ggKGhlYWRlcnMuZ2V0VWludDgocG9zaXRpb24rKykpIHtcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5ib29sVHJ1ZTpcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBCT09MRUFOX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUuYm9vbEZhbHNlOlxuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IEJPT0xFQU5fVEFHLFxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUuYnl0ZTpcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBCWVRFX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiBoZWFkZXJzLmdldEludDgocG9zaXRpb24rKyksXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5zaG9ydDpcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBTSE9SVF9UQUcsXG4gICAgICAgICAgICB2YWx1ZTogaGVhZGVycy5nZXRJbnQxNihwb3NpdGlvbiwgZmFsc2UpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcG9zaXRpb24gKz0gMjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5pbnRlZ2VyOlxuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IElOVF9UQUcsXG4gICAgICAgICAgICB2YWx1ZTogaGVhZGVycy5nZXRJbnQzMihwb3NpdGlvbiwgZmFsc2UpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcG9zaXRpb24gKz0gNDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5sb25nOlxuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IExPTkdfVEFHLFxuICAgICAgICAgICAgdmFsdWU6IG5ldyBJbnQ2NChuZXcgVWludDhBcnJheShoZWFkZXJzLmJ1ZmZlciwgaGVhZGVycy5ieXRlT2Zmc2V0ICsgcG9zaXRpb24sIDgpKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IDg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUuYnl0ZUFycmF5OlxuICAgICAgICAgIGNvbnN0IGJpbmFyeUxlbmd0aCA9IGhlYWRlcnMuZ2V0VWludDE2KHBvc2l0aW9uLCBmYWxzZSk7XG4gICAgICAgICAgcG9zaXRpb24gKz0gMjtcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBCSU5BUllfVEFHLFxuICAgICAgICAgICAgdmFsdWU6IG5ldyBVaW50OEFycmF5KGhlYWRlcnMuYnVmZmVyLCBoZWFkZXJzLmJ5dGVPZmZzZXQgKyBwb3NpdGlvbiwgYmluYXJ5TGVuZ3RoKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IGJpbmFyeUxlbmd0aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS5zdHJpbmc6XG4gICAgICAgICAgY29uc3Qgc3RyaW5nTGVuZ3RoID0gaGVhZGVycy5nZXRVaW50MTYocG9zaXRpb24sIGZhbHNlKTtcbiAgICAgICAgICBwb3NpdGlvbiArPSAyO1xuICAgICAgICAgIG91dFtuYW1lXSA9IHtcbiAgICAgICAgICAgIHR5cGU6IFNUUklOR19UQUcsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy50b1V0ZjgobmV3IFVpbnQ4QXJyYXkoaGVhZGVycy5idWZmZXIsIGhlYWRlcnMuYnl0ZU9mZnNldCArIHBvc2l0aW9uLCBzdHJpbmdMZW5ndGgpKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IHN0cmluZ0xlbmd0aDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBIRUFERVJfVkFMVUVfVFlQRS50aW1lc3RhbXA6XG4gICAgICAgICAgb3V0W25hbWVdID0ge1xuICAgICAgICAgICAgdHlwZTogVElNRVNUQU1QX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiBuZXcgRGF0ZShuZXcgSW50NjQobmV3IFVpbnQ4QXJyYXkoaGVhZGVycy5idWZmZXIsIGhlYWRlcnMuYnl0ZU9mZnNldCArIHBvc2l0aW9uLCA4KSkudmFsdWVPZigpKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHBvc2l0aW9uICs9IDg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSEVBREVSX1ZBTFVFX1RZUEUudXVpZDpcbiAgICAgICAgICBjb25zdCB1dWlkQnl0ZXMgPSBuZXcgVWludDhBcnJheShoZWFkZXJzLmJ1ZmZlciwgaGVhZGVycy5ieXRlT2Zmc2V0ICsgcG9zaXRpb24sIDE2KTtcbiAgICAgICAgICBwb3NpdGlvbiArPSAxNjtcbiAgICAgICAgICBvdXRbbmFtZV0gPSB7XG4gICAgICAgICAgICB0eXBlOiBVVUlEX1RBRyxcbiAgICAgICAgICAgIHZhbHVlOiBgJHt0b0hleCh1dWlkQnl0ZXMuc3ViYXJyYXkoMCwgNCkpfS0ke3RvSGV4KHV1aWRCeXRlcy5zdWJhcnJheSg0LCA2KSl9LSR7dG9IZXgoXG4gICAgICAgICAgICAgIHV1aWRCeXRlcy5zdWJhcnJheSg2LCA4KVxuICAgICAgICAgICAgKX0tJHt0b0hleCh1dWlkQnl0ZXMuc3ViYXJyYXkoOCwgMTApKX0tJHt0b0hleCh1dWlkQnl0ZXMuc3ViYXJyYXkoMTApKX1gLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgaGVhZGVyIHR5cGUgdGFnYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dDtcbiAgfVxufVxuXG5jb25zdCBlbnVtIEhFQURFUl9WQUxVRV9UWVBFIHtcbiAgYm9vbFRydWUgPSAwLFxuICBib29sRmFsc2UsXG4gIGJ5dGUsXG4gIHNob3J0LFxuICBpbnRlZ2VyLFxuICBsb25nLFxuICBieXRlQXJyYXksXG4gIHN0cmluZyxcbiAgdGltZXN0YW1wLFxuICB1dWlkLFxufVxuXG5jb25zdCBCT09MRUFOX1RBRyA9IFwiYm9vbGVhblwiO1xuY29uc3QgQllURV9UQUcgPSBcImJ5dGVcIjtcbmNvbnN0IFNIT1JUX1RBRyA9IFwic2hvcnRcIjtcbmNvbnN0IElOVF9UQUcgPSBcImludGVnZXJcIjtcbmNvbnN0IExPTkdfVEFHID0gXCJsb25nXCI7XG5jb25zdCBCSU5BUllfVEFHID0gXCJiaW5hcnlcIjtcbmNvbnN0IFNUUklOR19UQUcgPSBcInN0cmluZ1wiO1xuY29uc3QgVElNRVNUQU1QX1RBRyA9IFwidGltZXN0YW1wXCI7XG5jb25zdCBVVUlEX1RBRyA9IFwidXVpZFwiO1xuXG5jb25zdCBVVUlEX1BBVFRFUk4gPSAvXlthLWYwLTldezh9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezR9LVthLWYwLTldezEyfSQvO1xuIl19","import { Crc32 } from \"@aws-crypto/crc32\";\n// All prelude components are unsigned, 32-bit integers\nvar PRELUDE_MEMBER_LENGTH = 4;\n// The prelude consists of two components\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\n// Checksums are always CRC32 hashes.\nvar CHECKSUM_LENGTH = 4;\n// Messages must include a full prelude, a prelude checksum, and a message checksum\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\n/**\n * @internal\n */\nexport function splitMessage(_a) {\n var byteLength = _a.byteLength, byteOffset = _a.byteOffset, buffer = _a.buffer;\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n var view = new DataView(buffer, byteOffset, byteLength);\n var messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n var headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n var expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n var expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n var checksummer = new Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n if (expectedPreludeChecksum !== checksummer.digest()) {\n throw new Error(\"The prelude checksum specified in the message (\" + expectedPreludeChecksum + \") does not match the calculated CRC32 checksum (\" + checksummer.digest() + \")\");\n }\n checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(\"The message checksum (\" + checksummer.digest() + \") did not match the expected value of \" + expectedMessageChecksum);\n }\n return {\n headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXRNZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NwbGl0TWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUMsdURBQXVEO0FBQ3ZELElBQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBQ2hDLHlDQUF5QztBQUN6QyxJQUFNLGNBQWMsR0FBRyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7QUFDakQscUNBQXFDO0FBQ3JDLElBQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUMxQixtRkFBbUY7QUFDbkYsSUFBTSxzQkFBc0IsR0FBRyxjQUFjLEdBQUcsZUFBZSxHQUFHLENBQUMsQ0FBQztBQVVwRTs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsRUFBbUQ7UUFBakQsVUFBVSxnQkFBQSxFQUFFLFVBQVUsZ0JBQUEsRUFBRSxNQUFNLFlBQUE7SUFDM0QsSUFBSSxVQUFVLEdBQUcsc0JBQXNCLEVBQUU7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0tBQzVGO0lBRUQsSUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUUxRCxJQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUUvQyxJQUFJLFVBQVUsS0FBSyxhQUFhLEVBQUU7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0tBQ25GO0lBRUQsSUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRSxJQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLElBQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRXBGLElBQU0sV0FBVyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUMzRixJQUFJLHVCQUF1QixLQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNwRCxNQUFNLElBQUksS0FBSyxDQUNiLG9EQUFrRCx1QkFBdUIsd0RBQW1ELFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBRyxDQUNwSixDQUFDO0tBQ0g7SUFFRCxXQUFXLENBQUMsTUFBTSxDQUNoQixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxHQUFHLGNBQWMsRUFBRSxVQUFVLEdBQUcsQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FDckcsQ0FBQztJQUNGLElBQUksdUJBQXVCLEtBQUssV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3BELE1BQU0sSUFBSSxLQUFLLENBQ2IsMkJBQXlCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsOENBQXlDLHVCQUF5QixDQUNoSCxDQUFDO0tBQ0g7SUFFRCxPQUFPO1FBQ0wsT0FBTyxFQUFFLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLEdBQUcsY0FBYyxHQUFHLGVBQWUsRUFBRSxZQUFZLENBQUM7UUFDMUYsSUFBSSxFQUFFLElBQUksVUFBVSxDQUNsQixNQUFNLEVBQ04sVUFBVSxHQUFHLGNBQWMsR0FBRyxlQUFlLEdBQUcsWUFBWSxFQUM1RCxhQUFhLEdBQUcsWUFBWSxHQUFHLENBQUMsY0FBYyxHQUFHLGVBQWUsR0FBRyxlQUFlLENBQUMsQ0FDcEY7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyYzMyIH0gZnJvbSBcIkBhd3MtY3J5cHRvL2NyYzMyXCI7XG5cbi8vIEFsbCBwcmVsdWRlIGNvbXBvbmVudHMgYXJlIHVuc2lnbmVkLCAzMi1iaXQgaW50ZWdlcnNcbmNvbnN0IFBSRUxVREVfTUVNQkVSX0xFTkdUSCA9IDQ7XG4vLyBUaGUgcHJlbHVkZSBjb25zaXN0cyBvZiB0d28gY29tcG9uZW50c1xuY29uc3QgUFJFTFVERV9MRU5HVEggPSBQUkVMVURFX01FTUJFUl9MRU5HVEggKiAyO1xuLy8gQ2hlY2tzdW1zIGFyZSBhbHdheXMgQ1JDMzIgaGFzaGVzLlxuY29uc3QgQ0hFQ0tTVU1fTEVOR1RIID0gNDtcbi8vIE1lc3NhZ2VzIG11c3QgaW5jbHVkZSBhIGZ1bGwgcHJlbHVkZSwgYSBwcmVsdWRlIGNoZWNrc3VtLCBhbmQgYSBtZXNzYWdlIGNoZWNrc3VtXG5jb25zdCBNSU5JTVVNX01FU1NBR0VfTEVOR1RIID0gUFJFTFVERV9MRU5HVEggKyBDSEVDS1NVTV9MRU5HVEggKiAyO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VQYXJ0cyB7XG4gIGhlYWRlcnM6IERhdGFWaWV3O1xuICBib2R5OiBVaW50OEFycmF5O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRNZXNzYWdlKHsgYnl0ZUxlbmd0aCwgYnl0ZU9mZnNldCwgYnVmZmVyIH06IEFycmF5QnVmZmVyVmlldyk6IE1lc3NhZ2VQYXJ0cyB7XG4gIGlmIChieXRlTGVuZ3RoIDwgTUlOSU1VTV9NRVNTQUdFX0xFTkdUSCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlByb3ZpZGVkIG1lc3NhZ2UgdG9vIHNob3J0IHRvIGFjY29tbW9kYXRlIGV2ZW50IHN0cmVhbSBtZXNzYWdlIG92ZXJoZWFkXCIpO1xuICB9XG5cbiAgY29uc3QgdmlldyA9IG5ldyBEYXRhVmlldyhidWZmZXIsIGJ5dGVPZmZzZXQsIGJ5dGVMZW5ndGgpO1xuXG4gIGNvbnN0IG1lc3NhZ2VMZW5ndGggPSB2aWV3LmdldFVpbnQzMigwLCBmYWxzZSk7XG5cbiAgaWYgKGJ5dGVMZW5ndGggIT09IG1lc3NhZ2VMZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZXBvcnRlZCBtZXNzYWdlIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCByZWNlaXZlZCBtZXNzYWdlIGxlbmd0aFwiKTtcbiAgfVxuXG4gIGNvbnN0IGhlYWRlckxlbmd0aCA9IHZpZXcuZ2V0VWludDMyKFBSRUxVREVfTUVNQkVSX0xFTkdUSCwgZmFsc2UpO1xuICBjb25zdCBleHBlY3RlZFByZWx1ZGVDaGVja3N1bSA9IHZpZXcuZ2V0VWludDMyKFBSRUxVREVfTEVOR1RILCBmYWxzZSk7XG4gIGNvbnN0IGV4cGVjdGVkTWVzc2FnZUNoZWNrc3VtID0gdmlldy5nZXRVaW50MzIoYnl0ZUxlbmd0aCAtIENIRUNLU1VNX0xFTkdUSCwgZmFsc2UpO1xuXG4gIGNvbnN0IGNoZWNrc3VtbWVyID0gbmV3IENyYzMyKCkudXBkYXRlKG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgYnl0ZU9mZnNldCwgUFJFTFVERV9MRU5HVEgpKTtcbiAgaWYgKGV4cGVjdGVkUHJlbHVkZUNoZWNrc3VtICE9PSBjaGVja3N1bW1lci5kaWdlc3QoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUaGUgcHJlbHVkZSBjaGVja3N1bSBzcGVjaWZpZWQgaW4gdGhlIG1lc3NhZ2UgKCR7ZXhwZWN0ZWRQcmVsdWRlQ2hlY2tzdW19KSBkb2VzIG5vdCBtYXRjaCB0aGUgY2FsY3VsYXRlZCBDUkMzMiBjaGVja3N1bSAoJHtjaGVja3N1bW1lci5kaWdlc3QoKX0pYFxuICAgICk7XG4gIH1cblxuICBjaGVja3N1bW1lci51cGRhdGUoXG4gICAgbmV3IFVpbnQ4QXJyYXkoYnVmZmVyLCBieXRlT2Zmc2V0ICsgUFJFTFVERV9MRU5HVEgsIGJ5dGVMZW5ndGggLSAoUFJFTFVERV9MRU5HVEggKyBDSEVDS1NVTV9MRU5HVEgpKVxuICApO1xuICBpZiAoZXhwZWN0ZWRNZXNzYWdlQ2hlY2tzdW0gIT09IGNoZWNrc3VtbWVyLmRpZ2VzdCgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRoZSBtZXNzYWdlIGNoZWNrc3VtICgke2NoZWNrc3VtbWVyLmRpZ2VzdCgpfSkgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgJHtleHBlY3RlZE1lc3NhZ2VDaGVja3N1bX1gXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaGVhZGVyczogbmV3IERhdGFWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCArIFBSRUxVREVfTEVOR1RIICsgQ0hFQ0tTVU1fTEVOR1RILCBoZWFkZXJMZW5ndGgpLFxuICAgIGJvZHk6IG5ldyBVaW50OEFycmF5KFxuICAgICAgYnVmZmVyLFxuICAgICAgYnl0ZU9mZnNldCArIFBSRUxVREVfTEVOR1RIICsgQ0hFQ0tTVU1fTEVOR1RIICsgaGVhZGVyTGVuZ3RoLFxuICAgICAgbWVzc2FnZUxlbmd0aCAtIGhlYWRlckxlbmd0aCAtIChQUkVMVURFX0xFTkdUSCArIENIRUNLU1VNX0xFTkdUSCArIENIRUNLU1VNX0xFTkdUSClcbiAgICApLFxuICB9O1xufVxuIl19","import { Crc32 } from \"@aws-crypto/crc32\";\nimport { HeaderMarshaller } from \"./HeaderMarshaller\";\nimport { splitMessage } from \"./splitMessage\";\n/**\n * A marshaller that can convert binary-packed event stream messages into\n * JavaScript objects and back again into their binary format.\n */\nvar EventStreamMarshaller = /** @class */ (function () {\n function EventStreamMarshaller(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n }\n /**\n * Convert a structured JavaScript object with tagged headers into a binary\n * event stream message.\n */\n EventStreamMarshaller.prototype.marshall = function (_a) {\n var rawHeaders = _a.headers, body = _a.body;\n var headers = this.headerMarshaller.format(rawHeaders);\n var length = headers.byteLength + body.byteLength + 16;\n var out = new Uint8Array(length);\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n var checksum = new Crc32();\n // Format message\n view.setUint32(0, length, false);\n view.setUint32(4, headers.byteLength, false);\n view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n out.set(headers, 12);\n out.set(body, headers.byteLength + 12);\n // Write trailing message checksum\n view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n };\n /**\n * Convert a binary event stream message into a JavaScript object with an\n * opaque, binary body and tagged, parsed headers.\n */\n EventStreamMarshaller.prototype.unmarshall = function (message) {\n var _a = splitMessage(message), headers = _a.headers, body = _a.body;\n return { headers: this.headerMarshaller.parse(headers), body: body };\n };\n /**\n * Convert a structured JavaScript object with tagged headers into a binary\n * event stream message header.\n */\n EventStreamMarshaller.prototype.formatHeaders = function (rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n };\n return EventStreamMarshaller;\n}());\nexport { EventStreamMarshaller };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1NYXJzaGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V2ZW50U3RyZWFtTWFyc2hhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDOzs7R0FHRztBQUNIO0lBR0UsK0JBQVksTUFBZSxFQUFFLFFBQWlCO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsd0NBQVEsR0FBUixVQUFTLEVBQXNDO1lBQTNCLFVBQVUsYUFBQSxFQUFFLElBQUksVUFBQTtRQUNsQyxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFekQsSUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RSxJQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBRTdCLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUV2QyxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekYsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsMENBQVUsR0FBVixVQUFXLE9BQXdCO1FBQzNCLElBQUEsS0FBb0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUF2QyxPQUFPLGFBQUEsRUFBRSxJQUFJLFVBQTBCLENBQUM7UUFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7T0FHRztJQUNILDZDQUFhLEdBQWIsVUFBYyxVQUEwQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNILDRCQUFDO0FBQUQsQ0FBQyxBQWpERCxJQWlEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyYzMyIH0gZnJvbSBcIkBhd3MtY3J5cHRvL2NyYzMyXCI7XG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlSGVhZGVycyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgRGVjb2RlciwgRW5jb2RlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBIZWFkZXJNYXJzaGFsbGVyIH0gZnJvbSBcIi4vSGVhZGVyTWFyc2hhbGxlclwiO1xuaW1wb3J0IHsgc3BsaXRNZXNzYWdlIH0gZnJvbSBcIi4vc3BsaXRNZXNzYWdlXCI7XG5cbi8qKlxuICogQSBtYXJzaGFsbGVyIHRoYXQgY2FuIGNvbnZlcnQgYmluYXJ5LXBhY2tlZCBldmVudCBzdHJlYW0gbWVzc2FnZXMgaW50b1xuICogSmF2YVNjcmlwdCBvYmplY3RzIGFuZCBiYWNrIGFnYWluIGludG8gdGhlaXIgYmluYXJ5IGZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50U3RyZWFtTWFyc2hhbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZGVyTWFyc2hhbGxlcjogSGVhZGVyTWFyc2hhbGxlcjtcblxuICBjb25zdHJ1Y3Rvcih0b1V0Zjg6IEVuY29kZXIsIGZyb21VdGY4OiBEZWNvZGVyKSB7XG4gICAgdGhpcy5oZWFkZXJNYXJzaGFsbGVyID0gbmV3IEhlYWRlck1hcnNoYWxsZXIodG9VdGY4LCBmcm9tVXRmOCk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIHN0cnVjdHVyZWQgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCB0YWdnZWQgaGVhZGVycyBpbnRvIGEgYmluYXJ5XG4gICAqIGV2ZW50IHN0cmVhbSBtZXNzYWdlLlxuICAgKi9cbiAgbWFyc2hhbGwoeyBoZWFkZXJzOiByYXdIZWFkZXJzLCBib2R5IH06IE1lc3NhZ2UpOiBVaW50OEFycmF5IHtcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5oZWFkZXJNYXJzaGFsbGVyLmZvcm1hdChyYXdIZWFkZXJzKTtcbiAgICBjb25zdCBsZW5ndGggPSBoZWFkZXJzLmJ5dGVMZW5ndGggKyBib2R5LmJ5dGVMZW5ndGggKyAxNjtcblxuICAgIGNvbnN0IG91dCA9IG5ldyBVaW50OEFycmF5KGxlbmd0aCk7XG4gICAgY29uc3QgdmlldyA9IG5ldyBEYXRhVmlldyhvdXQuYnVmZmVyLCBvdXQuYnl0ZU9mZnNldCwgb3V0LmJ5dGVMZW5ndGgpO1xuICAgIGNvbnN0IGNoZWNrc3VtID0gbmV3IENyYzMyKCk7XG5cbiAgICAvLyBGb3JtYXQgbWVzc2FnZVxuICAgIHZpZXcuc2V0VWludDMyKDAsIGxlbmd0aCwgZmFsc2UpO1xuICAgIHZpZXcuc2V0VWludDMyKDQsIGhlYWRlcnMuYnl0ZUxlbmd0aCwgZmFsc2UpO1xuICAgIHZpZXcuc2V0VWludDMyKDgsIGNoZWNrc3VtLnVwZGF0ZShvdXQuc3ViYXJyYXkoMCwgOCkpLmRpZ2VzdCgpLCBmYWxzZSk7XG4gICAgb3V0LnNldChoZWFkZXJzLCAxMik7XG4gICAgb3V0LnNldChib2R5LCBoZWFkZXJzLmJ5dGVMZW5ndGggKyAxMik7XG5cbiAgICAvLyBXcml0ZSB0cmFpbGluZyBtZXNzYWdlIGNoZWNrc3VtXG4gICAgdmlldy5zZXRVaW50MzIobGVuZ3RoIC0gNCwgY2hlY2tzdW0udXBkYXRlKG91dC5zdWJhcnJheSg4LCBsZW5ndGggLSA0KSkuZGlnZXN0KCksIGZhbHNlKTtcblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIGJpbmFyeSBldmVudCBzdHJlYW0gbWVzc2FnZSBpbnRvIGEgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCBhblxuICAgKiBvcGFxdWUsIGJpbmFyeSBib2R5IGFuZCB0YWdnZWQsIHBhcnNlZCBoZWFkZXJzLlxuICAgKi9cbiAgdW5tYXJzaGFsbChtZXNzYWdlOiBBcnJheUJ1ZmZlclZpZXcpOiBNZXNzYWdlIHtcbiAgICBjb25zdCB7IGhlYWRlcnMsIGJvZHkgfSA9IHNwbGl0TWVzc2FnZShtZXNzYWdlKTtcblxuICAgIHJldHVybiB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyTWFyc2hhbGxlci5wYXJzZShoZWFkZXJzKSwgYm9keSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYSBzdHJ1Y3R1cmVkIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGFnZ2VkIGhlYWRlcnMgaW50byBhIGJpbmFyeVxuICAgKiBldmVudCBzdHJlYW0gbWVzc2FnZSBoZWFkZXIuXG4gICAqL1xuICBmb3JtYXRIZWFkZXJzKHJhd0hlYWRlcnM6IE1lc3NhZ2VIZWFkZXJzKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyTWFyc2hhbGxlci5mb3JtYXQocmF3SGVhZGVycyk7XG4gIH1cbn1cbiJdfQ==","import { __asyncGenerator, __await, __generator } from \"tslib\";\nexport function getChunkedStream(source) {\n var _a;\n var currentMessageTotalLength = 0;\n var currentMessagePendingLength = 0;\n var currentMessage = null;\n var messageLengthBuffer = null;\n var allocateMessage = function (size) {\n if (typeof size !== \"number\") {\n throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n }\n currentMessageTotalLength = size;\n currentMessagePendingLength = 4;\n currentMessage = new Uint8Array(size);\n var currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false); //set big-endian Uint32 to 0~3 bytes\n };\n var iterator = function () {\n return __asyncGenerator(this, arguments, function () {\n var sourceIterator, _a, value, done, chunkLength, currentOffset, bytesRemaining, numBytesForTotal, numBytesToWrite;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n sourceIterator = source[Symbol.asyncIterator]();\n _b.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 16];\n return [4 /*yield*/, __await(sourceIterator.next())];\n case 2:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3 /*break*/, 10];\n if (!!currentMessageTotalLength) return [3 /*break*/, 4];\n return [4 /*yield*/, __await(void 0)];\n case 3: return [2 /*return*/, _b.sent()];\n case 4:\n if (!(currentMessageTotalLength === currentMessagePendingLength)) return [3 /*break*/, 7];\n return [4 /*yield*/, __await(currentMessage)];\n case 5: return [4 /*yield*/, _b.sent()];\n case 6:\n _b.sent();\n return [3 /*break*/, 8];\n case 7: throw new Error(\"Truncated event message received.\");\n case 8: return [4 /*yield*/, __await(void 0)];\n case 9: return [2 /*return*/, _b.sent()];\n case 10:\n chunkLength = value.length;\n currentOffset = 0;\n _b.label = 11;\n case 11:\n if (!(currentOffset < chunkLength)) return [3 /*break*/, 15];\n // create new message if necessary\n if (!currentMessage) {\n bytesRemaining = chunkLength - currentOffset;\n // prevent edge case where total length spans 2 chunks\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n numBytesForTotal = Math.min(4 - currentMessagePendingLength, // remaining bytes to fill the messageLengthBuffer\n bytesRemaining // bytes left in chunk\n );\n messageLengthBuffer.set(\n // @ts-ignore error TS2532: Object is possibly 'undefined' for value\n value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n // not enough information to create the current message\n return [3 /*break*/, 15];\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, // number of bytes left to complete message\n chunkLength - currentOffset // number of bytes left in the original chunk\n );\n currentMessage.set(\n // @ts-ignore error TS2532: Object is possibly 'undefined' for value\n value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (!(currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength)) return [3 /*break*/, 14];\n return [4 /*yield*/, __await(currentMessage)];\n case 12: \n // push out the message\n return [4 /*yield*/, _b.sent()];\n case 13:\n // push out the message\n _b.sent();\n // cleanup\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n _b.label = 14;\n case 14: return [3 /*break*/, 11];\n case 15: return [3 /*break*/, 1];\n case 16: return [2 /*return*/];\n }\n });\n });\n };\n return _a = {},\n _a[Symbol.asyncIterator] = iterator,\n _a;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2h1bmtlZFN0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDaHVua2VkU3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBaUM7O0lBQ2hFLElBQUkseUJBQXlCLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLElBQUksMkJBQTJCLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLElBQUksY0FBYyxHQUFzQixJQUFJLENBQUM7SUFDN0MsSUFBSSxtQkFBbUIsR0FBc0IsSUFBSSxDQUFDO0lBQ2xELElBQU0sZUFBZSxHQUFHLFVBQUMsSUFBWTtRQUNuQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ2hHO1FBQ0QseUJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLDJCQUEyQixHQUFHLENBQUMsQ0FBQztRQUNoQyxjQUFjLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBTSxrQkFBa0IsR0FBRyxJQUFJLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0Qsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7SUFDcEYsQ0FBQyxDQUFDO0lBRUYsSUFBTSxRQUFRLEdBQUc7Ozs7Ozt3QkFDVCxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDOzs7NkJBQy9DLElBQUk7d0JBQ2UsNkJBQU0sY0FBYyxDQUFDLElBQUksRUFBRSxHQUFBOzt3QkFBN0MsS0FBa0IsU0FBMkIsRUFBM0MsS0FBSyxXQUFBLEVBQUUsSUFBSSxVQUFBOzZCQUNmLElBQUksRUFBSix5QkFBSTs2QkFDRixDQUFDLHlCQUF5QixFQUExQix3QkFBMEI7OzRCQUM1QixpQ0FBTzs7NkJBQ0UsQ0FBQSx5QkFBeUIsS0FBSywyQkFBMkIsQ0FBQSxFQUF6RCx3QkFBeUQ7cURBQzVELGNBQTRCOzRCQUFsQyxnQ0FBa0M7O3dCQUFsQyxTQUFrQyxDQUFDOzs0QkFFbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDOzs0QkFFdkQsaUNBQU87O3dCQUdILFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO3dCQUM3QixhQUFhLEdBQUcsQ0FBQyxDQUFDOzs7NkJBRWYsQ0FBQSxhQUFhLEdBQUcsV0FBVyxDQUFBO3dCQUNoQyxrQ0FBa0M7d0JBQ2xDLElBQUksQ0FBQyxjQUFjLEVBQUU7NEJBRWIsY0FBYyxHQUFHLFdBQVcsR0FBRyxhQUFhLENBQUM7NEJBQ25ELHNEQUFzRDs0QkFDdEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dDQUN4QixtQkFBbUIsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs2QkFDekM7NEJBQ0ssZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDL0IsQ0FBQyxHQUFHLDJCQUEyQixFQUFFLGtEQUFrRDs0QkFDbkYsY0FBYyxDQUFDLHNCQUFzQjs2QkFDdEMsQ0FBQzs0QkFFRixtQkFBbUIsQ0FBQyxHQUFHOzRCQUNyQixvRUFBb0U7NEJBQ3BFLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxFQUM1RCwyQkFBMkIsQ0FDNUIsQ0FBQzs0QkFFRiwyQkFBMkIsSUFBSSxnQkFBZ0IsQ0FBQzs0QkFDaEQsYUFBYSxJQUFJLGdCQUFnQixDQUFDOzRCQUVsQyxJQUFJLDJCQUEyQixHQUFHLENBQUMsRUFBRTtnQ0FDbkMsdURBQXVEO2dDQUN2RCx5QkFBTTs2QkFDUDs0QkFDRCxlQUFlLENBQUMsSUFBSSxRQUFRLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDOzRCQUM5RSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7eUJBQzVCO3dCQUdLLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUM5Qix5QkFBeUIsR0FBRywyQkFBMkIsRUFBRSwyQ0FBMkM7d0JBQ3BHLFdBQVcsR0FBRyxhQUFhLENBQUMsNkNBQTZDO3lCQUMxRSxDQUFDO3dCQUNGLGNBQWUsQ0FBQyxHQUFHO3dCQUNqQixvRUFBb0U7d0JBQ3BFLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsR0FBRyxlQUFlLENBQUMsRUFDM0QsMkJBQTJCLENBQzVCLENBQUM7d0JBQ0YsMkJBQTJCLElBQUksZUFBZSxDQUFDO3dCQUMvQyxhQUFhLElBQUksZUFBZSxDQUFDOzZCQUc3QixDQUFBLHlCQUF5QixJQUFJLHlCQUF5QixLQUFLLDJCQUEyQixDQUFBLEVBQXRGLHlCQUFzRjtxREFFbEYsY0FBNEI7O29CQURsQyx1QkFBdUI7b0JBQ3ZCLGdDQUFrQzs7d0JBRGxDLHVCQUF1Qjt3QkFDdkIsU0FBa0MsQ0FBQzt3QkFDbkMsVUFBVTt3QkFDVixjQUFjLEdBQUcsSUFBSSxDQUFDO3dCQUN0Qix5QkFBeUIsR0FBRyxDQUFDLENBQUM7d0JBQzlCLDJCQUEyQixHQUFHLENBQUMsQ0FBQzs7Ozs7Ozs7S0FJdkMsQ0FBQztJQUVGO1FBQ0UsR0FBQyxNQUFNLENBQUMsYUFBYSxJQUFHLFFBQVE7V0FDaEM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdldENodW5rZWRTdHJlYW0oc291cmNlOiBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+KTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PiB7XG4gIGxldCBjdXJyZW50TWVzc2FnZVRvdGFsTGVuZ3RoID0gMDtcbiAgbGV0IGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCA9IDA7XG4gIGxldCBjdXJyZW50TWVzc2FnZTogVWludDhBcnJheSB8IG51bGwgPSBudWxsO1xuICBsZXQgbWVzc2FnZUxlbmd0aEJ1ZmZlcjogVWludDhBcnJheSB8IG51bGwgPSBudWxsO1xuICBjb25zdCBhbGxvY2F0ZU1lc3NhZ2UgPSAoc2l6ZTogbnVtYmVyKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBzaXplICE9PSBcIm51bWJlclwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0ZWQgdG8gYWxsb2NhdGUgYW4gZXZlbnQgbWVzc2FnZSB3aGVyZSBzaXplIHdhcyBub3QgYSBudW1iZXI6IFwiICsgc2l6ZSk7XG4gICAgfVxuICAgIGN1cnJlbnRNZXNzYWdlVG90YWxMZW5ndGggPSBzaXplO1xuICAgIGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCA9IDQ7XG4gICAgY3VycmVudE1lc3NhZ2UgPSBuZXcgVWludDhBcnJheShzaXplKTtcbiAgICBjb25zdCBjdXJyZW50TWVzc2FnZVZpZXcgPSBuZXcgRGF0YVZpZXcoY3VycmVudE1lc3NhZ2UuYnVmZmVyKTtcbiAgICBjdXJyZW50TWVzc2FnZVZpZXcuc2V0VWludDMyKDAsIHNpemUsIGZhbHNlKTsgLy9zZXQgYmlnLWVuZGlhbiBVaW50MzIgdG8gMH4zIGJ5dGVzXG4gIH07XG5cbiAgY29uc3QgaXRlcmF0b3IgPSBhc3luYyBmdW5jdGlvbiogKCkge1xuICAgIGNvbnN0IHNvdXJjZUl0ZXJhdG9yID0gc291cmNlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpO1xuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBkb25lIH0gPSBhd2FpdCBzb3VyY2VJdGVyYXRvci5uZXh0KCk7XG4gICAgICBpZiAoZG9uZSkge1xuICAgICAgICBpZiAoIWN1cnJlbnRNZXNzYWdlVG90YWxMZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudE1lc3NhZ2VUb3RhbExlbmd0aCA9PT0gY3VycmVudE1lc3NhZ2VQZW5kaW5nTGVuZ3RoKSB7XG4gICAgICAgICAgeWllbGQgY3VycmVudE1lc3NhZ2UgYXMgVWludDhBcnJheTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcnVuY2F0ZWQgZXZlbnQgbWVzc2FnZSByZWNlaXZlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjaHVua0xlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgICAgIGxldCBjdXJyZW50T2Zmc2V0ID0gMDtcblxuICAgICAgd2hpbGUgKGN1cnJlbnRPZmZzZXQgPCBjaHVua0xlbmd0aCkge1xuICAgICAgICAvLyBjcmVhdGUgbmV3IG1lc3NhZ2UgaWYgbmVjZXNzYXJ5XG4gICAgICAgIGlmICghY3VycmVudE1lc3NhZ2UpIHtcbiAgICAgICAgICAvLyB3b3JraW5nIG9uIGEgbmV3IG1lc3NhZ2UsIGRldGVybWluZSB0b3RhbCBsZW5ndGhcbiAgICAgICAgICBjb25zdCBieXRlc1JlbWFpbmluZyA9IGNodW5rTGVuZ3RoIC0gY3VycmVudE9mZnNldDtcbiAgICAgICAgICAvLyBwcmV2ZW50IGVkZ2UgY2FzZSB3aGVyZSB0b3RhbCBsZW5ndGggc3BhbnMgMiBjaHVua3NcbiAgICAgICAgICBpZiAoIW1lc3NhZ2VMZW5ndGhCdWZmZXIpIHtcbiAgICAgICAgICAgIG1lc3NhZ2VMZW5ndGhCdWZmZXIgPSBuZXcgVWludDhBcnJheSg0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgbnVtQnl0ZXNGb3JUb3RhbCA9IE1hdGgubWluKFxuICAgICAgICAgICAgNCAtIGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCwgLy8gcmVtYWluaW5nIGJ5dGVzIHRvIGZpbGwgdGhlIG1lc3NhZ2VMZW5ndGhCdWZmZXJcbiAgICAgICAgICAgIGJ5dGVzUmVtYWluaW5nIC8vIGJ5dGVzIGxlZnQgaW4gY2h1bmtcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgbWVzc2FnZUxlbmd0aEJ1ZmZlci5zZXQoXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIGVycm9yIFRTMjUzMjogT2JqZWN0IGlzIHBvc3NpYmx5ICd1bmRlZmluZWQnIGZvciB2YWx1ZVxuICAgICAgICAgICAgdmFsdWUuc2xpY2UoY3VycmVudE9mZnNldCwgY3VycmVudE9mZnNldCArIG51bUJ5dGVzRm9yVG90YWwpLFxuICAgICAgICAgICAgY3VycmVudE1lc3NhZ2VQZW5kaW5nTGVuZ3RoXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGN1cnJlbnRNZXNzYWdlUGVuZGluZ0xlbmd0aCArPSBudW1CeXRlc0ZvclRvdGFsO1xuICAgICAgICAgIGN1cnJlbnRPZmZzZXQgKz0gbnVtQnl0ZXNGb3JUb3RhbDtcblxuICAgICAgICAgIGlmIChjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGggPCA0KSB7XG4gICAgICAgICAgICAvLyBub3QgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGNyZWF0ZSB0aGUgY3VycmVudCBtZXNzYWdlXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgYWxsb2NhdGVNZXNzYWdlKG5ldyBEYXRhVmlldyhtZXNzYWdlTGVuZ3RoQnVmZmVyLmJ1ZmZlcikuZ2V0VWludDMyKDAsIGZhbHNlKSk7XG4gICAgICAgICAgbWVzc2FnZUxlbmd0aEJ1ZmZlciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3cml0ZSBkYXRhIGludG8gY3VycmVudCBtZXNzYWdlXG4gICAgICAgIGNvbnN0IG51bUJ5dGVzVG9Xcml0ZSA9IE1hdGgubWluKFxuICAgICAgICAgIGN1cnJlbnRNZXNzYWdlVG90YWxMZW5ndGggLSBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGgsIC8vIG51bWJlciBvZiBieXRlcyBsZWZ0IHRvIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgICBjaHVua0xlbmd0aCAtIGN1cnJlbnRPZmZzZXQgLy8gbnVtYmVyIG9mIGJ5dGVzIGxlZnQgaW4gdGhlIG9yaWdpbmFsIGNodW5rXG4gICAgICAgICk7XG4gICAgICAgIGN1cnJlbnRNZXNzYWdlIS5zZXQoXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZSBlcnJvciBUUzI1MzI6IE9iamVjdCBpcyBwb3NzaWJseSAndW5kZWZpbmVkJyBmb3IgdmFsdWVcbiAgICAgICAgICB2YWx1ZS5zbGljZShjdXJyZW50T2Zmc2V0LCBjdXJyZW50T2Zmc2V0ICsgbnVtQnl0ZXNUb1dyaXRlKSxcbiAgICAgICAgICBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGhcbiAgICAgICAgKTtcbiAgICAgICAgY3VycmVudE1lc3NhZ2VQZW5kaW5nTGVuZ3RoICs9IG51bUJ5dGVzVG9Xcml0ZTtcbiAgICAgICAgY3VycmVudE9mZnNldCArPSBudW1CeXRlc1RvV3JpdGU7XG5cbiAgICAgICAgLy8gY2hlY2sgaWYgYSBtZXNzYWdlIGlzIHJlYWR5IHRvIGJlIHB1c2hlZFxuICAgICAgICBpZiAoY3VycmVudE1lc3NhZ2VUb3RhbExlbmd0aCAmJiBjdXJyZW50TWVzc2FnZVRvdGFsTGVuZ3RoID09PSBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGgpIHtcbiAgICAgICAgICAvLyBwdXNoIG91dCB0aGUgbWVzc2FnZVxuICAgICAgICAgIHlpZWxkIGN1cnJlbnRNZXNzYWdlIGFzIFVpbnQ4QXJyYXk7XG4gICAgICAgICAgLy8gY2xlYW51cFxuICAgICAgICAgIGN1cnJlbnRNZXNzYWdlID0gbnVsbDtcbiAgICAgICAgICBjdXJyZW50TWVzc2FnZVRvdGFsTGVuZ3RoID0gMDtcbiAgICAgICAgICBjdXJyZW50TWVzc2FnZVBlbmRpbmdMZW5ndGggPSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogaXRlcmF0b3IsXG4gIH07XG59XG4iXX0=","import { __asyncGenerator, __asyncValues, __await, __generator } from \"tslib\";\nexport function getUnmarshalledStream(source, options) {\n var _a;\n return _a = {},\n _a[Symbol.asyncIterator] = function () {\n return __asyncGenerator(this, arguments, function () {\n var source_1, source_1_1, chunk, message, messageType, unmodeledError, code, exception, deserializedException, error, event, deserialized, e_1_1;\n var _a, _b;\n var e_1, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _d.trys.push([0, 12, 13, 18]);\n source_1 = __asyncValues(source);\n _d.label = 1;\n case 1: return [4 /*yield*/, __await(source_1.next())];\n case 2:\n if (!(source_1_1 = _d.sent(), !source_1_1.done)) return [3 /*break*/, 11];\n chunk = source_1_1.value;\n message = options.eventMarshaller.unmarshall(chunk);\n messageType = message.headers[\":message-type\"].value;\n if (!(messageType === \"error\")) return [3 /*break*/, 3];\n unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n case 3:\n if (!(messageType === \"exception\")) return [3 /*break*/, 5];\n code = message.headers[\":exception-type\"].value;\n exception = (_a = {}, _a[code] = message, _a);\n return [4 /*yield*/, __await(options.deserializer(exception))];\n case 4:\n deserializedException = _d.sent();\n if (deserializedException.$unknown) {\n error = new Error(options.toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n case 5:\n if (!(messageType === \"event\")) return [3 /*break*/, 9];\n event = (_b = {},\n _b[message.headers[\":event-type\"].value] = message,\n _b);\n return [4 /*yield*/, __await(options.deserializer(event))];\n case 6:\n deserialized = _d.sent();\n if (deserialized.$unknown)\n return [3 /*break*/, 10];\n return [4 /*yield*/, __await(deserialized)];\n case 7: return [4 /*yield*/, _d.sent()];\n case 8:\n _d.sent();\n return [3 /*break*/, 10];\n case 9: throw Error(\"Unrecognizable event type: \" + message.headers[\":event-type\"].value);\n case 10: return [3 /*break*/, 1];\n case 11: return [3 /*break*/, 18];\n case 12:\n e_1_1 = _d.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 18];\n case 13:\n _d.trys.push([13, , 16, 17]);\n if (!(source_1_1 && !source_1_1.done && (_c = source_1.return))) return [3 /*break*/, 15];\n return [4 /*yield*/, __await(_c.call(source_1))];\n case 14:\n _d.sent();\n _d.label = 15;\n case 15: return [3 /*break*/, 17];\n case 16:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 17: return [7 /*endfinally*/];\n case 18: return [2 /*return*/];\n }\n });\n });\n },\n _a;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VW5tYXJzaGFsbGVkU3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dldFVubWFyc2hhbGxlZFN0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBU0EsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxNQUFpQyxFQUNqQyxPQUFxQzs7SUFFckM7UUFDRSxHQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUc7Ozs7Ozs7Ozs0QkFDSSxXQUFBLGNBQUEsTUFBTSxDQUFBOzs7Ozs0QkFBZixLQUFLLG1CQUFBLENBQUE7NEJBQ2QsT0FBTyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUMzQyxXQUFXLEdBQUssT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBckMsQ0FBc0M7aUNBQzVELENBQUEsV0FBVyxLQUFLLE9BQU8sQ0FBQSxFQUF2Qix3QkFBdUI7NEJBRW5CLGNBQWMsR0FBRyxJQUFJLEtBQUssQ0FBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBZ0IsSUFBSSxjQUFjLENBQUMsQ0FBQzs0QkFDeEcsY0FBYyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQWUsQ0FBQzs0QkFDckUsTUFBTSxjQUFjLENBQUM7O2lDQUNaLENBQUEsV0FBVyxLQUFLLFdBQVcsQ0FBQSxFQUEzQix3QkFBMkI7NEJBRTlCLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBZSxDQUFDOzRCQUMxRCxTQUFTLGFBQUssR0FBQyxJQUFJLElBQUcsT0FBTyxLQUFFLENBQUM7NEJBRVIsNkJBQU0sT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBQTs7NEJBQTdELHFCQUFxQixHQUFHLFNBQXFDOzRCQUNuRSxJQUFJLHFCQUFxQixDQUFDLFFBQVEsRUFBRTtnQ0FFNUIsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0NBQ3RELEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dDQUNsQixNQUFNLEtBQUssQ0FBQzs2QkFDYjs0QkFDRCxNQUFNLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDOztpQ0FDekIsQ0FBQSxXQUFXLEtBQUssT0FBTyxDQUFBLEVBQXZCLHdCQUF1Qjs0QkFDMUIsS0FBSztnQ0FDVCxHQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBZSxJQUFHLE9BQU87bUNBQzFELENBQUM7NEJBQ21CLDZCQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUE7OzRCQUFoRCxZQUFZLEdBQUcsU0FBaUM7NEJBQ3RELElBQUksWUFBWSxDQUFDLFFBQVE7Z0NBQUUseUJBQVM7eURBQzlCLFlBQVk7Z0NBQWxCLGdDQUFrQjs7NEJBQWxCLFNBQWtCLENBQUM7O2dDQUVuQixNQUFNLEtBQUssQ0FBQyxnQ0FBOEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFPLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FHdkY7V0FDRDtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudFN0cmVhbU1hcnNoYWxsZXIgYXMgRXZlbnRNYXJzaGFsbGVyIH0gZnJvbSBcIkBhd3Mtc2RrL2V2ZW50c3RyZWFtLW1hcnNoYWxsZXJcIjtcbmltcG9ydCB7IEVuY29kZXIsIE1lc3NhZ2UgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgVW5tYXJzaGFsbGVkU3RyZWFtT3B0aW9uczxUPiA9IHtcbiAgZXZlbnRNYXJzaGFsbGVyOiBFdmVudE1hcnNoYWxsZXI7XG4gIGRlc2VyaWFsaXplcjogKGlucHV0OiB7IFtuYW1lOiBzdHJpbmddOiBNZXNzYWdlIH0pID0+IFByb21pc2U8VD47XG4gIHRvVXRmODogRW5jb2Rlcjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVbm1hcnNoYWxsZWRTdHJlYW08VCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogYW55IH0+KFxuICBzb3VyY2U6IEFzeW5jSXRlcmFibGU8VWludDhBcnJheT4sXG4gIG9wdGlvbnM6IFVubWFyc2hhbGxlZFN0cmVhbU9wdGlvbnM8VD5cbik6IEFzeW5jSXRlcmFibGU8VD4ge1xuICByZXR1cm4ge1xuICAgIFtTeW1ib2wuYXN5bmNJdGVyYXRvcl06IGFzeW5jIGZ1bmN0aW9uKiAoKSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIHNvdXJjZSkge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gb3B0aW9ucy5ldmVudE1hcnNoYWxsZXIudW5tYXJzaGFsbChjaHVuayk7XG4gICAgICAgIGNvbnN0IHsgdmFsdWU6IG1lc3NhZ2VUeXBlIH0gPSBtZXNzYWdlLmhlYWRlcnNbXCI6bWVzc2FnZS10eXBlXCJdO1xuICAgICAgICBpZiAobWVzc2FnZVR5cGUgPT09IFwiZXJyb3JcIikge1xuICAgICAgICAgIC8vIFVubW9kZWxlZCBleGNlcHRpb24gaW4gZXZlbnRcbiAgICAgICAgICBjb25zdCB1bm1vZGVsZWRFcnJvciA9IG5ldyBFcnJvcigobWVzc2FnZS5oZWFkZXJzW1wiOmVycm9yLW1lc3NhZ2VcIl0udmFsdWUgYXMgc3RyaW5nKSB8fCBcIlVua25vd25FcnJvclwiKTtcbiAgICAgICAgICB1bm1vZGVsZWRFcnJvci5uYW1lID0gbWVzc2FnZS5oZWFkZXJzW1wiOmVycm9yLWNvZGVcIl0udmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIHRocm93IHVubW9kZWxlZEVycm9yO1xuICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2VUeXBlID09PSBcImV4Y2VwdGlvblwiKSB7XG4gICAgICAgICAgLy8gRm9yIG1vZGVsZWQgZXhjZXB0aW9uLCBwdXNoIGl0IHRvIGRlc2VyaWFsaXplciBhbmQgdGhyb3cgYWZ0ZXIgZGVzZXJpYWxpemluZ1xuICAgICAgICAgIGNvbnN0IGNvZGUgPSBtZXNzYWdlLmhlYWRlcnNbXCI6ZXhjZXB0aW9uLXR5cGVcIl0udmFsdWUgYXMgc3RyaW5nO1xuICAgICAgICAgIGNvbnN0IGV4Y2VwdGlvbiA9IHsgW2NvZGVdOiBtZXNzYWdlIH07XG4gICAgICAgICAgLy8gR2V0IHBhcnNlZCBleGNlcHRpb24gZXZlbnQgaW4ga2V5KGVycm9yIGNvZGUpIHZhbHVlKHN0cnVjdHVyZWQgZXJyb3IpIHBhaXIuXG4gICAgICAgICAgY29uc3QgZGVzZXJpYWxpemVkRXhjZXB0aW9uID0gYXdhaXQgb3B0aW9ucy5kZXNlcmlhbGl6ZXIoZXhjZXB0aW9uKTtcbiAgICAgICAgICBpZiAoZGVzZXJpYWxpemVkRXhjZXB0aW9uLiR1bmtub3duKSB7XG4gICAgICAgICAgICAvL3RoaXMgaXMgYW4gdW5tb2RlbGVkIGV4Y2VwdGlvbiB0aGVuIHRyeSBwYXJzaW5nIGl0IHdpdGggYmVzdCBlZmZvcnRcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG9wdGlvbnMudG9VdGY4KG1lc3NhZ2UuYm9keSkpO1xuICAgICAgICAgICAgZXJyb3IubmFtZSA9IGNvZGU7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZGVzZXJpYWxpemVkRXhjZXB0aW9uW2NvZGVdO1xuICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2VUeXBlID09PSBcImV2ZW50XCIpIHtcbiAgICAgICAgICBjb25zdCBldmVudCA9IHtcbiAgICAgICAgICAgIFttZXNzYWdlLmhlYWRlcnNbXCI6ZXZlbnQtdHlwZVwiXS52YWx1ZSBhcyBzdHJpbmddOiBtZXNzYWdlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgZGVzZXJpYWxpemVkID0gYXdhaXQgb3B0aW9ucy5kZXNlcmlhbGl6ZXIoZXZlbnQpO1xuICAgICAgICAgIGlmIChkZXNlcmlhbGl6ZWQuJHVua25vd24pIGNvbnRpbnVlO1xuICAgICAgICAgIHlpZWxkIGRlc2VyaWFsaXplZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgVW5yZWNvZ25pemFibGUgZXZlbnQgdHlwZTogJHttZXNzYWdlLmhlYWRlcnNbXCI6ZXZlbnQtdHlwZVwiXS52YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG4iXX0=","import { __asyncGenerator, __asyncValues, __await, __generator } from \"tslib\";\nimport { EventStreamMarshaller as EventMarshaller } from \"@aws-sdk/eventstream-marshaller\";\nimport { getChunkedStream } from \"./getChunkedStream\";\nimport { getUnmarshalledStream } from \"./getUnmarshalledStream\";\nvar EventStreamMarshaller = /** @class */ (function () {\n function EventStreamMarshaller(_a) {\n var utf8Encoder = _a.utf8Encoder, utf8Decoder = _a.utf8Decoder;\n this.eventMarshaller = new EventMarshaller(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n EventStreamMarshaller.prototype.deserialize = function (body, deserializer) {\n var chunkedStream = getChunkedStream(body);\n var unmarshalledStream = getUnmarshalledStream(chunkedStream, {\n eventMarshaller: this.eventMarshaller,\n deserializer: deserializer,\n toUtf8: this.utfEncoder,\n });\n return unmarshalledStream;\n };\n EventStreamMarshaller.prototype.serialize = function (input, serializer) {\n var _a;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n var serializedIterator = function () {\n return __asyncGenerator(this, arguments, function () {\n var input_1, input_1_1, chunk, payloadBuf, e_1_1;\n var e_1, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 7, 8, 13]);\n input_1 = __asyncValues(input);\n _b.label = 1;\n case 1: return [4 /*yield*/, __await(input_1.next())];\n case 2:\n if (!(input_1_1 = _b.sent(), !input_1_1.done)) return [3 /*break*/, 6];\n chunk = input_1_1.value;\n payloadBuf = self.eventMarshaller.marshall(serializer(chunk));\n return [4 /*yield*/, __await(payloadBuf)];\n case 3: return [4 /*yield*/, _b.sent()];\n case 4:\n _b.sent();\n _b.label = 5;\n case 5: return [3 /*break*/, 1];\n case 6: return [3 /*break*/, 13];\n case 7:\n e_1_1 = _b.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 13];\n case 8:\n _b.trys.push([8, , 11, 12]);\n if (!(input_1_1 && !input_1_1.done && (_a = input_1.return))) return [3 /*break*/, 10];\n return [4 /*yield*/, __await(_a.call(input_1))];\n case 9:\n _b.sent();\n _b.label = 10;\n case 10: return [3 /*break*/, 12];\n case 11:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 12: return [7 /*endfinally*/];\n case 13: return [4 /*yield*/, __await(new Uint8Array(0))];\n case 14: \n // Ending frame\n return [4 /*yield*/, _b.sent()];\n case 15:\n // Ending frame\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n return _a = {},\n _a[Symbol.asyncIterator] = serializedIterator,\n _a;\n };\n return EventStreamMarshaller;\n}());\nexport { EventStreamMarshaller };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1NYXJzaGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V2ZW50U3RyZWFtTWFyc2hhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHFCQUFxQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBU2hFO0lBR0UsK0JBQVksRUFBMEQ7WUFBeEQsV0FBVyxpQkFBQSxFQUFFLFdBQVcsaUJBQUE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7SUFDaEMsQ0FBQztJQUVELDJDQUFXLEdBQVgsVUFDRSxJQUErQixFQUMvQixZQUFpRTtRQUVqRSxJQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLGFBQWEsRUFBRTtZQUM5RCxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsWUFBWSxjQUFBO1lBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQ3hCLENBQUMsQ0FBQztRQUNILE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVELHlDQUFTLEdBQVQsVUFBYSxLQUF1QixFQUFFLFVBQWlDOztRQUNyRSw0REFBNEQ7UUFDNUQsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQU0sa0JBQWtCLEdBQUc7Ozs7Ozs7OzRCQUNDLFVBQUEsY0FBQSxLQUFLLENBQUE7Ozs7OzRCQUFkLEtBQUssa0JBQUEsQ0FBQTs0QkFDZCxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7eURBQzlELFVBQVU7Z0NBQWhCLGdDQUFnQjs7NEJBQWhCLFNBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhEQUdiLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQzs7d0JBRHZCLGVBQWU7d0JBQ2YsZ0NBQXVCOzs0QkFEdkIsZUFBZTs0QkFDZixTQUF1QixDQUFDOzs7OztTQUN6QixDQUFDO1FBQ0Y7WUFDRSxHQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUcsa0JBQWtCO2VBQzFDO0lBQ0osQ0FBQztJQUNILDRCQUFDO0FBQUQsQ0FBQyxBQXBDRCxJQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50U3RyZWFtTWFyc2hhbGxlciBhcyBFdmVudE1hcnNoYWxsZXIgfSBmcm9tIFwiQGF3cy1zZGsvZXZlbnRzdHJlYW0tbWFyc2hhbGxlclwiO1xuaW1wb3J0IHsgRGVjb2RlciwgRW5jb2RlciwgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIGFzIElFdmVudFN0cmVhbU1hcnNoYWxsZXIsIE1lc3NhZ2UgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgZ2V0Q2h1bmtlZFN0cmVhbSB9IGZyb20gXCIuL2dldENodW5rZWRTdHJlYW1cIjtcbmltcG9ydCB7IGdldFVubWFyc2hhbGxlZFN0cmVhbSB9IGZyb20gXCIuL2dldFVubWFyc2hhbGxlZFN0cmVhbVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U3RyZWFtTWFyc2hhbGxlciBleHRlbmRzIElFdmVudFN0cmVhbU1hcnNoYWxsZXIge31cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFN0cmVhbU1hcnNoYWxsZXJPcHRpb25zIHtcbiAgdXRmOEVuY29kZXI6IEVuY29kZXI7XG4gIHV0ZjhEZWNvZGVyOiBEZWNvZGVyO1xufVxuXG5leHBvcnQgY2xhc3MgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBldmVudE1hcnNoYWxsZXI6IEV2ZW50TWFyc2hhbGxlcjtcbiAgcHJpdmF0ZSByZWFkb25seSB1dGZFbmNvZGVyOiBFbmNvZGVyO1xuICBjb25zdHJ1Y3Rvcih7IHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2RlciB9OiBFdmVudFN0cmVhbU1hcnNoYWxsZXJPcHRpb25zKSB7XG4gICAgdGhpcy5ldmVudE1hcnNoYWxsZXIgPSBuZXcgRXZlbnRNYXJzaGFsbGVyKHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2Rlcik7XG4gICAgdGhpcy51dGZFbmNvZGVyID0gdXRmOEVuY29kZXI7XG4gIH1cblxuICBkZXNlcmlhbGl6ZTxUPihcbiAgICBib2R5OiBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+LFxuICAgIGRlc2VyaWFsaXplcjogKGlucHV0OiB7IFtldmVudDogc3RyaW5nXTogTWVzc2FnZSB9KSA9PiBQcm9taXNlPFQ+XG4gICk6IEFzeW5jSXRlcmFibGU8VD4ge1xuICAgIGNvbnN0IGNodW5rZWRTdHJlYW0gPSBnZXRDaHVua2VkU3RyZWFtKGJvZHkpO1xuICAgIGNvbnN0IHVubWFyc2hhbGxlZFN0cmVhbSA9IGdldFVubWFyc2hhbGxlZFN0cmVhbShjaHVua2VkU3RyZWFtLCB7XG4gICAgICBldmVudE1hcnNoYWxsZXI6IHRoaXMuZXZlbnRNYXJzaGFsbGVyLFxuICAgICAgZGVzZXJpYWxpemVyLFxuICAgICAgdG9VdGY4OiB0aGlzLnV0ZkVuY29kZXIsXG4gICAgfSk7XG4gICAgcmV0dXJuIHVubWFyc2hhbGxlZFN0cmVhbTtcbiAgfVxuXG4gIHNlcmlhbGl6ZTxUPihpbnB1dDogQXN5bmNJdGVyYWJsZTxUPiwgc2VyaWFsaXplcjogKGV2ZW50OiBUKSA9PiBNZXNzYWdlKTogQXN5bmNJdGVyYWJsZTxVaW50OEFycmF5PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3Qgc2VyaWFsaXplZEl0ZXJhdG9yID0gYXN5bmMgZnVuY3Rpb24qICgpIHtcbiAgICAgIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2YgaW5wdXQpIHtcbiAgICAgICAgY29uc3QgcGF5bG9hZEJ1ZiA9IHNlbGYuZXZlbnRNYXJzaGFsbGVyLm1hcnNoYWxsKHNlcmlhbGl6ZXIoY2h1bmspKTtcbiAgICAgICAgeWllbGQgcGF5bG9hZEJ1ZjtcbiAgICAgIH1cbiAgICAgIC8vIEVuZGluZyBmcmFtZVxuICAgICAgeWllbGQgbmV3IFVpbnQ4QXJyYXkoMCk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogc2VyaWFsaXplZEl0ZXJhdG9yLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==","import { __asyncGenerator, __await, __awaiter, __generator } from \"tslib\";\n/**\n * A util function converting ReadableStream into an async iterable.\n * Reference: https://jakearchibald.com/2017/async-iterators-and-generators/#making-streams-iterate\n */\nexport var readableStreamtoIterable = function (readableStream) {\n var _a;\n return (_a = {},\n _a[Symbol.asyncIterator] = function () {\n return __asyncGenerator(this, arguments, function () {\n var reader, _a, done, value;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3 /*break*/, 8];\n return [4 /*yield*/, __await(reader.read())];\n case 3:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (!done) return [3 /*break*/, 5];\n return [4 /*yield*/, __await(void 0)];\n case 4: return [2 /*return*/, _b.sent()];\n case 5: return [4 /*yield*/, __await(value)];\n case 6: return [4 /*yield*/, _b.sent()];\n case 7:\n _b.sent();\n return [3 /*break*/, 2];\n case 8: return [3 /*break*/, 10];\n case 9:\n reader.releaseLock();\n return [7 /*endfinally*/];\n case 10: return [2 /*return*/];\n }\n });\n });\n },\n _a);\n};\n/**\n * A util function converting async iterable to a ReadableStream.\n */\nexport var iterableToReadableStream = function (asyncIterable) {\n var iterator = asyncIterable[Symbol.asyncIterator]();\n return new ReadableStream({\n pull: function (controller) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, done, value;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, iterator.next()];\n case 1:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (done) {\n return [2 /*return*/, controller.close()];\n }\n controller.enqueue(value);\n return [2 /*return*/];\n }\n });\n });\n },\n });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUFHLFVBQUksY0FBaUM7O0lBQXVCLE9BQUE7UUFDbEcsR0FBQyxNQUFNLENBQUMsYUFBYSxJQUFHOzs7Ozs7NEJBQ2hCLE1BQU0sR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7Ozs7OztpQ0FFakMsSUFBSTs0QkFDZSw2QkFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUE7OzRCQUFyQyxLQUFrQixTQUFtQixFQUFuQyxJQUFJLFVBQUEsRUFBRSxLQUFLLFdBQUE7aUNBQ2YsSUFBSSxFQUFKLHdCQUFJOztnQ0FBRSxpQ0FBTzs2REFDWCxLQUFVO2dDQUFoQixnQ0FBZ0I7OzRCQUFoQixTQUFnQixDQUFDOzs7OzRCQUduQixNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Ozs7OztTQUV4QjtXQUNEO0FBYmtHLENBYWxHLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUFHLFVBQUksYUFBK0I7SUFDekUsSUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQ3ZELE9BQU8sSUFBSSxjQUFjLENBQUM7UUFDbEIsSUFBSSxZQUFDLFVBQVU7Ozs7O2dDQUNLLHFCQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBQTs7NEJBQXZDLEtBQWtCLFNBQXFCLEVBQXJDLElBQUksVUFBQSxFQUFFLEtBQUssV0FBQTs0QkFDbkIsSUFBSSxJQUFJLEVBQUU7Z0NBQ1Isc0JBQU8sVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFDOzZCQUMzQjs0QkFDRCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDOzs7OztTQUMzQjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSB1dGlsIGZ1bmN0aW9uIGNvbnZlcnRpbmcgUmVhZGFibGVTdHJlYW0gaW50byBhbiBhc3luYyBpdGVyYWJsZS5cbiAqIFJlZmVyZW5jZTogaHR0cHM6Ly9qYWtlYXJjaGliYWxkLmNvbS8yMDE3L2FzeW5jLWl0ZXJhdG9ycy1hbmQtZ2VuZXJhdG9ycy8jbWFraW5nLXN0cmVhbXMtaXRlcmF0ZVxuICovXG5leHBvcnQgY29uc3QgcmVhZGFibGVTdHJlYW10b0l0ZXJhYmxlID0gPFQ+KHJlYWRhYmxlU3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxUPik6IEFzeW5jSXRlcmFibGU8VD4gPT4gKHtcbiAgW1N5bWJvbC5hc3luY0l0ZXJhdG9yXTogYXN5bmMgZnVuY3Rpb24qICgpIHtcbiAgICBjb25zdCByZWFkZXIgPSByZWFkYWJsZVN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgICB0cnkge1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgaWYgKGRvbmUpIHJldHVybjtcbiAgICAgICAgeWllbGQgdmFsdWUgYXMgVDtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgcmVhZGVyLnJlbGVhc2VMb2NrKCk7XG4gICAgfVxuICB9LFxufSk7XG5cbi8qKlxuICogQSB1dGlsIGZ1bmN0aW9uIGNvbnZlcnRpbmcgYXN5bmMgaXRlcmFibGUgdG8gYSBSZWFkYWJsZVN0cmVhbS5cbiAqL1xuZXhwb3J0IGNvbnN0IGl0ZXJhYmxlVG9SZWFkYWJsZVN0cmVhbSA9IDxUPihhc3luY0l0ZXJhYmxlOiBBc3luY0l0ZXJhYmxlPFQ+KTogUmVhZGFibGVTdHJlYW08VD4gPT4ge1xuICBjb25zdCBpdGVyYXRvciA9IGFzeW5jSXRlcmFibGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7XG4gIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgIGFzeW5jIHB1bGwoY29udHJvbGxlcikge1xuICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgaXRlcmF0b3IubmV4dCgpO1xuICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgIH1cbiAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgfSk7XG59O1xuIl19","import { EventStreamMarshaller as EventMarshaller } from \"@aws-sdk/eventstream-marshaller\";\nimport { EventStreamMarshaller as UniversalEventStreamMarshaller } from \"@aws-sdk/eventstream-serde-universal\";\nimport { iterableToReadableStream, readableStreamtoIterable } from \"./utils\";\n/**\n * Utility class used to serialize and deserialize event streams in\n * browsers and ReactNative.\n *\n * In browsers where ReadableStream API is available:\n * * deserialize from ReadableStream to an async iterable of output structure\n * * serialize from async iterable of input structure to ReadableStream\n * In ReactNative where only async iterable API is available:\n * * deserialize from async iterable of binaries to async iterable of output structure\n * * serialize from async iterable of input structure to async iterable of binaries\n *\n * We use ReadableStream API in browsers because of the consistency with other\n * streaming operations, where ReadableStream API is used to denote streaming data.\n * Whereas in ReactNative, ReadableStream API is not available, we use async iterable\n * for streaming data although it has lower throughput.\n */\nvar EventStreamMarshaller = /** @class */ (function () {\n function EventStreamMarshaller(_a) {\n var utf8Encoder = _a.utf8Encoder, utf8Decoder = _a.utf8Decoder;\n this.eventMarshaller = new EventMarshaller(utf8Encoder, utf8Decoder);\n this.universalMarshaller = new UniversalEventStreamMarshaller({\n utf8Decoder: utf8Decoder,\n utf8Encoder: utf8Encoder,\n });\n }\n EventStreamMarshaller.prototype.deserialize = function (body, deserializer) {\n var bodyIterable = isReadableStream(body) ? readableStreamtoIterable(body) : body;\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n };\n /**\n * Generate a stream that serialize events into stream of binary chunks;\n *\n * Caveat is that streaming request payload doesn't work on browser with native\n * xhr or fetch handler currently because they don't support upload streaming.\n * reference:\n * * https://bugs.chromium.org/p/chromium/issues/detail?id=688906\n * * https://bugzilla.mozilla.org/show_bug.cgi?id=1387483\n *\n */\n EventStreamMarshaller.prototype.serialize = function (input, serializer) {\n var serialziedIterable = this.universalMarshaller.serialize(input, serializer);\n return typeof ReadableStream === \"function\" ? iterableToReadableStream(serialziedIterable) : serialziedIterable;\n };\n return EventStreamMarshaller;\n}());\nexport { EventStreamMarshaller };\nvar isReadableStream = function (body) {\n return typeof ReadableStream === \"function\" && body instanceof ReadableStream;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1NYXJzaGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V2ZW50U3RyZWFtTWFyc2hhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixJQUFJLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHL0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBUzdFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNIO0lBR0UsK0JBQVksRUFBMEQ7WUFBeEQsV0FBVyxpQkFBQSxFQUFFLFdBQVcsaUJBQUE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksOEJBQThCLENBQUM7WUFDNUQsV0FBVyxhQUFBO1lBQ1gsV0FBVyxhQUFBO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDJDQUFXLEdBQVgsVUFDRSxJQUE0RCxFQUM1RCxZQUFpRTtRQUVqRSxJQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwRixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCx5Q0FBUyxHQUFULFVBQWEsS0FBdUIsRUFBRSxVQUFpQztRQUNyRSxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sT0FBTyxjQUFjLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztJQUNsSCxDQUFDO0lBQ0gsNEJBQUM7QUFBRCxDQUFDLEFBakNELElBaUNDOztBQUVELElBQU0sZ0JBQWdCLEdBQUcsVUFBQyxJQUFTO0lBQ2pDLE9BQUEsT0FBTyxjQUFjLEtBQUssVUFBVSxJQUFJLElBQUksWUFBWSxjQUFjO0FBQXRFLENBQXNFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudFN0cmVhbU1hcnNoYWxsZXIgYXMgRXZlbnRNYXJzaGFsbGVyIH0gZnJvbSBcIkBhd3Mtc2RrL2V2ZW50c3RyZWFtLW1hcnNoYWxsZXJcIjtcbmltcG9ydCB7IEV2ZW50U3RyZWFtTWFyc2hhbGxlciBhcyBVbml2ZXJzYWxFdmVudFN0cmVhbU1hcnNoYWxsZXIgfSBmcm9tIFwiQGF3cy1zZGsvZXZlbnRzdHJlYW0tc2VyZGUtdW5pdmVyc2FsXCI7XG5pbXBvcnQgeyBEZWNvZGVyLCBFbmNvZGVyLCBFdmVudFN0cmVhbU1hcnNoYWxsZXIgYXMgSUV2ZW50U3RyZWFtTWFyc2hhbGxlciwgTWVzc2FnZSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBpdGVyYWJsZVRvUmVhZGFibGVTdHJlYW0sIHJlYWRhYmxlU3RyZWFtdG9JdGVyYWJsZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIGV4dGVuZHMgSUV2ZW50U3RyZWFtTWFyc2hhbGxlciB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U3RyZWFtTWFyc2hhbGxlck9wdGlvbnMge1xuICB1dGY4RW5jb2RlcjogRW5jb2RlcjtcbiAgdXRmOERlY29kZXI6IERlY29kZXI7XG59XG5cbi8qKlxuICogVXRpbGl0eSBjbGFzcyB1c2VkIHRvIHNlcmlhbGl6ZSBhbmQgZGVzZXJpYWxpemUgZXZlbnQgc3RyZWFtcyBpblxuICogYnJvd3NlcnMgYW5kIFJlYWN0TmF0aXZlLlxuICpcbiAqIEluIGJyb3dzZXJzIHdoZXJlIFJlYWRhYmxlU3RyZWFtIEFQSSBpcyBhdmFpbGFibGU6XG4gKiAqIGRlc2VyaWFsaXplIGZyb20gUmVhZGFibGVTdHJlYW0gdG8gYW4gYXN5bmMgaXRlcmFibGUgb2Ygb3V0cHV0IHN0cnVjdHVyZVxuICogKiBzZXJpYWxpemUgZnJvbSBhc3luYyBpdGVyYWJsZSBvZiBpbnB1dCBzdHJ1Y3R1cmUgdG8gUmVhZGFibGVTdHJlYW1cbiAqIEluIFJlYWN0TmF0aXZlIHdoZXJlIG9ubHkgYXN5bmMgaXRlcmFibGUgQVBJIGlzIGF2YWlsYWJsZTpcbiAqICogZGVzZXJpYWxpemUgZnJvbSBhc3luYyBpdGVyYWJsZSBvZiBiaW5hcmllcyB0byBhc3luYyBpdGVyYWJsZSBvZiBvdXRwdXQgc3RydWN0dXJlXG4gKiAqIHNlcmlhbGl6ZSBmcm9tIGFzeW5jIGl0ZXJhYmxlIG9mIGlucHV0IHN0cnVjdHVyZSB0byBhc3luYyBpdGVyYWJsZSBvZiBiaW5hcmllc1xuICpcbiAqIFdlIHVzZSBSZWFkYWJsZVN0cmVhbSBBUEkgaW4gYnJvd3NlcnMgYmVjYXVzZSBvZiB0aGUgY29uc2lzdGVuY3kgd2l0aCBvdGhlclxuICogc3RyZWFtaW5nIG9wZXJhdGlvbnMsIHdoZXJlIFJlYWRhYmxlU3RyZWFtIEFQSSBpcyB1c2VkIHRvIGRlbm90ZSBzdHJlYW1pbmcgZGF0YS5cbiAqIFdoZXJlYXMgaW4gUmVhY3ROYXRpdmUsIFJlYWRhYmxlU3RyZWFtIEFQSSBpcyBub3QgYXZhaWxhYmxlLCB3ZSB1c2UgYXN5bmMgaXRlcmFibGVcbiAqIGZvciBzdHJlYW1pbmcgZGF0YSBhbHRob3VnaCBpdCBoYXMgbG93ZXIgdGhyb3VnaHB1dC5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50U3RyZWFtTWFyc2hhbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRNYXJzaGFsbGVyOiBFdmVudE1hcnNoYWxsZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5pdmVyc2FsTWFyc2hhbGxlcjogVW5pdmVyc2FsRXZlbnRTdHJlYW1NYXJzaGFsbGVyO1xuICBjb25zdHJ1Y3Rvcih7IHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2RlciB9OiBFdmVudFN0cmVhbU1hcnNoYWxsZXJPcHRpb25zKSB7XG4gICAgdGhpcy5ldmVudE1hcnNoYWxsZXIgPSBuZXcgRXZlbnRNYXJzaGFsbGVyKHV0ZjhFbmNvZGVyLCB1dGY4RGVjb2Rlcik7XG4gICAgdGhpcy51bml2ZXJzYWxNYXJzaGFsbGVyID0gbmV3IFVuaXZlcnNhbEV2ZW50U3RyZWFtTWFyc2hhbGxlcih7XG4gICAgICB1dGY4RGVjb2RlcixcbiAgICAgIHV0ZjhFbmNvZGVyLFxuICAgIH0pO1xuICB9XG5cbiAgZGVzZXJpYWxpemU8VD4oXG4gICAgYm9keTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4gfCBBc3luY0l0ZXJhYmxlPFVpbnQ4QXJyYXk+LFxuICAgIGRlc2VyaWFsaXplcjogKGlucHV0OiB7IFtldmVudDogc3RyaW5nXTogTWVzc2FnZSB9KSA9PiBQcm9taXNlPFQ+XG4gICk6IEFzeW5jSXRlcmFibGU8VD4ge1xuICAgIGNvbnN0IGJvZHlJdGVyYWJsZSA9IGlzUmVhZGFibGVTdHJlYW0oYm9keSkgPyByZWFkYWJsZVN0cmVhbXRvSXRlcmFibGUoYm9keSkgOiBib2R5O1xuICAgIHJldHVybiB0aGlzLnVuaXZlcnNhbE1hcnNoYWxsZXIuZGVzZXJpYWxpemUoYm9keUl0ZXJhYmxlLCBkZXNlcmlhbGl6ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgc3RyZWFtIHRoYXQgc2VyaWFsaXplIGV2ZW50cyBpbnRvIHN0cmVhbSBvZiBiaW5hcnkgY2h1bmtzO1xuICAgKlxuICAgKiBDYXZlYXQgaXMgdGhhdCBzdHJlYW1pbmcgcmVxdWVzdCBwYXlsb2FkIGRvZXNuJ3Qgd29yayBvbiBicm93c2VyIHdpdGggbmF0aXZlXG4gICAqIHhociBvciBmZXRjaCBoYW5kbGVyIGN1cnJlbnRseSBiZWNhdXNlIHRoZXkgZG9uJ3Qgc3VwcG9ydCB1cGxvYWQgc3RyZWFtaW5nLlxuICAgKiByZWZlcmVuY2U6XG4gICAqICogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9Njg4OTA2XG4gICAqICogaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzQ4M1xuICAgKlxuICAgKi9cbiAgc2VyaWFsaXplPFQ+KGlucHV0OiBBc3luY0l0ZXJhYmxlPFQ+LCBzZXJpYWxpemVyOiAoZXZlbnQ6IFQpID0+IE1lc3NhZ2UpOiBSZWFkYWJsZVN0cmVhbSB8IEFzeW5jSXRlcmFibGU8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IHNlcmlhbHppZWRJdGVyYWJsZSA9IHRoaXMudW5pdmVyc2FsTWFyc2hhbGxlci5zZXJpYWxpemUoaW5wdXQsIHNlcmlhbGl6ZXIpO1xuICAgIHJldHVybiB0eXBlb2YgUmVhZGFibGVTdHJlYW0gPT09IFwiZnVuY3Rpb25cIiA/IGl0ZXJhYmxlVG9SZWFkYWJsZVN0cmVhbShzZXJpYWx6aWVkSXRlcmFibGUpIDogc2VyaWFsemllZEl0ZXJhYmxlO1xuICB9XG59XG5cbmNvbnN0IGlzUmVhZGFibGVTdHJlYW0gPSAoYm9keTogYW55KTogYm9keSBpcyBSZWFkYWJsZVN0cmVhbSA9PlxuICB0eXBlb2YgUmVhZGFibGVTdHJlYW0gPT09IFwiZnVuY3Rpb25cIiAmJiBib2R5IGluc3RhbmNlb2YgUmVhZGFibGVTdHJlYW07XG4iXX0=","import { EventStreamMarshaller } from \"./EventStreamMarshaller\";\n/** browser event stream serde utils provider */\nexport var eventStreamSerdeProvider = function (options) { return new EventStreamMarshaller(options); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsZ0RBQWdEO0FBQ2hELE1BQU0sQ0FBQyxJQUFNLHdCQUF3QixHQUE2QixVQUFDLE9BSWxFLElBQUssT0FBQSxJQUFJLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxFQUFsQyxDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjb2RlciwgRW5jb2RlciwgRXZlbnRTaWduZXIsIEV2ZW50U3RyZWFtU2VyZGVQcm92aWRlciwgUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgRXZlbnRTdHJlYW1NYXJzaGFsbGVyIH0gZnJvbSBcIi4vRXZlbnRTdHJlYW1NYXJzaGFsbGVyXCI7XG5cbi8qKiBicm93c2VyIGV2ZW50IHN0cmVhbSBzZXJkZSB1dGlscyBwcm92aWRlciAqL1xuZXhwb3J0IGNvbnN0IGV2ZW50U3RyZWFtU2VyZGVQcm92aWRlcjogRXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyID0gKG9wdGlvbnM6IHtcbiAgdXRmOEVuY29kZXI6IEVuY29kZXI7XG4gIHV0ZjhEZWNvZGVyOiBEZWNvZGVyO1xuICBldmVudFNpZ25lcjogRXZlbnRTaWduZXIgfCBQcm92aWRlcjxFdmVudFNpZ25lcj47XG59KSA9PiBuZXcgRXZlbnRTdHJlYW1NYXJzaGFsbGVyKG9wdGlvbnMpO1xuIl19","export function blobReader(blob, onChunk, chunkSize) {\n if (chunkSize === void 0) { chunkSize = 1024 * 1024; }\n return new Promise(function (resolve, reject) {\n var fileReader = new FileReader();\n fileReader.addEventListener(\"error\", reject);\n fileReader.addEventListener(\"abort\", reject);\n var size = blob.size;\n var totalBytesRead = 0;\n function read() {\n if (totalBytesRead >= size) {\n resolve();\n return;\n }\n fileReader.readAsArrayBuffer(blob.slice(totalBytesRead, Math.min(size, totalBytesRead + chunkSize)));\n }\n fileReader.addEventListener(\"load\", function (event) {\n var result = event.target.result;\n onChunk(new Uint8Array(result));\n totalBytesRead += result.byteLength;\n // read the next block\n read();\n });\n // kick off the read\n read();\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsSUFBVSxFQUNWLE9BQW9DLEVBQ3BDLFNBQStCO0lBQS9CLDBCQUFBLEVBQUEsWUFBb0IsSUFBSSxHQUFHLElBQUk7SUFFL0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1FBQ2pDLElBQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFFcEMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTdDLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLFNBQVMsSUFBSTtZQUNYLElBQUksY0FBYyxJQUFJLElBQUksRUFBRTtnQkFDMUIsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsT0FBTzthQUNSO1lBQ0QsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkcsQ0FBQztRQUVELFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsVUFBQyxLQUFLO1lBQ3hDLElBQU0sTUFBTSxHQUFpQixLQUFLLENBQUMsTUFBYyxDQUFDLE1BQU0sQ0FBQztZQUN6RCxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNoQyxjQUFjLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNwQyxzQkFBc0I7WUFDdEIsSUFBSSxFQUFFLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztRQUVILG9CQUFvQjtRQUNwQixJQUFJLEVBQUUsQ0FBQztJQUNULENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBibG9iUmVhZGVyKFxuICBibG9iOiBCbG9iLFxuICBvbkNodW5rOiAoY2h1bms6IFVpbnQ4QXJyYXkpID0+IHZvaWQsXG4gIGNodW5rU2l6ZTogbnVtYmVyID0gMTAyNCAqIDEwMjRcbik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgZmlsZVJlYWRlci5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgICBmaWxlUmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCByZWplY3QpO1xuXG4gICAgY29uc3Qgc2l6ZSA9IGJsb2Iuc2l6ZTtcbiAgICBsZXQgdG90YWxCeXRlc1JlYWQgPSAwO1xuXG4gICAgZnVuY3Rpb24gcmVhZCgpIHtcbiAgICAgIGlmICh0b3RhbEJ5dGVzUmVhZCA+PSBzaXplKSB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZmlsZVJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iLnNsaWNlKHRvdGFsQnl0ZXNSZWFkLCBNYXRoLm1pbihzaXplLCB0b3RhbEJ5dGVzUmVhZCArIGNodW5rU2l6ZSkpKTtcbiAgICB9XG5cbiAgICBmaWxlUmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsIChldmVudCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gPEFycmF5QnVmZmVyPihldmVudC50YXJnZXQgYXMgYW55KS5yZXN1bHQ7XG4gICAgICBvbkNodW5rKG5ldyBVaW50OEFycmF5KHJlc3VsdCkpO1xuICAgICAgdG90YWxCeXRlc1JlYWQgKz0gcmVzdWx0LmJ5dGVMZW5ndGg7XG4gICAgICAvLyByZWFkIHRoZSBuZXh0IGJsb2NrXG4gICAgICByZWFkKCk7XG4gICAgfSk7XG5cbiAgICAvLyBraWNrIG9mZiB0aGUgcmVhZFxuICAgIHJlYWQoKTtcbiAgfSk7XG59XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { blobReader } from \"@aws-sdk/chunked-blob-reader\";\nexport var blobHasher = function blobHasher(hashCtor, blob) {\n return __awaiter(this, void 0, void 0, function () {\n var hash;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hash = new hashCtor();\n return [4 /*yield*/, blobReader(blob, function (chunk) {\n hash.update(chunk);\n })];\n case 1:\n _a.sent();\n return [2 /*return*/, hash.digest()];\n }\n });\n });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUcxRCxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQXVCLFNBQWUsVUFBVSxDQUNyRSxRQUF5QixFQUN6QixJQUFVOzs7Ozs7b0JBRUosSUFBSSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7b0JBRTVCLHFCQUFNLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBQyxLQUFLOzRCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNyQixDQUFDLENBQUMsRUFBQTs7b0JBRkYsU0FFRSxDQUFDO29CQUVILHNCQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQzs7OztDQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmxvYlJlYWRlciB9IGZyb20gXCJAYXdzLXNkay9jaHVua2VkLWJsb2ItcmVhZGVyXCI7XG5pbXBvcnQgeyBIYXNoQ29uc3RydWN0b3IsIFN0cmVhbUhhc2hlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgYmxvYkhhc2hlcjogU3RyZWFtSGFzaGVyPEJsb2I+ID0gYXN5bmMgZnVuY3Rpb24gYmxvYkhhc2hlcihcbiAgaGFzaEN0b3I6IEhhc2hDb25zdHJ1Y3RvcixcbiAgYmxvYjogQmxvYlxuKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gIGNvbnN0IGhhc2ggPSBuZXcgaGFzaEN0b3IoKTtcblxuICBhd2FpdCBibG9iUmVhZGVyKGJsb2IsIChjaHVuaykgPT4ge1xuICAgIGhhc2gudXBkYXRlKGNodW5rKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGhhc2guZGlnZXN0KCk7XG59O1xuIl19","/**\n * @internal\n */\nexport var BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexport var DIGEST_LENGTH = 16;\n/**\n * @internal\n */\nexport var INIT = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFFN0I7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBRWhDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgQkxPQ0tfU0laRSA9IDY0O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgRElHRVNUX0xFTkdUSCA9IDE2O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgSU5JVCA9IFsweDY3NDUyMzAxLCAweGVmY2RhYjg5LCAweDk4YmFkY2ZlLCAweDEwMzI1NDc2XTtcbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { BLOCK_SIZE, DIGEST_LENGTH, INIT } from \"./constants\";\nvar Md5 = /** @class */ (function () {\n function Md5() {\n this.state = Uint32Array.from(INIT);\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n }\n Md5.prototype.update = function (sourceData) {\n if (isEmptyData(sourceData)) {\n return;\n }\n else if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var data = convertToBuffer(sourceData);\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n Md5.prototype.digest = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, buffer, undecoratedLength, bytesHashed, bitsHashed, i, i, out, i;\n return __generator(this, function (_b) {\n if (!this.finished) {\n _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed;\n bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 128);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n return [2 /*return*/, new Uint8Array(out.buffer, out.byteOffset, out.byteLength)];\n });\n });\n };\n Md5.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var a = state[0], b = state[1], c = state[2], d = state[3];\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n state[0] = (a + state[0]) & 0xffffffff;\n state[1] = (b + state[1]) & 0xffffffff;\n state[2] = (c + state[2]) & 0xffffffff;\n state[3] = (d + state[3]) & 0xffffffff;\n };\n return Md5;\n}());\nexport { Md5 };\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xffffffff) + ((x + t) & 0xffffffff)) & 0xffffffff;\n return (((a << s) | (a >>> (32 - s))) + b) & 0xffffffff;\n}\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | (~b & d), a, b, x, s, t);\n}\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | ~d), a, b, x, s, t);\n}\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUQ7SUFBQTtRQUNVLFVBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLFdBQU0sR0FBYSxJQUFJLFFBQVEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzdELGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUE2STNCLENBQUM7SUEzSUMsb0JBQU0sR0FBTixVQUFPLFVBQXNCO1FBQzNCLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzNCLE9BQU87U0FDUjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFNLElBQUksR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBQSxVQUFVLEdBQUssSUFBSSxXQUFULENBQVU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUM7UUFFL0IsT0FBTyxVQUFVLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVELFVBQVUsRUFBRSxDQUFDO1lBRWIsSUFBSSxJQUFJLENBQUMs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QUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUUvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlELENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUUvRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDdkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUN2QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO0lBQ3pDLENBQUM7SUFDSCxVQUFDO0FBQUQsQ0FBQyxBQWxKRCxJQWtKQzs7QUFFRCxTQUFTLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDM0UsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQVMsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDckYsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDckYsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsRUFBRSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDckYsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRCxTQUFTLEVBQUUsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO0lBQ3JGLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsSUFBZ0I7SUFDbkMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztLQUMxQjtJQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLElBQWdCO0lBQ3ZDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3ZCO0lBRUQsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzVCLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDckc7SUFFRCxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tVXRmOCB9IGZyb20gXCJAYXdzLXNkay91dGlsLXV0ZjgtYnJvd3NlclwiO1xuXG5pbXBvcnQgeyBCTE9DS19TSVpFLCBESUdFU1RfTEVOR1RILCBJTklUIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBjbGFzcyBNZDUgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSBzdGF0ZSA9IFVpbnQzMkFycmF5LmZyb20oSU5JVCk7XG4gIHByaXZhdGUgYnVmZmVyOiBEYXRhVmlldyA9IG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoQkxPQ0tfU0laRSkpO1xuICBwcml2YXRlIGJ1ZmZlckxlbmd0aCA9IDA7XG4gIHByaXZhdGUgYnl0ZXNIYXNoZWQgPSAwO1xuICBwcml2YXRlIGZpbmlzaGVkID0gZmFsc2U7XG5cbiAgdXBkYXRlKHNvdXJjZURhdGE6IFNvdXJjZURhdGEpOiB2b2lkIHtcbiAgICBpZiAoaXNFbXB0eURhdGEoc291cmNlRGF0YSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmluaXNoZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkF0dGVtcHRlZCB0byB1cGRhdGUgYW4gYWxyZWFkeSBmaW5pc2hlZCBoYXNoLlwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhID0gY29udmVydFRvQnVmZmVyKHNvdXJjZURhdGEpO1xuXG4gICAgbGV0IHBvc2l0aW9uID0gMDtcbiAgICBsZXQgeyBieXRlTGVuZ3RoIH0gPSBkYXRhO1xuICAgIHRoaXMuYnl0ZXNIYXNoZWQgKz0gYnl0ZUxlbmd0aDtcblxuICAgIHdoaWxlIChieXRlTGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5idWZmZXIuc2V0VWludDgodGhpcy5idWZmZXJMZW5ndGgrKywgZGF0YVtwb3NpdGlvbisrXSk7XG4gICAgICBieXRlTGVuZ3RoLS07XG5cbiAgICAgIGlmICh0aGlzLmJ1ZmZlckxlbmd0aCA9PT0gQkxPQ0tfU0laRSkge1xuICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRpZ2VzdCgpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBpZiAoIXRoaXMuZmluaXNoZWQpIHtcbiAgICAgIGNvbnN0IHsgYnVmZmVyLCBidWZmZXJMZW5ndGg6IHVuZGVjb3JhdGVkTGVuZ3RoLCBieXRlc0hhc2hlZCB9ID0gdGhpcztcbiAgICAgIGNvbnN0IGJpdHNIYXNoZWQgPSBieXRlc0hhc2hlZCAqIDg7XG4gICAgICBidWZmZXIuc2V0VWludDgodGhpcy5idWZmZXJMZW5ndGgrKywgMGIxMDAwMDAwMCk7XG5cbiAgICAgIC8vIEVuc3VyZSB0aGUgZmluYWwgYmxvY2sgaGFzIGVub3VnaCByb29tIGZvciB0aGUgaGFzaGVkIGxlbmd0aFxuICAgICAgaWYgKHVuZGVjb3JhdGVkTGVuZ3RoICUgQkxPQ0tfU0laRSA+PSBCTE9DS19TSVpFIC0gOCkge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFOyBpKyspIHtcbiAgICAgICAgICBidWZmZXIuc2V0VWludDgoaSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgIH1cblxuICAgICAgZm9yIChsZXQgaSA9IHRoaXMuYnVmZmVyTGVuZ3RoOyBpIDwgQkxPQ0tfU0laRSAtIDg7IGkrKykge1xuICAgICAgICBidWZmZXIuc2V0VWludDgoaSwgMCk7XG4gICAgICB9XG4gICAgICBidWZmZXIuc2V0VWludDMyKEJMT0NLX1NJWkUgLSA4LCBiaXRzSGFzaGVkID4+PiAwLCB0cnVlKTtcbiAgICAgIGJ1ZmZlci5zZXRVaW50MzIoQkxPQ0tfU0laRSAtIDQsIE1hdGguZmxvb3IoYml0c0hhc2hlZCAvIDB4MTAwMDAwMDAwKSwgdHJ1ZSk7XG5cbiAgICAgIHRoaXMuaGFzaEJ1ZmZlcigpO1xuXG4gICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXQgPSBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKERJR0VTVF9MRU5HVEgpKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgICAgb3V0LnNldFVpbnQzMihpICogNCwgdGhpcy5zdGF0ZVtpXSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KG91dC5idWZmZXIsIG91dC5ieXRlT2Zmc2V0LCBvdXQuYnl0ZUxlbmd0aCk7XG4gIH1cblxuICBwcml2YXRlIGhhc2hCdWZmZXIoKTogdm9pZCB7XG4gICAgY29uc3QgeyBidWZmZXIsIHN0YXRlIH0gPSB0aGlzO1xuXG4gICAgbGV0IGEgPSBzdGF0ZVswXSxcbiAgICAgIGIgPSBzdGF0ZVsxXSxcbiAgICAgIGMgPSBzdGF0ZVsyXSxcbiAgICAgIGQgPSBzdGF0ZVszXTtcblxuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDAsIHRydWUpLCA3LCAweGQ3NmFhNDc4KTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig0LCB0cnVlKSwgMTIsIDB4ZThjN2I3NTYpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDgsIHRydWUpLCAxNywgMHgyNDIwNzBkYik7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAyMiwgMHhjMWJkY2VlZSk7XG4gICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMTYsIHRydWUpLCA3LCAweGY1N2MwZmFmKTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigyMCwgdHJ1ZSksIDEyLCAweDQ3ODdjNjJhKTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMigyNCwgdHJ1ZSksIDE3LCAweGE4MzA0NjEzKTtcbiAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigyOCwgdHJ1ZSksIDIyLCAweGZkNDY5NTAxKTtcbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigzMiwgdHJ1ZSksIDcsIDB4Njk4MDk4ZDgpO1xuICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDM2LCB0cnVlKSwgMTIsIDB4OGI0NGY3YWYpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDQwLCB0cnVlKSwgMTcsIDB4ZmZmZjViYjEpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDQ0LCB0cnVlKSwgMjIsIDB4ODk1Y2Q3YmUpO1xuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDQ4LCB0cnVlKSwgNywgMHg2YjkwMTEyMik7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNTIsIHRydWUpLCAxMiwgMHhmZDk4NzE5Myk7XG4gICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoNTYsIHRydWUpLCAxNywgMHhhNjc5NDM4ZSk7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNjAsIHRydWUpLCAyMiwgMHg0OWI0MDgyMSk7XG5cbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig0LCB0cnVlKSwgNSwgMHhmNjFlMjU2Mik7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoMjQsIHRydWUpLCA5LCAweGMwNDBiMzQwKTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig0NCwgdHJ1ZSksIDE0LCAweDI2NWU1YTUxKTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigwLCB0cnVlKSwgMjAsIDB4ZTliNmM3YWEpO1xuICAgIGEgPSBnZyhhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDIwLCB0cnVlKSwgNSwgMHhkNjJmMTA1ZCk7XG4gICAgZCA9IGdnKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNDAsIHRydWUpLCA5LCAweDAyNDQxNDUzKTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig2MCwgdHJ1ZSksIDE0LCAweGQ4YTFlNjgxKTtcbiAgICBiID0gZ2coYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigxNiwgdHJ1ZSksIDIwLCAweGU3ZDNmYmM4KTtcbiAgICBhID0gZ2coYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigzNiwgdHJ1ZSksIDUsIDB4MjFlMWNkZTYpO1xuICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgOSwgMHhjMzM3MDdkNik7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAxNCwgMHhmNGQ1MGQ4Nyk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMzIsIHRydWUpLCAyMCwgMHg0NTVhMTRlZCk7XG4gICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoNTIsIHRydWUpLCA1LCAweGE5ZTNlOTA1KTtcbiAgICBkID0gZ2coZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig4LCB0cnVlKSwgOSwgMHhmY2VmYTNmOCk7XG4gICAgYyA9IGdnKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMjgsIHRydWUpLCAxNCwgMHg2NzZmMDJkOSk7XG4gICAgYiA9IGdnKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNDgsIHRydWUpLCAyMCwgMHg4ZDJhNGM4YSk7XG5cbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigyMCwgdHJ1ZSksIDQsIDB4ZmZmYTM5NDIpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDMyLCB0cnVlKSwgMTEsIDB4ODc3MWY2ODEpO1xuICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDQ0LCB0cnVlKSwgMTYsIDB4NmQ5ZDYxMjIpO1xuICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgMjMsIDB4ZmRlNTM4MGMpO1xuICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDQsIHRydWUpLCA0LCAweGE0YmVlYTQ0KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMigxNiwgdHJ1ZSksIDExLCAweDRiZGVjZmE5KTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMigyOCwgdHJ1ZSksIDE2LCAweGY2YmI0YjYwKTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig0MCwgdHJ1ZSksIDIzLCAweGJlYmZiYzcwKTtcbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMig1MiwgdHJ1ZSksIDQsIDB4Mjg5YjdlYzYpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDAsIHRydWUpLCAxMSwgMHhlYWExMjdmYSk7XG4gICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAxNiwgMHhkNGVmMzA4NSk7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoMjQsIHRydWUpLCAyMywgMHgwNDg4MWQwNSk7XG4gICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMzYsIHRydWUpLCA0LCAweGQ5ZDRkMDM5KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyLmdldFVpbnQzMig0OCwgdHJ1ZSksIDExLCAweGU2ZGI5OWU1KTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyLmdldFVpbnQzMig2MCwgdHJ1ZSksIDE2LCAweDFmYTI3Y2Y4KTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMig4LCB0cnVlKSwgMjMsIDB4YzRhYzU2NjUpO1xuXG4gICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlci5nZXRVaW50MzIoMCwgdHJ1ZSksIDYsIDB4ZjQyOTIyNDQpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDI4LCB0cnVlKSwgMTAsIDB4NDMyYWZmOTcpO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDU2LCB0cnVlKSwgMTUsIDB4YWI5NDIzYTcpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDIwLCB0cnVlKSwgMjEsIDB4ZmM5M2EwMzkpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDQ4LCB0cnVlKSwgNiwgMHg2NTViNTljMyk7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoMTIsIHRydWUpLCAxMCwgMHg4ZjBjY2M5Mik7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoNDAsIHRydWUpLCAxNSwgMHhmZmVmZjQ3ZCk7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlci5nZXRVaW50MzIoNCwgdHJ1ZSksIDIxLCAweDg1ODQ1ZGQxKTtcbiAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyLmdldFVpbnQzMigzMiwgdHJ1ZSksIDYsIDB4NmZhODdlNGYpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXIuZ2V0VWludDMyKDYwLCB0cnVlKSwgMTAsIDB4ZmUyY2U2ZTApO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXIuZ2V0VWludDMyKDI0LCB0cnVlKSwgMTUsIDB4YTMwMTQzMTQpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXIuZ2V0VWludDMyKDUyLCB0cnVlKSwgMjEsIDB4NGUwODExYTEpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXIuZ2V0VWludDMyKDE2LCB0cnVlKSwgNiwgMHhmNzUzN2U4Mik7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlci5nZXRVaW50MzIoNDQsIHRydWUpLCAxMCwgMHhiZDNhZjIzNSk7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlci5nZXRVaW50MzIoOCwgdHJ1ZSksIDE1LCAweDJhZDdkMmJiKTtcbiAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyLmdldFVpbnQzMigzNiwgdHJ1ZSksIDIxLCAweGViODZkMzkxKTtcblxuICAgIHN0YXRlWzBdID0gKGEgKyBzdGF0ZVswXSkgJiAweGZmZmZmZmZmO1xuICAgIHN0YXRlWzFdID0gKGIgKyBzdGF0ZVsxXSkgJiAweGZmZmZmZmZmO1xuICAgIHN0YXRlWzJdID0gKGMgKyBzdGF0ZVsyXSkgJiAweGZmZmZmZmZmO1xuICAgIHN0YXRlWzNdID0gKGQgKyBzdGF0ZVszXSkgJiAweGZmZmZmZmZmO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNtbihxOiBudW1iZXIsIGE6IG51bWJlciwgYjogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIGEgPSAoKChhICsgcSkgJiAweGZmZmZmZmZmKSArICgoeCArIHQpICYgMHhmZmZmZmZmZikpICYgMHhmZmZmZmZmZjtcbiAgcmV0dXJuICgoKGEgPDwgcykgfCAoYSA+Pj4gKDMyIC0gcykpKSArIGIpICYgMHhmZmZmZmZmZjtcbn1cblxuZnVuY3Rpb24gZmYoYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oKGIgJiBjKSB8ICh+YiAmIGQpLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gZ2coYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oKGIgJiBkKSB8IChjICYgfmQpLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gaGgoYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oYiBeIGMgXiBkLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gaWkoYTogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyLCB4OiBudW1iZXIsIHM6IG51bWJlciwgdDogbnVtYmVyKSB7XG4gIHJldHVybiBjbW4oYyBeIChiIHwgfmQpLCBhLCBiLCB4LCBzLCB0KTtcbn1cblxuZnVuY3Rpb24gaXNFbXB0eURhdGEoZGF0YTogU291cmNlRGF0YSk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZGF0YS5sZW5ndGggPT09IDA7XG4gIH1cblxuICByZXR1cm4gZGF0YS5ieXRlTGVuZ3RoID09PSAwO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0VG9CdWZmZXIoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGRhdGEuYnVmZmVyLCBkYXRhLmJ5dGVPZmZzZXQsIGRhdGEuYnl0ZUxlbmd0aCAvIFVpbnQ4QXJyYXkuQllURVNfUEVSX0VMRU1FTlQpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KGRhdGEpO1xufVxuIl19","import { __assign } from \"tslib\";\n// Partition default templates\nvar AWS_TEMPLATE = \"s3.{region}.amazonaws.com\";\nvar AWS_CN_TEMPLATE = \"s3.{region}.amazonaws.com.cn\";\nvar AWS_ISO_TEMPLATE = \"s3.{region}.c2s.ic.gov\";\nvar AWS_ISO_B_TEMPLATE = \"s3.{region}.sc2s.sgov.gov\";\nvar AWS_US_GOV_TEMPLATE = \"s3.{region}.amazonaws.com\";\n// Partition regions\nvar AWS_REGIONS = new Set([\n \"af-south-1\",\n \"ap-east-1\",\n \"ap-northeast-1\",\n \"ap-northeast-2\",\n \"ap-south-1\",\n \"ap-southeast-1\",\n \"ap-southeast-2\",\n \"ca-central-1\",\n \"eu-central-1\",\n \"eu-north-1\",\n \"eu-south-1\",\n \"eu-west-1\",\n \"eu-west-2\",\n \"eu-west-3\",\n \"me-south-1\",\n \"sa-east-1\",\n \"us-east-1\",\n \"us-east-2\",\n \"us-west-1\",\n \"us-west-2\",\n]);\nvar AWS_CN_REGIONS = new Set([\"cn-north-1\", \"cn-northwest-1\"]);\nvar AWS_ISO_REGIONS = new Set([\"us-iso-east-1\"]);\nvar AWS_ISO_B_REGIONS = new Set([\"us-isob-east-1\"]);\nvar AWS_US_GOV_REGIONS = new Set([\"us-gov-east-1\", \"us-gov-west-1\"]);\nexport var defaultRegionInfoProvider = function (region, options) {\n var regionInfo = undefined;\n switch (region) {\n // First, try to match exact region names.\n case \"af-south-1\":\n regionInfo = {\n hostname: \"s3.af-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-east-1\":\n regionInfo = {\n hostname: \"s3.ap-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-1\":\n regionInfo = {\n hostname: \"s3.ap-northeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-northeast-2\":\n regionInfo = {\n hostname: \"s3.ap-northeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-south-1\":\n regionInfo = {\n hostname: \"s3.ap-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-1\":\n regionInfo = {\n hostname: \"s3.ap-southeast-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"ap-southeast-2\":\n regionInfo = {\n hostname: \"s3.ap-southeast-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"aws-global\":\n regionInfo = {\n hostname: \"s3.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"ca-central-1\":\n regionInfo = {\n hostname: \"s3.ca-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"cn-north-1\":\n regionInfo = {\n hostname: \"s3.cn-north-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"cn-northwest-1\":\n regionInfo = {\n hostname: \"s3.cn-northwest-1.amazonaws.com.cn\",\n partition: \"aws-cn\",\n };\n break;\n case \"eu-central-1\":\n regionInfo = {\n hostname: \"s3.eu-central-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-north-1\":\n regionInfo = {\n hostname: \"s3.eu-north-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-south-1\":\n regionInfo = {\n hostname: \"s3.eu-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-1\":\n regionInfo = {\n hostname: \"s3.eu-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-2\":\n regionInfo = {\n hostname: \"s3.eu-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"eu-west-3\":\n regionInfo = {\n hostname: \"s3.eu-west-3.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"fips-us-gov-west-1\":\n regionInfo = {\n hostname: \"s3-fips.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n signingRegion: \"us-gov-west-1\",\n };\n break;\n case \"me-south-1\":\n regionInfo = {\n hostname: \"s3.me-south-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"s3-external-1\":\n regionInfo = {\n hostname: \"s3-external-1.amazonaws.com\",\n partition: \"aws\",\n signingRegion: \"us-east-1\",\n };\n break;\n case \"sa-east-1\":\n regionInfo = {\n hostname: \"s3.sa-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-1\":\n regionInfo = {\n hostname: \"s3.us-east-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-east-2\":\n regionInfo = {\n hostname: \"s3.us-east-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-gov-east-1\":\n regionInfo = {\n hostname: \"s3.us-gov-east-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-gov-west-1\":\n regionInfo = {\n hostname: \"s3.us-gov-west-1.amazonaws.com\",\n partition: \"aws-us-gov\",\n };\n break;\n case \"us-iso-east-1\":\n regionInfo = {\n hostname: \"s3.us-iso-east-1.c2s.ic.gov\",\n partition: \"aws-iso\",\n };\n break;\n case \"us-isob-east-1\":\n regionInfo = {\n hostname: \"s3.us-isob-east-1.sc2s.sgov.gov\",\n partition: \"aws-iso-b\",\n };\n break;\n case \"us-west-1\":\n regionInfo = {\n hostname: \"s3.us-west-1.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n case \"us-west-2\":\n regionInfo = {\n hostname: \"s3.us-west-2.amazonaws.com\",\n partition: \"aws\",\n };\n break;\n // Next, try to match partition endpoints.\n default:\n if (AWS_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n if (AWS_CN_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_CN_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-cn\",\n };\n }\n if (AWS_ISO_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso\",\n };\n }\n if (AWS_ISO_B_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_ISO_B_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-iso-b\",\n };\n }\n if (AWS_US_GOV_REGIONS.has(region)) {\n regionInfo = {\n hostname: AWS_US_GOV_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws-us-gov\",\n };\n }\n // Finally, assume it's an AWS partition endpoint.\n if (regionInfo === undefined) {\n regionInfo = {\n hostname: AWS_TEMPLATE.replace(\"{region}\", region),\n partition: \"aws\",\n };\n }\n }\n return Promise.resolve(__assign({ signingService: \"s3\" }, regionInfo));\n};\n//# sourceMappingURL=endpoints.js.map","import { defaultRegionInfoProvider } from \"./endpoints\";\nimport { parseUrl } from \"@aws-sdk/url-parser\";\n/**\n * @internal\n */\nexport var ClientSharedValues = {\n apiVersion: \"2006-03-01\",\n disableHostPrefix: false,\n logger: {},\n regionInfoProvider: defaultRegionInfoProvider,\n serviceId: \"S3\",\n signingEscapePath: false,\n urlParser: parseUrl,\n useArnRegion: false,\n};\n//# sourceMappingURL=runtimeConfig.shared.js.map","import { __assign } from \"tslib\";\nimport packageInfo from \"./package.json\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { eventStreamSerdeProvider } from \"@aws-sdk/eventstream-serde-browser\";\nimport { FetchHttpHandler, streamCollector } from \"@aws-sdk/fetch-http-handler\";\nimport { blobHasher as streamHasher } from \"@aws-sdk/hash-blob-browser\";\nimport { invalidProvider } from \"@aws-sdk/invalid-dependency\";\nimport { Md5 } from \"@aws-sdk/md5-js\";\nimport { DEFAULT_MAX_ATTEMPTS } from \"@aws-sdk/middleware-retry\";\nimport { fromBase64, toBase64 } from \"@aws-sdk/util-base64-browser\";\nimport { calculateBodyLength } from \"@aws-sdk/util-body-length-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { fromUtf8, toUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { ClientSharedValues } from \"./runtimeConfig.shared\";\n/**\n * @internal\n */\nexport var ClientDefaultValues = __assign(__assign({}, ClientSharedValues), { runtime: \"browser\", base64Decoder: fromBase64, base64Encoder: toBase64, bodyLengthChecker: calculateBodyLength, credentialDefaultProvider: function (_) { return function () { return Promise.reject(new Error(\"Credential is missing\")); }; }, defaultUserAgentProvider: defaultUserAgent({\n serviceId: ClientSharedValues.serviceId,\n clientVersion: packageInfo.version,\n }), eventStreamSerdeProvider: eventStreamSerdeProvider, maxAttempts: DEFAULT_MAX_ATTEMPTS, md5: Md5, region: invalidProvider(\"Region is missing\"), requestHandler: new FetchHttpHandler(), sha256: Sha256, streamCollector: streamCollector,\n streamHasher: streamHasher, utf8Decoder: fromUtf8, utf8Encoder: toUtf8 });\n//# sourceMappingURL=runtimeConfig.browser.js.map","import { __assign } from \"tslib\";\nexport var resolveEventStreamSerdeConfig = function (input) { return (__assign(__assign({}, input), { eventStreamMarshaller: input.eventStreamSerdeProvider(input) })); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRTdHJlYW1TZXJkZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FdmVudFN0cmVhbVNlcmRlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFZQSxNQUFNLENBQUMsSUFBTSw2QkFBNkIsR0FBRyxVQUMzQyxLQUEyRCxJQUNwQixPQUFBLHVCQUNwQyxLQUFLLEtBQ1IscUJBQXFCLEVBQUUsS0FBSyxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxJQUM1RCxFQUh1QyxDQUd2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRTdHJlYW1NYXJzaGFsbGVyLCBFdmVudFN0cmVhbVNlcmRlUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFN0cmVhbVNlcmRlSW5wdXRDb25maWcge31cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFN0cmVhbVNlcmRlUmVzb2x2ZWRDb25maWcge1xuICBldmVudFN0cmVhbU1hcnNoYWxsZXI6IEV2ZW50U3RyZWFtTWFyc2hhbGxlcjtcbn1cblxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIGV2ZW50U3RyZWFtU2VyZGVQcm92aWRlcjogRXZlbnRTdHJlYW1TZXJkZVByb3ZpZGVyO1xufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUV2ZW50U3RyZWFtU2VyZGVDb25maWcgPSA8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgRXZlbnRTdHJlYW1TZXJkZUlucHV0Q29uZmlnXG4pOiBUICYgRXZlbnRTdHJlYW1TZXJkZVJlc29sdmVkQ29uZmlnID0+ICh7XG4gIC4uLmlucHV0LFxuICBldmVudFN0cmVhbU1hcnNoYWxsZXI6IGlucHV0LmV2ZW50U3RyZWFtU2VyZGVQcm92aWRlcihpbnB1dCksXG59KTtcbiJdfQ==","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function addExpectContinueMiddleware(options) {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var request;\n return __generator(this, function (_a) {\n request = args.request;\n if (HttpRequest.isInstance(request) && request.body && options.runtime === \"node\") {\n request.headers = __assign(__assign({}, request.headers), { Expect: \"100-continue\" });\n }\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n });\n }); }; };\n}\nexport var addExpectContinueMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_EXPECT_HEADER\", \"EXPECT_HEADER\"],\n name: \"addExpectContinueMiddleware\",\n override: true,\n};\nexport var getAddExpectContinuePlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQWVyRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsT0FBMkI7SUFBdkUsaUJBZ0JDO0lBZkMsT0FBTyxVQUFnQyxJQUErQixJQUFnQyxPQUFBLFVBQ3BHLElBQWdDOzs7WUFFeEIsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO1lBQ3pCLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO2dCQUNqRixPQUFPLENBQUMsT0FBTyx5QkFDVixPQUFPLENBQUMsT0FBTyxLQUNsQixNQUFNLEVBQUUsY0FBYyxHQUN2QixDQUFDO2FBQ0g7WUFDRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOztTQUNKLEVBZHFHLENBY3JHLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLElBQU0sa0NBQWtDLEdBQXdCO0lBQ3JFLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDO0lBQzVDLElBQUksRUFBRSw2QkFBNkI7SUFDbkMsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcsVUFBQyxPQUEyQixJQUEwQixPQUFBLENBQUM7SUFDL0YsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxFQUFFLGtDQUFrQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztDQUNGLENBQUMsRUFKOEYsQ0FJOUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPcHRpb25zLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIEJ1aWxkTWlkZGxld2FyZSxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBydW50aW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUob3B0aW9uczogUHJldmlvdXNseVJlc29sdmVkKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4pOiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgICBhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55PlxuICApOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgIGlmIChIdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpICYmIHJlcXVlc3QuYm9keSAmJiBvcHRpb25zLnJ1bnRpbWUgPT09IFwibm9kZVwiKSB7XG4gICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgIC4uLnJlcXVlc3QuaGVhZGVycyxcbiAgICAgICAgRXhwZWN0OiBcIjEwMC1jb250aW51ZVwiLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQoe1xuICAgICAgLi4uYXJncyxcbiAgICAgIHJlcXVlc3QsXG4gICAgfSk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHRhZ3M6IFtcIlNFVF9FWFBFQ1RfSEVBREVSXCIsIFwiRVhQRUNUX0hFQURFUlwiXSxcbiAgbmFtZTogXCJhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmVcIixcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QWRkRXhwZWN0Q29udGludWVQbHVnaW4gPSAob3B0aW9uczogUHJldmlvdXNseVJlc29sdmVkKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChhZGRFeHBlY3RDb250aW51ZU1pZGRsZXdhcmUob3B0aW9ucyksIGFkZEV4cGVjdENvbnRpbnVlTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0=","import { __assign } from \"tslib\";\nimport { Encryption, } from \"./models_0\";\nimport { SENSITIVE_STRING } from \"@aws-sdk/smithy-client\";\nexport var MetadataEntry;\n(function (MetadataEntry) {\n MetadataEntry.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(MetadataEntry || (MetadataEntry = {}));\nexport var S3Location;\n(function (S3Location) {\n S3Location.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Encryption && { Encryption: Encryption.filterSensitiveLog(obj.Encryption) }))); };\n})(S3Location || (S3Location = {}));\nexport var OutputLocation;\n(function (OutputLocation) {\n OutputLocation.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.S3 && { S3: S3Location.filterSensitiveLog(obj.S3) }))); };\n})(OutputLocation || (OutputLocation = {}));\nexport var FileHeaderInfo;\n(function (FileHeaderInfo) {\n FileHeaderInfo[\"IGNORE\"] = \"IGNORE\";\n FileHeaderInfo[\"NONE\"] = \"NONE\";\n FileHeaderInfo[\"USE\"] = \"USE\";\n})(FileHeaderInfo || (FileHeaderInfo = {}));\nexport var CSVInput;\n(function (CSVInput) {\n CSVInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CSVInput || (CSVInput = {}));\nexport var JSONType;\n(function (JSONType) {\n JSONType[\"DOCUMENT\"] = \"DOCUMENT\";\n JSONType[\"LINES\"] = \"LINES\";\n})(JSONType || (JSONType = {}));\nexport var JSONInput;\n(function (JSONInput) {\n JSONInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(JSONInput || (JSONInput = {}));\nexport var ParquetInput;\n(function (ParquetInput) {\n ParquetInput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ParquetInput || (ParquetInput = {}));\nexport var InputSerialization;\n(function (InputSerialization) {\n InputSerialization.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(InputSerialization || (InputSerialization = {}));\nexport var QuoteFields;\n(function (QuoteFields) {\n QuoteFields[\"ALWAYS\"] = \"ALWAYS\";\n QuoteFields[\"ASNEEDED\"] = \"ASNEEDED\";\n})(QuoteFields || (QuoteFields = {}));\nexport var CSVOutput;\n(function (CSVOutput) {\n CSVOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CSVOutput || (CSVOutput = {}));\nexport var JSONOutput;\n(function (JSONOutput) {\n JSONOutput.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(JSONOutput || (JSONOutput = {}));\nexport var OutputSerialization;\n(function (OutputSerialization) {\n OutputSerialization.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(OutputSerialization || (OutputSerialization = {}));\nexport var SelectParameters;\n(function (SelectParameters) {\n SelectParameters.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(SelectParameters || (SelectParameters = {}));\nexport var RestoreRequestType;\n(function (RestoreRequestType) {\n RestoreRequestType[\"SELECT\"] = \"SELECT\";\n})(RestoreRequestType || (RestoreRequestType = {}));\nexport var RestoreRequest;\n(function (RestoreRequest) {\n RestoreRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.OutputLocation && { OutputLocation: OutputLocation.filterSensitiveLog(obj.OutputLocation) }))); };\n})(RestoreRequest || (RestoreRequest = {}));\nexport var RestoreObjectRequest;\n(function (RestoreObjectRequest) {\n RestoreObjectRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.RestoreRequest && { RestoreRequest: RestoreRequest.filterSensitiveLog(obj.RestoreRequest) }))); };\n})(RestoreObjectRequest || (RestoreObjectRequest = {}));\nexport var ContinuationEvent;\n(function (ContinuationEvent) {\n ContinuationEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ContinuationEvent || (ContinuationEvent = {}));\nexport var EndEvent;\n(function (EndEvent) {\n EndEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(EndEvent || (EndEvent = {}));\nexport var Progress;\n(function (Progress) {\n Progress.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Progress || (Progress = {}));\nexport var ProgressEvent;\n(function (ProgressEvent) {\n ProgressEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ProgressEvent || (ProgressEvent = {}));\nexport var RecordsEvent;\n(function (RecordsEvent) {\n RecordsEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RecordsEvent || (RecordsEvent = {}));\nexport var Stats;\n(function (Stats) {\n Stats.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(Stats || (Stats = {}));\nexport var StatsEvent;\n(function (StatsEvent) {\n StatsEvent.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(StatsEvent || (StatsEvent = {}));\nexport var SelectObjectContentEventStream;\n(function (SelectObjectContentEventStream) {\n SelectObjectContentEventStream.visit = function (value, visitor) {\n if (value.Records !== undefined)\n return visitor.Records(value.Records);\n if (value.Stats !== undefined)\n return visitor.Stats(value.Stats);\n if (value.Progress !== undefined)\n return visitor.Progress(value.Progress);\n if (value.Cont !== undefined)\n return visitor.Cont(value.Cont);\n if (value.End !== undefined)\n return visitor.End(value.End);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n SelectObjectContentEventStream.filterSensitiveLog = function (obj) {\n var _a;\n if (obj.Records !== undefined)\n return { Records: RecordsEvent.filterSensitiveLog(obj.Records) };\n if (obj.Stats !== undefined)\n return { Stats: StatsEvent.filterSensitiveLog(obj.Stats) };\n if (obj.Progress !== undefined)\n return { Progress: ProgressEvent.filterSensitiveLog(obj.Progress) };\n if (obj.Cont !== undefined)\n return { Cont: ContinuationEvent.filterSensitiveLog(obj.Cont) };\n if (obj.End !== undefined)\n return { End: EndEvent.filterSensitiveLog(obj.End) };\n if (obj.$unknown !== undefined)\n return _a = {}, _a[obj.$unknown[0]] = \"UNKNOWN\", _a;\n };\n})(SelectObjectContentEventStream || (SelectObjectContentEventStream = {}));\nexport var SelectObjectContentOutput;\n(function (SelectObjectContentOutput) {\n SelectObjectContentOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.Payload && { Payload: \"STREAMING_CONTENT\" }))); };\n})(SelectObjectContentOutput || (SelectObjectContentOutput = {}));\nexport var RequestProgress;\n(function (RequestProgress) {\n RequestProgress.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(RequestProgress || (RequestProgress = {}));\nexport var ScanRange;\n(function (ScanRange) {\n ScanRange.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(ScanRange || (ScanRange = {}));\nexport var SelectObjectContentRequest;\n(function (SelectObjectContentRequest) {\n SelectObjectContentRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(SelectObjectContentRequest || (SelectObjectContentRequest = {}));\nexport var UploadPartOutput;\n(function (UploadPartOutput) {\n UploadPartOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(UploadPartOutput || (UploadPartOutput = {}));\nexport var UploadPartRequest;\n(function (UploadPartRequest) {\n UploadPartRequest.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }))); };\n})(UploadPartRequest || (UploadPartRequest = {}));\nexport var CopyPartResult;\n(function (CopyPartResult) {\n CopyPartResult.filterSensitiveLog = function (obj) { return (__assign({}, obj)); };\n})(CopyPartResult || (CopyPartResult = {}));\nexport var UploadPartCopyOutput;\n(function (UploadPartCopyOutput) {\n UploadPartCopyOutput.filterSensitiveLog = function (obj) { return (__assign(__assign({}, obj), (obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }))); };\n})(UploadPartCopyOutput || (UploadPartCopyOutput = {}));\nexport var UploadPartCopyRequest;\n(function (UploadPartCopyRequest) {\n UploadPartCopyRequest.filterSensitiveLog = function (obj) { return (__assign(__assign(__assign({}, obj), (obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING })), (obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }))); };\n})(UploadPartCopyRequest || (UploadPartCopyRequest = {}));\n//# sourceMappingURL=models_1.js.map","import { __assign, __extends } from \"tslib\";\nimport { ClientDefaultValues as __ClientDefaultValues } from \"./runtimeConfig\";\nimport { resolveEndpointsConfig, resolveRegionConfig, } from \"@aws-sdk/config-resolver\";\nimport { resolveEventStreamSerdeConfig, } from \"@aws-sdk/eventstream-serde-config-resolver\";\nimport { resolveBucketEndpointConfig, } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getContentLengthPlugin } from \"@aws-sdk/middleware-content-length\";\nimport { getAddExpectContinuePlugin } from \"@aws-sdk/middleware-expect-continue\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@aws-sdk/middleware-retry\";\nimport { getUseRegionalEndpointPlugin, getValidateBucketNamePlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getAwsAuthPlugin, resolveAwsAuthConfig, } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { Client as __Client, } from \"@aws-sdk/smithy-client\";\n/**\n *

\n */\nvar S3Client = /** @class */ (function (_super) {\n __extends(S3Client, _super);\n function S3Client(configuration) {\n var _this = this;\n var _config_0 = __assign(__assign({}, __ClientDefaultValues), configuration);\n var _config_1 = resolveRegionConfig(_config_0);\n var _config_2 = resolveEndpointsConfig(_config_1);\n var _config_3 = resolveAwsAuthConfig(_config_2);\n var _config_4 = resolveRetryConfig(_config_3);\n var _config_5 = resolveHostHeaderConfig(_config_4);\n var _config_6 = resolveBucketEndpointConfig(_config_5);\n var _config_7 = resolveUserAgentConfig(_config_6);\n var _config_8 = resolveEventStreamSerdeConfig(_config_7);\n _this = _super.call(this, _config_8) || this;\n _this.config = _config_8;\n _this.middlewareStack.use(getAwsAuthPlugin(_this.config));\n _this.middlewareStack.use(getRetryPlugin(_this.config));\n _this.middlewareStack.use(getContentLengthPlugin(_this.config));\n _this.middlewareStack.use(getHostHeaderPlugin(_this.config));\n _this.middlewareStack.use(getLoggerPlugin(_this.config));\n _this.middlewareStack.use(getValidateBucketNamePlugin(_this.config));\n _this.middlewareStack.use(getUseRegionalEndpointPlugin(_this.config));\n _this.middlewareStack.use(getAddExpectContinuePlugin(_this.config));\n _this.middlewareStack.use(getUserAgentPlugin(_this.config));\n return _this;\n }\n S3Client.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return S3Client;\n}(__Client));\nexport { S3Client };\n//# sourceMappingURL=S3Client.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Credentials, Logger, getAmplifyUserAgent, } from '@aws-amplify/core';\nimport { S3Client } from '@aws-sdk/client-s3';\nimport { AxiosHttpHandler } from '../providers/axios-http-handler';\nimport { localTestingStorageEndpoint, SET_CONTENT_LENGTH_HEADER, } from './StorageConstants';\nvar logger = new Logger('S3ClientUtils');\n// placeholder credentials in order to satisfy type requirement, always results in 403 when used\nvar INVALID_CRED = { accessKeyId: '', secretAccessKey: '' };\nexport var getPrefix = function (config) {\n var credentials = config.credentials, level = config.level, customPrefix = config.customPrefix, identityId = config.identityId;\n var resolvedCustomPrefix = customPrefix || {};\n var resolvedIdentityId = identityId || credentials.identityId;\n var privatePath = (resolvedCustomPrefix.private !== undefined\n ? resolvedCustomPrefix.private\n : 'private/') +\n resolvedIdentityId +\n '/';\n var protectedPath = (resolvedCustomPrefix.protected !== undefined\n ? resolvedCustomPrefix.protected\n : 'protected/') +\n resolvedIdentityId +\n '/';\n var publicPath = resolvedCustomPrefix.public !== undefined\n ? resolvedCustomPrefix.public\n : 'public/';\n switch (level) {\n case 'private':\n return privatePath;\n case 'protected':\n return protectedPath;\n default:\n return publicPath;\n }\n};\nexport var createPrefixMiddleware = function (opt, key) { return function (next, _context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var credentials, cred, prefix, clonedInput, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n cred = Credentials.shear(credentials);\n prefix = getPrefix(__assign(__assign({}, opt), { credentials: cred }));\n clonedInput = Object.assign({}, args.input);\n if (Object.prototype.hasOwnProperty.call(args.input, 'Key')) {\n clonedInput.Key = prefix + key;\n args.input = clonedInput;\n }\n else if (Object.prototype.hasOwnProperty.call(args.input, 'Prefix')) {\n clonedInput.Prefix = prefix + key;\n args.input = clonedInput;\n }\n result = next(args);\n return [2 /*return*/, result];\n }\n });\n}); }; }; };\nvar isTimeSkewedError = function (err) {\n return err.ServerTime &&\n typeof err.Code === 'string' &&\n err.Code === 'RequestTimeTooSkewed';\n};\n// we want to take the S3Client config in parameter so we can modify it's systemClockOffset\nexport var autoAdjustClockskewMiddleware = function (config) { return function (next, _context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var err_1, serverDate;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, next(args)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n err_1 = _a.sent();\n if (isTimeSkewedError(err_1)) {\n serverDate = new Date(err_1.ServerTime);\n config.systemClockOffset = serverDate.getTime() - Date.now();\n }\n throw err_1;\n case 3: return [2 /*return*/];\n }\n });\n}); }; }; };\nexport var autoAdjustClockskewMiddlewareOptions = {\n step: 'finalizeRequest',\n name: 'autoAdjustClockskewMiddleware',\n};\nexport var prefixMiddlewareOptions = {\n step: 'initialize',\n name: 'addPrefixMiddleware',\n};\nexport var credentialsProvider = function () { return __awaiter(void 0, void 0, void 0, function () {\n var credentials, cred, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n if (!credentials)\n return [2 /*return*/, INVALID_CRED];\n cred = Credentials.shear(credentials);\n logger.debug('credentials provider get credentials', cred);\n return [2 /*return*/, cred];\n case 2:\n error_1 = _a.sent();\n logger.warn('credentials provider error', error_1);\n return [2 /*return*/, INVALID_CRED];\n case 3: return [2 /*return*/];\n }\n });\n}); };\nexport var createS3Client = function (config, emitter) {\n var region = config.region, cancelTokenSource = config.cancelTokenSource, dangerouslyConnectToHttpEndpointForTesting = config.dangerouslyConnectToHttpEndpointForTesting, useAccelerateEndpoint = config.useAccelerateEndpoint;\n var localTestingConfig = {};\n if (dangerouslyConnectToHttpEndpointForTesting) {\n localTestingConfig = {\n endpoint: localTestingStorageEndpoint,\n tls: false,\n bucketEndpoint: false,\n forcePathStyle: true,\n };\n }\n var s3client = new S3Client(__assign(__assign({ region: region, \n // Using provider instead of a static credentials, so that if an upload task was in progress, but credentials gets\n // changed or invalidated (e.g user signed out), the subsequent requests will fail.\n credentials: credentialsProvider, customUserAgent: getAmplifyUserAgent() }, localTestingConfig), { requestHandler: new AxiosHttpHandler({}, emitter, cancelTokenSource), useAccelerateEndpoint: useAccelerateEndpoint }));\n s3client.middlewareStack.remove(SET_CONTENT_LENGTH_HEADER);\n return s3client;\n};\n//# sourceMappingURL=S3ClientUtils.js.map","import { __extends } from \"tslib\";\nimport { PutObjectOutput, PutObjectRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlPutObjectCommand, serializeAws_restXmlPutObjectCommand } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object\n * to it.

\n *\n *\n *

Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the\n * entire object to the bucket.

\n *\n *

Amazon S3 is a distributed system. If it receives multiple write requests for the same object\n * simultaneously, it overwrites all but the last object written. Amazon S3 does not provide object\n * locking; if you need this, make sure to build it into your application layer or use\n * versioning instead.

\n *\n *

To ensure that data is not corrupted traversing the network, use the\n * Content-MD5 header. When you use this header, Amazon S3 checks the object\n * against the provided MD5 value and, if they do not match, returns an error. Additionally,\n * you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to\n * the calculated MD5 value.

\n * \n *

The Content-MD5 header is required for any request to upload an object\n * with a retention period configured using Amazon S3 Object Lock. For more information about\n * Amazon S3 Object Lock, see Amazon S3 Object Lock Overview\n * in the Amazon Simple Storage Service Developer Guide.

\n *
\n *\n *\n *

\n * Server-side Encryption\n *

\n *

You can optionally request server-side encryption. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data\n * when you access it. You have the option to provide your own encryption key or use AWS\n * managed encryption keys (SSE-S3 or SSE-KMS). For more information, see Using Server-Side\n * Encryption.

\n *

If you request server-side encryption using AWS Key Management Service (SSE-KMS), you can enable an S3 Bucket Key at the object-level. For more information, see Amazon S3 Bucket Keys in the Amazon Simple Storage Service Developer Guide.

\n *

\n * Access Control List (ACL)-Specific Request\n * Headers\n *

\n *

You can use headers to grant ACL- based permissions. By default, all objects are\n * private. Only the owner has full access control. When adding a new object, you can grant\n * permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These\n * permissions are then added to the ACL on the object. For more information, see Access Control List\n * (ACL) Overview and Managing ACLs Using the REST\n * API.

\n *\n *

\n * Storage Class Options\n *

\n *

By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The\n * STANDARD storage class provides high durability and high availability. Depending on\n * performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses\n * the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3\n * Service Developer Guide.

\n *\n *\n *

\n * Versioning\n *

\n *

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID\n * for the object being stored. Amazon S3 returns this ID in the response. When you enable\n * versioning for a bucket, if Amazon S3 receives multiple write requests for the same object\n * simultaneously, it stores all of the objects.

\n *

For more information about versioning, see Adding Objects to\n * Versioning Enabled Buckets. For information about returning the versioning state\n * of a bucket, see GetBucketVersioning.

\n *\n *\n *

\n * Related Resources\n *

\n * \n */\nvar PutObjectCommand = /** @class */ (function (_super) {\n __extends(PutObjectCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function PutObjectCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n PutObjectCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"PutObjectCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: PutObjectRequest.filterSensitiveLog,\n outputFilterSensitiveLog: PutObjectOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n PutObjectCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlPutObjectCommand(input, context);\n };\n PutObjectCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlPutObjectCommand(output, context);\n };\n return PutObjectCommand;\n}($Command));\nexport { PutObjectCommand };\n//# sourceMappingURL=PutObjectCommand.js.map","import { __extends } from \"tslib\";\nimport { CreateMultipartUploadOutput, CreateMultipartUploadRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlCreateMultipartUploadCommand, serializeAws_restXmlCreateMultipartUploadCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

This operation initiates a multipart upload and returns an upload ID. This upload ID is\n * used to associate all of the parts in the specific multipart upload. You specify this\n * upload ID in each of your subsequent upload part requests (see UploadPart). You also include this\n * upload ID in the final request to either complete or abort the multipart upload\n * request.

\n *\n *

For more information about multipart uploads, see Multipart Upload Overview.

\n *\n *

If you have configured a lifecycle rule to abort incomplete multipart uploads, the\n * upload must complete within the number of days specified in the bucket lifecycle\n * configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort\n * operation and Amazon S3 aborts the multipart upload. For more information, see Aborting\n * Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

\n *\n *

For information about the permissions required to use the multipart upload API, see\n * Multipart Upload API and\n * Permissions.

\n *\n *

For request signing, multipart upload is just a series of regular requests. You initiate\n * a multipart upload, send one or more requests to upload parts, and then complete the\n * multipart upload process. You sign each request individually. There is nothing special\n * about signing multipart upload requests. For more information about signing, see Authenticating\n * Requests (AWS Signature Version 4).

\n *\n * \n *

After you initiate a multipart upload and upload one or more parts, to stop being\n * charged for storing the uploaded parts, you must either complete or abort the multipart\n * upload. Amazon S3 frees up the space used to store the parts and stop charging you for\n * storing them only after you either complete or abort a multipart upload.

\n *
\n *\n *

You can optionally request server-side encryption. For server-side encryption, Amazon S3\n * encrypts your data as it writes it to disks in its data centers and decrypts it when you\n * access it. You can provide your own encryption key, or use AWS Key Management Service (AWS\n * KMS) customer master keys (CMKs) or Amazon S3-managed encryption keys. If you choose to provide\n * your own encryption key, the request headers you provide in UploadPart and UploadPartCopy requests must match the headers you used in the request to\n * initiate the upload by using CreateMultipartUpload.

\n *

To perform a multipart upload with encryption using an AWS KMS CMK, the requester must\n * have permission to the kms:Encrypt, kms:Decrypt,\n * kms:ReEncrypt*, kms:GenerateDataKey*, and\n * kms:DescribeKey actions on the key. These permissions are required because\n * Amazon S3 must decrypt and read data from the encrypted file parts before it completes the\n * multipart upload.

\n *\n *

If your AWS Identity and Access Management (IAM) user or role is in the same AWS account\n * as the AWS KMS CMK, then you must have these permissions on the key policy. If your IAM\n * user or role belongs to a different account than the key, then you must have the\n * permissions on both the key policy and your IAM user or role.

\n *\n *\n *

For more information, see Protecting\n * Data Using Server-Side Encryption.

\n *\n *
\n *
Access Permissions
\n *
\n *

When copying an object, you can optionally specify the accounts or groups that\n * should be granted specific permissions on the new object. There are two ways to\n * grant the permissions using the request headers:

\n *
    \n *
  • \n *

    Specify a canned ACL with the x-amz-acl request header. For\n * more information, see Canned ACL.

    \n *
  • \n *
  • \n *

    Specify access permissions explicitly with the\n * x-amz-grant-read, x-amz-grant-read-acp,\n * x-amz-grant-write-acp, and\n * x-amz-grant-full-control headers. These parameters map to\n * the set of permissions that Amazon S3 supports in an ACL. For more information,\n * see Access Control List (ACL)\n * Overview.

    \n *
  • \n *
\n *

You can use either a canned ACL or specify access permissions explicitly. You\n * cannot do both.

\n *
\n *
Server-Side- Encryption-Specific Request Headers
\n *
\n *

You can optionally tell Amazon S3 to encrypt data at rest using server-side\n * encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts\n * your data as it writes it to disks in its data centers and decrypts it when you\n * access it. The option you use depends on whether you want to use AWS managed\n * encryption keys or provide your own encryption key.

\n *
    \n *
  • \n *

    Use encryption keys managed by Amazon S3 or customer master keys (CMKs) stored\n * in AWS Key Management Service (AWS KMS) – If you want AWS to manage the keys\n * used to encrypt data, specify the following headers in the request.

    \n *
      \n *
    • \n *

      x-amz-server-side-encryption

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-aws-kms-key-id

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-context

      \n *
    • \n *
    \n * \n *

    If you specify x-amz-server-side-encryption:aws:kms, but\n * don't provide x-amz-server-side-encryption-aws-kms-key-id,\n * Amazon S3 uses the AWS managed CMK in AWS KMS to protect the data.

    \n *
    \n * \n *

    All GET and PUT requests for an object protected by AWS KMS fail if\n * you don't make them with SSL or by using SigV4.

    \n *
    \n *

    For more information about server-side encryption with CMKs stored in AWS\n * KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS\n * KMS.

    \n *
  • \n *
  • \n *

    Use customer-provided encryption keys – If you want to manage your own\n * encryption keys, provide all the following headers in the request.

    \n *
      \n *
    • \n *

      x-amz-server-side-encryption-customer-algorithm

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-customer-key

      \n *
    • \n *
    • \n *

      x-amz-server-side-encryption-customer-key-MD5

      \n *
    • \n *
    \n *

    For more information about server-side encryption with CMKs stored in AWS\n * KMS (SSE-KMS), see Protecting Data Using Server-Side Encryption with CMKs stored in AWS\n * KMS.

    \n *
  • \n *
\n *
\n *
Access-Control-List (ACL)-Specific Request Headers
\n *
\n *

You also can use the following access control–related headers with this\n * operation. By default, all objects are private. Only the owner has full access\n * control. When adding a new object, you can grant permissions to individual AWS\n * accounts or to predefined groups defined by Amazon S3. These permissions are then added\n * to the access control list (ACL) on the object. For more information, see Using ACLs. With this\n * operation, you can grant access permissions using one of the following two\n * methods:

\n *
    \n *
  • \n *

    Specify a canned ACL (x-amz-acl) — Amazon S3 supports a set of\n * predefined ACLs, known as canned ACLs. Each canned ACL\n * has a predefined set of grantees and permissions. For more information, see\n * Canned\n * ACL.

    \n *
  • \n *
  • \n *

    Specify access permissions explicitly — To explicitly grant access\n * permissions to specific AWS accounts or groups, use the following headers.\n * Each header maps to specific permissions that Amazon S3 supports in an ACL. For\n * more information, see Access\n * Control List (ACL) Overview. In the header, you specify a list of\n * grantees who get the specific permission. To grant permissions explicitly,\n * use:

    \n *
      \n *
    • \n *

      x-amz-grant-read

      \n *
    • \n *
    • \n *

      x-amz-grant-write

      \n *
    • \n *
    • \n *

      x-amz-grant-read-acp

      \n *
    • \n *
    • \n *

      x-amz-grant-write-acp

      \n *
    • \n *
    • \n *

      x-amz-grant-full-control

      \n *
    • \n *
    \n *

    You specify each grantee as a type=value pair, where the type is one of\n * the following:

    \n *
      \n *
    • \n *

      \n * id – if the value specified is the canonical user ID\n * of an AWS account

      \n *
    • \n *
    • \n *

      \n * uri – if you are granting permissions to a predefined\n * group

      \n *
    • \n *
    • \n *

      \n * emailAddress – if the value specified is the email\n * address of an AWS account

      \n * \n *

      Using email addresses to specify a grantee is only supported in the following AWS Regions:

      \n *
        \n *
      • \n *

        US East (N. Virginia)

        \n *
      • \n *
      • \n *

        US West (N. California)

        \n *
      • \n *
      • \n *

        US West (Oregon)

        \n *
      • \n *
      • \n *

        Asia Pacific (Singapore)

        \n *
      • \n *
      • \n *

        Asia Pacific (Sydney)

        \n *
      • \n *
      • \n *

        Asia Pacific (Tokyo)

        \n *
      • \n *
      • \n *

        Europe (Ireland)

        \n *
      • \n *
      • \n *

        South America (São Paulo)

        \n *
      • \n *
      \n *

      For a list of all the Amazon S3 supported Regions and endpoints, see Regions and Endpoints in the AWS General Reference.

      \n *
      \n *
    • \n *
    \n *

    For example, the following x-amz-grant-read header grants the AWS accounts identified by account IDs permissions to read object data and its metadata:

    \n *

    \n * x-amz-grant-read: id=\"11112222333\", id=\"444455556666\" \n *

    \n *
  • \n *
\n *\n *
\n *
\n *\n *

The following operations are related to CreateMultipartUpload:

\n * \n */\nvar CreateMultipartUploadCommand = /** @class */ (function (_super) {\n __extends(CreateMultipartUploadCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function CreateMultipartUploadCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n CreateMultipartUploadCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"CreateMultipartUploadCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: CreateMultipartUploadRequest.filterSensitiveLog,\n outputFilterSensitiveLog: CreateMultipartUploadOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n CreateMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCreateMultipartUploadCommand(input, context);\n };\n CreateMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCreateMultipartUploadCommand(output, context);\n };\n return CreateMultipartUploadCommand;\n}($Command));\nexport { CreateMultipartUploadCommand };\n//# sourceMappingURL=CreateMultipartUploadCommand.js.map","import { __extends } from \"tslib\";\nimport { UploadPartOutput, UploadPartRequest } from \"../models/models_1\";\nimport { deserializeAws_restXmlUploadPartCommand, serializeAws_restXmlUploadPartCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Uploads a part in a multipart upload.

\n * \n *

In this operation, you provide part data in your request. However, you have an option\n * to specify your existing Amazon S3 object as a data source for the part you are uploading. To\n * upload a part from an existing object, you use the UploadPartCopy operation.\n *

\n *
\n *\n *

You must initiate a multipart upload (see CreateMultipartUpload)\n * before you can upload any part. In response to your initiate request, Amazon S3 returns an\n * upload ID, a unique identifier, that you must include in your upload part request.

\n *

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely\n * identifies a part and also defines its position within the object being created. If you\n * upload a new part using the same part number that was used with a previous part, the\n * previously uploaded part is overwritten. Each part must be at least 5 MB in size, except\n * the last part. There is no size limit on the last part of your multipart upload.

\n *

To ensure that data is not corrupted when traversing the network, specify the\n * Content-MD5 header in the upload part request. Amazon S3 checks the part data\n * against the provided MD5 value. If they do not match, Amazon S3 returns an error.

\n *\n *

If the upload request is signed with Signature Version 4, then AWS S3 uses the\n * x-amz-content-sha256 header as a checksum instead of\n * Content-MD5. For more information see Authenticating Requests: Using the Authorization Header (AWS Signature Version\n * 4).

\n *\n *\n *\n *

\n * Note: After you initiate multipart upload and upload\n * one or more parts, you must either complete or abort multipart upload in order to stop\n * getting charged for storage of the uploaded parts. Only after you either complete or abort\n * multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts\n * storage.

\n *\n *

For more information on multipart uploads, go to Multipart Upload Overview in the\n * Amazon Simple Storage Service Developer Guide .

\n *

For information on the permissions required to use the multipart upload API, go to\n * Multipart Upload API and\n * Permissions in the Amazon Simple Storage Service Developer Guide.

\n *\n *

You can optionally request server-side encryption where Amazon S3 encrypts your data as it\n * writes it to disks in its data centers and decrypts it for you when you access it. You have\n * the option of providing your own encryption key, or you can use the AWS managed encryption\n * keys. If you choose to provide your own encryption key, the request headers you provide in\n * the request must match the headers you used in the request to initiate the upload by using\n * CreateMultipartUpload. For more information, go to Using Server-Side Encryption in\n * the Amazon Simple Storage Service Developer Guide.

\n *\n *

Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are\n * using a customer-provided encryption key, you don't need to specify the encryption\n * parameters in each UploadPart request. Instead, you only need to specify the server-side\n * encryption parameters in the initial Initiate Multipart request. For more information, see\n * CreateMultipartUpload.

\n *\n *

If you requested server-side encryption using a customer-provided encryption key in your\n * initiate multipart upload request, you must provide identical encryption information in\n * each part upload using the following headers.

\n *\n *\n *
    \n *
  • \n *

    x-amz-server-side-encryption-customer-algorithm

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key

    \n *
  • \n *
  • \n *

    x-amz-server-side-encryption-customer-key-MD5

    \n *
  • \n *
\n *\n *

\n * Special Errors\n *

\n *
    \n *
  • \n *
      \n *
    • \n *

      \n * Code: NoSuchUpload\n *

      \n *
    • \n *
    • \n *

      \n * Cause: The specified multipart upload does not exist. The upload\n * ID might be invalid, or the multipart upload might have been aborted or\n * completed.\n *

      \n *
    • \n *
    • \n *

      \n * HTTP Status Code: 404 Not Found \n *

      \n *
    • \n *
    • \n *

      \n * SOAP Fault Code Prefix: Client\n *

      \n *
    • \n *
    \n *
  • \n *
\n *\n *\n *\n *\n *\n *\n *

\n * Related Resources\n *

\n * \n */\nvar UploadPartCommand = /** @class */ (function (_super) {\n __extends(UploadPartCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function UploadPartCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n UploadPartCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"UploadPartCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: UploadPartRequest.filterSensitiveLog,\n outputFilterSensitiveLog: UploadPartOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n UploadPartCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlUploadPartCommand(input, context);\n };\n UploadPartCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlUploadPartCommand(output, context);\n };\n return UploadPartCommand;\n}($Command));\nexport { UploadPartCommand };\n//# sourceMappingURL=UploadPartCommand.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\nimport { UploadPartCommand, CompleteMultipartUploadCommand, AbortMultipartUploadCommand, ListPartsCommand, CreateMultipartUploadCommand, ListObjectsV2Command, } from '@aws-sdk/client-s3';\nimport axios from 'axios';\nimport { Logger } from '@aws-amplify/core';\nimport { byteLength, isFile } from '../common/StorageUtils';\nimport { AWSS3ProviderUploadErrorStrings } from '../common/StorageErrorStrings';\nimport { SET_CONTENT_LENGTH_HEADER, UPLOADS_STORAGE_KEY, } from '../common/StorageConstants';\nvar logger = new Logger('AWSS3UploadTask');\nexport var AWSS3UploadTaskState;\n(function (AWSS3UploadTaskState) {\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"INIT\"] = 0] = \"INIT\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"IN_PROGRESS\"] = 1] = \"IN_PROGRESS\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"PAUSED\"] = 2] = \"PAUSED\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"CANCELLED\"] = 3] = \"CANCELLED\";\n AWSS3UploadTaskState[AWSS3UploadTaskState[\"COMPLETED\"] = 4] = \"COMPLETED\";\n})(AWSS3UploadTaskState || (AWSS3UploadTaskState = {}));\nexport var TaskEvents;\n(function (TaskEvents) {\n TaskEvents[\"CANCEL\"] = \"cancel\";\n TaskEvents[\"UPLOAD_COMPLETE\"] = \"uploadComplete\";\n TaskEvents[\"UPLOAD_PROGRESS\"] = \"uploadPartProgress\";\n TaskEvents[\"ERROR\"] = \"error\";\n})(TaskEvents || (TaskEvents = {}));\n// maximum number of parts per upload request according the S3 spec,\n// see: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html\nvar MAX_PARTS = 10000;\n// 5MB in bytes\nvar PART_SIZE = 5 * 1024 * 1024;\nvar DEFAULT_QUEUE_SIZE = 4;\nfunction comparePartNumber(a, b) {\n return a.PartNumber - b.PartNumber;\n}\nvar AWSS3UploadTask = /** @class */ (function () {\n function AWSS3UploadTask(_a) {\n var s3Client = _a.s3Client, file = _a.file, emitter = _a.emitter, storage = _a.storage, params = _a.params, level = _a.level, prefixPromise = _a.prefixPromise;\n this.partSize = PART_SIZE;\n this.queueSize = DEFAULT_QUEUE_SIZE;\n this.inProgress = [];\n this.completedParts = [];\n this.queued = [];\n this.bytesUploaded = 0;\n this.totalBytes = 0;\n this.state = AWSS3UploadTaskState.INIT;\n this.prefixPromise = prefixPromise;\n this.s3client = s3Client;\n this.s3client.middlewareStack.remove(SET_CONTENT_LENGTH_HEADER);\n this.storage = storage;\n this.storageSync = Promise.resolve();\n if (typeof this.storage['sync'] === 'function') {\n this.storageSync = this.storage['sync']();\n }\n this.params = params;\n this.file = file;\n this.totalBytes = this.file.size;\n this.bytesUploaded = 0;\n this.emitter = emitter;\n this.queued = [];\n this.fileId = this._getFileId(level);\n this._validateParams();\n // event emitter will re-throw an error if an event emits an error unless there's a listener, attaching a no-op\n // function to it unless user adds their own onError callback\n this.emitter.on(TaskEvents.ERROR, function () { });\n }\n Object.defineProperty(AWSS3UploadTask.prototype, \"percent\", {\n get: function () {\n return (this.bytesUploaded / this.totalBytes) * 100;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AWSS3UploadTask.prototype, \"isInProgress\", {\n get: function () {\n return this.state === AWSS3UploadTaskState.IN_PROGRESS;\n },\n enumerable: true,\n configurable: true\n });\n AWSS3UploadTask.prototype._listSingleFile = function (_a) {\n var key = _a.key, bucket = _a.bucket;\n return __awaiter(this, void 0, void 0, function () {\n var listObjectRes, _b, Contents, prefix, obj;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this.s3client.send(new ListObjectsV2Command({\n Bucket: bucket,\n Prefix: key,\n }))];\n case 1:\n listObjectRes = _c.sent();\n _b = listObjectRes.Contents, Contents = _b === void 0 ? [] : _b;\n return [4 /*yield*/, this.prefixPromise];\n case 2:\n prefix = _c.sent();\n obj = Contents.find(function (o) { return o.Key === \"\" + prefix + key; });\n return [2 /*return*/, obj];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._getFileId = function (level) {\n // We should check if it's a File first because File is also instance of a Blob\n if (isFile(this.file)) {\n return [\n this.file.name,\n this.file.lastModified,\n this.file.size,\n this.file.type,\n this.params.Bucket,\n level,\n this.params.Key,\n ].join('-');\n }\n else {\n return [\n this.file.size,\n this.file.type,\n this.params.Bucket,\n level,\n this.params.Key,\n ].join('-');\n }\n };\n AWSS3UploadTask.prototype._findCachedUploadParts = function () {\n return __awaiter(this, void 0, void 0, function () {\n var uploadRequests, cachedUploadFileData, listPartsOutput;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1:\n uploadRequests = _a.sent();\n if (Object.keys(uploadRequests).length === 0 ||\n !Object.prototype.hasOwnProperty.call(uploadRequests, this.fileId)) {\n return [2 /*return*/, { parts: [], uploadId: null }];\n }\n cachedUploadFileData = uploadRequests[this.fileId];\n cachedUploadFileData.lastTouched = Date.now();\n this.storage.setItem(UPLOADS_STORAGE_KEY, JSON.stringify(uploadRequests));\n return [4 /*yield*/, this.s3client.send(new ListPartsCommand({\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: cachedUploadFileData.uploadId,\n }))];\n case 2:\n listPartsOutput = _a.sent();\n return [2 /*return*/, {\n parts: listPartsOutput.Parts || [],\n uploadId: cachedUploadFileData.uploadId,\n }];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._emitEvent = function (event, payload) {\n this.emitter.emit(event, payload);\n };\n AWSS3UploadTask.prototype._validateParams = function () {\n if (this.file.size / this.partSize > MAX_PARTS) {\n throw new Error(\"Too many parts. Number of parts is \" + this.file.size /\n this.partSize + \", maximum is \" + MAX_PARTS + \".\");\n }\n };\n AWSS3UploadTask.prototype._listCachedUploadTasks = function () {\n return __awaiter(this, void 0, void 0, function () {\n var tasks;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.storageSync];\n case 1:\n _a.sent();\n tasks = this.storage.getItem(UPLOADS_STORAGE_KEY) || '{}';\n return [2 /*return*/, JSON.parse(tasks)];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._cache = function (fileMetadata) {\n return __awaiter(this, void 0, void 0, function () {\n var uploadRequests;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1:\n uploadRequests = _a.sent();\n uploadRequests[this.fileId] = fileMetadata;\n this.storage.setItem(UPLOADS_STORAGE_KEY, JSON.stringify(uploadRequests));\n return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._isCached = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _b = (_a = Object.prototype.hasOwnProperty).call;\n return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1: return [2 /*return*/, _b.apply(_a, [_c.sent(),\n this.fileId])];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._removeFromCache = function () {\n return __awaiter(this, void 0, void 0, function () {\n var uploadRequests;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._listCachedUploadTasks()];\n case 1:\n uploadRequests = _a.sent();\n delete uploadRequests[this.fileId];\n this.storage.setItem(UPLOADS_STORAGE_KEY, JSON.stringify(uploadRequests));\n return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._onPartUploadCompletion = function (_a) {\n var eTag = _a.eTag, partNumber = _a.partNumber, chunk = _a.chunk;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n this.completedParts.push({\n ETag: eTag,\n PartNumber: partNumber,\n });\n this.bytesUploaded += byteLength(chunk);\n this._emitEvent(TaskEvents.UPLOAD_PROGRESS, {\n loaded: this.bytesUploaded,\n total: this.totalBytes,\n });\n // Remove the completed item from the inProgress array\n this.inProgress = this.inProgress.filter(function (job) { return job.uploadPartInput.PartNumber !== partNumber; });\n if (this.queued.length && this.state !== AWSS3UploadTaskState.PAUSED)\n this._startNextPart();\n if (this._isDone())\n this._completeUpload();\n return [2 /*return*/];\n });\n });\n };\n AWSS3UploadTask.prototype._completeUpload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var err_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.s3client.send(new CompleteMultipartUploadCommand({\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: this.uploadId,\n MultipartUpload: {\n // Parts are not always completed in order, we need to manually sort them\n Parts: this.completedParts.sort(comparePartNumber),\n },\n }))];\n case 1:\n _a.sent();\n this._verifyFileSize();\n this._emitEvent(TaskEvents.UPLOAD_COMPLETE, {\n key: this.params.Bucket + \"/\" + this.params.Key,\n });\n this._removeFromCache();\n this.state = AWSS3UploadTaskState.COMPLETED;\n return [3 /*break*/, 3];\n case 2:\n err_1 = _a.sent();\n logger.error('error completing upload', err_1);\n this._emitEvent(TaskEvents.ERROR, err_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._makeUploadPartRequest = function (input, cancelTokenSource) {\n return __awaiter(this, void 0, void 0, function () {\n var res, err_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 3, , 4]);\n return [4 /*yield*/, this.s3client.send(new UploadPartCommand(input), {\n cancelTokenSource: cancelTokenSource,\n })];\n case 1:\n res = _a.sent();\n return [4 /*yield*/, this._onPartUploadCompletion({\n eTag: res.ETag,\n partNumber: input.PartNumber,\n chunk: input.Body,\n })];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n err_2 = _a.sent();\n if (this.state === AWSS3UploadTaskState.PAUSED) {\n logger.log('upload paused');\n }\n else if (this.state === AWSS3UploadTaskState.CANCELLED) {\n logger.log('upload aborted');\n }\n else {\n logger.error('error starting next part of upload: ', err_2);\n }\n // axios' cancel will also throw an error, however we don't need to emit an event in that case as it's an\n // expected behavior\n if (!axios.isCancel(err_2) &&\n err_2.message !== AWSS3ProviderUploadErrorStrings.UPLOAD_PAUSED_MESSAGE) {\n this._emitEvent(TaskEvents.ERROR, err_2);\n this.pause();\n }\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._startNextPart = function () {\n if (this.queued.length > 0 && this.state !== AWSS3UploadTaskState.PAUSED) {\n var cancelTokenSource = axios.CancelToken.source();\n var nextPart = this.queued.shift();\n this.inProgress.push({\n uploadPartInput: nextPart,\n s3Request: this._makeUploadPartRequest(nextPart, cancelTokenSource),\n cancel: cancelTokenSource.cancel,\n });\n }\n };\n /**\n * Verify on S3 side that the file size matches the one on the client side.\n *\n * @async\n * @throws throws an error if the file size does not match between local copy of the file and the file on s3.\n */\n AWSS3UploadTask.prototype._verifyFileSize = function () {\n return __awaiter(this, void 0, void 0, function () {\n var obj, valid;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._listSingleFile({\n key: this.params.Key,\n bucket: this.params.Bucket,\n })];\n case 1:\n obj = _a.sent();\n valid = Boolean(obj && obj.Size === this.file.size);\n if (!valid) {\n throw new Error('File size does not match between local file and file on s3');\n }\n return [2 /*return*/, valid];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._isDone = function () {\n return (!this.queued.length &&\n !this.inProgress.length &&\n this.bytesUploaded === this.totalBytes);\n };\n AWSS3UploadTask.prototype._createParts = function () {\n var size = this.file.size;\n var parts = [];\n for (var bodyStart = 0; bodyStart < size;) {\n var bodyEnd = Math.min(bodyStart + this.partSize, size);\n parts.push({\n Body: this.file.slice(bodyStart, bodyEnd),\n Key: this.params.Key,\n Bucket: this.params.Bucket,\n PartNumber: parts.length + 1,\n UploadId: this.uploadId,\n });\n bodyStart += this.partSize;\n }\n return parts;\n };\n AWSS3UploadTask.prototype._initCachedUploadParts = function (cachedParts) {\n this.bytesUploaded += cachedParts.reduce(function (acc, part) { return acc + part.Size; }, 0);\n // Find the set of part numbers that have already been uploaded\n var uploadedPartNumSet = new Set(cachedParts.map(function (part) { return part.PartNumber; }));\n this.queued = this.queued.filter(function (part) { return !uploadedPartNumSet.has(part.PartNumber); });\n this.completedParts = cachedParts.map(function (part) { return ({\n PartNumber: part.PartNumber,\n ETag: part.ETag,\n }); });\n this._emitEvent(TaskEvents.UPLOAD_PROGRESS, {\n loaded: this.bytesUploaded,\n total: this.totalBytes,\n });\n };\n AWSS3UploadTask.prototype._initMultipartUpload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.s3client.send(new CreateMultipartUploadCommand(this.params))];\n case 1:\n res = _a.sent();\n this._cache({\n uploadId: res.UploadId,\n lastTouched: Date.now(),\n bucket: this.params.Bucket,\n key: this.params.Key,\n fileName: this.file instanceof File ? this.file.name : '',\n });\n return [2 /*return*/, res.UploadId];\n }\n });\n });\n };\n AWSS3UploadTask.prototype._initializeUploadTask = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, parts, uploadId, uploadId, err_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.state = AWSS3UploadTaskState.IN_PROGRESS;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 7, , 8]);\n return [4 /*yield*/, this._isCached()];\n case 2:\n if (!_b.sent()) return [3 /*break*/, 4];\n return [4 /*yield*/, this._findCachedUploadParts()];\n case 3:\n _a = _b.sent(), parts = _a.parts, uploadId = _a.uploadId;\n this.uploadId = uploadId;\n this.queued = this._createParts();\n this._initCachedUploadParts(parts);\n this._startUpload();\n return [3 /*break*/, 6];\n case 4:\n if (!!this.uploadId) return [3 /*break*/, 6];\n return [4 /*yield*/, this._initMultipartUpload()];\n case 5:\n uploadId = _b.sent();\n this.uploadId = uploadId;\n this.queued = this._createParts();\n this._startUpload();\n _b.label = 6;\n case 6: return [3 /*break*/, 8];\n case 7:\n err_3 = _b.sent();\n if (!axios.isCancel(err_3)) {\n logger.error('Error initializing the upload task', err_3);\n }\n return [3 /*break*/, 8];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3UploadTask.prototype.resume = function () {\n if (this.state === AWSS3UploadTaskState.CANCELLED) {\n logger.warn('This task has already been cancelled');\n }\n else if (this.state === AWSS3UploadTaskState.COMPLETED) {\n logger.warn('This task has already been completed');\n }\n else if (this.state === AWSS3UploadTaskState.IN_PROGRESS) {\n logger.warn('Upload task already in progress');\n // first time running resume, find any cached parts on s3 or start a new multipart upload request before\n // starting the upload\n }\n else if (!this.uploadId) {\n this._initializeUploadTask();\n }\n else {\n this._startUpload();\n }\n };\n AWSS3UploadTask.prototype._startUpload = function () {\n this.state = AWSS3UploadTaskState.IN_PROGRESS;\n for (var i = 0; i < this.queueSize; i++) {\n this._startNextPart();\n }\n };\n AWSS3UploadTask.prototype._cancel = function () {\n return __awaiter(this, void 0, void 0, function () {\n var err_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.state === AWSS3UploadTaskState.CANCELLED)) return [3 /*break*/, 1];\n logger.warn('This task has already been cancelled');\n return [2 /*return*/, false];\n case 1:\n if (!(this.state === AWSS3UploadTaskState.COMPLETED)) return [3 /*break*/, 2];\n logger.warn('This task has already been completed');\n return [2 /*return*/, false];\n case 2:\n this.pause();\n this.queued = [];\n this.completedParts = [];\n this.bytesUploaded = 0;\n this.state = AWSS3UploadTaskState.CANCELLED;\n _a.label = 3;\n case 3:\n _a.trys.push([3, 6, , 7]);\n return [4 /*yield*/, this.s3client.send(new AbortMultipartUploadCommand({\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: this.uploadId,\n }))];\n case 4:\n _a.sent();\n return [4 /*yield*/, this._removeFromCache()];\n case 5:\n _a.sent();\n return [2 /*return*/, true];\n case 6:\n err_4 = _a.sent();\n logger.error('Error cancelling upload task', err_4);\n return [2 /*return*/, false];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * pause this particular upload task\n **/\n AWSS3UploadTask.prototype.pause = function () {\n var _a;\n if (this.state === AWSS3UploadTaskState.CANCELLED) {\n logger.warn('This task has already been cancelled');\n }\n else if (this.state === AWSS3UploadTaskState.COMPLETED) {\n logger.warn('This task has already been completed');\n }\n else if (this.state === AWSS3UploadTaskState.PAUSED) {\n logger.warn('This task is already paused');\n }\n this.state = AWSS3UploadTaskState.PAUSED;\n // Use axios cancel token to abort the part request immediately\n // Add the inProgress parts back to pending\n var removedInProgressReq = this.inProgress.splice(0, this.inProgress.length);\n removedInProgressReq.forEach(function (req) {\n req.cancel(AWSS3ProviderUploadErrorStrings.UPLOAD_PAUSED_MESSAGE);\n });\n // Put all removed in progress parts back into the queue\n (_a = this.queued).unshift.apply(_a, __spread(removedInProgressReq.map(function (req) { return req.uploadPartInput; })));\n };\n return AWSS3UploadTask;\n}());\nexport { AWSS3UploadTask };\n//# sourceMappingURL=AWSS3UploadTask.js.map","import { __extends } from \"tslib\";\nimport { CompleteMultipartUploadOutput, CompleteMultipartUploadRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlCompleteMultipartUploadCommand, serializeAws_restXmlCompleteMultipartUploadCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Completes a multipart upload by assembling previously uploaded parts.

\n *

You first initiate the multipart upload and then upload all parts using the UploadPart\n * operation. After successfully uploading all relevant parts of an upload, you call this\n * operation to complete the upload. Upon receiving this request, Amazon S3 concatenates all\n * the parts in ascending order by part number to create a new object. In the Complete\n * Multipart Upload request, you must provide the parts list. You must ensure that the parts\n * list is complete. This operation concatenates the parts that you provide in the list. For\n * each part in the list, you must provide the part number and the ETag value,\n * returned after that part was uploaded.

\n *

Processing of a Complete Multipart Upload request could take several minutes to\n * complete. After Amazon S3 begins processing the request, it sends an HTTP response header that\n * specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white\n * space characters to keep the connection from timing out. Because a request could fail after\n * the initial 200 OK response has been sent, it is important that you check the response body\n * to determine whether the request succeeded.

\n *

Note that if CompleteMultipartUpload fails, applications should be prepared\n * to retry the failed requests. For more information, see Amazon S3 Error Best Practices.

\n *

For more information about multipart uploads, see Uploading Objects Using Multipart\n * Upload.

\n *

For information about permissions required to use the multipart upload API, see Multipart Upload API and\n * Permissions.

\n *\n *\n *

\n * CompleteMultipartUpload has the following special errors:

\n *
    \n *
  • \n *

    Error code: EntityTooSmall\n *

    \n *
      \n *
    • \n *

      Description: Your proposed upload is smaller than the minimum allowed object\n * size. Each part must be at least 5 MB in size, except the last part.

      \n *
    • \n *
    • \n *

      400 Bad Request

      \n *
    • \n *
    \n *
  • \n *
  • \n *

    Error code: InvalidPart\n *

    \n *
      \n *
    • \n *

      Description: One or more of the specified parts could not be found. The part\n * might not have been uploaded, or the specified entity tag might not have\n * matched the part's entity tag.

      \n *
    • \n *
    • \n *

      400 Bad Request

      \n *
    • \n *
    \n *
  • \n *
  • \n *

    Error code: InvalidPartOrder\n *

    \n *
      \n *
    • \n *

      Description: The list of parts was not in ascending order. The parts list\n * must be specified in order by part number.

      \n *
    • \n *
    • \n *

      400 Bad Request

      \n *
    • \n *
    \n *
  • \n *
  • \n *

    Error code: NoSuchUpload\n *

    \n *
      \n *
    • \n *

      Description: The specified multipart upload does not exist. The upload ID\n * might be invalid, or the multipart upload might have been aborted or\n * completed.

      \n *
    • \n *
    • \n *

      404 Not Found

      \n *
    • \n *
    \n *
  • \n *
\n *\n *

The following operations are related to CompleteMultipartUpload:

\n * \n */\nvar CompleteMultipartUploadCommand = /** @class */ (function (_super) {\n __extends(CompleteMultipartUploadCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function CompleteMultipartUploadCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n CompleteMultipartUploadCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"CompleteMultipartUploadCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: CompleteMultipartUploadRequest.filterSensitiveLog,\n outputFilterSensitiveLog: CompleteMultipartUploadOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n CompleteMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlCompleteMultipartUploadCommand(input, context);\n };\n CompleteMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlCompleteMultipartUploadCommand(output, context);\n };\n return CompleteMultipartUploadCommand;\n}($Command));\nexport { CompleteMultipartUploadCommand };\n//# sourceMappingURL=CompleteMultipartUploadCommand.js.map","import { __extends } from \"tslib\";\nimport { AbortMultipartUploadOutput, AbortMultipartUploadRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlAbortMultipartUploadCommand, serializeAws_restXmlAbortMultipartUploadCommand, } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

This operation aborts a multipart upload. After a multipart upload is aborted, no\n * additional parts can be uploaded using that upload ID. The storage consumed by any\n * previously uploaded parts will be freed. However, if any part uploads are currently in\n * progress, those part uploads might or might not succeed. As a result, it might be necessary\n * to abort a given multipart upload multiple times in order to completely free all storage\n * consumed by all parts.

\n *

To verify that all parts have been removed, so you don't get charged for the part\n * storage, you should call the ListParts operation and ensure that\n * the parts list is empty.

\n *

For information about permissions required to use the multipart upload API, see Multipart Upload API and\n * Permissions.

\n *

The following operations are related to AbortMultipartUpload:

\n * \n */\nvar AbortMultipartUploadCommand = /** @class */ (function (_super) {\n __extends(AbortMultipartUploadCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function AbortMultipartUploadCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n AbortMultipartUploadCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"AbortMultipartUploadCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: AbortMultipartUploadRequest.filterSensitiveLog,\n outputFilterSensitiveLog: AbortMultipartUploadOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n AbortMultipartUploadCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlAbortMultipartUploadCommand(input, context);\n };\n AbortMultipartUploadCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlAbortMultipartUploadCommand(output, context);\n };\n return AbortMultipartUploadCommand;\n}($Command));\nexport { AbortMultipartUploadCommand };\n//# sourceMappingURL=AbortMultipartUploadCommand.js.map","import { __extends } from \"tslib\";\nimport { ListPartsOutput, ListPartsRequest } from \"../models/models_0\";\nimport { deserializeAws_restXmlListPartsCommand, serializeAws_restXmlListPartsCommand } from \"../protocols/Aws_restXml\";\nimport { getBucketEndpointPlugin } from \"@aws-sdk/middleware-bucket-endpoint\";\nimport { getSerdePlugin } from \"@aws-sdk/middleware-serde\";\nimport { Command as $Command } from \"@aws-sdk/smithy-client\";\n/**\n *

Lists the parts that have been uploaded for a specific multipart upload. This operation\n * must include the upload ID, which you obtain by sending the initiate multipart upload\n * request (see CreateMultipartUpload).\n * This request returns a maximum of 1,000 uploaded parts. The default number of parts\n * returned is 1,000 parts. You can restrict the number of parts returned by specifying the\n * max-parts request parameter. If your multipart upload consists of more than\n * 1,000 parts, the response returns an IsTruncated field with the value of true,\n * and a NextPartNumberMarker element. In subsequent ListParts\n * requests you can include the part-number-marker query string parameter and set its value to\n * the NextPartNumberMarker field value from the previous response.

\n *\n *

For more information on multipart uploads, see Uploading Objects Using Multipart\n * Upload.

\n *\n *

For information on permissions required to use the multipart upload API, see Multipart Upload API and\n * Permissions.

\n *\n *

The following operations are related to ListParts:

\n * \n */\nvar ListPartsCommand = /** @class */ (function (_super) {\n __extends(ListPartsCommand, _super);\n // Start section: command_properties\n // End section: command_properties\n function ListPartsCommand(input) {\n var _this = \n // Start section: command_constructor\n _super.call(this) || this;\n _this.input = input;\n return _this;\n // End section: command_constructor\n }\n /**\n * @internal\n */\n ListPartsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getBucketEndpointPlugin(configuration));\n var stack = clientStack.concat(this.middlewareStack);\n var logger = configuration.logger;\n var clientName = \"S3Client\";\n var commandName = \"ListPartsCommand\";\n var handlerExecutionContext = {\n logger: logger,\n clientName: clientName,\n commandName: commandName,\n inputFilterSensitiveLog: ListPartsRequest.filterSensitiveLog,\n outputFilterSensitiveLog: ListPartsOutput.filterSensitiveLog,\n };\n var requestHandler = configuration.requestHandler;\n return stack.resolve(function (request) {\n return requestHandler.handle(request.request, options || {});\n }, handlerExecutionContext);\n };\n ListPartsCommand.prototype.serialize = function (input, context) {\n return serializeAws_restXmlListPartsCommand(input, context);\n };\n ListPartsCommand.prototype.deserialize = function (output, context) {\n return deserializeAws_restXmlListPartsCommand(output, context);\n };\n return ListPartsCommand;\n}($Command));\nexport { ListPartsCommand };\n//# sourceMappingURL=ListPartsCommand.js.map","/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { ConsoleLogger as Logger } from '@aws-amplify/core';\nimport { PutObjectCommand, CreateMultipartUploadCommand, UploadPartCommand, CompleteMultipartUploadCommand, ListPartsCommand, AbortMultipartUploadCommand, } from '@aws-sdk/client-s3';\nimport { SEND_UPLOAD_PROGRESS_EVENT, SEND_DOWNLOAD_PROGRESS_EVENT, } from './axios-http-handler';\nimport * as events from 'events';\nimport { createPrefixMiddleware, prefixMiddlewareOptions, autoAdjustClockskewMiddleware, autoAdjustClockskewMiddlewareOptions, createS3Client, } from '../common/S3ClientUtils';\nvar logger = new Logger('AWSS3ProviderManagedUpload');\nvar AWSS3ProviderManagedUpload = /** @class */ (function () {\n function AWSS3ProviderManagedUpload(params, opts, emitter) {\n // Defaults\n this.minPartSize = 5 * 1024 * 1024; // in MB\n this.queueSize = 4;\n // Data for current upload\n this.body = null;\n this.params = null;\n this.opts = null;\n this.completedParts = [];\n this.uploadId = null;\n // Progress reporting\n this.bytesUploaded = 0;\n this.totalBytesToUpload = 0;\n this.emitter = null;\n this.params = params;\n this.opts = opts;\n this.emitter = emitter;\n this.s3client = this._createNewS3Client(opts, emitter);\n }\n AWSS3ProviderManagedUpload.prototype.upload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, putObjectCommand, _b, numberOfPartsToUpload, parts, start, error_1;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _c.trys.push([0, 10, , 12]);\n _a = this;\n return [4 /*yield*/, this.validateAndSanitizeBody(this.params.Body)];\n case 1:\n _a.body = _c.sent();\n this.totalBytesToUpload = this.byteLength(this.body);\n if (!(this.totalBytesToUpload <= this.minPartSize)) return [3 /*break*/, 2];\n // Multipart upload is not required. Upload the sanitized body as is\n this.params.Body = this.body;\n putObjectCommand = new PutObjectCommand(this.params);\n return [2 /*return*/, this.s3client.send(putObjectCommand)];\n case 2:\n // Step 1: Initiate the multi part upload\n _b = this;\n return [4 /*yield*/, this.createMultiPartUpload()];\n case 3:\n // Step 1: Initiate the multi part upload\n _b.uploadId = _c.sent();\n numberOfPartsToUpload = Math.ceil(this.totalBytesToUpload / this.minPartSize);\n parts = this.createParts();\n start = 0;\n _c.label = 4;\n case 4:\n if (!(start < numberOfPartsToUpload)) return [3 /*break*/, 7];\n // Upload as many as `queueSize` parts simultaneously\n return [4 /*yield*/, this.uploadParts(this.uploadId, parts.slice(start, start + this.queueSize))];\n case 5:\n // Upload as many as `queueSize` parts simultaneously\n _c.sent();\n _c.label = 6;\n case 6:\n start += this.queueSize;\n return [3 /*break*/, 4];\n case 7:\n parts.map(function (part) {\n _this.removeEventListener(part);\n });\n return [4 /*yield*/, this.finishMultiPartUpload(this.uploadId)];\n case 8: \n // Step 3: Finalize the upload such that S3 can recreate the file\n return [2 /*return*/, _c.sent()];\n case 9: return [3 /*break*/, 12];\n case 10:\n error_1 = _c.sent();\n // if any error is thrown, call cleanup\n return [4 /*yield*/, this.cleanup(this.uploadId)];\n case 11:\n // if any error is thrown, call cleanup\n _c.sent();\n logger.error('Error. Cancelling the multipart upload.');\n throw error_1;\n case 12: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.createParts = function () {\n try {\n var parts = [];\n for (var bodyStart = 0; bodyStart < this.totalBytesToUpload;) {\n var bodyEnd = Math.min(bodyStart + this.minPartSize, this.totalBytesToUpload);\n parts.push({\n bodyPart: this.body.slice(bodyStart, bodyEnd),\n partNumber: parts.length + 1,\n emitter: new events.EventEmitter(),\n _lastUploadedBytes: 0,\n });\n bodyStart += this.minPartSize;\n }\n return parts;\n }\n catch (error) {\n logger.error(error);\n throw error;\n }\n };\n AWSS3ProviderManagedUpload.prototype.createMultiPartUpload = function () {\n return __awaiter(this, void 0, void 0, function () {\n var createMultiPartUploadCommand, response, error_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n createMultiPartUploadCommand = new CreateMultipartUploadCommand(this.params);\n return [4 /*yield*/, this.s3client.send(createMultiPartUploadCommand)];\n case 1:\n response = _a.sent();\n logger.debug(response.UploadId);\n return [2 /*return*/, response.UploadId];\n case 2:\n error_2 = _a.sent();\n logger.error(error_2);\n throw error_2;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @private Not to be extended outside of tests\n * @VisibleFotTesting\n */\n AWSS3ProviderManagedUpload.prototype.uploadParts = function (uploadId, parts) {\n return __awaiter(this, void 0, void 0, function () {\n var allResults, i, error_3;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Promise.all(parts.map(function (part) { return __awaiter(_this, void 0, void 0, function () {\n var options, _a, Key, Bucket, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, res;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.setupEventListener(part);\n options = { emitter: part.emitter };\n _a = this.params, Key = _a.Key, Bucket = _a.Bucket, SSECustomerAlgorithm = _a.SSECustomerAlgorithm, SSECustomerKey = _a.SSECustomerKey, SSECustomerKeyMD5 = _a.SSECustomerKeyMD5;\n return [4 /*yield*/, this.s3client.send(new UploadPartCommand(__assign(__assign(__assign({ PartNumber: part.partNumber, Body: part.bodyPart, UploadId: uploadId, Key: Key,\n Bucket: Bucket }, (SSECustomerAlgorithm && { SSECustomerAlgorithm: SSECustomerAlgorithm })), (SSECustomerKey && { SSECustomerKey: SSECustomerKey })), (SSECustomerKeyMD5 && { SSECustomerKeyMD5: SSECustomerKeyMD5 }))), options)];\n case 1:\n res = _b.sent();\n return [2 /*return*/, res];\n }\n });\n }); }))];\n case 1:\n allResults = _a.sent();\n // The order of resolved promises is the same as input promise order.\n for (i = 0; i < allResults.length; i++) {\n this.completedParts.push({\n PartNumber: parts[i].partNumber,\n ETag: allResults[i].ETag,\n });\n }\n return [3 /*break*/, 3];\n case 2:\n error_3 = _a.sent();\n logger.error('Error happened while uploading a part. Cancelling the multipart upload');\n throw error_3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.finishMultiPartUpload = function (uploadId) {\n return __awaiter(this, void 0, void 0, function () {\n var input, completeUploadCommand, data, error_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n input = {\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: uploadId,\n MultipartUpload: { Parts: this.completedParts },\n };\n completeUploadCommand = new CompleteMultipartUploadCommand(input);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.s3client.send(completeUploadCommand)];\n case 2:\n data = _a.sent();\n return [2 /*return*/, data.Key];\n case 3:\n error_4 = _a.sent();\n logger.error('Error happened while finishing the upload.');\n throw error_4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.cleanup = function (uploadId) {\n return __awaiter(this, void 0, void 0, function () {\n var input, data;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Reset this's state\n this.body = null;\n this.completedParts = [];\n this.bytesUploaded = 0;\n this.totalBytesToUpload = 0;\n input = {\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n UploadId: uploadId,\n };\n return [4 /*yield*/, this.s3client.send(new AbortMultipartUploadCommand(input))];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.s3client.send(new ListPartsCommand(input))];\n case 2:\n data = _a.sent();\n if (data && data.Parts && data.Parts.length > 0) {\n throw new Error('Multipart upload clean up failed.');\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.removeEventListener = function (part) {\n part.emitter.removeAllListeners(SEND_UPLOAD_PROGRESS_EVENT);\n part.emitter.removeAllListeners(SEND_DOWNLOAD_PROGRESS_EVENT);\n };\n AWSS3ProviderManagedUpload.prototype.setupEventListener = function (part) {\n var _this = this;\n part.emitter.on(SEND_UPLOAD_PROGRESS_EVENT, function (progress) {\n _this.progressChanged(part.partNumber, progress.loaded - part._lastUploadedBytes);\n part._lastUploadedBytes = progress.loaded;\n });\n };\n AWSS3ProviderManagedUpload.prototype.progressChanged = function (partNumber, incrementalUpdate) {\n this.bytesUploaded += incrementalUpdate;\n this.emitter.emit(SEND_UPLOAD_PROGRESS_EVENT, {\n loaded: this.bytesUploaded,\n total: this.totalBytesToUpload,\n part: partNumber,\n key: this.params.Key,\n });\n };\n AWSS3ProviderManagedUpload.prototype.byteLength = function (input) {\n if (input === null || input === undefined)\n return 0;\n if (typeof input.byteLength === 'number') {\n return input.byteLength;\n }\n else if (typeof input.length === 'number') {\n return input.length;\n }\n else if (typeof input.size === 'number') {\n return input.size;\n }\n else if (typeof input.path === 'string') {\n /* NodeJs Support\n return require('fs').lstatSync(input.path).size;\n */\n }\n else {\n throw new Error('Cannot determine length of ' + input);\n }\n };\n AWSS3ProviderManagedUpload.prototype.validateAndSanitizeBody = function (body) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (this.isGenericObject(body)) {\n // Any javascript object\n return [2 /*return*/, JSON.stringify(body)];\n }\n else {\n // Files, arrayBuffer etc\n return [2 /*return*/, body];\n }\n return [2 /*return*/];\n });\n });\n };\n AWSS3ProviderManagedUpload.prototype.isGenericObject = function (body) {\n if (body !== null && typeof body === 'object') {\n try {\n return !(this.byteLength(body) >= 0);\n }\n catch (error) {\n // If we cannot determine the length of the body, consider it\n // as a generic object and upload a stringified version of it\n return true;\n }\n }\n return false;\n };\n AWSS3ProviderManagedUpload.prototype._createNewS3Client = function (config, emitter) {\n var s3client = createS3Client(config, emitter);\n s3client.middlewareStack.add(createPrefixMiddleware(this.opts, this.params.Key), prefixMiddlewareOptions);\n s3client.middlewareStack.add(autoAdjustClockskewMiddleware(s3client.config), autoAdjustClockskewMiddlewareOptions);\n return s3client;\n };\n return AWSS3ProviderManagedUpload;\n}());\nexport { AWSS3ProviderManagedUpload };\n//# sourceMappingURL=AWSS3ProviderManagedUpload.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spread = (this && this.__spread) || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));\n return ar;\n};\n/*\n * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { ConsoleLogger as Logger, Credentials, Parser, StorageHelper, Hub, } from '@aws-amplify/core';\nimport { GetObjectCommand, DeleteObjectCommand, ListObjectsV2Command, CopyObjectCommand, } from '@aws-sdk/client-s3';\nimport { formatUrl } from '@aws-sdk/util-format-url';\nimport { createRequest } from '@aws-sdk/util-create-request';\nimport { S3RequestPresigner } from '@aws-sdk/s3-request-presigner';\nimport { SEND_DOWNLOAD_PROGRESS_EVENT, SEND_UPLOAD_PROGRESS_EVENT, } from './axios-http-handler';\nimport { StorageErrorStrings } from '../common/StorageErrorStrings';\nimport { dispatchStorageEvent } from '../common/StorageUtils';\nimport { createPrefixMiddleware, prefixMiddlewareOptions, getPrefix, autoAdjustClockskewMiddleware, autoAdjustClockskewMiddlewareOptions, createS3Client, } from '../common/S3ClientUtils';\nimport { AWSS3ProviderManagedUpload } from './AWSS3ProviderManagedUpload';\nimport { AWSS3UploadTask, TaskEvents } from './AWSS3UploadTask';\nimport { UPLOADS_STORAGE_KEY } from '../common/StorageConstants';\nimport * as events from 'events';\nvar logger = new Logger('AWSS3Provider');\nvar DEFAULT_STORAGE_LEVEL = 'public';\nvar DEFAULT_PRESIGN_EXPIRATION = 900;\n/**\n * Provide storage methods to use AWS S3\n */\nvar AWSS3Provider = /** @class */ (function () {\n /**\n * Initialize Storage with AWS configurations\n * @param {Object} config - Configuration object for storage\n */\n function AWSS3Provider(config) {\n var _this = this;\n this._config = config ? config : {};\n this._storage = new StorageHelper().getStorage();\n Hub.listen('auth', function (data) {\n var payload = data.payload;\n if (payload.event === 'signOut' || payload.event === 'signIn') {\n _this._storage.removeItem(UPLOADS_STORAGE_KEY);\n }\n });\n logger.debug('Storage Options', this._config);\n }\n /**\n * get the category of the plugin\n */\n AWSS3Provider.prototype.getCategory = function () {\n return AWSS3Provider.CATEGORY;\n };\n /**\n * get provider name of the plugin\n */\n AWSS3Provider.prototype.getProviderName = function () {\n return AWSS3Provider.PROVIDER_NAME;\n };\n /**\n * Configure Storage part with aws configuration\n * @param {Object} config - Configuration of the Storage\n * @return {Object} - Current configuration\n */\n AWSS3Provider.prototype.configure = function (config) {\n logger.debug('configure Storage', config);\n if (!config)\n return this._config;\n var amplifyConfig = Parser.parseMobilehubConfig(config);\n this._config = Object.assign({}, this._config, amplifyConfig.Storage);\n if (!this._config.bucket) {\n logger.debug('Do not have bucket yet');\n }\n return this._config;\n };\n AWSS3Provider.prototype.startResumableUpload = function (addTaskInput, config) {\n var s3Client = addTaskInput.s3Client, emitter = addTaskInput.emitter, key = addTaskInput.key, file = addTaskInput.file, params = addTaskInput.params;\n var progressCallback = config.progressCallback, completeCallback = config.completeCallback, errorCallback = config.errorCallback, _a = config.track, track = _a === void 0 ? false : _a;\n if (!(file instanceof Blob)) {\n throw new Error(StorageErrorStrings.INVALID_BLOB);\n }\n emitter.on(TaskEvents.UPLOAD_PROGRESS, function (event) {\n if (progressCallback) {\n if (typeof progressCallback === 'function') {\n progressCallback(event);\n }\n else {\n logger.warn('progressCallback should be a function, not a ' +\n typeof progressCallback);\n }\n }\n });\n emitter.on(TaskEvents.UPLOAD_COMPLETE, function (event) {\n if (completeCallback) {\n if (typeof completeCallback === 'function') {\n completeCallback(event);\n }\n else {\n logger.warn('completeCallback should be a function, not a ' +\n typeof completeCallback);\n }\n }\n });\n emitter.on(TaskEvents.ERROR, function (err) {\n if (errorCallback) {\n if (typeof errorCallback === 'function') {\n errorCallback(err);\n }\n else {\n logger.warn('errorCallback should be a function, not a ' + typeof errorCallback);\n }\n }\n });\n // we want to keep this function sync so we defer this promise to AWSS3UploadTask to resolve when it's needed\n // when its doing a final check with _listSingleFile function\n var prefixPromise = Credentials.get().then(function (credentials) {\n var cred = Credentials.shear(credentials);\n return getPrefix(__assign(__assign({}, config), { credentials: cred }));\n });\n var task = new AWSS3UploadTask({\n s3Client: s3Client,\n file: file,\n emitter: emitter,\n level: config.level,\n storage: this._storage,\n params: params,\n prefixPromise: prefixPromise,\n });\n dispatchStorageEvent(track, 'upload', { method: 'put', result: 'success' }, null, \"Upload Task created successfully for \" + key);\n // automatically start the upload task\n task.resume();\n return task;\n };\n /**\n * Copy an object from a source object to a new object within the same bucket. Can optionally copy files across\n * different level or identityId (if source object's level is 'protected').\n *\n * @async\n * @param {S3CopySource} src - Key and optionally access level and identityId of the source object.\n * @param {S3CopyDestination} dest - Key and optionally access level of the destination object.\n * @param {S3ProviderCopyConfig} [config] - Optional configuration for s3 commands.\n * @return {Promise} The key of the copied object.\n */\n AWSS3Provider.prototype.copy = function (src, dest, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, acl, bucket, cacheControl, expires, track, serverSideEncryption, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, SSEKMSKeyId, _a, srcLevel, srcIdentityId, srcKey, _b, destLevel, destKey, srcPrefix, destPrefix, finalSrcKey, finalDestKey, params, s3, error_1;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _c.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n acl = opt.acl, bucket = opt.bucket, cacheControl = opt.cacheControl, expires = opt.expires, track = opt.track, serverSideEncryption = opt.serverSideEncryption, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, SSEKMSKeyId = opt.SSEKMSKeyId;\n _a = src.level, srcLevel = _a === void 0 ? DEFAULT_STORAGE_LEVEL : _a, srcIdentityId = src.identityId, srcKey = src.key;\n _b = dest.level, destLevel = _b === void 0 ? DEFAULT_STORAGE_LEVEL : _b, destKey = dest.key;\n if (!srcKey || typeof srcKey !== 'string') {\n throw new Error(StorageErrorStrings.NO_SRC_KEY);\n }\n if (!destKey || typeof destKey !== 'string') {\n throw new Error(StorageErrorStrings.NO_DEST_KEY);\n }\n if (srcLevel !== 'protected' && srcIdentityId) {\n logger.warn(\"You may copy files from another user if the source level is \\\"protected\\\", currently it's \" + srcLevel);\n }\n srcPrefix = this._prefix(__assign(__assign(__assign({}, opt), { level: srcLevel }), (srcIdentityId && { identityId: srcIdentityId })));\n destPrefix = this._prefix(__assign(__assign({}, opt), { level: destLevel }));\n finalSrcKey = bucket + \"/\" + srcPrefix + srcKey;\n finalDestKey = \"\" + destPrefix + destKey;\n logger.debug(\"copying \" + finalSrcKey + \" to \" + finalDestKey);\n params = {\n Bucket: bucket,\n CopySource: finalSrcKey,\n Key: finalDestKey,\n // Copies over metadata like contentType as well\n MetadataDirective: 'COPY',\n };\n if (cacheControl)\n params.CacheControl = cacheControl;\n if (expires)\n params.Expires = expires;\n if (serverSideEncryption) {\n params.ServerSideEncryption = serverSideEncryption;\n }\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n if (SSEKMSKeyId) {\n params.SSEKMSKeyId = SSEKMSKeyId;\n }\n if (acl)\n params.ACL = acl;\n s3 = this._createNewS3Client(opt);\n _c.label = 2;\n case 2:\n _c.trys.push([2, 4, , 5]);\n return [4 /*yield*/, s3.send(new CopyObjectCommand(params))];\n case 3:\n _c.sent();\n dispatchStorageEvent(track, 'copy', {\n method: 'copy',\n result: 'success',\n }, null, \"Copy success from \" + srcKey + \" to \" + destKey);\n return [2 /*return*/, {\n key: destKey,\n }];\n case 4:\n error_1 = _c.sent();\n dispatchStorageEvent(track, 'copy', {\n method: 'copy',\n result: 'failed',\n }, null, \"Copy failed from \" + srcKey + \" to \" + destKey);\n throw error_1;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype.get = function (key, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, bucket, download, cacheControl, contentDisposition, contentEncoding, contentLanguage, contentType, expires, track, SSECustomerAlgorithm, SSECustomerKey, SSECustomerKeyMD5, progressCallback, prefix, final_key, emitter, s3, params, getObjectCommand, response, error_2, signer, request, url, _a, error_3;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _b.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n bucket = opt.bucket, download = opt.download, cacheControl = opt.cacheControl, contentDisposition = opt.contentDisposition, contentEncoding = opt.contentEncoding, contentLanguage = opt.contentLanguage, contentType = opt.contentType, expires = opt.expires, track = opt.track, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, progressCallback = opt.progressCallback;\n prefix = this._prefix(opt);\n final_key = prefix + key;\n emitter = new events.EventEmitter();\n s3 = this._createNewS3Client(opt, emitter);\n logger.debug('get ' + key + ' from ' + final_key);\n params = {\n Bucket: bucket,\n Key: final_key,\n };\n // See: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property\n if (cacheControl)\n params.ResponseCacheControl = cacheControl;\n if (contentDisposition)\n params.ResponseContentDisposition = contentDisposition;\n if (contentEncoding)\n params.ResponseContentEncoding = contentEncoding;\n if (contentLanguage)\n params.ResponseContentLanguage = contentLanguage;\n if (contentType)\n params.ResponseContentType = contentType;\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n if (!(download === true)) return [3 /*break*/, 5];\n getObjectCommand = new GetObjectCommand(params);\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n if (progressCallback) {\n if (typeof progressCallback === 'function') {\n emitter.on(SEND_DOWNLOAD_PROGRESS_EVENT, function (progress) {\n progressCallback(progress);\n });\n }\n else {\n logger.warn('progressCallback should be a function, not a ' +\n typeof progressCallback);\n }\n }\n return [4 /*yield*/, s3.send(getObjectCommand)];\n case 3:\n response = _b.sent();\n emitter.removeAllListeners(SEND_DOWNLOAD_PROGRESS_EVENT);\n dispatchStorageEvent(track, 'download', { method: 'get', result: 'success' }, {\n fileSize: Number(response.Body['size'] || response.Body['length']),\n }, \"Download success for \" + key);\n return [2 /*return*/, response];\n case 4:\n error_2 = _b.sent();\n dispatchStorageEvent(track, 'download', {\n method: 'get',\n result: 'failed',\n }, null, \"Download failed with \" + error_2.message);\n throw error_2;\n case 5:\n _b.trys.push([5, 8, , 9]);\n signer = new S3RequestPresigner(__assign({}, s3.config));\n return [4 /*yield*/, createRequest(s3, new GetObjectCommand(params))];\n case 6:\n request = _b.sent();\n _a = formatUrl;\n return [4 /*yield*/, signer.presign(request, {\n expiresIn: expires || DEFAULT_PRESIGN_EXPIRATION,\n })];\n case 7:\n url = _a.apply(void 0, [_b.sent()]);\n dispatchStorageEvent(track, 'getSignedUrl', { method: 'get', result: 'success' }, null, \"Signed URL: \" + url);\n return [2 /*return*/, url];\n case 8:\n error_3 = _b.sent();\n logger.warn('get signed url error', error_3);\n dispatchStorageEvent(track, 'getSignedUrl', { method: 'get', result: 'failed' }, null, \"Could not get a signed URL for \" + key);\n throw error_3;\n case 9: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Put a file in S3 bucket specified to configure method\n * @param key - key of the object\n * @param object - File to be put in Amazon S3 bucket\n * @param [config] - Optional configuration for the underlying S3 command\n * @return an instance of AWSS3UploadTask or a promise that resolves to an object with the new object's key on\n * success.\n */\n AWSS3Provider.prototype.put = function (key, object, config) {\n var opt = Object.assign({}, this._config, config);\n var bucket = opt.bucket, track = opt.track, progressCallback = opt.progressCallback, level = opt.level, resumable = opt.resumable;\n var contentType = opt.contentType, contentDisposition = opt.contentDisposition, contentEncoding = opt.contentEncoding, cacheControl = opt.cacheControl, expires = opt.expires, metadata = opt.metadata, tagging = opt.tagging, acl = opt.acl;\n var serverSideEncryption = opt.serverSideEncryption, SSECustomerAlgorithm = opt.SSECustomerAlgorithm, SSECustomerKey = opt.SSECustomerKey, SSECustomerKeyMD5 = opt.SSECustomerKeyMD5, SSEKMSKeyId = opt.SSEKMSKeyId;\n var type = contentType ? contentType : 'binary/octet-stream';\n var params = {\n Bucket: bucket,\n Key: key,\n Body: object,\n ContentType: type,\n };\n if (cacheControl) {\n params.CacheControl = cacheControl;\n }\n if (contentDisposition) {\n params.ContentDisposition = contentDisposition;\n }\n if (contentEncoding) {\n params.ContentEncoding = contentEncoding;\n }\n if (expires) {\n params.Expires = expires;\n }\n if (metadata) {\n params.Metadata = metadata;\n }\n if (tagging) {\n params.Tagging = tagging;\n }\n if (serverSideEncryption) {\n params.ServerSideEncryption = serverSideEncryption;\n }\n if (SSECustomerAlgorithm) {\n params.SSECustomerAlgorithm = SSECustomerAlgorithm;\n }\n if (SSECustomerKey) {\n params.SSECustomerKey = SSECustomerKey;\n }\n if (SSECustomerKeyMD5) {\n params.SSECustomerKeyMD5 = SSECustomerKeyMD5;\n }\n if (SSEKMSKeyId) {\n params.SSEKMSKeyId = SSEKMSKeyId;\n }\n var emitter = new events.EventEmitter();\n var uploader = new AWSS3ProviderManagedUpload(params, opt, emitter);\n if (acl) {\n params.ACL = acl;\n }\n if (resumable === true) {\n var s3Client = this._createNewS3Client(opt);\n // we are using aws sdk middleware to inject the prefix to key, this way we don't have to call\n // this._ensureCredentials() which allows us to make this function sync so we can return non-Promise like UploadTask\n s3Client.middlewareStack.add(createPrefixMiddleware(opt, key), prefixMiddlewareOptions);\n var addTaskInput = {\n bucket: bucket,\n key: key,\n s3Client: s3Client,\n file: object,\n emitter: emitter,\n accessLevel: level,\n params: params,\n };\n // explicitly asserting the type here as Typescript could not infer that resumable is of type true\n return this.startResumableUpload(addTaskInput, config);\n }\n try {\n if (progressCallback) {\n if (typeof progressCallback === 'function') {\n emitter.on(SEND_UPLOAD_PROGRESS_EVENT, function (progress) {\n progressCallback(progress);\n });\n }\n else {\n logger.warn('progressCallback should be a function, not a ' +\n typeof progressCallback);\n }\n }\n return uploader.upload().then(function (response) {\n logger.debug('upload result', response);\n dispatchStorageEvent(track, 'upload', { method: 'put', result: 'success' }, null, \"Upload success for \" + key);\n return { key: key };\n });\n }\n catch (error) {\n logger.warn('error uploading', error);\n dispatchStorageEvent(track, 'upload', { method: 'put', result: 'failed' }, null, \"Error uploading \" + key);\n throw error;\n }\n };\n /**\n * Remove the object for specified key\n * @param {string} key - key of the object\n * @param {S3ProviderRemoveConfig} [config] - Optional configuration for the underlying S3 command\n * @return {Promise} - Promise resolves upon successful removal of the object\n */\n AWSS3Provider.prototype.remove = function (key, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, bucket, track, prefix, final_key, s3, params, deleteObjectCommand, response, error_4;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n bucket = opt.bucket, track = opt.track;\n prefix = this._prefix(opt);\n final_key = prefix + key;\n s3 = this._createNewS3Client(opt);\n logger.debug('remove ' + key + ' from ' + final_key);\n params = {\n Bucket: bucket,\n Key: final_key,\n };\n deleteObjectCommand = new DeleteObjectCommand(params);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 4, , 5]);\n return [4 /*yield*/, s3.send(deleteObjectCommand)];\n case 3:\n response = _a.sent();\n dispatchStorageEvent(track, 'delete', { method: 'remove', result: 'success' }, null, \"Deleted \" + key + \" successfully\");\n return [2 /*return*/, response];\n case 4:\n error_4 = _a.sent();\n dispatchStorageEvent(track, 'delete', { method: 'remove', result: 'failed' }, null, \"Deletion of \" + key + \" failed with \" + error_4);\n throw error_4;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype._list = function (params, opt, prefix) {\n return __awaiter(this, void 0, void 0, function () {\n var result, s3, listObjectsV2Command, response;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n result = {\n contents: [],\n nextToken: '',\n };\n s3 = this._createNewS3Client(opt);\n listObjectsV2Command = new ListObjectsV2Command(__assign({}, params));\n return [4 /*yield*/, s3.send(listObjectsV2Command)];\n case 1:\n response = _a.sent();\n if (response && response.Contents) {\n result.contents = response.Contents.map(function (item) {\n return {\n key: item.Key.substr(prefix.length),\n eTag: item.ETag,\n lastModified: item.LastModified,\n size: item.Size,\n };\n });\n result.nextToken = response.NextContinuationToken;\n }\n return [2 /*return*/, result];\n }\n });\n });\n };\n /**\n * List bucket objects relative to the level and prefix specified\n * @param {string} path - the path that contains objects\n * @param {S3ProviderListConfig} [config] - Optional configuration for the underlying S3 command\n * @return {Promise} - Promise resolves to list of keys, eTags, lastModified and file size for\n * all objects in path\n */\n AWSS3Provider.prototype.list = function (path, config) {\n return __awaiter(this, void 0, void 0, function () {\n var credentialsOK, opt, bucket, track, maxKeys, prefix, final_path, list, token, listResult, params, error_5;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this._ensureCredentials()];\n case 1:\n credentialsOK = _a.sent();\n if (!credentialsOK || !this._isWithCredentials(this._config)) {\n throw new Error(StorageErrorStrings.NO_CREDENTIALS);\n }\n opt = Object.assign({}, this._config, config);\n bucket = opt.bucket, track = opt.track, maxKeys = opt.maxKeys;\n prefix = this._prefix(opt);\n final_path = prefix + path;\n logger.debug('list ' + path + ' from ' + final_path);\n _a.label = 2;\n case 2:\n _a.trys.push([2, 10, , 11]);\n list = [];\n token = void 0;\n listResult = void 0;\n params = {\n Bucket: bucket,\n Prefix: final_path,\n MaxKeys: 1000,\n };\n if (!(maxKeys === 'ALL')) return [3 /*break*/, 7];\n _a.label = 3;\n case 3:\n params.ContinuationToken = token;\n params.MaxKeys = 1000;\n return [4 /*yield*/, this._list(params, opt, prefix)];\n case 4:\n listResult = _a.sent();\n list.push.apply(list, __spread(listResult.contents));\n if (listResult.nextToken)\n token = listResult.nextToken;\n _a.label = 5;\n case 5:\n if (listResult.nextToken) return [3 /*break*/, 3];\n _a.label = 6;\n case 6: return [3 /*break*/, 9];\n case 7:\n maxKeys < 1000 || typeof maxKeys === 'string'\n ? (params.MaxKeys = maxKeys)\n : (params.MaxKeys = 1000);\n return [4 /*yield*/, this._list(params, opt, prefix)];\n case 8:\n listResult = _a.sent();\n list.push.apply(list, __spread(listResult.contents));\n if (maxKeys > 1000)\n logger.warn(\"maxkeys can be from 0 - 1000 or 'ALL'. To list all files you can set maxKeys to 'ALL'.\");\n _a.label = 9;\n case 9:\n dispatchStorageEvent(track, 'list', { method: 'list', result: 'success' }, null, list.length + \" items returned from list operation\");\n logger.debug('list', list);\n return [2 /*return*/, list];\n case 10:\n error_5 = _a.sent();\n logger.warn('list error', error_5);\n dispatchStorageEvent(track, 'list', { method: 'list', result: 'failed' }, null, \"Listing items failed: \" + error_5.message);\n throw error_5;\n case 11: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype._ensureCredentials = function () {\n return __awaiter(this, void 0, void 0, function () {\n var credentials, cred, error_6;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, Credentials.get()];\n case 1:\n credentials = _a.sent();\n if (!credentials)\n return [2 /*return*/, false];\n cred = Credentials.shear(credentials);\n logger.debug('set credentials for storage', cred);\n this._config.credentials = cred;\n return [2 /*return*/, true];\n case 2:\n error_6 = _a.sent();\n logger.warn('ensure credentials error', error_6);\n return [2 /*return*/, false];\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n AWSS3Provider.prototype._isWithCredentials = function (config) {\n return typeof config === 'object' && config.hasOwnProperty('credentials');\n };\n AWSS3Provider.prototype._prefix = function (config) {\n var credentials = config.credentials, level = config.level;\n var customPrefix = config.customPrefix || {};\n var identityId = config.identityId || credentials.identityId;\n var privatePath = (customPrefix.private !== undefined ? customPrefix.private : 'private/') +\n identityId +\n '/';\n var protectedPath = (customPrefix.protected !== undefined\n ? customPrefix.protected\n : 'protected/') +\n identityId +\n '/';\n var publicPath = customPrefix.public !== undefined ? customPrefix.public : 'public/';\n switch (level) {\n case 'private':\n return privatePath;\n case 'protected':\n return protectedPath;\n default:\n return publicPath;\n }\n };\n /**\n * Creates an S3 client with new V3 aws sdk\n */\n AWSS3Provider.prototype._createNewS3Client = function (config, emitter) {\n var s3client = createS3Client(config, emitter);\n s3client.middlewareStack.add(autoAdjustClockskewMiddleware(s3client.config), autoAdjustClockskewMiddlewareOptions);\n return s3client;\n };\n AWSS3Provider.CATEGORY = 'Storage';\n AWSS3Provider.PROVIDER_NAME = 'AWSS3';\n return AWSS3Provider;\n}());\nexport { AWSS3Provider };\n/**\n * @deprecated use named import\n */\nexport default AWSS3Provider;\n//# sourceMappingURL=AWSS3Provider.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nimport { ConsoleLogger as Logger, Parser } from '@aws-amplify/core';\nimport { AWSS3Provider } from './providers';\nimport axios from 'axios';\nimport { AWSS3UploadTask } from './providers/AWSS3UploadTask';\nvar logger = new Logger('StorageClass');\nvar DEFAULT_PROVIDER = 'AWSS3';\n/**\n * Provide storage methods to use AWS S3\n */\nvar Storage = /** @class */ (function () {\n /**\n * Initialize Storage\n * @param {Object} config - Configuration object for storage\n */\n function Storage() {\n this._config = {};\n this._pluggables = [];\n this._cancelTokenSourceMap = new WeakMap();\n logger.debug('Storage Options', this._config);\n this.get = this.get.bind(this);\n this.put = this.put.bind(this);\n this.remove = this.remove.bind(this);\n this.list = this.list.bind(this);\n }\n Storage.prototype.getModuleName = function () {\n return 'Storage';\n };\n /**\n * add plugin into Storage category\n * @param {Object} pluggable - an instance of the plugin\n */\n Storage.prototype.addPluggable = function (pluggable) {\n if (pluggable && pluggable.getCategory() === 'Storage') {\n this._pluggables.push(pluggable);\n var config = {};\n config = pluggable.configure(this._config[pluggable.getProviderName()]);\n return config;\n }\n };\n /**\n * Get the plugin object\n * @param providerName - the name of the plugin\n */\n Storage.prototype.getPluggable = function (providerName) {\n var pluggable = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === providerName; });\n if (pluggable === undefined) {\n logger.debug('No plugin found with providerName', providerName);\n return null;\n }\n else\n return pluggable;\n };\n /**\n * Remove the plugin object\n * @param providerName - the name of the plugin\n */\n Storage.prototype.removePluggable = function (providerName) {\n this._pluggables = this._pluggables.filter(function (pluggable) { return pluggable.getProviderName() !== providerName; });\n return;\n };\n /**\n * Configure Storage\n * @param {Object} config - Configuration object for storage\n * @return {Object} - Current configuration\n */\n Storage.prototype.configure = function (config) {\n var _this = this;\n logger.debug('configure Storage');\n if (!config)\n return this._config;\n var amplifyConfig = Parser.parseMobilehubConfig(config);\n var storageKeysFromConfig = Object.keys(amplifyConfig.Storage);\n var storageArrayKeys = [\n 'bucket',\n 'region',\n 'level',\n 'track',\n 'customPrefix',\n 'serverSideEncryption',\n 'SSECustomerAlgorithm',\n 'SSECustomerKey',\n 'SSECustomerKeyMD5',\n 'SSEKMSKeyId',\n ];\n var isInStorageArrayKeys = function (k) {\n return storageArrayKeys.some(function (x) { return x === k; });\n };\n var checkConfigKeysFromArray = function (k) {\n return k.find(function (k) { return isInStorageArrayKeys(k); });\n };\n if (storageKeysFromConfig &&\n checkConfigKeysFromArray(storageKeysFromConfig) &&\n !amplifyConfig.Storage[DEFAULT_PROVIDER]) {\n amplifyConfig.Storage[DEFAULT_PROVIDER] = {};\n }\n Object.entries(amplifyConfig.Storage).map(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n if (key && isInStorageArrayKeys(key) && value !== undefined) {\n amplifyConfig.Storage[DEFAULT_PROVIDER][key] = value;\n delete amplifyConfig.Storage[key];\n }\n });\n // only update new values for each provider\n Object.keys(amplifyConfig.Storage).forEach(function (providerName) {\n if (typeof amplifyConfig.Storage[providerName] !== 'string') {\n _this._config[providerName] = __assign(__assign({}, _this._config[providerName]), amplifyConfig.Storage[providerName]);\n }\n });\n this._pluggables.forEach(function (pluggable) {\n pluggable.configure(_this._config[pluggable.getProviderName()]);\n });\n if (this._pluggables.length === 0) {\n this.addPluggable(new AWSS3Provider());\n }\n return this._config;\n };\n Storage.prototype.getCancellableTokenSource = function () {\n return axios.CancelToken.source();\n };\n Storage.prototype.updateRequestToBeCancellable = function (request, cancelTokenSource) {\n this._cancelTokenSourceMap.set(request, cancelTokenSource);\n };\n Storage.prototype.isUploadTask = function (x) {\n return (typeof x !== 'undefined' &&\n typeof x['pause'] === 'function' &&\n typeof x['resume'] === 'function');\n };\n Storage.prototype.cancel = function (request, message) {\n if (request instanceof AWSS3UploadTask) {\n return request._cancel();\n }\n var cancelTokenSource = this._cancelTokenSourceMap.get(request);\n if (cancelTokenSource) {\n cancelTokenSource.cancel(message);\n }\n else {\n logger.debug('The request does not map to any cancel token');\n }\n };\n Storage.prototype.copy = function (src, dest, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n var cancelTokenSource = this.getCancellableTokenSource();\n if (typeof prov.copy !== 'function') {\n return Promise.reject(\".copy is not implemented on provider \" + prov.getProviderName());\n }\n var responsePromise = prov.copy(src, dest, __assign(__assign({}, config), { cancelTokenSource: cancelTokenSource }));\n this.updateRequestToBeCancellable(responsePromise, cancelTokenSource);\n return responsePromise;\n };\n Storage.prototype.get = function (key, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n var cancelTokenSource = this.getCancellableTokenSource();\n var responsePromise = prov.get(key, __assign(__assign({}, config), { cancelTokenSource: cancelTokenSource }));\n this.updateRequestToBeCancellable(responsePromise, cancelTokenSource);\n return responsePromise;\n };\n Storage.prototype.isCancelError = function (error) {\n return axios.isCancel(error);\n };\n Storage.prototype.put = function (key, object, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n var cancelTokenSource = this.getCancellableTokenSource();\n var response = prov.put(key, object, __assign(__assign({}, config), { cancelTokenSource: cancelTokenSource }));\n if (!this.isUploadTask(response)) {\n this.updateRequestToBeCancellable(response, cancelTokenSource);\n }\n return response;\n };\n Storage.prototype.remove = function (key, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n return prov.remove(key, config);\n };\n Storage.prototype.list = function (path, config) {\n var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;\n var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });\n if (prov === undefined) {\n logger.debug('No plugin found with providerName', provider);\n return Promise.reject('No plugin found in Storage for the provider');\n }\n return prov.list(path, config);\n };\n return Storage;\n}());\nexport { Storage };\n/**\n * @deprecated use named import\n */\nexport default Storage;\n//# sourceMappingURL=Storage.js.map","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { Storage as StorageClass } from './Storage';\nimport { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';\nvar logger = new Logger('Storage');\nvar _instance = null;\nvar getInstance = function () {\n if (_instance) {\n return _instance;\n }\n logger.debug('Create Storage Instance, debug');\n _instance = new StorageClass();\n _instance.vault = new StorageClass();\n var old_configure = _instance.configure;\n _instance.configure = function (options) {\n logger.debug('storage configure called');\n var vaultConfig = __assign({}, old_configure.call(_instance, options));\n // set level private for each provider for the vault\n Object.keys(vaultConfig).forEach(function (providerName) {\n if (typeof vaultConfig[providerName] !== 'string') {\n vaultConfig[providerName] = __assign(__assign({}, vaultConfig[providerName]), { level: 'private' });\n }\n });\n logger.debug('storage vault configure called');\n _instance.vault.configure(vaultConfig);\n };\n return _instance;\n};\nexport var Storage = getInstance();\nAmplify.register(Storage);\n/**\n * @deprecated use named import\n */\nexport default Storage;\nexport { StorageClass };\nexport * from './providers';\n//# sourceMappingURL=index.js.map","import { AuthErrorStrings } from '@aws-amplify/auth';\nvar AuthStrings;\n(function (AuthStrings) {\n AuthStrings[\"BACK_TO_SIGN_IN\"] = \"Back to Sign In\";\n AuthStrings[\"CHANGE_PASSWORD_ACTION\"] = \"Change\";\n AuthStrings[\"CHANGE_PASSWORD\"] = \"Change Password\";\n AuthStrings[\"CODE_LABEL\"] = \"Verification code\";\n AuthStrings[\"CODE_PLACEHOLDER\"] = \"Enter code\";\n AuthStrings[\"CONFIRM_SIGN_UP_CODE_LABEL\"] = \"Confirmation Code\";\n AuthStrings[\"CONFIRM_SIGN_UP_CODE_PLACEHOLDER\"] = \"Enter your code\";\n AuthStrings[\"CONFIRM_SIGN_UP_HEADER_TEXT\"] = \"Confirm Sign up\";\n AuthStrings[\"CONFIRM_SIGN_UP_LOST_CODE\"] = \"Lost your code?\";\n AuthStrings[\"CONFIRM_SIGN_UP_RESEND_CODE\"] = \"Resend Code\";\n AuthStrings[\"CONFIRM_SIGN_UP_SUBMIT_BUTTON_TEXT\"] = \"Confirm\";\n AuthStrings[\"CONFIRM_SMS_CODE\"] = \"Confirm SMS Code\";\n AuthStrings[\"CONFIRM_TOTP_CODE\"] = \"Confirm TOTP Code\";\n AuthStrings[\"CONFIRM\"] = \"Confirm\";\n AuthStrings[\"CREATE_ACCOUNT_TEXT\"] = \"Create account\";\n AuthStrings[\"EMAIL_LABEL\"] = \"Email Address *\";\n AuthStrings[\"EMAIL_PLACEHOLDER\"] = \"Enter your email address\";\n AuthStrings[\"FORGOT_PASSWORD_TEXT\"] = \"Forgot your password?\";\n AuthStrings[\"LESS_THAN_TWO_MFA_VALUES_MESSAGE\"] = \"Less than two MFA types available\";\n AuthStrings[\"NEW_PASSWORD_LABEL\"] = \"New password\";\n AuthStrings[\"NEW_PASSWORD_PLACEHOLDER\"] = \"Enter your new password\";\n AuthStrings[\"NO_ACCOUNT_TEXT\"] = \"No account?\";\n AuthStrings[\"USERNAME_REMOVE_WHITESPACE\"] = \"Username cannot contain whitespace\";\n AuthStrings[\"PASSWORD_REMOVE_WHITESPACE\"] = \"Password cannot start or end with whitespace\";\n AuthStrings[\"PASSWORD_LABEL\"] = \"Password *\";\n AuthStrings[\"PASSWORD_PLACEHOLDER\"] = \"Enter your password\";\n AuthStrings[\"PHONE_LABEL\"] = \"Phone Number *\";\n AuthStrings[\"PHONE_PLACEHOLDER\"] = \"(555) 555-1212\";\n AuthStrings[\"QR_CODE_ALT\"] = \"qrcode\";\n AuthStrings[\"RESET_PASSWORD_TEXT\"] = \"Reset password\";\n AuthStrings[\"RESET_YOUR_PASSWORD\"] = \"Reset your password\";\n AuthStrings[\"SELECT_MFA_TYPE_HEADER_TEXT\"] = \"Select MFA Type\";\n AuthStrings[\"SELECT_MFA_TYPE_SUBMIT_BUTTON_TEXT\"] = \"Verify\";\n AuthStrings[\"SEND_CODE\"] = \"Send Code\";\n AuthStrings[\"SUBMIT\"] = \"Submit\";\n AuthStrings[\"SETUP_TOTP_REQUIRED\"] = \"TOTP needs to be configured\";\n AuthStrings[\"SIGN_IN_ACTION\"] = \"Sign In\";\n AuthStrings[\"SIGN_IN_HEADER_TEXT\"] = \"Sign in to your account\";\n AuthStrings[\"SIGN_IN_TEXT\"] = \"Sign in\";\n AuthStrings[\"SIGN_IN_WITH_AMAZON\"] = \"Sign in with Amazon\";\n AuthStrings[\"SIGN_IN_WITH_AUTH0\"] = \"Sign in with Auth0\";\n AuthStrings[\"SIGN_IN_WITH_AWS\"] = \"Sign in with AWS\";\n AuthStrings[\"SIGN_IN_WITH_FACEBOOK\"] = \"Sign in with Facebook\";\n AuthStrings[\"SIGN_IN_WITH_GOOGLE\"] = \"Sign in with Google\";\n AuthStrings[\"SIGN_OUT\"] = \"Sign Out\";\n AuthStrings[\"SIGN_UP_EMAIL_PLACEHOLDER\"] = \"Email\";\n AuthStrings[\"SIGN_UP_HAVE_ACCOUNT_TEXT\"] = \"Have an account?\";\n AuthStrings[\"SIGN_UP_HEADER_TEXT\"] = \"Create a new account\";\n AuthStrings[\"SIGN_UP_PASSWORD_PLACEHOLDER\"] = \"Password\";\n AuthStrings[\"SIGN_UP_SUBMIT_BUTTON_TEXT\"] = \"Create Account\";\n AuthStrings[\"SIGN_UP_USERNAME_PLACEHOLDER\"] = \"Username\";\n AuthStrings[\"SKIP\"] = \"Skip\";\n AuthStrings[\"SUCCESS_MFA_TYPE\"] = \"Success! Your MFA Type is now:\";\n AuthStrings[\"TOTP_HEADER_TEXT\"] = \"Scan then enter verification code\";\n AuthStrings[\"TOTP_LABEL\"] = \"Enter Security Code:\";\n AuthStrings[\"TOTP_ISSUER\"] = \"AWSCognito\";\n AuthStrings[\"TOTP_SETUP_FAILURE\"] = \"TOTP Setup has failed\";\n AuthStrings[\"TOTP_SUBMIT_BUTTON_TEXT\"] = \"Verify Security Token\";\n AuthStrings[\"TOTP_SUCCESS_MESSAGE\"] = \"Setup TOTP successfully!\";\n AuthStrings[\"UNABLE_TO_SETUP_MFA_AT_THIS_TIME\"] = \"Failed! Unable to configure MFA at this time\";\n AuthStrings[\"USERNAME_LABEL\"] = \"Username *\";\n AuthStrings[\"USERNAME_PLACEHOLDER\"] = \"Enter your username\";\n AuthStrings[\"VERIFY_CONTACT_EMAIL_LABEL\"] = \"Email\";\n AuthStrings[\"VERIFY_CONTACT_HEADER_TEXT\"] = \"Account recovery requires verified contact information\";\n AuthStrings[\"VERIFY_CONTACT_PHONE_LABEL\"] = \"Phone Number\";\n AuthStrings[\"VERIFY_CONTACT_SUBMIT_LABEL\"] = \"Submit\";\n AuthStrings[\"VERIFY_CONTACT_VERIFY_LABEL\"] = \"Verify\";\n AuthStrings[\"ADDRESS_LABEL\"] = \"Address\";\n AuthStrings[\"ADDRESS_PLACEHOLDER\"] = \"Enter your address\";\n AuthStrings[\"NICKNAME_LABEL\"] = \"Nickname\";\n AuthStrings[\"NICKNAME_PLACEHOLDER\"] = \"Enter your nickname\";\n AuthStrings[\"BIRTHDATE_LABEL\"] = \"Birthday\";\n AuthStrings[\"BIRTHDATE_PLACEHOLDER\"] = \"Enter your birthday\";\n AuthStrings[\"PICTURE_LABEL\"] = \"Picture URL\";\n AuthStrings[\"PICTURE_PLACEHOLDER\"] = \"Enter your picture URL\";\n AuthStrings[\"FAMILY_NAME_LABEL\"] = \"Family Name\";\n AuthStrings[\"FAMILY_NAME_PLACEHOLDER\"] = \"Enter your family name\";\n AuthStrings[\"PREFERRED_USERNAME_LABEL\"] = \"Preferred Username\";\n AuthStrings[\"PREFERRED_USERNAME_PLACEHOLDER\"] = \"Enter your preferred username\";\n AuthStrings[\"GENDER_LABEL\"] = \"Gender\";\n AuthStrings[\"GENDER_PLACEHOLDER\"] = \"Enter your gender\";\n AuthStrings[\"PROFILE_LABEL\"] = \"Profile URL\";\n AuthStrings[\"PROFILE_PLACEHOLDER\"] = \"Enter your profile URL\";\n AuthStrings[\"GIVEN_NAME_LABEL\"] = \"First Name\";\n AuthStrings[\"GIVEN_NAME_PLACEHOLDER\"] = \"Enter your first name\";\n AuthStrings[\"ZONEINFO_LABEL\"] = \"Time zone\";\n AuthStrings[\"ZONEINFO_PLACEHOLDER\"] = \"Enter your time zone\";\n AuthStrings[\"LOCALE_LABEL\"] = \"Locale\";\n AuthStrings[\"LOCALE_PLACEHOLDER\"] = \"Enter your locale\";\n AuthStrings[\"UPDATED_AT_LABEL\"] = \"Updated At\";\n AuthStrings[\"UPDATED_AT_PLACEHOLDER\"] = \"Enter the time the information was last updated\";\n AuthStrings[\"MIDDLE_NAME_LABEL\"] = \"Middle Name\";\n AuthStrings[\"MIDDLE_NAME_PLACEHOLDER\"] = \"Enter your middle name\";\n AuthStrings[\"WEBSITE_LABEL\"] = \"Website\";\n AuthStrings[\"WEBSITE_PLACEHOLDER\"] = \"Enter your website\";\n AuthStrings[\"NAME_LABEL\"] = \"Full Name\";\n AuthStrings[\"NAME_PLACEHOLDER\"] = \"Enter your full name\";\n AuthStrings[\"PHOTO_PICKER_TITLE\"] = \"Picker Title\";\n AuthStrings[\"PHOTO_PICKER_HINT\"] = \"Ancillary text or content may occupy this space here\";\n AuthStrings[\"PHOTO_PICKER_PLACEHOLDER_HINT\"] = \"Placeholder hint\";\n AuthStrings[\"PHOTO_PICKER_BUTTON_TEXT\"] = \"Button\";\n AuthStrings[\"IMAGE_PICKER_TITLE\"] = \"Add Profile Photo\";\n AuthStrings[\"IMAGE_PICKER_HINT\"] = \"Preview the image before upload\";\n AuthStrings[\"IMAGE_PICKER_PLACEHOLDER_HINT\"] = \"Tap to image select\";\n AuthStrings[\"IMAGE_PICKER_BUTTON_TEXT\"] = \"Upload\";\n AuthStrings[\"PICKER_TEXT\"] = \"Pick a file\";\n AuthStrings[\"TEXT_FALLBACK_CONTENT\"] = \"Fallback Content\";\n AuthStrings[\"CONFIRM_SIGN_UP_FAILED\"] = \"Confirm Sign Up Failed\";\n AuthStrings[\"SIGN_UP_FAILED\"] = \"Sign Up Failed\";\n})(AuthStrings || (AuthStrings = {}));\nvar InteractionsStrings;\n(function (InteractionsStrings) {\n InteractionsStrings[\"CHATBOT_TITLE\"] = \"ChatBot Lex\";\n InteractionsStrings[\"TEXT_INPUT_PLACEHOLDER\"] = \"Write a message\";\n InteractionsStrings[\"VOICE_INPUT_PLACEHOLDER\"] = \"Click mic to speak\";\n InteractionsStrings[\"CHAT_DISABLED_ERROR\"] = \"Error: Either voice or text must be enabled for the chatbot\";\n InteractionsStrings[\"NO_BOT_NAME_ERROR\"] = \"Error: Bot name must be provided to ChatBot\";\n})(InteractionsStrings || (InteractionsStrings = {}));\nvar Translations = Object.assign(Object.assign(Object.assign({}, AuthStrings), AuthErrorStrings), InteractionsStrings);\nexport { Translations as T };\n","// TODO: Move these values to or extract them from the Cognito Provider in the Auth category for Auth V2\nvar AuthState;\n(function (AuthState) {\n AuthState[\"SignUp\"] = \"signup\";\n AuthState[\"SignOut\"] = \"signout\";\n AuthState[\"SignIn\"] = \"signin\";\n AuthState[\"Loading\"] = \"loading\";\n AuthState[\"SignedOut\"] = \"signedout\";\n AuthState[\"SignedIn\"] = \"signedin\";\n AuthState[\"SigningUp\"] = \"signingup\";\n AuthState[\"ConfirmSignUp\"] = \"confirmSignUp\";\n AuthState[\"confirmingSignUpCustomFlow\"] = \"confirmsignupcustomflow\";\n AuthState[\"ConfirmSignIn\"] = \"confirmSignIn\";\n AuthState[\"confirmingSignInCustomFlow\"] = \"confirmingsignincustomflow\";\n AuthState[\"VerifyingAttributes\"] = \"verifyingattributes\";\n AuthState[\"ForgotPassword\"] = \"forgotpassword\";\n AuthState[\"ResetPassword\"] = \"resettingpassword\";\n AuthState[\"SettingMFA\"] = \"settingMFA\";\n AuthState[\"TOTPSetup\"] = \"TOTPSetup\";\n AuthState[\"CustomConfirmSignIn\"] = \"customConfirmSignIn\";\n AuthState[\"VerifyContact\"] = \"verifyContact\";\n})(AuthState || (AuthState = {}));\nvar MfaOption;\n(function (MfaOption) {\n MfaOption[\"TOTP\"] = \"TOTP\";\n MfaOption[\"SMS\"] = \"SMS\";\n MfaOption[\"NOMFA\"] = \"NOMFA\";\n})(MfaOption || (MfaOption = {}));\nvar ChallengeName;\n(function (ChallengeName) {\n ChallengeName[\"SoftwareTokenMFA\"] = \"SOFTWARE_TOKEN_MFA\";\n ChallengeName[\"SMSMFA\"] = \"SMS_MFA\";\n ChallengeName[\"NewPasswordRequired\"] = \"NEW_PASSWORD_REQUIRED\";\n ChallengeName[\"MFASetup\"] = \"MFA_SETUP\";\n ChallengeName[\"CustomChallenge\"] = \"CUSTOM_CHALLENGE\";\n})(ChallengeName || (ChallengeName = {}));\nvar AuthFormField;\n(function (AuthFormField) {\n AuthFormField[\"Password\"] = \"password\";\n})(AuthFormField || (AuthFormField = {}));\nvar UsernameAlias;\n(function (UsernameAlias) {\n UsernameAlias[\"username\"] = \"username\";\n UsernameAlias[\"email\"] = \"email\";\n UsernameAlias[\"phone_number\"] = \"phone_number\";\n})(UsernameAlias || (UsernameAlias = {}));\nexport { AuthState as A, ChallengeName as C, MfaOption as M, UsernameAlias as U, AuthFormField as a };\n","// Dictionaries\n// fieldId constants\nvar USERNAME_SUFFIX = 'username';\nvar EMAIL_SUFFIX = 'email';\nvar CODE_SUFFIX = 'code';\nvar PHONE_SUFFIX = 'phone';\nvar PASSWORD_SUFFIX = 'password';\n// Country Dial Code common constants\nvar COUNTRY_DIAL_CODE_SUFFIX = 'country-dial-code-select';\nvar COUNTRY_DIAL_CODE_DEFAULT = '+1';\n// Auth Keys\nvar AUTH_SOURCE_KEY = 'amplify-auth-source';\n// Error message Common Constants\nvar PHONE_EMPTY_ERROR_MESSAGE = 'Phone number can not be empty';\nvar NO_AUTH_MODULE_FOUND = 'No Auth module found, please ensure @aws-amplify/auth is imported';\nvar NO_STORAGE_MODULE_FOUND = 'No Storage module found, please ensure @aws-amplify/storage is imported';\nvar NO_INTERACTIONS_MODULE_FOUND = 'No Interactions module found, please ensure @aws-amplify/interactions is imported';\n// Select MFA Types Messages\nvar USER_NOT_SETUP_SOFTWARE_TOKEN_MFA = 'User has not set up software token mfa';\nvar USER_NOT_VERIFIED_SOFTWARE_TOKEN_MFA = 'User has not verified software token mfa';\n// Hub Events and Channels\nvar AUTH_CHANNEL = 'auth';\nvar UI_AUTH_CHANNEL = 'UI Auth';\nvar TOAST_AUTH_ERROR_EVENT = 'ToastAuthError';\nvar AUTH_STATE_CHANGE_EVENT = 'AuthStateChange';\nexport { AUTH_CHANNEL as A, COUNTRY_DIAL_CODE_SUFFIX as C, EMAIL_SUFFIX as E, NO_AUTH_MODULE_FOUND as N, PHONE_EMPTY_ERROR_MESSAGE as P, TOAST_AUTH_ERROR_EVENT as T, UI_AUTH_CHANNEL as U, AUTH_STATE_CHANGE_EVENT as a, PHONE_SUFFIX as b, NO_INTERACTIONS_MODULE_FOUND as c, NO_STORAGE_MODULE_FOUND as d, USER_NOT_SETUP_SOFTWARE_TOKEN_MFA as e, USER_NOT_VERIFIED_SOFTWARE_TOKEN_MFA as f, COUNTRY_DIAL_CODE_DEFAULT as g, AUTH_SOURCE_KEY as h, CODE_SUFFIX as i, PASSWORD_SUFFIX as j, USERNAME_SUFFIX as k };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Logger, Hub, I18n } from '@aws-amplify/core';\nimport { U as UsernameAlias, A as AuthState } from './auth-types-78df304e.js';\nimport Auth from '@aws-amplify/auth';\nimport { T as Translations } from './Translations-108d469f.js';\nimport { U as UI_AUTH_CHANNEL, T as TOAST_AUTH_ERROR_EVENT, a as AUTH_STATE_CHANGE_EVENT, P as PHONE_EMPTY_ERROR_MESSAGE, C as COUNTRY_DIAL_CODE_SUFFIX, b as PHONE_SUFFIX } from './constants-c8ecaa24.js';\nvar logger = new Logger('helpers');\n/**\n * Finds closest element that matches the selector from the ancestor tree.\n * Trasverses through shadow DOM and slots.\n *\n * Adpated from: https://stackoverflow.com/a/56105394\n */\nvar closestElement = function (selector, base) {\n function _closestFrom(el) {\n if (!el || el === document || el === window)\n return null;\n if (el.matches(selector))\n return base; // return if current element matches the selector\n if (el.assignedSlot)\n el = el.assignedSlot; // traverse up slots if slotted\n var found = el.closest(selector);\n return found ? found : _closestFrom(el.getRootNode().host); // try to traverse up shadows\n }\n return _closestFrom(base);\n};\nvar dispatchToastHubEvent = function (error) {\n Hub.dispatch(UI_AUTH_CHANNEL, {\n event: TOAST_AUTH_ERROR_EVENT,\n message: I18n.get(error.message),\n });\n};\nvar dispatchAuthStateChangeEvent = function (nextAuthState, data) {\n Hub.dispatch(UI_AUTH_CHANNEL, {\n event: AUTH_STATE_CHANGE_EVENT,\n message: nextAuthState,\n data: data,\n });\n};\nvar composePhoneNumberInput = function (phoneNumber) {\n if (!phoneNumber.phoneNumberValue) {\n throw new Error(PHONE_EMPTY_ERROR_MESSAGE);\n }\n var sanitizedPhoneNumberValue = phoneNumber.phoneNumberValue.replace(/[-()\\s]/g, '');\n return \"\" + phoneNumber.countryDialCodeValue + sanitizedPhoneNumberValue;\n};\nvar checkUsernameAlias = function (usernameAlias) {\n if (!(usernameAlias in UsernameAlias)) {\n throw new Error(\"Invalid username Alias - \" + usernameAlias + \". Instead use \" + Object.values(UsernameAlias));\n }\n};\nvar onAuthUIStateChange = function (authStateHandler) {\n var authUIStateHandler = function (data) { return __awaiter(void 0, void 0, void 0, function () {\n var payload, _a, user, e_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n payload = data.payload;\n _a = payload.event;\n switch (_a) {\n case AUTH_STATE_CHANGE_EVENT: return [3 /*break*/, 1];\n }\n return [3 /*break*/, 8];\n case 1:\n if (!payload.message) return [3 /*break*/, 7];\n if (!(payload.message === AuthState.SignedIn)) return [3 /*break*/, 6];\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n return [4 /*yield*/, Auth.currentAuthenticatedUser()];\n case 3:\n user = _b.sent();\n authStateHandler(payload.message, user);\n return [3 /*break*/, 5];\n case 4:\n e_1 = _b.sent();\n logger.error('User is not authenticated');\n return [3 /*break*/, 5];\n case 5: return [3 /*break*/, 7];\n case 6:\n authStateHandler(payload.message, payload.data);\n _b.label = 7;\n case 7: return [3 /*break*/, 8];\n case 8: return [2 /*return*/];\n }\n });\n }); };\n Hub.listen(UI_AUTH_CHANNEL, authUIStateHandler);\n var unsubscribe = function () {\n // Replace user's `authStateHandler` with a noop so that we don't trigger side-effects during the async `authUIStateHandler` when unsubscribed\n authStateHandler = function () { };\n Hub.remove(UI_AUTH_CHANNEL, authUIStateHandler);\n };\n return unsubscribe;\n};\nvar isHintValid = function (field) {\n return !(field['hint'] === null || typeof field['hint'] === 'string');\n};\n// Required attributes come from https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims\nvar getRequiredAttributesMap = function () { return ({\n address: {\n label: I18n.get(Translations.ADDRESS_LABEL),\n placeholder: I18n.get(Translations.ADDRESS_PLACEHOLDER),\n },\n nickname: {\n label: I18n.get(Translations.NICKNAME_LABEL),\n placeholder: I18n.get(Translations.NICKNAME_PLACEHOLDER),\n },\n birthdate: {\n label: I18n.get(Translations.BIRTHDATE_LABEL),\n placeholder: I18n.get(Translations.BIRTHDATE_PLACEHOLDER),\n },\n phone_number: {\n label: I18n.get(Translations.PHONE_LABEL),\n placeholder: I18n.get(Translations.PHONE_PLACEHOLDER),\n },\n email: {\n lable: I18n.get(Translations.EMAIL_LABEL),\n placeholder: I18n.get(Translations.EMAIL_PLACEHOLDER),\n },\n picture: {\n label: I18n.get(Translations.PICTURE_LABEL),\n placeholder: I18n.get(Translations.PICTURE_PLACEHOLDER),\n },\n family_name: {\n label: I18n.get(Translations.FAMILY_NAME_LABEL),\n placeholder: I18n.get(Translations.FAMILY_NAME_PLACEHOLDER),\n },\n preferred_username: {\n label: I18n.get(Translations.PREFERRED_USERNAME_LABEL),\n placeholder: I18n.get(Translations.PREFERRED_USERNAME_PLACEHOLDER),\n },\n gender: {\n label: I18n.get(Translations.GENDER_LABEL),\n placeholder: I18n.get(Translations.GENDER_PLACEHOLDER),\n },\n profile: {\n label: I18n.get(Translations.PROFILE_LABEL),\n placeholder: I18n.get(Translations.PROFILE_PLACEHOLDER),\n },\n given_name: {\n label: I18n.get(Translations.GIVEN_NAME_LABEL),\n placeholder: I18n.get(Translations.GIVEN_NAME_PLACEHOLDER),\n },\n zoneinfo: {\n label: I18n.get(Translations.ZONEINFO_LABEL),\n placeholder: I18n.get(Translations.ZONEINFO_PLACEHOLDER),\n },\n locale: {\n label: I18n.get(Translations.LOCALE_LABEL),\n placeholder: I18n.get(Translations.LOCALE_PLACEHOLDER),\n },\n updated_at: {\n label: I18n.get(Translations.UPDATED_AT_LABEL),\n placeholder: I18n.get(Translations.UPDATED_AT_PLACEHOLDER),\n },\n middle_name: {\n label: I18n.get(Translations.MIDDLE_NAME_LABEL),\n placeholder: I18n.get(Translations.MIDDLE_NAME_PLACEHOLDER),\n },\n website: {\n label: I18n.get(Translations.WEBSITE_LABEL),\n placeholder: I18n.get(Translations.WEBSITE_PLACEHOLDER),\n },\n name: {\n label: I18n.get(Translations.NAME_LABEL),\n placeholder: I18n.get(Translations.NAME_PLACEHOLDER),\n },\n}); };\nfunction handlePhoneNumberChange(event, phoneNumber) {\n var name = event.target.name;\n var value = event.target.value;\n /** Cognito expects to have a string be passed when signing up. Since the Select input is separate\n * input from the phone number input, we need to first capture both components values and combined\n * them together.\n */\n if (name === COUNTRY_DIAL_CODE_SUFFIX) {\n phoneNumber.countryDialCodeValue = value;\n }\n if (name === PHONE_SUFFIX) {\n phoneNumber.phoneNumberValue = value;\n }\n}\nexport { dispatchToastHubEvent as a, composePhoneNumberInput as b, checkUsernameAlias as c, dispatchAuthStateChangeEvent as d, closestElement as e, getRequiredAttributesMap as g, handlePhoneNumberChange as h, isHintValid as i, onAuthUIStateChange as o };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar NAMESPACE = 'amplify-ui-components';\nvar scopeId;\nvar contentRef;\nvar hostTagName;\nvar useNativeShadowDom = false;\nvar checkSlotFallbackVisibility = false;\nvar checkSlotRelocate = false;\nvar isSvgMode = false;\nvar queueCongestion = 0;\nvar queuePending = false;\nvar win = typeof window !== 'undefined' ? window : {};\nvar CSS = win.CSS;\nvar doc = win.document || { head: {} };\nvar plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: function (h) { return h(); },\n raf: function (h) { return requestAnimationFrame(h); },\n ael: function (el, eventName, listener, opts) { return el.addEventListener(eventName, listener, opts); },\n rel: function (el, eventName, listener, opts) { return el.removeEventListener(eventName, listener, opts); },\n};\nvar supportsShadow = /*@__PURE__*/ (function () { return (doc.head.attachShadow + '').indexOf('[native') > -1; })();\nvar promiseResolve = function (v) { return Promise.resolve(v); };\nvar supportsConstructibleStylesheets = /*@__PURE__*/ (function () {\n try {\n new CSSStyleSheet();\n return true;\n }\n catch (e) { }\n return false;\n})();\nvar addHostEventListeners = function (elm, hostRef, listeners, attachParentListeners) {\n if (listeners) {\n listeners.map(function (_a) {\n var flags = _a[0], name = _a[1], method = _a[2];\n var target = elm;\n var handler = hostListenerProxy(hostRef, method);\n var opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(function () { return plt.rel(target, name, handler, opts); });\n });\n }\n};\nvar hostListenerProxy = function (hostRef, methodName) { return function (ev) {\n {\n if (hostRef.$flags$ & 256 /* isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n }\n else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n}; };\n// prettier-ignore\nvar hostListenerOpts = function (flags) { return (flags & 2 /* Capture */) !== 0; };\nvar HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\nvar XLINK_NS = 'http://www.w3.org/1999/xlink';\nvar createTime = function (fnName, tagName) {\n if (tagName === void 0) { tagName = ''; }\n {\n return function () {\n return;\n };\n }\n};\nvar uniqueTime = function (key, measureText) {\n {\n return function () {\n return;\n };\n }\n};\nvar rootAppliedStyles = new WeakMap();\nvar registerStyle = function (scopeId, cssText, allowCS) {\n var style = styles.get(scopeId);\n if (supportsConstructibleStylesheets && allowCS) {\n style = (style || new CSSStyleSheet());\n style.replace(cssText);\n }\n else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nvar addStyle = function (styleContainerNode, cmpMeta, mode, hostElm) {\n var scopeId = getScopeId(cmpMeta);\n var style = styles.get(scopeId);\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n var appliedStyles = rootAppliedStyles.get(styleContainerNode);\n var styleElm = void 0;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));\n }\n if (!appliedStyles.has(scopeId)) {\n {\n if (plt.$cssShim$) {\n styleElm = plt.$cssShim$.createHostStyle(hostElm, scopeId, style, !!(cmpMeta.$flags$ & 10 /* needsScopedEncapsulation */));\n var newScopeId = styleElm['s-sc'];\n if (newScopeId) {\n scopeId = newScopeId;\n // we don't want to add this styleID to the appliedStyles Set\n // since the cssVarShim might need to apply several different\n // stylesheets for the same component\n appliedStyles = null;\n }\n }\n else {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n }\n else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = __spreadArrays(styleContainerNode.adoptedStyleSheets, [style]);\n }\n }\n return scopeId;\n};\nvar attachStyles = function (hostRef) {\n var cmpMeta = hostRef.$cmpMeta$;\n var elm = hostRef.$hostElement$;\n var flags = cmpMeta.$flags$;\n var endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n var scopeId = addStyle(supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$, elm);\n if (flags & 10 /* needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n if (flags & 2 /* scopedCssEncapsulation */) {\n elm.classList.add(scopeId + '-s');\n }\n }\n endAttachStyles();\n};\nvar getScopeId = function (cmp, mode) { return 'sc-' + (cmp.$tagName$); };\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nvar EMPTY_OBJ = {};\n/**\n * Namespaces\n */\nvar SVG_NS = 'http://www.w3.org/2000/svg';\nvar HTML_NS = 'http://www.w3.org/1999/xhtml';\nvar isDef = function (v) { return v != null; };\nvar isComplexType = function (o) {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// const stack: any[] = [];\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nvar h = function (nodeName, vnodeData) {\n var children = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n children[_i - 2] = arguments[_i];\n }\n var child = null;\n var key = null;\n var slotName = null;\n var simple = false;\n var lastSimple = false;\n var vNodeChildren = [];\n var walk = function (c) {\n for (var i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n }\n else if (child != null && typeof child !== 'boolean') {\n if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {\n child = String(child);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n }\n else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n // normalize class / classname attributes\n if (vnodeData.key) {\n key = vnodeData.key;\n }\n if (vnodeData.name) {\n slotName = vnodeData.name;\n }\n {\n var classData_1 = vnodeData.className || vnodeData.class;\n if (classData_1) {\n vnodeData.class =\n typeof classData_1 !== 'object'\n ? classData_1\n : Object.keys(classData_1)\n .filter(function (k) { return classData_1[k]; })\n .join(' ');\n }\n }\n }\n var vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n {\n vnode.$key$ = key;\n }\n {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\nvar newVNode = function (tag, text) {\n var vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null,\n };\n {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n {\n vnode.$name$ = null;\n }\n return vnode;\n};\nvar Host = {};\nvar isHost = function (node) { return node && node.$tag$ === Host; };\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\nvar setAccessor = function (elm, memberName, oldValue, newValue, isSvg, flags) {\n if (oldValue !== newValue) {\n var isProp = isMemberInElement(elm, memberName);\n var ln = memberName.toLowerCase();\n if (memberName === 'class') {\n var classList = elm.classList;\n var oldClasses_1 = parseClassList(oldValue);\n var newClasses_1 = parseClassList(newValue);\n classList.remove.apply(classList, oldClasses_1.filter(function (c) { return c && !newClasses_1.includes(c); }));\n classList.add.apply(classList, newClasses_1.filter(function (c) { return c && !oldClasses_1.includes(c); }));\n }\n else if (memberName === 'style') {\n // update style attribute, css properties and values\n {\n for (var prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (prop.includes('-')) {\n elm.style.removeProperty(prop);\n }\n else {\n elm.style[prop] = '';\n }\n }\n }\n }\n for (var prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (prop.includes('-')) {\n elm.style.setProperty(prop, newValue[prop]);\n }\n else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n }\n else if (memberName === 'key')\n ;\n else if (memberName === 'ref') {\n // minifier will clean this up\n if (newValue) {\n newValue(elm);\n }\n }\n else if ((!isProp) && memberName[0] === 'o' && memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // // listens for \"click\"\n // // listens for \"Click\"\n // // listens for \"ionChange\"\n // // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n }\n else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n }\n else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n }\n else {\n // Set property if it exists and it's not a SVG\n var isComplex = isComplexType(newValue);\n if ((isProp || (isComplex && newValue !== null)) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n var n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n // tslint:disable-next-line: triple-equals\n }\n else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n }\n else {\n elm[memberName] = newValue;\n }\n }\n catch (e) { }\n }\n /**\n * Need to manually update attribute if:\n * - memberName is not an attribute\n * - if we are rendering the host element in order to reflect attribute\n * - if it's a SVG, since properties might not work in \n * - if the newValue is null/undefined or 'false'.\n */\n var xlink = false;\n {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, ''))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n if (xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n }\n else {\n elm.removeAttribute(memberName);\n }\n }\n }\n else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n if (xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n }\n else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nvar parseClassListRegex = /\\s/;\nvar parseClassList = function (value) { return (!value ? [] : value.split(parseClassListRegex)); };\nvar updateElement = function (oldVnode, newVnode, isSvgMode, memberName) {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n var elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;\n var oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;\n var newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\nvar createElm = function (oldParentVNode, newParentVNode, childIndex, parentElm) {\n // tslint:disable-next-line: prefer-const\n var newVNode = newParentVNode.$children$[childIndex];\n var i = 0;\n var elm;\n var childNode;\n var oldVNode;\n if (!useNativeShadowDom) {\n // remember for later we need to check to relocate nodes\n checkSlotRelocate = true;\n if (newVNode.$tag$ === 'slot') {\n if (scopeId) {\n // scoped css needs to add its scoped id to the parent element\n parentElm.classList.add(scopeId + '-s');\n }\n newVNode.$flags$ |= newVNode.$children$\n ? // slot element has fallback content\n 2 /* isSlotFallback */\n : // slot element does not have fallback content\n 1 /* isSlotReference */;\n }\n }\n if (newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n }\n else if (newVNode.$flags$ & 1 /* isSlotReference */) {\n // create a slot reference node\n elm = newVNode.$elm$ = doc.createTextNode('');\n }\n else {\n if (!isSvgMode) {\n isSvgMode = newVNode.$tag$ === 'svg';\n }\n // create element\n elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */ ? 'slot-fb' : newVNode.$tag$));\n if (isSvgMode && newVNode.$tag$ === 'foreignObject') {\n isSvgMode = false;\n }\n // add css classes, attrs, props, listeners, etc.\n {\n updateElement(null, newVNode, isSvgMode);\n }\n if (isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add((elm['s-si'] = scopeId));\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i, elm);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n {\n if (newVNode.$tag$ === 'svg') {\n // Only reset the SVG context when we're exiting element\n isSvgMode = false;\n }\n else if (elm.tagName === 'foreignObject') {\n // Reenter SVG context when we're exiting element\n isSvgMode = true;\n }\n }\n }\n {\n elm['s-hn'] = hostTagName;\n if (newVNode.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {\n // remember the content reference comment\n elm['s-sr'] = true;\n // remember the content reference comment\n elm['s-cr'] = contentRef;\n // remember the slot name, or empty string for default slot\n elm['s-sn'] = newVNode.$name$ || '';\n // check if we've got an old vnode for this slot\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {\n // we've got an old slot vnode and the wrapper is being replaced\n // so let's move the old slot content back to it's original location\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n return elm;\n};\nvar putBackInOriginalLocation = function (parentElm, recursive) {\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n var oldSlotChildNodes = parentElm.childNodes;\n for (var i = oldSlotChildNodes.length - 1; i >= 0; i--) {\n var childNode = oldSlotChildNodes[i];\n if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {\n // // this child node in the old element is from another component\n // // remove this node from the old slot's parent\n // childNode.remove();\n // and relocate it back to it's original location\n parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));\n // remove the old original location comment entirely\n // later on the patch function will know what to do\n // and move this to the correct spot in need be\n childNode['s-ol'].remove();\n childNode['s-ol'] = undefined;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n};\nvar addVnodes = function (parentElm, before, parentVNode, vnodes, startIdx, endIdx) {\n var containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);\n var childNode;\n if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx, parentElm);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, referenceNode(before));\n }\n }\n }\n};\nvar removeVnodes = function (vnodes, startIdx, endIdx, vnode, elm) {\n for (; startIdx <= endIdx; ++startIdx) {\n if ((vnode = vnodes[startIdx])) {\n elm = vnode.$elm$;\n callNodeRefs(vnode);\n {\n // we're removing this element\n // so it's possible we need to show slot fallback content now\n checkSlotFallbackVisibility = true;\n if (elm['s-ol']) {\n // remove the original location comment\n elm['s-ol'].remove();\n }\n else {\n // it's possible that child nodes of the node\n // that's being removed are slot nodes\n putBackInOriginalLocation(elm, true);\n }\n }\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n};\nvar updateChildren = function (parentElm, oldCh, newVNode, newCh) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var idxInOld = 0;\n var i = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var node;\n var elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // Vnode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // Vnode moved right\n if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode);\n parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n // Vnode moved left\n if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode);\n parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // createKeyToOldIdx\n idxInOld = -1;\n {\n for (i = oldStartIdx; i <= oldEndIdx; ++i) {\n if (oldCh[i] && oldCh[i].$key$ !== null && oldCh[i].$key$ === newStartVnode.$key$) {\n idxInOld = i;\n break;\n }\n }\n }\n if (idxInOld >= 0) {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);\n }\n else {\n patch(elmToMove, newStartVnode);\n oldCh[idxInOld] = undefined;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // new element\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n {\n parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);\n }\n else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\nvar isSameVnode = function (vnode1, vnode2) {\n // compare if two vnode to see if they're \"technically\" the same\n // need to have the same element tag, and same key to be the same\n if (vnode1.$tag$ === vnode2.$tag$) {\n if (vnode1.$tag$ === 'slot') {\n return vnode1.$name$ === vnode2.$name$;\n }\n {\n return vnode1.$key$ === vnode2.$key$;\n }\n }\n return false;\n};\nvar referenceNode = function (node) {\n // this node was relocated to a new location in the dom\n // because of some other component's slot\n // but we still have an html comment in place of where\n // it's original location was according to it's original vdom\n return (node && node['s-ol']) || node;\n};\nvar parentReferenceNode = function (node) { return (node['s-ol'] ? node['s-ol'] : node).parentNode; };\nvar patch = function (oldVNode, newVNode) {\n var elm = (newVNode.$elm$ = oldVNode.$elm$);\n var oldChildren = oldVNode.$children$;\n var newChildren = newVNode.$children$;\n var tag = newVNode.$tag$;\n var text = newVNode.$text$;\n var defaultHolder;\n if (text === null) {\n {\n // test if we're rendering an svg element, or still rendering nodes inside of one\n // only add this to the when the compiler sees we're using an svg somewhere\n isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;\n }\n // element node\n {\n if (tag === 'slot')\n ;\n else {\n // either this is the first render of an element OR it's an update\n // AND we already know it's possible it could have changed\n // this updates the element's css classes, attrs, props, listeners, etc.\n updateElement(oldVNode, newVNode, isSvgMode);\n }\n }\n if (oldChildren !== null && newChildren !== null) {\n // looks like there's child vnodes for both the old and new vnodes\n updateChildren(elm, oldChildren, newVNode, newChildren);\n }\n else if (newChildren !== null) {\n // no old child vnodes, but there are new child vnodes to add\n if (oldVNode.$text$ !== null) {\n // the old vnode was text, so be sure to clear it out\n elm.textContent = '';\n }\n // add the new vnode children\n addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);\n }\n else if (oldChildren !== null) {\n // no new child vnodes, but there are old child vnodes to remove\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (isSvgMode && tag === 'svg') {\n isSvgMode = false;\n }\n }\n else if ((defaultHolder = elm['s-cr'])) {\n // this element has slotted content\n defaultHolder.parentNode.textContent = text;\n }\n else if (oldVNode.$text$ !== text) {\n // update the text content for the text only vnode\n // and also only if the text is different than before\n elm.data = text;\n }\n};\nvar updateFallbackSlotVisibility = function (elm) {\n // tslint:disable-next-line: prefer-const\n var childNodes = elm.childNodes;\n var childNode;\n var i;\n var ilen;\n var j;\n var slotNameAttr;\n var nodeType;\n for (i = 0, ilen = childNodes.length; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode.nodeType === 1 /* ElementNode */) {\n if (childNode['s-sr']) {\n // this is a slot fallback node\n // get the slot name for this slot reference node\n slotNameAttr = childNode['s-sn'];\n // by default always show a fallback slot node\n // then hide it if there are other slots in the light dom\n childNode.hidden = false;\n for (j = 0; j < ilen; j++) {\n if (childNodes[j]['s-hn'] !== childNode['s-hn']) {\n // this sibling node is from a different component\n nodeType = childNodes[j].nodeType;\n if (slotNameAttr !== '') {\n // this is a named fallback slot node\n if (nodeType === 1 /* ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {\n childNode.hidden = true;\n break;\n }\n }\n else {\n // this is a default fallback slot node\n // any element or text node (with content)\n // should hide the default fallback slot node\n if (nodeType === 1 /* ElementNode */ || (nodeType === 3 /* TextNode */ && childNodes[j].textContent.trim() !== '')) {\n childNode.hidden = true;\n break;\n }\n }\n }\n }\n }\n // keep drilling down\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nvar relocateNodes = [];\nvar relocateSlotContent = function (elm) {\n // tslint:disable-next-line: prefer-const\n var childNode;\n var node;\n var hostContentNodes;\n var slotNameAttr;\n var relocateNodeData;\n var j;\n var i = 0;\n var childNodes = elm.childNodes;\n var ilen = childNodes.length;\n for (; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && (node = childNode['s-cr'])) {\n // first got the content reference comment node\n // then we got it's parent, which is where all the host content is in now\n hostContentNodes = node.parentNode.childNodes;\n slotNameAttr = childNode['s-sn'];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {\n // let's do some relocating to its new home\n // but never relocate a content reference node\n // that is suppose to always represent the original content location\n if (isNodeLocatedInSlot(node, slotNameAttr)) {\n // it's possible we've already decided to relocate this node\n relocateNodeData = relocateNodes.find(function (r) { return r.$nodeToRelocate$ === node; });\n // made some changes to slots\n // let's make sure we also double check\n // fallbacks are correctly hidden or shown\n checkSlotFallbackVisibility = true;\n node['s-sn'] = node['s-sn'] || slotNameAttr;\n if (relocateNodeData) {\n // previously we never found a slot home for this node\n // but turns out we did, so let's remember it now\n relocateNodeData.$slotRefNode$ = childNode;\n }\n else {\n // add to our list of nodes to relocate\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node,\n });\n }\n if (node['s-sr']) {\n relocateNodes.map(function (relocateNode) {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {\n relocateNodeData = relocateNodes.find(function (r) { return r.$nodeToRelocate$ === node; });\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n }\n else if (!relocateNodes.some(function (r) { return r.$nodeToRelocate$ === node; })) {\n // so far this element does not have a slot home, not setting slotRefNode on purpose\n // if we never find a home for this element then we'll need to hide it\n relocateNodes.push({\n $nodeToRelocate$: node,\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* ElementNode */) {\n relocateSlotContent(childNode);\n }\n }\n};\nvar isNodeLocatedInSlot = function (nodeToRelocate, slotNameAttr) {\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {\n return true;\n }\n if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate['s-sn'] === slotNameAttr) {\n return true;\n }\n return slotNameAttr === '';\n};\nvar callNodeRefs = function (vNode) {\n {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(callNodeRefs);\n }\n};\nvar renderVdom = function (hostRef, renderFnResults) {\n var hostElm = hostRef.$hostElement$;\n var cmpMeta = hostRef.$cmpMeta$;\n var oldVNode = hostRef.$vnode$ || newVNode(null, null);\n var rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = (hostElm.shadowRoot || hostElm);\n {\n scopeId = hostElm['s-sc'];\n }\n {\n contentRef = hostElm['s-cr'];\n useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;\n // always reset\n checkSlotFallbackVisibility = false;\n }\n // synchronous patch\n patch(oldVNode, rootVnode);\n {\n // while we're moving nodes around existing nodes, temporarily disable\n // the disconnectCallback from working\n plt.$flags$ |= 1 /* isTmpDisconnected */;\n if (checkSlotRelocate) {\n relocateSlotContent(rootVnode.$elm$);\n var relocateData = void 0;\n var nodeToRelocate = void 0;\n var orgLocationNode = void 0;\n var parentNodeRef = void 0;\n var insertBeforeNode = void 0;\n var refNode = void 0;\n var i = 0;\n for (; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate['s-ol']) {\n // add a reference node marking this node's original location\n // keep a reference to this node for later lookups\n orgLocationNode = doc.createTextNode('');\n orgLocationNode['s-nr'] = nodeToRelocate;\n nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);\n }\n }\n for (i = 0; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (relocateData.$slotRefNode$) {\n // by default we're just going to insert it directly\n // after the slot reference node\n parentNodeRef = relocateData.$slotRefNode$.parentNode;\n insertBeforeNode = relocateData.$slotRefNode$.nextSibling;\n orgLocationNode = nodeToRelocate['s-ol'];\n while ((orgLocationNode = orgLocationNode.previousSibling)) {\n refNode = orgLocationNode['s-nr'];\n if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {\n refNode = refNode.nextSibling;\n if (!refNode || !refNode['s-nr']) {\n insertBeforeNode = refNode;\n break;\n }\n }\n }\n if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) || nodeToRelocate.nextSibling !== insertBeforeNode) {\n // we've checked that it's worth while to relocate\n // since that the node to relocate\n // has a different next sibling or parent relocated\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {\n // probably a component in the index.html that doesn't have it's hostname set\n nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;\n }\n // add it back to the dom but in its new home\n parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);\n }\n }\n }\n else {\n // this node doesn't have a slot home to go to, so let's hide it\n if (nodeToRelocate.nodeType === 1 /* ElementNode */) {\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n // done moving nodes around\n // allow the disconnect callback to work again\n plt.$flags$ &= ~1 /* isTmpDisconnected */;\n // always reset\n relocateNodes.length = 0;\n }\n};\nvar getElement = function (ref) { return (getHostRef(ref).$hostElement$); };\nvar createEvent = function (ref, name, flags) {\n var elm = getElement(ref);\n return {\n emit: function (detail) {\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* Bubbles */),\n composed: !!(flags & 2 /* Composed */),\n cancelable: !!(flags & 1 /* Cancellable */),\n detail: detail,\n });\n },\n };\n};\nvar emitEvent = function (elm, name, opts) {\n var ev = new (CustomEvent)(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nvar attachToAncestor = function (hostRef, ancestorComponent) {\n if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {\n ancestorComponent['s-p'].push(new Promise(function (r) { return (hostRef.$onRenderResolve$ = r); }));\n }\n};\nvar scheduleUpdate = function (hostRef, isInitialLoad) {\n {\n hostRef.$flags$ |= 16 /* isQueuedForUpdate */;\n }\n if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n // there is no ancestorc omponent or the ancestor component\n // has already fired off its lifecycle update then\n // fire off the initial update\n var dispatch = function () { return dispatchHooks(hostRef, isInitialLoad); };\n return writeTask(dispatch);\n};\nvar dispatchHooks = function (hostRef, isInitialLoad) {\n var endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);\n var instance = hostRef.$lazyInstance$;\n var promise;\n if (isInitialLoad) {\n {\n hostRef.$flags$ |= 256 /* isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(function (_a) {\n var methodName = _a[0], event = _a[1];\n return safeCall(instance, methodName, event);\n });\n hostRef.$queuedListeners$ = null;\n }\n }\n {\n promise = safeCall(instance, 'componentWillLoad');\n }\n }\n endSchedule();\n return then(promise, function () { return updateComponent(hostRef, instance, isInitialLoad); });\n};\nvar updateComponent = function (hostRef, instance, isInitialLoad) {\n // updateComponent\n var elm = hostRef.$hostElement$;\n var endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);\n var rc = elm['s-rc'];\n if (isInitialLoad) {\n // DOM WRITE!\n attachStyles(hostRef);\n }\n var endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);\n {\n {\n // looks like we've got child nodes to render into this host element\n // or we need to update the css class/attrs on the host element\n // DOM WRITE!\n renderVdom(hostRef, callRender(hostRef, instance));\n }\n }\n if (plt.$cssShim$) {\n plt.$cssShim$.updateHost(elm);\n }\n if (rc) {\n // ok, so turns out there are some child host elements\n // waiting on this parent element to load\n // let's fire off all update callbacks waiting\n rc.map(function (cb) { return cb(); });\n elm['s-rc'] = undefined;\n }\n endRender();\n endUpdate();\n {\n var childrenPromises = elm['s-p'];\n var postUpdate = function () { return postUpdateComponent(hostRef); };\n if (childrenPromises.length === 0) {\n postUpdate();\n }\n else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n};\nvar callRender = function (hostRef, instance) {\n try {\n instance = instance.render();\n {\n hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;\n }\n {\n hostRef.$flags$ |= 2 /* hasRendered */;\n }\n }\n catch (e) {\n consoleError(e);\n }\n return instance;\n};\nvar postUpdateComponent = function (hostRef) {\n var tagName = hostRef.$cmpMeta$.$tagName$;\n var elm = hostRef.$hostElement$;\n var endPostUpdate = createTime('postUpdate', tagName);\n var instance = hostRef.$lazyInstance$;\n var ancestorComponent = hostRef.$ancestorComponent$;\n {\n safeCall(instance, 'componentDidRender');\n }\n if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* hasLoadedComponent */;\n {\n // DOM WRITE!\n addHydratedFlag(elm);\n }\n {\n safeCall(instance, 'componentDidLoad');\n }\n endPostUpdate();\n {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad();\n }\n }\n }\n else {\n endPostUpdate();\n }\n // load events fire from bottom to top\n // the deepest elements load first then bubbles up\n {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = undefined;\n }\n if (hostRef.$flags$ & 512 /* needsRerender */) {\n nextTick(function () { return scheduleUpdate(hostRef, false); });\n }\n hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */);\n }\n // ( •_•)\n // ( •_•)>⌐■-■\n // (⌐■_■)\n};\nvar forceUpdate = function (ref) {\n {\n var hostRef = getHostRef(ref);\n var isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected && (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n // Returns \"true\" when the forced update was successfully scheduled\n return isConnected;\n }\n};\nvar appDidLoad = function (who) {\n // on appload\n // we have finish the first big initial render\n {\n addHydratedFlag(doc.documentElement);\n }\n {\n plt.$flags$ |= 2 /* appLoaded */;\n }\n nextTick(function () { return emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }); });\n};\nvar safeCall = function (instance, method, arg) {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n }\n catch (e) {\n consoleError(e);\n }\n }\n return undefined;\n};\nvar then = function (promise, thenFn) {\n return promise && promise.then ? promise.then(thenFn) : thenFn();\n};\nvar addHydratedFlag = function (elm) { return (elm.classList.add('hydrated')); };\nvar parsePropertyValue = function (propValue, propType) {\n // ensure this value is of the correct prop type\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* Boolean */) {\n // per the HTML spec, any string value means it is a boolean true value\n // but we'll cheat here and say that the string \"false\" is the boolean false\n return propValue === 'false' ? false : propValue === '' || !!propValue;\n }\n if (propType & 2 /* Number */) {\n // force it to be a number\n return parseFloat(propValue);\n }\n if (propType & 1 /* String */) {\n // could have been passed as a number or boolean\n // but we still want it as a string\n return String(propValue);\n }\n // redundant return here for better minification\n return propValue;\n }\n // not sure exactly what type we want\n // so no need to change to a different type\n return propValue;\n};\nvar getValue = function (ref, propName) { return getHostRef(ref).$instanceValues$.get(propName); };\nvar setValue = function (ref, propName, newVal, cmpMeta) {\n // check our new property value against our internal value\n var hostRef = getHostRef(ref);\n var oldVal = hostRef.$instanceValues$.get(propName);\n var flags = hostRef.$flags$;\n var instance = hostRef.$lazyInstance$;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n if ((!(flags & 8 /* isConstructingInstance */) || oldVal === undefined) && newVal !== oldVal) {\n // gadzooks! the property's value has changed!!\n // set our new value!\n hostRef.$instanceValues$.set(propName, newVal);\n if (instance) {\n // get an array of method names of watch functions to call\n if (cmpMeta.$watchers$) {\n if (flags & 128 /* isWatchReady */) {\n var watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n // this instance is watching for when this property changed\n watchMethods.map(function (watchMethodName) {\n try {\n // fire off each of the watch methods that are watching this property\n instance[watchMethodName](newVal, oldVal, propName);\n }\n catch (e) {\n consoleError(e);\n }\n });\n }\n }\n }\n if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n // looks like this value actually changed, so we've got work to do!\n // but only if we've already rendered, otherwise just chill out\n // queue that we need to do an update, but don't worry about queuing\n // up millions cuz this function ensures it only runs once\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\nvar proxyComponent = function (Cstr, cmpMeta, flags) {\n if (cmpMeta.$members$) {\n if (Cstr.watchers) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n // It's better to have a const than two Object.entries()\n var members = Object.entries(cmpMeta.$members$);\n var prototype_1 = Cstr.prototype;\n members.map(function (_a) {\n var memberName = _a[0], memberFlags = _a[1][0];\n if ((memberFlags & 31 /* Prop */ || ((flags & 2 /* proxyState */) && memberFlags & 32 /* State */))) {\n // proxyComponent - prop\n Object.defineProperty(prototype_1, memberName, {\n get: function () {\n // proxyComponent, get value\n return getValue(this, memberName);\n },\n set: function (newValue) {\n // proxyComponent, set value\n setValue(this, memberName, newValue, cmpMeta);\n },\n configurable: true,\n enumerable: true,\n });\n }\n });\n if ((flags & 1 /* isElementConstructor */)) {\n var attrNameToPropName_1 = new Map();\n prototype_1.attributeChangedCallback = function (attrName, _oldValue, newValue) {\n var _this = this;\n plt.jmp(function () {\n var propName = attrNameToPropName_1.get(attrName);\n _this[propName] = newValue === null && typeof _this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members\n .filter(function (_a) {\n var _ = _a[0], m = _a[1];\n return m[0] & 15;\n } /* HasAttribute */) // filter to only keep props that should match attributes\n .map(function (_a) {\n var propName = _a[0], m = _a[1];\n var attrName = m[1] || propName;\n attrNameToPropName_1.set(attrName, propName);\n return attrName;\n });\n }\n }\n return Cstr;\n};\nvar initializeComponent = function (elm, hostRef, cmpMeta, hmrVersionId, Cstr) { return __awaiter(void 0, void 0, void 0, function () {\n var endLoad, endNewInstance, style_1, scopeId_1, endRegisterStyles, ancestorComponent, schedule;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0)) return [3 /*break*/, 5];\n // we haven't initialized this element yet\n hostRef.$flags$ |= 32 /* hasInitializedComponent */;\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta);\n if (!Cstr.then) return [3 /*break*/, 2];\n endLoad = uniqueTime();\n return [4 /*yield*/, Cstr];\n case 1:\n Cstr = _a.sent();\n endLoad();\n _a.label = 2;\n case 2:\n if (!Cstr.isProxied) {\n // we'eve never proxied this Constructor before\n // let's add the getters/setters to its prototype before\n // the first time we create an instance of the implementation\n {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);\n Cstr.isProxied = true;\n }\n endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n {\n hostRef.$flags$ |= 8 /* isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n }\n catch (e) {\n consoleError(e);\n }\n {\n hostRef.$flags$ &= ~8 /* isConstructingInstance */;\n }\n {\n hostRef.$flags$ |= 128 /* isWatchReady */;\n }\n endNewInstance();\n if (!Cstr.style) return [3 /*break*/, 5];\n style_1 = Cstr.style;\n scopeId_1 = getScopeId(cmpMeta);\n if (!!styles.has(scopeId_1)) return [3 /*break*/, 5];\n endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n if (!(cmpMeta.$flags$ & 8) /* needsShadowDomShim */) return [3 /*break*/, 4]; /* needsShadowDomShim */\n return [4 /*yield*/, import('./shadow-css-360bb6da.js').then(function (m) { return m.scopeCss(style_1, scopeId_1, false); })];\n case 3:\n style_1 = _a.sent();\n _a.label = 4;\n case 4:\n registerStyle(scopeId_1, style_1, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));\n endRegisterStyles();\n _a.label = 5;\n case 5:\n ancestorComponent = hostRef.$ancestorComponent$;\n schedule = function () { return scheduleUpdate(hostRef, true); };\n if (ancestorComponent && ancestorComponent['s-rc']) {\n // this is the intial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n }\n else {\n schedule();\n }\n return [2 /*return*/];\n }\n });\n}); };\nvar connectedCallback = function (elm) {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n var hostRef = getHostRef(elm);\n var cmpMeta = hostRef.$cmpMeta$;\n var endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* hasConnected */;\n {\n // initUpdate\n // if the slot polyfill is required we'll need to put some nodes\n // in here to act as original content anchors as we move nodes around\n // host element has been connected to the DOM\n if ((cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */))) {\n setContentReference(elm);\n }\n }\n {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n var ancestorComponent = elm;\n while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if (ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(function (_a) {\n var memberName = _a[0], memberFlags = _a[1][0];\n if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {\n var value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n }\n else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n }\n endConnected();\n }\n};\nvar setContentReference = function (elm) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n var contentRefElm = (elm['s-cr'] = doc.createComment(''));\n contentRefElm['s-cn'] = true;\n elm.insertBefore(contentRefElm, elm.firstChild);\n};\nvar disconnectedCallback = function (elm) {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n var hostRef = getHostRef(elm);\n var instance = hostRef.$lazyInstance$;\n {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map(function (rmListener) { return rmListener(); });\n hostRef.$rmListeners$ = undefined;\n }\n }\n // clear CSS var-shim tracking\n if (plt.$cssShim$) {\n plt.$cssShim$.removeHost(elm);\n }\n {\n safeCall(instance, 'disconnectedCallback');\n }\n }\n};\nvar bootstrapLazy = function (lazyBundles, options) {\n if (options === void 0) { options = {}; }\n var endBootstrap = createTime();\n var cmpTags = [];\n var exclude = options.exclude || [];\n var customElements = win.customElements;\n var head = doc.head;\n var metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');\n var visibilityStyle = /*@__PURE__*/ doc.createElement('style');\n var deferredConnectedCallbacks = [];\n var appLoadFallback;\n var isBootstrapping = true;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n {\n if (options.syncQueue) {\n plt.$flags$ |= 4 /* queueSync */;\n }\n }\n lazyBundles.map(function (lazyBundle) { return lazyBundle[1].map(function (compactMeta) {\n var cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3],\n };\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n {\n cmpMeta.$watchers$ = {};\n }\n if (!supportsShadow && cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* needsShadowDomShim */;\n }\n var tagName = cmpMeta.$tagName$;\n var HostElement = /** @class */ (function (_super) {\n __extends(HostElement, _super);\n // StencilLazyHost\n function HostElement(self) {\n var _this = \n // @ts-ignore\n _super.call(this, self) || this;\n self = _this;\n registerHost(self, cmpMeta);\n if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n if (supportsShadow) {\n {\n self.attachShadow({ mode: 'open' });\n }\n }\n else if (!('shadowRoot' in self)) {\n self.shadowRoot = self;\n }\n }\n return _this;\n }\n HostElement.prototype.connectedCallback = function () {\n var _this = this;\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n }\n else {\n plt.jmp(function () { return connectedCallback(_this); });\n }\n };\n HostElement.prototype.disconnectedCallback = function () {\n var _this = this;\n plt.jmp(function () { return disconnectedCallback(_this); });\n };\n HostElement.prototype.forceUpdate = function () {\n forceUpdate(this);\n };\n HostElement.prototype.componentOnReady = function () {\n return getHostRef(this).$onReadyPromise$;\n };\n return HostElement;\n }(HTMLElement));\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */));\n }\n }); });\n {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map(function (host) { return host.connectedCallback(); });\n }\n else {\n {\n plt.jmp(function () { return (appLoadFallback = setTimeout(appDidLoad, 30)); });\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nvar hostRefs = new WeakMap();\nvar getHostRef = function (ref) { return hostRefs.get(ref); };\nvar registerInstance = function (lazyInstance, hostRef) { return hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef); };\nvar registerHost = function (elm, cmpMeta) {\n var hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map(),\n };\n {\n hostRef.$onReadyPromise$ = new Promise(function (r) { return (hostRef.$onReadyResolve$ = r); });\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n return hostRefs.set(elm, hostRef);\n};\nvar isMemberInElement = function (elm, memberName) { return memberName in elm; };\nvar consoleError = function (e) { return console.error(e); };\nvar cmpModules = /*@__PURE__*/ new Map();\nvar loadModule = function (cmpMeta, hostRef, hmrVersionId) {\n // loadModuleImport\n var exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n var bundleId = cmpMeta.$lazyBundleId$;\n var module = cmpModules.get(bundleId);\n if (module) {\n return module[exportName];\n }\n return import(\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n \"./\" + bundleId + \".entry.js\" + '').then(function (importedModule) {\n {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nvar styles = new Map();\nvar queueDomReads = [];\nvar queueDomWrites = [];\nvar queueDomWritesLow = [];\nvar queueTask = function (queue, write) { return function (cb) {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* queueSync */) {\n nextTick(flush);\n }\n else {\n plt.raf(flush);\n }\n }\n}; };\nvar consume = function (queue) {\n for (var i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n }\n catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nvar consumeTimeout = function (queue, timeout) {\n var i = 0;\n var ts = 0;\n while (i < queue.length && (ts = performance.now()) < timeout) {\n try {\n queue[i++](ts);\n }\n catch (e) {\n consoleError(e);\n }\n }\n if (i === queue.length) {\n queue.length = 0;\n }\n else if (i !== 0) {\n queue.splice(0, i);\n }\n};\nvar flush = function () {\n {\n queueCongestion++;\n }\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n {\n var timeout = (plt.$flags$ & 6 /* queueMask */) === 2 /* appLoaded */ ? performance.now() + 14 * Math.ceil(queueCongestion * (1.0 / 10.0)) : Infinity;\n consumeTimeout(queueDomWrites, timeout);\n consumeTimeout(queueDomWritesLow, timeout);\n if (queueDomWrites.length > 0) {\n queueDomWritesLow.push.apply(queueDomWritesLow, queueDomWrites);\n queueDomWrites.length = 0;\n }\n if ((queuePending = queueDomReads.length + queueDomWrites.length + queueDomWritesLow.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n else {\n queueCongestion = 0;\n }\n }\n};\nvar nextTick = /*@__PURE__*/ function (cb) { return promiseResolve().then(cb); };\nvar writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);\nexport { CSS as C, Host as H, NAMESPACE as N, promiseResolve as a, bootstrapLazy as b, createEvent as c, doc as d, getElement as g, h, plt as p, registerInstance as r, win as w };\n","var AccessLevel;\n(function (AccessLevel) {\n AccessLevel[\"Public\"] = \"public\";\n AccessLevel[\"Private\"] = \"private\";\n AccessLevel[\"Protected\"] = \"protected\";\n})(AccessLevel || (AccessLevel = {}));\nexport { AccessLevel as A };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=CryptoOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Key.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=KeyOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=MsSubtleCrypto.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isMsWindow = void 0;\nvar msSubtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction quacksLikeAnMsWindow(window) {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\n/**\n * Determines if the provided window is (or is like) the window object one would\n * expect to encounter in Internet Explorer 11.\n */\nfunction isMsWindow(window) {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n var _a = window.msCrypto, getRandomValues = _a.getRandomValues, subtle_1 = _a.subtle;\n return msSubtleCryptoMethods\n .map(function (methodName) { return subtle_1[methodName]; })\n .concat(getRandomValues)\n .every(function (method) { return typeof method === \"function\"; });\n }\n return false;\n}\nexports.isMsWindow = isMsWindow;\n//# sourceMappingURL=MsWindow.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./CryptoOperation\"), exports);\ntslib_1.__exportStar(require(\"./Key\"), exports);\ntslib_1.__exportStar(require(\"./KeyOperation\"), exports);\ntslib_1.__exportStar(require(\"./MsSubtleCrypto\"), exports);\ntslib_1.__exportStar(require(\"./MsWindow\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_DATA_SHA_256 = exports.SHA_256_HMAC_ALGO = exports.SHA_256_HASH = void 0;\nexports.SHA_256_HASH = { name: \"SHA-256\" };\nexports.SHA_256_HMAC_ALGO = {\n name: \"HMAC\",\n hash: exports.SHA_256_HASH\n};\nexports.EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLFlBQVksR0FBd0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFFeEQsUUFBQSxpQkFBaUIsR0FBZ0Q7SUFDNUUsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsb0JBQVk7Q0FDbkIsQ0FBQztBQUVXLFFBQUEsa0JBQWtCLEdBQUcsSUFBSSxVQUFVLENBQUM7SUFDL0MsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEVBQUU7SUFDRixHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEVBQUU7SUFDRixHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxHQUFHO0lBQ0gsR0FBRztJQUNILEdBQUc7SUFDSCxFQUFFO0lBQ0YsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0lBQ0gsRUFBRTtJQUNGLEdBQUc7SUFDSCxFQUFFO0lBQ0YsR0FBRztJQUNILEVBQUU7Q0FDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU0hBXzI1Nl9IQVNIOiB7IG5hbWU6IFwiU0hBLTI1NlwiIH0gPSB7IG5hbWU6IFwiU0hBLTI1NlwiIH07XG5cbmV4cG9ydCBjb25zdCBTSEFfMjU2X0hNQUNfQUxHTzogeyBuYW1lOiBcIkhNQUNcIjsgaGFzaDogeyBuYW1lOiBcIlNIQS0yNTZcIiB9IH0gPSB7XG4gIG5hbWU6IFwiSE1BQ1wiLFxuICBoYXNoOiBTSEFfMjU2X0hBU0hcbn07XG5cbmV4cG9ydCBjb25zdCBFTVBUWV9EQVRBX1NIQV8yNTYgPSBuZXcgVWludDhBcnJheShbXG4gIDIyNyxcbiAgMTc2LFxuICAxOTYsXG4gIDY2LFxuICAxNTIsXG4gIDI1MixcbiAgMjgsXG4gIDIwLFxuICAxNTQsXG4gIDI1MSxcbiAgMjQ0LFxuICAyMDAsXG4gIDE1MyxcbiAgMTExLFxuICAxODUsXG4gIDM2LFxuICAzOSxcbiAgMTc0LFxuICA2NSxcbiAgMjI4LFxuICAxMDAsXG4gIDE1NSxcbiAgMTQ3LFxuICA3NixcbiAgMTY0LFxuICAxNDksXG4gIDE1MyxcbiAgMjcsXG4gIDEyMCxcbiAgODIsXG4gIDE4NCxcbiAgODVcbl0pO1xuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nvar sha256_js_1 = require(\"@aws-crypto/sha256-js\");\nvar supports_web_crypto_1 = require(\"@aws-crypto/supports-web-crypto\");\nvar ie11_detection_1 = require(\"@aws-crypto/ie11-detection\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if ((0, supports_web_crypto_1.supportsWebCrypto)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new webCryptoSha256_1.Sha256(secret);\n }\n else if ((0, ie11_detection_1.isMsWindow)((0, util_locate_window_1.locateWindow)())) {\n this.hash = new ie11Sha256_1.Sha256(secret);\n }\n else {\n this.hash = new sha256_js_1.Sha256(secret);\n }\n }\n Sha256.prototype.update = function (data, encoding) {\n this.hash.update(data, encoding);\n };\n Sha256.prototype.digest = function () {\n return this.hash.digest();\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NQbGF0Zm9ybVNoYTI1Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jcm9zc1BsYXRmb3JtU2hhMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUFvRDtBQUNwRCxxREFBOEQ7QUFDOUQsbURBQTJEO0FBRTNELHVFQUFvRTtBQUNwRSw2REFBd0Q7QUFDeEQsa0VBQTJEO0FBRTNEO0lBR0UsZ0JBQVksTUFBbUI7UUFDN0IsSUFBSSxJQUFBLHVDQUFpQixFQUFDLElBQUEsaUNBQVksR0FBRSxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHdCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDekM7YUFBTSxJQUFJLElBQUEsMkJBQVUsRUFBQyxJQUFBLGlDQUFZLEdBQUUsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxtQkFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksa0JBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCx1QkFBTSxHQUFOLFVBQU8sSUFBZ0IsRUFBRSxRQUFzQztRQUM3RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHVCQUFNLEdBQU47UUFDRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBcEJELElBb0JDO0FBcEJZLHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hhMjU2IGFzIEllMTFTaGEyNTYgfSBmcm9tIFwiLi9pZTExU2hhMjU2XCI7XG5pbXBvcnQgeyBTaGEyNTYgYXMgV2ViQ3J5cHRvU2hhMjU2IH0gZnJvbSBcIi4vd2ViQ3J5cHRvU2hhMjU2XCI7XG5pbXBvcnQgeyBTaGEyNTYgYXMgSnNTaGEyNTYgfSBmcm9tIFwiQGF3cy1jcnlwdG8vc2hhMjU2LWpzXCI7XG5pbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBzdXBwb3J0c1dlYkNyeXB0byB9IGZyb20gXCJAYXdzLWNyeXB0by9zdXBwb3J0cy13ZWItY3J5cHRvXCI7XG5pbXBvcnQgeyBpc01zV2luZG93IH0gZnJvbSBcIkBhd3MtY3J5cHRvL2llMTEtZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBsb2NhdGVXaW5kb3cgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1sb2NhdGUtd2luZG93XCI7XG5cbmV4cG9ydCBjbGFzcyBTaGEyNTYgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSByZWFkb25seSBoYXNoOiBIYXNoO1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc3VwcG9ydHNXZWJDcnlwdG8obG9jYXRlV2luZG93KCkpKSB7XG4gICAgICB0aGlzLmhhc2ggPSBuZXcgV2ViQ3J5cHRvU2hhMjU2KHNlY3JldCk7XG4gICAgfSBlbHNlIGlmIChpc01zV2luZG93KGxvY2F0ZVdpbmRvdygpKSkge1xuICAgICAgdGhpcy5oYXNoID0gbmV3IEllMTFTaGEyNTYoc2VjcmV0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYXNoID0gbmV3IEpzU2hhMjU2KHNlY3JldCk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKGRhdGE6IFNvdXJjZURhdGEsIGVuY29kaW5nPzogXCJ1dGY4XCIgfCBcImFzY2lpXCIgfCBcImxhdGluMVwiKTogdm9pZCB7XG4gICAgdGhpcy5oYXNoLnVwZGF0ZShkYXRhLCBlbmNvZGluZyk7XG4gIH1cblxuICBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzaC5kaWdlc3QoKTtcbiAgfVxufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar isEmptyData_1 = require(\"./isEmptyData\");\nvar constants_1 = require(\"./constants\");\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if (secret) {\n this.operation = getKeyPromise(secret).then(function (keyData) {\n return (0, util_locate_window_1.locateWindow)().msCrypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, keyData);\n });\n this.operation.catch(function () { });\n }\n else {\n this.operation = Promise.resolve((0, util_locate_window_1.locateWindow)().msCrypto.subtle.digest(\"SHA-256\"));\n }\n }\n Sha256.prototype.update = function (toHash) {\n var _this = this;\n if ((0, isEmptyData_1.isEmptyData)(toHash)) {\n return;\n }\n this.operation = this.operation.then(function (operation) {\n operation.onerror = function () {\n _this.operation = Promise.reject(new Error(\"Error encountered updating hash\"));\n };\n operation.process(toArrayBufferView(toHash));\n return operation;\n });\n this.operation.catch(function () { });\n };\n Sha256.prototype.digest = function () {\n return this.operation.then(function (operation) {\n return new Promise(function (resolve, reject) {\n operation.onerror = function () {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = function () {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.finish();\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction getKeyPromise(secret) {\n return new Promise(function (resolve, reject) {\n var keyOperation = (0, util_locate_window_1.locateWindow)().msCrypto.subtle.importKey(\"raw\", toArrayBufferView(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"]);\n keyOperation.oncomplete = function () {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = function () {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\nfunction toArrayBufferView(data) {\n if (typeof data === \"string\") {\n return (0, util_utf8_browser_1.fromUtf8)(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWUxMVNoYTI1Ni5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pZTExU2hhMjU2LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUM1Qyx5Q0FBZ0Q7QUFFaEQsZ0VBQXNEO0FBRXRELGtFQUEyRDtBQUUzRDtJQUdFLGdCQUFZLE1BQW1CO1FBQzdCLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsT0FBTztnQkFDakQsT0FBQyxJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDL0MsNkJBQWlCLEVBQ2pCLE9BQU8sQ0FDUjtZQUhELENBR0MsQ0FDRixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsY0FBTyxDQUFDLENBQUMsQ0FBQztTQUNoQzthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUM3QixJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FDL0QsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELHVCQUFNLEdBQU4sVUFBTyxNQUFrQjtRQUF6QixpQkFnQkM7UUFmQyxJQUFJLElBQUEseUJBQVcsRUFBQyxNQUFNLENBQUMsRUFBRTtZQUN2QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQUEsU0FBUztZQUM1QyxTQUFTLENBQUMsT0FBTyxHQUFHO2dCQUNsQixLQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQzdCLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQzdDLENBQUM7WUFDSixDQUFDLENBQUM7WUFDRixTQUFTLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFFN0MsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCx1QkFBTSxHQUFOO1FBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDeEIsVUFBQSxTQUFTO1lBQ1AsT0FBQSxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO2dCQUMxQixTQUFTLENBQUMsT0FBTyxHQUFHO29CQUNsQixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLENBQUM7Z0JBQ0YsU0FBUyxDQUFDLFVBQVUsR0FBRztvQkFDckIsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFO3dCQUNwQixPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7cUJBQzNDO29CQUNELE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pELENBQUMsQ0FBQztnQkFFRixTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDO1FBWkYsQ0FZRSxDQUNMLENBQUM7SUFDSixDQUFDO0lBQ0gsYUFBQztBQUFELENBQUMsQUF2REQsSUF1REM7QUF2RFksd0JBQU07QUF5RG5CLFNBQVMsYUFBYSxDQUFDLE1BQWtCO0lBQ3ZDLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTTtRQUNqQyxJQUFNLFlBQVksR0FBSSxJQUFBLGlDQUFZLEdBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDekUsS0FBSyxFQUNMLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUN6Qiw2QkFBaUIsRUFDakIsS0FBSyxFQUNMLENBQUMsTUFBTSxDQUFDLENBQ1QsQ0FBQztRQUVGLFlBQVksQ0FBQyxVQUFVLEdBQUc7WUFDeEIsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUN2QixPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzlCO1lBRUQsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxHQUFHO1lBQ3JCLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxJQUFnQjtJQUN6QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUEsNEJBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQy9DLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRW1wdHlEYXRhIH0gZnJvbSBcIi4vaXNFbXB0eURhdGFcIjtcbmltcG9ydCB7IFNIQV8yNTZfSE1BQ19BTEdPIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBIYXNoLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tVXRmOCB9IGZyb20gXCJAYXdzLXNkay91dGlsLXV0ZjgtYnJvd3NlclwiO1xuaW1wb3J0IHsgQ3J5cHRvT3BlcmF0aW9uLCBLZXksIE1zV2luZG93IH0gZnJvbSBcIkBhd3MtY3J5cHRvL2llMTEtZGV0ZWN0aW9uXCI7XG5pbXBvcnQgeyBsb2NhdGVXaW5kb3cgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC1sb2NhdGUtd2luZG93XCI7XG5cbmV4cG9ydCBjbGFzcyBTaGEyNTYgaW1wbGVtZW50cyBIYXNoIHtcbiAgcHJpdmF0ZSBvcGVyYXRpb246IFByb21pc2U8Q3J5cHRvT3BlcmF0aW9uPjtcblxuICBjb25zdHJ1Y3RvcihzZWNyZXQ/OiBTb3VyY2VEYXRhKSB7XG4gICAgaWYgKHNlY3JldCkge1xuICAgICAgdGhpcy5vcGVyYXRpb24gPSBnZXRLZXlQcm9taXNlKHNlY3JldCkudGhlbihrZXlEYXRhID0+XG4gICAgICAgIChsb2NhdGVXaW5kb3coKSBhcyBNc1dpbmRvdykubXNDcnlwdG8uc3VidGxlLnNpZ24oXG4gICAgICAgICAgU0hBXzI1Nl9ITUFDX0FMR08sXG4gICAgICAgICAga2V5RGF0YVxuICAgICAgICApXG4gICAgICApO1xuICAgICAgdGhpcy5vcGVyYXRpb24uY2F0Y2goKCkgPT4ge30pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZXJhdGlvbiA9IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgKGxvY2F0ZVdpbmRvdygpIGFzIE1zV2luZG93KS5tc0NyeXB0by5zdWJ0bGUuZGlnZXN0KFwiU0hBLTI1NlwiKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUodG9IYXNoOiBTb3VyY2VEYXRhKTogdm9pZCB7XG4gICAgaWYgKGlzRW1wdHlEYXRhKHRvSGFzaCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZXJhdGlvbiA9IHRoaXMub3BlcmF0aW9uLnRoZW4ob3BlcmF0aW9uID0+IHtcbiAgICAgIG9wZXJhdGlvbi5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm9wZXJhdGlvbiA9IFByb21pc2UucmVqZWN0KFxuICAgICAgICAgIG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIHVwZGF0aW5nIGhhc2hcIilcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBvcGVyYXRpb24ucHJvY2Vzcyh0b0FycmF5QnVmZmVyVmlldyh0b0hhc2gpKTtcblxuICAgICAgcmV0dXJuIG9wZXJhdGlvbjtcbiAgICB9KTtcbiAgICB0aGlzLm9wZXJhdGlvbi5jYXRjaCgoKSA9PiB7fSk7XG4gIH1cblxuICBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uLnRoZW48VWludDhBcnJheT4oXG4gICAgICBvcGVyYXRpb24gPT5cbiAgICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIG9wZXJhdGlvbi5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIGZpbmFsaXppbmcgaGFzaFwiKSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBvcGVyYXRpb24ub25jb21wbGV0ZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChvcGVyYXRpb24ucmVzdWx0KSB7XG4gICAgICAgICAgICAgIHJlc29sdmUobmV3IFVpbnQ4QXJyYXkob3BlcmF0aW9uLnJlc3VsdCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkVycm9yIGVuY291bnRlcmVkIGZpbmFsaXppbmcgaGFzaFwiKSk7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIG9wZXJhdGlvbi5maW5pc2goKTtcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEtleVByb21pc2Uoc2VjcmV0OiBTb3VyY2VEYXRhKTogUHJvbWlzZTxLZXk+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBrZXlPcGVyYXRpb24gPSAobG9jYXRlV2luZG93KCkgYXMgTXNXaW5kb3cpLm1zQ3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgICBcInJhd1wiLFxuICAgICAgdG9BcnJheUJ1ZmZlclZpZXcoc2VjcmV0KSxcbiAgICAgIFNIQV8yNTZfSE1BQ19BTEdPLFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJzaWduXCJdXG4gICAgKTtcblxuICAgIGtleU9wZXJhdGlvbi5vbmNvbXBsZXRlID0gKCkgPT4ge1xuICAgICAgaWYgKGtleU9wZXJhdGlvbi5yZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZShrZXlPcGVyYXRpb24ucmVzdWx0KTtcbiAgICAgIH1cblxuICAgICAgcmVqZWN0KG5ldyBFcnJvcihcIkltcG9ydEtleSBjb21wbGV0ZWQgd2l0aG91dCBpbXBvcnRpbmcga2V5LlwiKSk7XG4gICAgfTtcbiAgICBrZXlPcGVyYXRpb24ub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoXCJJbXBvcnRLZXkgZmFpbGVkIHRvIGltcG9ydCBrZXkuXCIpKTtcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdG9BcnJheUJ1ZmZlclZpZXcoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFxuICAgICAgZGF0YS5idWZmZXIsXG4gICAgICBkYXRhLmJ5dGVPZmZzZXQsXG4gICAgICBkYXRhLmJ5dGVMZW5ndGggLyBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhKTtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WebCryptoSha256 = exports.Ie11Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./crossPlatformSha256\"), exports);\nvar ie11Sha256_1 = require(\"./ie11Sha256\");\nObject.defineProperty(exports, \"Ie11Sha256\", { enumerable: true, get: function () { return ie11Sha256_1.Sha256; } });\nvar webCryptoSha256_1 = require(\"./webCryptoSha256\");\nObject.defineProperty(exports, \"WebCryptoSha256\", { enumerable: true, get: function () { return webCryptoSha256_1.Sha256; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFFQUFzQztBQUN0QywyQ0FBb0Q7QUFBM0Msd0dBQUEsTUFBTSxPQUFjO0FBQzdCLHFEQUE4RDtBQUFyRCxrSEFBQSxNQUFNLE9BQW1CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY3Jvc3NQbGF0Zm9ybVNoYTI1NlwiO1xuZXhwb3J0IHsgU2hhMjU2IGFzIEllMTFTaGEyNTYgfSBmcm9tIFwiLi9pZTExU2hhMjU2XCI7XG5leHBvcnQgeyBTaGEyNTYgYXMgV2ViQ3J5cHRvU2hhMjU2IH0gZnJvbSBcIi4vd2ViQ3J5cHRvU2hhMjU2XCI7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNFbXB0eURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaXNFbXB0eURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsV0FBVyxDQUFDLElBQWdCO0lBQzFDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7S0FDMUI7SUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFORCxrQ0FNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlEYXRhKGRhdGE6IFNvdXJjZURhdGEpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGRhdGEubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuYnl0ZUxlbmd0aCA9PT0gMDtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar util_1 = require(\"@aws-crypto/util\");\nvar constants_1 = require(\"./constants\");\nvar util_locate_window_1 = require(\"@aws-sdk/util-locate-window\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.toHash = new Uint8Array(0);\n if (secret !== void 0) {\n this.key = new Promise(function (resolve, reject) {\n (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.importKey(\"raw\", (0, util_1.convertToBuffer)(secret), constants_1.SHA_256_HMAC_ALGO, false, [\"sign\"])\n .then(resolve, reject);\n });\n this.key.catch(function () { });\n }\n }\n Sha256.prototype.update = function (data) {\n if ((0, util_1.isEmptyData)(data)) {\n return;\n }\n var update = (0, util_1.convertToBuffer)(data);\n var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n };\n Sha256.prototype.digest = function () {\n var _this = this;\n if (this.key) {\n return this.key.then(function (key) {\n return (0, util_locate_window_1.locateWindow)()\n .crypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, key, _this.toHash)\n .then(function (data) { return new Uint8Array(data); });\n });\n }\n if ((0, util_1.isEmptyData)(this.toHash)) {\n return Promise.resolve(constants_1.EMPTY_DATA_SHA_256);\n }\n return Promise.resolve()\n .then(function () {\n return (0, util_locate_window_1.locateWindow)().crypto.subtle.digest(constants_1.SHA_256_HASH, _this.toHash);\n })\n .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViQ3J5cHRvU2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dlYkNyeXB0b1NoYTI1Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBZ0U7QUFDaEUseUNBSXFCO0FBQ3JCLGtFQUEyRDtBQUUzRDtJQUlFLGdCQUFZLE1BQW1CO1FBRnZCLFdBQU0sR0FBZSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUc3QyxJQUFJLE1BQU0sS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07Z0JBQ3JDLElBQUEsaUNBQVksR0FBRTtxQkFDWCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDdEIsS0FBSyxFQUNMLElBQUEsc0JBQWUsRUFBQyxNQUFNLENBQUMsRUFDdkIsNkJBQWlCLEVBQ2pCLEtBQUssRUFDTCxDQUFDLE1BQU0sQ0FBQyxDQUNUO3FCQUNBLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELHVCQUFNLEdBQU4sVUFBTyxJQUFnQjtRQUNyQixJQUFJLElBQUEsa0JBQVcsRUFBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFFRCxJQUFNLE1BQU0sR0FBRyxJQUFBLHNCQUFlLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQzNDLENBQUM7UUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsdUJBQU0sR0FBTjtRQUFBLGlCQWtCQztRQWpCQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRztnQkFDdkIsT0FBQSxJQUFBLGlDQUFZLEdBQUU7cUJBQ1gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkJBQWlCLEVBQUUsR0FBRyxFQUFFLEtBQUksQ0FBQyxNQUFNLENBQUM7cUJBQ3ZELElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFwQixDQUFvQixDQUFDO1lBRnZDLENBRXVDLENBQ3hDLENBQUM7U0FDSDtRQUVELElBQUksSUFBQSxrQkFBVyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM1QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsOEJBQWtCLENBQUMsQ0FBQztTQUM1QztRQUVELE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRTthQUNyQixJQUFJLENBQUM7WUFDSixPQUFBLElBQUEsaUNBQVksR0FBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHdCQUFZLEVBQUUsS0FBSSxDQUFDLE1BQU0sQ0FBQztRQUE5RCxDQUE4RCxDQUMvRDthQUNBLElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBckMsQ0FBcUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDSCxhQUFDO0FBQUQsQ0FBQyxBQXRERCxJQXNEQztBQXREWSx3QkFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhc2gsIFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGlzRW1wdHlEYXRhLCBjb252ZXJ0VG9CdWZmZXIgfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuaW1wb3J0IHtcbiAgRU1QVFlfREFUQV9TSEFfMjU2LFxuICBTSEFfMjU2X0hBU0gsXG4gIFNIQV8yNTZfSE1BQ19BTEdPLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGxvY2F0ZVdpbmRvdyB9IGZyb20gXCJAYXdzLXNkay91dGlsLWxvY2F0ZS13aW5kb3dcIjtcblxuZXhwb3J0IGNsYXNzIFNoYTI1NiBpbXBsZW1lbnRzIEhhc2gge1xuICBwcml2YXRlIHJlYWRvbmx5IGtleTogUHJvbWlzZTxDcnlwdG9LZXk+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHRvSGFzaDogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDApO1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc2VjcmV0ICE9PSB2b2lkIDApIHtcbiAgICAgIHRoaXMua2V5ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsb2NhdGVXaW5kb3coKVxuICAgICAgICAgIC5jcnlwdG8uc3VidGxlLmltcG9ydEtleShcbiAgICAgICAgICAgIFwicmF3XCIsXG4gICAgICAgICAgICBjb252ZXJ0VG9CdWZmZXIoc2VjcmV0KSxcbiAgICAgICAgICAgIFNIQV8yNTZfSE1BQ19BTEdPLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICBbXCJzaWduXCJdXG4gICAgICAgICAgKVxuICAgICAgICAgIC50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMua2V5LmNhdGNoKCgpID0+IHt9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUoZGF0YTogU291cmNlRGF0YSk6IHZvaWQge1xuICAgIGlmIChpc0VtcHR5RGF0YShkYXRhKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZSA9IGNvbnZlcnRUb0J1ZmZlcihkYXRhKTtcbiAgICBjb25zdCB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoXG4gICAgICB0aGlzLnRvSGFzaC5ieXRlTGVuZ3RoICsgdXBkYXRlLmJ5dGVMZW5ndGhcbiAgICApO1xuICAgIHR5cGVkQXJyYXkuc2V0KHRoaXMudG9IYXNoLCAwKTtcbiAgICB0eXBlZEFycmF5LnNldCh1cGRhdGUsIHRoaXMudG9IYXNoLmJ5dGVMZW5ndGgpO1xuICAgIHRoaXMudG9IYXNoID0gdHlwZWRBcnJheTtcbiAgfVxuXG4gIGRpZ2VzdCgpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBpZiAodGhpcy5rZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLmtleS50aGVuKChrZXkpID0+XG4gICAgICAgIGxvY2F0ZVdpbmRvdygpXG4gICAgICAgICAgLmNyeXB0by5zdWJ0bGUuc2lnbihTSEFfMjU2X0hNQUNfQUxHTywga2V5LCB0aGlzLnRvSGFzaClcbiAgICAgICAgICAudGhlbigoZGF0YSkgPT4gbmV3IFVpbnQ4QXJyYXkoZGF0YSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChpc0VtcHR5RGF0YSh0aGlzLnRvSGFzaCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoRU1QVFlfREFUQV9TSEFfMjU2KTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgIC50aGVuKCgpID0+XG4gICAgICAgIGxvY2F0ZVdpbmRvdygpLmNyeXB0by5zdWJ0bGUuZGlnZXN0KFNIQV8yNTZfSEFTSCwgdGhpcy50b0hhc2gpXG4gICAgICApXG4gICAgICAudGhlbigoZGF0YSkgPT4gUHJvbWlzZS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KGRhdGEpKSk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RawSha256 = void 0;\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(constants_1.INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexports.RawSha256 = RawSha256;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmF3U2hhMjU2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1Jhd1NoYTI1Ni50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FNcUI7QUFFckI7O0dBRUc7QUFDSDtJQUFBO1FBQ1UsVUFBSyxHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQUksQ0FBQyxDQUFDO1FBQzFDLFNBQUksR0FBZSxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxXQUFNLEdBQWUsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFFaEM7O1dBRUc7UUFDSCxhQUFRLEdBQVksS0FBSyxDQUFDO0lBOEk1QixDQUFDO0lBNUlDLDBCQUFNLEdBQU4sVUFBTyxJQUFnQjtRQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBQSxVQUFVLEdBQUssSUFBSSxXQUFULENBQVU7UUFDMUIsSUFBSSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRywrQkFBbUIsRUFBRTtZQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNwRCxVQUFVLEVBQUUsQ0FBQztZQUViLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxzQkFBVSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsVUFB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LENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFFbkUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixJQUFNLElBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUVqRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDVixDQUFDLENBQUMsSUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ2xFO1lBRUQsSUFBTSxFQUFFLEdBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQyxDQUFDLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDLENBQUM7Z0JBQ0YsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsZUFBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDLENBQUM7WUFFSixJQUFNLEVBQUUsR0FDTixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzlELENBQUMsQ0FBQztZQUVKLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ2hCLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QjtRQUVELEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNuQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDbkIsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0gsZ0JBQUM7QUFBRCxDQUFDLEFBeEpELElBd0pDO0FBeEpZLDhCQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQkxPQ0tfU0laRSxcbiAgRElHRVNUX0xFTkdUSCxcbiAgSU5JVCxcbiAgS0VZLFxuICBNQVhfSEFTSEFCTEVfTEVOR1RIXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgUmF3U2hhMjU2IHtcbiAgcHJpdmF0ZSBzdGF0ZTogSW50MzJBcnJheSA9IEludDMyQXJyYXkuZnJvbShJTklUKTtcbiAgcHJpdmF0ZSB0ZW1wOiBJbnQzMkFycmF5ID0gbmV3IEludDMyQXJyYXkoNjQpO1xuICBwcml2YXRlIGJ1ZmZlcjogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDY0KTtcbiAgcHJpdmF0ZSBidWZmZXJMZW5ndGg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgYnl0ZXNIYXNoZWQ6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZmluaXNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICB1cGRhdGUoZGF0YTogVWludDhBcnJheSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbmlzaGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdHRlbXB0ZWQgdG8gdXBkYXRlIGFuIGFscmVhZHkgZmluaXNoZWQgaGFzaC5cIik7XG4gICAgfVxuXG4gICAgbGV0IHBvc2l0aW9uID0gMDtcbiAgICBsZXQgeyBieXRlTGVuZ3RoIH0gPSBkYXRhO1xuICAgIHRoaXMuYnl0ZXNIYXNoZWQgKz0gYnl0ZUxlbmd0aDtcblxuICAgIGlmICh0aGlzLmJ5dGVzSGFzaGVkICogOCA+IE1BWF9IQVNIQUJMRV9MRU5HVEgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBoYXNoIG1vcmUgdGhhbiAyXjUzIC0gMSBiaXRzXCIpO1xuICAgIH1cblxuICAgIHdoaWxlIChieXRlTGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW3Bvc2l0aW9uKytdO1xuICAgICAgYnl0ZUxlbmd0aC0tO1xuXG4gICAgICBpZiAodGhpcy5idWZmZXJMZW5ndGggPT09IEJMT0NLX1NJWkUpIHtcbiAgICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkaWdlc3QoKTogVWludDhBcnJheSB7XG4gICAgaWYgKCF0aGlzLmZpbmlzaGVkKSB7XG4gICAgICBjb25zdCBiaXRzSGFzaGVkID0gdGhpcy5ieXRlc0hhc2hlZCAqIDg7XG4gICAgICBjb25zdCBidWZmZXJWaWV3ID0gbmV3IERhdGFWaWV3KFxuICAgICAgICB0aGlzLmJ1ZmZlci5idWZmZXIsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVPZmZzZXQsXG4gICAgICAgIHRoaXMuYnVmZmVyLmJ5dGVMZW5ndGhcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHVuZGVjb3JhdGVkTGVuZ3RoID0gdGhpcy5idWZmZXJMZW5ndGg7XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQ4KHRoaXMuYnVmZmVyTGVuZ3RoKyssIDB4ODApO1xuXG4gICAgICAvLyBFbnN1cmUgdGhlIGZpbmFsIGJsb2NrIGhhcyBlbm91Z2ggcm9vbSBmb3IgdGhlIGhhc2hlZCBsZW5ndGhcbiAgICAgIGlmICh1bmRlY29yYXRlZExlbmd0aCAlIEJMT0NLX1NJWkUgPj0gQkxPQ0tfU0laRSAtIDgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuYnVmZmVyTGVuZ3RoOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICAgICAgYnVmZmVyVmlldy5zZXRVaW50OChpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc2hCdWZmZXIoKTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gdGhpcy5idWZmZXJMZW5ndGg7IGkgPCBCTE9DS19TSVpFIC0gODsgaSsrKSB7XG4gICAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDgoaSwgMCk7XG4gICAgICB9XG4gICAgICBidWZmZXJWaWV3LnNldFVpbnQzMihcbiAgICAgICAgQkxPQ0tfU0laRSAtIDgsXG4gICAgICAgIE1hdGguZmxvb3IoYml0c0hhc2hlZCAvIDB4MTAwMDAwMDAwKSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIGJ1ZmZlclZpZXcuc2V0VWludDMyKEJMT0NLX1NJWkUgLSA0LCBiaXRzSGFzaGVkKTtcblxuICAgICAgdGhpcy5oYXNoQnVmZmVyKCk7XG5cbiAgICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIFRoZSB2YWx1ZSBpbiBzdGF0ZSBpcyBsaXR0bGUtZW5kaWFuIHJhdGhlciB0aGFuIGJpZy1lbmRpYW4sIHNvIGZsaXBcbiAgICAvLyBlYWNoIHdvcmQgaW50byBhIG5ldyBVaW50OEFycmF5XG4gICAgY29uc3Qgb3V0ID0gbmV3IFVpbnQ4QXJyYXkoRElHRVNUX0xFTkdUSCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA4OyBpKyspIHtcbiAgICAgIG91dFtpICogNF0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgIG91dFtpICogNCArIDFdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAyXSA9ICh0aGlzLnN0YXRlW2ldID4+PiA4KSAmIDB4ZmY7XG4gICAgICBvdXRbaSAqIDQgKyAzXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAwKSAmIDB4ZmY7XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIHByaXZhdGUgaGFzaEJ1ZmZlcigpOiB2b2lkIHtcbiAgICBjb25zdCB7IGJ1ZmZlciwgc3RhdGUgfSA9IHRoaXM7XG5cbiAgICBsZXQgc3RhdGUwID0gc3RhdGVbMF0sXG4gICAgICBzdGF0ZTEgPSBzdGF0ZVsxXSxcbiAgICAgIHN0YXRlMiA9IHN0YXRlWzJdLFxuICAgICAgc3RhdGUzID0gc3RhdGVbM10sXG4gICAgICBzdGF0ZTQgPSBzdGF0ZVs0XSxcbiAgICAgIHN0YXRlNSA9IHN0YXRlWzVdLFxuICAgICAgc3RhdGU2ID0gc3RhdGVbNl0sXG4gICAgICBzdGF0ZTcgPSBzdGF0ZVs3XTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgQkxPQ0tfU0laRTsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIHRoaXMudGVtcFtpXSA9XG4gICAgICAgICAgKChidWZmZXJbaSAqIDRdICYgMHhmZikgPDwgMjQpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDFdICYgMHhmZikgPDwgMTYpIHxcbiAgICAgICAgICAoKGJ1ZmZlcltpICogNCArIDJdICYgMHhmZikgPDwgOCkgfFxuICAgICAgICAgIChidWZmZXJbaSAqIDQgKyAzXSAmIDB4ZmYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHUgPSB0aGlzLnRlbXBbaSAtIDJdO1xuICAgICAgICBjb25zdCB0MSA9XG4gICAgICAgICAgKCh1ID4+PiAxNykgfCAodSA8PCAxNSkpIF4gKCh1ID4+PiAxOSkgfCAodSA8PCAxMykpIF4gKHUgPj4+IDEwKTtcblxuICAgICAgICB1ID0gdGhpcy50ZW1wW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IHQyID1cbiAgICAgICAgICAoKHUgPj4+IDcpIHwgKHUgPDwgMjUpKSBeICgodSA+Pj4gMTgpIHwgKHUgPDwgMTQpKSBeICh1ID4+PiAzKTtcblxuICAgICAgICB0aGlzLnRlbXBbaV0gPVxuICAgICAgICAgICgodDEgKyB0aGlzLnRlbXBbaSAtIDddKSB8IDApICsgKCh0MiArIHRoaXMudGVtcFtpIC0gMTZdKSB8IDApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0MSA9XG4gICAgICAgICgoKCgoKHN0YXRlNCA+Pj4gNikgfCAoc3RhdGU0IDw8IDI2KSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAxMSkgfCAoc3RhdGU0IDw8IDIxKSkgXlxuICAgICAgICAgICgoc3RhdGU0ID4+PiAyNSkgfCAoc3RhdGU0IDw8IDcpKSkgK1xuICAgICAgICAgICgoc3RhdGU0ICYgc3RhdGU1KSBeICh+c3RhdGU0ICYgc3RhdGU2KSkpIHxcbiAgICAgICAgICAwKSArXG4gICAgICAgICAgKChzdGF0ZTcgKyAoKEtFWVtpXSArIHRoaXMudGVtcFtpXSkgfCAwKSkgfCAwKSkgfFxuICAgICAgICAwO1xuXG4gICAgICBjb25zdCB0MiA9XG4gICAgICAgICgoKChzdGF0ZTAgPj4+IDIpIHwgKHN0YXRlMCA8PCAzMCkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMTMpIHwgKHN0YXRlMCA8PCAxOSkpIF5cbiAgICAgICAgICAoKHN0YXRlMCA+Pj4gMjIpIHwgKHN0YXRlMCA8PCAxMCkpKSArXG4gICAgICAgICAgKChzdGF0ZTAgJiBzdGF0ZTEpIF4gKHN0YXRlMCAmIHN0YXRlMikgXiAoc3RhdGUxICYgc3RhdGUyKSkpIHxcbiAgICAgICAgMDtcblxuICAgICAgc3RhdGU3ID0gc3RhdGU2O1xuICAgICAgc3RhdGU2ID0gc3RhdGU1O1xuICAgICAgc3RhdGU1ID0gc3RhdGU0O1xuICAgICAgc3RhdGU0ID0gKHN0YXRlMyArIHQxKSB8IDA7XG4gICAgICBzdGF0ZTMgPSBzdGF0ZTI7XG4gICAgICBzdGF0ZTIgPSBzdGF0ZTE7XG4gICAgICBzdGF0ZTEgPSBzdGF0ZTA7XG4gICAgICBzdGF0ZTAgPSAodDEgKyB0MikgfCAwO1xuICAgIH1cblxuICAgIHN0YXRlWzBdICs9IHN0YXRlMDtcbiAgICBzdGF0ZVsxXSArPSBzdGF0ZTE7XG4gICAgc3RhdGVbMl0gKz0gc3RhdGUyO1xuICAgIHN0YXRlWzNdICs9IHN0YXRlMztcbiAgICBzdGF0ZVs0XSArPSBzdGF0ZTQ7XG4gICAgc3RhdGVbNV0gKz0gc3RhdGU1O1xuICAgIHN0YXRlWzZdICs9IHN0YXRlNjtcbiAgICBzdGF0ZVs3XSArPSBzdGF0ZTc7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAX_HASHABLE_LENGTH = exports.INIT = exports.KEY = exports.DIGEST_LENGTH = exports.BLOCK_SIZE = void 0;\n/**\n * @internal\n */\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexports.KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexports.INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNVLFFBQUEsVUFBVSxHQUFXLEVBQUUsQ0FBQztBQUVyQzs7R0FFRztBQUNVLFFBQUEsYUFBYSxHQUFXLEVBQUUsQ0FBQztBQUV4Qzs7R0FFRztBQUNVLFFBQUEsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDO0lBQ2pDLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7Q0FDWCxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNVLFFBQUEsSUFBSSxHQUFHO0lBQ2xCLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0NBQ1gsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxTQUFBLENBQUMsRUFBSSxFQUFFLENBQUEsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgQkxPQ0tfU0laRTogbnVtYmVyID0gNjQ7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBESUdFU1RfTEVOR1RIOiBudW1iZXIgPSAzMjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IEtFWSA9IG5ldyBVaW50MzJBcnJheShbXG4gIDB4NDI4YTJmOTgsXG4gIDB4NzEzNzQ0OTEsXG4gIDB4YjVjMGZiY2YsXG4gIDB4ZTliNWRiYTUsXG4gIDB4Mzk1NmMyNWIsXG4gIDB4NTlmMTExZjEsXG4gIDB4OTIzZjgyYTQsXG4gIDB4YWIxYzVlZDUsXG4gIDB4ZDgwN2FhOTgsXG4gIDB4MTI4MzViMDEsXG4gIDB4MjQzMTg1YmUsXG4gIDB4NTUwYzdkYzMsXG4gIDB4NzJiZTVkNzQsXG4gIDB4ODBkZWIxZmUsXG4gIDB4OWJkYzA2YTcsXG4gIDB4YzE5YmYxNzQsXG4gIDB4ZTQ5YjY5YzEsXG4gIDB4ZWZiZTQ3ODYsXG4gIDB4MGZjMTlkYzYsXG4gIDB4MjQwY2ExY2MsXG4gIDB4MmRlOTJjNmYsXG4gIDB4NGE3NDg0YWEsXG4gIDB4NWNiMGE5ZGMsXG4gIDB4NzZmOTg4ZGEsXG4gIDB4OTgzZTUxNTIsXG4gIDB4YTgzMWM2NmQsXG4gIDB4YjAwMzI3YzgsXG4gIDB4YmY1OTdmYzcsXG4gIDB4YzZlMDBiZjMsXG4gIDB4ZDVhNzkxNDcsXG4gIDB4MDZjYTYzNTEsXG4gIDB4MTQyOTI5NjcsXG4gIDB4MjdiNzBhODUsXG4gIDB4MmUxYjIxMzgsXG4gIDB4NGQyYzZkZmMsXG4gIDB4NTMzODBkMTMsXG4gIDB4NjUwYTczNTQsXG4gIDB4NzY2YTBhYmIsXG4gIDB4ODFjMmM5MmUsXG4gIDB4OTI3MjJjODUsXG4gIDB4YTJiZmU4YTEsXG4gIDB4YTgxYTY2NGIsXG4gIDB4YzI0YjhiNzAsXG4gIDB4Yzc2YzUxYTMsXG4gIDB4ZDE5MmU4MTksXG4gIDB4ZDY5OTA2MjQsXG4gIDB4ZjQwZTM1ODUsXG4gIDB4MTA2YWEwNzAsXG4gIDB4MTlhNGMxMTYsXG4gIDB4MWUzNzZjMDgsXG4gIDB4Mjc0ODc3NGMsXG4gIDB4MzRiMGJjYjUsXG4gIDB4MzkxYzBjYjMsXG4gIDB4NGVkOGFhNGEsXG4gIDB4NWI5Y2NhNGYsXG4gIDB4NjgyZTZmZjMsXG4gIDB4NzQ4ZjgyZWUsXG4gIDB4NzhhNTYzNmYsXG4gIDB4ODRjODc4MTQsXG4gIDB4OGNjNzAyMDgsXG4gIDB4OTBiZWZmZmEsXG4gIDB4YTQ1MDZjZWIsXG4gIDB4YmVmOWEzZjcsXG4gIDB4YzY3MTc4ZjJcbl0pO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY29uc3QgSU5JVCA9IFtcbiAgMHg2YTA5ZTY2NyxcbiAgMHhiYjY3YWU4NSxcbiAgMHgzYzZlZjM3MixcbiAgMHhhNTRmZjUzYSxcbiAgMHg1MTBlNTI3ZixcbiAgMHg5YjA1Njg4YyxcbiAgMHgxZjgzZDlhYixcbiAgMHg1YmUwY2QxOVxuXTtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9IQVNIQUJMRV9MRU5HVEggPSAyICoqIDUzIC0gMTtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\n(0, tslib_1.__exportStar)(require(\"./jsSha256\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vanNTaGEyNTZcIjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Sha256 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n if (secret) {\n this.outer = new RawSha256_1.RawSha256();\n var inner = bufferFromSecret(secret);\n var outer = new Uint8Array(constants_1.BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n Sha256.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update((0, util_1.convertToBuffer)(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {\n return (0, tslib_1.__generator)(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction bufferFromSecret(secret) {\n var input = (0, util_1.convertToBuffer)(secret);\n if (input.byteLength > constants_1.BLOCK_SIZE) {\n var bufferHash = new RawSha256_1.RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNTaGEyNTYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvanNTaGEyNTYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlDQUF5QztBQUN6Qyx5Q0FBd0M7QUFFeEMseUNBQWdFO0FBRWhFO0lBS0UsZ0JBQVksTUFBbUI7UUFKZCxTQUFJLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7UUFLdEMsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1lBQzdCLElBQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLHNCQUFVLENBQUMsQ0FBQztZQUN6QyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxzQkFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNuQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUNqQixLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2FBQ2xCO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFekIscUNBQXFDO1lBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2Q7U0FDRjtJQUNILENBQUM7SUFFRCx1QkFBTSxHQUFOLFVBQU8sTUFBa0I7UUFDdkIsSUFBSSxJQUFBLGtCQUFXLEVBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFFRCxJQUFJO1lBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBQSxzQkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDM0M7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsMkJBQVUsR0FBVjtRQUNFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNsQjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZDO1lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVCO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0csdUJBQU0sR0FBWjs7O2dCQUNFLHNCQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBQzs7O0tBQzFCO0lBQ0gsYUFBQztBQUFELENBQUMsQUFsRUQsSUFrRUM7QUFsRVksd0JBQU07QUFvRW5CLFNBQVMsZ0JBQWdCLENBQUMsTUFBa0I7SUFDMUMsSUFBSSxLQUFLLEdBQUcsSUFBQSxzQkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBDLElBQUksS0FBSyxDQUFDLFVBQVUsR0FBRyxzQkFBVSxFQUFFO1FBQ2pDLElBQU0sVUFBVSxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1FBQ25DLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUM3QjtJQUVELElBQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLHNCQUFVLENBQUMsQ0FBQztJQUMxQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCTE9DS19TSVpFIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBSYXdTaGEyNTYgfSBmcm9tIFwiLi9SYXdTaGEyNTZcIjtcbmltcG9ydCB7IEhhc2gsIFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IGlzRW1wdHlEYXRhLCBjb252ZXJ0VG9CdWZmZXIgfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuXG5leHBvcnQgY2xhc3MgU2hhMjU2IGltcGxlbWVudHMgSGFzaCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGFzaCA9IG5ldyBSYXdTaGEyNTYoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvdXRlcj86IFJhd1NoYTI1NjtcbiAgcHJpdmF0ZSBlcnJvcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHNlY3JldD86IFNvdXJjZURhdGEpIHtcbiAgICBpZiAoc2VjcmV0KSB7XG4gICAgICB0aGlzLm91dGVyID0gbmV3IFJhd1NoYTI1NigpO1xuICAgICAgY29uc3QgaW5uZXIgPSBidWZmZXJGcm9tU2VjcmV0KHNlY3JldCk7XG4gICAgICBjb25zdCBvdXRlciA9IG5ldyBVaW50OEFycmF5KEJMT0NLX1NJWkUpO1xuICAgICAgb3V0ZXIuc2V0KGlubmVyKTtcblxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBCTE9DS19TSVpFOyBpKyspIHtcbiAgICAgICAgaW5uZXJbaV0gXj0gMHgzNjtcbiAgICAgICAgb3V0ZXJbaV0gXj0gMHg1YztcbiAgICAgIH1cblxuICAgICAgdGhpcy5oYXNoLnVwZGF0ZShpbm5lcik7XG4gICAgICB0aGlzLm91dGVyLnVwZGF0ZShvdXRlcik7XG5cbiAgICAgIC8vIG92ZXJ3cml0ZSB0aGUgY29waWVkIGtleSBpbiBtZW1vcnlcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5uZXIuYnl0ZUxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlubmVyW2ldID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGUodG9IYXNoOiBTb3VyY2VEYXRhKTogdm9pZCB7XG4gICAgaWYgKGlzRW1wdHlEYXRhKHRvSGFzaCkgfHwgdGhpcy5lcnJvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmhhc2gudXBkYXRlKGNvbnZlcnRUb0J1ZmZlcih0b0hhc2gpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmVycm9yID0gZTtcbiAgICB9XG4gIH1cblxuICAvKiBUaGlzIHN5bmNocm9ub3VzIG1ldGhvZCBrZWVwcyBjb21wYXRpYmlsaXR5XG4gICAqIHdpdGggdGhlIHYyIGF3cy1zZGsuXG4gICAqL1xuICBkaWdlc3RTeW5jKCk6IFVpbnQ4QXJyYXkge1xuICAgIGlmICh0aGlzLmVycm9yKSB7XG4gICAgICB0aHJvdyB0aGlzLmVycm9yO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm91dGVyKSB7XG4gICAgICBpZiAoIXRoaXMub3V0ZXIuZmluaXNoZWQpIHtcbiAgICAgICAgdGhpcy5vdXRlci51cGRhdGUodGhpcy5oYXNoLmRpZ2VzdCgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMub3V0ZXIuZGlnZXN0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFzaC5kaWdlc3QoKTtcbiAgfVxuXG4gIC8qIFRoZSB1bmRlcmx5aW5nIGRpZ2VzdCBtZXRob2QgaGVyZSBpcyBzeW5jaHJvbm91cy5cbiAgICogVG8ga2VlcCB0aGUgc2FtZSBpbnRlcmZhY2Ugd2l0aCB0aGUgb3RoZXIgaGFzaCBmdW5jdGlvbnNcbiAgICogdGhlIGRlZmF1bHQgaXMgdG8gZXhwb3NlIHRoaXMgYXMgYW4gYXN5bmMgbWV0aG9kLlxuICAgKiBIb3dldmVyLCBpdCBjYW4gc29tZXRpbWVzIGJlIHVzZWZ1bCB0byBoYXZlIGEgc3luYyBtZXRob2QuXG4gICAqL1xuICBhc3luYyBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMuZGlnZXN0U3luYygpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1ZmZlckZyb21TZWNyZXQoc2VjcmV0OiBTb3VyY2VEYXRhKTogVWludDhBcnJheSB7XG4gIGxldCBpbnB1dCA9IGNvbnZlcnRUb0J1ZmZlcihzZWNyZXQpO1xuXG4gIGlmIChpbnB1dC5ieXRlTGVuZ3RoID4gQkxPQ0tfU0laRSkge1xuICAgIGNvbnN0IGJ1ZmZlckhhc2ggPSBuZXcgUmF3U2hhMjU2KCk7XG4gICAgYnVmZmVySGFzaC51cGRhdGUoaW5wdXQpO1xuICAgIGlucHV0ID0gYnVmZmVySGFzaC5kaWdlc3QoKTtcbiAgfVxuXG4gIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KEJMT0NLX1NJWkUpO1xuICBidWZmZXIuc2V0KGlucHV0KTtcbiAgcmV0dXJuIGJ1ZmZlcjtcbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants_1 = require(\"./constants\");\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(constants_1.INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === constants_1.BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(constants_1.DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexports.RawSha256 = RawSha256;\n//# sourceMappingURL=RawSha256.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * @internal\n */\nexports.BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexports.DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexports.KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexports.INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n//# sourceMappingURL=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./jsSha256\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar constants_1 = require(\"./constants\");\nvar RawSha256_1 = require(\"./RawSha256\");\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.hash = new RawSha256_1.RawSha256();\n if (secret) {\n this.outer = new RawSha256_1.RawSha256();\n var inner = bufferFromSecret(secret);\n var outer = new Uint8Array(constants_1.BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < constants_1.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n Sha256.prototype.update = function (toHash) {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update(convertToBuffer(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n return tslib_1.__generator(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n return Sha256;\n}());\nexports.Sha256 = Sha256;\nfunction bufferFromSecret(secret) {\n var input = convertToBuffer(secret);\n if (input.byteLength > constants_1.BLOCK_SIZE) {\n var bufferHash = new RawSha256_1.RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(constants_1.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return util_utf8_browser_1.fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=jsSha256.js.map","/**\n * Converts a JS string from its native UCS-2/UTF-16 representation into a\n * Uint8Array of the bytes used to represent the equivalent characters in UTF-8.\n *\n * Cribbed from the `goog.crypt.stringToUtf8ByteArray` function in the Google\n * Closure library, though updated to use typed arrays.\n */\nexport var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\n/**\n * Converts a typed array of bytes containing UTF-8 data into a native JS\n * string.\n *\n * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the\n * Google Closure library, though updated to use typed arrays and to better\n * handle astral plane code points.\n */\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZUpzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1cmVKcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFhO0lBQ3BDLElBQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxHQUFHLElBQUksRUFBRTtZQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25CO2FBQU0sSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFO1lBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBVSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FBQyxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxFQUFFO1lBQy9HLElBQU0sYUFBYSxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQVksQ0FBQyxDQUFDO1lBQ3hHLEtBQUssQ0FBQyxJQUFJLENBQ1IsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBVSxFQUNsQyxDQUFDLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFDL0MsQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLEVBQzlDLENBQUMsYUFBYSxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FDeEMsQ0FBQztTQUNIO2FBQU07WUFDTCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLENBQUMsQ0FBQztTQUNqSDtLQUNGO0lBRUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsSUFBTSxNQUFNLEdBQUcsVUFBQyxLQUFpQjtJQUN0QyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFO1lBQ2YsT0FBTyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVUsRUFBRTtZQUNsRCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEVBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakY7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVcsRUFBRTtZQUNuRCxJQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQU0sT0FBTyxHQUFHLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQUMsU0FBUyxJQUFLLE9BQUEsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RixPQUFPLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUM1QixDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxDQUNuRixDQUFDO1NBQ0g7S0FDRjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udmVydHMgYSBKUyBzdHJpbmcgZnJvbSBpdHMgbmF0aXZlIFVDUy0yL1VURi0xNiByZXByZXNlbnRhdGlvbiBpbnRvIGFcbiAqIFVpbnQ4QXJyYXkgb2YgdGhlIGJ5dGVzIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBlcXVpdmFsZW50IGNoYXJhY3RlcnMgaW4gVVRGLTguXG4gKlxuICogQ3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC5zdHJpbmdUb1V0ZjhCeXRlQXJyYXlgIGZ1bmN0aW9uIGluIHRoZSBHb29nbGVcbiAqIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cy5cbiAqL1xuZXhwb3J0IGNvbnN0IGZyb21VdGY4ID0gKGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5ID0+IHtcbiAgY29uc3QgYnl0ZXM6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGlucHV0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dC5jaGFyQ29kZUF0KGkpO1xuICAgIGlmICh2YWx1ZSA8IDB4ODApIHtcbiAgICAgIGJ5dGVzLnB1c2godmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPCAweDgwMCkge1xuICAgICAgYnl0ZXMucHVzaCgodmFsdWUgPj4gNikgfCAwYjExMDAwMDAwLCAodmFsdWUgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwKTtcbiAgICB9IGVsc2UgaWYgKGkgKyAxIDwgaW5wdXQubGVuZ3RoICYmICh2YWx1ZSAmIDB4ZmMwMCkgPT09IDB4ZDgwMCAmJiAoaW5wdXQuY2hhckNvZGVBdChpICsgMSkgJiAweGZjMDApID09PSAweGRjMDApIHtcbiAgICAgIGNvbnN0IHN1cnJvZ2F0ZVBhaXIgPSAweDEwMDAwICsgKCh2YWx1ZSAmIDBiMTExMTExMTExMSkgPDwgMTApICsgKGlucHV0LmNoYXJDb2RlQXQoKytpKSAmIDBiMTExMTExMTExMSk7XG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICAoc3Vycm9nYXRlUGFpciA+PiAxOCkgfCAwYjExMTEwMDAwLFxuICAgICAgICAoKHN1cnJvZ2F0ZVBhaXIgPj4gMTIpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKChzdXJyb2dhdGVQYWlyID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKHN1cnJvZ2F0ZVBhaXIgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBieXRlcy5wdXNoKCh2YWx1ZSA+PiAxMikgfCAwYjExMTAwMDAwLCAoKHZhbHVlID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCwgKHZhbHVlICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShieXRlcyk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgdHlwZWQgYXJyYXkgb2YgYnl0ZXMgY29udGFpbmluZyBVVEYtOCBkYXRhIGludG8gYSBuYXRpdmUgSlNcbiAqIHN0cmluZy5cbiAqXG4gKiBQYXJ0bHkgY3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC51dGY4Qnl0ZUFycmF5VG9TdHJpbmdgIGZ1bmN0aW9uIGluIHRoZVxuICogR29vZ2xlIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cyBhbmQgdG8gYmV0dGVyXG4gKiBoYW5kbGUgYXN0cmFsIHBsYW5lIGNvZGUgcG9pbnRzLlxuICovXG5leHBvcnQgY29uc3QgdG9VdGY4ID0gKGlucHV0OiBVaW50OEFycmF5KTogc3RyaW5nID0+IHtcbiAgbGV0IGRlY29kZWQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW5wdXQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gaW5wdXRbaV07XG4gICAgaWYgKGJ5dGUgPCAweDgwKSB7XG4gICAgICBkZWNvZGVkICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZSk7XG4gICAgfSBlbHNlIGlmICgwYjExMDAwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTExMDAwMDApIHtcbiAgICAgIGNvbnN0IG5leHRCeXRlID0gaW5wdXRbKytpXTtcbiAgICAgIGRlY29kZWQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGJ5dGUgJiAwYjExMTExKSA8PCA2KSB8IChuZXh0Qnl0ZSAmIDBiMTExMTExKSk7XG4gICAgfSBlbHNlIGlmICgwYjExMTEwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTAxMTAxMTAxKSB7XG4gICAgICBjb25zdCBzdXJyb2dhdGVQYWlyID0gW2J5dGUsIGlucHV0WysraV0sIGlucHV0WysraV0sIGlucHV0WysraV1dO1xuICAgICAgY29uc3QgZW5jb2RlZCA9IFwiJVwiICsgc3Vycm9nYXRlUGFpci5tYXAoKGJ5dGVWYWx1ZSkgPT4gYnl0ZVZhbHVlLnRvU3RyaW5nKDE2KSkuam9pbihcIiVcIik7XG4gICAgICBkZWNvZGVkICs9IGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb2RlZCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFxuICAgICAgICAoKGJ5dGUgJiAwYjExMTEpIDw8IDEyKSB8ICgoaW5wdXRbKytpXSAmIDBiMTExMTExKSA8PCA2KSB8IChpbnB1dFsrK2ldICYgMGIxMTExMTEpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWNvZGVkO1xufTtcbiJdfQ==","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hhdHdnRW5jb2RpbmdBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2hhdHdnRW5jb2RpbmdBcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUNBLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBYTtJQUNwQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQWlCO0lBQ3RDLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZGVjbGFyYXRpb24gb2YgdGhlIGdsb2JhbCBUZXh0RW5jb2RlciBhbmQgVGV4dERlY29kZXIgY29uc3RydWN0b3JzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG5uYW1lc3BhY2UgRW5jb2Rpbmcge1xuICBpbnRlcmZhY2UgVGV4dERlY29kZXJPcHRpb25zIHtcbiAgICBmYXRhbD86IGJvb2xlYW47XG4gICAgaWdub3JlQk9NPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlT3B0aW9ucyB7XG4gICAgc3RyZWFtPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlciB7XG4gICAgcmVhZG9ubHkgZW5jb2Rpbmc6IHN0cmluZztcbiAgICByZWFkb25seSBmYXRhbDogYm9vbGVhbjtcbiAgICByZWFkb25seSBpZ25vcmVCT006IGJvb2xlYW47XG4gICAgZGVjb2RlKGlucHV0PzogQXJyYXlCdWZmZXIgfCBBcnJheUJ1ZmZlclZpZXcsIG9wdGlvbnM/OiBUZXh0RGVjb2RlT3B0aW9ucyk6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVGV4dERlY29kZXJDb25zdHJ1Y3RvciB7XG4gICAgbmV3IChsYWJlbD86IHN0cmluZywgb3B0aW9ucz86IFRleHREZWNvZGVyT3B0aW9ucyk6IFRleHREZWNvZGVyO1xuICB9XG5cbiAgaW50ZXJmYWNlIFRleHRFbmNvZGVyIHtcbiAgICByZWFkb25seSBlbmNvZGluZzogXCJ1dGYtOFwiO1xuICAgIGVuY29kZShpbnB1dD86IHN0cmluZyk6IFVpbnQ4QXJyYXk7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFRleHRFbmNvZGVyQ29uc3RydWN0b3Ige1xuICAgIG5ldyAoKTogVGV4dEVuY29kZXI7XG4gIH1cbn1cblxuZGVjbGFyZSBjb25zdCBUZXh0RGVjb2RlcjogRW5jb2RpbmcuVGV4dERlY29kZXJDb25zdHJ1Y3RvcjtcblxuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRW5jb2RpbmcuVGV4dEVuY29kZXJDb25zdHJ1Y3RvcjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21VdGY4KGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShpbnB1dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1V0ZjgoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICByZXR1cm4gbmV3IFRleHREZWNvZGVyKFwidXRmLThcIikuZGVjb2RlKGlucHV0KTtcbn1cbiJdfQ==","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsSUFBSSxVQUFVLEVBQUUsTUFBTSxJQUFJLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxJQUFJLG1CQUFtQixFQUFFLE1BQU0sSUFBSSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS25HLE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRyxVQUFDLEtBQWE7SUFDcEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0FBQWxGLENBQWtGLENBQUM7QUFFckYsTUFBTSxDQUFDLElBQU0sTUFBTSxHQUFHLFVBQUMsS0FBaUI7SUFDdEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0FBQTlFLENBQThFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tVXRmOCBhcyBqc0Zyb21VdGY4LCB0b1V0ZjggYXMganNUb1V0ZjggfSBmcm9tIFwiLi9wdXJlSnNcIjtcbmltcG9ydCB7IGZyb21VdGY4IGFzIHRleHRFbmNvZGVyRnJvbVV0ZjgsIHRvVXRmOCBhcyB0ZXh0RW5jb2RlclRvVXRmOCB9IGZyb20gXCIuL3doYXR3Z0VuY29kaW5nQXBpXCI7XG5cbmRlY2xhcmUgY29uc3QgVGV4dERlY29kZXI6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBmcm9tVXRmOCA9IChpbnB1dDogc3RyaW5nKTogVWludDhBcnJheSA9PlxuICB0eXBlb2YgVGV4dEVuY29kZXIgPT09IFwiZnVuY3Rpb25cIiA/IHRleHRFbmNvZGVyRnJvbVV0ZjgoaW5wdXQpIDoganNGcm9tVXRmOChpbnB1dCk7XG5cbmV4cG9ydCBjb25zdCB0b1V0ZjggPSAoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcgPT5cbiAgdHlwZW9mIFRleHREZWNvZGVyID09PSBcImZ1bmN0aW9uXCIgPyB0ZXh0RW5jb2RlclRvVXRmOChpbnB1dCkgOiBqc1RvVXRmOChpbnB1dCk7XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./supportsWebCrypto\"), exports);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3VwcG9ydHNXZWJDcnlwdG9cIjtcbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportsZeroByteGCM = exports.supportsSubtleCrypto = exports.supportsSecureRandom = exports.supportsWebCrypto = void 0;\nvar tslib_1 = require(\"tslib\");\nvar subtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nfunction supportsWebCrypto(window) {\n if (supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\") {\n var subtle = window.crypto.subtle;\n return supportsSubtleCrypto(subtle);\n }\n return false;\n}\nexports.supportsWebCrypto = supportsWebCrypto;\nfunction supportsSecureRandom(window) {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n var getRandomValues = window.crypto.getRandomValues;\n return typeof getRandomValues === \"function\";\n }\n return false;\n}\nexports.supportsSecureRandom = supportsSecureRandom;\nfunction supportsSubtleCrypto(subtle) {\n return (subtle &&\n subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === \"function\"; }));\n}\nexports.supportsSubtleCrypto = supportsSubtleCrypto;\nfunction supportsZeroByteGCM(subtle) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var key, zeroByteAuthTag, _a;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!supportsSubtleCrypto(subtle))\n return [2 /*return*/, false];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, subtle.generateKey({ name: \"AES-GCM\", length: 128 }, false, [\"encrypt\"])];\n case 2:\n key = _b.sent();\n return [4 /*yield*/, subtle.encrypt({\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n }, key, new Uint8Array(0))];\n case 3:\n zeroByteAuthTag = _b.sent();\n return [2 /*return*/, zeroByteAuthTag.byteLength === 16];\n case 4:\n _a = _b.sent();\n return [2 /*return*/, false];\n case 5: return [2 /*return*/];\n }\n });\n });\n}\nexports.supportsZeroByteGCM = supportsZeroByteGCM;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydHNXZWJDcnlwdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3VwcG9ydHNXZWJDcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVVBLElBQU0sbUJBQW1CLEdBQThCO0lBQ3JELFNBQVM7SUFDVCxRQUFRO0lBQ1IsU0FBUztJQUNULFdBQVc7SUFDWCxhQUFhO0lBQ2IsV0FBVztJQUNYLE1BQU07SUFDTixRQUFRO0NBQ1QsQ0FBQztBQUVGLFNBQWdCLGlCQUFpQixDQUFDLE1BQWM7SUFDOUMsSUFDRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQ3hDO1FBQ1EsSUFBQSxNQUFNLEdBQUssTUFBTSxDQUFDLE1BQU0sT0FBbEIsQ0FBbUI7UUFFakMsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNyQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVhELDhDQVdDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsTUFBYztJQUNqRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQzNELElBQUEsZUFBZSxHQUFLLE1BQU0sQ0FBQyxNQUFNLGdCQUFsQixDQUFtQjtRQUUxQyxPQUFPLE9BQU8sZUFBZSxLQUFLLFVBQVUsQ0FBQztLQUM5QztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVJELG9EQVFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsTUFBb0I7SUFDdkQsT0FBTyxDQUNMLE1BQU07UUFDTixtQkFBbUIsQ0FBQyxLQUFLLENBQ3ZCLFVBQUEsVUFBVSxJQUFJLE9BQUEsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssVUFBVSxFQUF4QyxDQUF3QyxDQUN2RCxDQUNGLENBQUM7QUFDSixDQUFDO0FBUEQsb0RBT0M7QUFFRCxTQUFzQixtQkFBbUIsQ0FBQyxNQUFvQjs7Ozs7O29CQUM1RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO3dCQUFFLHNCQUFPLEtBQUssRUFBQzs7OztvQkFFbEMscUJBQU0sTUFBTSxDQUFDLFdBQVcsQ0FDbEMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFDaEMsS0FBSyxFQUNMLENBQUMsU0FBUyxDQUFDLENBQ1osRUFBQTs7b0JBSkssR0FBRyxHQUFHLFNBSVg7b0JBQ3VCLHFCQUFNLE1BQU0sQ0FBQyxPQUFPLENBQzFDOzRCQUNFLElBQUksRUFBRSxTQUFTOzRCQUNmLEVBQUUsRUFBRSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQzdCLGNBQWMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3pDLFNBQVMsRUFBRSxHQUFHO3lCQUNmLEVBQ0QsR0FBRyxFQUNILElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUNsQixFQUFBOztvQkFUSyxlQUFlLEdBQUcsU0FTdkI7b0JBQ0Qsc0JBQU8sZUFBZSxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUM7OztvQkFFekMsc0JBQU8sS0FBSyxFQUFDOzs7OztDQUVoQjtBQXRCRCxrREFzQkMiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFN1YnRsZUNyeXB0b01ldGhvZCA9XG4gIHwgXCJkZWNyeXB0XCJcbiAgfCBcImRpZ2VzdFwiXG4gIHwgXCJlbmNyeXB0XCJcbiAgfCBcImV4cG9ydEtleVwiXG4gIHwgXCJnZW5lcmF0ZUtleVwiXG4gIHwgXCJpbXBvcnRLZXlcIlxuICB8IFwic2lnblwiXG4gIHwgXCJ2ZXJpZnlcIjtcblxuY29uc3Qgc3VidGxlQ3J5cHRvTWV0aG9kczogQXJyYXk8U3VidGxlQ3J5cHRvTWV0aG9kPiA9IFtcbiAgXCJkZWNyeXB0XCIsXG4gIFwiZGlnZXN0XCIsXG4gIFwiZW5jcnlwdFwiLFxuICBcImV4cG9ydEtleVwiLFxuICBcImdlbmVyYXRlS2V5XCIsXG4gIFwiaW1wb3J0S2V5XCIsXG4gIFwic2lnblwiLFxuICBcInZlcmlmeVwiXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNXZWJDcnlwdG8od2luZG93OiBXaW5kb3cpOiBib29sZWFuIHtcbiAgaWYgKFxuICAgIHN1cHBvcnRzU2VjdXJlUmFuZG9tKHdpbmRvdykgJiZcbiAgICB0eXBlb2Ygd2luZG93LmNyeXB0by5zdWJ0bGUgPT09IFwib2JqZWN0XCJcbiAgKSB7XG4gICAgY29uc3QgeyBzdWJ0bGUgfSA9IHdpbmRvdy5jcnlwdG87XG5cbiAgICByZXR1cm4gc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlKTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRzU2VjdXJlUmFuZG9tKHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiB3aW5kb3cuY3J5cHRvID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgeyBnZXRSYW5kb21WYWx1ZXMgfSA9IHdpbmRvdy5jcnlwdG87XG5cbiAgICByZXR1cm4gdHlwZW9mIGdldFJhbmRvbVZhbHVlcyA9PT0gXCJmdW5jdGlvblwiO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlOiBTdWJ0bGVDcnlwdG8pIHtcbiAgcmV0dXJuIChcbiAgICBzdWJ0bGUgJiZcbiAgICBzdWJ0bGVDcnlwdG9NZXRob2RzLmV2ZXJ5KFxuICAgICAgbWV0aG9kTmFtZSA9PiB0eXBlb2Ygc3VidGxlW21ldGhvZE5hbWVdID09PSBcImZ1bmN0aW9uXCJcbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdXBwb3J0c1plcm9CeXRlR0NNKHN1YnRsZTogU3VidGxlQ3J5cHRvKSB7XG4gIGlmICghc3VwcG9ydHNTdWJ0bGVDcnlwdG8oc3VidGxlKSkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHN1YnRsZS5nZW5lcmF0ZUtleShcbiAgICAgIHsgbmFtZTogXCJBRVMtR0NNXCIsIGxlbmd0aDogMTI4IH0sXG4gICAgICBmYWxzZSxcbiAgICAgIFtcImVuY3J5cHRcIl1cbiAgICApO1xuICAgIGNvbnN0IHplcm9CeXRlQXV0aFRhZyA9IGF3YWl0IHN1YnRsZS5lbmNyeXB0KFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkFFUy1HQ01cIixcbiAgICAgICAgaXY6IG5ldyBVaW50OEFycmF5KEFycmF5KDEyKSksXG4gICAgICAgIGFkZGl0aW9uYWxEYXRhOiBuZXcgVWludDhBcnJheShBcnJheSgxNikpLFxuICAgICAgICB0YWdMZW5ndGg6IDEyOFxuICAgICAgfSxcbiAgICAgIGtleSxcbiAgICAgIG5ldyBVaW50OEFycmF5KDApXG4gICAgKTtcbiAgICByZXR1cm4gemVyb0J5dGVBdXRoVGFnLmJ5dGVMZW5ndGggPT09IDE2O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToBuffer = void 0;\nvar util_utf8_browser_1 = require(\"@aws-sdk/util-utf8-browser\");\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : util_utf8_browser_1.fromUtf8;\nfunction convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\nexports.convertToBuffer = convertToBuffer;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydFRvQnVmZmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnZlcnRUb0J1ZmZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQzs7O0FBR3RDLGdFQUF5RTtBQUV6RSxpQkFBaUI7QUFDakIsSUFBTSxRQUFRLEdBQ1osT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJO0lBQzFDLENBQUMsQ0FBQyxVQUFDLEtBQWEsSUFBSyxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUExQixDQUEwQjtJQUMvQyxDQUFDLENBQUMsNEJBQWUsQ0FBQztBQUV0QixTQUFnQixlQUFlLENBQUMsSUFBZ0I7SUFDOUMsOEJBQThCO0lBQzlCLElBQUksSUFBSSxZQUFZLFVBQVU7UUFBRSxPQUFPLElBQUksQ0FBQztJQUU1QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQy9DLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQWpCRCwwQ0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgU291cmNlRGF0YSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgZnJvbVV0ZjggYXMgZnJvbVV0ZjhCcm93c2VyIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXRmOC1icm93c2VyXCI7XG5cbi8vIFF1aWNrIHBvbHlmaWxsXG5jb25zdCBmcm9tVXRmOCA9XG4gIHR5cGVvZiBCdWZmZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgQnVmZmVyLmZyb21cbiAgICA/IChpbnB1dDogc3RyaW5nKSA9PiBCdWZmZXIuZnJvbShpbnB1dCwgXCJ1dGY4XCIpXG4gICAgOiBmcm9tVXRmOEJyb3dzZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9CdWZmZXIoZGF0YTogU291cmNlRGF0YSk6IFVpbnQ4QXJyYXkge1xuICAvLyBBbHJlYWR5IGEgVWludDgsIGRvIG5vdGhpbmdcbiAgaWYgKGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSByZXR1cm4gZGF0YTtcblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gZnJvbVV0ZjgoZGF0YSk7XG4gIH1cblxuICBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KGRhdGEpKSB7XG4gICAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFxuICAgICAgZGF0YS5idWZmZXIsXG4gICAgICBkYXRhLmJ5dGVPZmZzZXQsXG4gICAgICBkYXRhLmJ5dGVMZW5ndGggLyBVaW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShkYXRhKTtcbn1cbiJdfQ==","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = exports.numToUint8 = exports.isEmptyData = exports.convertToBuffer = void 0;\nvar convertToBuffer_1 = require(\"./convertToBuffer\");\nObject.defineProperty(exports, \"convertToBuffer\", { enumerable: true, get: function () { return convertToBuffer_1.convertToBuffer; } });\nvar isEmptyData_1 = require(\"./isEmptyData\");\nObject.defineProperty(exports, \"isEmptyData\", { enumerable: true, get: function () { return isEmptyData_1.isEmptyData; } });\nvar numToUint8_1 = require(\"./numToUint8\");\nObject.defineProperty(exports, \"numToUint8\", { enumerable: true, get: function () { return numToUint8_1.numToUint8; } });\nvar uint32ArrayFrom_1 = require(\"./uint32ArrayFrom\");\nObject.defineProperty(exports, \"uint32ArrayFrom\", { enumerable: true, get: function () { return uint32ArrayFrom_1.uint32ArrayFrom; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7OztBQUV0QyxxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkNBQTBDO0FBQWpDLHdHQUFBLFVBQVUsT0FBQTtBQUNuQixxREFBa0Q7QUFBMUMsa0hBQUEsZUFBZSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCB7IGNvbnZlcnRUb0J1ZmZlciB9IGZyb20gXCIuL2NvbnZlcnRUb0J1ZmZlclwiO1xuZXhwb3J0IHsgaXNFbXB0eURhdGEgfSBmcm9tIFwiLi9pc0VtcHR5RGF0YVwiO1xuZXhwb3J0IHsgbnVtVG9VaW50OCB9IGZyb20gXCIuL251bVRvVWludDhcIjtcbmV4cG9ydCB7dWludDMyQXJyYXlGcm9tfSBmcm9tICcuL3VpbnQzMkFycmF5RnJvbSc7XG4iXX0=","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEmptyData = void 0;\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nexports.isEmptyData = isEmptyData;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNFbXB0eURhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaXNFbXB0eURhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7OztBQUl0QyxTQUFnQixXQUFXLENBQUMsSUFBZ0I7SUFDMUMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztLQUMxQjtJQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQU5ELGtDQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IFNvdXJjZURhdGEgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHlEYXRhKGRhdGE6IFNvdXJjZURhdGEpOiBib29sZWFuIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGRhdGEubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGEuYnl0ZUxlbmd0aCA9PT0gMDtcbn1cbiJdfQ==","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numToUint8 = void 0;\nfunction numToUint8(num) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\nexports.numToUint8 = numToUint8;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtVG9VaW50OC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9udW1Ub1VpbnQ4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDOzs7QUFFdEMsU0FBZ0IsVUFBVSxDQUFDLEdBQVc7SUFDcEMsT0FBTyxJQUFJLFVBQVUsQ0FBQztRQUNwQixDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFO1FBQ3hCLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUU7UUFDeEIsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUN2QixHQUFHLEdBQUcsVUFBVTtLQUNqQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBUEQsZ0NBT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuZXhwb3J0IGZ1bmN0aW9uIG51bVRvVWludDgobnVtOiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KFtcbiAgICAobnVtICYgMHhmZjAwMDAwMCkgPj4gMjQsXG4gICAgKG51bSAmIDB4MDBmZjAwMDApID4+IDE2LFxuICAgIChudW0gJiAweDAwMDBmZjAwKSA+PiA4LFxuICAgIG51bSAmIDB4MDAwMDAwZmYsXG4gIF0pO1xufVxuIl19","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uint32ArrayFrom = void 0;\n// IE 11 does not support Array.from, so we do it manually\nfunction uint32ArrayFrom(a_lookUpTable) {\n if (!Array.from) {\n var return_array = new Uint32Array(a_lookUpTable.length);\n var a_index = 0;\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index];\n }\n return return_array;\n }\n return Uint32Array.from(a_lookUpTable);\n}\nexports.uint32ArrayFrom = uint32ArrayFrom;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWludDMyQXJyYXlGcm9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3VpbnQzMkFycmF5RnJvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQzs7O0FBRXRDLDBEQUEwRDtBQUMxRCxTQUFnQixlQUFlLENBQUMsYUFBNEI7SUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7UUFDZixJQUFNLFlBQVksR0FBRyxJQUFJLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDMUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFBO1FBQ2YsT0FBTyxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQy9DO1FBQ0QsT0FBTyxZQUFZLENBQUE7S0FDcEI7SUFDRCxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDeEMsQ0FBQztBQVZELDBDQVVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20gSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8vIElFIDExIGRvZXMgbm90IHN1cHBvcnQgQXJyYXkuZnJvbSwgc28gd2UgZG8gaXQgbWFudWFsbHlcbmV4cG9ydCBmdW5jdGlvbiB1aW50MzJBcnJheUZyb20oYV9sb29rVXBUYWJsZTogQXJyYXk8bnVtYmVyPik6IFVpbnQzMkFycmF5IHtcbiAgaWYgKCFBcnJheS5mcm9tKSB7XG4gICAgY29uc3QgcmV0dXJuX2FycmF5ID0gbmV3IFVpbnQzMkFycmF5KGFfbG9va1VwVGFibGUubGVuZ3RoKVxuICAgIGxldCBhX2luZGV4ID0gMFxuICAgIHdoaWxlIChhX2luZGV4IDwgYV9sb29rVXBUYWJsZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybl9hcnJheVthX2luZGV4XSA9IGFfbG9va1VwVGFibGVbYV9pbmRleF1cbiAgICB9XG4gICAgcmV0dXJuIHJldHVybl9hcnJheVxuICB9XG4gIHJldHVybiBVaW50MzJBcnJheS5mcm9tKGFfbG9va1VwVGFibGUpXG59XG4iXX0=","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var resolveEndpointsConfig = function (input) {\n var _a;\n return (__assign(__assign({}, input), { tls: (_a = input.tls) !== null && _a !== void 0 ? _a : true, endpoint: input.endpoint ? normalizeEndpoint(input) : function () { return getEndPointFromRegion(input); }, isCustomEndpoint: input.endpoint ? true : false }));\n};\nvar normalizeEndpoint = function (input) {\n var endpoint = input.endpoint, urlParser = input.urlParser;\n if (typeof endpoint === \"string\") {\n var promisified_1 = Promise.resolve(urlParser(endpoint));\n return function () { return promisified_1; };\n }\n else if (typeof endpoint === \"object\") {\n var promisified_2 = Promise.resolve(endpoint);\n return function () { return promisified_2; };\n }\n return endpoint;\n};\nvar getEndPointFromRegion = function (input) { return __awaiter(void 0, void 0, void 0, function () {\n var _a, tls, region, dnsHostRegex, hostname;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = input.tls, tls = _a === void 0 ? true : _a;\n return [4 /*yield*/, input.region()];\n case 1:\n region = _c.sent();\n dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(region)) {\n throw new Error(\"Invalid region in client config\");\n }\n return [4 /*yield*/, input.regionInfoProvider(region)];\n case 2:\n hostname = ((_b = (_c.sent())) !== null && _b !== void 0 ? _b : {}).hostname;\n if (!hostname) {\n throw new Error(\"Cannot resolve hostname from client config\");\n }\n return [2 /*return*/, input.urlParser((tls ? \"https:\" : \"http:\") + \"//\" + hostname)];\n }\n });\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5kcG9pbnRzQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0VuZHBvaW50c0NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBeUJBLE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLFVBQ3BDLEtBQW9EOztJQUNwQixPQUFBLHVCQUM3QixLQUFLLEtBQ1IsR0FBRyxRQUFFLEtBQUssQ0FBQyxHQUFHLG1DQUFJLElBQUksRUFDdEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFNLE9BQUEscUJBQXFCLENBQUMsS0FBSyxDQUFDLEVBQTVCLENBQTRCLEVBQ3hGLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUMvQyxDQUFBO0NBQUEsQ0FBQztBQUVILElBQU0saUJBQWlCLEdBQUcsVUFBQyxLQUFnRDtJQUNqRSxJQUFBLFFBQVEsR0FBZ0IsS0FBSyxTQUFyQixFQUFFLFNBQVMsR0FBSyxLQUFLLFVBQVYsQ0FBVztJQUN0QyxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUNoQyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7U0FBTSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtRQUN2QyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLFFBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixJQUFNLHFCQUFxQixHQUFHLFVBQU8sS0FBZ0Q7Ozs7OztnQkFDM0UsS0FBZSxLQUFLLElBQVYsRUFBVixHQUFHLG1CQUFHLElBQUksS0FBQSxDQUFXO2dCQUNkLHFCQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBQTs7Z0JBQTdCLE1BQU0sR0FBRyxTQUFvQjtnQkFFN0IsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7Z0JBQzVGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7aUJBQ3BEO2dCQUVxQixxQkFBTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUE7O2dCQUFwRCxRQUFRLFVBQUssQ0FBQyxTQUFzQyxDQUFDLG1DQUFJLEVBQUUsVUFBbkQ7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO2lCQUMvRDtnQkFFRCxzQkFBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sV0FBSyxRQUFVLENBQUMsRUFBQzs7O0tBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCwgUHJvdmlkZXIsIFJlZ2lvbkluZm9Qcm92aWRlciwgVXJsUGFyc2VyIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnRzSW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIGZ1bGx5IHF1YWxpZmllZCBlbmRwb2ludCBvZiB0aGUgd2Vic2VydmljZS4gVGhpcyBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgYSBjdXN0b20gZW5kcG9pbnQgKGZvciBleGFtcGxlLCB3aGVuIHVzaW5nIGEgbG9jYWwgdmVyc2lvbiBvZiBTMykuXG4gICAqL1xuICBlbmRwb2ludD86IHN0cmluZyB8IEVuZHBvaW50IHwgUHJvdmlkZXI8RW5kcG9pbnQ+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIFRMUyBpcyBlbmFibGVkIGZvciByZXF1ZXN0cy5cbiAgICovXG4gIHRscz86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICByZWdpb25JbmZvUHJvdmlkZXI6IFJlZ2lvbkluZm9Qcm92aWRlcjtcbiAgdXJsUGFyc2VyOiBVcmxQYXJzZXI7XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludHNSZXNvbHZlZENvbmZpZyBleHRlbmRzIFJlcXVpcmVkPEVuZHBvaW50c0lucHV0Q29uZmlnPiB7XG4gIGVuZHBvaW50OiBQcm92aWRlcjxFbmRwb2ludD47XG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlRW5kcG9pbnRzQ29uZmlnID0gPFQ+KFxuICBpbnB1dDogVCAmIEVuZHBvaW50c0lucHV0Q29uZmlnICYgUHJldmlvdXNseVJlc29sdmVkXG4pOiBUICYgRW5kcG9pbnRzUmVzb2x2ZWRDb25maWcgPT4gKHtcbiAgLi4uaW5wdXQsXG4gIHRsczogaW5wdXQudGxzID8/IHRydWUsXG4gIGVuZHBvaW50OiBpbnB1dC5lbmRwb2ludCA/IG5vcm1hbGl6ZUVuZHBvaW50KGlucHV0KSA6ICgpID0+IGdldEVuZFBvaW50RnJvbVJlZ2lvbihpbnB1dCksXG4gIGlzQ3VzdG9tRW5kcG9pbnQ6IGlucHV0LmVuZHBvaW50ID8gdHJ1ZSA6IGZhbHNlLFxufSk7XG5cbmNvbnN0IG5vcm1hbGl6ZUVuZHBvaW50ID0gKGlucHV0OiBFbmRwb2ludHNJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCk6IFByb3ZpZGVyPEVuZHBvaW50PiA9PiB7XG4gIGNvbnN0IHsgZW5kcG9pbnQsIHVybFBhcnNlciB9ID0gaW5wdXQ7XG4gIGlmICh0eXBlb2YgZW5kcG9pbnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBwcm9taXNpZmllZCA9IFByb21pc2UucmVzb2x2ZSh1cmxQYXJzZXIoZW5kcG9pbnQpKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVuZHBvaW50ID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoZW5kcG9pbnQpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfVxuICByZXR1cm4gZW5kcG9pbnQhO1xufTtcblxuY29uc3QgZ2V0RW5kUG9pbnRGcm9tUmVnaW9uID0gYXN5bmMgKGlucHV0OiBFbmRwb2ludHNJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCkgPT4ge1xuICBjb25zdCB7IHRscyA9IHRydWUgfSA9IGlucHV0O1xuICBjb25zdCByZWdpb24gPSBhd2FpdCBpbnB1dC5yZWdpb24oKTtcblxuICBjb25zdCBkbnNIb3N0UmVnZXggPSBuZXcgUmVnRXhwKC9eKFthLXpBLVowLTldfFthLXpBLVowLTldW2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pJC8pO1xuICBpZiAoIWRuc0hvc3RSZWdleC50ZXN0KHJlZ2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIHJlZ2lvbiBpbiBjbGllbnQgY29uZmlnXCIpO1xuICB9XG5cbiAgY29uc3QgeyBob3N0bmFtZSB9ID0gKGF3YWl0IGlucHV0LnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24pKSA/PyB7fTtcbiAgaWYgKCFob3N0bmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCByZXNvbHZlIGhvc3RuYW1lIGZyb20gY2xpZW50IGNvbmZpZ1wiKTtcbiAgfVxuXG4gIHJldHVybiBpbnB1dC51cmxQYXJzZXIoYCR7dGxzID8gXCJodHRwczpcIiA6IFwiaHR0cDpcIn0vLyR7aG9zdG5hbWV9YCk7XG59O1xuIl19","import { __assign } from \"tslib\";\nexport var REGION_ENV_NAME = \"AWS_REGION\";\nexport var REGION_INI_NAME = \"region\";\nexport var NODE_REGION_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) { return env[REGION_ENV_NAME]; },\n configFileSelector: function (profile) { return profile[REGION_INI_NAME]; },\n default: function () {\n throw new Error(\"Region is missing\");\n },\n};\nexport var NODE_REGION_CONFIG_FILE_OPTIONS = {\n preferredFile: \"credentials\",\n};\nexport var resolveRegionConfig = function (input) {\n if (!input.region) {\n throw new Error(\"Region is missing\");\n }\n return __assign(__assign({}, input), { region: normalizeRegion(input.region) });\n};\nvar normalizeRegion = function (region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () { return promisified_1; };\n }\n return region;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaW9uQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JlZ2lvbkNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFlBQVksQ0FBQztBQUM1QyxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxJQUFNLDBCQUEwQixHQUFrQztJQUN2RSwyQkFBMkIsRUFBRSxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBcEIsQ0FBb0I7SUFDMUQsa0JBQWtCLEVBQUUsVUFBQyxPQUFPLElBQUssT0FBQSxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQXhCLENBQXdCO0lBQ3pELE9BQU8sRUFBRTtRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLCtCQUErQixHQUF1QjtJQUNqRSxhQUFhLEVBQUUsYUFBYTtDQUM3QixDQUFDO0FBZUYsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBSSxLQUFpRDtJQUN0RixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDdEM7SUFDRCw2QkFDSyxLQUFLLEtBQ1IsTUFBTSxFQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTyxDQUFDLElBQ3RDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxlQUFlLEdBQUcsVUFBQyxNQUFpQztJQUN4RCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLE1BQTBCLENBQUM7QUFDcEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9hZGVkQ29uZmlnU2VsZWN0b3JzLCBMb2NhbENvbmZpZ09wdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvbm9kZS1jb25maWctcHJvdmlkZXJcIjtcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBSRUdJT05fRU5WX05BTUUgPSBcIkFXU19SRUdJT05cIjtcbmV4cG9ydCBjb25zdCBSRUdJT05fSU5JX05BTUUgPSBcInJlZ2lvblwiO1xuXG5leHBvcnQgY29uc3QgTk9ERV9SRUdJT05fQ09ORklHX09QVElPTlM6IExvYWRlZENvbmZpZ1NlbGVjdG9yczxzdHJpbmc+ID0ge1xuICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IGVudltSRUdJT05fRU5WX05BTUVdLFxuICBjb25maWdGaWxlU2VsZWN0b3I6IChwcm9maWxlKSA9PiBwcm9maWxlW1JFR0lPTl9JTklfTkFNRV0sXG4gIGRlZmF1bHQ6ICgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gaXMgbWlzc2luZ1wiKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBOT0RFX1JFR0lPTl9DT05GSUdfRklMRV9PUFRJT05TOiBMb2NhbENvbmZpZ09wdGlvbnMgPSB7XG4gIHByZWZlcnJlZEZpbGU6IFwiY3JlZGVudGlhbHNcIixcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uSW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gdG8gd2hpY2ggdGhpcyBjbGllbnQgd2lsbCBzZW5kIHJlcXVlc3RzXG4gICAqL1xuICByZWdpb24/OiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+O1xufVxuXG5pbnRlcmZhY2UgUHJldmlvdXNseVJlc29sdmVkIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaW9uUmVzb2x2ZWRDb25maWcge1xuICByZWdpb246IFByb3ZpZGVyPHN0cmluZz47XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUmVnaW9uQ29uZmlnID0gPFQ+KGlucHV0OiBUICYgUmVnaW9uSW5wdXRDb25maWcgJiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBUICYgUmVnaW9uUmVzb2x2ZWRDb25maWcgPT4ge1xuICBpZiAoIWlucHV0LnJlZ2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlJlZ2lvbiBpcyBtaXNzaW5nXCIpO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQsXG4gICAgcmVnaW9uOiBub3JtYWxpemVSZWdpb24oaW5wdXQucmVnaW9uISksXG4gIH07XG59O1xuXG5jb25zdCBub3JtYWxpemVSZWdpb24gPSAocmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+KTogUHJvdmlkZXI8c3RyaW5nPiA9PiB7XG4gIGlmICh0eXBlb2YgcmVnaW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUocmVnaW9uKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH1cbiAgcmV0dXJuIHJlZ2lvbiBhcyBQcm92aWRlcjxzdHJpbmc+O1xufTtcbiJdfQ==","\"use strict\";\n// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nvar index_1 = require(\"./index\");\nvar AwsCrc32 = /** @class */ (function () {\n function AwsCrc32() {\n this.crc32 = new index_1.Crc32();\n }\n AwsCrc32.prototype.update = function (toHash) {\n if ((0, util_1.isEmptyData)(toHash))\n return;\n this.crc32.update((0, util_1.convertToBuffer)(toHash));\n };\n AwsCrc32.prototype.digest = function () {\n return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {\n return (0, tslib_1.__generator)(this, function (_a) {\n return [2 /*return*/, (0, util_1.numToUint8)(this.crc32.digest())];\n });\n });\n };\n return AwsCrc32;\n}());\nexports.AwsCrc32 = AwsCrc32;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzX2NyYzMyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2F3c19jcmMzMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQzs7OztBQUd0Qyx5Q0FBNEU7QUFDNUUsaUNBQWdDO0FBRWhDO0lBQUE7UUFDbUIsVUFBSyxHQUFHLElBQUksYUFBSyxFQUFFLENBQUM7SUFXdkMsQ0FBQztJQVRDLHlCQUFNLEdBQU4sVUFBTyxNQUFrQjtRQUN2QixJQUFJLElBQUEsa0JBQVcsRUFBQyxNQUFNLENBQUM7WUFBRSxPQUFPO1FBRWhDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUEsc0JBQWUsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFSyx5QkFBTSxHQUFaOzs7Z0JBQ0Usc0JBQU8sSUFBQSxpQkFBVSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBQzs7O0tBQ3hDO0lBQ0gsZUFBQztBQUFELENBQUMsQUFaRCxJQVlDO0FBWlksNEJBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgSGFzaCwgU291cmNlRGF0YSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgY29udmVydFRvQnVmZmVyLCBpc0VtcHR5RGF0YSwgbnVtVG9VaW50OCB9IGZyb20gXCJAYXdzLWNyeXB0by91dGlsXCI7XG5pbXBvcnQgeyBDcmMzMiB9IGZyb20gXCIuL2luZGV4XCI7XG5cbmV4cG9ydCBjbGFzcyBBd3NDcmMzMiBpbXBsZW1lbnRzIEhhc2gge1xuICBwcml2YXRlIHJlYWRvbmx5IGNyYzMyID0gbmV3IENyYzMyKCk7XG5cbiAgdXBkYXRlKHRvSGFzaDogU291cmNlRGF0YSkge1xuICAgIGlmIChpc0VtcHR5RGF0YSh0b0hhc2gpKSByZXR1cm47XG5cbiAgICB0aGlzLmNyYzMyLnVwZGF0ZShjb252ZXJ0VG9CdWZmZXIodG9IYXNoKSk7XG4gIH1cblxuICBhc3luYyBkaWdlc3QoKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIG51bVRvVWludDgodGhpcy5jcmMzMi5kaWdlc3QoKSk7XG4gIH1cbn1cbiJdfQ==","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AwsCrc32 = exports.Crc32 = exports.crc32 = void 0;\nvar tslib_1 = require(\"tslib\");\nvar util_1 = require(\"@aws-crypto/util\");\nfunction crc32(data) {\n return new Crc32().update(data).digest();\n}\nexports.crc32 = crc32;\nvar Crc32 = /** @class */ (function () {\n function Crc32() {\n this.checksum = 0xffffffff;\n }\n Crc32.prototype.update = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = (0, tslib_1.__values)(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var byte = data_1_1.value;\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return this;\n };\n Crc32.prototype.digest = function () {\n return (this.checksum ^ 0xffffffff) >>> 0;\n };\n return Crc32;\n}());\nexports.Crc32 = Crc32;\n// prettier-ignore\nvar a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nvar lookupTable = (0, util_1.uint32ArrayFrom)(a_lookUpTable);\nvar aws_crc32_1 = require(\"./aws_crc32\");\nObject.defineProperty(exports, \"AwsCrc32\", { enumerable: true, get: function () { return aws_crc32_1.AwsCrc32; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHlDQUFpRDtBQUVqRCxTQUFnQixLQUFLLENBQUMsSUFBZ0I7SUFDcEMsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUMzQyxDQUFDO0FBRkQsc0JBRUM7QUFFRDtJQUFBO1FBQ1UsYUFBUSxHQUFHLFVBQVUsQ0FBQztJQWNoQyxDQUFDO0lBWkMsc0JBQU0sR0FBTixVQUFPLElBQWdCOzs7WUFDckIsS0FBbUIsSUFBQSxTQUFBLHNCQUFBLElBQUksQ0FBQSwwQkFBQSw0Q0FBRTtnQkFBcEIsSUFBTSxJQUFJLGlCQUFBO2dCQUNiLElBQUksQ0FBQyxRQUFRO29CQUNYLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQ3RFOzs7Ozs7Ozs7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxzQkFBTSxHQUFOO1FBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDSCxZQUFDO0FBQUQsQ0FBQyxBQWZELElBZUM7QUFmWSxzQkFBSztBQWlCbEIsa0JBQWtCO0FBQ2xCLElBQU0sYUFBYSxHQUFHO0lBQ3BCLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7SUFDOUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtJQUM5QyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO0lBQzlDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7Q0FDL0MsQ0FBQztBQUNGLElBQU0sV0FBVyxHQUFnQixJQUFBLHNCQUFlLEVBQUMsYUFBYSxDQUFDLENBQUE7QUFDL0QseUNBQXVDO0FBQTlCLHFHQUFBLFFBQVEsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dWludDMyQXJyYXlGcm9tfSBmcm9tIFwiQGF3cy1jcnlwdG8vdXRpbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JjMzIoZGF0YTogVWludDhBcnJheSk6IG51bWJlciB7XG4gIHJldHVybiBuZXcgQ3JjMzIoKS51cGRhdGUoZGF0YSkuZGlnZXN0KCk7XG59XG5cbmV4cG9ydCBjbGFzcyBDcmMzMiB7XG4gIHByaXZhdGUgY2hlY2tzdW0gPSAweGZmZmZmZmZmO1xuXG4gIHVwZGF0ZShkYXRhOiBVaW50OEFycmF5KTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBieXRlIG9mIGRhdGEpIHtcbiAgICAgIHRoaXMuY2hlY2tzdW0gPVxuICAgICAgICAodGhpcy5jaGVja3N1bSA+Pj4gOCkgXiBsb29rdXBUYWJsZVsodGhpcy5jaGVja3N1bSBeIGJ5dGUpICYgMHhmZl07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkaWdlc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuY2hlY2tzdW0gXiAweGZmZmZmZmZmKSA+Pj4gMDtcbiAgfVxufVxuXG4vLyBwcmV0dGllci1pZ25vcmVcbmNvbnN0IGFfbG9va1VwVGFibGUgPSBbXG4gIDB4MDAwMDAwMDAsIDB4NzcwNzMwOTYsIDB4RUUwRTYxMkMsIDB4OTkwOTUxQkEsXG4gIDB4MDc2REM0MTksIDB4NzA2QUY0OEYsIDB4RTk2M0E1MzUsIDB4OUU2NDk1QTMsXG4gIDB4MEVEQjg4MzIsIDB4NzlEQ0I4QTQsIDB4RTBENUU5MUUsIDB4OTdEMkQ5ODgsXG4gIDB4MDlCNjRDMkIsIDB4N0VCMTdDQkQsIDB4RTdCODJEMDcsIDB4OTBCRjFEOTEsXG4gIDB4MURCNzEwNjQsIDB4NkFCMDIwRjIsIDB4RjNCOTcxNDgsIDB4ODRCRTQxREUsXG4gIDB4MUFEQUQ0N0QsIDB4NkREREU0RUIsIDB4RjRENEI1NTEsIDB4ODNEMzg1QzcsXG4gIDB4MTM2Qzk4NTYsIDB4NjQ2QkE4QzAsIDB4RkQ2MkY5N0EsIDB4OEE2NUM5RUMsXG4gIDB4MTQwMTVDNEYsIDB4NjMwNjZDRDksIDB4RkEwRjNENjMsIDB4OEQwODBERjUsXG4gIDB4M0I2RTIwQzgsIDB4NEM2OTEwNUUsIDB4RDU2MDQxRTQsIDB4QTI2NzcxNzIsXG4gIDB4M0MwM0U0RDEsIDB4NEIwNEQ0NDcsIDB4RDIwRDg1RkQsIDB4QTUwQUI1NkIsXG4gIDB4MzVCNUE4RkEsIDB4NDJCMjk4NkMsIDB4REJCQkM5RDYsIDB4QUNCQ0Y5NDAsXG4gIDB4MzJEODZDRTMsIDB4NDVERjVDNzUsIDB4RENENjBEQ0YsIDB4QUJEMTNENTksXG4gIDB4MjZEOTMwQUMsIDB4NTFERTAwM0EsIDB4QzhENzUxODAsIDB4QkZEMDYxMTYsXG4gIDB4MjFCNEY0QjUsIDB4NTZCM0M0MjMsIDB4Q0ZCQTk1OTksIDB4QjhCREE1MEYsXG4gIDB4MjgwMkI4OUUsIDB4NUYwNTg4MDgsIDB4QzYwQ0Q5QjIsIDB4QjEwQkU5MjQsXG4gIDB4MkY2RjdDODcsIDB4NTg2ODRDMTEsIDB4QzE2MTFEQUIsIDB4QjY2NjJEM0QsXG4gIDB4NzZEQzQxOTAsIDB4MDFEQjcxMDYsIDB4OThEMjIwQkMsIDB4RUZENTEwMkEsXG4gIDB4NzFCMTg1ODksIDB4MDZCNkI1MUYsIDB4OUZCRkU0QTUsIDB4RThCOEQ0MzMsXG4gIDB4NzgwN0M5QTIsIDB4MEYwMEY5MzQsIDB4OTYwOUE4OEUsIDB4RTEwRTk4MTgsXG4gIDB4N0Y2QTBEQkIsIDB4MDg2RDNEMkQsIDB4OTE2NDZDOTcsIDB4RTY2MzVDMDEsXG4gIDB4NkI2QjUxRjQsIDB4MUM2QzYxNjIsIDB4ODU2NTMwRDgsIDB4RjI2MjAwNEUsXG4gIDB4NkMwNjk1RUQsIDB4MUIwMUE1N0IsIDB4ODIwOEY0QzEsIDB4RjUwRkM0NTcsXG4gIDB4NjVCMEQ5QzYsIDB4MTJCN0U5NTAsIDB4OEJCRUI4RUEsIDB4RkNCOTg4N0MsXG4gIDB4NjJERDFEREYsIDB4MTVEQTJENDksIDB4OENEMzdDRjMsIDB4RkJENDRDNjUsXG4gIDB4NERCMjYxNTgsIDB4M0FCNTUxQ0UsIDB4QTNCQzAwNzQsIDB4RDRCQjMwRTIsXG4gIDB4NEFERkE1NDEsIDB4M0REODk1RDcsIDB4QTREMUM0NkQsIDB4RDNENkY0RkIsXG4gIDB4NDM2OUU5NkEsIDB4MzQ2RUQ5RkMsIDB4QUQ2Nzg4NDYsIDB4REE2MEI4RDAsXG4gIDB4NDQwNDJENzMsIDB4MzMwMzFERTUsIDB4QUEwQTRDNUYsIDB4REQwRDdDQzksXG4gIDB4NTAwNTcxM0MsIDB4MjcwMjQxQUEsIDB4QkUwQjEwMTAsIDB4QzkwQzIwODYsXG4gIDB4NTc2OEI1MjUsIDB4MjA2Rjg1QjMsIDB4Qjk2NkQ0MDksIDB4Q0U2MUU0OUYsXG4gIDB4NUVERUY5MEUsIDB4MjlEOUM5OTgsIDB4QjBEMDk4MjIsIDB4QzdEN0E4QjQsXG4gIDB4NTlCMzNEMTcsIDB4MkVCNDBEODEsIDB4QjdCRDVDM0IsIDB4QzBCQTZDQUQsXG4gIDB4RURCODgzMjAsIDB4OUFCRkIzQjYsIDB4MDNCNkUyMEMsIDB4NzRCMUQyOUEsXG4gIDB4RUFENTQ3MzksIDB4OUREMjc3QUYsIDB4MDREQjI2MTUsIDB4NzNEQzE2ODMsXG4gIDB4RTM2MzBCMTIsIDB4OTQ2NDNCODQsIDB4MEQ2RDZBM0UsIDB4N0E2QTVBQTgsXG4gIDB4RTQwRUNGMEIsIDB4OTMwOUZGOUQsIDB4MEEwMEFFMjcsIDB4N0QwNzlFQjEsXG4gIDB4RjAwRjkzNDQsIDB4ODcwOEEzRDIsIDB4MUUwMUYyNjgsIDB4NjkwNkMyRkUsXG4gIDB4Rjc2MjU3NUQsIDB4ODA2NTY3Q0IsIDB4MTk2QzM2NzEsIDB4NkU2QjA2RTcsXG4gIDB4RkVENDFCNzYsIDB4ODlEMzJCRTAsIDB4MTBEQTdBNUEsIDB4NjdERDRBQ0MsXG4gIDB4RjlCOURGNkYsIDB4OEVCRUVGRjksIDB4MTdCN0JFNDMsIDB4NjBCMDhFRDUsXG4gIDB4RDZENkEzRTgsIDB4QTFEMTkzN0UsIDB4MzhEOEMyQzQsIDB4NEZERkYyNTIsXG4gIDB4RDFCQjY3RjEsIDB4QTZCQzU3NjcsIDB4M0ZCNTA2REQsIDB4NDhCMjM2NEIsXG4gIDB4RDgwRDJCREEsIDB4QUYwQTFCNEMsIDB4MzYwMzRBRjYsIDB4NDEwNDdBNjAsXG4gIDB4REY2MEVGQzMsIDB4QTg2N0RGNTUsIDB4MzE2RThFRUYsIDB4NDY2OUJFNzksXG4gIDB4Q0I2MUIzOEMsIDB4QkM2NjgzMUEsIDB4MjU2RkQyQTAsIDB4NTI2OEUyMzYsXG4gIDB4Q0MwQzc3OTUsIDB4QkIwQjQ3MDMsIDB4MjIwMjE2QjksIDB4NTUwNTI2MkYsXG4gIDB4QzVCQTNCQkUsIDB4QjJCRDBCMjgsIDB4MkJCNDVBOTIsIDB4NUNCMzZBMDQsXG4gIDB4QzJEN0ZGQTcsIDB4QjVEMENGMzEsIDB4MkNEOTlFOEIsIDB4NUJERUFFMUQsXG4gIDB4OUI2NEMyQjAsIDB4RUM2M0YyMjYsIDB4NzU2QUEzOUMsIDB4MDI2RDkzMEEsXG4gIDB4OUMwOTA2QTksIDB4RUIwRTM2M0YsIDB4NzIwNzY3ODUsIDB4MDUwMDU3MTMsXG4gIDB4OTVCRjRBODIsIDB4RTJCODdBMTQsIDB4N0JCMTJCQUUsIDB4MENCNjFCMzgsXG4gIDB4OTJEMjhFOUIsIDB4RTVENUJFMEQsIDB4N0NEQ0VGQjcsIDB4MEJEQkRGMjEsXG4gIDB4ODZEM0QyRDQsIDB4RjFENEUyNDIsIDB4NjhEREIzRjgsIDB4MUZEQTgzNkUsXG4gIDB4ODFCRTE2Q0QsIDB4RjZCOTI2NUIsIDB4NkZCMDc3RTEsIDB4MThCNzQ3NzcsXG4gIDB4ODgwODVBRTYsIDB4RkYwRjZBNzAsIDB4NjYwNjNCQ0EsIDB4MTEwMTBCNUMsXG4gIDB4OEY2NTlFRkYsIDB4Rjg2MkFFNjksIDB4NjE2QkZGRDMsIDB4MTY2Q0NGNDUsXG4gIDB4QTAwQUUyNzgsIDB4RDcwREQyRUUsIDB4NEUwNDgzNTQsIDB4MzkwM0IzQzIsXG4gIDB4QTc2NzI2NjEsIDB4RDA2MDE2RjcsIDB4NDk2OTQ3NEQsIDB4M0U2RTc3REIsXG4gIDB4QUVEMTZBNEEsIDB4RDlENjVBREMsIDB4NDBERjBCNjYsIDB4MzdEODNCRjAsXG4gIDB4QTlCQ0FFNTMsIDB4REVCQjlFQzUsIDB4NDdCMkNGN0YsIDB4MzBCNUZGRTksXG4gIDB4QkRCREYyMUMsIDB4Q0FCQUMyOEEsIDB4NTNCMzkzMzAsIDB4MjRCNEEzQTYsXG4gIDB4QkFEMDM2MDUsIDB4Q0RENzA2OTMsIDB4NTRERTU3MjksIDB4MjNEOTY3QkYsXG4gIDB4QjM2NjdBMkUsIDB4QzQ2MTRBQjgsIDB4NUQ2ODFCMDIsIDB4MkE2RjJCOTQsXG4gIDB4QjQwQkJFMzcsIDB4QzMwQzhFQTEsIDB4NUEwNURGMUIsIDB4MkQwMkVGOEQsXG5dO1xuY29uc3QgbG9va3VwVGFibGU6IFVpbnQzMkFycmF5ID0gdWludDMyQXJyYXlGcm9tKGFfbG9va1VwVGFibGUpXG5leHBvcnQgeyBBd3NDcmMzMiB9IGZyb20gXCIuL2F3c19jcmMzMlwiO1xuIl19","export function requestTimeout(timeoutInMs) {\n if (timeoutInMs === void 0) { timeoutInMs = 0; }\n return new Promise(function (resolve, reject) {\n if (timeoutInMs) {\n setTimeout(function () {\n var timeoutError = new Error(\"Request did not complete within \" + timeoutInMs + \" ms\");\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC10aW1lb3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcXVlc3QtdGltZW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsY0FBYyxDQUFDLFdBQWU7SUFBZiw0QkFBQSxFQUFBLGVBQWU7SUFDNUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1FBQ2pDLElBQUksV0FBVyxFQUFFO1lBQ2YsVUFBVSxDQUFDO2dCQUNULElBQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLHFDQUFtQyxXQUFXLFFBQUssQ0FBQyxDQUFDO2dCQUNwRixZQUFZLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztnQkFDbkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNqQjtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0VGltZW91dCh0aW1lb3V0SW5NcyA9IDApOiBQcm9taXNlPG5ldmVyPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaWYgKHRpbWVvdXRJbk1zKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgdGltZW91dEVycm9yID0gbmV3IEVycm9yKGBSZXF1ZXN0IGRpZCBub3QgY29tcGxldGUgd2l0aGluICR7dGltZW91dEluTXN9IG1zYCk7XG4gICAgICAgIHRpbWVvdXRFcnJvci5uYW1lID0gXCJUaW1lb3V0RXJyb3JcIjtcbiAgICAgICAgcmVqZWN0KHRpbWVvdXRFcnJvcik7XG4gICAgICB9LCB0aW1lb3V0SW5Ncyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==","import { __values } from \"tslib\";\nimport { HttpResponse } from \"@aws-sdk/protocol-http\";\nimport { buildQueryString } from \"@aws-sdk/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\nvar FetchHttpHandler = /** @class */ (function () {\n function FetchHttpHandler(_a) {\n var _b = _a === void 0 ? {} : _a, requestTimeout = _b.requestTimeout;\n this.requestTimeout = requestTimeout;\n }\n FetchHttpHandler.prototype.destroy = function () {\n // Do nothing. TLS and HTTP/2 connection pooling is handled by the browser.\n };\n FetchHttpHandler.prototype.handle = function (request, _a) {\n var _b = _a === void 0 ? {} : _a, abortSignal = _b.abortSignal;\n var requestTimeoutInMs = this.requestTimeout;\n // if the request was already aborted, prevent doing extra work\n if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n var path = request.path;\n if (request.query) {\n var queryString = buildQueryString(request.query);\n if (queryString) {\n path += \"?\" + queryString;\n }\n }\n var port = request.port, method = request.method;\n var url = request.protocol + \"//\" + request.hostname + (port ? \":\" + port : \"\") + path;\n // Request constructor doesn't allow GET/HEAD request with body\n // ref: https://github.com/whatwg/fetch/issues/551\n var body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n var requestOptions = {\n body: body,\n headers: new Headers(request.headers),\n method: method,\n };\n // some browsers support abort signal\n if (typeof AbortController !== \"undefined\") {\n requestOptions[\"signal\"] = abortSignal;\n }\n var fetchRequest = new Request(url, requestOptions);\n var raceOfPromises = [\n fetch(fetchRequest).then(function (response) {\n var e_1, _a;\n var fetchHeaders = response.headers;\n var transformedHeaders = {};\n try {\n for (var _b = __values(fetchHeaders.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n transformedHeaders[pair[0]] = pair[1];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var hasReadableStream = response.body !== undefined;\n // Return the response with buffered body\n if (!hasReadableStream) {\n return response.blob().then(function (body) { return ({\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: body,\n }),\n }); });\n }\n // Return the response with streaming body\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise(function (resolve, reject) {\n abortSignal.onabort = function () {\n var abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }));\n }\n return Promise.race(raceOfPromises);\n };\n return FetchHttpHandler;\n}());\nexport { FetchHttpHandler };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtaHR0cC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZldGNoLWh0dHAtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUE0QixZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFlbkQ7SUFHRSwwQkFBWSxFQUFnRDtZQUFoRCxxQkFBOEMsRUFBRSxLQUFBLEVBQTlDLGNBQWMsb0JBQUE7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVELGtDQUFPLEdBQVA7UUFDRSwyRUFBMkU7SUFDN0UsQ0FBQztJQUVELGlDQUFNLEdBQU4sVUFBTyxPQUFvQixFQUFFLEVBQXdDO1lBQXhDLHFCQUFzQyxFQUFFLEtBQUEsRUFBdEMsV0FBVyxpQkFBQTtRQUN4QyxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFL0MsK0RBQStEO1FBQy9ELElBQUksV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLE9BQU8sRUFBRTtZQUN4QixJQUFNLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hELFVBQVUsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1lBQy9CLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuQztRQUVELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2pCLElBQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxJQUFJLFdBQVcsRUFBRTtnQkFDZixJQUFJLElB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Q0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBM0ZELElBMkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQGF3cy1zZGsvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgYnVpbGRRdWVyeVN0cmluZyB9IGZyb20gXCJAYXdzLXNkay9xdWVyeXN0cmluZy1idWlsZGVyXCI7XG5pbXBvcnQgeyBIZWFkZXJCYWcsIEh0dHBIYW5kbGVyT3B0aW9ucyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyByZXF1ZXN0VGltZW91dCB9IGZyb20gXCIuL3JlcXVlc3QtdGltZW91dFwiO1xuXG5kZWNsYXJlIGxldCBBYm9ydENvbnRyb2xsZXI6IGFueTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBodHRwIG9wdGlvbnMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGEgYnJvd3NlciBodHRwIGNsaWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGZXRjaEh0dHBIYW5kbGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBhIHJlcXVlc3QgY2FuIHRha2UgYmVmb3JlIGJlaW5nIGF1dG9tYXRpY2FsbHlcbiAgICogdGVybWluYXRlZC5cbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgRmV0Y2hIdHRwSGFuZGxlciBpbXBsZW1lbnRzIEh0dHBIYW5kbGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0VGltZW91dD86IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IHJlcXVlc3RUaW1lb3V0IH06IEZldGNoSHR0cEhhbmRsZXJPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLnJlcXVlc3RUaW1lb3V0ID0gcmVxdWVzdFRpbWVvdXQ7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIERvIG5vdGhpbmcuIFRMUyBhbmQgSFRUUC8yIGNvbm5lY3Rpb24gcG9vbGluZyBpcyBoYW5kbGVkIGJ5IHRoZSBicm93c2VyLlxuICB9XG5cbiAgaGFuZGxlKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCB7IGFib3J0U2lnbmFsIH06IEh0dHBIYW5kbGVyT3B0aW9ucyA9IHt9KTogUHJvbWlzZTx7IHJlc3BvbnNlOiBIdHRwUmVzcG9uc2UgfT4ge1xuICAgIGNvbnN0IHJlcXVlc3RUaW1lb3V0SW5NcyA9IHRoaXMucmVxdWVzdFRpbWVvdXQ7XG5cbiAgICAvLyBpZiB0aGUgcmVxdWVzdCB3YXMgYWxyZWFkeSBhYm9ydGVkLCBwcmV2ZW50IGRvaW5nIGV4dHJhIHdvcmtcbiAgICBpZiAoYWJvcnRTaWduYWw/LmFib3J0ZWQpIHtcbiAgICAgIGNvbnN0IGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXCJSZXF1ZXN0IGFib3J0ZWRcIik7XG4gICAgICBhYm9ydEVycm9yLm5hbWUgPSBcIkFib3J0RXJyb3JcIjtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChhYm9ydEVycm9yKTtcbiAgICB9XG5cbiAgICBsZXQgcGF0aCA9IHJlcXVlc3QucGF0aDtcbiAgICBpZiAocmVxdWVzdC5xdWVyeSkge1xuICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBidWlsZFF1ZXJ5U3RyaW5nKHJlcXVlc3QucXVlcnkpO1xuICAgICAgaWYgKHF1ZXJ5U3RyaW5nKSB7XG4gICAgICAgIHBhdGggKz0gYD8ke3F1ZXJ5U3RyaW5nfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBwb3J0LCBtZXRob2QgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgdXJsID0gYCR7cmVxdWVzdC5wcm90b2NvbH0vLyR7cmVxdWVzdC5ob3N0bmFtZX0ke3BvcnQgPyBgOiR7cG9ydH1gIDogXCJcIn0ke3BhdGh9YDtcbiAgICAvLyBSZXF1ZXN0IGNvbnN0cnVjdG9yIGRvZXNuJ3QgYWxsb3cgR0VUL0hFQUQgcmVxdWVzdCB3aXRoIGJvZHlcbiAgICAvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvZmV0Y2gvaXNzdWVzLzU1MVxuICAgIGNvbnN0IGJvZHkgPSBtZXRob2QgPT09IFwiR0VUXCIgfHwgbWV0aG9kID09PSBcIkhFQURcIiA/IHVuZGVmaW5lZCA6IHJlcXVlc3QuYm9keTtcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9uczogUmVxdWVzdEluaXQgPSB7XG4gICAgICBib2R5LFxuICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgIH07XG5cbiAgICAvLyBzb21lIGJyb3dzZXJzIHN1cHBvcnQgYWJvcnQgc2lnbmFsXG4gICAgaWYgKHR5cGVvZiBBYm9ydENvbnRyb2xsZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIChyZXF1ZXN0T3B0aW9ucyBhcyBhbnkpW1wic2lnbmFsXCJdID0gYWJvcnRTaWduYWw7XG4gICAgfVxuXG4gICAgY29uc3QgZmV0Y2hSZXF1ZXN0ID0gbmV3IFJlcXVlc3QodXJsLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgY29uc3QgcmFjZU9mUHJvbWlzZXMgPSBbXG4gICAgICBmZXRjaChmZXRjaFJlcXVlc3QpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IGZldGNoSGVhZGVyczogYW55ID0gcmVzcG9uc2UuaGVhZGVycztcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRIZWFkZXJzOiBIZWFkZXJCYWcgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhaXIgb2YgPEFycmF5PHN0cmluZ1tdPj5mZXRjaEhlYWRlcnMuZW50cmllcygpKSB7XG4gICAgICAgICAgdHJhbnNmb3JtZWRIZWFkZXJzW3BhaXJbMF1dID0gcGFpclsxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhhc1JlYWRhYmxlU3RyZWFtID0gcmVzcG9uc2UuYm9keSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2Ugd2l0aCBidWZmZXJlZCBib2R5XG4gICAgICAgIGlmICghaGFzUmVhZGFibGVTdHJlYW0pIHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRoZW4oKGJvZHkpID0+ICh7XG4gICAgICAgICAgICByZXNwb25zZTogbmV3IEh0dHBSZXNwb25zZSh7XG4gICAgICAgICAgICAgIGhlYWRlcnM6IHRyYW5zZm9ybWVkSGVhZGVycyxcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2Ugd2l0aCBzdHJlYW1pbmcgYm9keVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc3BvbnNlOiBuZXcgSHR0cFJlc3BvbnNlKHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHRyYW5zZm9ybWVkSGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICAgIGJvZHk6IHJlc3BvbnNlLmJvZHksXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICAgIHJlcXVlc3RUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SW5NcyksXG4gICAgXTtcbiAgICBpZiAoYWJvcnRTaWduYWwpIHtcbiAgICAgIHJhY2VPZlByb21pc2VzLnB1c2goXG4gICAgICAgIG5ldyBQcm9taXNlPG5ldmVyPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgYWJvcnRTaWduYWwub25hYm9ydCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXCJSZXF1ZXN0IGFib3J0ZWRcIik7XG4gICAgICAgICAgICBhYm9ydEVycm9yLm5hbWUgPSBcIkFib3J0RXJyb3JcIjtcbiAgICAgICAgICAgIHJlamVjdChhYm9ydEVycm9yKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmFjZShyYWNlT2ZQcm9taXNlcyk7XG4gIH1cbn1cbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { fromBase64 } from \"@aws-sdk/util-base64-browser\";\n//reference: https://snack.expo.io/r1JCSWRGU\nexport var streamCollector = function (stream) {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nfunction collectBlob(blob) {\n return __awaiter(this, void 0, void 0, function () {\n var base64, arrayBuffer;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, readToBase64(blob)];\n case 1:\n base64 = _a.sent();\n arrayBuffer = fromBase64(base64);\n return [2 /*return*/, new Uint8Array(arrayBuffer)];\n }\n });\n });\n}\nfunction collectStream(stream) {\n return __awaiter(this, void 0, void 0, function () {\n var res, reader, isDone, _a, done, value, prior;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n res = new Uint8Array(0);\n reader = stream.getReader();\n isDone = false;\n _b.label = 1;\n case 1:\n if (!!isDone) return [3 /*break*/, 3];\n return [4 /*yield*/, reader.read()];\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (value) {\n prior = res;\n res = new Uint8Array(prior.length + value.length);\n res.set(prior);\n res.set(value, prior.length);\n }\n isDone = done;\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/, res];\n }\n });\n });\n}\nfunction readToBase64(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onloadend = function () {\n var _a;\n // reference: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL\n // response from readAsDataURL is always prepended with \"data:*/*;base64,\"\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n var result = ((_a = reader.result) !== null && _a !== void 0 ? _a : \"\");\n // Response can include only 'data:' for empty blob, return empty string in this case.\n // Otherwise, return the string after ','\n var commaIndex = result.indexOf(\",\");\n var dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = function () { return reject(new Error(\"Read aborted\")); };\n reader.onerror = function () { return reject(reader.error); };\n // reader.readAsArrayBuffer is not always available\n reader.readAsDataURL(blob);\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJlYW0tY29sbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFMUQsNENBQTRDO0FBQzVDLE1BQU0sQ0FBQyxJQUFNLGVBQWUsR0FBb0IsVUFBQyxNQUE2QjtJQUM1RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsSUFBSSxNQUFNLFlBQVksSUFBSSxFQUFFO1FBQ3hELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzVCO0lBRUQsT0FBTyxhQUFhLENBQUMsTUFBd0IsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQztBQUVGLFNBQWUsV0FBVyxDQUFDLElBQVU7Ozs7O3dCQUNwQixxQkFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUE7O29CQUFqQyxNQUFNLEdBQUcsU0FBd0I7b0JBQ2pDLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3ZDLHNCQUFPLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFDOzs7O0NBQ3BDO0FBRUQsU0FBZSxhQUFhLENBQUMsTUFBc0I7Ozs7OztvQkFDN0MsR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUM5QixNQUFNLEdBQUcsS0FBSyxDQUFDOzs7eUJBQ1osQ0FBQyxNQUFNO29CQUNZLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBQTs7b0JBQXJDLEtBQWtCLFNBQW1CLEVBQW5DLElBQUksVUFBQSxFQUFFLEtBQUssV0FBQTtvQkFDbkIsSUFBSSxLQUFLLEVBQUU7d0JBQ0gsS0FBSyxHQUFHLEdBQUcsQ0FBQzt3QkFDbEIsR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNsRCxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNmLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDOUI7b0JBQ0QsTUFBTSxHQUFHLElBQUksQ0FBQzs7d0JBRWhCLHNCQUFPLEdBQUcsRUFBQzs7OztDQUNaO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBVTtJQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07UUFDakMsSUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLENBQUMsU0FBUyxHQUFHOztZQUNqQix1RkFBdUY7WUFDdkYsMEVBQTBFO1lBQzFFLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQzthQUN0RDtZQUNELElBQU0sTUFBTSxHQUFHLE9BQUMsTUFBTSxDQUFDLE1BQU0sbUNBQUksRUFBRSxDQUFXLENBQUM7WUFDL0Msc0ZBQXNGO1lBQ3RGLHlDQUF5QztZQUN6QyxJQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQU0sVUFBVSxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNwRSxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFqQyxDQUFpQyxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxPQUFPLEdBQUcsY0FBTSxPQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQXBCLENBQW9CLENBQUM7UUFDNUMsbURBQW1EO1FBQ25ELE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RyZWFtQ29sbGVjdG9yIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBmcm9tQmFzZTY0IH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtYmFzZTY0LWJyb3dzZXJcIjtcblxuLy9yZWZlcmVuY2U6IGh0dHBzOi8vc25hY2suZXhwby5pby9yMUpDU1dSR1VcbmV4cG9ydCBjb25zdCBzdHJlYW1Db2xsZWN0b3I6IFN0cmVhbUNvbGxlY3RvciA9IChzdHJlYW06IEJsb2IgfCBSZWFkYWJsZVN0cmVhbSk6IFByb21pc2U8VWludDhBcnJheT4gPT4ge1xuICBpZiAodHlwZW9mIEJsb2IgPT09IFwiZnVuY3Rpb25cIiAmJiBzdHJlYW0gaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgcmV0dXJuIGNvbGxlY3RCbG9iKHN0cmVhbSk7XG4gIH1cblxuICByZXR1cm4gY29sbGVjdFN0cmVhbShzdHJlYW0gYXMgUmVhZGFibGVTdHJlYW0pO1xufTtcblxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdEJsb2IoYmxvYjogQmxvYik6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBiYXNlNjQgPSBhd2FpdCByZWFkVG9CYXNlNjQoYmxvYik7XG4gIGNvbnN0IGFycmF5QnVmZmVyID0gZnJvbUJhc2U2NChiYXNlNjQpO1xuICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjb2xsZWN0U3RyZWFtKHN0cmVhbTogUmVhZGFibGVTdHJlYW0pOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgbGV0IHJlcyA9IG5ldyBVaW50OEFycmF5KDApO1xuICBjb25zdCByZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKCk7XG4gIGxldCBpc0RvbmUgPSBmYWxzZTtcbiAgd2hpbGUgKCFpc0RvbmUpIHtcbiAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgcHJpb3IgPSByZXM7XG4gICAgICByZXMgPSBuZXcgVWludDhBcnJheShwcmlvci5sZW5ndGggKyB2YWx1ZS5sZW5ndGgpO1xuICAgICAgcmVzLnNldChwcmlvcik7XG4gICAgICByZXMuc2V0KHZhbHVlLCBwcmlvci5sZW5ndGgpO1xuICAgIH1cbiAgICBpc0RvbmUgPSBkb25lO1xuICB9XG4gIHJldHVybiByZXM7XG59XG5cbmZ1bmN0aW9uIHJlYWRUb0Jhc2U2NChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG4gICAgICAvLyByZWZlcmVuY2U6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9GaWxlUmVhZGVyL3JlYWRBc0RhdGFVUkxcbiAgICAgIC8vIHJlc3BvbnNlIGZyb20gcmVhZEFzRGF0YVVSTCBpcyBhbHdheXMgcHJlcGVuZGVkIHdpdGggXCJkYXRhOiovKjtiYXNlNjQsXCJcbiAgICAgIGlmIChyZWFkZXIucmVhZHlTdGF0ZSAhPT0gMikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcihcIlJlYWRlciBhYm9ydGVkIHRvbyBlYXJseVwiKSk7XG4gICAgICB9XG4gICAgICBjb25zdCByZXN1bHQgPSAocmVhZGVyLnJlc3VsdCA/PyBcIlwiKSBhcyBzdHJpbmc7XG4gICAgICAvLyBSZXNwb25zZSBjYW4gaW5jbHVkZSBvbmx5ICdkYXRhOicgZm9yIGVtcHR5IGJsb2IsIHJldHVybiBlbXB0eSBzdHJpbmcgaW4gdGhpcyBjYXNlLlxuICAgICAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHN0cmluZyBhZnRlciAnLCdcbiAgICAgIGNvbnN0IGNvbW1hSW5kZXggPSByZXN1bHQuaW5kZXhPZihcIixcIik7XG4gICAgICBjb25zdCBkYXRhT2Zmc2V0ID0gY29tbWFJbmRleCA+IC0xID8gY29tbWFJbmRleCArIDEgOiByZXN1bHQubGVuZ3RoO1xuICAgICAgcmVzb2x2ZShyZXN1bHQuc3Vic3RyaW5nKGRhdGFPZmZzZXQpKTtcbiAgICB9O1xuICAgIHJlYWRlci5vbmFib3J0ID0gKCkgPT4gcmVqZWN0KG5ldyBFcnJvcihcIlJlYWQgYWJvcnRlZFwiKSk7XG4gICAgcmVhZGVyLm9uZXJyb3IgPSAoKSA9PiByZWplY3QocmVhZGVyLmVycm9yKTtcbiAgICAvLyByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIgaXMgbm90IGFsd2F5cyBhdmFpbGFibGVcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcbiAgfSk7XG59XG4iXX0=","export var invalidProvider = function (message) { return function () { return Promise.reject(message); }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZFByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ludmFsaWRQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQUMsSUFBTSxlQUFlLEdBQXVDLFVBQUMsT0FBZSxJQUFLLE9BQUEsY0FBTSxPQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQXZCLENBQXVCLEVBQTdCLENBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuZXhwb3J0IGNvbnN0IGludmFsaWRQcm92aWRlcjogKG1lc3NhZ2U6IHN0cmluZykgPT4gUHJvdmlkZXI8YW55PiA9IChtZXNzYWdlOiBzdHJpbmcpID0+ICgpID0+IFByb21pc2UucmVqZWN0KG1lc3NhZ2UpO1xuIl19","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n var _this = this;\n return function (next) { return function (args) { return __awaiter(_this, void 0, void 0, function () {\n var request, body, headers, length;\n var _a;\n return __generator(this, function (_b) {\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n body = request.body, headers = request.headers;\n if (body &&\n Object.keys(headers)\n .map(function (str) { return str.toLowerCase(); })\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n length = bodyLengthChecker(body);\n if (length !== undefined) {\n request.headers = __assign(__assign({}, request.headers), (_a = {}, _a[CONTENT_LENGTH_HEADER] = String(length), _a));\n }\n }\n }\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n });\n }); }; };\n}\nexport var contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nexport var getContentLengthPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVlyRCxJQUFNLHFCQUFxQixHQUFHLGdCQUFnQixDQUFDO0FBRS9DLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxpQkFBdUM7SUFBL0UsaUJBNEJDO0lBM0JDLE9BQU8sVUFBZ0MsSUFBK0IsSUFBZ0MsT0FBQSxVQUNwRyxJQUFnQzs7OztZQUUxQixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUM3QixJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzNCLElBQUksR0FBYyxPQUFPLEtBQXJCLEVBQUUsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFhO2dCQUNsQyxJQUNFLElBQUk7b0JBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7eUJBQ2pCLEdBQUcsQ0FBQyxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBakIsQ0FBaUIsQ0FBQzt5QkFDL0IsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3hDO29CQUNNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO3dCQUN4QixPQUFPLENBQUMsT0FBTyx5QkFDVixPQUFPLENBQUMsT0FBTyxnQkFDakIscUJBQXFCLElBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUN4QyxDQUFDO3FCQUNIO2lCQUNGO2FBQ0Y7WUFFRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOztTQUNKLEVBMUJxRyxDQTBCckcsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsSUFBTSw4QkFBOEIsR0FBd0I7SUFDakUsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUM5QyxJQUFJLEVBQUUseUJBQXlCO0lBQy9CLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHLFVBQUMsT0FBb0QsSUFBMEIsT0FBQSxDQUFDO0lBQ3BILFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRixDQUFDLEVBSm1ILENBSW5ILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBCb2R5TGVuZ3RoQ2FsY3VsYXRvcixcbiAgQnVpbGRIYW5kbGVyLFxuICBCdWlsZEhhbmRsZXJBcmd1bWVudHMsXG4gIEJ1aWxkSGFuZGxlck9wdGlvbnMsXG4gIEJ1aWxkSGFuZGxlck91dHB1dCxcbiAgQnVpbGRNaWRkbGV3YXJlLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuY29uc3QgQ09OVEVOVF9MRU5HVEhfSEVBREVSID0gXCJjb250ZW50LWxlbmd0aFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudExlbmd0aE1pZGRsZXdhcmUoYm9keUxlbmd0aENoZWNrZXI6IEJvZHlMZW5ndGhDYWxjdWxhdG9yKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4pOiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgICBhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55PlxuICApOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgY29uc3QgeyBib2R5LCBoZWFkZXJzIH0gPSByZXF1ZXN0O1xuICAgICAgaWYgKFxuICAgICAgICBib2R5ICYmXG4gICAgICAgIE9iamVjdC5rZXlzKGhlYWRlcnMpXG4gICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAuaW5kZXhPZihDT05URU5UX0xFTkdUSF9IRUFERVIpID09PSAtMVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGJvZHlMZW5ndGhDaGVja2VyKGJvZHkpO1xuICAgICAgICBpZiAobGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgICAgICAuLi5yZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgICAgICBbQ09OVEVOVF9MRU5HVEhfSEVBREVSXTogU3RyaW5nKGxlbmd0aCksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHtcbiAgICAgIC4uLmFyZ3MsXG4gICAgICByZXF1ZXN0LFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgY29udGVudExlbmd0aE1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHRhZ3M6IFtcIlNFVF9DT05URU5UX0xFTkdUSFwiLCBcIkNPTlRFTlRfTEVOR1RIXCJdLFxuICBuYW1lOiBcImNvbnRlbnRMZW5ndGhNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnRlbnRMZW5ndGhQbHVnaW4gPSAob3B0aW9uczogeyBib2R5TGVuZ3RoQ2hlY2tlcjogQm9keUxlbmd0aENhbGN1bGF0b3IgfSk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQoY29udGVudExlbmd0aE1pZGRsZXdhcmUob3B0aW9ucy5ib2R5TGVuZ3RoQ2hlY2tlciksIGNvbnRlbnRMZW5ndGhNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport var hostHeaderMiddleware = function (options) { return function (next) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, _a, handlerProtocol;\n return __generator(this, function (_b) {\n if (!HttpRequest.isInstance(args.request))\n return [2 /*return*/, next(args)];\n request = args.request;\n _a = (options.requestHandler.metadata || {}).handlerProtocol, handlerProtocol = _a === void 0 ? \"\" : _a;\n //For H2 request, remove 'host' header and use ':authority' header instead\n //reference: https://nodejs.org/dist/latest-v13.x/docs/api/errors.html#ERR_HTTP2_INVALID_CONNECTION_HEADERS\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = \"\";\n //non-H2 request and 'host' header is not set, set the 'host' header to request's hostname.\n }\n else if (!request.headers[\"host\"]) {\n request.headers[\"host\"] = request.hostname;\n }\n return [2 /*return*/, next(args)];\n });\n}); }; }; };\nexport var hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport var getHostHeaderPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVVyRCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLEtBQXFEO0lBRXJELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLFVBQ2xDLE9BQWlDLElBQ0UsT0FBQSxVQUFDLElBQUksSUFBSyxPQUFBLFVBQU8sSUFBSTs7O1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxzQkFBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUM7UUFDckQsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO1FBQ2pCLEtBQXlCLENBQUEsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFBLGdCQUExQyxFQUFwQixlQUFlLG1CQUFHLEVBQUUsS0FBQSxDQUEyQztRQUN2RSwwRUFBMEU7UUFDMUUsMkdBQTJHO1FBQzNHLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3hFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNuQywyRkFBMkY7U0FDNUY7YUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDNUM7UUFDRCxzQkFBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUM7O0tBQ25CLEVBZDhDLENBYzlDLEVBZG9DLENBY3BDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSwyQkFBMkIsR0FBMkM7SUFDakYsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QixJQUFJLEVBQUUsT0FBTztJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQ2QsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxPQUFpQyxJQUEwQixPQUFBLENBQUM7SUFDOUYsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGLENBQUMsRUFKNkYsQ0FJN0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IEFic29sdXRlTG9jYXRpb24sIEJ1aWxkSGFuZGxlck9wdGlvbnMsIEJ1aWxkTWlkZGxld2FyZSwgUGx1Z2dhYmxlLCBSZXF1ZXN0SGFuZGxlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJJbnB1dENvbmZpZyB7fVxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxhbnksIGFueT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZyB7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxhbnksIGFueT47XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgSG9zdEhlYWRlcklucHV0Q29uZmlnXG4pOiBUICYgSG9zdEhlYWRlclJlc29sdmVkQ29uZmlnIHtcbiAgcmV0dXJuIGlucHV0O1xufVxuXG5leHBvcnQgY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmUgPSA8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCBleHRlbmRzIG9iamVjdD4oXG4gIG9wdGlvbnM6IEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZ1xuKTogQnVpbGRNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+ID0+IChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoYXJncy5yZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgY29uc3QgeyBoYW5kbGVyUHJvdG9jb2wgPSBcIlwiIH0gPSBvcHRpb25zLnJlcXVlc3RIYW5kbGVyLm1ldGFkYXRhIHx8IHt9O1xuICAvL0ZvciBIMiByZXF1ZXN0LCByZW1vdmUgJ2hvc3QnIGhlYWRlciBhbmQgdXNlICc6YXV0aG9yaXR5JyBoZWFkZXIgaW5zdGVhZFxuICAvL3JlZmVyZW5jZTogaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvbGF0ZXN0LXYxMy54L2RvY3MvYXBpL2Vycm9ycy5odG1sI0VSUl9IVFRQMl9JTlZBTElEX0NPTk5FQ1RJT05fSEVBREVSU1xuICBpZiAoaGFuZGxlclByb3RvY29sLmluZGV4T2YoXCJoMlwiKSA+PSAwICYmICFyZXF1ZXN0LmhlYWRlcnNbXCI6YXV0aG9yaXR5XCJdKSB7XG4gICAgZGVsZXRlIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl07XG4gICAgcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSA9IFwiXCI7XG4gICAgLy9ub24tSDIgcmVxdWVzdCBhbmQgJ2hvc3QnIGhlYWRlciBpcyBub3Qgc2V0LCBzZXQgdGhlICdob3N0JyBoZWFkZXIgdG8gcmVxdWVzdCdzIGhvc3RuYW1lLlxuICB9IGVsc2UgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXSA9IHJlcXVlc3QuaG9zdG5hbWU7XG4gIH1cbiAgcmV0dXJuIG5leHQoYXJncyk7XG59O1xuXG5leHBvcnQgY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHByaW9yaXR5OiBcImxvd1wiLFxuICB0YWdzOiBbXCJIT1NUXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIb3N0SGVhZGVyUGx1Z2luID0gKG9wdGlvbnM6IEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQoaG9zdEhlYWRlck1pZGRsZXdhcmUob3B0aW9ucyksIGhvc3RIZWFkZXJNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","import { __awaiter, __generator, __rest } from \"tslib\";\nexport var loggerMiddleware = function () { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var clientName, commandName, inputFilterSensitiveLog, logger, outputFilterSensitiveLog, response, _a, $metadata, outputWithoutMetadata;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n clientName = context.clientName, commandName = context.commandName, inputFilterSensitiveLog = context.inputFilterSensitiveLog, logger = context.logger, outputFilterSensitiveLog = context.outputFilterSensitiveLog;\n return [4 /*yield*/, next(args)];\n case 1:\n response = _b.sent();\n if (!logger) {\n return [2 /*return*/, response];\n }\n if (typeof logger.info === \"function\") {\n _a = response.output, $metadata = _a.$metadata, outputWithoutMetadata = __rest(_a, [\"$metadata\"]);\n logger.info({\n clientName: clientName,\n commandName: commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n }\n return [2 /*return*/, response];\n }\n });\n}); }; }; };\nexport var loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport var getLoggerPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2dnZXJNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFZQSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxjQUFNLE9BQUEsVUFDcEMsSUFBb0MsRUFDcEMsT0FBZ0MsSUFDRyxPQUFBLFVBQ25DLElBQXFDOzs7OztnQkFFN0IsVUFBVSxHQUE2RSxPQUFPLFdBQXBGLEVBQUUsV0FBVyxHQUFnRSxPQUFPLFlBQXZFLEVBQUUsdUJBQXVCLEdBQXVDLE9BQU8sd0JBQTlDLEVBQUUsTUFBTSxHQUErQixPQUFPLE9BQXRDLEVBQUUsd0JBQXdCLEdBQUssT0FBTyx5QkFBWixDQUFhO2dCQUV0RixxQkFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUE7O2dCQUEzQixRQUFRLEdBQUcsU0FBZ0I7Z0JBRWpDLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ1gsc0JBQU8sUUFBUSxFQUFDO2lCQUNqQjtnQkFFRCxJQUFJLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUU7b0JBQy9CLEtBQTBDLFFBQVEsQ0FBQyxNQUFNLEVBQXZELFNBQVMsZUFBQSxFQUFLLHFCQUFxQixjQUFyQyxhQUF1QyxDQUFGLENBQXFCO29CQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNWLFVBQVUsWUFBQTt3QkFDVixXQUFXLGFBQUE7d0JBQ1gsS0FBSyxFQUFFLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7d0JBQzFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQzt3QkFDdkQsUUFBUSxFQUFFLFNBQVM7cUJBQ3BCLENBQUMsQ0FBQztpQkFDSjtnQkFFRCxzQkFBTyxRQUFRLEVBQUM7OztLQUNqQixFQXZCb0MsQ0F1QnBDLEVBMUJxQyxDQTBCckMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLHVCQUF1QixHQUFnRDtJQUNsRixJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUNoQixJQUFJLEVBQUUsWUFBWTtJQUNsQixRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRiw2REFBNkQ7QUFDN0QsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFVBQUMsT0FBWSxJQUEwQixPQUFBLENBQUM7SUFDckUsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0YsQ0FBQyxFQUpvRSxDQUlwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEFic29sdXRlTG9jYXRpb24sXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBJbml0aWFsaXplSGFuZGxlcixcbiAgSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgbG9nZ2VyTWlkZGxld2FyZSA9ICgpID0+IDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciA9IE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+LFxuICBjb250ZXh0OiBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dFxuKTogSW5pdGlhbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgYXJnczogSW5pdGlhbGl6ZUhhbmRsZXJBcmd1bWVudHM8YW55PlxuKTogUHJvbWlzZTxJbml0aWFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gIGNvbnN0IHsgY2xpZW50TmFtZSwgY29tbWFuZE5hbWUsIGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nLCBsb2dnZXIsIG91dHB1dEZpbHRlclNlbnNpdGl2ZUxvZyB9ID0gY29udGV4dDtcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG5leHQoYXJncyk7XG5cbiAgaWYgKCFsb2dnZXIpIHtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIGxvZ2dlci5pbmZvID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBjb25zdCB7ICRtZXRhZGF0YSwgLi4ub3V0cHV0V2l0aG91dE1ldGFkYXRhIH0gPSByZXNwb25zZS5vdXRwdXQ7XG4gICAgbG9nZ2VyLmluZm8oe1xuICAgICAgY2xpZW50TmFtZSxcbiAgICAgIGNvbW1hbmROYW1lLFxuICAgICAgaW5wdXQ6IGlucHV0RmlsdGVyU2Vuc2l0aXZlTG9nKGFyZ3MuaW5wdXQpLFxuICAgICAgb3V0cHV0OiBvdXRwdXRGaWx0ZXJTZW5zaXRpdmVMb2cob3V0cHV0V2l0aG91dE1ldGFkYXRhKSxcbiAgICAgIG1ldGFkYXRhOiAkbWV0YWRhdGEsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2U7XG59O1xuXG5leHBvcnQgY29uc3QgbG9nZ2VyTWlkZGxld2FyZU9wdGlvbnM6IEluaXRpYWxpemVIYW5kbGVyT3B0aW9ucyAmIEFic29sdXRlTG9jYXRpb24gPSB7XG4gIG5hbWU6IFwibG9nZ2VyTWlkZGxld2FyZVwiLFxuICB0YWdzOiBbXCJMT0dHRVJcIl0sXG4gIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmV4cG9ydCBjb25zdCBnZXRMb2dnZXJQbHVnaW4gPSAob3B0aW9uczogYW55KTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChsb2dnZXJNaWRkbGV3YXJlKCksIGxvZ2dlck1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","import { __awaiter, __generator, __read, __spread } from \"tslib\";\nexport var retryMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n if ((_a = options === null || options === void 0 ? void 0 : options.retryStrategy) === null || _a === void 0 ? void 0 : _a.mode)\n context.userAgent = __spread((context.userAgent || []), [[\"cfg/retry-mode\", options.retryStrategy.mode]]);\n return [2 /*return*/, options.retryStrategy.retry(next, args)];\n });\n}); }; }; };\nexport var retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nexport var getRetryPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JldHJ5TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBYUEsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLFVBQUMsT0FBNEIsSUFBSyxPQUFBLFVBQy9ELElBQWtDLEVBQ2xDLE9BQWdDLElBQ0MsT0FBQSxVQUNqQyxJQUFtQzs7O1FBRW5DLFVBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGFBQWEsMENBQUUsSUFBSTtZQUM5QixPQUFPLENBQUMsU0FBUyxZQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsR0FBRSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQztRQUNyRyxzQkFBTyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUM7O0tBQ2hELEVBTmtDLENBTWxDLEVBVGdFLENBU2hFLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBcUQ7SUFDdEYsSUFBSSxFQUFFLGlCQUFpQjtJQUN2QixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUM7SUFDZixJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxVQUFDLE9BQTRCLElBQTBCLE9BQUEsQ0FBQztJQUNwRixZQUFZLEVBQUUsVUFBQyxXQUFXO1FBQ3hCLFdBQVcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLHNCQUFzQixDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGLENBQUMsRUFKbUYsQ0FJbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic29sdXRlTG9jYXRpb24sXG4gIEZpbmFsaXplSGFuZGxlcixcbiAgRmluYWxpemVIYW5kbGVyQXJndW1lbnRzLFxuICBGaW5hbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IFJldHJ5UmVzb2x2ZWRDb25maWcgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuXG5leHBvcnQgY29uc3QgcmV0cnlNaWRkbGV3YXJlID0gKG9wdGlvbnM6IFJldHJ5UmVzb2x2ZWRDb25maWcpID0+IDxPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlciA9IE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogRmluYWxpemVIYW5kbGVyPGFueSwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IEZpbmFsaXplSGFuZGxlcjxhbnksIE91dHB1dD4gPT4gYXN5bmMgKFxuICBhcmdzOiBGaW5hbGl6ZUhhbmRsZXJBcmd1bWVudHM8YW55PlxuKTogUHJvbWlzZTxGaW5hbGl6ZUhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICBpZiAob3B0aW9ucz8ucmV0cnlTdHJhdGVneT8ubW9kZSlcbiAgICBjb250ZXh0LnVzZXJBZ2VudCA9IFsuLi4oY29udGV4dC51c2VyQWdlbnQgfHwgW10pLCBbXCJjZmcvcmV0cnktbW9kZVwiLCBvcHRpb25zLnJldHJ5U3RyYXRlZ3kubW9kZV1dO1xuICByZXR1cm4gb3B0aW9ucy5yZXRyeVN0cmF0ZWd5LnJldHJ5KG5leHQsIGFyZ3MpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJldHJ5TWlkZGxld2FyZU9wdGlvbnM6IEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJyZXRyeU1pZGRsZXdhcmVcIixcbiAgdGFnczogW1wiUkVUUllcIl0sXG4gIHN0ZXA6IFwiZmluYWxpemVSZXF1ZXN0XCIsXG4gIHByaW9yaXR5OiBcImhpZ2hcIixcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmV0cnlQbHVnaW4gPSAob3B0aW9uczogUmV0cnlSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQocmV0cnlNaWRkbGV3YXJlKG9wdGlvbnMpLCByZXRyeU1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19","/**\n * Errors encountered when the client clock and server clock cannot agree on the\n * current time.\n *\n * These errors are retryable, assuming the SDK has enabled clock skew\n * correction.\n */\nexport var CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\n/**\n * Errors that indicate the SDK is being throttled.\n *\n * These errors are always retryable.\n */\nexport var THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\n/**\n * Error codes that indicate transient issues\n */\nexport var TRANSIENT_ERROR_CODES = [\"AbortError\", \"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\n/**\n * Error codes that indicate transient issues\n */\nexport var TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRztJQUNwQyxhQUFhO0lBQ2IsMkJBQTJCO0lBQzNCLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLHVCQUF1QjtDQUN4QixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUFHO0lBQ3BDLHdCQUF3QjtJQUN4Qix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6Qix3Q0FBd0M7SUFDeEMsc0JBQXNCO0lBQ3RCLGtCQUFrQjtJQUNsQiwyQkFBMkI7SUFDM0IsVUFBVTtJQUNWLG9CQUFvQjtJQUNwQixZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLDBCQUEwQjtJQUMxQixnQ0FBZ0M7Q0FDakMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0scUJBQXFCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLENBQUM7QUFFakg7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSw0QkFBNEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFcnJvcnMgZW5jb3VudGVyZWQgd2hlbiB0aGUgY2xpZW50IGNsb2NrIGFuZCBzZXJ2ZXIgY2xvY2sgY2Fubm90IGFncmVlIG9uIHRoZVxuICogY3VycmVudCB0aW1lLlxuICpcbiAqIFRoZXNlIGVycm9ycyBhcmUgcmV0cnlhYmxlLCBhc3N1bWluZyB0aGUgU0RLIGhhcyBlbmFibGVkIGNsb2NrIHNrZXdcbiAqIGNvcnJlY3Rpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBDTE9DS19TS0VXX0VSUk9SX0NPREVTID0gW1xuICBcIkF1dGhGYWlsdXJlXCIsXG4gIFwiSW52YWxpZFNpZ25hdHVyZUV4Y2VwdGlvblwiLFxuICBcIlJlcXVlc3RFeHBpcmVkXCIsXG4gIFwiUmVxdWVzdEluVGhlRnV0dXJlXCIsXG4gIFwiUmVxdWVzdFRpbWVUb29Ta2V3ZWRcIixcbiAgXCJTaWduYXR1cmVEb2VzTm90TWF0Y2hcIixcbl07XG5cbi8qKlxuICogRXJyb3JzIHRoYXQgaW5kaWNhdGUgdGhlIFNESyBpcyBiZWluZyB0aHJvdHRsZWQuXG4gKlxuICogVGhlc2UgZXJyb3JzIGFyZSBhbHdheXMgcmV0cnlhYmxlLlxuICovXG5leHBvcnQgY29uc3QgVEhST1RUTElOR19FUlJPUl9DT0RFUyA9IFtcbiAgXCJCYW5kd2lkdGhMaW1pdEV4Y2VlZGVkXCIsXG4gIFwiRUMyVGhyb3R0bGVkRXhjZXB0aW9uXCIsXG4gIFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiLFxuICBcIlByaW9yUmVxdWVzdE5vdENvbXBsZXRlXCIsXG4gIFwiUHJvdmlzaW9uZWRUaHJvdWdocHV0RXhjZWVkZWRFeGNlcHRpb25cIixcbiAgXCJSZXF1ZXN0TGltaXRFeGNlZWRlZFwiLFxuICBcIlJlcXVlc3RUaHJvdHRsZWRcIixcbiAgXCJSZXF1ZXN0VGhyb3R0bGVkRXhjZXB0aW9uXCIsXG4gIFwiU2xvd0Rvd25cIixcbiAgXCJUaHJvdHRsZWRFeGNlcHRpb25cIixcbiAgXCJUaHJvdHRsaW5nXCIsXG4gIFwiVGhyb3R0bGluZ0V4Y2VwdGlvblwiLFxuICBcIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvblwiLFxuICBcIlRyYW5zYWN0aW9uSW5Qcm9ncmVzc0V4Y2VwdGlvblwiLCAvLyBEeW5hbW9EQlxuXTtcblxuLyoqXG4gKiBFcnJvciBjb2RlcyB0aGF0IGluZGljYXRlIHRyYW5zaWVudCBpc3N1ZXNcbiAqL1xuZXhwb3J0IGNvbnN0IFRSQU5TSUVOVF9FUlJPUl9DT0RFUyA9IFtcIkFib3J0RXJyb3JcIiwgXCJUaW1lb3V0RXJyb3JcIiwgXCJSZXF1ZXN0VGltZW91dFwiLCBcIlJlcXVlc3RUaW1lb3V0RXhjZXB0aW9uXCJdO1xuXG4vKipcbiAqIEVycm9yIGNvZGVzIHRoYXQgaW5kaWNhdGUgdHJhbnNpZW50IGlzc3Vlc1xuICovXG5leHBvcnQgY29uc3QgVFJBTlNJRU5UX0VSUk9SX1NUQVRVU19DT0RFUyA9IFs1MDAsIDUwMiwgNTAzLCA1MDRdO1xuIl19","import { CLOCK_SKEW_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport var isRetryableByTrait = function (error) { return error.$retryable !== undefined; };\nexport var isClockSkewError = function (error) { return CLOCK_SKEW_ERROR_CODES.includes(error.name); };\nexport var isThrottlingError = function (error) {\n var _a, _b;\n return ((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n ((_b = error.$retryable) === null || _b === void 0 ? void 0 : _b.throttling) == true;\n};\nexport var isTransientError = function (error) {\n var _a;\n return TRANSIENT_ERROR_CODES.includes(error.name) ||\n TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) || 0);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLDRCQUE0QixHQUM3QixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLEtBQWUsSUFBSyxPQUFBLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUE5QixDQUE4QixDQUFDO0FBRXRGLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLFVBQUMsS0FBZSxJQUFLLE9BQUEsc0JBQXNCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBM0MsQ0FBMkMsQ0FBQztBQUVqRyxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLEtBQWU7O0lBQy9DLE9BQUEsT0FBQSxLQUFLLENBQUMsU0FBUywwQ0FBRSxjQUFjLE1BQUssR0FBRztRQUN2QyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMzQyxPQUFBLEtBQUssQ0FBQyxVQUFVLDBDQUFFLFVBQVUsS0FBSSxJQUFJLENBQUE7Q0FBQSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLFVBQUMsS0FBZTs7SUFDOUMsT0FBQSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsT0FBQSxLQUFLLENBQUMsU0FBUywwQ0FBRSxjQUFjLEtBQUksQ0FBQyxDQUFDLENBQUE7Q0FBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2RrRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvc21pdGh5LWNsaWVudFwiO1xuXG5pbXBvcnQge1xuICBDTE9DS19TS0VXX0VSUk9SX0NPREVTLFxuICBUSFJPVFRMSU5HX0VSUk9SX0NPREVTLFxuICBUUkFOU0lFTlRfRVJST1JfQ09ERVMsXG4gIFRSQU5TSUVOVF9FUlJPUl9TVEFUVVNfQ09ERVMsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgY29uc3QgaXNSZXRyeWFibGVCeVRyYWl0ID0gKGVycm9yOiBTZGtFcnJvcikgPT4gZXJyb3IuJHJldHJ5YWJsZSAhPT0gdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3QgaXNDbG9ja1NrZXdFcnJvciA9IChlcnJvcjogU2RrRXJyb3IpID0+IENMT0NLX1NLRVdfRVJST1JfQ09ERVMuaW5jbHVkZXMoZXJyb3IubmFtZSk7XG5cbmV4cG9ydCBjb25zdCBpc1Rocm90dGxpbmdFcnJvciA9IChlcnJvcjogU2RrRXJyb3IpID0+XG4gIGVycm9yLiRtZXRhZGF0YT8uaHR0cFN0YXR1c0NvZGUgPT09IDQyOSB8fFxuICBUSFJPVFRMSU5HX0VSUk9SX0NPREVTLmluY2x1ZGVzKGVycm9yLm5hbWUpIHx8XG4gIGVycm9yLiRyZXRyeWFibGU/LnRocm90dGxpbmcgPT0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGlzVHJhbnNpZW50RXJyb3IgPSAoZXJyb3I6IFNka0Vycm9yKSA9PlxuICBUUkFOU0lFTlRfRVJST1JfQ09ERVMuaW5jbHVkZXMoZXJyb3IubmFtZSkgfHxcbiAgVFJBTlNJRU5UX0VSUk9SX1NUQVRVU19DT0RFUy5pbmNsdWRlcyhlcnJvci4kbWV0YWRhdGE/Lmh0dHBTdGF0dXNDb2RlIHx8IDApO1xuIl19","/**\n * The base number of milliseconds to use in calculating a suitable cool-down\n * time when a retryable error is encountered.\n */\nexport var DEFAULT_RETRY_DELAY_BASE = 100;\n/**\n * The maximum amount of time (in milliseconds) that will be used as a delay\n * between retry attempts.\n */\nexport var MAXIMUM_RETRY_DELAY = 20 * 1000;\n/**\n * The retry delay base (in milliseconds) to use when a throttling error is\n * encountered.\n */\nexport var THROTTLING_RETRY_DELAY_BASE = 500;\n/**\n * Initial number of retry tokens in Retry Quota\n */\nexport var INITIAL_RETRY_TOKENS = 500;\n/**\n * The total amount of retry tokens to be decremented from retry token balance.\n */\nexport var RETRY_COST = 5;\n/**\n * The total amount of retry tokens to be decremented from retry token balance\n * when a throttling error is encountered.\n */\nexport var TIMEOUT_RETRY_COST = 10;\n/**\n * The total amount of retry token to be incremented from retry token balance\n * if an SDK operation invocation succeeds without requiring a retry request.\n */\nexport var NO_RETRY_INCREMENT = 1;\n/**\n * Header name for SDK invocation ID\n */\nexport var INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\n/**\n * Header name for request retry information.\n */\nexport var REQUEST_HEADER = \"amz-sdk-request\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFNUM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUU3Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSwyQkFBMkIsR0FBRyxHQUFHLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUM7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBRTVCOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztBQUVyQzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FBQztBQUU1RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGJhc2UgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB1c2UgaW4gY2FsY3VsYXRpbmcgYSBzdWl0YWJsZSBjb29sLWRvd25cbiAqIHRpbWUgd2hlbiBhIHJldHJ5YWJsZSBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVUUllfREVMQVlfQkFTRSA9IDEwMDtcblxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZSAoaW4gbWlsbGlzZWNvbmRzKSB0aGF0IHdpbGwgYmUgdXNlZCBhcyBhIGRlbGF5XG4gKiBiZXR3ZWVuIHJldHJ5IGF0dGVtcHRzLlxuICovXG5leHBvcnQgY29uc3QgTUFYSU1VTV9SRVRSWV9ERUxBWSA9IDIwICogMTAwMDtcblxuLyoqXG4gKiBUaGUgcmV0cnkgZGVsYXkgYmFzZSAoaW4gbWlsbGlzZWNvbmRzKSB0byB1c2Ugd2hlbiBhIHRocm90dGxpbmcgZXJyb3IgaXNcbiAqIGVuY291bnRlcmVkLlxuICovXG5leHBvcnQgY29uc3QgVEhST1RUTElOR19SRVRSWV9ERUxBWV9CQVNFID0gNTAwO1xuXG4vKipcbiAqIEluaXRpYWwgbnVtYmVyIG9mIHJldHJ5IHRva2VucyBpbiBSZXRyeSBRdW90YVxuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9SRVRSWV9UT0tFTlMgPSA1MDA7XG5cbi8qKlxuICogVGhlIHRvdGFsIGFtb3VudCBvZiByZXRyeSB0b2tlbnMgdG8gYmUgZGVjcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlLlxuICovXG5leHBvcnQgY29uc3QgUkVUUllfQ09TVCA9IDU7XG5cbi8qKlxuICogVGhlIHRvdGFsIGFtb3VudCBvZiByZXRyeSB0b2tlbnMgdG8gYmUgZGVjcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlXG4gKiB3aGVuIGEgdGhyb3R0bGluZyBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFRJTUVPVVRfUkVUUllfQ09TVCA9IDEwO1xuXG4vKipcbiAqIFRoZSB0b3RhbCBhbW91bnQgb2YgcmV0cnkgdG9rZW4gdG8gYmUgaW5jcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlXG4gKiBpZiBhbiBTREsgb3BlcmF0aW9uIGludm9jYXRpb24gc3VjY2VlZHMgd2l0aG91dCByZXF1aXJpbmcgYSByZXRyeSByZXF1ZXN0LlxuICovXG5leHBvcnQgY29uc3QgTk9fUkVUUllfSU5DUkVNRU5UID0gMTtcblxuLyoqXG4gKiBIZWFkZXIgbmFtZSBmb3IgU0RLIGludm9jYXRpb24gSURcbiAqL1xuZXhwb3J0IGNvbnN0IElOVk9DQVRJT05fSURfSEVBREVSID0gXCJhbXotc2RrLWludm9jYXRpb24taWRcIjtcblxuLyoqXG4gKiBIZWFkZXIgbmFtZSBmb3IgcmVxdWVzdCByZXRyeSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFUVVFU1RfSEVBREVSID0gXCJhbXotc2RrLXJlcXVlc3RcIjtcbiJdfQ==","import { NO_RETRY_INCREMENT, RETRY_COST, TIMEOUT_RETRY_COST } from \"./constants\";\nexport var getDefaultRetryQuota = function (initialRetryTokens) {\n var MAX_CAPACITY = initialRetryTokens;\n var availableCapacity = initialRetryTokens;\n var getCapacityAmount = function (error) { return (error.name === \"TimeoutError\" ? TIMEOUT_RETRY_COST : RETRY_COST); };\n var hasRetryTokens = function (error) { return getCapacityAmount(error) <= availableCapacity; };\n var retrieveRetryTokens = function (error) {\n if (!hasRetryTokens(error)) {\n // retryStrategy should stop retrying, and return last error\n throw new Error(\"No retry token available\");\n }\n var capacityAmount = getCapacityAmount(error);\n availableCapacity -= capacityAmount;\n return capacityAmount;\n };\n var releaseRetryTokens = function (capacityReleaseAmount) {\n availableCapacity += capacityReleaseAmount !== null && capacityReleaseAmount !== void 0 ? capacityReleaseAmount : NO_RETRY_INCREMENT;\n availableCapacity = Math.min(availableCapacity, MAX_CAPACITY);\n };\n return Object.freeze({\n hasRetryTokens: hasRetryTokens,\n retrieveRetryTokens: retrieveRetryTokens,\n releaseRetryTokens: releaseRetryTokens,\n });\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFJldHJ5UXVvdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdFJldHJ5UXVvdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdqRixNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLGtCQUEwQjtJQUM3RCxJQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztJQUN4QyxJQUFJLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0lBRTNDLElBQU0saUJBQWlCLEdBQUcsVUFBQyxLQUFlLElBQUssT0FBQSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQWpFLENBQWlFLENBQUM7SUFFakgsSUFBTSxjQUFjLEdBQUcsVUFBQyxLQUFlLElBQUssT0FBQSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsRUFBN0MsQ0FBNkMsQ0FBQztJQUUxRixJQUFNLG1CQUFtQixHQUFHLFVBQUMsS0FBZTtRQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFCLDREQUE0RDtZQUM1RCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxpQkFBaUIsSUFBSSxjQUFjLENBQUM7UUFDcEMsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUYsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLHFCQUE4QjtRQUN4RCxpQkFBaUIsSUFBSSxxQkFBcUIsYUFBckIscUJBQXFCLGNBQXJCLHFCQUFxQixHQUFJLGtCQUFrQixDQUFDO1FBQ2pFLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ25CLGNBQWMsZ0JBQUE7UUFDZCxtQkFBbUIscUJBQUE7UUFDbkIsa0JBQWtCLG9CQUFBO0tBQ25CLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNka0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NtaXRoeS1jbGllbnRcIjtcblxuaW1wb3J0IHsgTk9fUkVUUllfSU5DUkVNRU5ULCBSRVRSWV9DT1NULCBUSU1FT1VUX1JFVFJZX0NPU1QgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJldHJ5UXVvdGEgfSBmcm9tIFwiLi9kZWZhdWx0U3RyYXRlZ3lcIjtcblxuZXhwb3J0IGNvbnN0IGdldERlZmF1bHRSZXRyeVF1b3RhID0gKGluaXRpYWxSZXRyeVRva2VuczogbnVtYmVyKTogUmV0cnlRdW90YSA9PiB7XG4gIGNvbnN0IE1BWF9DQVBBQ0lUWSA9IGluaXRpYWxSZXRyeVRva2VucztcbiAgbGV0IGF2YWlsYWJsZUNhcGFjaXR5ID0gaW5pdGlhbFJldHJ5VG9rZW5zO1xuXG4gIGNvbnN0IGdldENhcGFjaXR5QW1vdW50ID0gKGVycm9yOiBTZGtFcnJvcikgPT4gKGVycm9yLm5hbWUgPT09IFwiVGltZW91dEVycm9yXCIgPyBUSU1FT1VUX1JFVFJZX0NPU1QgOiBSRVRSWV9DT1NUKTtcblxuICBjb25zdCBoYXNSZXRyeVRva2VucyA9IChlcnJvcjogU2RrRXJyb3IpID0+IGdldENhcGFjaXR5QW1vdW50KGVycm9yKSA8PSBhdmFpbGFibGVDYXBhY2l0eTtcblxuICBjb25zdCByZXRyaWV2ZVJldHJ5VG9rZW5zID0gKGVycm9yOiBTZGtFcnJvcikgPT4ge1xuICAgIGlmICghaGFzUmV0cnlUb2tlbnMoZXJyb3IpKSB7XG4gICAgICAvLyByZXRyeVN0cmF0ZWd5IHNob3VsZCBzdG9wIHJldHJ5aW5nLCBhbmQgcmV0dXJuIGxhc3QgZXJyb3JcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIHJldHJ5IHRva2VuIGF2YWlsYWJsZVwiKTtcbiAgICB9XG4gICAgY29uc3QgY2FwYWNpdHlBbW91bnQgPSBnZXRDYXBhY2l0eUFtb3VudChlcnJvcik7XG4gICAgYXZhaWxhYmxlQ2FwYWNpdHkgLT0gY2FwYWNpdHlBbW91bnQ7XG4gICAgcmV0dXJuIGNhcGFjaXR5QW1vdW50O1xuICB9O1xuXG4gIGNvbnN0IHJlbGVhc2VSZXRyeVRva2VucyA9IChjYXBhY2l0eVJlbGVhc2VBbW91bnQ/OiBudW1iZXIpID0+IHtcbiAgICBhdmFpbGFibGVDYXBhY2l0eSArPSBjYXBhY2l0eVJlbGVhc2VBbW91bnQgPz8gTk9fUkVUUllfSU5DUkVNRU5UO1xuICAgIGF2YWlsYWJsZUNhcGFjaXR5ID0gTWF0aC5taW4oYXZhaWxhYmxlQ2FwYWNpdHksIE1BWF9DQVBBQ0lUWSk7XG4gIH07XG5cbiAgcmV0dXJuIE9iamVjdC5mcmVlemUoe1xuICAgIGhhc1JldHJ5VG9rZW5zLFxuICAgIHJldHJpZXZlUmV0cnlUb2tlbnMsXG4gICAgcmVsZWFzZVJldHJ5VG9rZW5zLFxuICB9KTtcbn07XG4iXX0=","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\n/**\n * Calculate a capped, fully-jittered exponential backoff time.\n */\nexport var defaultDelayDecider = function (delayBase, attempts) {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * Math.pow(2, attempts) * delayBase));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXlEZWNpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlbGF5RGVjaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxVQUFDLFNBQWlCLEVBQUUsUUFBZ0I7SUFDckUsT0FBQSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFNBQUEsQ0FBQyxFQUFJLFFBQVEsQ0FBQSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0FBQXBGLENBQW9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNQVhJTVVNX1JFVFJZX0RFTEFZIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQ2FsY3VsYXRlIGEgY2FwcGVkLCBmdWxseS1qaXR0ZXJlZCBleHBvbmVudGlhbCBiYWNrb2ZmIHRpbWUuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0RGVsYXlEZWNpZGVyID0gKGRlbGF5QmFzZTogbnVtYmVyLCBhdHRlbXB0czogbnVtYmVyKSA9PlxuICBNYXRoLmZsb29yKE1hdGgubWluKE1BWElNVU1fUkVUUllfREVMQVksIE1hdGgucmFuZG9tKCkgKiAyICoqIGF0dGVtcHRzICogZGVsYXlCYXNlKSk7XG4iXX0=","import { isClockSkewError, isRetryableByTrait, isThrottlingError, isTransientError, } from \"@aws-sdk/service-error-classification\";\nexport var defaultRetryDecider = function (error) {\n if (!error) {\n return false;\n }\n return isRetryableByTrait(error) || isClockSkewError(error) || isThrottlingError(error) || isTransientError(error);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlEZWNpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JldHJ5RGVjaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLE1BQU0sdUNBQXVDLENBQUM7QUFHL0MsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxLQUFlO0lBQ2pELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNySCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpc0Nsb2NrU2tld0Vycm9yLFxuICBpc1JldHJ5YWJsZUJ5VHJhaXQsXG4gIGlzVGhyb3R0bGluZ0Vycm9yLFxuICBpc1RyYW5zaWVudEVycm9yLFxufSBmcm9tIFwiQGF3cy1zZGsvc2VydmljZS1lcnJvci1jbGFzc2lmaWNhdGlvblwiO1xuaW1wb3J0IHsgU2RrRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvc21pdGh5LWNsaWVudFwiO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFJldHJ5RGVjaWRlciA9IChlcnJvcjogU2RrRXJyb3IpID0+IHtcbiAgaWYgKCFlcnJvcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBpc1JldHJ5YWJsZUJ5VHJhaXQoZXJyb3IpIHx8IGlzQ2xvY2tTa2V3RXJyb3IoZXJyb3IpIHx8IGlzVGhyb3R0bGluZ0Vycm9yKGVycm9yKSB8fCBpc1RyYW5zaWVudEVycm9yKGVycm9yKTtcbn07XG4iXX0=","import { __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { isThrottlingError } from \"@aws-sdk/service-error-classification\";\nimport { v4 } from \"uuid\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, INVOCATION_ID_HEADER, REQUEST_HEADER, THROTTLING_RETRY_DELAY_BASE, } from \"./constants\";\nimport { getDefaultRetryQuota } from \"./defaultRetryQuota\";\nimport { defaultDelayDecider } from \"./delayDecider\";\nimport { defaultRetryDecider } from \"./retryDecider\";\n/**\n * The default value for how many HTTP requests an SDK should make for a\n * single SDK operation invocation before giving up\n */\nexport var DEFAULT_MAX_ATTEMPTS = 3;\n/**\n * The default retry algorithm to use.\n */\nexport var DEFAULT_RETRY_MODE = \"standard\";\nvar StandardRetryStrategy = /** @class */ (function () {\n function StandardRetryStrategy(maxAttemptsProvider, options) {\n var _a, _b, _c;\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = DEFAULT_RETRY_MODE;\n this.retryDecider = (_a = options === null || options === void 0 ? void 0 : options.retryDecider) !== null && _a !== void 0 ? _a : defaultRetryDecider;\n this.delayDecider = (_b = options === null || options === void 0 ? void 0 : options.delayDecider) !== null && _b !== void 0 ? _b : defaultDelayDecider;\n this.retryQuota = (_c = options === null || options === void 0 ? void 0 : options.retryQuota) !== null && _c !== void 0 ? _c : getDefaultRetryQuota(INITIAL_RETRY_TOKENS);\n }\n StandardRetryStrategy.prototype.shouldRetry = function (error, attempts, maxAttempts) {\n return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error);\n };\n StandardRetryStrategy.prototype.getMaxAttempts = function () {\n return __awaiter(this, void 0, void 0, function () {\n var maxAttempts, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2, , 3]);\n return [4 /*yield*/, this.maxAttemptsProvider()];\n case 1:\n maxAttempts = _a.sent();\n return [3 /*break*/, 3];\n case 2:\n error_1 = _a.sent();\n maxAttempts = DEFAULT_MAX_ATTEMPTS;\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/, maxAttempts];\n }\n });\n });\n };\n StandardRetryStrategy.prototype.retry = function (next, args) {\n return __awaiter(this, void 0, void 0, function () {\n var retryTokenAmount, attempts, totalDelay, maxAttempts, request, _loop_1, this_1, state_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attempts = 0;\n totalDelay = 0;\n return [4 /*yield*/, this.getMaxAttempts()];\n case 1:\n maxAttempts = _a.sent();\n request = args.request;\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n _loop_1 = function () {\n var _a, response, output, err_1, delay_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 5]);\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = \"attempt=\" + (attempts + 1) + \"; max=\" + maxAttempts;\n }\n return [4 /*yield*/, next(args)];\n case 1:\n _a = _b.sent(), response = _a.response, output = _a.output;\n this_1.retryQuota.releaseRetryTokens(retryTokenAmount);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalDelay;\n return [2 /*return*/, { value: { response: response, output: output } }];\n case 2:\n err_1 = _b.sent();\n attempts++;\n if (!this_1.shouldRetry(err_1, attempts, maxAttempts)) return [3 /*break*/, 4];\n retryTokenAmount = this_1.retryQuota.retrieveRetryTokens(err_1);\n delay_1 = this_1.delayDecider(isThrottlingError(err_1) ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE, attempts);\n totalDelay += delay_1;\n return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, delay_1); })];\n case 3:\n _b.sent();\n return [2 /*return*/, \"continue\"];\n case 4:\n if (!err_1.$metadata) {\n err_1.$metadata = {};\n }\n err_1.$metadata.attempts = attempts;\n err_1.$metadata.totalRetryDelay = totalDelay;\n throw err_1;\n case 5: return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _a.label = 2;\n case 2:\n if (!true) return [3 /*break*/, 4];\n return [5 /*yield**/, _loop_1()];\n case 3:\n state_1 = _a.sent();\n if (typeof state_1 === \"object\")\n return [2 /*return*/, state_1.value];\n return [3 /*break*/, 2];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n return StandardRetryStrategy;\n}());\nexport { StandardRetryStrategy };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlZmF1bHRTdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCwyQkFBMkIsR0FDNUIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBRXRDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBb0Q3QztJQU1FLCtCQUE2QixtQkFBcUMsRUFBRSxPQUFzQzs7UUFBN0Usd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFrQjtRQUZsRCxTQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFHeEMsSUFBSSxDQUFDLFlBQVksU0FBRyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsWUFBWSxtQ0FBSSxtQkFBbUIsQ0FBQztRQUNqRSxJQUFJLENBQUMsWUFBWSxTQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxZQUFZLG1DQUFJLG1CQUFtQixDQUFDO1FBQ2pFLElBQUksQ0FBQyxVQUFVLFNBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxD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IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGlzVGhyb3R0bGluZ0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NlcnZpY2UtZXJyb3ItY2xhc3NpZmljYXRpb25cIjtcbmltcG9ydCB7IFNka0Vycm9yIH0gZnJvbSBcIkBhd3Mtc2RrL3NtaXRoeS1jbGllbnRcIjtcbmltcG9ydCB7IEZpbmFsaXplSGFuZGxlciwgRmluYWxpemVIYW5kbGVyQXJndW1lbnRzLCBNZXRhZGF0YUJlYXJlciwgUHJvdmlkZXIsIFJldHJ5U3RyYXRlZ3kgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCB7IHY0IH0gZnJvbSBcInV1aWRcIjtcblxuaW1wb3J0IHtcbiAgREVGQVVMVF9SRVRSWV9ERUxBWV9CQVNFLFxuICBJTklUSUFMX1JFVFJZX1RPS0VOUyxcbiAgSU5WT0NBVElPTl9JRF9IRUFERVIsXG4gIFJFUVVFU1RfSEVBREVSLFxuICBUSFJPVFRMSU5HX1JFVFJZX0RFTEFZX0JBU0UsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdFJldHJ5UXVvdGEgfSBmcm9tIFwiLi9kZWZhdWx0UmV0cnlRdW90YVwiO1xuaW1wb3J0IHsgZGVmYXVsdERlbGF5RGVjaWRlciB9IGZyb20gXCIuL2RlbGF5RGVjaWRlclwiO1xuaW1wb3J0IHsgZGVmYXVsdFJldHJ5RGVjaWRlciB9IGZyb20gXCIuL3JldHJ5RGVjaWRlclwiO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IHZhbHVlIGZvciBob3cgbWFueSBIVFRQIHJlcXVlc3RzIGFuIFNESyBzaG91bGQgbWFrZSBmb3IgYVxuICogc2luZ2xlIFNESyBvcGVyYXRpb24gaW52b2NhdGlvbiBiZWZvcmUgZ2l2aW5nIHVwXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9BVFRFTVBUUyA9IDM7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgcmV0cnkgYWxnb3JpdGhtIHRvIHVzZS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVUUllfTU9ERSA9IFwic3RhbmRhcmRcIjtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYW4gZXJyb3IgaXMgcmV0cnlhYmxlIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgcmV0cmllc1xuICogYWxyZWFkeSBhdHRlbXB0ZWQsIHRoZSBIVFRQIHN0YXR1cyBjb2RlLCBhbmQgdGhlIGVycm9yIHJlY2VpdmVkIChpZiBhbnkpLlxuICpcbiAqIEBwYXJhbSBlcnJvciAgICAgICAgIFRoZSBlcnJvciBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeURlY2lkZXIge1xuICAoZXJyb3I6IFNka0Vycm9yKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIHJldHJ5aW5nIGFuIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0gZGVsYXlCYXNlIFRoZSBiYXNlIGRlbGF5IChpbiBtaWxsaXNlY29uZHMpLlxuICogQHBhcmFtIGF0dGVtcHRzICBUaGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBhY3Rpb24gaGFzIGFscmVhZHkgYmVlbiB0cmllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWxheURlY2lkZXIge1xuICAoZGVsYXlCYXNlOiBudW1iZXIsIGF0dGVtcHRzOiBudW1iZXIpOiBudW1iZXI7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHRoYXQgc3BlY2lmaWVzIHRoZSByZXRyeSBxdW90YSBiZWhhdmlvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeVF1b3RhIHtcbiAgLyoqXG4gICAqIHJldHVybnMgdHJ1ZSBpZiByZXRyeSB0b2tlbnMgYXJlIGF2YWlsYWJsZSBmcm9tIHRoZSByZXRyeSBxdW90YSBidWNrZXQuXG4gICAqL1xuICBoYXNSZXRyeVRva2VuczogKGVycm9yOiBTZGtFcnJvcikgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogcmV0dXJucyB0b2tlbiBhbW91bnQgZnJvbSB0aGUgcmV0cnkgcXVvdGEgYnVja2V0LlxuICAgKiB0aHJvd3MgZXJyb3IgaXMgcmV0cnkgdG9rZW5zIGFyZSBub3QgYXZhaWxhYmxlLlxuICAgKi9cbiAgcmV0cmlldmVSZXRyeVRva2VuczogKGVycm9yOiBTZGtFcnJvcikgPT4gbnVtYmVyO1xuXG4gIC8qKlxuICAgKiByZWxlYXNlcyB0b2tlbnMgYmFjayB0byB0aGUgcmV0cnkgcXVvdGEuXG4gICAqL1xuICByZWxlYXNlUmV0cnlUb2tlbnM6IChyZWxlYXNlQ2FwYWNpdHlBbW91bnQ/OiBudW1iZXIpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogU3RyYXRlZ3kgb3B0aW9ucyB0byBiZSBwYXNzZWQgdG8gU3RhbmRhcmRSZXRyeVN0cmF0ZWd5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRSZXRyeVN0cmF0ZWd5T3B0aW9ucyB7XG4gIHJldHJ5RGVjaWRlcj86IFJldHJ5RGVjaWRlcjtcbiAgZGVsYXlEZWNpZGVyPzogRGVsYXlEZWNpZGVyO1xuICByZXRyeVF1b3RhPzogUmV0cnlRdW90YTtcbn1cblxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkUmV0cnlTdHJhdGVneSBpbXBsZW1lbnRzIFJldHJ5U3RyYXRlZ3kge1xuICBwcml2YXRlIHJldHJ5RGVjaWRlcjogUmV0cnlEZWNpZGVyO1xuICBwcml2YXRlIGRlbGF5RGVjaWRlcjogRGVsYXlEZWNpZGVyO1xuICBwcml2YXRlIHJldHJ5UXVvdGE6IFJldHJ5UXVvdGE7XG4gIHB1YmxpYyByZWFkb25seSBtb2RlID0gREVGQVVMVF9SRVRSWV9NT0RFO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWF4QXR0ZW1wdHNQcm92aWRlcjogUHJvdmlkZXI8bnVtYmVyPiwgb3B0aW9ucz86IFN0YW5kYXJkUmV0cnlTdHJhdGVneU9wdGlvbnMpIHtcbiAgICB0aGlzLnJldHJ5RGVjaWRlciA9IG9wdGlvbnM/LnJldHJ5RGVjaWRlciA/PyBkZWZhdWx0UmV0cnlEZWNpZGVyO1xuICAgIHRoaXMuZGVsYXlEZWNpZGVyID0gb3B0aW9ucz8uZGVsYXlEZWNpZGVyID8/IGRlZmF1bHREZWxheURlY2lkZXI7XG4gICAgdGhpcy5yZXRyeVF1b3RhID0gb3B0aW9ucz8ucmV0cnlRdW90YSA/PyBnZXREZWZhdWx0UmV0cnlRdW90YShJTklUSUFMX1JFVFJZX1RPS0VOUyk7XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFJldHJ5KGVycm9yOiBTZGtFcnJvciwgYXR0ZW1wdHM6IG51bWJlciwgbWF4QXR0ZW1wdHM6IG51bWJlcikge1xuICAgIHJldHVybiBhdHRlbXB0cyA8IG1heEF0dGVtcHRzICYmIHRoaXMucmV0cnlEZWNpZGVyKGVycm9yKSAmJiB0aGlzLnJldHJ5UXVvdGEuaGFzUmV0cnlUb2tlbnMoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRNYXhBdHRlbXB0cygpIHtcbiAgICBsZXQgbWF4QXR0ZW1wdHM6IG51bWJlcjtcbiAgICB0cnkge1xuICAgICAgbWF4QXR0ZW1wdHMgPSBhd2FpdCB0aGlzLm1heEF0dGVtcHRzUHJvdmlkZXIoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbWF4QXR0ZW1wdHMgPSBERUZBVUxUX01BWF9BVFRFTVBUUztcbiAgICB9XG4gICAgcmV0dXJuIG1heEF0dGVtcHRzO1xuICB9XG5cbiAgYXN5bmMgcmV0cnk8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KFxuICAgIG5leHQ6IEZpbmFsaXplSGFuZGxlcjxJbnB1dCwgT3VwdXQ+LFxuICAgIGFyZ3M6IEZpbmFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD5cbiAgKSB7XG4gICAgbGV0IHJldHJ5VG9rZW5BbW91bnQ7XG4gICAgbGV0IGF0dGVtcHRzID0gMDtcbiAgICBsZXQgdG90YWxEZWxheSA9IDA7XG5cbiAgICBjb25zdCBtYXhBdHRlbXB0cyA9IGF3YWl0IHRoaXMuZ2V0TWF4QXR0ZW1wdHMoKTtcblxuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW0lOVk9DQVRJT05fSURfSEVBREVSXSA9IHY0KCk7XG4gICAgfVxuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChIdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICAgICAgcmVxdWVzdC5oZWFkZXJzW1JFUVVFU1RfSEVBREVSXSA9IGBhdHRlbXB0PSR7YXR0ZW1wdHMgKyAxfTsgbWF4PSR7bWF4QXR0ZW1wdHN9YDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHJlc3BvbnNlLCBvdXRwdXQgfSA9IGF3YWl0IG5leHQoYXJncyk7XG5cbiAgICAgICAgdGhpcy5yZXRyeVF1b3RhLnJlbGVhc2VSZXRyeVRva2VucyhyZXRyeVRva2VuQW1vdW50KTtcbiAgICAgICAgb3V0cHV0LiRtZXRhZGF0YS5hdHRlbXB0cyA9IGF0dGVtcHRzICsgMTtcbiAgICAgICAgb3V0cHV0LiRtZXRhZGF0YS50b3RhbFJldHJ5RGVsYXkgPSB0b3RhbERlbGF5O1xuXG4gICAgICAgIHJldHVybiB7IHJlc3BvbnNlLCBvdXRwdXQgfTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhdHRlbXB0cysrO1xuICAgICAgICBpZiAodGhpcy5zaG91bGRSZXRyeShlcnIgYXMgU2RrRXJyb3IsIGF0dGVtcHRzLCBtYXhBdHRlbXB0cykpIHtcbiAgICAgICAgICByZXRyeVRva2VuQW1vdW50ID0gdGhpcy5yZXRyeVF1b3RhLnJldHJpZXZlUmV0cnlUb2tlbnMoZXJyKTtcbiAgICAgICAgICBjb25zdCBkZWxheSA9IHRoaXMuZGVsYXlEZWNpZGVyKFxuICAgICAgICAgICAgaXNUaHJvdHRsaW5nRXJyb3IoZXJyKSA/IFRIUk9UVExJTkdfUkVUUllfREVMQVlfQkFTRSA6IERFRkFVTFRfUkVUUllfREVMQVlfQkFTRSxcbiAgICAgICAgICAgIGF0dGVtcHRzXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0b3RhbERlbGF5ICs9IGRlbGF5O1xuXG4gICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZXJyLiRtZXRhZGF0YSkge1xuICAgICAgICAgIGVyci4kbWV0YWRhdGEgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVyci4kbWV0YWRhdGEuYXR0ZW1wdHMgPSBhdHRlbXB0cztcbiAgICAgICAgZXJyLiRtZXRhZGF0YS50b3RhbFJldHJ5RGVsYXkgPSB0b3RhbERlbGF5O1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=","import { __assign } from \"tslib\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, StandardRetryStrategy } from \"./defaultStrategy\";\nexport var ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport var CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport var NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) {\n var value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Environment variable \" + ENV_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n return maxAttempt;\n },\n configFileSelector: function (profile) {\n var value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n var maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(\"Shared config file entry \" + CONFIG_MAX_ATTEMPTS + \" mast be a number, got \\\"\" + value + \"\\\"\");\n }\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS,\n};\nexport var resolveRetryConfig = function (input) {\n var maxAttempts = normalizeMaxAttempts(input.maxAttempts);\n return __assign(__assign({}, input), { maxAttempts: maxAttempts, retryStrategy: input.retryStrategy || new StandardRetryStrategy(maxAttempts) });\n};\nvar normalizeMaxAttempts = function (maxAttempts) {\n if (maxAttempts === void 0) { maxAttempts = DEFAULT_MAX_ATTEMPTS; }\n if (typeof maxAttempts === \"number\") {\n var promisified_1 = Promise.resolve(maxAttempts);\n return function () { return promisified_1; };\n }\n return maxAttempts;\n};\nexport var ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport var CONFIG_RETRY_MODE = \"retry_mode\";\nexport var NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: function (env) { return env[ENV_RETRY_MODE]; },\n configFileSelector: function (profile) { return profile[CONFIG_RETRY_MODE]; },\n default: DEFAULT_RETRY_MODE,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUdBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBHLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSwrQkFBK0IsR0FBa0M7SUFDNUUsMkJBQTJCLEVBQUUsVUFBQyxHQUFHO1FBQy9CLElBQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDN0IsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUF3QixnQkFBZ0IsaUNBQTJCLEtBQUssT0FBRyxDQUFDLENBQUM7U0FDOUY7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0Qsa0JBQWtCLEVBQUUsVUFBQyxPQUFPO1FBQzFCLElBQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDN0IsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE0QixtQkFBbUIsaUNBQTJCLEtBQUssT0FBRyxDQUFDLENBQUM7U0FDckc7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsT0FBTyxFQUFFLG9CQUFvQjtDQUM5QixDQUFDO0FBbUJGLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLFVBQUksS0FBZ0Q7SUFDcEYsSUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELDZCQUNLLEtBQUssS0FDUixXQUFXLGFBQUEsRUFDWCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxJQUM1RTtBQUNKLENBQUMsQ0FBQztBQUVGLElBQU0sb0JBQW9CLEdBQUcsVUFBQyxXQUE2RDtJQUE3RCw0QkFBQSxFQUFBLGtDQUE2RDtJQUN6RixJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUM7QUFDL0MsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLDhCQUE4QixHQUFrQztJQUMzRSwyQkFBMkIsRUFBRSxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBbkIsQ0FBbUI7SUFDekQsa0JBQWtCLEVBQUUsVUFBQyxPQUFPLElBQUssT0FBQSxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBMUIsQ0FBMEI7SUFDM0QsT0FBTyxFQUFFLGtCQUFrQjtDQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9hZGVkQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSBcIkBhd3Mtc2RrL25vZGUtY29uZmlnLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBQcm92aWRlciwgUmV0cnlTdHJhdGVneSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBERUZBVUxUX01BWF9BVFRFTVBUUywgREVGQVVMVF9SRVRSWV9NT0RFLCBTdGFuZGFyZFJldHJ5U3RyYXRlZ3kgfSBmcm9tIFwiLi9kZWZhdWx0U3RyYXRlZ3lcIjtcblxuZXhwb3J0IGNvbnN0IEVOVl9NQVhfQVRURU1QVFMgPSBcIkFXU19NQVhfQVRURU1QVFNcIjtcbmV4cG9ydCBjb25zdCBDT05GSUdfTUFYX0FUVEVNUFRTID0gXCJtYXhfYXR0ZW1wdHNcIjtcblxuZXhwb3J0IGNvbnN0IE5PREVfTUFYX0FUVEVNUFRfQ09ORklHX09QVElPTlM6IExvYWRlZENvbmZpZ1NlbGVjdG9yczxudW1iZXI+ID0ge1xuICBlbnZpcm9ubWVudFZhcmlhYmxlU2VsZWN0b3I6IChlbnYpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IGVudltFTlZfTUFYX0FUVEVNUFRTXTtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1heEF0dGVtcHQgPSBwYXJzZUludCh2YWx1ZSk7XG4gICAgaWYgKE51bWJlci5pc05hTihtYXhBdHRlbXB0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbnZpcm9ubWVudCB2YXJpYWJsZSAke0VOVl9NQVhfQVRURU1QVFN9IG1hc3QgYmUgYSBudW1iZXIsIGdvdCBcIiR7dmFsdWV9XCJgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1heEF0dGVtcHQ7XG4gIH0sXG4gIGNvbmZpZ0ZpbGVTZWxlY3RvcjogKHByb2ZpbGUpID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHByb2ZpbGVbQ09ORklHX01BWF9BVFRFTVBUU107XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBtYXhBdHRlbXB0ID0gcGFyc2VJbnQodmFsdWUpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4obWF4QXR0ZW1wdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2hhcmVkIGNvbmZpZyBmaWxlIGVudHJ5ICR7Q09ORklHX01BWF9BVFRFTVBUU30gbWFzdCBiZSBhIG51bWJlciwgZ290IFwiJHt2YWx1ZX1cImApO1xuICAgIH1cbiAgICByZXR1cm4gbWF4QXR0ZW1wdDtcbiAgfSxcbiAgZGVmYXVsdDogREVGQVVMVF9NQVhfQVRURU1QVFMsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5SW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIHJlcXVlc3RzIHRoYXQgZW5jb3VudGVyIHJldHJ5YWJsZSBmYWlsdXJlcyBzaG91bGQgYmUgYXR0ZW1wdGVkLlxuICAgKi9cbiAgbWF4QXR0ZW1wdHM/OiBudW1iZXIgfCBQcm92aWRlcjxudW1iZXI+O1xuICAvKipcbiAgICogVGhlIHN0cmF0ZWd5IHRvIHJldHJ5IHRoZSByZXF1ZXN0LiBVc2luZyBidWlsdC1pbiBleHBvbmVudGlhbCBiYWNrb2ZmIHN0cmF0ZWd5IGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZXRyeVN0cmF0ZWd5PzogUmV0cnlTdHJhdGVneTtcbn1cblxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7fVxuZXhwb3J0IGludGVyZmFjZSBSZXRyeVJlc29sdmVkQ29uZmlnIHtcbiAgbWF4QXR0ZW1wdHM6IFByb3ZpZGVyPG51bWJlcj47XG4gIHJldHJ5U3RyYXRlZ3k6IFJldHJ5U3RyYXRlZ3k7XG59XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlUmV0cnlDb25maWcgPSA8VD4oaW5wdXQ6IFQgJiBQcmV2aW91c2x5UmVzb2x2ZWQgJiBSZXRyeUlucHV0Q29uZmlnKTogVCAmIFJldHJ5UmVzb2x2ZWRDb25maWcgPT4ge1xuICBjb25zdCBtYXhBdHRlbXB0cyA9IG5vcm1hbGl6ZU1heEF0dGVtcHRzKGlucHV0Lm1heEF0dGVtcHRzKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBtYXhBdHRlbXB0cyxcbiAgICByZXRyeVN0cmF0ZWd5OiBpbnB1dC5yZXRyeVN0cmF0ZWd5IHx8IG5ldyBTdGFuZGFyZFJldHJ5U3RyYXRlZ3kobWF4QXR0ZW1wdHMpLFxuICB9O1xufTtcblxuY29uc3Qgbm9ybWFsaXplTWF4QXR0ZW1wdHMgPSAobWF4QXR0ZW1wdHM6IG51bWJlciB8IFByb3ZpZGVyPG51bWJlcj4gPSBERUZBVUxUX01BWF9BVFRFTVBUUyk6IFByb3ZpZGVyPG51bWJlcj4gPT4ge1xuICBpZiAodHlwZW9mIG1heEF0dGVtcHRzID09PSBcIm51bWJlclwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUobWF4QXR0ZW1wdHMpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfVxuICByZXR1cm4gbWF4QXR0ZW1wdHM7XG59O1xuXG5leHBvcnQgY29uc3QgRU5WX1JFVFJZX01PREUgPSBcIkFXU19SRVRSWV9NT0RFXCI7XG5leHBvcnQgY29uc3QgQ09ORklHX1JFVFJZX01PREUgPSBcInJldHJ5X21vZGVcIjtcblxuZXhwb3J0IGNvbnN0IE5PREVfUkVUUllfTU9ERV9DT05GSUdfT1BUSU9OUzogTG9hZGVkQ29uZmlnU2VsZWN0b3JzPHN0cmluZz4gPSB7XG4gIGVudmlyb25tZW50VmFyaWFibGVTZWxlY3RvcjogKGVudikgPT4gZW52W0VOVl9SRVRSWV9NT0RFXSxcbiAgY29uZmlnRmlsZVNlbGVjdG9yOiAocHJvZmlsZSkgPT4gcHJvZmlsZVtDT05GSUdfUkVUUllfTU9ERV0sXG4gIGRlZmF1bHQ6IERFRkFVTFRfUkVUUllfTU9ERSxcbn07XG4iXX0=","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","import { __awaiter, __generator } from \"tslib\";\nexport var deserializerMiddleware = function (options, deserializer) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var response, parsed;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, next(args)];\n case 1:\n response = (_a.sent()).response;\n return [4 /*yield*/, deserializer(response, options)];\n case 2:\n parsed = _a.sent();\n return [2 /*return*/, {\n response: response,\n output: parsed,\n }];\n }\n });\n}); }; }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemVyTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZXNlcmlhbGl6ZXJNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFTQSxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxVQUNwQyxPQUFxQixFQUNyQixZQUEwRCxJQUNqQixPQUFBLFVBQ3pDLElBQXVDLEVBQ3ZDLE9BQWdDLElBQ00sT0FBQSxVQUN0QyxJQUF3Qzs7OztvQkFFbkIscUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFBOztnQkFBN0IsUUFBUSxHQUFLLENBQUEsU0FBZ0IsQ0FBQSxTQUFyQjtnQkFDRCxxQkFBTSxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFBOztnQkFBOUMsTUFBTSxHQUFHLFNBQXFDO2dCQUNwRCxzQkFBTzt3QkFDTCxRQUFRLFVBQUE7d0JBQ1IsTUFBTSxFQUFFLE1BQWdCO3FCQUN6QixFQUFDOzs7S0FDSCxFQVR1QyxDQVN2QyxFQVowQyxDQVkxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVzZXJpYWxpemVIYW5kbGVyLFxuICBEZXNlcmlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIERlc2VyaWFsaXplSGFuZGxlck91dHB1dCxcbiAgRGVzZXJpYWxpemVNaWRkbGV3YXJlLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgUmVzcG9uc2VEZXNlcmlhbGl6ZXIsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemVyTWlkZGxld2FyZSA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0LCBSdW50aW1lVXRpbHMgPSBhbnk+KFxuICBvcHRpb25zOiBSdW50aW1lVXRpbHMsXG4gIGRlc2VyaWFsaXplcjogUmVzcG9uc2VEZXNlcmlhbGl6ZXI8YW55LCBhbnksIFJ1bnRpbWVVdGlscz5cbik6IERlc2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PiA9PiAoXG4gIG5leHQ6IERlc2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IERlc2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PiA9PiBhc3luYyAoXG4gIGFyZ3M6IERlc2VyaWFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD5cbik6IFByb21pc2U8RGVzZXJpYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgY29uc3QgeyByZXNwb25zZSB9ID0gYXdhaXQgbmV4dChhcmdzKTtcbiAgY29uc3QgcGFyc2VkID0gYXdhaXQgZGVzZXJpYWxpemVyKHJlc3BvbnNlLCBvcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICByZXNwb25zZSxcbiAgICBvdXRwdXQ6IHBhcnNlZCBhcyBPdXRwdXQsXG4gIH07XG59O1xuIl19","import { __assign, __awaiter, __generator } from \"tslib\";\nexport var serializerMiddleware = function (options, serializer) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, serializer(args.input, options)];\n case 1:\n request = _a.sent();\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n}); }; }; };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplck1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplck1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQVVBLE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLFVBQ2xDLE9BQXFCLEVBQ3JCLFVBQWdELElBQ1QsT0FBQSxVQUN2QyxJQUFxQyxFQUNyQyxPQUFnQyxJQUNJLE9BQUEsVUFDcEMsSUFBc0M7Ozs7b0JBRXRCLHFCQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFBOztnQkFBL0MsT0FBTyxHQUFHLFNBQXFDO2dCQUNyRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOzs7S0FDSixFQVJxQyxDQVFyQyxFQVh3QyxDQVd4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW5kcG9pbnRCZWFyZXIsXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBSZXF1ZXN0U2VyaWFsaXplcixcbiAgU2VyaWFsaXplSGFuZGxlcixcbiAgU2VyaWFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgU2VyaWFsaXplSGFuZGxlck91dHB1dCxcbiAgU2VyaWFsaXplTWlkZGxld2FyZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVyTWlkZGxld2FyZSA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0LCBSdW50aW1lVXRpbHMgZXh0ZW5kcyBFbmRwb2ludEJlYXJlcj4oXG4gIG9wdGlvbnM6IFJ1bnRpbWVVdGlscyxcbiAgc2VyaWFsaXplcjogUmVxdWVzdFNlcmlhbGl6ZXI8YW55LCBSdW50aW1lVXRpbHM+XG4pOiBTZXJpYWxpemVNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+ID0+IChcbiAgbmV4dDogU2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IFNlcmlhbGl6ZUhhbmRsZXI8SW5wdXQsIE91dHB1dD4gPT4gYXN5bmMgKFxuICBhcmdzOiBTZXJpYWxpemVIYW5kbGVyQXJndW1lbnRzPElucHV0PlxuKTogUHJvbWlzZTxTZXJpYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHNlcmlhbGl6ZXIoYXJncy5pbnB1dCwgb3B0aW9ucyk7XG4gIHJldHVybiBuZXh0KHtcbiAgICAuLi5hcmdzLFxuICAgIHJlcXVlc3QsXG4gIH0pO1xufTtcbiJdfQ==","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport var deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport var serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: function (commandStack) {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyZGVQbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyZGVQbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFOUQsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQThCO0lBQ3JFLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQ3RCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLDBCQUEwQixHQUE0QjtJQUNqRSxJQUFJLEVBQUUsc0JBQXNCO0lBQzVCLElBQUksRUFBRSxXQUFXO0lBQ2pCLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztJQUNwQixRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUM7QUFFRixNQUFNLFVBQVUsY0FBYyxDQUs1QixNQUFvQixFQUNwQixVQUFnRCxFQUNoRCxZQUFpRTtJQUVqRSxPQUFPO1FBQ0wsWUFBWSxFQUFFLFVBQUMsWUFBb0Q7WUFDakUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztZQUM3RixZQUFZLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlc2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIEVuZHBvaW50QmVhcmVyLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgTWlkZGxld2FyZVN0YWNrLFxuICBQbHVnZ2FibGUsXG4gIFJlcXVlc3RTZXJpYWxpemVyLFxuICBSZXNwb25zZURlc2VyaWFsaXplcixcbiAgU2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlIH0gZnJvbSBcIi4vZGVzZXJpYWxpemVyTWlkZGxld2FyZVwiO1xuaW1wb3J0IHsgc2VyaWFsaXplck1pZGRsZXdhcmUgfSBmcm9tIFwiLi9zZXJpYWxpemVyTWlkZGxld2FyZVwiO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemVyTWlkZGxld2FyZU9wdGlvbjogRGVzZXJpYWxpemVIYW5kbGVyT3B0aW9ucyA9IHtcbiAgbmFtZTogXCJkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlXCIsXG4gIHN0ZXA6IFwiZGVzZXJpYWxpemVcIixcbiAgdGFnczogW1wiREVTRVJJQUxJWkVSXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBzZXJpYWxpemVyTWlkZGxld2FyZU9wdGlvbjogU2VyaWFsaXplSGFuZGxlck9wdGlvbnMgPSB7XG4gIG5hbWU6IFwic2VyaWFsaXplck1pZGRsZXdhcmVcIixcbiAgc3RlcDogXCJzZXJpYWxpemVcIixcbiAgdGFnczogW1wiU0VSSUFMSVpFUlwiXSxcbiAgb3ZlcnJpZGU6IHRydWUsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VyZGVQbHVnaW48XG4gIElucHV0VHlwZSBleHRlbmRzIG9iamVjdCxcbiAgU2VyRGVDb250ZXh0IGV4dGVuZHMgRW5kcG9pbnRCZWFyZXIsXG4gIE91dHB1dFR5cGUgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlclxuPihcbiAgY29uZmlnOiBTZXJEZUNvbnRleHQsXG4gIHNlcmlhbGl6ZXI6IFJlcXVlc3RTZXJpYWxpemVyPGFueSwgU2VyRGVDb250ZXh0PixcbiAgZGVzZXJpYWxpemVyOiBSZXNwb25zZURlc2VyaWFsaXplcjxPdXRwdXRUeXBlLCBhbnksIFNlckRlQ29udGV4dD5cbik6IFBsdWdnYWJsZTxJbnB1dFR5cGUsIE91dHB1dFR5cGU+IHtcbiAgcmV0dXJuIHtcbiAgICBhcHBseVRvU3RhY2s6IChjb21tYW5kU3RhY2s6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+KSA9PiB7XG4gICAgICBjb21tYW5kU3RhY2suYWRkKGRlc2VyaWFsaXplck1pZGRsZXdhcmUoY29uZmlnLCBkZXNlcmlhbGl6ZXIpLCBkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlT3B0aW9uKTtcbiAgICAgIGNvbW1hbmRTdGFjay5hZGQoc2VyaWFsaXplck1pZGRsZXdhcmUoY29uZmlnLCBzZXJpYWxpemVyKSwgc2VyaWFsaXplck1pZGRsZXdhcmVPcHRpb24pO1xuICAgIH0sXG4gIH07XG59XG4iXX0=","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { SignatureV4 } from \"@aws-sdk/signature-v4\";\nexport function resolveAwsAuthConfig(input) {\n var _this = this;\n var credentials = input.credentials || input.credentialDefaultProvider(input);\n var normalizedCreds = normalizeProvider(credentials);\n var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256;\n var signer;\n if (input.signer) {\n //if signer is supplied by user, normalize it to a function returning a promise for signer.\n signer = normalizeProvider(input.signer);\n }\n else {\n //construct a provider inferring signing from region.\n signer = function () {\n return normalizeProvider(input.region)()\n .then(function (region) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, input.regionInfoProvider(region)];\n case 1: return [2 /*return*/, [(_a.sent()) || {}, region]];\n }\n }); }); })\n .then(function (_a) {\n var _b = __read(_a, 2), regionInfo = _b[0], region = _b[1];\n var signingRegion = regionInfo.signingRegion, signingService = regionInfo.signingService;\n //update client's singing region and signing service config if they are resolved.\n //signing region resolving order: user supplied signingRegion -> endpoints.json inferred region -> client region\n input.signingRegion = input.signingRegion || signingRegion || region;\n //signing name resolving order:\n //user supplied signingName -> endpoints.json inferred (credential scope -> model arnNamespace) -> model service id\n input.signingName = input.signingName || signingService || input.serviceId;\n return new SignatureV4({\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256: sha256,\n uriEscapePath: signingEscapePath,\n });\n });\n };\n }\n return __assign(__assign({}, input), { systemClockOffset: systemClockOffset,\n signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer });\n}\nfunction normalizeProvider(input) {\n if (typeof input === \"object\") {\n var promisified_1 = Promise.resolve(input);\n return function () { return promisified_1; };\n }\n return input;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQTRDcEQsTUFBTSxVQUFVLG9CQUFvQixDQUFJLEtBQWtEO0lBQTFGLGlCQXVDQztJQXRDQyxJQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxLQUFZLENBQUMsQ0FBQztJQUN2RixJQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxJQUFBLEtBQXVGLEtBQUssa0JBQXBFLEVBQXhCLGlCQUFpQixtQkFBRyxJQUFJLEtBQUEsRUFBRSxLQUE2RCxLQUFLLGtCQUFsQixFQUFoRCxpQkFBaUIsbUJBQUcsS0FBSyxDQUFDLGlCQUFpQixJQUFJLENBQUMsS0FBQSxFQUFFLE1BQU0sR0FBSyxLQUFLLE9BQVYsQ0FBVztJQUNyRyxJQUFJLE1BQStCLENBQUM7SUFDcEMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2hCLDJGQUEyRjtRQUMzRixNQUFNLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzFDO1NBQU07UUFDTCxxREFBcUQ7UUFDckQsTUFBTSxHQUFHO1lBQ1AsT0FBQSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7aUJBQzlCLElBQUksQ0FBQyxVQUFPLE1BQU07OzRCQUFPLHFCQUFNLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBQTs0QkFBeEMsc0JBQUEsQ0FBQyxDQUFDLFNBQXNDLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxDQUF5QixFQUFBOztxQkFBQSxDQUFDO2lCQUN4RyxJQUFJLENBQUMsVUFBQyxFQUFvQjtvQkFBcEIsS0FBQSxhQUFvQixFQUFuQixVQUFVLFFBQUEsRUFBRSxNQUFNLFFBQUE7Z0JBQ2hCLElBQUEsYUFBYSxHQUFxQixVQUFVLGNBQS9CLEVBQUUsY0FBYyxHQUFLLFVBQVUsZUFBZixDQUFnQjtnQkFDckQsaUZBQWlGO2dCQUNqRixnSEFBZ0g7Z0JBQ2hILEtBQUssQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSxhQUFhLElBQUksTUFBTSxDQUFDO2dCQUNyRSwrQkFBK0I7Z0JBQy9CLG1IQUFtSDtnQkFDbkgsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxJQUFJLGNBQWMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUUzRSxPQUFPLElBQUksV0FBVyxDQUFDO29CQUNyQixXQUFXLEVBQUUsZUFBZTtvQkFDNUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxhQUFhO29CQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzFCLE1BQU0sUUFBQTtvQkFDTixhQUFhLEVBQUUsaUJBQWlCO2lCQUNqQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUM7UUFsQkosQ0FrQkksQ0FBQztLQUNSO0lBRUQsNkJBQ0ssS0FBSyxLQUNSLGlCQUFpQixtQkFBQTtRQUNqQixpQkFBaUIsbUJBQUEsRUFDakIsV0FBVyxFQUFFLGVBQWUsRUFDNUIsTUFBTSxRQUFBLElBQ047QUFDSixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBSSxLQUFzQjtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7SUFDRCxPQUFPLEtBQW9CLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hdHVyZVY0IH0gZnJvbSBcIkBhd3Mtc2RrL3NpZ25hdHVyZS12NFwiO1xuaW1wb3J0IHsgQ3JlZGVudGlhbHMsIEhhc2hDb25zdHJ1Y3RvciwgUHJvdmlkZXIsIFJlZ2lvbkluZm8sIFJlZ2lvbkluZm9Qcm92aWRlciwgUmVxdWVzdFNpZ25lciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0F1dGhJbnB1dENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgY3JlZGVudGlhbHMgdXNlZCB0byBzaWduIHJlcXVlc3RzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM/OiBDcmVkZW50aWFscyB8IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcblxuICAvKipcbiAgICogVGhlIHNpZ25lciB0byB1c2Ugd2hlbiBzaWduaW5nIHJlcXVlc3RzLlxuICAgKi9cbiAgc2lnbmVyPzogUmVxdWVzdFNpZ25lciB8IFByb3ZpZGVyPFJlcXVlc3RTaWduZXI+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVzY2FwZSByZXF1ZXN0IHBhdGggd2hlbiBzaWduaW5nIHRoZSByZXF1ZXN0LlxuICAgKi9cbiAgc2lnbmluZ0VzY2FwZVBhdGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbiBvZmZzZXQgdmFsdWUgaW4gbWlsbGlzZWNvbmRzIHRvIGFwcGx5IHRvIGFsbCBzaWduaW5nIHRpbWVzLlxuICAgKi9cbiAgc3lzdGVtQ2xvY2tPZmZzZXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpb24gd2hlcmUgeW91IHdhbnQgdG8gc2lnbiB5b3VyIHJlcXVlc3QgYWdhaW5zdC4gVGhpc1xuICAgKiBjYW4gYmUgZGlmZmVyZW50IHRvIHRoZSByZWdpb24gaW4gdGhlIGVuZHBvaW50LlxuICAgKi9cbiAgc2lnbmluZ1JlZ2lvbj86IHN0cmluZztcbn1cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBjcmVkZW50aWFsRGVmYXVsdFByb3ZpZGVyOiAoaW5wdXQ6IGFueSkgPT4gUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xuICBzaWduaW5nTmFtZT86IHN0cmluZztcbiAgc2VydmljZUlkOiBzdHJpbmc7XG4gIHNoYTI1NjogSGFzaENvbnN0cnVjdG9yO1xufVxuZXhwb3J0IGludGVyZmFjZSBBd3NBdXRoUmVzb2x2ZWRDb25maWcge1xuICBjcmVkZW50aWFsczogUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuICBzaWduZXI6IFByb3ZpZGVyPFJlcXVlc3RTaWduZXI+O1xuICBzaWduaW5nRXNjYXBlUGF0aDogYm9vbGVhbjtcbiAgc3lzdGVtQ2xvY2tPZmZzZXQ6IG51bWJlcjtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQXdzQXV0aENvbmZpZzxUPihpbnB1dDogVCAmIEF3c0F1dGhJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZCk6IFQgJiBBd3NBdXRoUmVzb2x2ZWRDb25maWcge1xuICBjb25zdCBjcmVkZW50aWFscyA9IGlucHV0LmNyZWRlbnRpYWxzIHx8IGlucHV0LmNyZWRlbnRpYWxEZWZhdWx0UHJvdmlkZXIoaW5wdXQgYXMgYW55KTtcbiAgY29uc3Qgbm9ybWFsaXplZENyZWRzID0gbm9ybWFsaXplUHJvdmlkZXIoY3JlZGVudGlhbHMpO1xuICBjb25zdCB7IHNpZ25pbmdFc2NhcGVQYXRoID0gdHJ1ZSwgc3lzdGVtQ2xvY2tPZmZzZXQgPSBpbnB1dC5zeXN0ZW1DbG9ja09mZnNldCB8fCAwLCBzaGEyNTYgfSA9IGlucHV0O1xuICBsZXQgc2lnbmVyOiBQcm92aWRlcjxSZXF1ZXN0U2lnbmVyPjtcbiAgaWYgKGlucHV0LnNpZ25lcikge1xuICAgIC8vaWYgc2lnbmVyIGlzIHN1cHBsaWVkIGJ5IHVzZXIsIG5vcm1hbGl6ZSBpdCB0byBhIGZ1bmN0aW9uIHJldHVybmluZyBhIHByb21pc2UgZm9yIHNpZ25lci5cbiAgICBzaWduZXIgPSBub3JtYWxpemVQcm92aWRlcihpbnB1dC5zaWduZXIpO1xuICB9IGVsc2Uge1xuICAgIC8vY29uc3RydWN0IGEgcHJvdmlkZXIgaW5mZXJyaW5nIHNpZ25pbmcgZnJvbSByZWdpb24uXG4gICAgc2lnbmVyID0gKCkgPT5cbiAgICAgIG5vcm1hbGl6ZVByb3ZpZGVyKGlucHV0LnJlZ2lvbikoKVxuICAgICAgICAudGhlbihhc3luYyAocmVnaW9uKSA9PiBbKGF3YWl0IGlucHV0LnJlZ2lvbkluZm9Qcm92aWRlcihyZWdpb24pKSB8fCB7fSwgcmVnaW9uXSBhcyBbUmVnaW9uSW5mbywgc3RyaW5nXSlcbiAgICAgICAgLnRoZW4oKFtyZWdpb25JbmZvLCByZWdpb25dKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9ID0gcmVnaW9uSW5mbztcbiAgICAgICAgICAvL3VwZGF0ZSBjbGllbnQncyBzaW5naW5nIHJlZ2lvbiBhbmQgc2lnbmluZyBzZXJ2aWNlIGNvbmZpZyBpZiB0aGV5IGFyZSByZXNvbHZlZC5cbiAgICAgICAgICAvL3NpZ25pbmcgcmVnaW9uIHJlc29sdmluZyBvcmRlcjogdXNlciBzdXBwbGllZCBzaWduaW5nUmVnaW9uIC0+IGVuZHBvaW50cy5qc29uIGluZmVycmVkIHJlZ2lvbiAtPiBjbGllbnQgcmVnaW9uXG4gICAgICAgICAgaW5wdXQuc2lnbmluZ1JlZ2lvbiA9IGlucHV0LnNpZ25pbmdSZWdpb24gfHwgc2lnbmluZ1JlZ2lvbiB8fCByZWdpb247XG4gICAgICAgICAgLy9zaWduaW5nIG5hbWUgcmVzb2x2aW5nIG9yZGVyOlxuICAgICAgICAgIC8vdXNlciBzdXBwbGllZCBzaWduaW5nTmFtZSAtPiBlbmRwb2ludHMuanNvbiBpbmZlcnJlZCAoY3JlZGVudGlhbCBzY29wZSAtPiBtb2RlbCBhcm5OYW1lc3BhY2UpIC0+IG1vZGVsIHNlcnZpY2UgaWRcbiAgICAgICAgICBpbnB1dC5zaWduaW5nTmFtZSA9IGlucHV0LnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlIHx8IGlucHV0LnNlcnZpY2VJZDtcblxuICAgICAgICAgIHJldHVybiBuZXcgU2lnbmF0dXJlVjQoe1xuICAgICAgICAgICAgY3JlZGVudGlhbHM6IG5vcm1hbGl6ZWRDcmVkcyxcbiAgICAgICAgICAgIHJlZ2lvbjogaW5wdXQuc2lnbmluZ1JlZ2lvbixcbiAgICAgICAgICAgIHNlcnZpY2U6IGlucHV0LnNpZ25pbmdOYW1lLFxuICAgICAgICAgICAgc2hhMjU2LFxuICAgICAgICAgICAgdXJpRXNjYXBlUGF0aDogc2lnbmluZ0VzY2FwZVBhdGgsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBzeXN0ZW1DbG9ja09mZnNldCxcbiAgICBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICBjcmVkZW50aWFsczogbm9ybWFsaXplZENyZWRzLFxuICAgIHNpZ25lcixcbiAgfTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplUHJvdmlkZXI8VD4oaW5wdXQ6IFQgfCBQcm92aWRlcjxUPik6IFByb3ZpZGVyPFQ+IHtcbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJvYmplY3RcIikge1xuICAgIGNvbnN0IHByb21pc2lmaWVkID0gUHJvbWlzZS5yZXNvbHZlKGlucHV0KTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH1cbiAgcmV0dXJuIGlucHV0IGFzIFByb3ZpZGVyPFQ+O1xufVxuIl19","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nvar isClockSkewed = function (newServerTime, systemClockOffset) {\n return Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - newServerTime) >= 300000;\n};\nvar getSkewCorrectedDate = function (systemClockOffset) { return new Date(Date.now() + systemClockOffset); };\nexport function awsAuthMiddleware(options) {\n return function (next, context) {\n return function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var signer, _a, output, _b, _c, headers, dateHeader, serverTime;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (!HttpRequest.isInstance(args.request))\n return [2 /*return*/, next(args)];\n if (!(typeof options.signer === \"function\")) return [3 /*break*/, 2];\n return [4 /*yield*/, options.signer()];\n case 1:\n _a = _e.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = options.signer;\n _e.label = 3;\n case 3:\n signer = _a;\n _b = next;\n _c = [__assign({}, args)];\n _d = {};\n return [4 /*yield*/, signer.sign(args.request, {\n signingDate: new Date(Date.now() + options.systemClockOffset),\n signingRegion: context[\"signing_region\"],\n signingService: context[\"signing_service\"],\n })];\n case 4: return [4 /*yield*/, _b.apply(void 0, [__assign.apply(void 0, _c.concat([(_d.request = _e.sent(), _d)]))])];\n case 5:\n output = _e.sent();\n headers = output.response.headers;\n dateHeader = headers && (headers.date || headers.Date);\n if (dateHeader) {\n serverTime = Date.parse(dateHeader);\n if (isClockSkewed(serverTime, options.systemClockOffset)) {\n options.systemClockOffset = serverTime - Date.now();\n }\n }\n return [2 /*return*/, output];\n }\n });\n });\n };\n };\n}\nexport var awsAuthMiddlewareOptions = {\n name: \"awsAuthMiddleware\",\n tags: [\"SIGNATURE\", \"AWSAUTH\"],\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n override: true,\n};\nexport var getAwsAuthPlugin = function (options) { return ({\n applyToStack: function (clientStack) {\n clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFhckQsSUFBTSxhQUFhLEdBQUcsVUFBQyxhQUFxQixFQUFFLGlCQUF5QjtJQUNyRSxPQUFBLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxhQUFhLENBQUMsSUFBSSxNQUFNO0FBQXJGLENBQXFGLENBQUM7QUFFeEYsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLGlCQUF5QixJQUFLLE9BQUEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLGlCQUFpQixDQUFDLEVBQXhDLENBQXdDLENBQUM7QUFFckcsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixPQUE4QjtJQUU5QixPQUFPLFVBQUMsSUFBb0MsRUFBRSxPQUFnQztRQUM1RSxPQUFBLFVBQWdCLElBQXFDOzs7Ozs7OzRCQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dDQUFFLHNCQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQztpQ0FDOUMsQ0FBQSxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFBLEVBQXBDLHdCQUFvQzs0QkFBRyxxQkFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUE7OzRCQUF0QixLQUFBLFNBQXNCLENBQUE7Ozs0QkFBRyxLQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUE7Ozs0QkFBdkYsTUFBTSxLQUFpRjs0QkFDeEUsS0FBQSxJQUFJLENBQUE7K0NBQ3BCLElBQUk7OzRCQUNFLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQ0FDdkMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7b0NBQzdELGFBQWEsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUM7b0NBQ3hDLGNBQWMsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUM7aUNBQzNDLENBQUMsRUFBQTtnQ0FOVyxxQkFBTSxxREFFbkIsVUFBTyxHQUFFLFNBSVAsVUFDRixFQUFBOzs0QkFQSSxNQUFNLEdBQUcsU0FPYjs0QkFFTSxPQUFPLEdBQUssTUFBTSxDQUFDLFFBQWUsUUFBM0IsQ0FBNEI7NEJBQ3JDLFVBQVUsR0FBRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDN0QsSUFBSSxVQUFVLEVBQUU7Z0NBQ1IsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7Z0NBQzFDLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRTtvQ0FDeEQsT0FBTyxDQUFDLGlCQUFpQixHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7aUNBQ3JEOzZCQUNGOzRCQUVELHNCQUFPLE1BQU0sRUFBQzs7OztTQUNmO0lBdEJELENBc0JDLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxDQUFDLElBQU0sd0JBQXdCLEdBQThCO0lBQ2pFLElBQUksRUFBRSxtQkFBbUI7SUFDekIsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztJQUM5QixRQUFRLEVBQUUsT0FBTztJQUNqQixZQUFZLEVBQUUsaUJBQWlCO0lBQy9CLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLFVBQUMsT0FBOEIsSUFBMEIsT0FBQSxDQUFDO0lBQ3hGLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7Q0FDRixDQUFDLEVBSnVGLENBSXZGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBGaW5hbGl6ZUhhbmRsZXIsXG4gIEZpbmFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgRmluYWxpemVIYW5kbGVyT3V0cHV0LFxuICBGaW5hbGl6ZVJlcXVlc3RNaWRkbGV3YXJlLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgUGx1Z2dhYmxlLFxuICBSZWxhdGl2ZU1pZGRsZXdhcmVPcHRpb25zLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQXdzQXV0aFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcblxuY29uc3QgaXNDbG9ja1NrZXdlZCA9IChuZXdTZXJ2ZXJUaW1lOiBudW1iZXIsIHN5c3RlbUNsb2NrT2Zmc2V0OiBudW1iZXIpID0+XG4gIE1hdGguYWJzKGdldFNrZXdDb3JyZWN0ZWREYXRlKHN5c3RlbUNsb2NrT2Zmc2V0KS5nZXRUaW1lKCkgLSBuZXdTZXJ2ZXJUaW1lKSA+PSAzMDAwMDA7XG5cbmNvbnN0IGdldFNrZXdDb3JyZWN0ZWREYXRlID0gKHN5c3RlbUNsb2NrT2Zmc2V0OiBudW1iZXIpID0+IG5ldyBEYXRlKERhdGUubm93KCkgKyBzeXN0ZW1DbG9ja09mZnNldCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBhd3NBdXRoTWlkZGxld2FyZTxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PihcbiAgb3B0aW9uczogQXdzQXV0aFJlc29sdmVkQ29uZmlnXG4pOiBGaW5hbGl6ZVJlcXVlc3RNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+IHtcbiAgcmV0dXJuIChuZXh0OiBGaW5hbGl6ZUhhbmRsZXI8SW5wdXQsIE91dHB1dD4sIGNvbnRleHQ6IEhhbmRsZXJFeGVjdXRpb25Db250ZXh0KTogRmluYWxpemVIYW5kbGVyPElucHV0LCBPdXRwdXQ+ID0+XG4gICAgYXN5bmMgZnVuY3Rpb24gKGFyZ3M6IEZpbmFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD4pOiBQcm9taXNlPEZpbmFsaXplSGFuZGxlck91dHB1dDxPdXRwdXQ+PiB7XG4gICAgICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoYXJncy5yZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgICBjb25zdCBzaWduZXIgPSB0eXBlb2Ygb3B0aW9ucy5zaWduZXIgPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IG9wdGlvbnMuc2lnbmVyKCkgOiBvcHRpb25zLnNpZ25lcjtcbiAgICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IG5leHQoe1xuICAgICAgICAuLi5hcmdzLFxuICAgICAgICByZXF1ZXN0OiBhd2FpdCBzaWduZXIuc2lnbihhcmdzLnJlcXVlc3QsIHtcbiAgICAgICAgICBzaWduaW5nRGF0ZTogbmV3IERhdGUoRGF0ZS5ub3coKSArIG9wdGlvbnMuc3lzdGVtQ2xvY2tPZmZzZXQpLFxuICAgICAgICAgIHNpZ25pbmdSZWdpb246IGNvbnRleHRbXCJzaWduaW5nX3JlZ2lvblwiXSxcbiAgICAgICAgICBzaWduaW5nU2VydmljZTogY29udGV4dFtcInNpZ25pbmdfc2VydmljZVwiXSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgeyBoZWFkZXJzIH0gPSBvdXRwdXQucmVzcG9uc2UgYXMgYW55O1xuICAgICAgY29uc3QgZGF0ZUhlYWRlciA9IGhlYWRlcnMgJiYgKGhlYWRlcnMuZGF0ZSB8fCBoZWFkZXJzLkRhdGUpO1xuICAgICAgaWYgKGRhdGVIZWFkZXIpIHtcbiAgICAgICAgY29uc3Qgc2VydmVyVGltZSA9IERhdGUucGFyc2UoZGF0ZUhlYWRlcik7XG4gICAgICAgIGlmIChpc0Nsb2NrU2tld2VkKHNlcnZlclRpbWUsIG9wdGlvbnMuc3lzdGVtQ2xvY2tPZmZzZXQpKSB7XG4gICAgICAgICAgb3B0aW9ucy5zeXN0ZW1DbG9ja09mZnNldCA9IHNlcnZlclRpbWUgLSBEYXRlLm5vdygpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGF3c0F1dGhNaWRkbGV3YXJlT3B0aW9uczogUmVsYXRpdmVNaWRkbGV3YXJlT3B0aW9ucyA9IHtcbiAgbmFtZTogXCJhd3NBdXRoTWlkZGxld2FyZVwiLFxuICB0YWdzOiBbXCJTSUdOQVRVUkVcIiwgXCJBV1NBVVRIXCJdLFxuICByZWxhdGlvbjogXCJhZnRlclwiLFxuICB0b01pZGRsZXdhcmU6IFwicmV0cnlNaWRkbGV3YXJlXCIsXG4gIG92ZXJyaWRlOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IGdldEF3c0F1dGhQbHVnaW4gPSAob3B0aW9uczogQXdzQXV0aFJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZFJlbGF0aXZlVG8oYXdzQXV0aE1pZGRsZXdhcmUob3B0aW9ucyksIGF3c0F1dGhNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","import { __assign } from \"tslib\";\nexport function resolveUserAgentConfig(input) {\n return __assign(__assign({}, input), { customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWdCQSxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLEtBQW9EO0lBRXBELDZCQUNLLEtBQUssS0FDUixlQUFlLEVBQUUsT0FBTyxLQUFLLENBQUMsZUFBZSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUM5RztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciwgVXNlckFnZW50IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBZ2VudElucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBjdXN0b20gdXNlciBhZ2VudCBoZWFkZXIgdGhhdCB3b3VsZCBiZSBhcHBlbmRlZCB0byBkZWZhdWx0IG9uZVxuICAgKi9cbiAgY3VzdG9tVXNlckFnZW50Pzogc3RyaW5nIHwgVXNlckFnZW50O1xufVxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogUHJvdmlkZXI8VXNlckFnZW50PjtcbiAgcnVudGltZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyB7XG4gIGRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcjogUHJvdmlkZXI8VXNlckFnZW50PjtcbiAgY3VzdG9tVXNlckFnZW50PzogVXNlckFnZW50O1xuICBydW50aW1lOiBzdHJpbmc7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVVzZXJBZ2VudENvbmZpZzxUPihcbiAgaW5wdXQ6IFQgJiBQcmV2aW91c2x5UmVzb2x2ZWQgJiBVc2VyQWdlbnRJbnB1dENvbmZpZ1xuKTogVCAmIFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBjdXN0b21Vc2VyQWdlbnQ6IHR5cGVvZiBpbnB1dC5jdXN0b21Vc2VyQWdlbnQgPT09IFwic3RyaW5nXCIgPyBbW2lucHV0LmN1c3RvbVVzZXJBZ2VudF1dIDogaW5wdXQuY3VzdG9tVXNlckFnZW50LFxuICB9O1xufVxuIl19","export var USER_AGENT = \"user-agent\";\nexport var X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport var SPACE = \" \";\nexport var UA_ESCAPE_REGEX = /[^\\!\\#\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxJQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFFekIsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFVTRVJfQUdFTlQgPSBcInVzZXItYWdlbnRcIjtcblxuZXhwb3J0IGNvbnN0IFhfQU1aX1VTRVJfQUdFTlQgPSBcIngtYW16LXVzZXItYWdlbnRcIjtcblxuZXhwb3J0IGNvbnN0IFNQQUNFID0gXCIgXCI7XG5cbmV4cG9ydCBjb25zdCBVQV9FU0NBUEVfUkVHRVggPSAvW15cXCFcXCNcXCRcXCVcXCZcXCdcXCpcXCtcXC1cXC5cXF5cXF9cXGBcXHxcXH5cXGRcXHddL2c7XG4iXX0=","import { __assign, __awaiter, __generator, __read, __spread } from \"tslib\";\nimport { HttpRequest } from \"@aws-sdk/protocol-http\";\nimport { SPACE, UA_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT } from \"./constants\";\n/**\n * Build user agent header sections from:\n * 1. runtime-specific default user agent provider;\n * 2. custom user agent from `customUserAgent` client config;\n * 3. handler execution context set by internal SDK components;\n * The built user agent will be set to `x-amz-user-agent` header for ALL the\n * runtimes.\n * Please note that any override to the `user-agent` or `x-amz-user-agent` header\n * in the HTTP request is discouraged. Please use `customUserAgent` client\n * config or middleware setting the `userAgent` context to generate desired user\n * agent.\n */\nexport var userAgentMiddleware = function (options) { return function (next, context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {\n var request, headers, userAgent, defaultUserAgent, customUserAgent, normalUAValue;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n request = args.request;\n if (!HttpRequest.isInstance(request))\n return [2 /*return*/, next(args)];\n headers = request.headers;\n userAgent = ((_a = context === null || context === void 0 ? void 0 : context.userAgent) === null || _a === void 0 ? void 0 : _a.map(escapeUserAgent)) || [];\n return [4 /*yield*/, options.defaultUserAgentProvider()];\n case 1:\n defaultUserAgent = (_c.sent()).map(escapeUserAgent);\n customUserAgent = ((_b = options === null || options === void 0 ? void 0 : options.customUserAgent) === null || _b === void 0 ? void 0 : _b.map(escapeUserAgent)) || [];\n // Set value to AWS-specific user agent header\n headers[X_AMZ_USER_AGENT] = __spread(defaultUserAgent, userAgent, customUserAgent).join(SPACE);\n normalUAValue = __spread(defaultUserAgent.filter(function (section) { return section.startsWith(\"aws-sdk-\"); }), customUserAgent).join(SPACE);\n if (options.runtime !== \"browser\" && normalUAValue) {\n headers[USER_AGENT] = headers[USER_AGENT] ? headers[USER_AGENT] + \" \" + normalUAValue : normalUAValue;\n }\n return [2 /*return*/, next(__assign(__assign({}, args), { request: request }))];\n }\n });\n}); }; }; };\n/**\n * Escape the each pair according to https://tools.ietf.org/html/rfc5234 and join the pair with pattern `name/version`.\n * User agent name may include prefix like `md/`, `api/`, `os/` etc., we should not escape the `/` after the prefix.\n * @private\n */\nvar escapeUserAgent = function (_a) {\n var _b = __read(_a, 2), name = _b[0], version = _b[1];\n var prefixSeparatorIndex = name.indexOf(\"/\");\n var prefix = name.substring(0, prefixSeparatorIndex); // If no prefix, prefix is just \"\"\n var uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter(function (item) { return item && item.length > 0; })\n .map(function (item) { return item === null || item === void 0 ? void 0 : item.replace(UA_ESCAPE_REGEX, \"_\"); })\n .join(\"/\");\n};\nexport var getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport var getUserAgentPlugin = function (config) { return ({\n applyToStack: function (clientStack) {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n}); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZXItYWdlbnQtbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBY3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLFVBQUMsT0FBZ0MsSUFBSyxPQUFBLFVBQ3ZFLElBQTRCLEVBQzVCLE9BQWdDLElBQ0wsT0FBQSxVQUFPLElBQWdDOzs7Ozs7Z0JBQzFELE9BQU8sR0FBSyxJQUFJLFFBQVQsQ0FBVTtnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO29CQUFFLHNCQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQztnQkFDaEQsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFhO2dCQUN0QixTQUFTLEdBQUcsT0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsU0FBUywwQ0FBRSxHQUFHLENBQUMsZUFBZSxNQUFLLEVBQUUsQ0FBQztnQkFDdkMscUJBQU0sT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUE7O2dCQUE1RCxnQkFBZ0IsR0FBRyxDQUFDLFNBQXdDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUNsRixlQUFlLEdBQUcsT0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZUFBZSwwQ0FBRSxHQUFHLENBQUMsZUFBZSxNQUFLLEVBQUUsQ0FBQztnQkFDN0UsOENBQThDO2dCQUM5QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxTQUFJLGdCQUFnQixFQUFLLFNBQVMsRUFBSyxlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUUxRixhQUFhLEdBQUcsU0FDakIsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBOUIsQ0FBOEIsQ0FBQyxFQUNwRSxlQUFlLEVBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDZCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLGFBQWEsRUFBRTtvQkFDbEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFJLGFBQWUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2lCQUN2RztnQkFFRCxzQkFBTyxJQUFJLHVCQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOzs7S0FDSixFQXRCNEIsQ0FzQjVCLEVBekJ3RSxDQXlCeEUsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxJQUFNLGVBQWUsR0FBRyxVQUFDLEVBQThCO1FBQTlCLEtBQUEsYUFBOEIsRUFBN0IsSUFBSSxRQUFBLEVBQUUsT0FBTyxRQUFBO0lBQ3JDLElBQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsa0NBQWtDO0lBQzFGLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1FBQ3BCLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7S0FDL0I7SUFDRCxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7U0FDN0IsTUFBTSxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUF2QixDQUF1QixDQUFDO1NBQ3pDLEdBQUcsQ0FBQyxVQUFDLElBQUksV0FBSyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLElBQUMsQ0FBQztTQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSw2QkFBNkIsR0FBMkM7SUFDbkYsSUFBSSxFQUFFLHdCQUF3QjtJQUM5QixJQUFJLEVBQUUsT0FBTztJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQ3RDLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLFVBQUMsTUFBK0IsSUFBMEIsT0FBQSxDQUFDO0lBQzNGLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRixDQUFDLEVBSjBGLENBSTFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBBYnNvbHV0ZUxvY2F0aW9uLFxuICBCdWlsZEhhbmRsZXIsXG4gIEJ1aWxkSGFuZGxlckFyZ3VtZW50cyxcbiAgQnVpbGRIYW5kbGVyT3B0aW9ucyxcbiAgQnVpbGRIYW5kbGVyT3V0cHV0LFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgTWV0YWRhdGFCZWFyZXIsXG4gIFBsdWdnYWJsZSxcbiAgVXNlckFnZW50UGFpcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7IFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbnNcIjtcbmltcG9ydCB7IFNQQUNFLCBVQV9FU0NBUEVfUkVHRVgsIFVTRVJfQUdFTlQsIFhfQU1aX1VTRVJfQUdFTlQgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBCdWlsZCB1c2VyIGFnZW50IGhlYWRlciBzZWN0aW9ucyBmcm9tOlxuICogMS4gcnVudGltZS1zcGVjaWZpYyBkZWZhdWx0IHVzZXIgYWdlbnQgcHJvdmlkZXI7XG4gKiAyLiBjdXN0b20gdXNlciBhZ2VudCBmcm9tIGBjdXN0b21Vc2VyQWdlbnRgIGNsaWVudCBjb25maWc7XG4gKiAzLiBoYW5kbGVyIGV4ZWN1dGlvbiBjb250ZXh0IHNldCBieSBpbnRlcm5hbCBTREsgY29tcG9uZW50cztcbiAqIFRoZSBidWlsdCB1c2VyIGFnZW50IHdpbGwgYmUgc2V0IHRvIGB4LWFtei11c2VyLWFnZW50YCBoZWFkZXIgZm9yIEFMTCB0aGVcbiAqIHJ1bnRpbWVzLlxuICogUGxlYXNlIG5vdGUgdGhhdCBhbnkgb3ZlcnJpZGUgdG8gdGhlIGB1c2VyLWFnZW50YCBvciBgeC1hbXotdXNlci1hZ2VudGAgaGVhZGVyXG4gKiBpbiB0aGUgSFRUUCByZXF1ZXN0IGlzIGRpc2NvdXJhZ2VkLiBQbGVhc2UgdXNlIGBjdXN0b21Vc2VyQWdlbnRgIGNsaWVudFxuICogY29uZmlnIG9yIG1pZGRsZXdhcmUgc2V0dGluZyB0aGUgYHVzZXJBZ2VudGAgY29udGV4dCB0byBnZW5lcmF0ZSBkZXNpcmVkIHVzZXJcbiAqIGFnZW50LlxuICovXG5leHBvcnQgY29uc3QgdXNlckFnZW50TWlkZGxld2FyZSA9IChvcHRpb25zOiBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZykgPT4gPE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyPihcbiAgbmV4dDogQnVpbGRIYW5kbGVyPGFueSwgYW55PixcbiAgY29udGV4dDogSGFuZGxlckV4ZWN1dGlvbkNvbnRleHRcbik6IEJ1aWxkSGFuZGxlcjxhbnksIGFueT4gPT4gYXN5bmMgKGFyZ3M6IEJ1aWxkSGFuZGxlckFyZ3VtZW50czxhbnk+KTogUHJvbWlzZTxCdWlsZEhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICBjb25zdCB7IHJlcXVlc3QgfSA9IGFyZ3M7XG4gIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gIGNvbnN0IHsgaGVhZGVycyB9ID0gcmVxdWVzdDtcbiAgY29uc3QgdXNlckFnZW50ID0gY29udGV4dD8udXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9IChhd2FpdCBvcHRpb25zLmRlZmF1bHRVc2VyQWdlbnRQcm92aWRlcigpKS5tYXAoZXNjYXBlVXNlckFnZW50KTtcbiAgY29uc3QgY3VzdG9tVXNlckFnZW50ID0gb3B0aW9ucz8uY3VzdG9tVXNlckFnZW50Py5tYXAoZXNjYXBlVXNlckFnZW50KSB8fCBbXTtcbiAgLy8gU2V0IHZhbHVlIHRvIEFXUy1zcGVjaWZpYyB1c2VyIGFnZW50IGhlYWRlclxuICBoZWFkZXJzW1hfQU1aX1VTRVJfQUdFTlRdID0gWy4uLmRlZmF1bHRVc2VyQWdlbnQsIC4uLnVzZXJBZ2VudCwgLi4uY3VzdG9tVXNlckFnZW50XS5qb2luKFNQQUNFKTtcbiAgLy8gR2V0IHZhbHVlIHRvIGJlIHNlbnQgd2l0aCBub24tQVdTLXNwZWNpZmljIHVzZXIgYWdlbnQgaGVhZGVyLlxuICBjb25zdCBub3JtYWxVQVZhbHVlID0gW1xuICAgIC4uLmRlZmF1bHRVc2VyQWdlbnQuZmlsdGVyKChzZWN0aW9uKSA9PiBzZWN0aW9uLnN0YXJ0c1dpdGgoXCJhd3Mtc2RrLVwiKSksXG4gICAgLi4uY3VzdG9tVXNlckFnZW50LFxuICBdLmpvaW4oU1BBQ0UpO1xuICBpZiAob3B0aW9ucy5ydW50aW1lICE9PSBcImJyb3dzZXJcIiAmJiBub3JtYWxVQVZhbHVlKSB7XG4gICAgaGVhZGVyc1tVU0VSX0FHRU5UXSA9IGhlYWRlcnNbVVNFUl9BR0VOVF0gPyBgJHtoZWFkZXJzW1VTRVJfQUdFTlRdfSAke25vcm1hbFVBVmFsdWV9YCA6IG5vcm1hbFVBVmFsdWU7XG4gIH1cblxuICByZXR1cm4gbmV4dCh7XG4gICAgLi4uYXJncyxcbiAgICByZXF1ZXN0LFxuICB9KTtcbn07XG5cbi8qKlxuICogRXNjYXBlIHRoZSBlYWNoIHBhaXIgYWNjb3JkaW5nIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MjM0IGFuZCBqb2luIHRoZSBwYWlyIHdpdGggcGF0dGVybiBgbmFtZS92ZXJzaW9uYC5cbiAqIFVzZXIgYWdlbnQgbmFtZSBtYXkgaW5jbHVkZSBwcmVmaXggbGlrZSBgbWQvYCwgYGFwaS9gLCBgb3MvYCBldGMuLCB3ZSBzaG91bGQgbm90IGVzY2FwZSB0aGUgYC9gIGFmdGVyIHRoZSBwcmVmaXguXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBlc2NhcGVVc2VyQWdlbnQgPSAoW25hbWUsIHZlcnNpb25dOiBVc2VyQWdlbnRQYWlyKTogc3RyaW5nID0+IHtcbiAgY29uc3QgcHJlZml4U2VwYXJhdG9ySW5kZXggPSBuYW1lLmluZGV4T2YoXCIvXCIpO1xuICBjb25zdCBwcmVmaXggPSBuYW1lLnN1YnN0cmluZygwLCBwcmVmaXhTZXBhcmF0b3JJbmRleCk7IC8vIElmIG5vIHByZWZpeCwgcHJlZml4IGlzIGp1c3QgXCJcIlxuICBsZXQgdWFOYW1lID0gbmFtZS5zdWJzdHJpbmcocHJlZml4U2VwYXJhdG9ySW5kZXggKyAxKTtcbiAgaWYgKHByZWZpeCA9PT0gXCJhcGlcIikge1xuICAgIHVhTmFtZSA9IHVhTmFtZS50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIHJldHVybiBbcHJlZml4LCB1YU5hbWUsIHZlcnNpb25dXG4gICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAmJiBpdGVtLmxlbmd0aCA+IDApXG4gICAgLm1hcCgoaXRlbSkgPT4gaXRlbT8ucmVwbGFjZShVQV9FU0NBUEVfUkVHRVgsIFwiX1wiKSlcbiAgICAuam9pbihcIi9cIik7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnM6IEJ1aWxkSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uID0ge1xuICBuYW1lOiBcImdldFVzZXJBZ2VudE1pZGRsZXdhcmVcIixcbiAgc3RlcDogXCJidWlsZFwiLFxuICBwcmlvcml0eTogXCJsb3dcIixcbiAgdGFnczogW1wiU0VUX1VTRVJfQUdFTlRcIiwgXCJVU0VSX0FHRU5UXCJdLFxuICBvdmVycmlkZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVc2VyQWdlbnRQbHVnaW4gPSAoY29uZmlnOiBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQodXNlckFnZW50TWlkZGxld2FyZShjb25maWcpLCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ==","var HttpResponse = /** @class */ (function () {\n function HttpResponse(options) {\n this.statusCode = options.statusCode;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n HttpResponse.isInstance = function (response) {\n //determine if response is a valid HttpResponse\n if (!response)\n return false;\n var resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n };\n return HttpResponse;\n}());\nexport { HttpResponse };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cFJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2h0dHBSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQTtJQUtFLHNCQUFZLE9BQTRCO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRU0sdUJBQVUsR0FBakIsVUFBa0IsUUFBaUI7UUFDakMsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDNUIsSUFBTSxJQUFJLEdBQUcsUUFBZSxDQUFDO1FBQzdCLE9BQU8sT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDO0lBQ2pGLENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUFqQkQsSUFpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcsIEh0dHBNZXNzYWdlLCBIdHRwUmVzcG9uc2UgYXMgSUh0dHBSZXNwb25zZSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG50eXBlIEh0dHBSZXNwb25zZU9wdGlvbnMgPSBQYXJ0aWFsPEh0dHBNZXNzYWdlPiAmIHtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVzcG9uc2UgZXh0ZW5kcyBJSHR0cFJlc3BvbnNlIHt9XG5cbmV4cG9ydCBjbGFzcyBIdHRwUmVzcG9uc2Uge1xuICBwdWJsaWMgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBwdWJsaWMgaGVhZGVyczogSGVhZGVyQmFnO1xuICBwdWJsaWMgYm9keT86IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIdHRwUmVzcG9uc2VPcHRpb25zKSB7XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gb3B0aW9ucy5zdGF0dXNDb2RlO1xuICAgIHRoaXMuaGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyB8fCB7fTtcbiAgICB0aGlzLmJvZHkgPSBvcHRpb25zLmJvZHk7XG4gIH1cblxuICBzdGF0aWMgaXNJbnN0YW5jZShyZXNwb25zZTogdW5rbm93bik6IHJlc3BvbnNlIGlzIEh0dHBSZXNwb25zZSB7XG4gICAgLy9kZXRlcm1pbmUgaWYgcmVzcG9uc2UgaXMgYSB2YWxpZCBIdHRwUmVzcG9uc2VcbiAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcmVzcCA9IHJlc3BvbnNlIGFzIGFueTtcbiAgICByZXR1cm4gdHlwZW9mIHJlc3Auc3RhdHVzQ29kZSA9PT0gXCJudW1iZXJcIiAmJiB0eXBlb2YgcmVzcC5oZWFkZXJzID09PSBcIm9iamVjdFwiO1xuICB9XG59XG4iXX0=","import { __assign, __read, __spread } from \"tslib\";\nvar HttpRequest = /** @class */ (function () {\n function HttpRequest(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.substr(-1) !== \":\"\n ? options.protocol + \":\"\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? \"/\" + options.path : options.path) : \"/\";\n }\n HttpRequest.isInstance = function (request) {\n //determine if request is a valid httpRequest\n if (!request)\n return false;\n var req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n };\n HttpRequest.prototype.clone = function () {\n var cloned = new HttpRequest(__assign(__assign({}, this), { headers: __assign({}, this.headers) }));\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n };\n return HttpRequest;\n}());\nexport { HttpRequest };\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spread(param) : param, _a));\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cFJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaHR0cFJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQU1BO0lBVUUscUJBQVksT0FBMkI7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVE7WUFDOUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRztnQkFDbkMsQ0FBQyxDQUFJLE9BQU8sQ0FBQyxRQUFRLE1BQUc7Z0JBQ3hCLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNwQixDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBSSxPQUFPLENBQUMsSUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN4RyxDQUFDO0lBRU0sc0JBQVUsR0FBakIsVUFBa0IsT0FBZ0I7UUFDaEMsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDM0IsSUFBTSxHQUFHLEdBQVEsT0FBTyxDQUFDO1FBQ3pCLE9BQU8sQ0FDTCxRQUFRLElBQUksR0FBRztZQUNmLFVBQVUsSUFBSSxHQUFHO1lBQ2pCLFVBQVUsSUFBSSxHQUFHO1lBQ2pCLE1BQU0sSUFBSSxHQUFHO1lBQ2IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUTtZQUNoQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxRQUFRLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsMkJBQUssR0FBTDtRQUNFLElBQU0sTUFBTSxHQUFHLElBQUksV0FBVyx1QkFDekIsSUFBSSxLQUNQLE9BQU8sZUFBTyxJQUFJLENBQUMsT0FBTyxLQUMxQixDQUFDO1FBQ0gsSUFBSSxNQUFNLENBQUMsS0FBSztZQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBL0NELElBK0NDOztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQXdCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUMzRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQ3REO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZHBvaW50LCBIZWFkZXJCYWcsIEh0dHBNZXNzYWdlLCBIdHRwUmVxdWVzdCBhcyBJSHR0cFJlcXVlc3QsIFF1ZXJ5UGFyYW1ldGVyQmFnIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbnR5cGUgSHR0cFJlcXVlc3RPcHRpb25zID0gUGFydGlhbDxIdHRwTWVzc2FnZT4gJiBQYXJ0aWFsPEVuZHBvaW50PiAmIHsgbWV0aG9kPzogc3RyaW5nIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJlcXVlc3QgZXh0ZW5kcyBJSHR0cFJlcXVlc3Qge31cblxuZXhwb3J0IGNsYXNzIEh0dHBSZXF1ZXN0IGltcGxlbWVudHMgSHR0cE1lc3NhZ2UsIEVuZHBvaW50IHtcbiAgcHVibGljIG1ldGhvZDogc3RyaW5nO1xuICBwdWJsaWMgcHJvdG9jb2w6IHN0cmluZztcbiAgcHVibGljIGhvc3RuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBwb3J0PzogbnVtYmVyO1xuICBwdWJsaWMgcGF0aDogc3RyaW5nO1xuICBwdWJsaWMgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnO1xuICBwdWJsaWMgaGVhZGVyczogSGVhZGVyQmFnO1xuICBwdWJsaWMgYm9keT86IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIdHRwUmVxdWVzdE9wdGlvbnMpIHtcbiAgICB0aGlzLm1ldGhvZCA9IG9wdGlvbnMubWV0aG9kIHx8IFwiR0VUXCI7XG4gICAgdGhpcy5ob3N0bmFtZSA9IG9wdGlvbnMuaG9zdG5hbWUgfHwgXCJsb2NhbGhvc3RcIjtcbiAgICB0aGlzLnBvcnQgPSBvcHRpb25zLnBvcnQ7XG4gICAgdGhpcy5xdWVyeSA9IG9wdGlvbnMucXVlcnkgfHwge307XG4gICAgdGhpcy5oZWFkZXJzID0gb3B0aW9ucy5oZWFkZXJzIHx8IHt9O1xuICAgIHRoaXMuYm9keSA9IG9wdGlvbnMuYm9keTtcbiAgICB0aGlzLnByb3RvY29sID0gb3B0aW9ucy5wcm90b2NvbFxuICAgICAgPyBvcHRpb25zLnByb3RvY29sLnN1YnN0cigtMSkgIT09IFwiOlwiXG4gICAgICAgID8gYCR7b3B0aW9ucy5wcm90b2NvbH06YFxuICAgICAgICA6IG9wdGlvbnMucHJvdG9jb2xcbiAgICAgIDogXCJodHRwczpcIjtcbiAgICB0aGlzLnBhdGggPSBvcHRpb25zLnBhdGggPyAob3B0aW9ucy5wYXRoLmNoYXJBdCgwKSAhPT0gXCIvXCIgPyBgLyR7b3B0aW9ucy5wYXRofWAgOiBvcHRpb25zLnBhdGgpIDogXCIvXCI7XG4gIH1cblxuICBzdGF0aWMgaXNJbnN0YW5jZShyZXF1ZXN0OiB1bmtub3duKTogcmVxdWVzdCBpcyBIdHRwUmVxdWVzdCB7XG4gICAgLy9kZXRlcm1pbmUgaWYgcmVxdWVzdCBpcyBhIHZhbGlkIGh0dHBSZXF1ZXN0XG4gICAgaWYgKCFyZXF1ZXN0KSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcmVxOiBhbnkgPSByZXF1ZXN0O1xuICAgIHJldHVybiAoXG4gICAgICBcIm1ldGhvZFwiIGluIHJlcSAmJlxuICAgICAgXCJwcm90b2NvbFwiIGluIHJlcSAmJlxuICAgICAgXCJob3N0bmFtZVwiIGluIHJlcSAmJlxuICAgICAgXCJwYXRoXCIgaW4gcmVxICYmXG4gICAgICB0eXBlb2YgcmVxW1wicXVlcnlcIl0gPT09IFwib2JqZWN0XCIgJiZcbiAgICAgIHR5cGVvZiByZXFbXCJoZWFkZXJzXCJdID09PSBcIm9iamVjdFwiXG4gICAgKTtcbiAgfVxuXG4gIGNsb25lKCk6IEh0dHBSZXF1ZXN0IHtcbiAgICBjb25zdCBjbG9uZWQgPSBuZXcgSHR0cFJlcXVlc3Qoe1xuICAgICAgLi4udGhpcyxcbiAgICAgIGhlYWRlcnM6IHsgLi4udGhpcy5oZWFkZXJzIH0sXG4gICAgfSk7XG4gICAgaWYgKGNsb25lZC5xdWVyeSkgY2xvbmVkLnF1ZXJ5ID0gY2xvbmVRdWVyeShjbG9uZWQucXVlcnkpO1xuICAgIHJldHVybiBjbG9uZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xvbmVRdWVyeShxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcpOiBRdWVyeVBhcmFtZXRlckJhZyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeSkucmVkdWNlKChjYXJyeTogUXVlcnlQYXJhbWV0ZXJCYWcsIHBhcmFtTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBxdWVyeVtwYXJhbU5hbWVdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIFtwYXJhbU5hbWVdOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IFsuLi5wYXJhbV0gOiBwYXJhbSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nexport function buildQueryString(query) {\n var e_1, _a;\n var parts = [];\n try {\n for (var _b = __values(Object.keys(query).sort()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (var i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(key + \"=\" + escapeUri(value[i]));\n }\n }\n else {\n var qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += \"=\" + escapeUri(value);\n }\n parts.push(qsEntry);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return parts.join(\"&\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBd0I7O0lBQ3ZELElBQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQzs7UUFDM0IsS0FBZ0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQSw0QkFBRTtZQUF0QyxJQUFJLEdBQUcsV0FBQTtZQUNWLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDbEQsS0FBSyxDQUFDLElBQUksQ0FBSSxHQUFHLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBRyxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNsQixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7b0JBQ3RDLE9BQU8sSUFBSSxNQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUcsQ0FBQztpQkFDbkM7Z0JBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyQjtTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5UGFyYW1ldGVyQmFnIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFF1ZXJ5U3RyaW5nKHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMocXVlcnkpLnNvcnQoKSkge1xuICAgIGNvbnN0IHZhbHVlID0gcXVlcnlba2V5XTtcbiAgICBrZXkgPSBlc2NhcGVVcmkoa2V5KTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwLCBpTGVuID0gdmFsdWUubGVuZ3RoOyBpIDwgaUxlbjsgaSsrKSB7XG4gICAgICAgIHBhcnRzLnB1c2goYCR7a2V5fT0ke2VzY2FwZVVyaSh2YWx1ZVtpXSl9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBxc0VudHJ5ID0ga2V5O1xuICAgICAgaWYgKHZhbHVlIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBxc0VudHJ5ICs9IGA9JHtlc2NhcGVVcmkodmFsdWUpfWA7XG4gICAgICB9XG4gICAgICBwYXJ0cy5wdXNoKHFzRW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJ0cy5qb2luKFwiJlwiKTtcbn1cbiJdfQ==","export var ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport var CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport var AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport var SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport var EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport var SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport var TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport var AUTH_HEADER = \"authorization\";\nexport var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport var DATE_HEADER = \"date\";\nexport var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport var SHA256_HEADER = \"x-amz-content-sha256\";\nexport var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport var HOST_HEADER = \"host\";\nexport var ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexport var PROXY_HEADER_PATTERN = /^proxy-/;\nexport var SEC_HEADER_PATTERN = /^sec-/;\nexport var UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport var ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport var EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport var UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport var MAX_CACHE_SIZE = 50;\nexport var KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxxQkFBcUIsR0FBRyxpQkFBaUIsQ0FBQztBQUN2RCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQztBQUN6RCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFDakQsTUFBTSxDQUFDLElBQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDaEUsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQUcsZUFBZSxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxJQUFNLHFCQUFxQixHQUFHLGlCQUFpQixDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxJQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBRXhELE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxlQUFlLENBQUM7QUFDM0MsTUFBTSxDQUFDLElBQU0sZUFBZSxHQUFHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUM7QUFDbEMsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzdFLE1BQU0sQ0FBQyxJQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztBQUNwRCxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUQsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQztBQUVsQyxNQUFNLENBQUMsSUFBTSx5QkFBeUIsR0FBRztJQUN2QyxhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsSUFBSTtJQUNyQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsWUFBWSxFQUFFLElBQUk7SUFDbEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsWUFBWSxFQUFFLElBQUk7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtDQUN4QixDQUFDO0FBRUYsTUFBTSxDQUFDLElBQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUUxQyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUUxRCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsSUFBTSwwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztBQUVyRSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxJQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztBQUVsRCxNQUFNLENBQUMsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUxHT1JJVEhNX1FVRVJZX1BBUkFNID0gXCJYLUFtei1BbGdvcml0aG1cIjtcbmV4cG9ydCBjb25zdCBDUkVERU5USUFMX1FVRVJZX1BBUkFNID0gXCJYLUFtei1DcmVkZW50aWFsXCI7XG5leHBvcnQgY29uc3QgQU1aX0RBVEVfUVVFUllfUEFSQU0gPSBcIlgtQW16LURhdGVcIjtcbmV4cG9ydCBjb25zdCBTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTSA9IFwiWC1BbXotU2lnbmVkSGVhZGVyc1wiO1xuZXhwb3J0IGNvbnN0IEVYUElSRVNfUVVFUllfUEFSQU0gPSBcIlgtQW16LUV4cGlyZXNcIjtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfUVVFUllfUEFSQU0gPSBcIlgtQW16LVNpZ25hdHVyZVwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX1FVRVJZX1BBUkFNID0gXCJYLUFtei1TZWN1cml0eS1Ub2tlblwiO1xuXG5leHBvcnQgY29uc3QgQVVUSF9IRUFERVIgPSBcImF1dGhvcml6YXRpb25cIjtcbmV4cG9ydCBjb25zdCBBTVpfREFURV9IRUFERVIgPSBBTVpfREFURV9RVUVSWV9QQVJBTS50b0xvd2VyQ2FzZSgpO1xuZXhwb3J0IGNvbnN0IERBVEVfSEVBREVSID0gXCJkYXRlXCI7XG5leHBvcnQgY29uc3QgR0VORVJBVEVEX0hFQURFUlMgPSBbQVVUSF9IRUFERVIsIEFNWl9EQVRFX0hFQURFUiwgREFURV9IRUFERVJdO1xuZXhwb3J0IGNvbnN0IFNJR05BVFVSRV9IRUFERVIgPSBTSUdOQVRVUkVfUVVFUllfUEFSQU0udG9Mb3dlckNhc2UoKTtcbmV4cG9ydCBjb25zdCBTSEEyNTZfSEVBREVSID0gXCJ4LWFtei1jb250ZW50LXNoYTI1NlwiO1xuZXhwb3J0IGNvbnN0IFRPS0VOX0hFQURFUiA9IFRPS0VOX1FVRVJZX1BBUkFNLnRvTG93ZXJDYXNlKCk7XG5leHBvcnQgY29uc3QgSE9TVF9IRUFERVIgPSBcImhvc3RcIjtcblxuZXhwb3J0IGNvbnN0IEFMV0FZU19VTlNJR05BQkxFX0hFQURFUlMgPSB7XG4gIGF1dGhvcml6YXRpb246IHRydWUsXG4gIFwiY2FjaGUtY29udHJvbFwiOiB0cnVlLFxuICBjb25uZWN0aW9uOiB0cnVlLFxuICBleHBlY3Q6IHRydWUsXG4gIGZyb206IHRydWUsXG4gIFwia2VlcC1hbGl2ZVwiOiB0cnVlLFxuICBcIm1heC1mb3J3YXJkc1wiOiB0cnVlLFxuICBwcmFnbWE6IHRydWUsXG4gIHJlZmVyZXI6IHRydWUsXG4gIHRlOiB0cnVlLFxuICB0cmFpbGVyOiB0cnVlLFxuICBcInRyYW5zZmVyLWVuY29kaW5nXCI6IHRydWUsXG4gIHVwZ3JhZGU6IHRydWUsXG4gIFwidXNlci1hZ2VudFwiOiB0cnVlLFxuICBcIngtYW16bi10cmFjZS1pZFwiOiB0cnVlLFxufTtcblxuZXhwb3J0IGNvbnN0IFBST1hZX0hFQURFUl9QQVRURVJOID0gL15wcm94eS0vO1xuXG5leHBvcnQgY29uc3QgU0VDX0hFQURFUl9QQVRURVJOID0gL15zZWMtLztcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkFCTEVfUEFUVEVSTlMgPSBbL15wcm94eS0vaSwgL15zZWMtL2ldO1xuXG5leHBvcnQgY29uc3QgQUxHT1JJVEhNX0lERU5USUZJRVIgPSBcIkFXUzQtSE1BQy1TSEEyNTZcIjtcblxuZXhwb3J0IGNvbnN0IEVWRU5UX0FMR09SSVRITV9JREVOVElGSUVSID0gXCJBV1M0LUhNQUMtU0hBMjU2LVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1BBWUxPQUQgPSBcIlVOU0lHTkVELVBBWUxPQURcIjtcblxuZXhwb3J0IGNvbnN0IE1BWF9DQUNIRV9TSVpFID0gNTA7XG5leHBvcnQgY29uc3QgS0VZX1RZUEVfSURFTlRJRklFUiA9IFwiYXdzNF9yZXF1ZXN0XCI7XG5cbmV4cG9ydCBjb25zdCBNQVhfUFJFU0lHTkVEX1RUTCA9IDYwICogNjAgKiAyNCAqIDc7XG4iXX0=","import { __awaiter, __generator, __values } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nvar signingKeyCache = {};\nvar cacheQueue = [];\n/**\n * Create a string describing the scope of credentials used to sign a request.\n *\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being sent.\n */\nexport function createScope(shortDate, region, service) {\n return shortDate + \"/\" + region + \"/\" + service + \"/\" + KEY_TYPE_IDENTIFIER;\n}\n/**\n * Derive a signing key from its composite parts\n *\n * @param sha256Constructor A constructor function that can instantiate SHA-256\n * hash objects.\n * @param credentials The credentials with which the request will be\n * signed.\n * @param shortDate The current calendar date in the form YYYYMMDD.\n * @param region The AWS region in which the service resides.\n * @param service The service to which the signed request is being\n * sent.\n */\nexport var getSigningKey = function (sha256Constructor, credentials, shortDate, region, service) { return __awaiter(void 0, void 0, void 0, function () {\n var credsHash, cacheKey, key, _a, _b, signable, e_1_1;\n var e_1, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId)];\n case 1:\n credsHash = _d.sent();\n cacheKey = shortDate + \":\" + region + \":\" + service + \":\" + toHex(credsHash) + \":\" + credentials.sessionToken;\n if (cacheKey in signingKeyCache) {\n return [2 /*return*/, signingKeyCache[cacheKey]];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n key = \"AWS4\" + credentials.secretAccessKey;\n _d.label = 2;\n case 2:\n _d.trys.push([2, 7, 8, 9]);\n _a = __values([shortDate, region, service, KEY_TYPE_IDENTIFIER]), _b = _a.next();\n _d.label = 3;\n case 3:\n if (!!_b.done) return [3 /*break*/, 6];\n signable = _b.value;\n return [4 /*yield*/, hmac(sha256Constructor, key, signable)];\n case 4:\n key = _d.sent();\n _d.label = 5;\n case 5:\n _b = _a.next();\n return [3 /*break*/, 3];\n case 6: return [3 /*break*/, 9];\n case 7:\n e_1_1 = _d.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 9];\n case 8:\n try {\n if (_b && !_b.done && (_c = _a.return)) _c.call(_a);\n }\n finally { if (e_1) throw e_1.error; }\n return [7 /*endfinally*/];\n case 9: return [2 /*return*/, (signingKeyCache[cacheKey] = key)];\n }\n });\n}); };\n/**\n * @internal\n */\nexport function clearCredentialCache() {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach(function (cacheKey) {\n delete signingKeyCache[cacheKey];\n });\n}\nfunction hmac(ctor, secret, data) {\n var hash = new ctor(secret);\n hash.update(data);\n return hash.digest();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbERlcml2YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlZGVudGlhbERlcml2YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxFLElBQU0sZUFBZSxHQUFrQyxFQUFFLENBQUM7QUFDMUQsSUFBTSxVQUFVLEdBQWtCLEVBQUUsQ0FBQztBQUVyQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLFNBQWlCLEVBQUUsTUFBYyxFQUFFLE9BQWU7SUFDNUUsT0FBVSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxtQkFBcUIsQ0FBQztBQUNwRSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUcsVUFDM0IsaUJBQWtDLEVBQ2xDLFdBQXdCLEVBQ3hCLFNBQWlCLEVBQ2pCLE1BQWMsRUFDZCxPQUFlOzs7OztvQkFFRyxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUE7O2dCQUEvRixTQUFTLEdBQUcsU0FBbUY7Z0JBQy9GLFFBQVEsR0FBTSxTQUFTLFNBQUksTUFBTSxTQUFJLE9BQU8sU0FBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQUksV0FBVyxDQUFDLFlBQWMsQ0FBQztnQkFDckcsSUFBSSxRQUFRLElBQUksZUFBZSxFQUFFO29CQUMvQixzQkFBTyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUM7aUJBQ2xDO2dCQUVELFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sVUFBVSxDQUFDLE1BQU0sR0FBRyxjQUFjLEVBQUU7b0JBQ3pDLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQVksQ0FBQyxDQUFDO2lCQUN0RDtnQkFFRyxHQUFHLEdBQWUsU0FBTyxXQUFXLENBQUMsZUFBaUIsQ0FBQzs7OztnQkFDcEMsS0FBQSxTQUFBLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTs7OztnQkFBN0QsUUFBUTtnQkFDWCxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFBOztnQkFBbEQsR0FBRyxHQUFHLFNBQTRDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7b0JBRXJELHNCQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQWlCLENBQUMsRUFBQzs7O0tBQ3hELENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxRQUFRO1FBQzVDLE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLElBQXFCLEVBQUUsTUFBa0IsRUFBRSxJQUFnQjtJQUN2RSxJQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVkZW50aWFscywgSGFzaENvbnN0cnVjdG9yLCBTb3VyY2VEYXRhIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBLRVlfVFlQRV9JREVOVElGSUVSLCBNQVhfQ0FDSEVfU0laRSB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jb25zdCBzaWduaW5nS2V5Q2FjaGU6IHsgW2tleTogc3RyaW5nXTogVWludDhBcnJheSB9ID0ge307XG5jb25zdCBjYWNoZVF1ZXVlOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbi8qKlxuICogQ3JlYXRlIGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHNjb3BlIG9mIGNyZWRlbnRpYWxzIHVzZWQgdG8gc2lnbiBhIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHNob3J0RGF0ZSBUaGUgY3VycmVudCBjYWxlbmRhciBkYXRlIGluIHRoZSBmb3JtIFlZWVlNTURELlxuICogQHBhcmFtIHJlZ2lvbiAgICBUaGUgQVdTIHJlZ2lvbiBpbiB3aGljaCB0aGUgc2VydmljZSByZXNpZGVzLlxuICogQHBhcmFtIHNlcnZpY2UgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmcgc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjb3BlKHNob3J0RGF0ZTogc3RyaW5nLCByZWdpb246IHN0cmluZywgc2VydmljZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3Nob3J0RGF0ZX0vJHtyZWdpb259LyR7c2VydmljZX0vJHtLRVlfVFlQRV9JREVOVElGSUVSfWA7XG59XG5cbi8qKlxuICogRGVyaXZlIGEgc2lnbmluZyBrZXkgZnJvbSBpdHMgY29tcG9zaXRlIHBhcnRzXG4gKlxuICogQHBhcmFtIHNoYTI1NkNvbnN0cnVjdG9yIEEgY29uc3RydWN0b3IgZnVuY3Rpb24gdGhhdCBjYW4gaW5zdGFudGlhdGUgU0hBLTI1NlxuICogICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2ggb2JqZWN0cy5cbiAqIEBwYXJhbSBjcmVkZW50aWFscyAgICAgICBUaGUgY3JlZGVudGlhbHMgd2l0aCB3aGljaCB0aGUgcmVxdWVzdCB3aWxsIGJlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkLlxuICogQHBhcmFtIHNob3J0RGF0ZSAgICAgICAgIFRoZSBjdXJyZW50IGNhbGVuZGFyIGRhdGUgaW4gdGhlIGZvcm0gWVlZWU1NREQuXG4gKiBAcGFyYW0gcmVnaW9uICAgICAgICAgICAgVGhlIEFXUyByZWdpb24gaW4gd2hpY2ggdGhlIHNlcnZpY2UgcmVzaWRlcy5cbiAqIEBwYXJhbSBzZXJ2aWNlICAgICAgICAgICBUaGUgc2VydmljZSB0byB3aGljaCB0aGUgc2lnbmVkIHJlcXVlc3QgaXMgYmVpbmdcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICBzZW50LlxuICovXG5leHBvcnQgY29uc3QgZ2V0U2lnbmluZ0tleSA9IGFzeW5jIChcbiAgc2hhMjU2Q29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvcixcbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzLFxuICBzaG9ydERhdGU6IHN0cmluZyxcbiAgcmVnaW9uOiBzdHJpbmcsXG4gIHNlcnZpY2U6IHN0cmluZ1xuKTogUHJvbWlzZTxVaW50OEFycmF5PiA9PiB7XG4gIGNvbnN0IGNyZWRzSGFzaCA9IGF3YWl0IGhtYWMoc2hhMjU2Q29uc3RydWN0b3IsIGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSwgY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQpO1xuICBjb25zdCBjYWNoZUtleSA9IGAke3Nob3J0RGF0ZX06JHtyZWdpb259OiR7c2VydmljZX06JHt0b0hleChjcmVkc0hhc2gpfToke2NyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbn1gO1xuICBpZiAoY2FjaGVLZXkgaW4gc2lnbmluZ0tleUNhY2hlKSB7XG4gICAgcmV0dXJuIHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV07XG4gIH1cblxuICBjYWNoZVF1ZXVlLnB1c2goY2FjaGVLZXkpO1xuICB3aGlsZSAoY2FjaGVRdWV1ZS5sZW5ndGggPiBNQVhfQ0FDSEVfU0laRSkge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVRdWV1ZS5zaGlmdCgpIGFzIHN0cmluZ107XG4gIH1cblxuICBsZXQga2V5OiBTb3VyY2VEYXRhID0gYEFXUzQke2NyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleX1gO1xuICBmb3IgKGNvbnN0IHNpZ25hYmxlIG9mIFtzaG9ydERhdGUsIHJlZ2lvbiwgc2VydmljZSwgS0VZX1RZUEVfSURFTlRJRklFUl0pIHtcbiAgICBrZXkgPSBhd2FpdCBobWFjKHNoYTI1NkNvbnN0cnVjdG9yLCBrZXksIHNpZ25hYmxlKTtcbiAgfVxuICByZXR1cm4gKHNpZ25pbmdLZXlDYWNoZVtjYWNoZUtleV0gPSBrZXkgYXMgVWludDhBcnJheSk7XG59O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDcmVkZW50aWFsQ2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlUXVldWUubGVuZ3RoID0gMDtcbiAgT2JqZWN0LmtleXMoc2lnbmluZ0tleUNhY2hlKS5mb3JFYWNoKChjYWNoZUtleSkgPT4ge1xuICAgIGRlbGV0ZSBzaWduaW5nS2V5Q2FjaGVbY2FjaGVLZXldO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaG1hYyhjdG9yOiBIYXNoQ29uc3RydWN0b3IsIHNlY3JldDogU291cmNlRGF0YSwgZGF0YTogU291cmNlRGF0YSk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBjb25zdCBoYXNoID0gbmV3IGN0b3Ioc2VjcmV0KTtcbiAgaGFzaC51cGRhdGUoZGF0YSk7XG4gIHJldHVybiBoYXNoLmRpZ2VzdCgpO1xufVxuIl19","import { __values } from \"tslib\";\nimport { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\n/**\n * @internal\n */\nexport function getCanonicalHeaders(_a, unsignableHeaders, signableHeaders) {\n var e_1, _b;\n var headers = _a.headers;\n var canonical = {};\n try {\n for (var _c = __values(Object.keys(headers).sort()), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerName = _d.value;\n var canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS || (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return canonical;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsSGVhZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZXRDYW5vbmljYWxIZWFkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEc7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLEVBQXdCLEVBQ3hCLGlCQUErQixFQUMvQixlQUE2Qjs7UUFGM0IsT0FBTyxhQUFBO0lBSVQsSUFBTSxTQUFTLEdBQWMsRUFBRSxDQUFDOztRQUNoQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBLGdCQUFBLDRCQUFFO1lBQWpELElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JELElBQ0UsbUJBQW1CLElBQUkseUJBQXlCLEtBQ2hELGlCQUFpQixhQUFqQixpQkFBaUIsdUJBQWpCLGlCQUFpQixDQUFFLEdBQUcsQ0FBQyxtQkFBbUIsRUFBQztnQkFDM0Msb0JBQW9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUM5QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFDNUM7Z0JBQ0EsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFO29CQUN0RixTQUFTO2lCQUNWO2FBQ0Y7WUFFRCxTQUFTLENBQUMsbUJBQW1CLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNsRjs7Ozs7Ozs7O0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhlYWRlckJhZywgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgQUxXQVlTX1VOU0lHTkFCTEVfSEVBREVSUywgUFJPWFlfSEVBREVSX1BBVFRFUk4sIFNFQ19IRUFERVJfUEFUVEVSTiB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2Fub25pY2FsSGVhZGVycyhcbiAgeyBoZWFkZXJzIH06IEh0dHBSZXF1ZXN0LFxuICB1bnNpZ25hYmxlSGVhZGVycz86IFNldDxzdHJpbmc+LFxuICBzaWduYWJsZUhlYWRlcnM/OiBTZXQ8c3RyaW5nPlxuKTogSGVhZGVyQmFnIHtcbiAgY29uc3QgY2Fub25pY2FsOiBIZWFkZXJCYWcgPSB7fTtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKSkge1xuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlck5hbWUgPSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKFxuICAgICAgY2Fub25pY2FsSGVhZGVyTmFtZSBpbiBBTFdBWVNfVU5TSUdOQUJMRV9IRUFERVJTIHx8XG4gICAgICB1bnNpZ25hYmxlSGVhZGVycz8uaGFzKGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBQUk9YWV9IRUFERVJfUEFUVEVSTi50ZXN0KGNhbm9uaWNhbEhlYWRlck5hbWUpIHx8XG4gICAgICBTRUNfSEVBREVSX1BBVFRFUk4udGVzdChjYW5vbmljYWxIZWFkZXJOYW1lKVxuICAgICkge1xuICAgICAgaWYgKCFzaWduYWJsZUhlYWRlcnMgfHwgKHNpZ25hYmxlSGVhZGVycyAmJiAhc2lnbmFibGVIZWFkZXJzLmhhcyhjYW5vbmljYWxIZWFkZXJOYW1lKSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2Fub25pY2FsW2Nhbm9uaWNhbEhlYWRlck5hbWVdID0gaGVhZGVyc1toZWFkZXJOYW1lXS50cmltKCkucmVwbGFjZSgvXFxzKy9nLCBcIiBcIik7XG4gIH1cblxuICByZXR1cm4gY2Fub25pY2FsO1xufVxuIl19","import { __values } from \"tslib\";\nimport { escapeUri } from \"@aws-sdk/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\n/**\n * @internal\n */\nexport function getCanonicalQuery(_a) {\n var e_1, _b;\n var _c = _a.query, query = _c === void 0 ? {} : _c;\n var keys = [];\n var serialized = {};\n var _loop_1 = function (key) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n return \"continue\";\n }\n keys.push(key);\n var value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = escapeUri(key) + \"=\" + escapeUri(value);\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .sort()\n .reduce(function (encoded, value) { return encoded.concat([escapeUri(key) + \"=\" + escapeUri(value)]); }, [])\n .join(\"&\");\n }\n };\n try {\n for (var _d = __values(Object.keys(query).sort()), _e = _d.next(); !_e.done; _e = _d.next()) {\n var key = _e.value;\n _loop_1(key);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return keys\n .map(function (key) { return serialized[key]; })\n .filter(function (serialized) { return serialized; }) // omit any falsy values\n .join(\"&\");\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q2Fub25pY2FsUXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0Q2Fub25pY2FsUXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsRUFBMkI7O1FBQXpCLGFBQVUsRUFBVixLQUFLLG1CQUFHLEVBQUUsS0FBQTtJQUM1QyxJQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQy9CLElBQU0sVUFBVSxHQUE4QixFQUFFLENBQUM7NEJBQ3RDLEdBQUc7UUFDWixJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRTs7U0FFM0M7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBTSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDO1NBQzNEO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLO2lCQUNwQixLQUFLLENBQUMsQ0FBQyxDQUFDO2lCQUNSLElBQUksRUFBRTtpQkFDTixNQUFNLENBQ0wsVUFBQyxPQUFzQixFQUFFLEtBQWEsSUFBSyxPQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQUksU0FBUyxDQUFDLEtBQUssQ0FBRyxDQUFDLENBQUMsRUFBekQsQ0FBeUQsRUFDcEcsRUFBRSxDQUNIO2lCQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkOzs7UUFsQkgsS0FBa0IsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQTtZQUF0QyxJQUFNLEdBQUcsV0FBQTtvQkFBSCxHQUFHO1NBbUJiOzs7Ozs7Ozs7SUFFRCxPQUFPLElBQUk7U0FDUixHQUFHLENBQUMsVUFBQyxHQUFHLElBQUssT0FBQSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQWYsQ0FBZSxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxVQUFDLFVBQVUsSUFBSyxPQUFBLFVBQVUsRUFBVixDQUFVLENBQUMsQ0FBQyx3QkFBd0I7U0FDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiQGF3cy1zZGsvdXRpbC11cmktZXNjYXBlXCI7XG5cbmltcG9ydCB7IFNJR05BVFVSRV9IRUFERVIgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbm9uaWNhbFF1ZXJ5KHsgcXVlcnkgPSB7fSB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gIGNvbnN0IGtleXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgY29uc3Qgc2VyaWFsaXplZDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhxdWVyeSkuc29ydCgpKSB7XG4gICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSBTSUdOQVRVUkVfSEVBREVSKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBrZXlzLnB1c2goa2V5KTtcbiAgICBjb25zdCB2YWx1ZSA9IHF1ZXJ5W2tleV07XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc2VyaWFsaXplZFtrZXldID0gYCR7ZXNjYXBlVXJpKGtleSl9PSR7ZXNjYXBlVXJpKHZhbHVlKX1gO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHNlcmlhbGl6ZWRba2V5XSA9IHZhbHVlXG4gICAgICAgIC5zbGljZSgwKVxuICAgICAgICAuc29ydCgpXG4gICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgKGVuY29kZWQ6IEFycmF5PHN0cmluZz4sIHZhbHVlOiBzdHJpbmcpID0+IGVuY29kZWQuY29uY2F0KFtgJHtlc2NhcGVVcmkoa2V5KX09JHtlc2NhcGVVcmkodmFsdWUpfWBdKSxcbiAgICAgICAgICBbXVxuICAgICAgICApXG4gICAgICAgIC5qb2luKFwiJlwiKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ga2V5c1xuICAgIC5tYXAoKGtleSkgPT4gc2VyaWFsaXplZFtrZXldKVxuICAgIC5maWx0ZXIoKHNlcmlhbGl6ZWQpID0+IHNlcmlhbGl6ZWQpIC8vIG9taXQgYW55IGZhbHN5IHZhbHVlc1xuICAgIC5qb2luKFwiJlwiKTtcbn1cbiJdfQ==","export var isArrayBuffer = function (arg) {\n return (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLElBQU0sYUFBYSxHQUFHLFVBQUMsR0FBUTtJQUNwQyxPQUFBLENBQUMsT0FBTyxXQUFXLEtBQUssVUFBVSxJQUFJLEdBQUcsWUFBWSxXQUFXLENBQUM7UUFDakUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLHNCQUFzQjtBQUQ5RCxDQUM4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzQXJyYXlCdWZmZXIgPSAoYXJnOiBhbnkpOiBhcmcgaXMgQXJyYXlCdWZmZXIgPT5cbiAgKHR5cGVvZiBBcnJheUJ1ZmZlciA9PT0gXCJmdW5jdGlvblwiICYmIGFyZyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB8fFxuICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYXJnKSA9PT0gXCJbb2JqZWN0IEFycmF5QnVmZmVyXVwiO1xuIl19","import { __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayBuffer } from \"@aws-sdk/is-array-buffer\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\n/**\n * @internal\n */\nexport function getPayloadHash(_a, hashConstructor) {\n var headers = _a.headers, body = _a.body;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c, headerName, hashCtor, _d;\n var e_1, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n try {\n for (_b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n headerName = _c.value;\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return [2 /*return*/, headers[headerName]];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_e = _b.return)) _e.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!(body == undefined)) return [3 /*break*/, 1];\n return [2 /*return*/, \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"];\n case 1:\n if (!(typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body))) return [3 /*break*/, 3];\n hashCtor = new hashConstructor();\n hashCtor.update(body);\n _d = toHex;\n return [4 /*yield*/, hashCtor.digest()];\n case 2: return [2 /*return*/, _d.apply(void 0, [_f.sent()])];\n case 3: \n // As any defined body that is not a string or binary data is a stream, this\n // body is unsignable. Attempt to send the request with an unsigned payload,\n // which may or may not be accepted by the service.\n return [2 /*return*/, UNSIGNED_PAYLOAD];\n }\n });\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UGF5bG9hZEhhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2V0UGF5bG9hZEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sVUFBZ0IsY0FBYyxDQUNsQyxFQUE4QixFQUM5QixlQUFnQztRQUQ5QixPQUFPLGFBQUEsRUFBRSxJQUFJLFVBQUE7Ozs7Ozs7O3dCQUdmLEtBQXlCLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLDRDQUFFOzRCQUFwQyxVQUFVOzRCQUNuQixJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxhQUFhLEVBQUU7Z0NBQzlDLHNCQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBQzs2QkFDNUI7eUJBQ0Y7Ozs7Ozs7Ozt5QkFFRyxDQUFBLElBQUksSUFBSSxTQUFTLENBQUEsRUFBakIsd0JBQWlCO29CQUNuQixzQkFBTyxrRUFBa0UsRUFBQzs7eUJBQ2pFLENBQUEsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBLEVBQTNFLHdCQUEyRTtvQkFDOUUsUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7b0JBQ3ZDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2YsS0FBQSxLQUFLLENBQUE7b0JBQUMscUJBQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFBO3dCQUFwQyxzQkFBTyxrQkFBTSxTQUF1QixFQUFDLEVBQUM7O2dCQUd4Qyw0RUFBNEU7Z0JBQzVFLDRFQUE0RTtnQkFDNUUsbURBQW1EO2dCQUNuRCxzQkFBTyxnQkFBZ0IsRUFBQzs7OztDQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXJyYXlCdWZmZXIgfSBmcm9tIFwiQGF3cy1zZGsvaXMtYXJyYXktYnVmZmVyXCI7XG5pbXBvcnQgeyBIYXNoQ29uc3RydWN0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBTSEEyNTZfSEVBREVSLCBVTlNJR05FRF9QQVlMT0FEIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQYXlsb2FkSGFzaChcbiAgeyBoZWFkZXJzLCBib2R5IH06IEh0dHBSZXF1ZXN0LFxuICBoYXNoQ29uc3RydWN0b3I6IEhhc2hDb25zdHJ1Y3RvclxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgaWYgKGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKSA9PT0gU0hBMjU2X0hFQURFUikge1xuICAgICAgcmV0dXJuIGhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgaWYgKGJvZHkgPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIFwiZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NVwiO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBib2R5ID09PSBcInN0cmluZ1wiIHx8IEFycmF5QnVmZmVyLmlzVmlldyhib2R5KSB8fCBpc0FycmF5QnVmZmVyKGJvZHkpKSB7XG4gICAgY29uc3QgaGFzaEN0b3IgPSBuZXcgaGFzaENvbnN0cnVjdG9yKCk7XG4gICAgaGFzaEN0b3IudXBkYXRlKGJvZHkpO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoQ3Rvci5kaWdlc3QoKSk7XG4gIH1cblxuICAvLyBBcyBhbnkgZGVmaW5lZCBib2R5IHRoYXQgaXMgbm90IGEgc3RyaW5nIG9yIGJpbmFyeSBkYXRhIGlzIGEgc3RyZWFtLCB0aGlzXG4gIC8vIGJvZHkgaXMgdW5zaWduYWJsZS4gQXR0ZW1wdCB0byBzZW5kIHRoZSByZXF1ZXN0IHdpdGggYW4gdW5zaWduZWQgcGF5bG9hZCxcbiAgLy8gd2hpY2ggbWF5IG9yIG1heSBub3QgYmUgYWNjZXB0ZWQgYnkgdGhlIHNlcnZpY2UuXG4gIHJldHVybiBVTlNJR05FRF9QQVlMT0FEO1xufVxuIl19","import { __values } from \"tslib\";\nexport function hasHeader(soughtHeader, headers) {\n var e_1, _a;\n soughtHeader = soughtHeader.toLowerCase();\n try {\n for (var _b = __values(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhc0hlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsTUFBTSxVQUFVLFNBQVMsQ0FBQyxZQUFvQixFQUFFLE9BQWtCOztJQUNoRSxZQUFZLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDOztRQUMxQyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQTFDLElBQU0sVUFBVSxXQUFBO1lBQ25CLElBQUksWUFBWSxLQUFLLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDN0MsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0hlYWRlcihzb3VnaHRIZWFkZXI6IHN0cmluZywgaGVhZGVyczogSGVhZGVyQmFnKTogYm9vbGVhbiB7XG4gIHNvdWdodEhlYWRlciA9IHNvdWdodEhlYWRlci50b0xvd2VyQ2FzZSgpO1xuICBmb3IgKGNvbnN0IGhlYWRlck5hbWUgb2YgT2JqZWN0LmtleXMoaGVhZGVycykpIHtcbiAgICBpZiAoc291Z2h0SGVhZGVyID09PSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==","import { __assign, __read, __rest, __spread } from \"tslib\";\n/**\n * @internal\n */\nexport function cloneRequest(_a) {\n var headers = _a.headers, query = _a.query, rest = __rest(_a, [\"headers\", \"query\"]);\n return __assign(__assign({}, rest), { headers: __assign({}, headers), query: query ? cloneQuery(query) : undefined });\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce(function (carry, paramName) {\n var _a;\n var param = query[paramName];\n return __assign(__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? __spread(param) : param, _a));\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmVSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nsb25lUmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEVBQXdDO0lBQXRDLElBQUEsT0FBTyxhQUFBLEVBQUUsS0FBSyxXQUFBLEVBQUssSUFBSSxjQUF6QixvQkFBMkIsQ0FBRjtJQUNwRCw2QkFDSyxJQUFJLEtBQ1AsT0FBTyxlQUFPLE9BQU8sR0FDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQzVDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQXdCO0lBQzFDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUF3QixFQUFFLFNBQWlCOztRQUMzRSxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsNkJBQ0ssS0FBSyxnQkFDUCxTQUFTLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQ3REO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVSZXF1ZXN0KHsgaGVhZGVycywgcXVlcnksIC4uLnJlc3QgfTogSHR0cFJlcXVlc3QpOiBIdHRwUmVxdWVzdCB7XG4gIHJldHVybiB7XG4gICAgLi4ucmVzdCxcbiAgICBoZWFkZXJzOiB7IC4uLmhlYWRlcnMgfSxcbiAgICBxdWVyeTogcXVlcnkgPyBjbG9uZVF1ZXJ5KHF1ZXJ5KSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xvbmVRdWVyeShxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcpOiBRdWVyeVBhcmFtZXRlckJhZyB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhxdWVyeSkucmVkdWNlKChjYXJyeTogUXVlcnlQYXJhbWV0ZXJCYWcsIHBhcmFtTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSBxdWVyeVtwYXJhbU5hbWVdO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jYXJyeSxcbiAgICAgIFtwYXJhbU5hbWVdOiBBcnJheS5pc0FycmF5KHBhcmFtKSA/IFsuLi5wYXJhbV0gOiBwYXJhbSxcbiAgICB9O1xuICB9LCB7fSk7XG59XG4iXX0=","import { __assign, __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\n/**\n * @internal\n */\nexport function moveHeadersToQuery(request, options) {\n var e_1, _a;\n var _b;\n if (options === void 0) { options = {}; }\n var _c = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request), headers = _c.headers, _d = _c.query, query = _d === void 0 ? {} : _d;\n try {\n for (var _e = __values(Object.keys(headers)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var name = _f.value;\n var lname = name.toLowerCase();\n if (lname.substr(0, 6) === \"x-amz-\" && !((_b = options.unhoistableHeaders) === null || _b === void 0 ? void 0 : _b.has(lname))) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return __assign(__assign({}, request), { headers: headers,\n query: query });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZUhlYWRlcnNUb1F1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vdmVIZWFkZXJzVG9RdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxPQUFvQixFQUNwQixPQUFrRDs7O0lBQWxELHdCQUFBLEVBQUEsWUFBa0Q7SUFFNUMsSUFBQSxLQUNKLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUR6RixPQUFPLGFBQUEsRUFBRSxhQUErQixFQUEvQixLQUFLLG1CQUFHLEVBQXVCLEtBQ2lELENBQUM7O1FBQ2xHLEtBQW1CLElBQUEsS0FBQSxTQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsZ0JBQUEsNEJBQUU7WUFBcEMsSUFBTSxJQUFJLFdBQUE7WUFDYixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksUUFBQyxPQUFPLENBQUMsa0JBQWtCLDBDQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUMsRUFBRTtnQkFDOUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdEI7U0FDRjs7Ozs7Ozs7O0lBRUQsNkJBQ0ssT0FBTyxLQUNWLE9BQU8sU0FBQTtRQUNQLEtBQUssT0FBQSxJQUNMO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0LCBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdmVIZWFkZXJzVG9RdWVyeShcbiAgcmVxdWVzdDogSHR0cFJlcXVlc3QsXG4gIG9wdGlvbnM6IHsgdW5ob2lzdGFibGVIZWFkZXJzPzogU2V0PHN0cmluZz4gfSA9IHt9XG4pOiBIdHRwUmVxdWVzdCAmIHsgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnIH0ge1xuICBjb25zdCB7IGhlYWRlcnMsIHF1ZXJ5ID0ge30gYXMgUXVlcnlQYXJhbWV0ZXJCYWcgfSA9XG4gICAgdHlwZW9mIChyZXF1ZXN0IGFzIGFueSkuY2xvbmUgPT09IFwiZnVuY3Rpb25cIiA/IChyZXF1ZXN0IGFzIGFueSkuY2xvbmUoKSA6IGNsb25lUmVxdWVzdChyZXF1ZXN0KTtcbiAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKGhlYWRlcnMpKSB7XG4gICAgY29uc3QgbG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGxuYW1lLnN1YnN0cigwLCA2KSA9PT0gXCJ4LWFtei1cIiAmJiAhb3B0aW9ucy51bmhvaXN0YWJsZUhlYWRlcnM/LmhhcyhsbmFtZSkpIHtcbiAgICAgIHF1ZXJ5W25hbWVdID0gaGVhZGVyc1tuYW1lXTtcbiAgICAgIGRlbGV0ZSBoZWFkZXJzW25hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucmVxdWVzdCxcbiAgICBoZWFkZXJzLFxuICAgIHF1ZXJ5LFxuICB9O1xufVxuIl19","import { __values } from \"tslib\";\nimport { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\n/**\n * @internal\n */\nexport function prepareRequest(request) {\n var e_1, _a;\n // Create a clone of the request object that does not clone the body\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n try {\n for (var _b = __values(Object.keys(request.headers)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var headerName = _c.value;\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return request;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZVJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJlcGFyZVJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQW9COztJQUNqRCxvRUFBb0U7SUFDcEUsT0FBTyxHQUFHLE9BQVEsT0FBZSxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLE9BQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDOztRQUUxRyxLQUF5QixJQUFBLEtBQUEsU0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtZQUFsRCxJQUFNLFVBQVUsV0FBQTtZQUNuQixJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDNUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7Ozs7Ozs7OztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBjbG9uZVJlcXVlc3QgfSBmcm9tIFwiLi9jbG9uZVJlcXVlc3RcIjtcbmltcG9ydCB7IEdFTkVSQVRFRF9IRUFERVJTIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdCk6IEh0dHBSZXF1ZXN0IHtcbiAgLy8gQ3JlYXRlIGEgY2xvbmUgb2YgdGhlIHJlcXVlc3Qgb2JqZWN0IHRoYXQgZG9lcyBub3QgY2xvbmUgdGhlIGJvZHlcbiAgcmVxdWVzdCA9IHR5cGVvZiAocmVxdWVzdCBhcyBhbnkpLmNsb25lID09PSBcImZ1bmN0aW9uXCIgPyAocmVxdWVzdCBhcyBhbnkpLmNsb25lKCkgOiBjbG9uZVJlcXVlc3QocmVxdWVzdCk7XG5cbiAgZm9yIChjb25zdCBoZWFkZXJOYW1lIG9mIE9iamVjdC5rZXlzKHJlcXVlc3QuaGVhZGVycykpIHtcbiAgICBpZiAoR0VORVJBVEVEX0hFQURFUlMuaW5kZXhPZihoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCkpID4gLTEpIHtcbiAgICAgIGRlbGV0ZSByZXF1ZXN0LmhlYWRlcnNbaGVhZGVyTmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlcXVlc3Q7XG59XG4iXX0=","export function iso8601(time) {\n return toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\n}\nexport function toDate(time) {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbERhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbERhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUE0QjtJQUNsRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDaEIsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUE0QjtJQUNqRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc284NjAxKHRpbWU6IG51bWJlciB8IHN0cmluZyB8IERhdGUpOiBzdHJpbmcge1xuICByZXR1cm4gdG9EYXRlKHRpbWUpXG4gICAgLnRvSVNPU3RyaW5nKClcbiAgICAucmVwbGFjZSgvXFwuXFxkezN9WiQvLCBcIlpcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUodGltZTogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSk6IERhdGUge1xuICBpZiAodHlwZW9mIHRpbWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGltZSAqIDEwMDApO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0aW1lID09PSBcInN0cmluZ1wiKSB7XG4gICAgaWYgKE51bWJlcih0aW1lKSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcih0aW1lKSAqIDEwMDApO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUodGltZSk7XG4gIH1cblxuICByZXR1cm4gdGltZTtcbn1cbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport { toHex } from \"@aws-sdk/util-hex-encoding\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM, } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { hasHeader } from \"./hasHeader\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\nvar SignatureV4 = /** @class */ (function () {\n function SignatureV4(_a) {\n var applyChecksum = _a.applyChecksum, credentials = _a.credentials, region = _a.region, service = _a.service, sha256 = _a.sha256, _b = _a.uriEscapePath, uriEscapePath = _b === void 0 ? true : _b;\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n // default to true if applyChecksum isn't set\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeRegionProvider(region);\n this.credentialProvider = normalizeCredentialsProvider(credentials);\n }\n SignatureV4.prototype.presign = function (originalRequest, options) {\n if (options === void 0) { options = {}; }\n return __awaiter(this, void 0, void 0, function () {\n var _a, signingDate, _b, expiresIn, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, credentials, region, _c, _d, longDate, shortDate, scope, request, canonicalHeaders, _e, _f, _g, _h, _j, _k;\n return __generator(this, function (_l) {\n switch (_l.label) {\n case 0:\n _a = options.signingDate, signingDate = _a === void 0 ? new Date() : _a, _b = options.expiresIn, expiresIn = _b === void 0 ? 3600 : _b, unsignableHeaders = options.unsignableHeaders, unhoistableHeaders = options.unhoistableHeaders, signableHeaders = options.signableHeaders, signingRegion = options.signingRegion, signingService = options.signingService;\n return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _l.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _c = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _c = (_l.sent());\n _l.label = 4;\n case 4:\n region = _c;\n _d = formatDate(signingDate), longDate = _d.longDate, shortDate = _d.shortDate;\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return [2 /*return*/, Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\")];\n }\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders: unhoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = credentials.accessKeyId + \"/\" + scope;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n _e = request.query;\n _f = SIGNATURE_QUERY_PARAM;\n _g = this.getSignature;\n _h = [longDate,\n scope,\n this.getSigningKey(credentials, region, shortDate, signingService)];\n _j = this.createCanonicalRequest;\n _k = [request, canonicalHeaders];\n return [4 /*yield*/, getPayloadHash(originalRequest, this.sha256)];\n case 5: return [4 /*yield*/, _g.apply(this, _h.concat([_j.apply(this, _k.concat([_l.sent()]))]))];\n case 6:\n _e[_f] = _l.sent();\n return [2 /*return*/, request];\n }\n });\n });\n };\n SignatureV4.prototype.sign = function (toSign, options) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (typeof toSign === \"string\") {\n return [2 /*return*/, this.signString(toSign, options)];\n }\n else if (toSign.headers && toSign.payload) {\n return [2 /*return*/, this.signEvent(toSign, options)];\n }\n else {\n return [2 /*return*/, this.signRequest(toSign, options)];\n }\n return [2 /*return*/];\n });\n });\n };\n SignatureV4.prototype.signEvent = function (_a, _b) {\n var headers = _a.headers, payload = _a.payload;\n var _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, priorSignature = _b.priorSignature, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var region, _d, _e, shortDate, longDate, scope, hashedPayload, hash, hashedHeaders, _f, stringToSign;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 1];\n _d = signingRegion;\n return [3 /*break*/, 3];\n case 1: return [4 /*yield*/, this.regionProvider()];\n case 2:\n _d = (_g.sent());\n _g.label = 3;\n case 3:\n region = _d;\n _e = formatDate(signingDate), shortDate = _e.shortDate, longDate = _e.longDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n return [4 /*yield*/, getPayloadHash({ headers: {}, body: payload }, this.sha256)];\n case 4:\n hashedPayload = _g.sent();\n hash = new this.sha256();\n hash.update(headers);\n _f = toHex;\n return [4 /*yield*/, hash.digest()];\n case 5:\n hashedHeaders = _f.apply(void 0, [_g.sent()]);\n stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return [2 /*return*/, this.signString(stringToSign, { signingDate: signingDate, signingRegion: region, signingService: signingService })];\n }\n });\n });\n };\n SignatureV4.prototype.signString = function (stringToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, shortDate, hash, _e, _f, _g;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0: return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _h.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _d = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _d = (_h.sent());\n _h.label = 4;\n case 4:\n region = _d;\n shortDate = formatDate(signingDate).shortDate;\n _f = (_e = this.sha256).bind;\n return [4 /*yield*/, this.getSigningKey(credentials, region, shortDate, signingService)];\n case 5:\n hash = new (_f.apply(_e, [void 0, _h.sent()]))();\n hash.update(stringToSign);\n _g = toHex;\n return [4 /*yield*/, hash.digest()];\n case 6: return [2 /*return*/, _g.apply(void 0, [_h.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.signRequest = function (requestToSign, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signableHeaders = _b.signableHeaders, unsignableHeaders = _b.unsignableHeaders, signingRegion = _b.signingRegion, signingService = _b.signingService;\n return __awaiter(this, void 0, void 0, function () {\n var credentials, region, _d, request, _e, longDate, shortDate, scope, payloadHash, canonicalHeaders, signature;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0: return [4 /*yield*/, this.credentialProvider()];\n case 1:\n credentials = _f.sent();\n if (!(signingRegion !== null && signingRegion !== void 0)) return [3 /*break*/, 2];\n _d = signingRegion;\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.regionProvider()];\n case 3:\n _d = (_f.sent());\n _f.label = 4;\n case 4:\n region = _d;\n request = prepareRequest(requestToSign);\n _e = formatDate(signingDate), longDate = _e.longDate, shortDate = _e.shortDate;\n scope = createScope(shortDate, region, signingService !== null && signingService !== void 0 ? signingService : this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n return [4 /*yield*/, getPayloadHash(request, this.sha256)];\n case 5:\n payloadHash = _f.sent();\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n return [4 /*yield*/, this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash))];\n case 6:\n signature = _f.sent();\n request.headers[AUTH_HEADER] =\n ALGORITHM_IDENTIFIER + \" \" +\n (\"Credential=\" + credentials.accessKeyId + \"/\" + scope + \", \") +\n (\"SignedHeaders=\" + getCanonicalHeaderList(canonicalHeaders) + \", \") +\n (\"Signature=\" + signature);\n return [2 /*return*/, request];\n }\n });\n });\n };\n SignatureV4.prototype.createCanonicalRequest = function (request, canonicalHeaders, payloadHash) {\n var sortedHeaders = Object.keys(canonicalHeaders).sort();\n return request.method + \"\\n\" + this.getCanonicalPath(request) + \"\\n\" + getCanonicalQuery(request) + \"\\n\" + sortedHeaders.map(function (name) { return name + \":\" + canonicalHeaders[name]; }).join(\"\\n\") + \"\\n\\n\" + sortedHeaders.join(\";\") + \"\\n\" + payloadHash;\n };\n SignatureV4.prototype.createStringToSign = function (longDate, credentialScope, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var hash, hashedRequest;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n hash = new this.sha256();\n hash.update(canonicalRequest);\n return [4 /*yield*/, hash.digest()];\n case 1:\n hashedRequest = _a.sent();\n return [2 /*return*/, ALGORITHM_IDENTIFIER + \"\\n\" + longDate + \"\\n\" + credentialScope + \"\\n\" + toHex(hashedRequest)];\n }\n });\n });\n };\n SignatureV4.prototype.getCanonicalPath = function (_a) {\n var path = _a.path;\n if (this.uriEscapePath) {\n var doubleEncoded = encodeURIComponent(path.replace(/^\\//, \"\"));\n return \"/\" + doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n };\n SignatureV4.prototype.getSignature = function (longDate, credentialScope, keyPromise, canonicalRequest) {\n return __awaiter(this, void 0, void 0, function () {\n var stringToSign, hash, _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0: return [4 /*yield*/, this.createStringToSign(longDate, credentialScope, canonicalRequest)];\n case 1:\n stringToSign = _d.sent();\n _b = (_a = this.sha256).bind;\n return [4 /*yield*/, keyPromise];\n case 2:\n hash = new (_b.apply(_a, [void 0, _d.sent()]))();\n hash.update(stringToSign);\n _c = toHex;\n return [4 /*yield*/, hash.digest()];\n case 3: return [2 /*return*/, _c.apply(void 0, [_d.sent()])];\n }\n });\n });\n };\n SignatureV4.prototype.getSigningKey = function (credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n };\n return SignatureV4;\n}());\nexport { SignatureV4 };\nvar formatDate = function (now) {\n var longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate: longDate,\n shortDate: longDate.substr(0, 8),\n };\n};\nvar getCanonicalHeaderList = function (headers) { return Object.keys(headers).sort().join(\";\"); };\nvar normalizeRegionProvider = function (region) {\n if (typeof region === \"string\") {\n var promisified_1 = Promise.resolve(region);\n return function () { return promisified_1; };\n }\n else {\n return region;\n }\n};\nvar normalizeCredentialsProvider = function (credentials) {\n if (typeof credentials === \"object\") {\n var promisified_2 = Promise.resolve(credentials);\n return function () { return promisified_2; };\n }\n else {\n return credentials;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2lnbmF0dXJlVjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2lnbmF0dXJlVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWlCQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbkQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQWtEckM7SUFRRSxxQkFBWSxFQU84QjtZQU54QyxhQUFhLG1CQUFBLEVBQ2IsV0FBVyxpQkFBQSxFQUNYLE1BQU0sWUFBQSxFQUNOLE9BQU8sYUFBQSxFQUNQLE1BQU0sWUFBQSxFQUNOLHFCQUFvQixFQUFwQixhQUFhLG1CQUFHLElBQUksS0FBQTtRQUVwQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJ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YztJQUNoQyxJQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxPQUFPO1FBQ0wsUUFBUSxVQUFBO1FBQ1IsU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNqQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsSUFBTSxzQkFBc0IsR0FBRyxVQUFDLE9BQWUsSUFBYSxPQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFyQyxDQUFxQyxDQUFDO0FBRWxHLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxNQUFpQztJQUNoRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7QUFDSCxDQUFDLENBQUM7QUFFRixJQUFNLDRCQUE0QixHQUFHLFVBQUMsV0FBZ0Q7SUFDcEYsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7UUFDbkMsSUFBTSxhQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxPQUFPLGNBQU0sT0FBQSxhQUFXLEVBQVgsQ0FBVyxDQUFDO0tBQzFCO1NBQU07UUFDTCxPQUFPLFdBQVcsQ0FBQztLQUNwQjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENyZWRlbnRpYWxzLFxuICBEYXRlSW5wdXQsXG4gIEV2ZW50U2lnbmVyLFxuICBFdmVudFNpZ25pbmdBcmd1bWVudHMsXG4gIEZvcm1hdHRlZEV2ZW50LFxuICBIYXNoQ29uc3RydWN0b3IsXG4gIEhlYWRlckJhZyxcbiAgSHR0cFJlcXVlc3QsXG4gIFByb3ZpZGVyLFxuICBSZXF1ZXN0UHJlc2lnbmVyLFxuICBSZXF1ZXN0UHJlc2lnbmluZ0FyZ3VtZW50cyxcbiAgUmVxdWVzdFNpZ25lcixcbiAgUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMsXG4gIFNpZ25pbmdBcmd1bWVudHMsXG4gIFN0cmluZ1NpZ25lcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyB0b0hleCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWhleC1lbmNvZGluZ1wiO1xuXG5pbXBvcnQge1xuICBBTEdPUklUSE1fSURFTlRJRklFUixcbiAgQUxHT1JJVEhNX1FVRVJZX1BBUkFNLFxuICBBTVpfREFURV9IRUFERVIsXG4gIEFNWl9EQVRFX1FVRVJZX1BBUkFNLFxuICBBVVRIX0hFQURFUixcbiAgQ1JFREVOVElBTF9RVUVSWV9QQVJBTSxcbiAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gIEVYUElSRVNfUVVFUllfUEFSQU0sXG4gIE1BWF9QUkVTSUdORURfVFRMLFxuICBTSEEyNTZfSEVBREVSLFxuICBTSUdOQVRVUkVfUVVFUllfUEFSQU0sXG4gIFNJR05FRF9IRUFERVJTX1FVRVJZX1BBUkFNLFxuICBUT0tFTl9IRUFERVIsXG4gIFRPS0VOX1FVRVJZX1BBUkFNLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNyZWF0ZVNjb3BlLCBnZXRTaWduaW5nS2V5IH0gZnJvbSBcIi4vY3JlZGVudGlhbERlcml2YXRpb25cIjtcbmltcG9ydCB7IGdldENhbm9uaWNhbEhlYWRlcnMgfSBmcm9tIFwiLi9nZXRDYW5vbmljYWxIZWFkZXJzXCI7XG5pbXBvcnQgeyBnZXRDYW5vbmljYWxRdWVyeSB9IGZyb20gXCIuL2dldENhbm9uaWNhbFF1ZXJ5XCI7XG5pbXBvcnQgeyBnZXRQYXlsb2FkSGFzaCB9IGZyb20gXCIuL2dldFBheWxvYWRIYXNoXCI7XG5pbXBvcnQgeyBoYXNIZWFkZXIgfSBmcm9tIFwiLi9oYXNIZWFkZXJcIjtcbmltcG9ydCB7IG1vdmVIZWFkZXJzVG9RdWVyeSB9IGZyb20gXCIuL21vdmVIZWFkZXJzVG9RdWVyeVwiO1xuaW1wb3J0IHsgcHJlcGFyZVJlcXVlc3QgfSBmcm9tIFwiLi9wcmVwYXJlUmVxdWVzdFwiO1xuaW1wb3J0IHsgaXNvODYwMSB9IGZyb20gXCIuL3V0aWxEYXRlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBzZXJ2aWNlIHNpZ25pbmcgbmFtZS5cbiAgICovXG4gIHNlcnZpY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBuYW1lIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgYmVcbiAgICogcmVzb2x2ZWQgd2l0aCB0aGUgcmVnaW9uIG5hbWUuXG4gICAqL1xuICByZWdpb246IHN0cmluZyB8IFByb3ZpZGVyPHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFRoZSBjcmVkZW50aWFscyB3aXRoIHdoaWNoIHRoZSByZXF1ZXN0IHNob3VsZCBiZSBzaWduZWQgb3IgYSBmdW5jdGlvblxuICAgKiB0aGF0IHJldHVybnMgYSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCB3aXRoIGNyZWRlbnRpYWxzLlxuICAgKi9cbiAgY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzIHwgUHJvdmlkZXI8Q3JlZGVudGlhbHM+O1xuXG4gIC8qKlxuICAgKiBBIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIGZvciBhIGhhc2ggb2JqZWN0IHRoYXQgd2lsbCBjYWxjdWxhdGUgU0hBLTI1NiBITUFDXG4gICAqIGNoZWNrc3Vtcy5cbiAgICovXG4gIHNoYTI1Nj86IEhhc2hDb25zdHJ1Y3RvcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1cmktZXNjYXBlIHRoZSByZXF1ZXN0IFVSSSBwYXRoIGFzIHBhcnQgb2YgY29tcHV0aW5nIHRoZVxuICAgKiBjYW5vbmljYWwgcmVxdWVzdCBzdHJpbmcuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGV2ZXJ5IEFXUyBzZXJ2aWNlLCBleGNlcHRcbiAgICogQW1hem9uIFMzLCBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgdXJpRXNjYXBlUGF0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY2FsY3VsYXRlIGEgY2hlY2tzdW0gb2YgdGhlIHJlcXVlc3QgYm9keSBhbmQgaW5jbHVkZSBpdCBhc1xuICAgKiBlaXRoZXIgYSByZXF1ZXN0IGhlYWRlciAod2hlbiBzaWduaW5nKSBvciBhcyBhIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJcbiAgICogKHdoZW4gcHJlc2lnbmluZykuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIEFXUyBHbGFjaWVyIGFuZCBBbWF6b24gUzMgYW5kIG9wdGlvbmFsIGZvclxuICAgKiBldmVyeSBvdGhlciBBV1Mgc2VydmljZSBhcyBvZiBsYXRlIDIwMTcuXG4gICAqXG4gICAqIEBkZWZhdWx0IFt0cnVlXVxuICAgKi9cbiAgYXBwbHlDaGVja3N1bT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlVjRDcnlwdG9Jbml0IHtcbiAgc2hhMjU2OiBIYXNoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBjbGFzcyBTaWduYXR1cmVWNCBpbXBsZW1lbnRzIFJlcXVlc3RQcmVzaWduZXIsIFJlcXVlc3RTaWduZXIsIFN0cmluZ1NpZ25lciwgRXZlbnRTaWduZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb25Qcm92aWRlcjogUHJvdmlkZXI8c3RyaW5nPjtcbiAgcHJpdmF0ZSByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXI6IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBzaGEyNTY6IEhhc2hDb25zdHJ1Y3RvcjtcbiAgcHJpdmF0ZSByZWFkb25seSB1cmlFc2NhcGVQYXRoOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGx5Q2hlY2tzdW06IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGFwcGx5Q2hlY2tzdW0sXG4gICAgY3JlZGVudGlhbHMsXG4gICAgcmVnaW9uLFxuICAgIHNlcnZpY2UsXG4gICAgc2hhMjU2LFxuICAgIHVyaUVzY2FwZVBhdGggPSB0cnVlLFxuICB9OiBTaWduYXR1cmVWNEluaXQgJiBTaWduYXR1cmVWNENyeXB0b0luaXQpIHtcbiAgICB0aGlzLnNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgIHRoaXMuc2hhMjU2ID0gc2hhMjU2O1xuICAgIHRoaXMudXJpRXNjYXBlUGF0aCA9IHVyaUVzY2FwZVBhdGg7XG4gICAgLy8gZGVmYXVsdCB0byB0cnVlIGlmIGFwcGx5Q2hlY2tzdW0gaXNuJ3Qgc2V0XG4gICAgdGhpcy5hcHBseUNoZWNrc3VtID0gdHlwZW9mIGFwcGx5Q2hlY2tzdW0gPT09IFwiYm9vbGVhblwiID8gYXBwbHlDaGVja3N1bSA6IHRydWU7XG4gICAgdGhpcy5yZWdpb25Qcm92aWRlciA9IG5vcm1hbGl6ZVJlZ2lvblByb3ZpZGVyKHJlZ2lvbik7XG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIgPSBub3JtYWxpemVDcmVkZW50aWFsc1Byb3ZpZGVyKGNyZWRlbnRpYWxzKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVzaWduKG9yaWdpbmFsUmVxdWVzdDogSHR0cFJlcXVlc3QsIG9wdGlvbnM6IFJlcXVlc3RQcmVzaWduaW5nQXJndW1lbnRzID0ge30pOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3Qge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgZXhwaXJlc0luID0gMzYwMCxcbiAgICAgIHVuc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5ob2lzdGFibGVIZWFkZXJzLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgc2lnbmluZ1JlZ2lvbixcbiAgICAgIHNpZ25pbmdTZXJ2aWNlLFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuXG4gICAgY29uc3QgeyBsb25nRGF0ZSwgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcbiAgICBpZiAoZXhwaXJlc0luID4gTUFYX1BSRVNJR05FRF9UVEwpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcbiAgICAgICAgXCJTaWduYXR1cmUgdmVyc2lvbiA0IHByZXNpZ25lZCBVUkxzXCIgKyBcIiBtdXN0IGhhdmUgYW4gZXhwaXJhdGlvbiBkYXRlIGxlc3MgdGhhbiBvbmUgd2VlayBpblwiICsgXCIgdGhlIGZ1dHVyZVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlID0gY3JlYXRlU2NvcGUoc2hvcnREYXRlLCByZWdpb24sIHNpZ25pbmdTZXJ2aWNlID8/IHRoaXMuc2VydmljZSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IG1vdmVIZWFkZXJzVG9RdWVyeShwcmVwYXJlUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QpLCB7IHVuaG9pc3RhYmxlSGVhZGVycyB9KTtcblxuICAgIGlmIChjcmVkZW50aWFscy5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHJlcXVlc3QucXVlcnlbVE9LRU5fUVVFUllfUEFSQU1dID0gY3JlZGVudGlhbHMuc2Vzc2lvblRva2VuO1xuICAgIH1cbiAgICByZXF1ZXN0LnF1ZXJ5W0FMR09SSVRITV9RVUVSWV9QQVJBTV0gPSBBTEdPUklUSE1fSURFTlRJRklFUjtcbiAgICByZXF1ZXN0LnF1ZXJ5W0NSRURFTlRJQUxfUVVFUllfUEFSQU1dID0gYCR7Y3JlZGVudGlhbHMuYWNjZXNzS2V5SWR9LyR7c2NvcGV9YDtcbiAgICByZXF1ZXN0LnF1ZXJ5W0FNWl9EQVRFX1FVRVJZX1BBUkFNXSA9IGxvbmdEYXRlO1xuICAgIHJlcXVlc3QucXVlcnlbRVhQSVJFU19RVUVSWV9QQVJBTV0gPSBleHBpcmVzSW4udG9TdHJpbmcoMTApO1xuXG4gICAgY29uc3QgY2Fub25pY2FsSGVhZGVycyA9IGdldENhbm9uaWNhbEhlYWRlcnMocmVxdWVzdCwgdW5zaWduYWJsZUhlYWRlcnMsIHNpZ25hYmxlSGVhZGVycyk7XG4gICAgcmVxdWVzdC5xdWVyeVtTSUdORURfSEVBREVSU19RVUVSWV9QQVJBTV0gPSBnZXRDYW5vbmljYWxIZWFkZXJMaXN0KGNhbm9uaWNhbEhlYWRlcnMpO1xuXG4gICAgcmVxdWVzdC5xdWVyeVtTSUdOQVRVUkVfUVVFUllfUEFSQU1dID0gYXdhaXQgdGhpcy5nZXRTaWduYXR1cmUoXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpLFxuICAgICAgdGhpcy5jcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3QsIGNhbm9uaWNhbEhlYWRlcnMsIGF3YWl0IGdldFBheWxvYWRIYXNoKG9yaWdpbmFsUmVxdWVzdCwgdGhpcy5zaGEyNTYpKVxuICAgICk7XG5cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzaWduKHN0cmluZ1RvU2lnbjogc3RyaW5nLCBvcHRpb25zPzogU2lnbmluZ0FyZ3VtZW50cyk6IFByb21pc2U8c3RyaW5nPjtcbiAgcHVibGljIGFzeW5jIHNpZ24oZXZlbnQ6IEZvcm1hdHRlZEV2ZW50LCBvcHRpb25zOiBFdmVudFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPHN0cmluZz47XG4gIHB1YmxpYyBhc3luYyBzaWduKHJlcXVlc3RUb1NpZ246IEh0dHBSZXF1ZXN0LCBvcHRpb25zPzogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMpOiBQcm9taXNlPEh0dHBSZXF1ZXN0PjtcbiAgcHVibGljIGFzeW5jIHNpZ24odG9TaWduOiBhbnksIG9wdGlvbnM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHR5cGVvZiB0b1NpZ24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiB0aGlzLnNpZ25TdHJpbmcodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2UgaWYgKHRvU2lnbi5oZWFkZXJzICYmIHRvU2lnbi5wYXlsb2FkKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaWduRXZlbnQodG9TaWduLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc2lnblJlcXVlc3QodG9TaWduLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25FdmVudChcbiAgICB7IGhlYWRlcnMsIHBheWxvYWQgfTogRm9ybWF0dGVkRXZlbnQsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHByaW9yU2lnbmF0dXJlLCBzaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSB9OiBFdmVudFNpZ25pbmdBcmd1bWVudHNcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlLCBsb25nRGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcbiAgICBjb25zdCBoYXNoZWRQYXlsb2FkID0gYXdhaXQgZ2V0UGF5bG9hZEhhc2goeyBoZWFkZXJzOiB7fSwgYm9keTogcGF5bG9hZCB9IGFzIGFueSwgdGhpcy5zaGEyNTYpO1xuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoKTtcbiAgICBoYXNoLnVwZGF0ZShoZWFkZXJzKTtcbiAgICBjb25zdCBoYXNoZWRIZWFkZXJzID0gdG9IZXgoYXdhaXQgaGFzaC5kaWdlc3QoKSk7XG4gICAgY29uc3Qgc3RyaW5nVG9TaWduID0gW1xuICAgICAgRVZFTlRfQUxHT1JJVEhNX0lERU5USUZJRVIsXG4gICAgICBsb25nRGF0ZSxcbiAgICAgIHNjb3BlLFxuICAgICAgcHJpb3JTaWduYXR1cmUsXG4gICAgICBoYXNoZWRIZWFkZXJzLFxuICAgICAgaGFzaGVkUGF5bG9hZCxcbiAgICBdLmpvaW4oXCJcXG5cIik7XG4gICAgcmV0dXJuIHRoaXMuc2lnblN0cmluZyhzdHJpbmdUb1NpZ24sIHsgc2lnbmluZ0RhdGUsIHNpZ25pbmdSZWdpb246IHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNpZ25TdHJpbmcoXG4gICAgc3RyaW5nVG9TaWduOiBzdHJpbmcsXG4gICAgeyBzaWduaW5nRGF0ZSA9IG5ldyBEYXRlKCksIHNpZ25pbmdSZWdpb24sIHNpZ25pbmdTZXJ2aWNlIH06IFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXIoKTtcbiAgICBjb25zdCByZWdpb24gPSBzaWduaW5nUmVnaW9uID8/IChhd2FpdCB0aGlzLnJlZ2lvblByb3ZpZGVyKCkpO1xuICAgIGNvbnN0IHsgc2hvcnREYXRlIH0gPSBmb3JtYXREYXRlKHNpZ25pbmdEYXRlKTtcblxuICAgIGNvbnN0IGhhc2ggPSBuZXcgdGhpcy5zaGEyNTYoYXdhaXQgdGhpcy5nZXRTaWduaW5nS2V5KGNyZWRlbnRpYWxzLCByZWdpb24sIHNob3J0RGF0ZSwgc2lnbmluZ1NlcnZpY2UpKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2lnblJlcXVlc3QoXG4gICAgcmVxdWVzdFRvU2lnbjogSHR0cFJlcXVlc3QsXG4gICAge1xuICAgICAgc2lnbmluZ0RhdGUgPSBuZXcgRGF0ZSgpLFxuICAgICAgc2lnbmFibGVIZWFkZXJzLFxuICAgICAgdW5zaWduYWJsZUhlYWRlcnMsXG4gICAgICBzaWduaW5nUmVnaW9uLFxuICAgICAgc2lnbmluZ1NlcnZpY2UsXG4gICAgfTogUmVxdWVzdFNpZ25pbmdBcmd1bWVudHMgPSB7fVxuICApOiBQcm9taXNlPEh0dHBSZXF1ZXN0PiB7XG4gICAgY29uc3QgY3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLmNyZWRlbnRpYWxQcm92aWRlcigpO1xuICAgIGNvbnN0IHJlZ2lvbiA9IHNpZ25pbmdSZWdpb24gPz8gKGF3YWl0IHRoaXMucmVnaW9uUHJvdmlkZXIoKSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHByZXBhcmVSZXF1ZXN0KHJlcXVlc3RUb1NpZ24pO1xuICAgIGNvbnN0IHsgbG9uZ0RhdGUsIHNob3J0RGF0ZSB9ID0gZm9ybWF0RGF0ZShzaWduaW5nRGF0ZSk7XG4gICAgY29uc3Qgc2NvcGUgPSBjcmVhdGVTY29wZShzaG9ydERhdGUsIHJlZ2lvbiwgc2lnbmluZ1NlcnZpY2UgPz8gdGhpcy5zZXJ2aWNlKTtcblxuICAgIHJlcXVlc3QuaGVhZGVyc1tBTVpfREFURV9IRUFERVJdID0gbG9uZ0RhdGU7XG4gICAgaWYgKGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbikge1xuICAgICAgcmVxdWVzdC5oZWFkZXJzW1RPS0VOX0hFQURFUl0gPSBjcmVkZW50aWFscy5zZXNzaW9uVG9rZW47XG4gICAgfVxuXG4gICAgY29uc3QgcGF5bG9hZEhhc2ggPSBhd2FpdCBnZXRQYXlsb2FkSGFzaChyZXF1ZXN0LCB0aGlzLnNoYTI1Nik7XG4gICAgaWYgKCFoYXNIZWFkZXIoU0hBMjU2X0hFQURFUiwgcmVxdWVzdC5oZWFkZXJzKSAmJiB0aGlzLmFwcGx5Q2hlY2tzdW0pIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVyc1tTSEEyNTZfSEVBREVSXSA9IHBheWxvYWRIYXNoO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbm9uaWNhbEhlYWRlcnMgPSBnZXRDYW5vbmljYWxIZWFkZXJzKHJlcXVlc3QsIHVuc2lnbmFibGVIZWFkZXJzLCBzaWduYWJsZUhlYWRlcnMpO1xuICAgIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHRoaXMuZ2V0U2lnbmF0dXJlKFxuICAgICAgbG9uZ0RhdGUsXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMuZ2V0U2lnbmluZ0tleShjcmVkZW50aWFscywgcmVnaW9uLCBzaG9ydERhdGUsIHNpZ25pbmdTZXJ2aWNlKSxcbiAgICAgIHRoaXMuY3JlYXRlQ2Fub25pY2FsUmVxdWVzdChyZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzLCBwYXlsb2FkSGFzaClcbiAgICApO1xuXG4gICAgcmVxdWVzdC5oZWFkZXJzW0FVVEhfSEVBREVSXSA9XG4gICAgICBgJHtBTEdPUklUSE1fSURFTlRJRklFUn0gYCArXG4gICAgICBgQ3JlZGVudGlhbD0ke2NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkfS8ke3Njb3BlfSwgYCArXG4gICAgICBgU2lnbmVkSGVhZGVycz0ke2dldENhbm9uaWNhbEhlYWRlckxpc3QoY2Fub25pY2FsSGVhZGVycyl9LCBgICtcbiAgICAgIGBTaWduYXR1cmU9JHtzaWduYXR1cmV9YDtcblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDYW5vbmljYWxSZXF1ZXN0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCBjYW5vbmljYWxIZWFkZXJzOiBIZWFkZXJCYWcsIHBheWxvYWRIYXNoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNvcnRlZEhlYWRlcnMgPSBPYmplY3Qua2V5cyhjYW5vbmljYWxIZWFkZXJzKS5zb3J0KCk7XG4gICAgcmV0dXJuIGAke3JlcXVlc3QubWV0aG9kfVxuJHt0aGlzLmdldENhbm9uaWNhbFBhdGgocmVxdWVzdCl9XG4ke2dldENhbm9uaWNhbFF1ZXJ5KHJlcXVlc3QpfVxuJHtzb3J0ZWRIZWFkZXJzLm1hcCgobmFtZSkgPT4gYCR7bmFtZX06JHtjYW5vbmljYWxIZWFkZXJzW25hbWVdfWApLmpvaW4oXCJcXG5cIil9XG5cbiR7c29ydGVkSGVhZGVycy5qb2luKFwiO1wiKX1cbiR7cGF5bG9hZEhhc2h9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlU3RyaW5nVG9TaWduKFxuICAgIGxvbmdEYXRlOiBzdHJpbmcsXG4gICAgY3JlZGVudGlhbFNjb3BlOiBzdHJpbmcsXG4gICAgY2Fub25pY2FsUmVxdWVzdDogc3RyaW5nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1NigpO1xuICAgIGhhc2gudXBkYXRlKGNhbm9uaWNhbFJlcXVlc3QpO1xuICAgIGNvbnN0IGhhc2hlZFJlcXVlc3QgPSBhd2FpdCBoYXNoLmRpZ2VzdCgpO1xuXG4gICAgcmV0dXJuIGAke0FMR09SSVRITV9JREVOVElGSUVSfVxuJHtsb25nRGF0ZX1cbiR7Y3JlZGVudGlhbFNjb3BlfVxuJHt0b0hleChoYXNoZWRSZXF1ZXN0KX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYW5vbmljYWxQYXRoKHsgcGF0aCB9OiBIdHRwUmVxdWVzdCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMudXJpRXNjYXBlUGF0aCkge1xuICAgICAgY29uc3QgZG91YmxlRW5jb2RlZCA9IGVuY29kZVVSSUNvbXBvbmVudChwYXRoLnJlcGxhY2UoL15cXC8vLCBcIlwiKSk7XG4gICAgICByZXR1cm4gYC8ke2RvdWJsZUVuY29kZWQucmVwbGFjZSgvJTJGL2csIFwiL1wiKX1gO1xuICAgIH1cblxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRTaWduYXR1cmUoXG4gICAgbG9uZ0RhdGU6IHN0cmluZyxcbiAgICBjcmVkZW50aWFsU2NvcGU6IHN0cmluZyxcbiAgICBrZXlQcm9taXNlOiBQcm9taXNlPFVpbnQ4QXJyYXk+LFxuICAgIGNhbm9uaWNhbFJlcXVlc3Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHN0cmluZ1RvU2lnbiA9IGF3YWl0IHRoaXMuY3JlYXRlU3RyaW5nVG9TaWduKGxvbmdEYXRlLCBjcmVkZW50aWFsU2NvcGUsIGNhbm9uaWNhbFJlcXVlc3QpO1xuXG4gICAgY29uc3QgaGFzaCA9IG5ldyB0aGlzLnNoYTI1Nihhd2FpdCBrZXlQcm9taXNlKTtcbiAgICBoYXNoLnVwZGF0ZShzdHJpbmdUb1NpZ24pO1xuICAgIHJldHVybiB0b0hleChhd2FpdCBoYXNoLmRpZ2VzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2lnbmluZ0tleShcbiAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMsXG4gICAgcmVnaW9uOiBzdHJpbmcsXG4gICAgc2hvcnREYXRlOiBzdHJpbmcsXG4gICAgc2VydmljZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICByZXR1cm4gZ2V0U2lnbmluZ0tleSh0aGlzLnNoYTI1NiwgY3JlZGVudGlhbHMsIHNob3J0RGF0ZSwgcmVnaW9uLCBzZXJ2aWNlIHx8IHRoaXMuc2VydmljZSk7XG4gIH1cbn1cblxuY29uc3QgZm9ybWF0RGF0ZSA9IChub3c6IERhdGVJbnB1dCk6IHsgbG9uZ0RhdGU6IHN0cmluZzsgc2hvcnREYXRlOiBzdHJpbmcgfSA9PiB7XG4gIGNvbnN0IGxvbmdEYXRlID0gaXNvODYwMShub3cpLnJlcGxhY2UoL1tcXC06XS9nLCBcIlwiKTtcbiAgcmV0dXJuIHtcbiAgICBsb25nRGF0ZSxcbiAgICBzaG9ydERhdGU6IGxvbmdEYXRlLnN1YnN0cigwLCA4KSxcbiAgfTtcbn07XG5cbmNvbnN0IGdldENhbm9uaWNhbEhlYWRlckxpc3QgPSAoaGVhZGVyczogb2JqZWN0KTogc3RyaW5nID0+IE9iamVjdC5rZXlzKGhlYWRlcnMpLnNvcnQoKS5qb2luKFwiO1wiKTtcblxuY29uc3Qgbm9ybWFsaXplUmVnaW9uUHJvdmlkZXIgPSAocmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+KTogUHJvdmlkZXI8c3RyaW5nPiA9PiB7XG4gIGlmICh0eXBlb2YgcmVnaW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUocmVnaW9uKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHJlZ2lvbjtcbiAgfVxufTtcblxuY29uc3Qgbm9ybWFsaXplQ3JlZGVudGlhbHNQcm92aWRlciA9IChjcmVkZW50aWFsczogQ3JlZGVudGlhbHMgfCBQcm92aWRlcjxDcmVkZW50aWFscz4pOiBQcm92aWRlcjxDcmVkZW50aWFscz4gPT4ge1xuICBpZiAodHlwZW9mIGNyZWRlbnRpYWxzID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoY3JlZGVudGlhbHMpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3JlZGVudGlhbHM7XG4gIH1cbn07XG4iXX0=","import { __assign, __read, __spread, __values } from \"tslib\";\nexport var constructStack = function () {\n var absoluteEntries = [];\n var relativeEntries = [];\n var entriesNameSet = new Set();\n var sort = function (entries) {\n return entries.sort(function (a, b) {\n return stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"];\n });\n };\n var removeByName = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.name && entry.name === toRemove) {\n isRemoved = true;\n entriesNameSet.delete(toRemove);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var removeByReference = function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n if (entry.name)\n entriesNameSet.delete(entry.name);\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n var cloneTo = function (toStack) {\n absoluteEntries.forEach(function (entry) {\n //@ts-ignore\n toStack.add(entry.middleware, __assign({}, entry));\n });\n relativeEntries.forEach(function (entry) {\n //@ts-ignore\n toStack.addRelativeTo(entry.middleware, __assign({}, entry));\n });\n return toStack;\n };\n var expandRelativeMiddlewareList = function (from) {\n var expandedMiddlewareList = [];\n from.before.forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spread(expandRelativeMiddlewareList(entry)));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach(function (entry) {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push.apply(expandedMiddlewareList, __spread(expandRelativeMiddlewareList(entry)));\n }\n });\n return expandedMiddlewareList;\n };\n /**\n * Get a final list of middleware in the order of being executed in the resolved handler.\n */\n var getMiddlewareList = function () {\n var normalizedAbsoluteEntries = [];\n var normalizedRelativeEntries = [];\n var normalizedEntriesNameMap = {};\n absoluteEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach(function (entry) {\n var normalizedEntry = __assign(__assign({}, entry), { before: [], after: [] });\n if (normalizedEntry.name)\n normalizedEntriesNameMap[normalizedEntry.name] = normalizedEntry;\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach(function (entry) {\n if (entry.toMiddleware) {\n var toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n throw new Error(entry.toMiddleware + \" is not found when adding \" + (entry.name || \"anonymous\") + \" middleware \" + entry.relation + \" \" + entry.toMiddleware);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n var mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce(function (wholeList, expendedMiddlewareList) {\n // TODO: Replace it with Array.flat();\n wholeList.push.apply(wholeList, __spread(expendedMiddlewareList));\n return wholeList;\n }, []);\n return mainChain.map(function (entry) { return entry.middleware; });\n };\n var stack = {\n add: function (middleware, options) {\n if (options === void 0) { options = {}; }\n var name = options.name, override = options.override;\n var entry = __assign({ step: \"initialize\", priority: \"normal\", middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = absoluteEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || toOverride.priority !== entry.priority) {\n throw new Error(\"\\\"\" + name + \"\\\" middleware with \" + toOverride.priority + \" priority in \" + toOverride.step + \" step cannot be \" +\n (\"overridden by same-name middleware with \" + entry.priority + \" priority in \" + entry.step + \" step.\"));\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: function (middleware, options) {\n var name = options.name, override = options.override;\n var entry = __assign({ middleware: middleware }, options);\n if (name) {\n if (entriesNameSet.has(name)) {\n if (!override)\n throw new Error(\"Duplicate middleware name '\" + name + \"'\");\n var toOverrideIndex = relativeEntries.findIndex(function (entry) { return entry.name === name; });\n var toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(\"\\\"\" + name + \"\\\" middleware \" + toOverride.relation + \" \\\"\" + toOverride.toMiddleware + \"\\\" middleware cannot be overridden \" +\n (\"by same-name middleware \" + entry.relation + \" \\\"\" + entry.toMiddleware + \"\\\" middleware.\"));\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n entriesNameSet.add(name);\n }\n relativeEntries.push(entry);\n },\n clone: function () { return cloneTo(constructStack()); },\n use: function (plugin) {\n plugin.applyToStack(stack);\n },\n remove: function (toRemove) {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: function (toRemove) {\n var isRemoved = false;\n var filterCb = function (entry) {\n var tags = entry.tags, name = entry.name;\n if (tags && tags.includes(toRemove)) {\n if (name)\n entriesNameSet.delete(name);\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: function (from) {\n var cloned = cloneTo(constructStack());\n cloned.use(from);\n return cloned;\n },\n applyToStack: cloneTo,\n resolve: function (handler, context) {\n var e_1, _a;\n try {\n for (var _b = __values(getMiddlewareList().reverse()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var middleware = _c.value;\n handler = middleware(handler, context);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return handler;\n },\n };\n return stack;\n};\nvar stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nvar priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlkZGxld2FyZVN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01pZGRsZXdhcmVTdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBZ0JBLE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRztJQUM1QixJQUFJLGVBQWUsR0FBNkMsRUFBRSxDQUFDO0lBQ25FLElBQUksZUFBZSxHQUE2QyxFQUFFLENBQUM7SUFDbkUsSUFBTSxjQUFjLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFOUMsSUFBTSxJQUFJLEdBQUcsVUFBbUQsT0FBWTtRQUMxRSxPQUFBLE9BQU8sQ0FBQyxJQUFJLENBQ1YsVUFBQyxDQUFDLEVBQUUsQ0FBQztZQUNILE9BQUEsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDekMsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDO1FBRGpGLENBQ2lGLENBQ3BGO0lBSkQsQ0FJQyxDQUFDO0lBRUosSUFBTSxZQUFZLEdBQUcsVUFBQyxRQUFnQjtRQUNwQyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFxQztZQUNyRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3pDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ2pCLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2hDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUNGLGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsQ0FBQztJQUVGLElBQU0saUJBQWlCLEdBQUcsVUFBQyxRQUF1QztRQUNoRSxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFxQztZQUNyRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO2dCQUNqQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixJQUFJLEtBQUssQ0FBQyxJQUFJO29CQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsRCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFDRixlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFFRixJQUFNLE9BQU8sR0FBRyxVQUNkLE9BQStDO1FBRS9DLGVBQWUsQ0FBQyxPQUFPLENBQUMsVUFBQyxLQUFLO1lBQzVCLFlBQVk7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLGVBQU8sS0FBSyxFQUFHLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUM1QixZQUFZO1lBQ1osT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxlQUFPLEtBQUssRUFBRyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsSUFBTSw0QkFBNEIsR0FBRyxVQUNuQyxJQUErRDtRQUUvRCxJQUFNLHNCQUFzQixHQUFxQyxFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBQyxLQUFLO1lBQ3hCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDekQsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BDO2lCQUFNO2dCQUNMLHNCQUFzQixDQUFDLElBQUksT0FBM0Isc0JBQXNCLFdBQVMsNEJBQTRCLENBQUMsS0FBSyxDQUFDLEdBQUU7YUFDckU7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFDLEtBQUs7WUFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN6RCxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEM7aUJBQU07Z0JBQ0wsc0JBQXNCLENBQUMsSUFBSSxPQUEzQixzQkFBc0IsV0FBUyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsR0FBRTthQUNyRTtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILElBQU0saUJBQWlCLEdBQUc7UUFDeEIsSUFBTSx5QkFBeUIsR0FBd0UsRUFBRSxDQUFDO1FBQzFHLElBQU0seUJBQXlCLEdBQXdFLEVBQUUsQ0FBQztRQUMxRyxJQUFNLHdCQUF3QixHQUUxQixFQUFFLENBQUM7UUFFUCxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUM1QixJQUFNLGVBQWUseUJBQ2hCLEtBQUssS0FDUixNQUFNLEVBQUUsRUFBRSxFQUNWLEtBQUssRUFBRSxFQUFFLEdBQ1YsQ0FBQztZQUNGLElBQUksZUFBZSxDQUFDLElBQUk7Z0JBQUUsd0JBQXdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQztZQUMzRix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztZQUM1QixJQUFNLGVBQWUseUJBQ2hCLEtBQUssS0FDUixNQUFNLEVBQUUsRUFBRSxFQUNWLEtBQUssRUFBRSxFQUFFLEdBQ1YsQ0FBQztZQUNGLElBQUksZUFBZSxDQUFDLElBQUk7Z0JBQUUsd0JBQXdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQztZQUMzRix5QkFBeUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFFSCx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsVUFBQyxLQUFLO1lBQ3RDLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtnQkFDdEIsSUFBTSxZQUFZLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7b0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ1YsS0FBSyxDQUFDLFlBQVksbUNBQTZCLEtBQUssQ0FBQyxJQUFJLElBQUksV0FBVyxxQkFBZSxLQUFLLENBQUMsUUFBUSxTQUN0RyxLQUFLLENBQUMsWUFDTixDQUNILENBQUM7aUJBQ0g7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtvQkFDOUIsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2hDO2dCQUNELElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7b0JBQy9CLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNqQzthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUM7YUFDOUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO2FBQ2pDLE1BQU0sQ0FBQyxVQUFDLFNBQVMsRUFBRSxzQkFBc0I7WUFDeEMsc0NBQXNDO1lBQ3RDLFNBQVMsQ0FBQyxJQUFJLE9BQWQsU0FBUyxXQUFTLHNCQUFzQixHQUFFO1lBQzFDLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsRUFBRSxFQUFzQyxDQUFDLENBQUM7UUFDN0MsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQUMsS0FBSyxJQUFLLE9BQUEsS0FBSyxDQUFDLFVBQVUsRUFBaEIsQ0FBZ0IsQ0FBQyxDQUFDO0lBQ3BELENBQUMsQ0FBQztJQUVGLElBQU0sS0FBSyxHQUFHO1FBQ1osR0FBRyxFQUFFLFVBQUMsVUFBeUMsRUFBRSxPQUErQztZQUEvQyx3QkFBQSxFQUFBLFlBQStDO1lBQ3RGLElBQUEsSUFBSSxHQUFlLE9BQU8sS0FBdEIsRUFBRSxRQUFRLEdBQUssT0FBTyxTQUFaLENBQWE7WUFDbkMsSUFBTSxLQUFLLGNBQ1QsSUFBSSxFQUFFLFlBQVksRUFDbEIsUUFBUSxFQUFFLFFBQVEsRUFDbEIsVUFBVSxZQUFBLElBQ1AsT0FBTyxDQUNYLENBQUM7WUFDRixJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxRQUFRO3dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQThCLElBQUksTUFBRyxDQUFDLENBQUM7b0JBQ3RFLElBQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksRUFBbkIsQ0FBbUIsQ0FBQyxDQUFDO29CQUNsRixJQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ3BELElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFFBQVEsRUFBRTt3QkFDNUUsTUFBTSxJQUFJLEtBQUssQ0FDYixPQUFJLElBQUksMkJBQXFCLFVBQVUsQ0FBQyxRQUFRLHFCQUFnQixVQUFVLENBQUMsSUFBSSxxQkFBa0I7NkJBQy9GLDZDQUEyQyxLQUFLLENBQUMsUUFBUSxxQkFBZ0IsS0FBSyxDQUFDLElBQUksV0FBUSxDQUFBLENBQzlGLENBQUM7cUJBQ0g7b0JBQ0QsZUFBZSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzVDO2dCQUNELGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7WUFDRCxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFFRCxhQUFhLEVBQUUsVUFBQyxVQUF5QyxFQUFFLE9BQTBDO1lBQzNGLElBQUEsSUFBSSxHQUFlLE9BQU8sS0FBdEIsRUFBRSxRQUFRLEdBQUssT0FBTyxTQUFaLENBQWE7WUFDbkMsSUFBTSxLQUFLLGNBQ1QsVUFBVSxZQUFBLElBQ1AsT0FBTyxDQUNYLENBQUM7WUFDRixJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxRQUFRO3dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQThCLElBQUksTUFBRyxDQUFDLENBQUM7b0JBQ3RFLElBQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksRUFBbkIsQ0FBbUIsQ0FBQyxDQUFDO29CQUNsRixJQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ3BELElBQUksVUFBVSxDQUFDLFlBQVksS0FBSyxLQUFLLENBQUMsWUFBWSxJQUFJLFVBQVUsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFFBQVEsRUFBRTt3QkFDNUYsTUFBTSxJQUFJLEtBQUssQ0FDYixPQUFJLElBQUksc0JBQWdCLFVBQVUsQ0FBQyxRQUFRLFdBQUssVUFBVSxDQUFDLFlBQVksd0NBQW9DOzZCQUN6Ryw2QkFBMkIsS0FBSyxDQUFDLFFBQVEsV0FBSyxLQUFLLENBQUMsWUFBWSxtQkFBZSxDQUFBLENBQ2xGLENBQUM7cUJBQ0g7b0JBQ0QsZUFBZSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzVDO2dCQUNELGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7WUFDRCxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFFRCxLQUFLLEVBQUUsY0FBTSxPQUFBLE9BQU8sQ0FBQyxjQUFjLEVBQWlCLENBQUMsRUFBeEMsQ0FBd0M7UUFFckQsR0FBRyxFQUFFLFVBQUMsTUFBZ0M7WUFDcEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsTUFBTSxFQUFFLFVBQUMsUUFBZ0Q7WUFDdkQsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRO2dCQUFFLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDOztnQkFDM0QsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsV0FBVyxFQUFFLFVBQUMsUUFBZ0I7WUFDNUIsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQU0sUUFBUSxHQUFHLFVBQUMsS0FBcUM7Z0JBQzdDLElBQUEsSUFBSSxHQUFXLEtBQUssS0FBaEIsRUFBRSxJQUFJLEdBQUssS0FBSyxLQUFWLENBQVc7Z0JBQzdCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ25DLElBQUksSUFBSTt3QkFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0QyxTQUFTLEdBQUcsSUFBSSxDQUFDO29CQUNqQixPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUMsQ0FBQztZQUNGLGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELGVBQWUsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLEVBQUUsVUFDTixJQUE0QztZQUU1QyxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsY0FBYyxFQUF5QixDQUFDLENBQUM7WUFDaEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsWUFBWSxFQUFFLE9BQU87UUFFckIsT0FBTyxFQUFFLFVBQ1AsT0FBa0QsRUFDbEQsT0FBZ0M7OztnQkFFaEMsS0FBeUIsSUFBQSxLQUFBLFNBQUEsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQSxnQkFBQSw0QkFBRTtvQkFBbkQsSUFBTSxVQUFVLFdBQUE7b0JBQ25CLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBcUMsRUFBRSxPQUFPLENBQVEsQ0FBQztpQkFDN0U7Ozs7Ozs7OztZQUNELE9BQU8sT0FBeUMsQ0FBQztRQUNuRCxDQUFDO0tBQ0YsQ0FBQztJQUNGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsSUFBTSxXQUFXLEdBQThCO0lBQzdDLFVBQVUsRUFBRSxDQUFDO0lBQ2IsU0FBUyxFQUFFLENBQUM7SUFDWixLQUFLLEVBQUUsQ0FBQztJQUNSLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsRUFBRSxDQUFDO0NBQ2YsQ0FBQztBQUVGLElBQU0sZUFBZSxHQUFrQztJQUNyRCxJQUFJLEVBQUUsQ0FBQztJQUNQLE1BQU0sRUFBRSxDQUFDO0lBQ1QsR0FBRyxFQUFFLENBQUM7Q0FDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzb2x1dGVMb2NhdGlvbixcbiAgRGVzZXJpYWxpemVIYW5kbGVyLFxuICBIYW5kbGVyLFxuICBIYW5kbGVyRXhlY3V0aW9uQ29udGV4dCxcbiAgSGFuZGxlck9wdGlvbnMsXG4gIE1pZGRsZXdhcmVTdGFjayxcbiAgTWlkZGxld2FyZVR5cGUsXG4gIFBsdWdnYWJsZSxcbiAgUHJpb3JpdHksXG4gIFJlbGF0aXZlTG9jYXRpb24sXG4gIFN0ZXAsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeSwgTWlkZGxld2FyZUVudHJ5LCBOb3JtYWxpemVkLCBSZWxhdGl2ZU1pZGRsZXdhcmVFbnRyeSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBjb25zdHJ1Y3RTdGFjayA9IDxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PigpOiBNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4gPT4ge1xuICBsZXQgYWJzb2x1dGVFbnRyaWVzOiBBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PltdID0gW107XG4gIGxldCByZWxhdGl2ZUVudHJpZXM6IFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+W10gPSBbXTtcbiAgY29uc3QgZW50cmllc05hbWVTZXQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpO1xuXG4gIGNvbnN0IHNvcnQgPSA8VCBleHRlbmRzIEFic29sdXRlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+PihlbnRyaWVzOiBUW10pOiBUW10gPT5cbiAgICBlbnRyaWVzLnNvcnQoXG4gICAgICAoYSwgYikgPT5cbiAgICAgICAgc3RlcFdlaWdodHNbYi5zdGVwXSAtIHN0ZXBXZWlnaHRzW2Euc3RlcF0gfHxcbiAgICAgICAgcHJpb3JpdHlXZWlnaHRzW2IucHJpb3JpdHkgfHwgXCJub3JtYWxcIl0gLSBwcmlvcml0eVdlaWdodHNbYS5wcmlvcml0eSB8fCBcIm5vcm1hbFwiXVxuICAgICk7XG5cbiAgY29uc3QgcmVtb3ZlQnlOYW1lID0gKHRvUmVtb3ZlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICBsZXQgaXNSZW1vdmVkID0gZmFsc2U7XG4gICAgY29uc3QgZmlsdGVyQ2IgPSAoZW50cnk6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKGVudHJ5Lm5hbWUgJiYgZW50cnkubmFtZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgZW50cmllc05hbWVTZXQuZGVsZXRlKHRvUmVtb3ZlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBhYnNvbHV0ZUVudHJpZXMgPSBhYnNvbHV0ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZXR1cm4gaXNSZW1vdmVkO1xuICB9O1xuXG4gIGNvbnN0IHJlbW92ZUJ5UmVmZXJlbmNlID0gKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgIGxldCBpc1JlbW92ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBmaWx0ZXJDYiA9IChlbnRyeTogTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+KTogYm9vbGVhbiA9PiB7XG4gICAgICBpZiAoZW50cnkubWlkZGxld2FyZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKGVudHJ5Lm5hbWUpIGVudHJpZXNOYW1lU2V0LmRlbGV0ZShlbnRyeS5uYW1lKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbiAgICBhYnNvbHV0ZUVudHJpZXMgPSBhYnNvbHV0ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICByZXR1cm4gaXNSZW1vdmVkO1xuICB9O1xuXG4gIGNvbnN0IGNsb25lVG8gPSA8SW5wdXRUeXBlIGV4dGVuZHMgSW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBPdXRwdXQ+KFxuICAgIHRvU3RhY2s6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+XG4gICk6IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+ID0+IHtcbiAgICBhYnNvbHV0ZUVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdG9TdGFjay5hZGQoZW50cnkubWlkZGxld2FyZSwgeyAuLi5lbnRyeSB9KTtcbiAgICB9KTtcbiAgICByZWxhdGl2ZUVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdG9TdGFjay5hZGRSZWxhdGl2ZVRvKGVudHJ5Lm1pZGRsZXdhcmUsIHsgLi4uZW50cnkgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRvU3RhY2s7XG4gIH07XG5cbiAgY29uc3QgZXhwYW5kUmVsYXRpdmVNaWRkbGV3YXJlTGlzdCA9IChcbiAgICBmcm9tOiBOb3JtYWxpemVkPE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PiwgSW5wdXQsIE91dHB1dD5cbiAgKTogTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+W10gPT4ge1xuICAgIGNvbnN0IGV4cGFuZGVkTWlkZGxld2FyZUxpc3Q6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PltdID0gW107XG4gICAgZnJvbS5iZWZvcmUuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGlmIChlbnRyeS5iZWZvcmUubGVuZ3RoID09PSAwICYmIGVudHJ5LmFmdGVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZW50cnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwYW5kZWRNaWRkbGV3YXJlTGlzdC5wdXNoKC4uLmV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QoZW50cnkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZnJvbSk7XG4gICAgZnJvbS5hZnRlci5yZXZlcnNlKCkuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGlmIChlbnRyeS5iZWZvcmUubGVuZ3RoID09PSAwICYmIGVudHJ5LmFmdGVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBleHBhbmRlZE1pZGRsZXdhcmVMaXN0LnB1c2goZW50cnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhwYW5kZWRNaWRkbGV3YXJlTGlzdC5wdXNoKC4uLmV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QoZW50cnkpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZXhwYW5kZWRNaWRkbGV3YXJlTGlzdDtcbiAgfTtcblxuICAvKipcbiAgICogR2V0IGEgZmluYWwgbGlzdCBvZiBtaWRkbGV3YXJlIGluIHRoZSBvcmRlciBvZiBiZWluZyBleGVjdXRlZCBpbiB0aGUgcmVzb2x2ZWQgaGFuZGxlci5cbiAgICovXG4gIGNvbnN0IGdldE1pZGRsZXdhcmVMaXN0ID0gKCk6IEFycmF5PE1pZGRsZXdhcmVUeXBlPElucHV0LCBPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3Qgbm9ybWFsaXplZEFic29sdXRlRW50cmllczogTm9ybWFsaXplZDxBYnNvbHV0ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PiwgSW5wdXQsIE91dHB1dD5bXSA9IFtdO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJpZXM6IE5vcm1hbGl6ZWQ8UmVsYXRpdmVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4sIElucHV0LCBPdXRwdXQ+W10gPSBbXTtcbiAgICBjb25zdCBub3JtYWxpemVkRW50cmllc05hbWVNYXA6IHtcbiAgICAgIFttaWRkbGV3YXJlTmFtZTogc3RyaW5nXTogTm9ybWFsaXplZDxNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4sIElucHV0LCBPdXRwdXQ+O1xuICAgIH0gPSB7fTtcblxuICAgIGFic29sdXRlRW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZEVudHJ5ID0ge1xuICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgYmVmb3JlOiBbXSxcbiAgICAgICAgYWZ0ZXI6IFtdLFxuICAgICAgfTtcbiAgICAgIGlmIChub3JtYWxpemVkRW50cnkubmFtZSkgbm9ybWFsaXplZEVudHJpZXNOYW1lTWFwW25vcm1hbGl6ZWRFbnRyeS5uYW1lXSA9IG5vcm1hbGl6ZWRFbnRyeTtcbiAgICAgIG5vcm1hbGl6ZWRBYnNvbHV0ZUVudHJpZXMucHVzaChub3JtYWxpemVkRW50cnkpO1xuICAgIH0pO1xuXG4gICAgcmVsYXRpdmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBjb25zdCBub3JtYWxpemVkRW50cnkgPSB7XG4gICAgICAgIC4uLmVudHJ5LFxuICAgICAgICBiZWZvcmU6IFtdLFxuICAgICAgICBhZnRlcjogW10sXG4gICAgICB9O1xuICAgICAgaWYgKG5vcm1hbGl6ZWRFbnRyeS5uYW1lKSBub3JtYWxpemVkRW50cmllc05hbWVNYXBbbm9ybWFsaXplZEVudHJ5Lm5hbWVdID0gbm9ybWFsaXplZEVudHJ5O1xuICAgICAgbm9ybWFsaXplZFJlbGF0aXZlRW50cmllcy5wdXNoKG5vcm1hbGl6ZWRFbnRyeSk7XG4gICAgfSk7XG5cbiAgICBub3JtYWxpemVkUmVsYXRpdmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICBpZiAoZW50cnkudG9NaWRkbGV3YXJlKSB7XG4gICAgICAgIGNvbnN0IHRvTWlkZGxld2FyZSA9IG5vcm1hbGl6ZWRFbnRyaWVzTmFtZU1hcFtlbnRyeS50b01pZGRsZXdhcmVdO1xuICAgICAgICBpZiAodG9NaWRkbGV3YXJlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgJHtlbnRyeS50b01pZGRsZXdhcmV9IGlzIG5vdCBmb3VuZCB3aGVuIGFkZGluZyAke2VudHJ5Lm5hbWUgfHwgXCJhbm9ueW1vdXNcIn0gbWlkZGxld2FyZSAke2VudHJ5LnJlbGF0aW9ufSAke1xuICAgICAgICAgICAgICBlbnRyeS50b01pZGRsZXdhcmVcbiAgICAgICAgICAgIH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkucmVsYXRpb24gPT09IFwiYWZ0ZXJcIikge1xuICAgICAgICAgIHRvTWlkZGxld2FyZS5hZnRlci5wdXNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW50cnkucmVsYXRpb24gPT09IFwiYmVmb3JlXCIpIHtcbiAgICAgICAgICB0b01pZGRsZXdhcmUuYmVmb3JlLnB1c2goZW50cnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBtYWluQ2hhaW4gPSBzb3J0KG5vcm1hbGl6ZWRBYnNvbHV0ZUVudHJpZXMpXG4gICAgICAubWFwKGV4cGFuZFJlbGF0aXZlTWlkZGxld2FyZUxpc3QpXG4gICAgICAucmVkdWNlKCh3aG9sZUxpc3QsIGV4cGVuZGVkTWlkZGxld2FyZUxpc3QpID0+IHtcbiAgICAgICAgLy8gVE9ETzogUmVwbGFjZSBpdCB3aXRoIEFycmF5LmZsYXQoKTtcbiAgICAgICAgd2hvbGVMaXN0LnB1c2goLi4uZXhwZW5kZWRNaWRkbGV3YXJlTGlzdCk7XG4gICAgICAgIHJldHVybiB3aG9sZUxpc3Q7XG4gICAgICB9LCBbXSBhcyBNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD5bXSk7XG4gICAgcmV0dXJuIG1haW5DaGFpbi5tYXAoKGVudHJ5KSA9PiBlbnRyeS5taWRkbGV3YXJlKTtcbiAgfTtcblxuICBjb25zdCBzdGFjayA9IHtcbiAgICBhZGQ6IChtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uID0ge30pID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgb3ZlcnJpZGUgfSA9IG9wdGlvbnM7XG4gICAgICBjb25zdCBlbnRyeTogQWJzb2x1dGVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4gPSB7XG4gICAgICAgIHN0ZXA6IFwiaW5pdGlhbGl6ZVwiLFxuICAgICAgICBwcmlvcml0eTogXCJub3JtYWxcIixcbiAgICAgICAgbWlkZGxld2FyZSxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIH07XG4gICAgICBpZiAobmFtZSkge1xuICAgICAgICBpZiAoZW50cmllc05hbWVTZXQuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgaWYgKCFvdmVycmlkZSkgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgbWlkZGxld2FyZSBuYW1lICcke25hbWV9J2ApO1xuICAgICAgICAgIGNvbnN0IHRvT3ZlcnJpZGVJbmRleCA9IGFic29sdXRlRW50cmllcy5maW5kSW5kZXgoKGVudHJ5KSA9PiBlbnRyeS5uYW1lID09PSBuYW1lKTtcbiAgICAgICAgICBjb25zdCB0b092ZXJyaWRlID0gYWJzb2x1dGVFbnRyaWVzW3RvT3ZlcnJpZGVJbmRleF07XG4gICAgICAgICAgaWYgKHRvT3ZlcnJpZGUuc3RlcCAhPT0gZW50cnkuc3RlcCB8fCB0b092ZXJyaWRlLnByaW9yaXR5ICE9PSBlbnRyeS5wcmlvcml0eSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgXCIke25hbWV9XCIgbWlkZGxld2FyZSB3aXRoICR7dG9PdmVycmlkZS5wcmlvcml0eX0gcHJpb3JpdHkgaW4gJHt0b092ZXJyaWRlLnN0ZXB9IHN0ZXAgY2Fubm90IGJlIGAgK1xuICAgICAgICAgICAgICAgIGBvdmVycmlkZGVuIGJ5IHNhbWUtbmFtZSBtaWRkbGV3YXJlIHdpdGggJHtlbnRyeS5wcmlvcml0eX0gcHJpb3JpdHkgaW4gJHtlbnRyeS5zdGVwfSBzdGVwLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFic29sdXRlRW50cmllcy5zcGxpY2UodG9PdmVycmlkZUluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICBlbnRyaWVzTmFtZVNldC5hZGQobmFtZSk7XG4gICAgICB9XG4gICAgICBhYnNvbHV0ZUVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgfSxcblxuICAgIGFkZFJlbGF0aXZlVG86IChtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBSZWxhdGl2ZUxvY2F0aW9uKSA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUsIG92ZXJyaWRlIH0gPSBvcHRpb25zO1xuICAgICAgY29uc3QgZW50cnk6IFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+ID0ge1xuICAgICAgICBtaWRkbGV3YXJlLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgfTtcbiAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgIGlmIChlbnRyaWVzTmFtZVNldC5oYXMobmFtZSkpIHtcbiAgICAgICAgICBpZiAoIW92ZXJyaWRlKSB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSBtaWRkbGV3YXJlIG5hbWUgJyR7bmFtZX0nYCk7XG4gICAgICAgICAgY29uc3QgdG9PdmVycmlkZUluZGV4ID0gcmVsYXRpdmVFbnRyaWVzLmZpbmRJbmRleCgoZW50cnkpID0+IGVudHJ5Lm5hbWUgPT09IG5hbWUpO1xuICAgICAgICAgIGNvbnN0IHRvT3ZlcnJpZGUgPSByZWxhdGl2ZUVudHJpZXNbdG9PdmVycmlkZUluZGV4XTtcbiAgICAgICAgICBpZiAodG9PdmVycmlkZS50b01pZGRsZXdhcmUgIT09IGVudHJ5LnRvTWlkZGxld2FyZSB8fCB0b092ZXJyaWRlLnJlbGF0aW9uICE9PSBlbnRyeS5yZWxhdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICBgXCIke25hbWV9XCIgbWlkZGxld2FyZSAke3RvT3ZlcnJpZGUucmVsYXRpb259IFwiJHt0b092ZXJyaWRlLnRvTWlkZGxld2FyZX1cIiBtaWRkbGV3YXJlIGNhbm5vdCBiZSBvdmVycmlkZGVuIGAgK1xuICAgICAgICAgICAgICAgIGBieSBzYW1lLW5hbWUgbWlkZGxld2FyZSAke2VudHJ5LnJlbGF0aW9ufSBcIiR7ZW50cnkudG9NaWRkbGV3YXJlfVwiIG1pZGRsZXdhcmUuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVsYXRpdmVFbnRyaWVzLnNwbGljZSh0b092ZXJyaWRlSW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICAgIGVudHJpZXNOYW1lU2V0LmFkZChuYW1lKTtcbiAgICAgIH1cbiAgICAgIHJlbGF0aXZlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICB9LFxuXG4gICAgY2xvbmU6ICgpID0+IGNsb25lVG8oY29uc3RydWN0U3RhY2s8SW5wdXQsIE91dHB1dD4oKSksXG5cbiAgICB1c2U6IChwbHVnaW46IFBsdWdnYWJsZTxJbnB1dCwgT3V0cHV0PikgPT4ge1xuICAgICAgcGx1Z2luLmFwcGx5VG9TdGFjayhzdGFjayk7XG4gICAgfSxcblxuICAgIHJlbW92ZTogKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PiB8IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKHR5cGVvZiB0b1JlbW92ZSA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIHJlbW92ZUJ5TmFtZSh0b1JlbW92ZSk7XG4gICAgICBlbHNlIHJldHVybiByZW1vdmVCeVJlZmVyZW5jZSh0b1JlbW92ZSk7XG4gICAgfSxcblxuICAgIHJlbW92ZUJ5VGFnOiAodG9SZW1vdmU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgbGV0IGlzUmVtb3ZlZCA9IGZhbHNlO1xuICAgICAgY29uc3QgZmlsdGVyQ2IgPSAoZW50cnk6IE1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4gPT4ge1xuICAgICAgICBjb25zdCB7IHRhZ3MsIG5hbWUgfSA9IGVudHJ5O1xuICAgICAgICBpZiAodGFncyAmJiB0YWdzLmluY2x1ZGVzKHRvUmVtb3ZlKSkge1xuICAgICAgICAgIGlmIChuYW1lKSBlbnRyaWVzTmFtZVNldC5kZWxldGUobmFtZSk7XG4gICAgICAgICAgaXNSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9O1xuICAgICAgYWJzb2x1dGVFbnRyaWVzID0gYWJzb2x1dGVFbnRyaWVzLmZpbHRlcihmaWx0ZXJDYik7XG4gICAgICByZWxhdGl2ZUVudHJpZXMgPSByZWxhdGl2ZUVudHJpZXMuZmlsdGVyKGZpbHRlckNiKTtcbiAgICAgIHJldHVybiBpc1JlbW92ZWQ7XG4gICAgfSxcblxuICAgIGNvbmNhdDogPElucHV0VHlwZSBleHRlbmRzIElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgT3V0cHV0PihcbiAgICAgIGZyb206IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+XG4gICAgKTogTWlkZGxld2FyZVN0YWNrPElucHV0VHlwZSwgT3V0cHV0VHlwZT4gPT4ge1xuICAgICAgY29uc3QgY2xvbmVkID0gY2xvbmVUbyhjb25zdHJ1Y3RTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+KCkpO1xuICAgICAgY2xvbmVkLnVzZShmcm9tKTtcbiAgICAgIHJldHVybiBjbG9uZWQ7XG4gICAgfSxcblxuICAgIGFwcGx5VG9TdGFjazogY2xvbmVUbyxcblxuICAgIHJlc29sdmU6IDxJbnB1dFR5cGUgZXh0ZW5kcyBJbnB1dCwgT3V0cHV0VHlwZSBleHRlbmRzIE91dHB1dD4oXG4gICAgICBoYW5kbGVyOiBEZXNlcmlhbGl6ZUhhbmRsZXI8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPixcbiAgICAgIGNvbnRleHQ6IEhhbmRsZXJFeGVjdXRpb25Db250ZXh0XG4gICAgKTogSGFuZGxlcjxJbnB1dFR5cGUsIE91dHB1dFR5cGU+ID0+IHtcbiAgICAgIGZvciAoY29uc3QgbWlkZGxld2FyZSBvZiBnZXRNaWRkbGV3YXJlTGlzdCgpLnJldmVyc2UoKSkge1xuICAgICAgICBoYW5kbGVyID0gbWlkZGxld2FyZShoYW5kbGVyIGFzIEhhbmRsZXI8SW5wdXQsIE91dHB1dFR5cGU+LCBjb250ZXh0KSBhcyBhbnk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFuZGxlciBhcyBIYW5kbGVyPElucHV0VHlwZSwgT3V0cHV0VHlwZT47XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIHN0YWNrO1xufTtcblxuY29uc3Qgc3RlcFdlaWdodHM6IHsgW2tleSBpbiBTdGVwXTogbnVtYmVyIH0gPSB7XG4gIGluaXRpYWxpemU6IDUsXG4gIHNlcmlhbGl6ZTogNCxcbiAgYnVpbGQ6IDMsXG4gIGZpbmFsaXplUmVxdWVzdDogMixcbiAgZGVzZXJpYWxpemU6IDEsXG59O1xuXG5jb25zdCBwcmlvcml0eVdlaWdodHM6IHsgW2tleSBpbiBQcmlvcml0eV06IG51bWJlciB9ID0ge1xuICBoaWdoOiAzLFxuICBub3JtYWw6IDIsXG4gIGxvdzogMSxcbn07XG4iXX0=","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Client = /** @class */ (function () {\n function Client(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n Client.prototype.send = function (command, optionsOrCb, cb) {\n var options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n var callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n var handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then(function (result) { return callback(null, result.output); }, function (err) { return callback(err); })\n .catch(\n // prevent any errors thrown in the callback from triggering an\n // unhandled promise rejection\n function () { });\n }\n else {\n return handler(command).then(function (result) { return result.output; });\n }\n };\n Client.prototype.destroy = function () {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n };\n return Client;\n}());\nexport { Client };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFlM0Q7SUFRRSxnQkFBWSxNQUFtQztRQUZ4QyxvQkFBZSxHQUFHLGNBQWMsRUFBNkIsQ0FBQztRQUduRSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBY0QscUJBQUksR0FBSixVQUNFLE9BQStHLEVBQy9HLFdBQXNFLEVBQ3RFLEVBQTBDO1FBRTFDLElBQU0sT0FBTyxHQUFHLE9BQU8sV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUUsSUFBTSxRQUFRLEdBQUcsT0FBTyxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxXQUFxRCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakgsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFzQixFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0YsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLENBQUMsT0FBTyxDQUFDO2lCQUNiLElBQUksQ0FDSCxVQUFDLE1BQU0sSUFBSyxPQUFBLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUE3QixDQUE2QixFQUN6QyxVQUFDLEdBQVEsSUFBSyxPQUFBLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBYixDQUFhLENBQzVCO2lCQUNBLEtBQUs7WUFDSiwrREFBK0Q7WUFDL0QsOEJBQThCO1lBQzlCLGNBQU8sQ0FBQyxDQUNULENBQUM7U0FDTDthQUFNO1lBQ0wsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLE1BQU0sRUFBYixDQUFhLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRCx3QkFBTyxHQUFQO1FBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0UsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBbkRELElBbURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uc3RydWN0U3RhY2sgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1zdGFja1wiO1xuaW1wb3J0IHsgQ2xpZW50IGFzIElDbGllbnQsIENvbW1hbmQsIE1ldGFkYXRhQmVhcmVyLCBSZXF1ZXN0SGFuZGxlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNtaXRoeUNvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+IHtcbiAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyPGFueSwgYW55LCBIYW5kbGVyT3B0aW9ucz47XG4gIC8qKlxuICAgKiBUaGUgQVBJIHZlcnNpb24gc2V0IGludGVybmFsbHkgYnkgdGhlIFNESywgYW5kIGlzXG4gICAqIG5vdCBwbGFubmVkIHRvIGJlIHVzZWQgYnkgY3VzdG9tZXIgY29kZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNtaXRoeVJlc29sdmVkQ29uZmlndXJhdGlvbjxIYW5kbGVyT3B0aW9ucz4gPSBTbWl0aHlDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPjtcblxuZXhwb3J0IGNsYXNzIENsaWVudDxcbiAgSGFuZGxlck9wdGlvbnMsXG4gIENsaWVudElucHV0IGV4dGVuZHMgb2JqZWN0LFxuICBDbGllbnRPdXRwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlcixcbiAgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uIGV4dGVuZHMgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPlxuPiBpbXBsZW1lbnRzIElDbGllbnQ8Q2xpZW50SW5wdXQsIENsaWVudE91dHB1dCwgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uPiB7XG4gIHB1YmxpYyBtaWRkbGV3YXJlU3RhY2sgPSBjb25zdHJ1Y3RTdGFjazxDbGllbnRJbnB1dCwgQ2xpZW50T3V0cHV0PigpO1xuICByZWFkb25seSBjb25maWc6IFJlc29sdmVkQ2xpZW50Q29uZmlndXJhdGlvbjtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24pIHtcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgfVxuICBzZW5kPElucHV0VHlwZSBleHRlbmRzIENsaWVudElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgQ2xpZW50T3V0cHV0PihcbiAgICBjb21tYW5kOiBDb21tYW5kPENsaWVudElucHV0LCBJbnB1dFR5cGUsIENsaWVudE91dHB1dCwgT3V0cHV0VHlwZSwgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPj4sXG4gICAgb3B0aW9ucz86IEhhbmRsZXJPcHRpb25zXG4gICk6IFByb21pc2U8T3V0cHV0VHlwZT47XG4gIHNlbmQ8SW5wdXRUeXBlIGV4dGVuZHMgQ2xpZW50SW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBDbGllbnRPdXRwdXQ+KFxuICAgIGNvbW1hbmQ6IENvbW1hbmQ8Q2xpZW50SW5wdXQsIElucHV0VHlwZSwgQ2xpZW50T3V0cHV0LCBPdXRwdXRUeXBlLCBTbWl0aHlSZXNvbHZlZENvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+PixcbiAgICBjYjogKGVycjogYW55LCBkYXRhPzogT3V0cHV0VHlwZSkgPT4gdm9pZFxuICApOiB2b2lkO1xuICBzZW5kPElucHV0VHlwZSBleHRlbmRzIENsaWVudElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgQ2xpZW50T3V0cHV0PihcbiAgICBjb21tYW5kOiBDb21tYW5kPENsaWVudElucHV0LCBJbnB1dFR5cGUsIENsaWVudE91dHB1dCwgT3V0cHV0VHlwZSwgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPj4sXG4gICAgb3B0aW9uczogSGFuZGxlck9wdGlvbnMsXG4gICAgY2I6IChlcnI6IGFueSwgZGF0YT86IE91dHB1dFR5cGUpID0+IHZvaWRcbiAgKTogdm9pZDtcbiAgc2VuZDxJbnB1dFR5cGUgZXh0ZW5kcyBDbGllbnRJbnB1dCwgT3V0cHV0VHlwZSBleHRlbmRzIENsaWVudE91dHB1dD4oXG4gICAgY29tbWFuZDogQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXRUeXBlLCBDbGllbnRPdXRwdXQsIE91dHB1dFR5cGUsIFNtaXRoeVJlc29sdmVkQ29uZmlndXJhdGlvbjxIYW5kbGVyT3B0aW9ucz4+LFxuICAgIG9wdGlvbnNPckNiPzogSGFuZGxlck9wdGlvbnMgfCAoKGVycjogYW55LCBkYXRhPzogT3V0cHV0VHlwZSkgPT4gdm9pZCksXG4gICAgY2I/OiAoZXJyOiBhbnksIGRhdGE/OiBPdXRwdXRUeXBlKSA9PiB2b2lkXG4gICk6IFByb21pc2U8T3V0cHV0VHlwZT4gfCB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0gdHlwZW9mIG9wdGlvbnNPckNiICE9PSBcImZ1bmN0aW9uXCIgPyBvcHRpb25zT3JDYiA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjYWxsYmFjayA9IHR5cGVvZiBvcHRpb25zT3JDYiA9PT0gXCJmdW5jdGlvblwiID8gKG9wdGlvbnNPckNiIGFzIChlcnI6IGFueSwgZGF0YT86IE91dHB1dFR5cGUpID0+IHZvaWQpIDogY2I7XG4gICAgY29uc3QgaGFuZGxlciA9IGNvbW1hbmQucmVzb2x2ZU1pZGRsZXdhcmUodGhpcy5taWRkbGV3YXJlU3RhY2sgYXMgYW55LCB0aGlzLmNvbmZpZywgb3B0aW9ucyk7XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICBoYW5kbGVyKGNvbW1hbmQpXG4gICAgICAgIC50aGVuKFxuICAgICAgICAgIChyZXN1bHQpID0+IGNhbGxiYWNrKG51bGwsIHJlc3VsdC5vdXRwdXQpLFxuICAgICAgICAgIChlcnI6IGFueSkgPT4gY2FsbGJhY2soZXJyKVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChcbiAgICAgICAgICAvLyBwcmV2ZW50IGFueSBlcnJvcnMgdGhyb3duIGluIHRoZSBjYWxsYmFjayBmcm9tIHRyaWdnZXJpbmcgYW5cbiAgICAgICAgICAvLyB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25cbiAgICAgICAgICAoKSA9PiB7fVxuICAgICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaGFuZGxlcihjb21tYW5kKS50aGVuKChyZXN1bHQpID0+IHJlc3VsdC5vdXRwdXQpO1xuICAgIH1cbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnJlcXVlc3RIYW5kbGVyLmRlc3Ryb3kpIHRoaXMuY29uZmlnLnJlcXVlc3RIYW5kbGVyLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19","import { constructStack } from \"@aws-sdk/middleware-stack\";\nvar Command = /** @class */ (function () {\n function Command() {\n this.middlewareStack = constructStack();\n }\n return Command;\n}());\nexport { Command };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUczRDtJQUFBO1FBUVcsb0JBQWUsR0FBb0MsY0FBYyxFQUFpQixDQUFDO0lBTTlGLENBQUM7SUFBRCxjQUFDO0FBQUQsQ0FBQyxBQWRELElBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25zdHJ1Y3RTdGFjayB9IGZyb20gXCJAYXdzLXNkay9taWRkbGV3YXJlLXN0YWNrXCI7XG5pbXBvcnQgeyBDb21tYW5kIGFzIElDb21tYW5kLCBIYW5kbGVyLCBNZXRhZGF0YUJlYXJlciwgTWlkZGxld2FyZVN0YWNrIGFzIElNaWRkbGV3YXJlU3RhY2sgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbW1hbmQ8XG4gIElucHV0IGV4dGVuZHMgQ2xpZW50SW5wdXQsXG4gIE91dHB1dCBleHRlbmRzIENsaWVudE91dHB1dCxcbiAgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uLFxuICBDbGllbnRJbnB1dCBleHRlbmRzIG9iamVjdCA9IGFueSxcbiAgQ2xpZW50T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXIgPSBhbnlcbj4gaW1wbGVtZW50cyBJQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXQsIENsaWVudE91dHB1dCwgT3V0cHV0LCBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24+IHtcbiAgYWJzdHJhY3QgaW5wdXQ6IElucHV0O1xuICByZWFkb25seSBtaWRkbGV3YXJlU3RhY2s6IElNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4gPSBjb25zdHJ1Y3RTdGFjazxJbnB1dCwgT3V0cHV0PigpO1xuICBhYnN0cmFjdCByZXNvbHZlTWlkZGxld2FyZShcbiAgICBzdGFjazogSU1pZGRsZXdhcmVTdGFjazxDbGllbnRJbnB1dCwgQ2xpZW50T3V0cHV0PixcbiAgICBjb25maWd1cmF0aW9uOiBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24sXG4gICAgb3B0aW9uczogYW55XG4gICk6IEhhbmRsZXI8SW5wdXQsIE91dHB1dD47XG59XG4iXX0=","/**\n * Function that wraps encodeURIComponent to encode additional characters\n * to fully adhere to RFC 3986.\n */\nexport function extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16);\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtZW5jb2RlLXVyaS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXh0ZW5kZWQtZW5jb2RlLXVyaS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEdBQVc7SUFDcEQsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztRQUM1RCxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZ1bmN0aW9uIHRoYXQgd3JhcHMgZW5jb2RlVVJJQ29tcG9uZW50IHRvIGVuY29kZSBhZGRpdGlvbmFsIGNoYXJhY3RlcnNcbiAqIHRvIGZ1bGx5IGFkaGVyZSB0byBSRkMgMzk4Ni5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dGVuZGVkRW5jb2RlVVJJQ29tcG9uZW50KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChzdHIpLnJlcGxhY2UoL1shJygpKl0vZywgZnVuY3Rpb24gKGMpIHtcbiAgICByZXR1cm4gXCIlXCIgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpO1xuICB9KTtcbn1cbiJdfQ==","/**\n * The XML parser will set one K:V for a member that could\n * return multiple entries but only has one.\n */\nexport var getArrayIfSingleItem = function (mayBeArray) {\n return Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFycmF5LWlmLXNpbmdsZS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dldC1hcnJheS1pZi1zaW5nbGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFJLFVBQWE7SUFDbkQsT0FBQSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0FBQXJELENBQXFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBYTUwgcGFyc2VyIHdpbGwgc2V0IG9uZSBLOlYgZm9yIGEgbWVtYmVyIHRoYXQgY291bGRcbiAqIHJldHVybiBtdWx0aXBsZSBlbnRyaWVzIGJ1dCBvbmx5IGhhcyBvbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRBcnJheUlmU2luZ2xlSXRlbSA9IDxUPihtYXlCZUFycmF5OiBUKTogVCB8IFRbXSA9PlxuICBBcnJheS5pc0FycmF5KG1heUJlQXJyYXkpID8gbWF5QmVBcnJheSA6IFttYXlCZUFycmF5XTtcbiJdfQ==","/**\n * Recursively parses object and populates value is node from\n * \"#text\" key if it's available\n */\nexport var getValueFromTextNode = function (obj) {\n var textNodeName = \"#text\";\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZhbHVlLWZyb20tdGV4dC1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dldC12YWx1ZS1mcm9tLXRleHQtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLEdBQVE7SUFDM0MsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDO0lBQzdCLEtBQUssSUFBTSxHQUFHLElBQUksR0FBRyxFQUFFO1FBQ3JCLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ25FLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDbkM7YUFBTSxJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzVELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMzQztLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlY3Vyc2l2ZWx5IHBhcnNlcyBvYmplY3QgYW5kIHBvcHVsYXRlcyB2YWx1ZSBpcyBub2RlIGZyb21cbiAqIFwiI3RleHRcIiBrZXkgaWYgaXQncyBhdmFpbGFibGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlRnJvbVRleHROb2RlID0gKG9iajogYW55KSA9PiB7XG4gIGNvbnN0IHRleHROb2RlTmFtZSA9IFwiI3RleHRcIjtcbiAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIG9ialtrZXldW3RleHROb2RlTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgb2JqW2tleV0gPSBvYmpba2V5XVt0ZXh0Tm9kZU5hbWVdO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIG9ialtrZXldID09PSBcIm9iamVjdFwiICYmIG9ialtrZXldICE9PSBudWxsKSB7XG4gICAgICBvYmpba2V5XSA9IGdldFZhbHVlRnJvbVRleHROb2RlKG9ialtrZXldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iajtcbn07XG4iXX0=","/**\n * Lazy String holder for JSON typed contents.\n */\nimport { __extends, __read, __spread } from \"tslib\";\n/**\n * Because of https://github.com/microsoft/tslib/issues/95,\n * TS 'extends' shim doesn't support extending native types like String.\n * So here we create StringWrapper that duplicate everything from String\n * class including its prototype chain. So we can extend from here.\n */\n// @ts-ignore StringWrapper implementation is not a simple constructor\nexport var StringWrapper = function () {\n //@ts-ignore 'this' cannot be assigned to any, but Object.getPrototypeOf accepts any\n var Class = Object.getPrototypeOf(this).constructor;\n var Constructor = Function.bind.apply(String, __spread([null], arguments));\n //@ts-ignore Call wrapped String constructor directly, don't bother typing it.\n var instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(StringWrapper, String);\nvar LazyJsonString = /** @class */ (function (_super) {\n __extends(LazyJsonString, _super);\n function LazyJsonString() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LazyJsonString.prototype.deserializeJSON = function () {\n return JSON.parse(_super.prototype.toString.call(this));\n };\n LazyJsonString.prototype.toJSON = function () {\n return _super.prototype.toString.call(this);\n };\n LazyJsonString.fromObject = function (object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n };\n return LazyJsonString;\n}(StringWrapper));\nexport { LazyJsonString };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1qc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xhenktanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRzs7QUFNSDs7Ozs7R0FLRztBQUNILHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsSUFBTSxhQUFhLEdBQWtCO0lBQzFDLG9GQUFvRjtJQUNwRixJQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUN0RCxJQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLFlBQUcsSUFBVyxHQUFLLFNBQVMsRUFBRSxDQUFDO0lBQzdFLDhFQUE4RTtJQUM5RSxJQUFNLFFBQVEsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxPQUFPLFFBQWtCLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBQ0YsYUFBYSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7SUFDeEQsV0FBVyxFQUFFO1FBQ1gsS0FBSyxFQUFFLGFBQWE7UUFDcEIsVUFBVSxFQUFFLEtBQUs7UUFDakIsUUFBUSxFQUFFLElBQUk7UUFDZCxZQUFZLEVBQUUsSUFBSTtLQUNuQjtDQUNGLENBQUMsQ0FBQztBQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRTdDO0lBQW9DLGtDQUFhO0lBQWpEOztJQWlCQSxDQUFDO0lBaEJDLHdDQUFlLEdBQWY7UUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQU0sUUFBUSxXQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsK0JBQU0sR0FBTjtRQUNFLE9BQU8saUJBQU0sUUFBUSxXQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHlCQUFVLEdBQWpCLFVBQWtCLE1BQVc7UUFDM0IsSUFBSSxNQUFNLFlBQVksY0FBYyxFQUFFO1lBQ3BDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFBTSxJQUFJLE1BQU0sWUFBWSxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ2pFLE9BQU8sSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBakJELENBQW9DLGFBQWEsR0FpQmhEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMYXp5IFN0cmluZyBob2xkZXIgZm9yIEpTT04gdHlwZWQgY29udGVudHMuXG4gKi9cblxuaW50ZXJmYWNlIFN0cmluZ1dyYXBwZXIge1xuICBuZXcgKGFyZzogYW55KTogU3RyaW5nO1xufVxuXG4vKipcbiAqIEJlY2F1c2Ugb2YgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC90c2xpYi9pc3N1ZXMvOTUsXG4gKiBUUyAnZXh0ZW5kcycgc2hpbSBkb2Vzbid0IHN1cHBvcnQgZXh0ZW5kaW5nIG5hdGl2ZSB0eXBlcyBsaWtlIFN0cmluZy5cbiAqIFNvIGhlcmUgd2UgY3JlYXRlIFN0cmluZ1dyYXBwZXIgdGhhdCBkdXBsaWNhdGUgZXZlcnl0aGluZyBmcm9tIFN0cmluZ1xuICogY2xhc3MgaW5jbHVkaW5nIGl0cyBwcm90b3R5cGUgY2hhaW4uIFNvIHdlIGNhbiBleHRlbmQgZnJvbSBoZXJlLlxuICovXG4vLyBAdHMtaWdub3JlIFN0cmluZ1dyYXBwZXIgaW1wbGVtZW50YXRpb24gaXMgbm90IGEgc2ltcGxlIGNvbnN0cnVjdG9yXG5leHBvcnQgY29uc3QgU3RyaW5nV3JhcHBlcjogU3RyaW5nV3JhcHBlciA9IGZ1bmN0aW9uICgpIHtcbiAgLy9AdHMtaWdub3JlICd0aGlzJyBjYW5ub3QgYmUgYXNzaWduZWQgdG8gYW55LCBidXQgT2JqZWN0LmdldFByb3RvdHlwZU9mIGFjY2VwdHMgYW55XG4gIGNvbnN0IENsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLmNvbnN0cnVjdG9yO1xuICBjb25zdCBDb25zdHJ1Y3RvciA9IEZ1bmN0aW9uLmJpbmQuYXBwbHkoU3RyaW5nLCBbbnVsbCBhcyBhbnksIC4uLmFyZ3VtZW50c10pO1xuICAvL0B0cy1pZ25vcmUgQ2FsbCB3cmFwcGVkIFN0cmluZyBjb25zdHJ1Y3RvciBkaXJlY3RseSwgZG9uJ3QgYm90aGVyIHR5cGluZyBpdC5cbiAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ29uc3RydWN0b3IoKTtcbiAgT2JqZWN0LnNldFByb3RvdHlwZU9mKGluc3RhbmNlLCBDbGFzcy5wcm90b3R5cGUpO1xuICByZXR1cm4gaW5zdGFuY2UgYXMgU3RyaW5nO1xufTtcblN0cmluZ1dyYXBwZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTdHJpbmcucHJvdG90eXBlLCB7XG4gIGNvbnN0cnVjdG9yOiB7XG4gICAgdmFsdWU6IFN0cmluZ1dyYXBwZXIsXG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICB9LFxufSk7XG5PYmplY3Quc2V0UHJvdG90eXBlT2YoU3RyaW5nV3JhcHBlciwgU3RyaW5nKTtcblxuZXhwb3J0IGNsYXNzIExhenlKc29uU3RyaW5nIGV4dGVuZHMgU3RyaW5nV3JhcHBlciB7XG4gIGRlc2VyaWFsaXplSlNPTigpOiBhbnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKHN1cGVyLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cGVyLnRvU3RyaW5nKCk7XG4gIH1cblxuICBzdGF0aWMgZnJvbU9iamVjdChvYmplY3Q6IGFueSk6IExhenlKc29uU3RyaW5nIHtcbiAgICBpZiAob2JqZWN0IGluc3RhbmNlb2YgTGF6eUpzb25TdHJpbmcpIHtcbiAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgfSBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBTdHJpbmcgfHwgdHlwZW9mIG9iamVjdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgcmV0dXJuIG5ldyBMYXp5SnNvblN0cmluZyhvYmplY3QpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IExhenlKc29uU3RyaW5nKEpTT04uc3RyaW5naWZ5KG9iamVjdCkpO1xuICB9XG59XG4iXX0=","/**\n * Builds a proper UTC HttpDate timestamp from a Date object\n * since not all environments will have this as the expected\n * format.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString\n * > Prior to ECMAScript 2018, the format of the return value\n * > varied according to the platform. The most common return\n * > value was an RFC-1123 formatted date stamp, which is a\n * > slightly updated version of RFC-822 date stamps.\n */\n// Build indexes outside so we allocate them once.\nvar days = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n// prettier-ignore\nvar months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport function dateToUtcString(date) {\n var year = date.getUTCFullYear();\n var month = date.getUTCMonth();\n var dayOfWeek = date.getUTCDay();\n var dayOfMonthInt = date.getUTCDate();\n var hoursInt = date.getUTCHours();\n var minutesInt = date.getUTCMinutes();\n var secondsInt = date.getUTCSeconds();\n // Build 0 prefixed strings for contents that need to be\n // two digits and where we get an integer back.\n var dayOfMonthString = dayOfMonthInt < 10 ? \"0\" + dayOfMonthInt : \"\" + dayOfMonthInt;\n var hoursString = hoursInt < 10 ? \"0\" + hoursInt : \"\" + hoursInt;\n var minutesString = minutesInt < 10 ? \"0\" + minutesInt : \"\" + minutesInt;\n var secondsString = secondsInt < 10 ? \"0\" + secondsInt : \"\" + secondsInt;\n return days[dayOfWeek] + \", \" + dayOfMonthString + \" \" + months[month] + \" \" + year + \" \" + hoursString + \":\" + minutesString + \":\" + secondsString + \" GMT\";\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFFSCxrREFBa0Q7QUFDbEQsSUFBTSxJQUFJLEdBQWtCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUUsa0JBQWtCO0FBQ2xCLElBQU0sTUFBTSxHQUFrQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFbkgsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFVO0lBQ3hDLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuQyxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakMsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25DLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4QyxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3hDLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUV4Qyx3REFBd0Q7SUFDeEQsK0NBQStDO0lBQy9DLElBQU0sZ0JBQWdCLEdBQUcsYUFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBSSxhQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUcsYUFBZSxDQUFDO0lBQ3ZGLElBQU0sV0FBVyxHQUFHLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQUksUUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFHLFFBQVUsQ0FBQztJQUNuRSxJQUFNLGFBQWEsR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFJLFVBQVksQ0FBQyxDQUFDLENBQUMsS0FBRyxVQUFZLENBQUM7SUFDM0UsSUFBTSxhQUFhLEdBQUcsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBSSxVQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUcsVUFBWSxDQUFDO0lBRTNFLE9BQVUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFLLGdCQUFnQixTQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBSSxJQUFJLFNBQUksV0FBVyxTQUFJLGFBQWEsU0FBSSxhQUFhLFNBQU0sQ0FBQztBQUNqSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCdWlsZHMgYSBwcm9wZXIgVVRDIEh0dHBEYXRlIHRpbWVzdGFtcCBmcm9tIGEgRGF0ZSBvYmplY3RcbiAqIHNpbmNlIG5vdCBhbGwgZW52aXJvbm1lbnRzIHdpbGwgaGF2ZSB0aGlzIGFzIHRoZSBleHBlY3RlZFxuICogZm9ybWF0LlxuICpcbiAqIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b1VUQ1N0cmluZ1xuICogPiBQcmlvciB0byBFQ01BU2NyaXB0IDIwMTgsIHRoZSBmb3JtYXQgb2YgdGhlIHJldHVybiB2YWx1ZVxuICogPiB2YXJpZWQgYWNjb3JkaW5nIHRvIHRoZSBwbGF0Zm9ybS4gVGhlIG1vc3QgY29tbW9uIHJldHVyblxuICogPiB2YWx1ZSB3YXMgYW4gUkZDLTExMjMgZm9ybWF0dGVkIGRhdGUgc3RhbXAsIHdoaWNoIGlzIGFcbiAqID4gc2xpZ2h0bHkgdXBkYXRlZCB2ZXJzaW9uIG9mIFJGQy04MjIgZGF0ZSBzdGFtcHMuXG4gKi9cblxuLy8gQnVpbGQgaW5kZXhlcyBvdXRzaWRlIHNvIHdlIGFsbG9jYXRlIHRoZW0gb25jZS5cbmNvbnN0IGRheXM6IEFycmF5PFN0cmluZz4gPSBbXCJTdW5cIiwgXCJNb25cIiwgXCJUdWVcIiwgXCJXZWRcIiwgXCJUaHVcIiwgXCJGcmlcIiwgXCJTYXRcIl07XG4vLyBwcmV0dGllci1pZ25vcmVcbmNvbnN0IG1vbnRoczogQXJyYXk8U3RyaW5nPiA9IFtcIkphblwiLCBcIkZlYlwiLCBcIk1hclwiLCBcIkFwclwiLCBcIk1heVwiLCBcIkp1blwiLCBcIkp1bFwiLCBcIkF1Z1wiLCBcIlNlcFwiLCBcIk9jdFwiLCBcIk5vdlwiLCBcIkRlY1wiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUb1V0Y1N0cmluZyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XG4gIGNvbnN0IGRheU9mV2VlayA9IGRhdGUuZ2V0VVRDRGF5KCk7XG4gIGNvbnN0IGRheU9mTW9udGhJbnQgPSBkYXRlLmdldFVUQ0RhdGUoKTtcbiAgY29uc3QgaG91cnNJbnQgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XG4gIGNvbnN0IG1pbnV0ZXNJbnQgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcbiAgY29uc3Qgc2Vjb25kc0ludCA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xuXG4gIC8vIEJ1aWxkIDAgcHJlZml4ZWQgc3RyaW5ncyBmb3IgY29udGVudHMgdGhhdCBuZWVkIHRvIGJlXG4gIC8vIHR3byBkaWdpdHMgYW5kIHdoZXJlIHdlIGdldCBhbiBpbnRlZ2VyIGJhY2suXG4gIGNvbnN0IGRheU9mTW9udGhTdHJpbmcgPSBkYXlPZk1vbnRoSW50IDwgMTAgPyBgMCR7ZGF5T2ZNb250aEludH1gIDogYCR7ZGF5T2ZNb250aEludH1gO1xuICBjb25zdCBob3Vyc1N0cmluZyA9IGhvdXJzSW50IDwgMTAgPyBgMCR7aG91cnNJbnR9YCA6IGAke2hvdXJzSW50fWA7XG4gIGNvbnN0IG1pbnV0ZXNTdHJpbmcgPSBtaW51dGVzSW50IDwgMTAgPyBgMCR7bWludXRlc0ludH1gIDogYCR7bWludXRlc0ludH1gO1xuICBjb25zdCBzZWNvbmRzU3RyaW5nID0gc2Vjb25kc0ludCA8IDEwID8gYDAke3NlY29uZHNJbnR9YCA6IGAke3NlY29uZHNJbnR9YDtcblxuICByZXR1cm4gYCR7ZGF5c1tkYXlPZldlZWtdfSwgJHtkYXlPZk1vbnRoU3RyaW5nfSAke21vbnRoc1ttb250aF19ICR7eWVhcn0gJHtob3Vyc1N0cmluZ306JHttaW51dGVzU3RyaW5nfToke3NlY29uZHNTdHJpbmd9IEdNVGA7XG59XG4iXX0=","export var SENSITIVE_STRING = \"***SensitiveInformation***\";\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBTRU5TSVRJVkVfU1RSSU5HID0gXCIqKipTZW5zaXRpdmVJbmZvcm1hdGlvbioqKlwiO1xuIl19","import { __read, __values } from \"tslib\";\nexport function parseQueryString(querystring) {\n var e_1, _a;\n var query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n try {\n for (var _b = __values(querystring.split(\"&\")), _c = _b.next(); !_c.done; _c = _b.next()) {\n var pair = _c.value;\n var _d = __read(pair.split(\"=\"), 2), key = _d[0], _e = _d[1], value = _e === void 0 ? null : _e;\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return query;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxXQUFtQjs7SUFDbEQsSUFBTSxLQUFLLEdBQXNCLEVBQUUsQ0FBQztJQUNwQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFN0MsSUFBSSxXQUFXLEVBQUU7O1lBQ2YsS0FBbUIsSUFBQSxLQUFBLFNBQUEsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBdEMsSUFBTSxJQUFJLFdBQUE7Z0JBQ1QsSUFBQSxLQUFBLE9BQXNCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUEsRUFBcEMsR0FBRyxRQUFBLEVBQUUsVUFBWSxFQUFaLEtBQUssbUJBQUcsSUFBSSxLQUFtQixDQUFDO2dCQUMxQyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLElBQUksS0FBSyxFQUFFO29CQUNULEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFO29CQUNuQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUNwQjtxQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ25DLEtBQUssQ0FBQyxHQUFHLENBQW1CLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDO2lCQUNyRDtxQkFBTTtvQkFDTCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFXLEVBQUUsS0FBZSxDQUFDLENBQUM7aUJBQ3REO2FBQ0Y7Ozs7Ozs7OztLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlQYXJhbWV0ZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUXVlcnlTdHJpbmcocXVlcnlzdHJpbmc6IHN0cmluZyk6IFF1ZXJ5UGFyYW1ldGVyQmFnIHtcbiAgY29uc3QgcXVlcnk6IFF1ZXJ5UGFyYW1ldGVyQmFnID0ge307XG4gIHF1ZXJ5c3RyaW5nID0gcXVlcnlzdHJpbmcucmVwbGFjZSgvXlxcPy8sIFwiXCIpO1xuXG4gIGlmIChxdWVyeXN0cmluZykge1xuICAgIGZvciAoY29uc3QgcGFpciBvZiBxdWVyeXN0cmluZy5zcGxpdChcIiZcIikpIHtcbiAgICAgIGxldCBba2V5LCB2YWx1ZSA9IG51bGxdID0gcGFpci5zcGxpdChcIj1cIik7XG4gICAgICBrZXkgPSBkZWNvZGVVUklDb21wb25lbnQoa2V5KTtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAoIShrZXkgaW4gcXVlcnkpKSB7XG4gICAgICAgIHF1ZXJ5W2tleV0gPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShxdWVyeVtrZXldKSkge1xuICAgICAgICAocXVlcnlba2V5XSBhcyBBcnJheTxzdHJpbmc+KS5wdXNoKHZhbHVlIGFzIHN0cmluZyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeVtrZXldID0gW3F1ZXJ5W2tleV0gYXMgc3RyaW5nLCB2YWx1ZSBhcyBzdHJpbmddO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBxdWVyeTtcbn1cbiJdfQ==","import { parseQueryString } from \"@aws-sdk/querystring-parser\";\nexport var parseUrl = function (url) {\n var _a = new URL(url), hostname = _a.hostname, pathname = _a.pathname, port = _a.port, protocol = _a.protocol, search = _a.search;\n var query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname: hostname,\n port: port ? parseInt(port) : undefined,\n protocol: protocol,\n path: pathname,\n query: query,\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHL0QsTUFBTSxDQUFDLElBQU0sUUFBUSxHQUFjLFVBQUMsR0FBVztJQUN2QyxJQUFBLEtBQWlELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUEzRCxRQUFRLGNBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxJQUFJLFVBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxNQUFNLFlBQWlCLENBQUM7SUFFcEUsSUFBSSxLQUFvQyxDQUFDO0lBQ3pDLElBQUksTUFBTSxFQUFFO1FBQ1YsS0FBSyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2xDO0lBRUQsT0FBTztRQUNMLFFBQVEsVUFBQTtRQUNSLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUN2QyxRQUFRLFVBQUE7UUFDUixJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssT0FBQTtLQUNOLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVF1ZXJ5U3RyaW5nIH0gZnJvbSBcIkBhd3Mtc2RrL3F1ZXJ5c3RyaW5nLXBhcnNlclwiO1xuaW1wb3J0IHsgRW5kcG9pbnQsIFF1ZXJ5UGFyYW1ldGVyQmFnLCBVcmxQYXJzZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVXJsOiBVcmxQYXJzZXIgPSAodXJsOiBzdHJpbmcpOiBFbmRwb2ludCA9PiB7XG4gIGNvbnN0IHsgaG9zdG5hbWUsIHBhdGhuYW1lLCBwb3J0LCBwcm90b2NvbCwgc2VhcmNoIH0gPSBuZXcgVVJMKHVybCk7XG5cbiAgbGV0IHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyB8IHVuZGVmaW5lZDtcbiAgaWYgKHNlYXJjaCkge1xuICAgIHF1ZXJ5ID0gcGFyc2VRdWVyeVN0cmluZyhzZWFyY2gpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBob3N0bmFtZSxcbiAgICBwb3J0OiBwb3J0ID8gcGFyc2VJbnQocG9ydCkgOiB1bmRlZmluZWQsXG4gICAgcHJvdG9jb2wsXG4gICAgcGF0aDogcGF0aG5hbWUsXG4gICAgcXVlcnksXG4gIH07XG59O1xuIl19","var alphabetByEncoding = {};\nvar alphabetByValue = new Array(64);\nfor (var i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\nfor (var i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n var char = String.fromCharCode(i + start);\n var index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nfor (var i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n var char = i.toString(10);\n var index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nvar bitsPerLetter = 6;\nvar bitsPerByte = 8;\nvar maxLetterValue = 63;\n/**\n * Converts a base-64 encoded string to a Uint8Array of bytes.\n *\n * @param input The base-64 encoded string\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function fromBase64(input) {\n var totalByteLength = (input.length / 4) * 3;\n if (input.substr(-2) === \"==\") {\n totalByteLength -= 2;\n }\n else if (input.substr(-1) === \"=\") {\n totalByteLength--;\n }\n var out = new ArrayBuffer(totalByteLength);\n var dataView = new DataView(out);\n for (var i = 0; i < input.length; i += 4) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n }\n else {\n bits >>= bitsPerLetter;\n }\n }\n var chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n var byteLength = Math.floor(bitLength / bitsPerByte);\n for (var k = 0; k < byteLength; k++) {\n var offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n return new Uint8Array(out);\n}\n/**\n * Converts a Uint8Array of binary data to a base-64 encoded string.\n *\n * @param input The binary data to encode\n *\n * @see https://tools.ietf.org/html/rfc4648#section-4\n */\nexport function toBase64(input) {\n var str = \"\";\n for (var i = 0; i < input.length; i += 3) {\n var bits = 0;\n var bitLength = 0;\n for (var j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n bitLength += bitsPerByte;\n }\n var bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (var k = 1; k <= bitClusterCount; k++) {\n var offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n return str;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTSxrQkFBa0IsR0FBOEIsRUFBRSxDQUFDO0FBQ3pELElBQU0sZUFBZSxHQUFrQixJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM3RixJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM1QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztDQUMzQjtBQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzdGLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVDLElBQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7Q0FDL0I7QUFFRCxLQUFLLElBQUksQ0FB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QyxDQUFDLElBQUksR0FBRyxDQUFDLGNBQWMsSUFBSSxNQUFNLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQztLQUMzQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFscGhhYmV0QnlFbmNvZGluZzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuY29uc3QgYWxwaGFiZXRCeVZhbHVlOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5KDY0KTtcblxuZm9yIChsZXQgaSA9IDAsIHN0YXJ0ID0gXCJBXCIuY2hhckNvZGVBdCgwKSwgbGltaXQgPSBcIlpcIi5jaGFyQ29kZUF0KDApOyBpICsgc3RhcnQgPD0gbGltaXQ7IGkrKykge1xuICBjb25zdCBjaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShpICsgc3RhcnQpO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpO1xuICBhbHBoYWJldEJ5VmFsdWVbaV0gPSBjaGFyO1xufVxuXG5mb3IgKGxldCBpID0gMCwgc3RhcnQgPSBcImFcIi5jaGFyQ29kZUF0KDApLCBsaW1pdCA9IFwielwiLmNoYXJDb2RlQXQoMCk7IGkgKyBzdGFydCA8PSBsaW1pdDsgaSsrKSB7XG4gIGNvbnN0IGNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkgKyBzdGFydCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDI2O1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykge1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbaS50b1N0cmluZygxMCldID0gaSArIDUyO1xuICBjb25zdCBjaGFyID0gaS50b1N0cmluZygxMCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDUyO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmFscGhhYmV0QnlFbmNvZGluZ1tcIitcIl0gPSA2MjtcbmFscGhhYmV0QnlWYWx1ZVs2Ml0gPSBcIitcIjtcbmFscGhhYmV0QnlFbmNvZGluZ1tcIi9cIl0gPSA2MztcbmFscGhhYmV0QnlWYWx1ZVs2M10gPSBcIi9cIjtcblxuY29uc3QgYml0c1BlckxldHRlciA9IDY7XG5jb25zdCBiaXRzUGVyQnl0ZSA9IDg7XG5jb25zdCBtYXhMZXR0ZXJWYWx1ZSA9IDBiMTExMTExO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZyB0byBhIFVpbnQ4QXJyYXkgb2YgYnl0ZXMuXG4gKlxuICogQHBhcmFtIGlucHV0IFRoZSBiYXNlLTY0IGVuY29kZWQgc3RyaW5nXG4gKlxuICogQHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDY0OCNzZWN0aW9uLTRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21CYXNlNjQoaW5wdXQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBsZXQgdG90YWxCeXRlTGVuZ3RoID0gKGlucHV0Lmxlbmd0aCAvIDQpICogMztcbiAgaWYgKGlucHV0LnN1YnN0cigtMikgPT09IFwiPT1cIikge1xuICAgIHRvdGFsQnl0ZUxlbmd0aCAtPSAyO1xuICB9IGVsc2UgaWYgKGlucHV0LnN1YnN0cigtMSkgPT09IFwiPVwiKSB7XG4gICAgdG90YWxCeXRlTGVuZ3RoLS07XG4gIH1cbiAgY29uc3Qgb3V0ID0gbmV3IEFycmF5QnVmZmVyKHRvdGFsQnl0ZUxlbmd0aCk7XG4gIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KG91dCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpICs9IDQpIHtcbiAgICBsZXQgYml0cyA9IDA7XG4gICAgbGV0IGJpdExlbmd0aCA9IDA7XG4gICAgZm9yIChsZXQgaiA9IGksIGxpbWl0ID0gaSArIDM7IGogPD0gbGltaXQ7IGorKykge1xuICAgICAgaWYgKGlucHV0W2pdICE9PSBcIj1cIikge1xuICAgICAgICBiaXRzIHw9IGFscGhhYmV0QnlFbmNvZGluZ1tpbnB1dFtqXV0gPDwgKChsaW1pdCAtIGopICogYml0c1BlckxldHRlcik7XG4gICAgICAgIGJpdExlbmd0aCArPSBiaXRzUGVyTGV0dGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYml0cyA+Pj0gYml0c1BlckxldHRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjaHVua09mZnNldCA9IChpIC8gNCkgKiAzO1xuICAgIGJpdHMgPj49IGJpdExlbmd0aCAlIGJpdHNQZXJCeXRlO1xuICAgIGNvbnN0IGJ5dGVMZW5ndGggPSBNYXRoLmZsb29yKGJpdExlbmd0aCAvIGJpdHNQZXJCeXRlKTtcbiAgICBmb3IgKGxldCBrID0gMDsgayA8IGJ5dGVMZW5ndGg7IGsrKykge1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gKGJ5dGVMZW5ndGggLSBrIC0gMSkgKiBiaXRzUGVyQnl0ZTtcbiAgICAgIGRhdGFWaWV3LnNldFVpbnQ4KGNodW5rT2Zmc2V0ICsgaywgKGJpdHMgJiAoMjU1IDw8IG9mZnNldCkpID4+IG9mZnNldCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KG91dCk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBVaW50OEFycmF5IG9mIGJpbmFyeSBkYXRhIHRvIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgVGhlIGJpbmFyeSBkYXRhIHRvIGVuY29kZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQ2NDgjc2VjdGlvbi00XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2U2NChpbnB1dDogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGxldCBzdHIgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSArPSAzKSB7XG4gICAgbGV0IGJpdHMgPSAwO1xuICAgIGxldCBiaXRMZW5ndGggPSAwO1xuICAgIGZvciAobGV0IGogPSBpLCBsaW1pdCA9IE1hdGgubWluKGkgKyAzLCBpbnB1dC5sZW5ndGgpOyBqIDwgbGltaXQ7IGorKykge1xuICAgICAgYml0cyB8PSBpbnB1dFtqXSA8PCAoKGxpbWl0IC0gaiAtIDEpICogYml0c1BlckJ5dGUpO1xuICAgICAgYml0TGVuZ3RoICs9IGJpdHNQZXJCeXRlO1xuICAgIH1cblxuICAgIGNvbnN0IGJpdENsdXN0ZXJDb3VudCA9IE1hdGguY2VpbChiaXRMZW5ndGggLyBiaXRzUGVyTGV0dGVyKTtcbiAgICBiaXRzIDw8PSBiaXRDbHVzdGVyQ291bnQgKiBiaXRzUGVyTGV0dGVyIC0gYml0TGVuZ3RoO1xuICAgIGZvciAobGV0IGsgPSAxOyBrIDw9IGJpdENsdXN0ZXJDb3VudDsgaysrKSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSAoYml0Q2x1c3RlckNvdW50IC0gaykgKiBiaXRzUGVyTGV0dGVyO1xuICAgICAgc3RyICs9IGFscGhhYmV0QnlWYWx1ZVsoYml0cyAmIChtYXhMZXR0ZXJWYWx1ZSA8PCBvZmZzZXQpKSA+PiBvZmZzZXRdO1xuICAgIH1cblxuICAgIHN0ciArPSBcIj09XCIuc2xpY2UoMCwgNCAtIGJpdENsdXN0ZXJDb3VudCk7XG4gIH1cblxuICByZXR1cm4gc3RyO1xufVxuIl19","export function calculateBodyLength(body) {\n if (typeof body === \"string\") {\n var len = body.length;\n for (var i = len - 1; i >= 0; i--) {\n var code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n // handles Uint8Array, ArrayBuffer, Buffer, and ArrayBufferView\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n // handles browser File object\n return body.size;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQVM7SUFDM0MsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUV0QixLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksS0FBSztnQkFBRSxHQUFHLEVBQUUsQ0FBQztpQkFDbkMsSUFBSSxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNO2dCQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLEdBQUcsQ0FBQztLQUNaO1NBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFO1FBQzlDLCtEQUErRDtRQUMvRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7S0FDeEI7U0FBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDeEMsOEJBQThCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztLQUNsQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQm9keUxlbmd0aChib2R5OiBhbnkpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIGJvZHkgPT09IFwic3RyaW5nXCIpIHtcbiAgICBsZXQgbGVuID0gYm9keS5sZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gbGVuIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGNvZGUgPSBib2R5LmNoYXJDb2RlQXQoaSk7XG4gICAgICBpZiAoY29kZSA+IDB4N2YgJiYgY29kZSA8PSAweDdmZikgbGVuKys7XG4gICAgICBlbHNlIGlmIChjb2RlID4gMHg3ZmYgJiYgY29kZSA8PSAweGZmZmYpIGxlbiArPSAyO1xuICAgIH1cblxuICAgIHJldHVybiBsZW47XG4gIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkuYnl0ZUxlbmd0aCA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIGhhbmRsZXMgVWludDhBcnJheSwgQXJyYXlCdWZmZXIsIEJ1ZmZlciwgYW5kIEFycmF5QnVmZmVyVmlld1xuICAgIHJldHVybiBib2R5LmJ5dGVMZW5ndGg7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkuc2l6ZSA9PT0gXCJudW1iZXJcIikge1xuICAgIC8vIGhhbmRsZXMgYnJvd3NlciBGaWxlIG9iamVjdFxuICAgIHJldHVybiBib2R5LnNpemU7XG4gIH1cbn1cbiJdfQ==","var SHORT_TO_HEX = {};\nvar HEX_TO_SHORT = {};\nfor (var i = 0; i < 256; i++) {\n var encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = \"0\" + encodedByte;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\n/**\n * Converts a hexadecimal encoded string to a Uint8Array of bytes.\n *\n * @param encoded The hexadecimal encoded string\n */\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n var out = new Uint8Array(encoded.length / 2);\n for (var i = 0; i < encoded.length; i += 2) {\n var encodedByte = encoded.substr(i, 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(\"Cannot decode unrecognized sequence \" + encodedByte + \" as hexadecimal\");\n }\n }\n return out;\n}\n/**\n * Converts a Uint8Array of binary data to a hexadecimal encoded string.\n *\n * @param bytes The binary data to encode\n */\nexport function toHex(bytes) {\n var out = \"\";\n for (var i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTSxZQUFZLEdBQThCLEVBQUUsQ0FBQztBQUNuRCxJQUFNLFlBQVksR0FBOEIsRUFBRSxDQUFDO0FBRW5ELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDNUIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzVCLFdBQVcsR0FBRyxNQUFJLFdBQWEsQ0FBQztLQUNqQztJQUVELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUM7SUFDOUIsWUFBWSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUMvQjtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLE9BQWU7SUFDckMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQsSUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzFDLElBQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZELElBQUksV0FBVyxJQUFJLFlBQVksRUFBRTtZQUMvQixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBdUMsV0FBVyxvQkFBaUIsQ0FBQyxDQUFDO1NBQ3RGO0tBQ0Y7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxLQUFpQjtJQUNyQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN6QyxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9CO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU0hPUlRfVE9fSEVYOiB7IFtrZXk6IG51bWJlcl06IHN0cmluZyB9ID0ge307XG5jb25zdCBIRVhfVE9fU0hPUlQ6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcblxuZm9yIChsZXQgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuICBsZXQgZW5jb2RlZEJ5dGUgPSBpLnRvU3RyaW5nKDE2KS50b0xvd2VyQ2FzZSgpO1xuICBpZiAoZW5jb2RlZEJ5dGUubGVuZ3RoID09PSAxKSB7XG4gICAgZW5jb2RlZEJ5dGUgPSBgMCR7ZW5jb2RlZEJ5dGV9YDtcbiAgfVxuXG4gIFNIT1JUX1RPX0hFWFtpXSA9IGVuY29kZWRCeXRlO1xuICBIRVhfVE9fU0hPUlRbZW5jb2RlZEJ5dGVdID0gaTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGhleGFkZWNpbWFsIGVuY29kZWQgc3RyaW5nIHRvIGEgVWludDhBcnJheSBvZiBieXRlcy5cbiAqXG4gKiBAcGFyYW0gZW5jb2RlZCBUaGUgaGV4YWRlY2ltYWwgZW5jb2RlZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21IZXgoZW5jb2RlZDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGlmIChlbmNvZGVkLmxlbmd0aCAlIDIgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJIZXggZW5jb2RlZCBzdHJpbmdzIG11c3QgaGF2ZSBhbiBldmVuIG51bWJlciBsZW5ndGhcIik7XG4gIH1cblxuICBjb25zdCBvdXQgPSBuZXcgVWludDhBcnJheShlbmNvZGVkLmxlbmd0aCAvIDIpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGVuY29kZWQubGVuZ3RoOyBpICs9IDIpIHtcbiAgICBjb25zdCBlbmNvZGVkQnl0ZSA9IGVuY29kZWQuc3Vic3RyKGksIDIpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGVuY29kZWRCeXRlIGluIEhFWF9UT19TSE9SVCkge1xuICAgICAgb3V0W2kgLyAyXSA9IEhFWF9UT19TSE9SVFtlbmNvZGVkQnl0ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGRlY29kZSB1bnJlY29nbml6ZWQgc2VxdWVuY2UgJHtlbmNvZGVkQnl0ZX0gYXMgaGV4YWRlY2ltYWxgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgVWludDhBcnJheSBvZiBiaW5hcnkgZGF0YSB0byBhIGhleGFkZWNpbWFsIGVuY29kZWQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBieXRlcyBUaGUgYmluYXJ5IGRhdGEgdG8gZW5jb2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0hleChieXRlczogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGxldCBvdXQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVzLmJ5dGVMZW5ndGg7IGkrKykge1xuICAgIG91dCArPSBTSE9SVF9UT19IRVhbYnl0ZXNbaV1dO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn1cbiJdfQ==","const fallbackWindow = {};\nexport function locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n else if (typeof self !== \"undefined\") {\n return self;\n }\n return fallbackWindow;\n}\n","export var escapeUri = function (uri) {\n // AWS percent-encodes some extra non-standard characters in a URI\n return encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\n};\nvar hexEncode = function (c) { return \"%\" + c.charCodeAt(0).toString(16).toUpperCase(); };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXVyaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lc2NhcGUtdXJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxJQUFNLFNBQVMsR0FBRyxVQUFDLEdBQVc7SUFDbkMsa0VBQWtFO0lBQ2xFLE9BQUEsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7QUFBdEQsQ0FBc0QsQ0FBQztBQUV6RCxJQUFNLFNBQVMsR0FBRyxVQUFDLENBQVMsSUFBSyxPQUFBLE1BQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFJLEVBQWhELENBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZXNjYXBlVXJpID0gKHVyaTogc3RyaW5nKTogc3RyaW5nID0+XG4gIC8vIEFXUyBwZXJjZW50LWVuY29kZXMgc29tZSBleHRyYSBub24tc3RhbmRhcmQgY2hhcmFjdGVycyBpbiBhIFVSSVxuICBlbmNvZGVVUklDb21wb25lbnQodXJpKS5yZXBsYWNlKC9bIScoKSpdL2csIGhleEVuY29kZSk7XG5cbmNvbnN0IGhleEVuY29kZSA9IChjOiBzdHJpbmcpID0+IGAlJHtjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9YDtcbiJdfQ==","import { __awaiter, __generator } from \"tslib\";\nimport bowser from \"bowser\";\n/**\n * Default provider to the user agent in browsers. It's a best effort to infer\n * the device information. It uses bowser library to detect the browser and virsion\n */\nexport var defaultUserAgent = function (_a) {\n var serviceId = _a.serviceId, clientVersion = _a.clientVersion;\n return function () { return __awaiter(void 0, void 0, void 0, function () {\n var parsedUA, sections;\n var _a, _b, _c, _d, _e, _f, _g;\n return __generator(this, function (_h) {\n parsedUA = ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) ? bowser.parse(window.navigator.userAgent) : undefined;\n sections = [\n // sdk-metadata\n [\"aws-sdk-js\", clientVersion],\n // os-metadata\n [\"os/\" + (((_b = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _b === void 0 ? void 0 : _b.name) || \"other\"), (_c = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os) === null || _c === void 0 ? void 0 : _c.version],\n // language-metadata\n // ECMAScript edition doesn't matter in JS.\n [\"lang/js\"],\n // browser vendor and version.\n [\"md/browser\", ((_e = (_d = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : \"unknown\") + \"_\" + ((_g = (_f = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.browser) === null || _f === void 0 ? void 0 : _f.version) !== null && _g !== void 0 ? _g : \"unknown\")],\n ];\n if (serviceId) {\n // api-metadata\n // service Id may not appear in non-AWS clients\n sections.push([\"api/\" + serviceId, clientVersion]);\n }\n return [2 /*return*/, sections];\n });\n }); };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUk1Qjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxnQkFBZ0IsR0FBRyxVQUFDLEVBR1A7UUFGeEIsU0FBUyxlQUFBLEVBQ1QsYUFBYSxtQkFBQTtJQUNxQyxPQUFBOzs7O1lBQzVDLFFBQVEsR0FBRyxPQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLDBDQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0YsUUFBUSxHQUFjO2dCQUMxQixlQUFlO2dCQUNmLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztnQkFDN0IsY0FBYztnQkFDZCxDQUFDLFNBQU0sT0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsRUFBRSwwQ0FBRSxJQUFJLEtBQUksT0FBTyxDQUFFLFFBQUUsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLEVBQUUsMENBQUUsT0FBTyxDQUFDO2dCQUM5RCxvQkFBb0I7Z0JBQ3BCLDJDQUEyQztnQkFDM0MsQ0FBQyxTQUFTLENBQUM7Z0JBQ1gsOEJBQThCO2dCQUM5QixDQUFDLFlBQVksRUFBRSxhQUFHLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLDBDQUFFLElBQUksbUNBQUksU0FBUyx1QkFBSSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTywwQ0FBRSxPQUFPLG1DQUFJLFNBQVMsQ0FBRSxDQUFDO2FBQ3JHLENBQUM7WUFFRixJQUFJLFNBQVMsRUFBRTtnQkFDYixlQUFlO2dCQUNmLCtDQUErQztnQkFDL0MsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQU8sU0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDcEQ7WUFFRCxzQkFBTyxRQUFRLEVBQUM7O1NBQ2pCO0FBckJtRCxDQXFCbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyLCBVc2VyQWdlbnQgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcbmltcG9ydCBib3dzZXIgZnJvbSBcImJvd3NlclwiO1xuXG5pbXBvcnQgeyBEZWZhdWx0VXNlckFnZW50T3B0aW9ucyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5cbi8qKlxuICogRGVmYXVsdCBwcm92aWRlciB0byB0aGUgdXNlciBhZ2VudCBpbiBicm93c2Vycy4gSXQncyBhIGJlc3QgZWZmb3J0IHRvIGluZmVyXG4gKiB0aGUgZGV2aWNlIGluZm9ybWF0aW9uLiBJdCB1c2VzIGJvd3NlciBsaWJyYXJ5IHRvIGRldGVjdCB0aGUgYnJvd3NlciBhbmQgdmlyc2lvblxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdFVzZXJBZ2VudCA9ICh7XG4gIHNlcnZpY2VJZCxcbiAgY2xpZW50VmVyc2lvbixcbn06IERlZmF1bHRVc2VyQWdlbnRPcHRpb25zKTogUHJvdmlkZXI8VXNlckFnZW50PiA9PiBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IHBhcnNlZFVBID0gd2luZG93Py5uYXZpZ2F0b3I/LnVzZXJBZ2VudCA/IGJvd3Nlci5wYXJzZSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHNlY3Rpb25zOiBVc2VyQWdlbnQgPSBbXG4gICAgLy8gc2RrLW1ldGFkYXRhXG4gICAgW1wiYXdzLXNkay1qc1wiLCBjbGllbnRWZXJzaW9uXSxcbiAgICAvLyBvcy1tZXRhZGF0YVxuICAgIFtgb3MvJHtwYXJzZWRVQT8ub3M/Lm5hbWUgfHwgXCJvdGhlclwifWAsIHBhcnNlZFVBPy5vcz8udmVyc2lvbl0sXG4gICAgLy8gbGFuZ3VhZ2UtbWV0YWRhdGFcbiAgICAvLyBFQ01BU2NyaXB0IGVkaXRpb24gZG9lc24ndCBtYXR0ZXIgaW4gSlMuXG4gICAgW1wibGFuZy9qc1wiXSxcbiAgICAvLyBicm93c2VyIHZlbmRvciBhbmQgdmVyc2lvbi5cbiAgICBbXCJtZC9icm93c2VyXCIsIGAke3BhcnNlZFVBPy5icm93c2VyPy5uYW1lID8/IFwidW5rbm93blwifV8ke3BhcnNlZFVBPy5icm93c2VyPy52ZXJzaW9uID8/IFwidW5rbm93blwifWBdLFxuICBdO1xuXG4gIGlmIChzZXJ2aWNlSWQpIHtcbiAgICAvLyBhcGktbWV0YWRhdGFcbiAgICAvLyBzZXJ2aWNlIElkIG1heSBub3QgYXBwZWFyIGluIG5vbi1BV1MgY2xpZW50c1xuICAgIHNlY3Rpb25zLnB1c2goW2BhcGkvJHtzZXJ2aWNlSWR9YCwgY2xpZW50VmVyc2lvbl0pO1xuICB9XG5cbiAgcmV0dXJuIHNlY3Rpb25zO1xufTtcbiJdfQ==","/**\n * Converts a JS string from its native UCS-2/UTF-16 representation into a\n * Uint8Array of the bytes used to represent the equivalent characters in UTF-8.\n *\n * Cribbed from the `goog.crypt.stringToUtf8ByteArray` function in the Google\n * Closure library, though updated to use typed arrays.\n */\nexport var fromUtf8 = function (input) {\n var bytes = [];\n for (var i = 0, len = input.length; i < len; i++) {\n var value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 192, (value & 63) | 128);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023);\n bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128);\n }\n else {\n bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128);\n }\n }\n return Uint8Array.from(bytes);\n};\n/**\n * Converts a typed array of bytes containing UTF-8 data into a native JS\n * string.\n *\n * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the\n * Google Closure library, though updated to use typed arrays and to better\n * handle astral plane code points.\n */\nexport var toUtf8 = function (input) {\n var decoded = \"\";\n for (var i = 0, len = input.length; i < len; i++) {\n var byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (192 <= byte && byte < 224) {\n var nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63));\n }\n else if (240 <= byte && byte < 365) {\n var surrogatePair = [byte, input[++i], input[++i], input[++i]];\n var encoded = \"%\" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63));\n }\n }\n return decoded;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZUpzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1cmVKcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsSUFBTSxRQUFRLEdBQUcsVUFBQyxLQUFhO0lBQ3BDLElBQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksS0FBSyxHQUFHLElBQUksRUFBRTtZQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25CO2FBQU0sSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFO1lBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBVSxFQUFFLENBQUMsS0FBSyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FBQyxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssTUFBTSxFQUFFO1lBQy9HLElBQU0sYUFBYSxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQVksQ0FBQyxDQUFDO1lBQ3hHLEtBQUssQ0FBQyxJQUFJLENBQ1IsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBVSxFQUNsQyxDQUFDLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFDL0MsQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLEVBQzlDLENBQUMsYUFBYSxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsQ0FDeEMsQ0FBQztTQUNIO2FBQU07WUFDTCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLENBQUMsQ0FBQztTQUNqSDtLQUNGO0lBRUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsSUFBTSxNQUFNLEdBQUcsVUFBQyxLQUFpQjtJQUN0QyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxJQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFO1lBQ2YsT0FBTyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVUsRUFBRTtZQUNsRCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEVBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakY7YUFBTSxJQUFJLEdBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEdBQVcsRUFBRTtZQUNuRCxJQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQU0sT0FBTyxHQUFHLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQUMsU0FBUyxJQUFLLE9BQUEsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBdEIsQ0FBc0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6RixPQUFPLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUM1QixDQUFDLENBQUMsSUFBSSxHQUFHLEVBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQVEsQ0FBQyxDQUNuRixDQUFDO1NBQ0g7S0FDRjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udmVydHMgYSBKUyBzdHJpbmcgZnJvbSBpdHMgbmF0aXZlIFVDUy0yL1VURi0xNiByZXByZXNlbnRhdGlvbiBpbnRvIGFcbiAqIFVpbnQ4QXJyYXkgb2YgdGhlIGJ5dGVzIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBlcXVpdmFsZW50IGNoYXJhY3RlcnMgaW4gVVRGLTguXG4gKlxuICogQ3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC5zdHJpbmdUb1V0ZjhCeXRlQXJyYXlgIGZ1bmN0aW9uIGluIHRoZSBHb29nbGVcbiAqIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cy5cbiAqL1xuZXhwb3J0IGNvbnN0IGZyb21VdGY4ID0gKGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5ID0+IHtcbiAgY29uc3QgYnl0ZXM6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGlucHV0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dC5jaGFyQ29kZUF0KGkpO1xuICAgIGlmICh2YWx1ZSA8IDB4ODApIHtcbiAgICAgIGJ5dGVzLnB1c2godmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPCAweDgwMCkge1xuICAgICAgYnl0ZXMucHVzaCgodmFsdWUgPj4gNikgfCAwYjExMDAwMDAwLCAodmFsdWUgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwKTtcbiAgICB9IGVsc2UgaWYgKGkgKyAxIDwgaW5wdXQubGVuZ3RoICYmICh2YWx1ZSAmIDB4ZmMwMCkgPT09IDB4ZDgwMCAmJiAoaW5wdXQuY2hhckNvZGVBdChpICsgMSkgJiAweGZjMDApID09PSAweGRjMDApIHtcbiAgICAgIGNvbnN0IHN1cnJvZ2F0ZVBhaXIgPSAweDEwMDAwICsgKCh2YWx1ZSAmIDBiMTExMTExMTExMSkgPDwgMTApICsgKGlucHV0LmNoYXJDb2RlQXQoKytpKSAmIDBiMTExMTExMTExMSk7XG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICAoc3Vycm9nYXRlUGFpciA+PiAxOCkgfCAwYjExMTEwMDAwLFxuICAgICAgICAoKHN1cnJvZ2F0ZVBhaXIgPj4gMTIpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKChzdXJyb2dhdGVQYWlyID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKHN1cnJvZ2F0ZVBhaXIgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBieXRlcy5wdXNoKCh2YWx1ZSA+PiAxMikgfCAwYjExMTAwMDAwLCAoKHZhbHVlID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCwgKHZhbHVlICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShieXRlcyk7XG59O1xuXG4vKipcbiAqIENvbnZlcnRzIGEgdHlwZWQgYXJyYXkgb2YgYnl0ZXMgY29udGFpbmluZyBVVEYtOCBkYXRhIGludG8gYSBuYXRpdmUgSlNcbiAqIHN0cmluZy5cbiAqXG4gKiBQYXJ0bHkgY3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC51dGY4Qnl0ZUFycmF5VG9TdHJpbmdgIGZ1bmN0aW9uIGluIHRoZVxuICogR29vZ2xlIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cyBhbmQgdG8gYmV0dGVyXG4gKiBoYW5kbGUgYXN0cmFsIHBsYW5lIGNvZGUgcG9pbnRzLlxuICovXG5leHBvcnQgY29uc3QgdG9VdGY4ID0gKGlucHV0OiBVaW50OEFycmF5KTogc3RyaW5nID0+IHtcbiAgbGV0IGRlY29kZWQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW5wdXQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gaW5wdXRbaV07XG4gICAgaWYgKGJ5dGUgPCAweDgwKSB7XG4gICAgICBkZWNvZGVkICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZSk7XG4gICAgfSBlbHNlIGlmICgwYjExMDAwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTExMDAwMDApIHtcbiAgICAgIGNvbnN0IG5leHRCeXRlID0gaW5wdXRbKytpXTtcbiAgICAgIGRlY29kZWQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGJ5dGUgJiAwYjExMTExKSA8PCA2KSB8IChuZXh0Qnl0ZSAmIDBiMTExMTExKSk7XG4gICAgfSBlbHNlIGlmICgwYjExMTEwMDAwIDw9IGJ5dGUgJiYgYnl0ZSA8IDBiMTAxMTAxMTAxKSB7XG4gICAgICBjb25zdCBzdXJyb2dhdGVQYWlyID0gW2J5dGUsIGlucHV0WysraV0sIGlucHV0WysraV0sIGlucHV0WysraV1dO1xuICAgICAgY29uc3QgZW5jb2RlZCA9IFwiJVwiICsgc3Vycm9nYXRlUGFpci5tYXAoKGJ5dGVWYWx1ZSkgPT4gYnl0ZVZhbHVlLnRvU3RyaW5nKDE2KSkuam9pbihcIiVcIik7XG4gICAgICBkZWNvZGVkICs9IGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb2RlZCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFxuICAgICAgICAoKGJ5dGUgJiAwYjExMTEpIDw8IDEyKSB8ICgoaW5wdXRbKytpXSAmIDBiMTExMTExKSA8PCA2KSB8IChpbnB1dFsrK2ldICYgMGIxMTExMTEpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWNvZGVkO1xufTtcbiJdfQ==","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hhdHdnRW5jb2RpbmdBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2hhdHdnRW5jb2RpbmdBcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUNBLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBYTtJQUNwQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQWlCO0lBQ3RDLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZGVjbGFyYXRpb24gb2YgdGhlIGdsb2JhbCBUZXh0RW5jb2RlciBhbmQgVGV4dERlY29kZXIgY29uc3RydWN0b3JzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG5uYW1lc3BhY2UgRW5jb2Rpbmcge1xuICBpbnRlcmZhY2UgVGV4dERlY29kZXJPcHRpb25zIHtcbiAgICBmYXRhbD86IGJvb2xlYW47XG4gICAgaWdub3JlQk9NPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlT3B0aW9ucyB7XG4gICAgc3RyZWFtPzogYm9vbGVhbjtcbiAgfVxuXG4gIGludGVyZmFjZSBUZXh0RGVjb2RlciB7XG4gICAgcmVhZG9ubHkgZW5jb2Rpbmc6IHN0cmluZztcbiAgICByZWFkb25seSBmYXRhbDogYm9vbGVhbjtcbiAgICByZWFkb25seSBpZ25vcmVCT006IGJvb2xlYW47XG4gICAgZGVjb2RlKGlucHV0PzogQXJyYXlCdWZmZXIgfCBBcnJheUJ1ZmZlclZpZXcsIG9wdGlvbnM/OiBUZXh0RGVjb2RlT3B0aW9ucyk6IHN0cmluZztcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVGV4dERlY29kZXJDb25zdHJ1Y3RvciB7XG4gICAgbmV3IChsYWJlbD86IHN0cmluZywgb3B0aW9ucz86IFRleHREZWNvZGVyT3B0aW9ucyk6IFRleHREZWNvZGVyO1xuICB9XG5cbiAgaW50ZXJmYWNlIFRleHRFbmNvZGVyIHtcbiAgICByZWFkb25seSBlbmNvZGluZzogXCJ1dGYtOFwiO1xuICAgIGVuY29kZShpbnB1dD86IHN0cmluZyk6IFVpbnQ4QXJyYXk7XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIFRleHRFbmNvZGVyQ29uc3RydWN0b3Ige1xuICAgIG5ldyAoKTogVGV4dEVuY29kZXI7XG4gIH1cbn1cblxuZGVjbGFyZSBjb25zdCBUZXh0RGVjb2RlcjogRW5jb2RpbmcuVGV4dERlY29kZXJDb25zdHJ1Y3RvcjtcblxuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRW5jb2RpbmcuVGV4dEVuY29kZXJDb25zdHJ1Y3RvcjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21VdGY4KGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShpbnB1dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1V0ZjgoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICByZXR1cm4gbmV3IFRleHREZWNvZGVyKFwidXRmLThcIikuZGVjb2RlKGlucHV0KTtcbn1cbiJdfQ==","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport var fromUtf8 = function (input) {\n return typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\n};\nexport var toUtf8 = function (input) {\n return typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsSUFBSSxVQUFVLEVBQUUsTUFBTSxJQUFJLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsUUFBUSxJQUFJLG1CQUFtQixFQUFFLE1BQU0sSUFBSSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS25HLE1BQU0sQ0FBQyxJQUFNLFFBQVEsR0FBRyxVQUFDLEtBQWE7SUFDcEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0FBQWxGLENBQWtGLENBQUM7QUFFckYsTUFBTSxDQUFDLElBQU0sTUFBTSxHQUFHLFVBQUMsS0FBaUI7SUFDdEMsT0FBQSxPQUFPLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0FBQTlFLENBQThFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tVXRmOCBhcyBqc0Zyb21VdGY4LCB0b1V0ZjggYXMganNUb1V0ZjggfSBmcm9tIFwiLi9wdXJlSnNcIjtcbmltcG9ydCB7IGZyb21VdGY4IGFzIHRleHRFbmNvZGVyRnJvbVV0ZjgsIHRvVXRmOCBhcyB0ZXh0RW5jb2RlclRvVXRmOCB9IGZyb20gXCIuL3doYXR3Z0VuY29kaW5nQXBpXCI7XG5cbmRlY2xhcmUgY29uc3QgVGV4dERlY29kZXI6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuZGVjbGFyZSBjb25zdCBUZXh0RW5jb2RlcjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBmcm9tVXRmOCA9IChpbnB1dDogc3RyaW5nKTogVWludDhBcnJheSA9PlxuICB0eXBlb2YgVGV4dEVuY29kZXIgPT09IFwiZnVuY3Rpb25cIiA/IHRleHRFbmNvZGVyRnJvbVV0ZjgoaW5wdXQpIDoganNGcm9tVXRmOChpbnB1dCk7XG5cbmV4cG9ydCBjb25zdCB0b1V0ZjggPSAoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcgPT5cbiAgdHlwZW9mIFRleHREZWNvZGVyID09PSBcImZ1bmN0aW9uXCIgPyB0ZXh0RW5jb2RlclRvVXRmOChpbnB1dCkgOiBqc1RvVXRmOChpbnB1dCk7XG4iXX0=","/**\n* @vue/reactivity v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst deferredComputed = computed;\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\"\n};\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","/**\n* @vue/runtime-core v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, isShallow, isReactive, ReactiveEffect, getCurrentScope, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, customRef, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.effect.dirty = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.effect.dirty = true;\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate