{"version":3,"file":"@smithy-067cb885.js","sources":["../../node_modules/@smithy/protocol-http/dist-es/extensions/httpExtensionConfiguration.js","../../node_modules/@smithy/types/dist-es/auth/auth.js","../../node_modules/@smithy/types/dist-es/auth/HttpApiKeyAuth.js","../../node_modules/@smithy/types/dist-es/endpoint.js","../../node_modules/@smithy/types/dist-es/extensions/checksum.js","../../node_modules/@smithy/types/dist-es/http.js","../../node_modules/@smithy/types/dist-es/middleware.js","../../node_modules/@smithy/types/dist-es/profile.js","../../node_modules/@smithy/types/dist-es/transfer.js","../../node_modules/@smithy/protocol-http/dist-es/httpRequest.js","../../node_modules/@smithy/protocol-http/dist-es/httpResponse.js","../../node_modules/@smithy/protocol-http/dist-es/isValidHostname.js","../../node_modules/@smithy/smithy-client/dist-es/NoOpLogger.js","../../node_modules/@smithy/middleware-stack/dist-es/MiddlewareStack.js","../../node_modules/@smithy/smithy-client/dist-es/client.js","../../node_modules/@smithy/util-base64/dist-es/constants.browser.js","../../node_modules/@smithy/util-base64/dist-es/fromBase64.browser.js","../../node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../../node_modules/@smithy/util-utf8/dist-es/toUint8Array.js","../../node_modules/@smithy/util-utf8/dist-es/toUtf8.browser.js","../../node_modules/@smithy/util-base64/dist-es/toBase64.browser.js","../../node_modules/@smithy/util-stream/dist-es/blob/transforms.js","../../node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js","../../node_modules/@smithy/util-stream/dist-es/getAwsChunkedEncodingStream.browser.js","../../node_modules/@smithy/util-uri-escape/dist-es/escape-uri.js","../../node_modules/@smithy/querystring-builder/dist-es/index.js","../../node_modules/@smithy/fetch-http-handler/dist-es/request-timeout.js","../../node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js","../../node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js","../../node_modules/@smithy/util-hex-encoding/dist-es/index.js","../../node_modules/@smithy/util-stream/dist-es/sdk-stream-mixin.browser.js","../../node_modules/@smithy/smithy-client/dist-es/collect-stream-body.js","../../node_modules/@smithy/smithy-client/dist-es/command.js","../../node_modules/@smithy/smithy-client/dist-es/constants.js","../../node_modules/@smithy/smithy-client/dist-es/create-aggregated-client.js","../../node_modules/@smithy/smithy-client/dist-es/parse-utils.js","../../node_modules/@smithy/smithy-client/dist-es/date-utils.js","../../node_modules/@smithy/smithy-client/dist-es/exceptions.js","../../node_modules/@smithy/smithy-client/dist-es/default-error-handler.js","../../node_modules/@smithy/smithy-client/dist-es/defaults-mode.js","../../node_modules/@smithy/smithy-client/dist-es/extensions/checksum.js","../../node_modules/@smithy/smithy-client/dist-es/extensions/retry.js","../../node_modules/@smithy/smithy-client/dist-es/extensions/defaultExtensionConfiguration.js","../../node_modules/@smithy/smithy-client/dist-es/extended-encode-uri-component.js","../../node_modules/@smithy/smithy-client/dist-es/get-array-if-single-item.js","../../node_modules/@smithy/smithy-client/dist-es/get-value-from-text-node.js","../../node_modules/@smithy/smithy-client/dist-es/lazy-json.js","../../node_modules/@smithy/smithy-client/dist-es/object-mapping.js","../../node_modules/@smithy/smithy-client/dist-es/resolve-path.js","../../node_modules/@smithy/smithy-client/dist-es/ser-utils.js","../../node_modules/@smithy/util-middleware/dist-es/getSmithyContext.js","../../node_modules/@smithy/util-middleware/dist-es/normalizeProvider.js","../../node_modules/@smithy/signature-v4/dist-es/constants.js","../../node_modules/@smithy/signature-v4/dist-es/credentialDerivation.js","../../node_modules/@smithy/signature-v4/dist-es/getCanonicalHeaders.js","../../node_modules/@smithy/signature-v4/dist-es/getCanonicalQuery.js","../../node_modules/@smithy/is-array-buffer/dist-es/index.js","../../node_modules/@smithy/signature-v4/dist-es/getPayloadHash.js","../../node_modules/@smithy/signature-v4/dist-es/HeaderFormatter.js","../../node_modules/@smithy/signature-v4/dist-es/headerUtil.js","../../node_modules/@smithy/signature-v4/dist-es/cloneRequest.js","../../node_modules/@smithy/signature-v4/dist-es/moveHeadersToQuery.js","../../node_modules/@smithy/signature-v4/dist-es/prepareRequest.js","../../node_modules/@smithy/signature-v4/dist-es/utilDate.js","../../node_modules/@smithy/signature-v4/dist-es/SignatureV4.js","../../node_modules/@smithy/util-config-provider/dist-es/types.js","../../node_modules/@smithy/property-provider/dist-es/memoize.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/isIpAddress.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/isValidHostLabel.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/customEndpointFunctions.js","../../node_modules/@smithy/util-endpoints/dist-es/debug/debugId.js","../../node_modules/@smithy/util-endpoints/dist-es/debug/toDebugString.js","../../node_modules/@smithy/util-endpoints/dist-es/types/EndpointError.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/booleanEquals.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/getAttrPathList.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/getAttr.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/isSet.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/not.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/parseURL.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/stringEquals.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/substring.js","../../node_modules/@smithy/util-endpoints/dist-es/lib/uriEncode.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/endpointFunctions.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTemplate.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/getReferenceValue.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/callFunction.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateCondition.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateConditions.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointHeaders.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperty.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointProperties.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/getEndpointUrl.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateEndpointRule.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateErrorRule.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTreeRule.js","../../node_modules/@smithy/util-endpoints/dist-es/utils/evaluateRules.js","../../node_modules/@smithy/util-endpoints/dist-es/resolveEndpoint.js","../../node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js","../../node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js","../../node_modules/@smithy/config-resolver/dist-es/regionConfig/isFipsRegion.js","../../node_modules/@smithy/config-resolver/dist-es/regionConfig/getRealRegion.js","../../node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js","../../node_modules/@smithy/eventstream-serde-config-resolver/dist-es/EventStreamSerdeConfig.js","../../node_modules/@smithy/middleware-content-length/dist-es/index.js","../../node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/s3.js","../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js","../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromConfig.browser.js","../../node_modules/@smithy/querystring-parser/dist-es/index.js","../../node_modules/@smithy/url-parser/dist-es/index.js","../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/toEndpointV1.js","../../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js","../../node_modules/@smithy/middleware-endpoint/dist-es/endpointMiddleware.js","../../node_modules/@smithy/middleware-serde/dist-es/deserializerMiddleware.js","../../node_modules/@smithy/middleware-serde/dist-es/serializerMiddleware.js","../../node_modules/@smithy/middleware-serde/dist-es/serdePlugin.js","../../node_modules/@smithy/middleware-endpoint/dist-es/getEndpointPlugin.js","../../node_modules/@smithy/middleware-endpoint/dist-es/resolveEndpointConfig.js","../../node_modules/@smithy/util-retry/dist-es/config.js","../../node_modules/@smithy/service-error-classification/dist-es/constants.js","../../node_modules/@smithy/service-error-classification/dist-es/index.js","../../node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js","../../node_modules/@smithy/util-retry/dist-es/constants.js","../../node_modules/@smithy/util-retry/dist-es/defaultRetryBackoffStrategy.js","../../node_modules/@smithy/util-retry/dist-es/defaultRetryToken.js","../../node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js","../../node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js","../../node_modules/@smithy/middleware-retry/dist-es/util.js","../../node_modules/@smithy/middleware-retry/dist-es/configurations.js","../../node_modules/@smithy/middleware-retry/dist-es/isStreamingPayload/isStreamingPayload.browser.js","../../node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js","../../node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js","../../node_modules/@smithy/core/dist-es/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js","../../node_modules/@smithy/core/dist-es/middleware-http-signing/getHttpSigningMiddleware.js","../../node_modules/@smithy/core/dist-es/protocols/requestBuilder.js","../../node_modules/@smithy/eventstream-codec/dist-es/Int64.js","../../node_modules/@smithy/eventstream-codec/dist-es/HeaderMarshaller.js","../../node_modules/@smithy/eventstream-codec/dist-es/splitMessage.js","../../node_modules/@smithy/eventstream-codec/dist-es/EventStreamCodec.js","../../node_modules/@smithy/eventstream-codec/dist-es/MessageDecoderStream.js","../../node_modules/@smithy/eventstream-codec/dist-es/MessageEncoderStream.js","../../node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageDecoderStream.js","../../node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageEncoderStream.js","../../node_modules/@smithy/eventstream-serde-universal/dist-es/getChunkedStream.js","../../node_modules/@smithy/eventstream-serde-universal/dist-es/getUnmarshalledStream.js","../../node_modules/@smithy/eventstream-serde-universal/dist-es/EventStreamMarshaller.js","../../node_modules/@smithy/eventstream-serde-browser/dist-es/utils.js","../../node_modules/@smithy/eventstream-serde-browser/dist-es/EventStreamMarshaller.js","../../node_modules/@smithy/eventstream-serde-browser/dist-es/provider.js","../../node_modules/@smithy/chunked-blob-reader/dist-es/index.js","../../node_modules/@smithy/hash-blob-browser/dist-es/index.js","../../node_modules/@smithy/invalid-dependency/dist-es/invalidProvider.js","../../node_modules/@smithy/md5-js/dist-es/constants.js","../../node_modules/@smithy/md5-js/dist-es/index.js","../../node_modules/@smithy/util-body-length-browser/dist-es/calculateBodyLength.js","../../node_modules/@smithy/util-defaults-mode-browser/dist-es/constants.js","../../node_modules/@smithy/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js"],"sourcesContent":["export const getHttpHandlerExtensionConfiguration = (runtimeConfig) => {\n let httpHandler = runtimeConfig.httpHandler;\n return {\n setHttpHandler(handler) {\n httpHandler = handler;\n },\n httpHandler() {\n return httpHandler;\n },\n updateHttpClientConfig(key, value) {\n httpHandler.updateHttpClientConfig(key, value);\n },\n httpHandlerConfigs() {\n return httpHandler.httpHandlerConfigs();\n },\n };\n};\nexport const resolveHttpHandlerRuntimeConfig = (httpHandlerExtensionConfiguration) => {\n return {\n httpHandler: httpHandlerExtensionConfiguration.httpHandler(),\n };\n};\n","export var HttpAuthLocation;\n(function (HttpAuthLocation) {\n HttpAuthLocation[\"HEADER\"] = \"header\";\n HttpAuthLocation[\"QUERY\"] = \"query\";\n})(HttpAuthLocation || (HttpAuthLocation = {}));\n","export var HttpApiKeyAuthLocation;\n(function (HttpApiKeyAuthLocation) {\n HttpApiKeyAuthLocation[\"HEADER\"] = \"header\";\n HttpApiKeyAuthLocation[\"QUERY\"] = \"query\";\n})(HttpApiKeyAuthLocation || (HttpApiKeyAuthLocation = {}));\n","export var EndpointURLScheme;\n(function (EndpointURLScheme) {\n EndpointURLScheme[\"HTTP\"] = \"http\";\n EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(EndpointURLScheme || (EndpointURLScheme = {}));\n","export var AlgorithmId;\n(function (AlgorithmId) {\n AlgorithmId[\"MD5\"] = \"md5\";\n AlgorithmId[\"CRC32\"] = \"crc32\";\n AlgorithmId[\"CRC32C\"] = \"crc32c\";\n AlgorithmId[\"SHA1\"] = \"sha1\";\n AlgorithmId[\"SHA256\"] = \"sha256\";\n})(AlgorithmId || (AlgorithmId = {}));\nexport const getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n if (runtimeConfig.sha256 !== undefined) {\n checksumAlgorithms.push({\n algorithmId: () => AlgorithmId.SHA256,\n checksumConstructor: () => runtimeConfig.sha256,\n });\n }\n if (runtimeConfig.md5 != undefined) {\n checksumAlgorithms.push({\n algorithmId: () => AlgorithmId.MD5,\n checksumConstructor: () => runtimeConfig.md5,\n });\n }\n return {\n _checksumAlgorithms: checksumAlgorithms,\n addChecksumAlgorithm(algo) {\n this._checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return this._checksumAlgorithms;\n },\n };\n};\nexport const resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n });\n return runtimeConfig;\n};\n","export var FieldPosition;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition || (FieldPosition = {}));\n","export const SMITHY_CONTEXT_KEY = \"__smithy_context\";\n","export var IniSectionType;\n(function (IniSectionType) {\n IniSectionType[\"PROFILE\"] = \"profile\";\n IniSectionType[\"SSO_SESSION\"] = \"sso-session\";\n IniSectionType[\"SERVICES\"] = \"services\";\n})(IniSectionType || (IniSectionType = {}));\n","export var RequestHandlerProtocol;\n(function (RequestHandlerProtocol) {\n RequestHandlerProtocol[\"HTTP_0_9\"] = \"http/0.9\";\n RequestHandlerProtocol[\"HTTP_1_0\"] = \"http/1.0\";\n RequestHandlerProtocol[\"TDS_8_0\"] = \"tds/8.0\";\n})(RequestHandlerProtocol || (RequestHandlerProtocol = {}));\n","export class HttpRequest {\n constructor(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.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static isInstance(request) {\n if (!request)\n return false;\n const 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 clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","export class HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","export function isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n","export class NoOpLogger {\n trace() { }\n debug() { }\n info() { }\n warn() { }\n error() { }\n}\n","const getAllAliases = (name, aliases) => {\n const _aliases = [];\n if (name) {\n _aliases.push(name);\n }\n if (aliases) {\n for (const alias of aliases) {\n _aliases.push(alias);\n }\n }\n return _aliases;\n};\nconst getMiddlewareNameWithAliases = (name, aliases) => {\n return `${name || \"anonymous\"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(\",\")})` : \"\"}`;\n};\nexport const constructStack = () => {\n let absoluteEntries = [];\n let relativeEntries = [];\n let identifyOnResolve = false;\n const entriesNameSet = new Set();\n const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]);\n const removeByName = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const aliases = getAllAliases(entry.name, entry.aliases);\n if (aliases.includes(toRemove)) {\n isRemoved = true;\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const removeByReference = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n for (const alias of getAllAliases(entry.name, entry.aliases)) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const cloneTo = (toStack) => {\n absoluteEntries.forEach((entry) => {\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n toStack.identifyOnResolve?.(stack.identifyOnResolve());\n return toStack;\n };\n const expandRelativeMiddlewareList = (from) => {\n const expandedMiddlewareList = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n };\n const getMiddlewareList = (debug = false) => {\n const normalizedAbsoluteEntries = [];\n const normalizedRelativeEntries = [];\n const normalizedEntriesNameMap = {};\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n if (debug) {\n return;\n }\n throw new Error(`${entry.toMiddleware} is not found when adding ` +\n `${getMiddlewareNameWithAliases(entry.name, entry.aliases)} ` +\n `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 const mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce((wholeList, expandedMiddlewareList) => {\n wholeList.push(...expandedMiddlewareList);\n return wholeList;\n }, []);\n return mainChain;\n };\n const stack = {\n add: (middleware, options = {}) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options,\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) {\n throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware with ` +\n `${toOverride.priority} priority in ${toOverride.step} step cannot ` +\n `be overridden by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware with ` +\n `${entry.priority} priority in ${entry.step} step.`);\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: (middleware, options) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n middleware,\n ...options,\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware ` +\n `${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n `by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware ${entry.relation} ` +\n `\"${entry.toMiddleware}\" middleware.`);\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n relativeEntries.push(entry);\n },\n clone: () => cloneTo(constructStack()),\n use: (plugin) => {\n plugin.applyToStack(stack);\n },\n remove: (toRemove) => {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const { tags, name, aliases: _aliases } = entry;\n if (tags && tags.includes(toRemove)) {\n const aliases = getAllAliases(name, _aliases);\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\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: (from) => {\n const cloned = cloneTo(constructStack());\n cloned.use(from);\n cloned.identifyOnResolve(identifyOnResolve || cloned.identifyOnResolve() || (from.identifyOnResolve?.() ?? false));\n return cloned;\n },\n applyToStack: cloneTo,\n identify: () => {\n return getMiddlewareList(true).map((mw) => {\n const step = mw.step ??\n mw.relation +\n \" \" +\n mw.toMiddleware;\n return getMiddlewareNameWithAliases(mw.name, mw.aliases) + \" - \" + step;\n });\n },\n identifyOnResolve(toggle) {\n if (typeof toggle === \"boolean\")\n identifyOnResolve = toggle;\n return identifyOnResolve;\n },\n resolve: (handler, context) => {\n for (const middleware of getMiddlewareList()\n .map((entry) => entry.middleware)\n .reverse()) {\n handler = middleware(handler, context);\n }\n if (identifyOnResolve) {\n console.log(stack.identify());\n }\n return handler;\n },\n };\n return stack;\n};\nconst stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nconst priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n","import { constructStack } from \"@smithy/middleware-stack\";\nexport class Client {\n constructor(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then((result) => callback(null, result.output), (err) => callback(err))\n .catch(() => { });\n }\n else {\n return handler(command).then((result) => result.output);\n }\n }\n destroy() {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n }\n}\n","const alphabetByEncoding = {};\nconst alphabetByValue = new Array(64);\nfor (let i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\nfor (let i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n const index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nfor (let i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n const char = i.toString(10);\n const index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nconst bitsPerLetter = 6;\nconst bitsPerByte = 8;\nconst maxLetterValue = 0b111111;\nexport { alphabetByEncoding, alphabetByValue, bitsPerLetter, bitsPerByte, maxLetterValue };\n","import { alphabetByEncoding, bitsPerByte, bitsPerLetter } from \"./constants.browser\";\nexport const fromBase64 = (input) => {\n let totalByteLength = (input.length / 4) * 3;\n if (input.slice(-2) === \"==\") {\n totalByteLength -= 2;\n }\n else if (input.slice(-1) === \"=\") {\n totalByteLength--;\n }\n const out = new ArrayBuffer(totalByteLength);\n const dataView = new DataView(out);\n for (let i = 0; i < input.length; i += 4) {\n let bits = 0;\n let bitLength = 0;\n for (let j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n if (!(input[j] in alphabetByEncoding)) {\n throw new TypeError(`Invalid character ${input[j]} in base64 string.`);\n }\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n }\n else {\n bits >>= bitsPerLetter;\n }\n }\n const chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n const byteLength = Math.floor(bitLength / bitsPerByte);\n for (let k = 0; k < byteLength; k++) {\n const offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n return new Uint8Array(out);\n};\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","import { fromUtf8 } from \"./fromUtf8\";\nexport const toUint8Array = (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","export const toUtf8 = (input) => {\n if (typeof input === \"string\") {\n return input;\n }\n if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n }\n return new TextDecoder(\"utf-8\").decode(input);\n};\n","import { fromUtf8 } from \"@smithy/util-utf8\";\nimport { alphabetByValue, bitsPerByte, bitsPerLetter, maxLetterValue } from \"./constants.browser\";\nexport function toBase64(_input) {\n let input;\n if (typeof _input === \"string\") {\n input = fromUtf8(_input);\n }\n else {\n input = _input;\n }\n const isArrayLike = typeof input === \"object\" && typeof input.length === \"number\";\n const isUint8Array = typeof input === \"object\" &&\n typeof input.byteOffset === \"number\" &&\n typeof input.byteLength === \"number\";\n if (!isArrayLike && !isUint8Array) {\n throw new Error(\"@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.\");\n }\n let str = \"\";\n for (let i = 0; i < input.length; i += 3) {\n let bits = 0;\n let bitLength = 0;\n for (let 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 const bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (let k = 1; k <= bitClusterCount; k++) {\n const offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n return str;\n}\n","import { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { Uint8ArrayBlobAdapter } from \"./Uint8ArrayBlobAdapter\";\nexport function transformToString(payload, encoding = \"utf-8\") {\n if (encoding === \"base64\") {\n return toBase64(payload);\n }\n return toUtf8(payload);\n}\nexport function transformFromString(str, encoding) {\n if (encoding === \"base64\") {\n return Uint8ArrayBlobAdapter.mutate(fromBase64(str));\n }\n return Uint8ArrayBlobAdapter.mutate(fromUtf8(str));\n}\n","import { transformFromString, transformToString } from \"./transforms\";\nexport class Uint8ArrayBlobAdapter extends Uint8Array {\n static fromString(source, encoding = \"utf-8\") {\n switch (typeof source) {\n case \"string\":\n return transformFromString(source, encoding);\n default:\n throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`);\n }\n }\n static mutate(source) {\n Object.setPrototypeOf(source, Uint8ArrayBlobAdapter.prototype);\n return source;\n }\n transformToString(encoding = \"utf-8\") {\n return transformToString(this, encoding);\n }\n}\n","export const getAwsChunkedEncodingStream = (readableStream, options) => {\n const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n const checksumRequired = base64Encoder !== undefined &&\n bodyLengthChecker !== undefined &&\n checksumAlgorithmFn !== undefined &&\n checksumLocationName !== undefined &&\n streamHasher !== undefined;\n const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined;\n const reader = readableStream.getReader();\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await reader.read();\n if (done) {\n controller.enqueue(`0\\r\\n`);\n if (checksumRequired) {\n const checksum = base64Encoder(await digest);\n controller.enqueue(`${checksumLocationName}:${checksum}\\r\\n`);\n controller.enqueue(`\\r\\n`);\n }\n controller.close();\n }\n else {\n controller.enqueue(`${(bodyLengthChecker(value) || 0).toString(16)}\\r\\n${value}\\r\\n`);\n }\n },\n });\n};\n","export const escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","import { escapeUri } from \"@smithy/util-uri-escape\";\nexport function buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${escapeUri(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\n","export function requestTimeout(timeoutInMs = 0) {\n return new Promise((resolve, reject) => {\n if (timeoutInMs) {\n setTimeout(() => {\n const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n","import { HttpResponse } from \"@smithy/protocol-http\";\nimport { buildQueryString } from \"@smithy/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\nexport const keepAliveSupport = {\n supported: Boolean(typeof Request !== \"undefined\" && \"keepalive\" in new Request(\"https://[::1]\")),\n};\nexport class FetchHttpHandler {\n static create(instanceOrOptions) {\n if (typeof instanceOrOptions?.handle === \"function\") {\n return instanceOrOptions;\n }\n return new FetchHttpHandler(instanceOrOptions);\n }\n constructor(options) {\n if (typeof options === \"function\") {\n this.configProvider = options().then((opts) => opts || {});\n }\n else {\n this.config = options ?? {};\n this.configProvider = Promise.resolve(this.config);\n }\n }\n destroy() {\n }\n async handle(request, { abortSignal } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const requestTimeoutInMs = this.config.requestTimeout;\n const keepAlive = this.config.keepAlive === true;\n if (abortSignal?.aborted) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n let path = request.path;\n const queryString = buildQueryString(request.query || {});\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const { port, method } = request;\n const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : \"\"}${path}`;\n const body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n const requestOptions = {\n body,\n headers: new Headers(request.headers),\n method: method,\n };\n if (body) {\n requestOptions.duplex = \"half\";\n }\n if (typeof AbortController !== \"undefined\") {\n requestOptions.signal = abortSignal;\n }\n if (keepAliveSupport.supported) {\n requestOptions.keepalive = keepAlive;\n }\n const fetchRequest = new Request(url, requestOptions);\n const raceOfPromises = [\n fetch(fetchRequest).then((response) => {\n const fetchHeaders = response.headers;\n const transformedHeaders = {};\n for (const pair of fetchHeaders.entries()) {\n transformedHeaders[pair[0]] = pair[1];\n }\n const hasReadableStream = response.body != undefined;\n if (!hasReadableStream) {\n return response.blob().then((body) => ({\n response: new HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body,\n }),\n }));\n }\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise((resolve, reject) => {\n abortSignal.onabort = () => {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }));\n }\n return Promise.race(raceOfPromises);\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n config[key] = value;\n return config;\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n}\n","import { fromBase64 } from \"@smithy/util-base64\";\nexport const streamCollector = (stream) => {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nasync function collectBlob(blob) {\n const base64 = await readToBase64(blob);\n const arrayBuffer = fromBase64(base64);\n return new Uint8Array(arrayBuffer);\n}\nasync function collectStream(stream) {\n const chunks = [];\n const reader = stream.getReader();\n let isDone = false;\n let length = 0;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n chunks.push(value);\n length += value.length;\n }\n isDone = done;\n }\n const collected = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks) {\n collected.set(chunk, offset);\n offset += chunk.length;\n }\n return collected;\n}\nfunction readToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n const result = (reader.result ?? \"\");\n const commaIndex = result.indexOf(\",\");\n const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = () => reject(new Error(\"Read aborted\"));\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n}\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let 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}\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 const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, 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}\nexport function toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","import { streamCollector } from \"@smithy/fetch-http-handler\";\nimport { toBase64 } from \"@smithy/util-base64\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUtf8 } from \"@smithy/util-utf8\";\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nexport const sdkStreamMixin = (stream) => {\n if (!isBlobInstance(stream) && !isReadableStreamInstance(stream)) {\n const name = stream?.__proto__?.constructor?.name || stream;\n throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`);\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await streamCollector(stream);\n };\n const blobToWebStream = (blob) => {\n if (typeof blob.stream !== \"function\") {\n throw new Error(\"Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\\n\" +\n \"If you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body\");\n }\n return blob.stream();\n };\n return Object.assign(stream, {\n transformToByteArray: transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === \"base64\") {\n return toBase64(buf);\n }\n else if (encoding === \"hex\") {\n return toHex(buf);\n }\n else if (encoding === undefined || encoding === \"utf8\" || encoding === \"utf-8\") {\n return toUtf8(buf);\n }\n else if (typeof TextDecoder === \"function\") {\n return new TextDecoder(encoding).decode(buf);\n }\n else {\n throw new Error(\"TextDecoder is not available, please make sure polyfill is provided.\");\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n if (isBlobInstance(stream)) {\n return blobToWebStream(stream);\n }\n else if (isReadableStreamInstance(stream)) {\n return stream;\n }\n else {\n throw new Error(`Cannot transform payload to web stream, got ${stream}`);\n }\n },\n });\n};\nconst isBlobInstance = (stream) => typeof Blob === \"function\" && stream instanceof Blob;\nconst isReadableStreamInstance = (stream) => typeof ReadableStream === \"function\" && stream instanceof ReadableStream;\n","import { Uint8ArrayBlobAdapter } from \"@smithy/util-stream\";\nexport const collectBody = async (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Uint8ArrayBlobAdapter.mutate(streamBody);\n }\n if (!streamBody) {\n return Uint8ArrayBlobAdapter.mutate(new Uint8Array());\n }\n const fromContext = context.streamCollector(streamBody);\n return Uint8ArrayBlobAdapter.mutate(await fromContext);\n};\n","import { constructStack } from \"@smithy/middleware-stack\";\nimport { SMITHY_CONTEXT_KEY } from \"@smithy/types\";\nexport class Command {\n constructor() {\n this.middlewareStack = constructStack();\n }\n static classBuilder() {\n return new ClassBuilder();\n }\n resolveMiddlewareWithContext(clientStack, configuration, options, { middlewareFn, clientName, commandName, inputFilterSensitiveLog, outputFilterSensitiveLog, smithyContext, additionalContext, CommandCtor, }) {\n for (const mw of middlewareFn.bind(this)(CommandCtor, clientStack, configuration, options)) {\n this.middlewareStack.use(mw);\n }\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog,\n outputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n ...smithyContext,\n },\n ...additionalContext,\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n}\nclass ClassBuilder {\n constructor() {\n this._init = () => { };\n this._ep = {};\n this._middlewareFn = () => [];\n this._commandName = \"\";\n this._clientName = \"\";\n this._additionalContext = {};\n this._smithyContext = {};\n this._inputFilterSensitiveLog = (_) => _;\n this._outputFilterSensitiveLog = (_) => _;\n this._serializer = null;\n this._deserializer = null;\n }\n init(cb) {\n this._init = cb;\n }\n ep(endpointParameterInstructions) {\n this._ep = endpointParameterInstructions;\n return this;\n }\n m(middlewareSupplier) {\n this._middlewareFn = middlewareSupplier;\n return this;\n }\n s(service, operation, smithyContext = {}) {\n this._smithyContext = {\n service,\n operation,\n ...smithyContext,\n };\n return this;\n }\n c(additionalContext = {}) {\n this._additionalContext = additionalContext;\n return this;\n }\n n(clientName, commandName) {\n this._clientName = clientName;\n this._commandName = commandName;\n return this;\n }\n f(inputFilter = (_) => _, outputFilter = (_) => _) {\n this._inputFilterSensitiveLog = inputFilter;\n this._outputFilterSensitiveLog = outputFilter;\n return this;\n }\n ser(serializer) {\n this._serializer = serializer;\n return this;\n }\n de(deserializer) {\n this._deserializer = deserializer;\n return this;\n }\n build() {\n const closure = this;\n let CommandRef;\n return (CommandRef = class extends Command {\n static getEndpointParameterInstructions() {\n return closure._ep;\n }\n constructor(...[input]) {\n super();\n this.serialize = closure._serializer;\n this.deserialize = closure._deserializer;\n this.input = input ?? {};\n closure._init(this);\n }\n resolveMiddleware(stack, configuration, options) {\n return this.resolveMiddlewareWithContext(stack, configuration, options, {\n CommandCtor: CommandRef,\n middlewareFn: closure._middlewareFn,\n clientName: closure._clientName,\n commandName: closure._commandName,\n inputFilterSensitiveLog: closure._inputFilterSensitiveLog,\n outputFilterSensitiveLog: closure._outputFilterSensitiveLog,\n smithyContext: closure._smithyContext,\n additionalContext: closure._additionalContext,\n });\n }\n });\n }\n}\n","export const SENSITIVE_STRING = \"***SensitiveInformation***\";\n","export const createAggregatedClient = (commands, Client) => {\n for (const command of Object.keys(commands)) {\n const CommandCtor = commands[command];\n const methodImpl = async function (args, optionsOrCb, cb) {\n const command = new CommandCtor(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expected http options but got ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n };\n const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, \"\");\n Client.prototype[methodName] = methodImpl;\n }\n};\n","export const parseBoolean = (value) => {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(`Unable to parse boolean value \"${value}\"`);\n }\n};\nexport const expectBoolean = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n const lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n};\nexport const expectNumber = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n};\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nexport const expectFloat32 = (value) => {\n const expected = expectNumber(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(`Expected 32-bit float, got ${value}`);\n }\n }\n return expected;\n};\nexport const expectLong = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\n};\nexport const expectInt = expectLong;\nexport const expectInt32 = (value) => expectSizedInt(value, 32);\nexport const expectShort = (value) => expectSizedInt(value, 16);\nexport const expectByte = (value) => expectSizedInt(value, 8);\nconst expectSizedInt = (value, size) => {\n const expected = expectLong(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n }\n return expected;\n};\nconst castInt = (value, size) => {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nexport const expectNonNull = (value, location) => {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(`Expected a non-null value for ${location}`);\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nexport const expectObject = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n};\nexport const expectString = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n return String(value);\n }\n throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n};\nexport const expectUnion = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n const asObject = expectObject(value);\n const setKeys = Object.entries(asObject)\n .filter(([, v]) => v != null)\n .map(([k]) => k);\n if (setKeys.length === 0) {\n throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\n }\n if (setKeys.length > 1) {\n throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n }\n return asObject;\n};\nexport const strictParseDouble = (value) => {\n if (typeof value == \"string\") {\n return expectNumber(parseNumber(value));\n }\n return expectNumber(value);\n};\nexport const strictParseFloat = strictParseDouble;\nexport const strictParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return expectFloat32(parseNumber(value));\n }\n return expectFloat32(value);\n};\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nconst parseNumber = (value) => {\n const matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(`Expected real number, got implicit NaN`);\n }\n return parseFloat(value);\n};\nexport const limitedParseDouble = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectNumber(value);\n};\nexport const handleFloat = limitedParseDouble;\nexport const limitedParseFloat = limitedParseDouble;\nexport const limitedParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectFloat32(value);\n};\nconst parseFloatString = (value) => {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(`Unable to parse float value: ${value}`);\n }\n};\nexport const strictParseLong = (value) => {\n if (typeof value === \"string\") {\n return expectLong(parseNumber(value));\n }\n return expectLong(value);\n};\nexport const strictParseInt = strictParseLong;\nexport const strictParseInt32 = (value) => {\n if (typeof value === \"string\") {\n return expectInt32(parseNumber(value));\n }\n return expectInt32(value);\n};\nexport const strictParseShort = (value) => {\n if (typeof value === \"string\") {\n return expectShort(parseNumber(value));\n }\n return expectShort(value);\n};\nexport const strictParseByte = (value) => {\n if (typeof value === \"string\") {\n return expectByte(parseNumber(value));\n }\n return expectByte(value);\n};\nconst stackTraceWarning = (message) => {\n return String(new TypeError(message).stack || message)\n .split(\"\\n\")\n .slice(0, 5)\n .filter((s) => !s.includes(\"stackTraceWarning\"))\n .join(\"\\n\");\n};\nexport const logger = {\n warn: console.warn,\n};\n","import { strictParseByte, strictParseDouble, strictParseFloat32, strictParseShort } from \"./parse-utils\";\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport function dateToUtcString(date) {\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const dayOfWeek = date.getUTCDay();\n const dayOfMonthInt = date.getUTCDate();\n const hoursInt = date.getUTCHours();\n const minutesInt = date.getUTCMinutes();\n const secondsInt = date.getUTCSeconds();\n const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nexport const parseRfc3339DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n};\nconst RFC3339_WITH_OFFSET = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(([-+]\\d{2}\\:\\d{2})|[zZ])$/);\nexport const parseRfc3339DateTimeWithOffset = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339_WITH_OFFSET.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n if (offsetStr.toUpperCase() != \"Z\") {\n date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr));\n }\n return date;\n};\nconst IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nexport const parseRfc7231DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n let match = IMF_FIXDATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n match = RFC_850_DATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours,\n minutes,\n seconds,\n fractionalMilliseconds,\n }));\n }\n match = ASC_TIME.exec(value);\n if (match) {\n const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nexport const parseEpochTimestamp = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n let valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = strictParseDouble(value);\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nconst buildDate = (year, month, day, time) => {\n const adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nconst parseTwoDigitYear = (value) => {\n const thisYear = new Date().getUTCFullYear();\n const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nconst adjustRfc850Year = (input) => {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nconst parseMonthByShortName = (value) => {\n const monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(`Invalid month: ${value}`);\n }\n return monthIdx + 1;\n};\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst validateDayOfMonth = (year, month, day) => {\n let maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n }\n};\nconst isLeapYear = (year) => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nconst parseDateValue = (value, type, lower, upper) => {\n const dateVal = strictParseByte(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n }\n return dateVal;\n};\nconst parseMilliseconds = (value) => {\n if (value === null || value === undefined) {\n return 0;\n }\n return strictParseFloat32(\"0.\" + value) * 1000;\n};\nconst parseOffsetToMilliseconds = (value) => {\n const directionStr = value[0];\n let direction = 1;\n if (directionStr == \"+\") {\n direction = 1;\n }\n else if (directionStr == \"-\") {\n direction = -1;\n }\n else {\n throw new TypeError(`Offset direction, ${directionStr}, must be \"+\" or \"-\"`);\n }\n const hour = Number(value.substring(1, 3));\n const minute = Number(value.substring(4, 6));\n return direction * (hour * 60 + minute) * 60 * 1000;\n};\nconst stripLeadingZeroes = (value) => {\n let idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n","export class ServiceException extends Error {\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, ServiceException.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n}\nexport const decorateServiceException = (exception, additions = {}) => {\n Object.entries(additions)\n .filter(([, v]) => v !== undefined)\n .forEach(([k, v]) => {\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n const message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\n","import { decorateServiceException } from \"./exceptions\";\nexport const throwDefaultError = ({ output, parsedBody, exceptionCtor, errorCode }) => {\n const $metadata = deserializeMetadata(output);\n const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n const response = new exceptionCtor({\n name: parsedBody?.code || parsedBody?.Code || errorCode || statusCode || \"UnknownError\",\n $fault: \"client\",\n $metadata,\n });\n throw decorateServiceException(response, parsedBody);\n};\nexport const withBaseException = (ExceptionCtor) => {\n return ({ output, parsedBody, errorCode }) => {\n throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode });\n };\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\n","export const loadConfigsForDefaultMode = (mode) => {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\n","import { AlgorithmId } from \"@smithy/types\";\nexport { AlgorithmId };\nexport const getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n for (const id in AlgorithmId) {\n const algorithmId = AlgorithmId[id];\n if (runtimeConfig[algorithmId] === undefined) {\n continue;\n }\n checksumAlgorithms.push({\n algorithmId: () => algorithmId,\n checksumConstructor: () => runtimeConfig[algorithmId],\n });\n }\n return {\n _checksumAlgorithms: checksumAlgorithms,\n addChecksumAlgorithm(algo) {\n this._checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return this._checksumAlgorithms;\n },\n };\n};\nexport const resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n });\n return runtimeConfig;\n};\n","export const getRetryConfiguration = (runtimeConfig) => {\n let _retryStrategy = runtimeConfig.retryStrategy;\n return {\n setRetryStrategy(retryStrategy) {\n _retryStrategy = retryStrategy;\n },\n retryStrategy() {\n return _retryStrategy;\n },\n };\n};\nexport const resolveRetryRuntimeConfig = (retryStrategyConfiguration) => {\n const runtimeConfig = {};\n runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy();\n return runtimeConfig;\n};\n","import { getChecksumConfiguration, resolveChecksumRuntimeConfig } from \"./checksum\";\nimport { getRetryConfiguration, resolveRetryRuntimeConfig } from \"./retry\";\nexport const getDefaultExtensionConfiguration = (runtimeConfig) => {\n return {\n ...getChecksumConfiguration(runtimeConfig),\n ...getRetryConfiguration(runtimeConfig),\n };\n};\nexport const getDefaultClientConfiguration = getDefaultExtensionConfiguration;\nexport const resolveDefaultRuntimeConfig = (config) => {\n return {\n ...resolveChecksumRuntimeConfig(config),\n ...resolveRetryRuntimeConfig(config),\n };\n};\n","export function extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n","export const getArrayIfSingleItem = (mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n","export const getValueFromTextNode = (obj) => {\n const textNodeName = \"#text\";\n for (const 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","export const StringWrapper = function () {\n const Class = Object.getPrototypeOf(this).constructor;\n const Constructor = Function.bind.apply(String, [null, ...arguments]);\n const 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);\nexport class LazyJsonString extends StringWrapper {\n deserializeJSON() {\n return JSON.parse(super.toString());\n }\n toJSON() {\n return super.toString();\n }\n static fromObject(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}\n","export function map(arg0, arg1, arg2) {\n let target;\n let filter;\n let instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n }\n else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n }\n else {\n instructions = arg1;\n }\n }\n for (const key of Object.keys(instructions)) {\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n applyInstruction(target, null, instructions, key);\n }\n return target;\n}\nexport const convertMap = (target) => {\n const output = {};\n for (const [k, v] of Object.entries(target || {})) {\n output[k] = [, v];\n }\n return output;\n};\nexport const take = (source, instructions) => {\n const out = {};\n for (const key in instructions) {\n applyInstruction(out, source, instructions, key);\n }\n return out;\n};\nconst mapWithFilter = (target, filter, instructions) => {\n return map(target, Object.entries(instructions).reduce((_instructions, [key, value]) => {\n if (Array.isArray(value)) {\n _instructions[key] = value;\n }\n else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n }\n else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n }, {}));\n};\nconst applyInstruction = (target, source, instructions, targetKey) => {\n if (source !== null) {\n let instruction = instructions[targetKey];\n if (typeof instruction === \"function\") {\n instruction = [, instruction];\n }\n const [filter = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction;\n if ((typeof filter === \"function\" && filter(source[sourceKey])) || (typeof filter !== \"function\" && !!filter)) {\n target[targetKey] = valueFn(source[sourceKey]);\n }\n return;\n }\n let [filter, value] = instructions[targetKey];\n if (typeof value === \"function\") {\n let _value;\n const defaultFilterPassed = filter === undefined && (_value = value()) != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(void 0)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed) {\n target[targetKey] = _value;\n }\n else if (customFilterPassed) {\n target[targetKey] = value();\n }\n }\n else {\n const defaultFilterPassed = filter === undefined && value != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(value)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed || customFilterPassed) {\n target[targetKey] = value;\n }\n }\n};\nconst nonNullish = (_) => _ != null;\nconst pass = (_) => _;\n","import { extendedEncodeURIComponent } from \"./extended-encode-uri-component\";\nexport const resolvedPath = (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\n if (input != null && input[memberName] !== undefined) {\n const labelValue = labelValueProvider();\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n ? labelValue\n .split(\"/\")\n .map((segment) => extendedEncodeURIComponent(segment))\n .join(\"/\")\n : extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath;\n};\n","export const serializeFloat = (value) => {\n if (value !== value) {\n return \"NaN\";\n }\n switch (value) {\n case Infinity:\n return \"Infinity\";\n case -Infinity:\n return \"-Infinity\";\n default:\n return value;\n }\n};\nexport const serializeDateTime = (date) => date.toISOString().replace(\".000Z\", \"Z\");\n","import { SMITHY_CONTEXT_KEY } from \"@smithy/types\";\nexport const getSmithyContext = (context) => context[SMITHY_CONTEXT_KEY] || (context[SMITHY_CONTEXT_KEY] = {});\n","export const normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n","export const ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport const CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport const AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport const SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport const EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport const SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport const TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport const REGION_SET_PARAM = \"X-Amz-Region-Set\";\nexport const AUTH_HEADER = \"authorization\";\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport const DATE_HEADER = \"date\";\nexport const GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport const SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport const SHA256_HEADER = \"x-amz-content-sha256\";\nexport const TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport const HOST_HEADER = \"host\";\nexport const 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 const PROXY_HEADER_PATTERN = /^proxy-/;\nexport const SEC_HEADER_PATTERN = /^sec-/;\nexport const UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport const ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport const ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nexport const EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport const UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport const MAX_CACHE_SIZE = 50;\nexport const KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n","import { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nconst signingKeyCache = {};\nconst cacheQueue = [];\nexport const createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;\nexport const getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\n const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n const cacheKey = `${shortDate}:${region}:${service}:${toHex(credsHash)}:${credentials.sessionToken}`;\n if (cacheKey in signingKeyCache) {\n return signingKeyCache[cacheKey];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n let key = `AWS4${credentials.secretAccessKey}`;\n for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) {\n key = await hmac(sha256Constructor, key, signable);\n }\n return (signingKeyCache[cacheKey] = key);\n};\nexport const clearCredentialCache = () => {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach((cacheKey) => {\n delete signingKeyCache[cacheKey];\n });\n};\nconst hmac = (ctor, secret, data) => {\n const hash = new ctor(secret);\n hash.update(toUint8Array(data));\n return hash.digest();\n};\n","import { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\nexport const getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n const canonical = {};\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue;\n }\n const canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n 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 return canonical;\n};\n","import { escapeUri } from \"@smithy/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\nexport const getCanonicalQuery = ({ query = {} }) => {\n const keys = [];\n const serialized = {};\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n continue;\n }\n keys.push(key);\n const 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 .reduce((encoded, value) => encoded.concat([`${escapeUri(key)}=${escapeUri(value)}`]), [])\n .sort()\n .join(\"&\");\n }\n }\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join(\"&\");\n};\n","export const isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n","import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nexport const getPayloadHash = async ({ headers, body }, hashConstructor) => {\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return headers[headerName];\n }\n }\n if (body == undefined) {\n return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n }\n else if (typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body)) {\n const hashCtor = new hashConstructor();\n hashCtor.update(toUint8Array(body));\n return toHex(await hashCtor.digest());\n }\n return UNSIGNED_PAYLOAD;\n};\n","import { fromHex, toHex } from \"@smithy/util-hex-encoding\";\nimport { fromUtf8 } from \"@smithy/util-utf8\";\nexport class HeaderFormatter {\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\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 const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n}\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 = {}));\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\nexport class Int64 {\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9223372036854776000 || number < -9223372036854776000) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let 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 valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n","export const hasHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\nexport const getHeaderValue = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return headers[headerName];\n }\n }\n return undefined;\n};\nexport const deleteHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n delete headers[headerName];\n }\n }\n};\n","export const cloneRequest = ({ headers, query, ...rest }) => ({\n ...rest,\n headers: { ...headers },\n query: query ? cloneQuery(query) : undefined,\n});\nexport const cloneQuery = (query) => Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n}, {});\n","import { cloneRequest } from \"./cloneRequest\";\nexport const moveHeadersToQuery = (request, options = {}) => {\n const { headers, query = {} } = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if (lname.slice(0, 6) === \"x-amz-\" && !options.unhoistableHeaders?.has(lname)) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n return {\n ...request,\n headers,\n query,\n };\n};\n","import { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\nexport const prepareRequest = (request) => {\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n for (const headerName of Object.keys(request.headers)) {\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n return request;\n};\n","export const iso8601 = (time) => toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\nexport const 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","import { toHex } from \"@smithy/util-hex-encoding\";\nimport { normalizeProvider } from \"@smithy/util-middleware\";\nimport { escapeUri } from \"@smithy/util-uri-escape\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\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 { HeaderFormatter } from \"./HeaderFormatter\";\nimport { hasHeader } from \"./headerUtil\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\nexport class SignatureV4 {\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n this.headerFormatter = new HeaderFormatter();\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeProvider(region);\n this.credentialProvider = normalizeProvider(credentials);\n }\n async presign(originalRequest, options = {}) {\n const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, } = options;\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { longDate, shortDate } = formatDate(signingDate);\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\");\n }\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const request = moveHeadersToQuery(prepareRequest(originalRequest), { 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 const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)));\n return request;\n }\n async sign(toSign, options) {\n if (typeof toSign === \"string\") {\n return this.signString(toSign, options);\n }\n else if (toSign.headers && toSign.payload) {\n return this.signEvent(toSign, options);\n }\n else if (toSign.message) {\n return this.signMessage(toSign, options);\n }\n else {\n return this.signRequest(toSign, options);\n }\n }\n async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate, longDate } = formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256);\n const hash = new this.sha256();\n hash.update(headers);\n const hashedHeaders = toHex(await hash.digest());\n const stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });\n }\n async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService }) {\n const promise = this.signEvent({\n headers: this.headerFormatter.format(signableMessage.message.headers),\n payload: signableMessage.message.body,\n }, {\n signingDate,\n signingRegion,\n signingService,\n priorSignature: signableMessage.priorSignature,\n });\n return promise.then((signature) => {\n return { message: signableMessage.message, signature };\n });\n }\n async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate } = formatDate(signingDate);\n const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n hash.update(toUint8Array(stringToSign));\n return toHex(await hash.digest());\n }\n async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const request = prepareRequest(requestToSign);\n const { longDate, shortDate } = formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n const payloadHash = await getPayloadHash(request, this.sha256);\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));\n request.headers[AUTH_HEADER] =\n `${ALGORITHM_IDENTIFIER} ` +\n `Credential=${credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, ` +\n `Signature=${signature}`;\n return request;\n }\n createCanonicalRequest(request, canonicalHeaders, payloadHash) {\n const sortedHeaders = Object.keys(canonicalHeaders).sort();\n return `${request.method}\n${this.getCanonicalPath(request)}\n${getCanonicalQuery(request)}\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\"\\n\")}\n\n${sortedHeaders.join(\";\")}\n${payloadHash}`;\n }\n async createStringToSign(longDate, credentialScope, canonicalRequest) {\n const hash = new this.sha256();\n hash.update(toUint8Array(canonicalRequest));\n const hashedRequest = await hash.digest();\n return `${ALGORITHM_IDENTIFIER}\n${longDate}\n${credentialScope}\n${toHex(hashedRequest)}`;\n }\n getCanonicalPath({ path }) {\n if (this.uriEscapePath) {\n const normalizedPathSegments = [];\n for (const pathSegment of path.split(\"/\")) {\n if (pathSegment?.length === 0)\n continue;\n if (pathSegment === \".\")\n continue;\n if (pathSegment === \"..\") {\n normalizedPathSegments.pop();\n }\n else {\n normalizedPathSegments.push(pathSegment);\n }\n }\n const normalizedPath = `${path?.startsWith(\"/\") ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && path?.endsWith(\"/\") ? \"/\" : \"\"}`;\n const doubleEncoded = escapeUri(normalizedPath);\n return doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n }\n async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest);\n const hash = new this.sha256(await keyPromise);\n hash.update(toUint8Array(stringToSign));\n return toHex(await hash.digest());\n }\n getSigningKey(credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n }\n validateResolvedCredentials(credentials) {\n if (typeof credentials !== \"object\" ||\n typeof credentials.accessKeyId !== \"string\" ||\n typeof credentials.secretAccessKey !== \"string\") {\n throw new Error(\"Resolved credential object is not valid\");\n }\n }\n}\nconst formatDate = (now) => {\n const longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n };\n};\nconst getCanonicalHeaderList = (headers) => Object.keys(headers).sort().join(\";\");\n","export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(SelectorType || (SelectorType = {}));\n","export const memoize = (provider, isExpired, requiresRefresh) => {\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async () => {\n if (!pending) {\n pending = provider();\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n if (isConstant) {\n return resolved;\n }\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider();\n return resolved;\n }\n return resolved;\n };\n};\n","const IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}$`);\nexport const isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\"[\") && value.endsWith(\"]\"));\n","const VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\nexport const isValidHostLabel = (value, allowSubDomains = false) => {\n if (!allowSubDomains) {\n return VALID_HOST_LABEL_REGEX.test(value);\n }\n const labels = value.split(\".\");\n for (const label of labels) {\n if (!isValidHostLabel(label)) {\n return false;\n }\n }\n return true;\n};\n","export const customEndpointFunctions = {};\n","export const debugId = \"endpoints\";\n","export function toDebugString(input) {\n if (typeof input !== \"object\" || input == null) {\n return input;\n }\n if (\"ref\" in input) {\n return `$${toDebugString(input.ref)}`;\n }\n if (\"fn\" in input) {\n return `${input.fn}(${(input.argv || []).map(toDebugString).join(\", \")})`;\n }\n return JSON.stringify(input, null, 2);\n}\n","export class EndpointError extends Error {\n constructor(message) {\n super(message);\n this.name = \"EndpointError\";\n }\n}\n","export const booleanEquals = (value1, value2) => value1 === value2;\n","import { EndpointError } from \"../types\";\nexport const getAttrPathList = (path) => {\n const parts = path.split(\".\");\n const pathList = [];\n for (const part of parts) {\n const squareBracketIndex = part.indexOf(\"[\");\n if (squareBracketIndex !== -1) {\n if (part.indexOf(\"]\") !== part.length - 1) {\n throw new EndpointError(`Path: '${path}' does not end with ']'`);\n }\n const arrayIndex = part.slice(squareBracketIndex + 1, -1);\n if (Number.isNaN(parseInt(arrayIndex))) {\n throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`);\n }\n if (squareBracketIndex !== 0) {\n pathList.push(part.slice(0, squareBracketIndex));\n }\n pathList.push(arrayIndex);\n }\n else {\n pathList.push(part);\n }\n }\n return pathList;\n};\n","import { EndpointError } from \"../types\";\nimport { getAttrPathList } from \"./getAttrPathList\";\nexport const getAttr = (value, path) => getAttrPathList(path).reduce((acc, index) => {\n if (typeof acc !== \"object\") {\n throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);\n }\n else if (Array.isArray(acc)) {\n return acc[parseInt(index)];\n }\n return acc[index];\n}, value);\n","export const isSet = (value) => value != null;\n","export const not = (value) => !value;\n","import { EndpointURLScheme } from \"@smithy/types\";\nimport { isIpAddress } from \"./isIpAddress\";\nconst DEFAULT_PORTS = {\n [EndpointURLScheme.HTTP]: 80,\n [EndpointURLScheme.HTTPS]: 443,\n};\nexport const parseURL = (value) => {\n const whatwgURL = (() => {\n try {\n if (value instanceof URL) {\n return value;\n }\n if (typeof value === \"object\" && \"hostname\" in value) {\n const { hostname, port, protocol = \"\", path = \"\", query = {} } = value;\n const url = new URL(`${protocol}//${hostname}${port ? `:${port}` : \"\"}${path}`);\n url.search = Object.entries(query)\n .map(([k, v]) => `${k}=${v}`)\n .join(\"&\");\n return url;\n }\n return new URL(value);\n }\n catch (error) {\n return null;\n }\n })();\n if (!whatwgURL) {\n console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`);\n return null;\n }\n const urlString = whatwgURL.href;\n const { host, hostname, pathname, protocol, search } = whatwgURL;\n if (search) {\n return null;\n }\n const scheme = protocol.slice(0, -1);\n if (!Object.values(EndpointURLScheme).includes(scheme)) {\n return null;\n }\n const isIp = isIpAddress(hostname);\n const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) ||\n (typeof value === \"string\" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`));\n const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`;\n return {\n scheme,\n authority,\n path: pathname,\n normalizedPath: pathname.endsWith(\"/\") ? pathname : `${pathname}/`,\n isIp,\n };\n};\n","export const stringEquals = (value1, value2) => value1 === value2;\n","export const substring = (input, start, stop, reverse) => {\n if (start >= stop || input.length < stop) {\n return null;\n }\n if (!reverse) {\n return input.substring(start, stop);\n }\n return input.substring(input.length - stop, input.length - start);\n};\n","export const uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n","import { booleanEquals, getAttr, isSet, isValidHostLabel, not, parseURL, stringEquals, substring, uriEncode, } from \"../lib\";\nexport const endpointFunctions = {\n booleanEquals,\n getAttr,\n isSet,\n isValidHostLabel,\n not,\n parseURL,\n stringEquals,\n substring,\n uriEncode,\n};\n","import { getAttr } from \"../lib\";\nexport const evaluateTemplate = (template, options) => {\n const evaluatedTemplateArr = [];\n const templateContext = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n let currentIndex = 0;\n while (currentIndex < template.length) {\n const openingBraceIndex = template.indexOf(\"{\", currentIndex);\n if (openingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(currentIndex));\n break;\n }\n evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));\n const closingBraceIndex = template.indexOf(\"}\", openingBraceIndex);\n if (closingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex));\n break;\n }\n if (template[openingBraceIndex + 1] === \"{\" && template[closingBraceIndex + 1] === \"}\") {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));\n currentIndex = closingBraceIndex + 2;\n }\n const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);\n if (parameterName.includes(\"#\")) {\n const [refName, attrName] = parameterName.split(\"#\");\n evaluatedTemplateArr.push(getAttr(templateContext[refName], attrName));\n }\n else {\n evaluatedTemplateArr.push(templateContext[parameterName]);\n }\n currentIndex = closingBraceIndex + 1;\n }\n return evaluatedTemplateArr.join(\"\");\n};\n","export const getReferenceValue = ({ ref }, options) => {\n const referenceRecord = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n return referenceRecord[ref];\n};\n","import { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getReferenceValue } from \"./getReferenceValue\";\nexport const evaluateExpression = (obj, keyName, options) => {\n if (typeof obj === \"string\") {\n return evaluateTemplate(obj, options);\n }\n else if (obj[\"fn\"]) {\n return callFunction(obj, options);\n }\n else if (obj[\"ref\"]) {\n return getReferenceValue(obj, options);\n }\n throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);\n};\n","import { customEndpointFunctions } from \"./customEndpointFunctions\";\nimport { endpointFunctions } from \"./endpointFunctions\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const callFunction = ({ fn, argv }, options) => {\n const evaluatedArgs = argv.map((arg) => [\"boolean\", \"number\"].includes(typeof arg) ? arg : evaluateExpression(arg, \"arg\", options));\n const fnSegments = fn.split(\".\");\n if (fnSegments[0] in customEndpointFunctions && fnSegments[1] != null) {\n return customEndpointFunctions[fnSegments[0]][fnSegments[1]](...evaluatedArgs);\n }\n return endpointFunctions[fn](...evaluatedArgs);\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nexport const evaluateCondition = ({ assign, ...fnArgs }, options) => {\n if (assign && assign in options.referenceRecord) {\n throw new EndpointError(`'${assign}' is already defined in Reference Record.`);\n }\n const value = callFunction(fnArgs, options);\n options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`);\n return {\n result: value === \"\" ? true : !!value,\n ...(assign != null && { toAssign: { name: assign, value } }),\n };\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateCondition } from \"./evaluateCondition\";\nexport const evaluateConditions = (conditions = [], options) => {\n const conditionsReferenceRecord = {};\n for (const condition of conditions) {\n const { result, toAssign } = evaluateCondition(condition, {\n ...options,\n referenceRecord: {\n ...options.referenceRecord,\n ...conditionsReferenceRecord,\n },\n });\n if (!result) {\n return { result };\n }\n if (toAssign) {\n conditionsReferenceRecord[toAssign.name] = toAssign.value;\n options.logger?.debug?.(`${debugId} assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`);\n }\n }\n return { result: true, referenceRecord: conditionsReferenceRecord };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({\n ...acc,\n [headerKey]: headerVal.map((headerValEntry) => {\n const processedExpr = evaluateExpression(headerValEntry, \"Header value entry\", options);\n if (typeof processedExpr !== \"string\") {\n throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);\n }\n return processedExpr;\n }),\n}), {});\n","import { EndpointError } from \"../types\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nexport const getEndpointProperty = (property, options) => {\n if (Array.isArray(property)) {\n return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));\n }\n switch (typeof property) {\n case \"string\":\n return evaluateTemplate(property, options);\n case \"object\":\n if (property === null) {\n throw new EndpointError(`Unexpected endpoint property: ${property}`);\n }\n return getEndpointProperties(property, options);\n case \"boolean\":\n return property;\n default:\n throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n }\n};\n","import { getEndpointProperty } from \"./getEndpointProperty\";\nexport const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({\n ...acc,\n [propertyKey]: getEndpointProperty(propertyVal, options),\n}), {});\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointUrl = (endpointUrl, options) => {\n const expression = evaluateExpression(endpointUrl, \"Endpoint URL\", options);\n if (typeof expression === \"string\") {\n try {\n return new URL(expression);\n }\n catch (error) {\n console.error(`Failed to construct URL with ${expression}`, error);\n throw error;\n }\n }\n throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { getEndpointHeaders } from \"./getEndpointHeaders\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nimport { getEndpointUrl } from \"./getEndpointUrl\";\nexport const evaluateEndpointRule = (endpointRule, options) => {\n const { conditions, endpoint } = endpointRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const endpointRuleOptions = {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n };\n const { url, properties, headers } = endpoint;\n options.logger?.debug?.(`${debugId} Resolving endpoint from template: ${toDebugString(endpoint)}`);\n return {\n ...(headers != undefined && {\n headers: getEndpointHeaders(headers, endpointRuleOptions),\n }),\n ...(properties != undefined && {\n properties: getEndpointProperties(properties, endpointRuleOptions),\n }),\n url: getEndpointUrl(url, endpointRuleOptions),\n };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const evaluateErrorRule = (errorRule, options) => {\n const { conditions, error } = errorRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n throw new EndpointError(evaluateExpression(error, \"Error\", {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }));\n};\n","import { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateRules } from \"./evaluateRules\";\nexport const evaluateTreeRule = (treeRule, options) => {\n const { conditions, rules } = treeRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n return evaluateRules(rules, {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n });\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateEndpointRule } from \"./evaluateEndpointRule\";\nimport { evaluateErrorRule } from \"./evaluateErrorRule\";\nimport { evaluateTreeRule } from \"./evaluateTreeRule\";\nexport const evaluateRules = (rules, options) => {\n for (const rule of rules) {\n if (rule.type === \"endpoint\") {\n const endpointOrUndefined = evaluateEndpointRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else if (rule.type === \"error\") {\n evaluateErrorRule(rule, options);\n }\n else if (rule.type === \"tree\") {\n const endpointOrUndefined = evaluateTreeRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else {\n throw new EndpointError(`Unknown endpoint rule: ${rule}`);\n }\n }\n throw new EndpointError(`Rules evaluation failed`);\n};\n","import { debugId, toDebugString } from \"./debug\";\nimport { EndpointError } from \"./types\";\nimport { evaluateRules } from \"./utils\";\nexport const resolveEndpoint = (ruleSetObject, options) => {\n const { endpointParams, logger } = options;\n const { parameters, rules } = ruleSetObject;\n options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);\n const paramsWithDefault = Object.entries(parameters)\n .filter(([, v]) => v.default != null)\n .map(([k, v]) => [k, v.default]);\n if (paramsWithDefault.length > 0) {\n for (const [paramKey, paramDefaultValue] of paramsWithDefault) {\n endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;\n }\n }\n const requiredParams = Object.entries(parameters)\n .filter(([, v]) => v.required)\n .map(([k]) => k);\n for (const requiredParam of requiredParams) {\n if (endpointParams[requiredParam] == null) {\n throw new EndpointError(`Missing required parameter: '${requiredParam}'`);\n }\n }\n const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });\n if (options.endpointParams?.Endpoint) {\n try {\n const givenEndpoint = new URL(options.endpointParams.Endpoint);\n const { protocol, port } = givenEndpoint;\n endpoint.url.protocol = protocol;\n endpoint.url.port = port;\n }\n catch (e) {\n }\n }\n options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`);\n return endpoint;\n};\n","import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nexport const CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nexport const DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nexport const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG),\n default: false,\n};\n","import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nexport const CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nexport const DEFAULT_USE_FIPS_ENDPOINT = false;\nexport const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG),\n default: false,\n};\n","export const isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n","import { isFipsRegion } from \"./isFipsRegion\";\nexport const getRealRegion = (region) => isFipsRegion(region)\n ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n ? \"us-east-1\"\n : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n : region;\n","import { getRealRegion } from \"./getRealRegion\";\nimport { isFipsRegion } from \"./isFipsRegion\";\nexport const resolveRegionConfig = (input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return {\n ...input,\n region: async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n },\n useFipsEndpoint: async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n },\n };\n};\n","export const resolveEventStreamSerdeConfig = (input) => ({\n ...input,\n eventStreamMarshaller: input.eventStreamSerdeProvider(input),\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n const length = bodyLengthChecker(body);\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n catch (error) {\n }\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nexport const contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nexport const getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n});\n","export const resolveParamsForS3 = async (endpointParams) => {\n const bucket = endpointParams?.Bucket || \"\";\n if (typeof endpointParams.Bucket === \"string\") {\n endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\"#\")).replace(/\\?/g, encodeURIComponent(\"?\"));\n }\n if (isArnBucketName(bucket)) {\n if (endpointParams.ForcePathStyle === true) {\n throw new Error(\"Path-style addressing cannot be used with ARN buckets\");\n }\n }\n else if (!isDnsCompatibleBucketName(bucket) ||\n (bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\")) ||\n bucket.toLowerCase() !== bucket ||\n bucket.length < 3) {\n endpointParams.ForcePathStyle = true;\n }\n if (endpointParams.DisableMultiRegionAccessPoints) {\n endpointParams.disableMultiRegionAccessPoints = true;\n endpointParams.DisableMRAP = true;\n }\n return endpointParams;\n};\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nexport const DOT_PATTERN = /\\./;\nexport const S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nexport const isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nexport const isArnBucketName = (bucketName) => {\n const [arn, partition, service, , , bucket] = bucketName.split(\":\");\n const isArn = arn === \"arn\" && bucketName.split(\":\").length >= 6;\n const isValidArn = Boolean(isArn && partition && service && bucket);\n if (isArn && !isValidArn) {\n throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\n }\n return isValidArn;\n};\n","export const createConfigValueProvider = (configKey, canonicalEndpointParamKey, config) => {\n const configProvider = async () => {\n const configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n if (typeof configValue === \"function\") {\n return configValue();\n }\n return configValue;\n };\n if (configKey === \"credentialScope\" || canonicalEndpointParamKey === \"CredentialScope\") {\n return async () => {\n const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n const configValue = credentials?.credentialScope ?? credentials?.CredentialScope;\n return configValue;\n };\n }\n if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n return async () => {\n const endpoint = await configProvider();\n if (endpoint && typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return endpoint.url.href;\n }\n if (\"hostname\" in endpoint) {\n const { protocol, hostname, port, path } = endpoint;\n return `${protocol}//${hostname}${port ? \":\" + port : \"\"}${path}`;\n }\n }\n return endpoint;\n };\n }\n return configProvider;\n};\n","export const getEndpointFromConfig = async (serviceId) => undefined;\n","export function parseQueryString(querystring) {\n const query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\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 return query;\n}\n","import { parseQueryString } from \"@smithy/querystring-parser\";\nexport const parseUrl = (url) => {\n if (typeof url === \"string\") {\n return parseUrl(new URL(url));\n }\n const { hostname, pathname, port, protocol, search } = url;\n let query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\n","import { parseUrl } from \"@smithy/url-parser\";\nexport const toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return parseUrl(endpoint.url);\n }\n return endpoint;\n }\n return parseUrl(endpoint);\n};\n","import { resolveParamsForS3 } from \"../service-customizations\";\nimport { createConfigValueProvider } from \"./createConfigValueProvider\";\nimport { getEndpointFromConfig } from \"./getEndpointFromConfig\";\nimport { toEndpointV1 } from \"./toEndpointV1\";\nexport const getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\n if (!clientConfig.endpoint) {\n const endpointFromConfig = await getEndpointFromConfig(clientConfig.serviceId || \"\");\n if (endpointFromConfig) {\n clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig));\n }\n }\n const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig);\n if (typeof clientConfig.endpointProvider !== \"function\") {\n throw new Error(\"config.endpointProvider is not set.\");\n }\n const endpoint = clientConfig.endpointProvider(endpointParams, context);\n return endpoint;\n};\nexport const resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\n const endpointParams = {};\n const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {};\n for (const [name, instruction] of Object.entries(instructions)) {\n switch (instruction.type) {\n case \"staticContextParams\":\n endpointParams[name] = instruction.value;\n break;\n case \"contextParams\":\n endpointParams[name] = commandInput[instruction.name];\n break;\n case \"clientContextParams\":\n case \"builtInParams\":\n endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig)();\n break;\n default:\n throw new Error(\"Unrecognized endpoint parameter instruction: \" + JSON.stringify(instruction));\n }\n }\n if (Object.keys(instructions).length === 0) {\n Object.assign(endpointParams, clientConfig);\n }\n if (String(clientConfig.serviceId).toLowerCase() === \"s3\") {\n await resolveParamsForS3(endpointParams);\n }\n return endpointParams;\n};\n","import { getSmithyContext } from \"@smithy/util-middleware\";\nimport { getEndpointFromInstructions } from \"./adaptors/getEndpointFromInstructions\";\nexport const endpointMiddleware = ({ config, instructions, }) => {\n return (next, context) => async (args) => {\n const endpoint = await getEndpointFromInstructions(args.input, {\n getEndpointParameterInstructions() {\n return instructions;\n },\n }, { ...config }, context);\n context.endpointV2 = endpoint;\n context.authSchemes = endpoint.properties?.authSchemes;\n const authScheme = context.authSchemes?.[0];\n if (authScheme) {\n context[\"signing_region\"] = authScheme.signingRegion;\n context[\"signing_service\"] = authScheme.signingName;\n const smithyContext = getSmithyContext(context);\n const httpAuthOption = smithyContext?.selectedHttpAuthScheme?.httpAuthOption;\n if (httpAuthOption) {\n httpAuthOption.signingProperties = Object.assign(httpAuthOption.signingProperties || {}, {\n signing_region: authScheme.signingRegion,\n signingRegion: authScheme.signingRegion,\n signing_service: authScheme.signingName,\n signingName: authScheme.signingName,\n signingRegionSet: authScheme.signingRegionSet,\n }, authScheme.properties);\n }\n }\n return next({\n ...args,\n });\n };\n};\n","export const deserializerMiddleware = (options, deserializer) => (next) => async (args) => {\n const { response } = await next(args);\n try {\n const parsed = await deserializer(response, options);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n });\n if (!(\"$metadata\" in error)) {\n const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n error.message += \"\\n \" + hint;\n if (typeof error.$responseBodyText !== \"undefined\") {\n if (error.$response) {\n error.$response.body = error.$responseBodyText;\n }\n }\n }\n throw error;\n }\n};\n","export const serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n const endpoint = context.endpointV2?.url && options.urlParser\n ? async () => options.urlParser(context.endpointV2.url)\n : options.endpoint;\n if (!endpoint) {\n throw new Error(\"No valid endpoint provider available.\");\n }\n const request = await serializer(args.input, { ...options, endpoint });\n return next({\n ...args,\n request,\n });\n};\n","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport const deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport const serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n","import { serializerMiddlewareOption } from \"@smithy/middleware-serde\";\nimport { endpointMiddleware } from \"./endpointMiddleware\";\nexport const endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: serializerMiddlewareOption.name,\n};\nexport const getEndpointPlugin = (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(endpointMiddleware({\n config,\n instructions,\n }), endpointMiddlewareOptions);\n },\n});\n","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { toEndpointV1 } from \"./adaptors/toEndpointV1\";\nexport const resolveEndpointConfig = (input) => {\n const tls = input.tls ?? true;\n const { endpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await normalizeProvider(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n return {\n ...input,\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: normalizeProvider(input.useDualstackEndpoint ?? false),\n useFipsEndpoint: normalizeProvider(input.useFipsEndpoint ?? false),\n };\n};\n","export var RETRY_MODES;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(RETRY_MODES || (RETRY_MODES = {}));\nexport const DEFAULT_MAX_ATTEMPTS = 3;\nexport const DEFAULT_RETRY_MODE = RETRY_MODES.STANDARD;\n","export const CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nexport const 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];\nexport const TRANSIENT_ERROR_CODES = [\"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexport const TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nexport const NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\n","import { CLOCK_SKEW_ERROR_CODES, NODEJS_TIMEOUT_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport const isRetryableByTrait = (error) => error.$retryable !== undefined;\nexport const isClockSkewError = (error) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\nexport const isClockSkewCorrectedError = (error) => error.$metadata?.clockSkewCorrected;\nexport const isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n error.$retryable?.throttling == true;\nexport const isTransientError = (error) => isClockSkewCorrectedError(error) ||\n TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0);\nexport const isServerError = (error) => {\n if (error.$metadata?.httpStatusCode !== undefined) {\n const statusCode = error.$metadata.httpStatusCode;\n if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) {\n return true;\n }\n return false;\n }\n return false;\n};\n","import { isThrottlingError } from \"@smithy/service-error-classification\";\nexport class DefaultRateLimiter {\n constructor(options) {\n this.currentCapacity = 0;\n this.enabled = false;\n this.lastMaxRate = 0;\n this.measuredTxRate = 0;\n this.requestCount = 0;\n this.lastTimestamp = 0;\n this.timeWindow = 0;\n this.beta = options?.beta ?? 0.7;\n this.minCapacity = options?.minCapacity ?? 1;\n this.minFillRate = options?.minFillRate ?? 0.5;\n this.scaleConstant = options?.scaleConstant ?? 0.4;\n this.smooth = options?.smooth ?? 0.8;\n const currentTimeInSeconds = this.getCurrentTimeInSeconds();\n this.lastThrottleTime = currentTimeInSeconds;\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n getCurrentTimeInSeconds() {\n return Date.now() / 1000;\n }\n async getSendToken() {\n return this.acquireTokenBucket(1);\n }\n async acquireTokenBucket(amount) {\n if (!this.enabled) {\n return;\n }\n this.refillTokenBucket();\n if (amount > this.currentCapacity) {\n const delay = ((amount - this.currentCapacity) / this.fillRate) * 1000;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n this.currentCapacity = this.currentCapacity - amount;\n }\n refillTokenBucket() {\n const timestamp = this.getCurrentTimeInSeconds();\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount);\n this.lastTimestamp = timestamp;\n }\n updateClientSendingRate(response) {\n let calculatedRate;\n this.updateMeasuredRate();\n if (isThrottlingError(response)) {\n const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n }\n else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n }\n calculateTimeWindow() {\n this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n }\n cubicThrottle(rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n }\n cubicSuccess(timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n }\n enableTokenBucket() {\n this.enabled = true;\n }\n updateTokenBucketRate(newRate) {\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity);\n this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);\n }\n updateMeasuredRate() {\n const t = this.getCurrentTimeInSeconds();\n const timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n if (timeBucket > this.lastTxRateBucket) {\n const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n }\n getPrecise(num) {\n return parseFloat(num.toFixed(8));\n }\n}\n","export const DEFAULT_RETRY_DELAY_BASE = 100;\nexport const MAXIMUM_RETRY_DELAY = 20 * 1000;\nexport const THROTTLING_RETRY_DELAY_BASE = 500;\nexport const INITIAL_RETRY_TOKENS = 500;\nexport const RETRY_COST = 5;\nexport const TIMEOUT_RETRY_COST = 10;\nexport const NO_RETRY_INCREMENT = 1;\nexport const INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nexport const REQUEST_HEADER = \"amz-sdk-request\";\n","import { DEFAULT_RETRY_DELAY_BASE, MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const getDefaultRetryBackoffStrategy = () => {\n let delayBase = DEFAULT_RETRY_DELAY_BASE;\n const computeNextBackoffDelay = (attempts) => {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n };\n const setDelayBase = (delay) => {\n delayBase = delay;\n };\n return {\n computeNextBackoffDelay,\n setDelayBase,\n };\n};\n","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const createDefaultRetryToken = ({ retryDelay, retryCount, retryCost, }) => {\n const getRetryCount = () => retryCount;\n const getRetryDelay = () => Math.min(MAXIMUM_RETRY_DELAY, retryDelay);\n const getRetryCost = () => retryCost;\n return {\n getRetryCount,\n getRetryDelay,\n getRetryCost,\n };\n};\n","import { DEFAULT_MAX_ATTEMPTS, RETRY_MODES } from \"./config\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, NO_RETRY_INCREMENT, RETRY_COST, THROTTLING_RETRY_DELAY_BASE, TIMEOUT_RETRY_COST, } from \"./constants\";\nimport { getDefaultRetryBackoffStrategy } from \"./defaultRetryBackoffStrategy\";\nimport { createDefaultRetryToken } from \"./defaultRetryToken\";\nexport class StandardRetryStrategy {\n constructor(maxAttempts) {\n this.maxAttempts = maxAttempts;\n this.mode = RETRY_MODES.STANDARD;\n this.capacity = INITIAL_RETRY_TOKENS;\n this.retryBackoffStrategy = getDefaultRetryBackoffStrategy();\n this.maxAttemptsProvider = typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts;\n }\n async acquireInitialRetryToken(retryTokenScope) {\n return createDefaultRetryToken({\n retryDelay: DEFAULT_RETRY_DELAY_BASE,\n retryCount: 0,\n });\n }\n async refreshRetryTokenForRetry(token, errorInfo) {\n const maxAttempts = await this.getMaxAttempts();\n if (this.shouldRetry(token, errorInfo, maxAttempts)) {\n const errorType = errorInfo.errorType;\n this.retryBackoffStrategy.setDelayBase(errorType === \"THROTTLING\" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE);\n const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());\n const retryDelay = errorInfo.retryAfterHint\n ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType)\n : delayFromErrorType;\n const capacityCost = this.getCapacityCost(errorType);\n this.capacity -= capacityCost;\n return createDefaultRetryToken({\n retryDelay,\n retryCount: token.getRetryCount() + 1,\n retryCost: capacityCost,\n });\n }\n throw new Error(\"No retry token available\");\n }\n recordSuccess(token) {\n this.capacity = Math.max(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT));\n }\n getCapacity() {\n return this.capacity;\n }\n async getMaxAttempts() {\n try {\n return await this.maxAttemptsProvider();\n }\n catch (error) {\n console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`);\n return DEFAULT_MAX_ATTEMPTS;\n }\n }\n shouldRetry(tokenToRenew, errorInfo, maxAttempts) {\n const attempts = tokenToRenew.getRetryCount() + 1;\n return (attempts < maxAttempts &&\n this.capacity >= this.getCapacityCost(errorInfo.errorType) &&\n this.isRetryableError(errorInfo.errorType));\n }\n getCapacityCost(errorType) {\n return errorType === \"TRANSIENT\" ? TIMEOUT_RETRY_COST : RETRY_COST;\n }\n isRetryableError(errorType) {\n return errorType === \"THROTTLING\" || errorType === \"TRANSIENT\";\n }\n}\n","import { RETRY_MODES } from \"./config\";\nimport { DefaultRateLimiter } from \"./DefaultRateLimiter\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport class AdaptiveRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = RETRY_MODES.ADAPTIVE;\n const { rateLimiter } = options ?? {};\n this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();\n this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider);\n }\n async acquireInitialRetryToken(retryTokenScope) {\n await this.rateLimiter.getSendToken();\n return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n this.rateLimiter.updateClientSendingRate(errorInfo);\n return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n }\n recordSuccess(token) {\n this.rateLimiter.updateClientSendingRate({});\n this.standardRetryStrategy.recordSuccess(token);\n }\n}\n","export const asSdkError = (error) => {\n if (error instanceof Error)\n return error;\n if (error instanceof Object)\n return Object.assign(new Error(), error);\n if (typeof error === \"string\")\n return new Error(error);\n return new Error(`AWS SDK error wrapper for ${error}`);\n};\n","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { AdaptiveRetryStrategy, DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES, StandardRetryStrategy, } from \"@smithy/util-retry\";\nexport const ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport const CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport const NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n const value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const 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: (profile) => {\n const value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const 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 const resolveRetryConfig = (input) => {\n const { retryStrategy } = input;\n const maxAttempts = normalizeProvider(input.maxAttempts ?? DEFAULT_MAX_ATTEMPTS);\n return {\n ...input,\n maxAttempts,\n retryStrategy: async () => {\n if (retryStrategy) {\n return retryStrategy;\n }\n const retryMode = await normalizeProvider(input.retryMode)();\n if (retryMode === RETRY_MODES.ADAPTIVE) {\n return new AdaptiveRetryStrategy(maxAttempts);\n }\n return new StandardRetryStrategy(maxAttempts);\n },\n };\n};\nexport const ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport const CONFIG_RETRY_MODE = \"retry_mode\";\nexport const NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n default: DEFAULT_RETRY_MODE,\n};\n","export const isStreamingPayload = (request) => request?.body instanceof ReadableStream;\n","import { HttpRequest, HttpResponse } from \"@smithy/protocol-http\";\nimport { isServerError, isThrottlingError, isTransientError } from \"@smithy/service-error-classification\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nimport { INVOCATION_ID_HEADER, REQUEST_HEADER } from \"@smithy/util-retry\";\nimport { v4 } from \"uuid\";\nimport { isStreamingPayload } from \"./isStreamingPayload/isStreamingPayload\";\nimport { asSdkError } from \"./util\";\nexport const retryMiddleware = (options) => (next, context) => async (args) => {\n let retryStrategy = await options.retryStrategy();\n const maxAttempts = await options.maxAttempts();\n if (isRetryStrategyV2(retryStrategy)) {\n retryStrategy = retryStrategy;\n let retryToken = await retryStrategy.acquireInitialRetryToken(context[\"partition_id\"]);\n let lastError = new Error();\n let attempts = 0;\n let totalRetryDelay = 0;\n const { request } = args;\n const isRequest = HttpRequest.isInstance(request);\n if (isRequest) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n while (true) {\n try {\n if (isRequest) {\n request.headers[REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n const { response, output } = await next(args);\n retryStrategy.recordSuccess(retryToken);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalRetryDelay;\n return { response, output };\n }\n catch (e) {\n const retryErrorInfo = getRetryErrorInfo(e);\n lastError = asSdkError(e);\n if (isRequest && isStreamingPayload(request)) {\n (context.logger instanceof NoOpLogger ? console : context.logger)?.warn(\"An error was encountered in a non-retryable streaming request.\");\n throw lastError;\n }\n try {\n retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\n }\n catch (refreshError) {\n if (!lastError.$metadata) {\n lastError.$metadata = {};\n }\n lastError.$metadata.attempts = attempts + 1;\n lastError.$metadata.totalRetryDelay = totalRetryDelay;\n throw lastError;\n }\n attempts = retryToken.getRetryCount();\n const delay = retryToken.getRetryDelay();\n totalRetryDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n }\n else {\n retryStrategy = retryStrategy;\n if (retryStrategy?.mode)\n context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n return retryStrategy.retry(next, args);\n }\n};\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" &&\n typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" &&\n typeof retryStrategy.recordSuccess !== \"undefined\";\nconst getRetryErrorInfo = (error) => {\n const errorInfo = {\n error,\n errorType: getRetryErrorType(error),\n };\n const retryAfterHint = getRetryAfterHint(error.$response);\n if (retryAfterHint) {\n errorInfo.retryAfterHint = retryAfterHint;\n }\n return errorInfo;\n};\nconst getRetryErrorType = (error) => {\n if (isThrottlingError(error))\n return \"THROTTLING\";\n if (isTransientError(error))\n return \"TRANSIENT\";\n if (isServerError(error))\n return \"SERVER_ERROR\";\n return \"CLIENT_ERROR\";\n};\nexport const retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nexport const getRetryPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n});\nexport const getRetryAfterHint = (response) => {\n if (!HttpResponse.isInstance(response))\n return;\n const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n if (!retryAfterHeaderName)\n return;\n const retryAfter = response.headers[retryAfterHeaderName];\n const retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return new Date(retryAfterSeconds * 1000);\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate;\n};\n","import { endpointMiddlewareOptions } from \"@smithy/middleware-endpoint\";\nimport { httpAuthSchemeMiddleware } from \"./httpAuthSchemeMiddleware\";\nexport const httpAuthSchemeEndpointRuleSetMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"HTTP_AUTH_SCHEME\"],\n name: \"httpAuthSchemeMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: endpointMiddlewareOptions.name,\n};\nexport const getHttpAuthSchemeEndpointRuleSetPlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider, }) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider,\n }), httpAuthSchemeEndpointRuleSetMiddlewareOptions);\n },\n});\n","import { serializerMiddlewareOption } from \"@smithy/middleware-serde\";\nimport { httpAuthSchemeMiddleware } from \"./httpAuthSchemeMiddleware\";\nexport const httpAuthSchemeMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"HTTP_AUTH_SCHEME\"],\n name: \"httpAuthSchemeMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: serializerMiddlewareOption.name,\n};\nexport const getHttpAuthSchemePlugin = (config, { httpAuthSchemeParametersProvider, identityProviderConfigProvider, }) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpAuthSchemeMiddleware(config, {\n httpAuthSchemeParametersProvider,\n identityProviderConfigProvider,\n }), httpAuthSchemeMiddlewareOptions);\n },\n});\n","import { retryMiddlewareOptions } from \"@smithy/middleware-retry\";\nimport { httpSigningMiddleware } from \"./httpSigningMiddleware\";\nexport const httpSigningMiddlewareOptions = {\n step: \"finalizeRequest\",\n tags: [\"HTTP_SIGNING\"],\n name: \"httpSigningMiddleware\",\n aliases: [\"apiKeyMiddleware\", \"tokenMiddleware\", \"awsAuthMiddleware\"],\n override: true,\n relation: \"after\",\n toMiddleware: retryMiddlewareOptions.name,\n};\nexport const getHttpSigningPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpSigningMiddleware(config), httpSigningMiddlewareOptions);\n },\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { resolvedPath } from \"@smithy/smithy-client\";\nexport function requestBuilder(input, context) {\n return new RequestBuilder(input, context);\n}\nexport class RequestBuilder {\n constructor(input, context) {\n this.input = input;\n this.context = context;\n this.query = {};\n this.method = \"\";\n this.headers = {};\n this.path = \"\";\n this.body = null;\n this.hostname = \"\";\n this.resolvePathStack = [];\n }\n async build() {\n const { hostname, protocol = \"https\", port, path: basePath } = await this.context.endpoint();\n this.path = basePath;\n for (const resolvePath of this.resolvePathStack) {\n resolvePath(this.path);\n }\n return new HttpRequest({\n protocol,\n hostname: this.hostname || hostname,\n port,\n method: this.method,\n path: this.path,\n query: this.query,\n body: this.body,\n headers: this.headers,\n });\n }\n hn(hostname) {\n this.hostname = hostname;\n return this;\n }\n bp(uriLabel) {\n this.resolvePathStack.push((basePath) => {\n this.path = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + uriLabel;\n });\n return this;\n }\n p(memberName, labelValueProvider, uriLabel, isGreedyLabel) {\n this.resolvePathStack.push((path) => {\n this.path = resolvedPath(path, this.input, memberName, labelValueProvider, uriLabel, isGreedyLabel);\n });\n return this;\n }\n h(headers) {\n this.headers = headers;\n return this;\n }\n q(query) {\n this.query = query;\n return this;\n }\n b(body) {\n this.body = body;\n return this;\n }\n m(method) {\n this.method = method;\n return this;\n }\n}\n","import { toHex } from \"@smithy/util-hex-encoding\";\nexport class Int64 {\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9223372036854776000 || number < -9223372036854776000) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let 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 valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n","import { fromHex, toHex } from \"@smithy/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\nexport class HeaderMarshaller {\n constructor(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = this.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\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 const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n parse(headers) {\n const out = {};\n let position = 0;\n while (position < headers.byteLength) {\n const nameLength = headers.getUint8(position++);\n const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true,\n };\n break;\n case 1:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false,\n };\n break;\n case 2:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++),\n };\n break;\n case 3:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false),\n };\n position += 2;\n break;\n case 4:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false),\n };\n position += 4;\n break;\n case 5:\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:\n const 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:\n const 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:\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:\n const 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}\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 = {}));\nconst BOOLEAN_TAG = \"boolean\";\nconst BYTE_TAG = \"byte\";\nconst SHORT_TAG = \"short\";\nconst INT_TAG = \"integer\";\nconst LONG_TAG = \"long\";\nconst BINARY_TAG = \"binary\";\nconst STRING_TAG = \"string\";\nconst TIMESTAMP_TAG = \"timestamp\";\nconst UUID_TAG = \"uuid\";\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n","import { Crc32 } from \"@aws-crypto/crc32\";\nconst PRELUDE_MEMBER_LENGTH = 4;\nconst PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nconst CHECKSUM_LENGTH = 4;\nconst MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nexport function splitMessage({ byteLength, byteOffset, buffer }) {\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n const view = new DataView(buffer, byteOffset, byteLength);\n const messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n const 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","import { Crc32 } from \"@aws-crypto/crc32\";\nimport { HeaderMarshaller } from \"./HeaderMarshaller\";\nimport { splitMessage } from \"./splitMessage\";\nexport class EventStreamCodec {\n constructor(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n this.messageBuffer = [];\n this.isEndOfStream = false;\n }\n feed(message) {\n this.messageBuffer.push(this.decode(message));\n }\n endOfStream() {\n this.isEndOfStream = true;\n }\n getMessage() {\n const message = this.messageBuffer.pop();\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessage() {\n return message;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n getAvailableMessages() {\n const messages = this.messageBuffer;\n this.messageBuffer = [];\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessages() {\n return messages;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n encode({ headers: rawHeaders, body }) {\n const headers = this.headerMarshaller.format(rawHeaders);\n const length = headers.byteLength + body.byteLength + 16;\n const out = new Uint8Array(length);\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n const checksum = new Crc32();\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 view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n }\n decode(message) {\n const { headers, body } = splitMessage(message);\n return { headers: this.headerMarshaller.parse(headers), body };\n }\n formatHeaders(rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n }\n}\n","export class MessageDecoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const bytes of this.options.inputStream) {\n const decoded = this.options.decoder.decode(bytes);\n yield decoded;\n }\n }\n}\n","export class MessageEncoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const msg of this.options.messageStream) {\n const encoded = this.options.encoder.encode(msg);\n yield encoded;\n }\n if (this.options.includeEndFrame) {\n yield new Uint8Array(0);\n }\n }\n}\n","export class SmithyMessageDecoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const message of this.options.messageStream) {\n const deserialized = await this.options.deserializer(message);\n if (deserialized === undefined)\n continue;\n yield deserialized;\n }\n }\n}\n","export class SmithyMessageEncoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const chunk of this.options.inputStream) {\n const payloadBuf = this.options.serializer(chunk);\n yield payloadBuf;\n }\n }\n}\n","export function getChunkedStream(source) {\n let currentMessageTotalLength = 0;\n let currentMessagePendingLength = 0;\n let currentMessage = null;\n let messageLengthBuffer = null;\n const allocateMessage = (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 const currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false);\n };\n const iterator = async function* () {\n const sourceIterator = source[Symbol.asyncIterator]();\n while (true) {\n const { value, done } = await sourceIterator.next();\n if (done) {\n if (!currentMessageTotalLength) {\n return;\n }\n else if (currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n }\n else {\n throw new Error(\"Truncated event message received.\");\n }\n return;\n }\n const chunkLength = value.length;\n let currentOffset = 0;\n while (currentOffset < chunkLength) {\n if (!currentMessage) {\n const bytesRemaining = chunkLength - currentOffset;\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n const numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining);\n messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n break;\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n const numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset);\n currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n }\n }\n }\n };\n return {\n [Symbol.asyncIterator]: iterator,\n };\n}\n","export function getUnmarshalledStream(source, options) {\n const messageUnmarshaller = getMessageUnmarshaller(options.deserializer, options.toUtf8);\n return {\n [Symbol.asyncIterator]: async function* () {\n for await (const chunk of source) {\n const message = options.eventStreamCodec.decode(chunk);\n const type = await messageUnmarshaller(message);\n if (type === undefined)\n continue;\n yield type;\n }\n },\n };\n}\nexport function getMessageUnmarshaller(deserializer, toUtf8) {\n return async function (message) {\n const { value: messageType } = message.headers[\":message-type\"];\n if (messageType === \"error\") {\n const unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n }\n else if (messageType === \"exception\") {\n const code = message.headers[\":exception-type\"].value;\n const exception = { [code]: message };\n const deserializedException = await deserializer(exception);\n if (deserializedException.$unknown) {\n const error = new Error(toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n }\n else if (messageType === \"event\") {\n const event = {\n [message.headers[\":event-type\"].value]: message,\n };\n const deserialized = await deserializer(event);\n if (deserialized.$unknown)\n return;\n return deserialized;\n }\n else {\n throw Error(`Unrecognizable event type: ${message.headers[\":event-type\"].value}`);\n }\n };\n}\n","import { EventStreamCodec, MessageDecoderStream, MessageEncoderStream, SmithyMessageDecoderStream, SmithyMessageEncoderStream, } from \"@smithy/eventstream-codec\";\nimport { getChunkedStream } from \"./getChunkedStream\";\nimport { getMessageUnmarshaller } from \"./getUnmarshalledStream\";\nexport class EventStreamMarshaller {\n constructor({ utf8Encoder, utf8Decoder }) {\n this.eventStreamCodec = new EventStreamCodec(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n deserialize(body, deserializer) {\n const inputStream = getChunkedStream(body);\n return new SmithyMessageDecoderStream({\n messageStream: new MessageDecoderStream({ inputStream, decoder: this.eventStreamCodec }),\n deserializer: getMessageUnmarshaller(deserializer, this.utfEncoder),\n });\n }\n serialize(inputStream, serializer) {\n return new MessageEncoderStream({\n messageStream: new SmithyMessageEncoderStream({ inputStream, serializer }),\n encoder: this.eventStreamCodec,\n includeEndFrame: true,\n });\n }\n}\n","export const readableStreamtoIterable = (readableStream) => ({\n [Symbol.asyncIterator]: async function* () {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n return;\n yield value;\n }\n }\n finally {\n reader.releaseLock();\n }\n },\n});\nexport const iterableToReadableStream = (asyncIterable) => {\n const iterator = asyncIterable[Symbol.asyncIterator]();\n return new ReadableStream({\n async pull(controller) {\n const { done, value } = await iterator.next();\n if (done) {\n return controller.close();\n }\n controller.enqueue(value);\n },\n });\n};\n","import { EventStreamMarshaller as UniversalEventStreamMarshaller } from \"@smithy/eventstream-serde-universal\";\nimport { iterableToReadableStream, readableStreamtoIterable } from \"./utils\";\nexport class EventStreamMarshaller {\n constructor({ utf8Encoder, utf8Decoder }) {\n this.universalMarshaller = new UniversalEventStreamMarshaller({\n utf8Decoder,\n utf8Encoder,\n });\n }\n deserialize(body, deserializer) {\n const bodyIterable = isReadableStream(body) ? readableStreamtoIterable(body) : body;\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n }\n serialize(input, serializer) {\n const serialziedIterable = this.universalMarshaller.serialize(input, serializer);\n return typeof ReadableStream === \"function\" ? iterableToReadableStream(serialziedIterable) : serialziedIterable;\n }\n}\nconst isReadableStream = (body) => typeof ReadableStream === \"function\" && body instanceof ReadableStream;\n","import { EventStreamMarshaller } from \"./EventStreamMarshaller\";\nexport const eventStreamSerdeProvider = (options) => new EventStreamMarshaller(options);\n","export function blobReader(blob, onChunk, chunkSize = 1024 * 1024) {\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.addEventListener(\"error\", reject);\n fileReader.addEventListener(\"abort\", reject);\n const size = blob.size;\n let 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\", (event) => {\n const result = event.target.result;\n onChunk(new Uint8Array(result));\n totalBytesRead += result.byteLength;\n read();\n });\n read();\n });\n}\n","import { blobReader } from \"@smithy/chunked-blob-reader\";\nexport const blobHasher = async function blobHasher(hashCtor, blob) {\n const hash = new hashCtor();\n await blobReader(blob, (chunk) => {\n hash.update(chunk);\n });\n return hash.digest();\n};\n","export const invalidProvider = (message) => () => Promise.reject(message);\n","export const BLOCK_SIZE = 64;\nexport const DIGEST_LENGTH = 16;\nexport const INIT = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476];\n","import { fromUtf8 } from \"@smithy/util-utf8\";\nimport { BLOCK_SIZE, DIGEST_LENGTH, INIT } from \"./constants\";\nexport class Md5 {\n constructor() {\n this.reset();\n }\n update(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 const data = convertToBuffer(sourceData);\n let position = 0;\n let { byteLength } = data;\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 async digest() {\n if (!this.finished) {\n const { buffer, bufferLength: undecoratedLength, bytesHashed } = this;\n const bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 0b10000000);\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (let 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 const out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (let i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n return new Uint8Array(out.buffer, out.byteOffset, out.byteLength);\n }\n hashBuffer() {\n const { buffer, state } = this;\n let 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 reset() {\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}\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","const TEXT_ENCODER = typeof TextEncoder == \"function\" ? new TextEncoder() : null;\nexport const calculateBodyLength = (body) => {\n if (typeof body === \"string\") {\n if (TEXT_ENCODER) {\n return TEXT_ENCODER.encode(body).byteLength;\n }\n let len = body.length;\n for (let i = len - 1; i >= 0; i--) {\n const code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n if (code >= 0xdc00 && code <= 0xdfff)\n i--;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\n","export const DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\n","import { memoize } from \"@smithy/property-provider\";\nimport bowser from \"bowser\";\nimport { DEFAULTS_MODE_OPTIONS } from \"./constants\";\nexport const resolveDefaultsModeConfig = ({ defaultsMode, } = {}) => memoize(async () => {\n const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n switch (mode?.toLowerCase()) {\n case \"auto\":\n return Promise.resolve(isMobileBrowser() ? \"mobile\" : \"standard\");\n case \"mobile\":\n case \"in-region\":\n case \"cross-region\":\n case \"standard\":\n case \"legacy\":\n return Promise.resolve(mode?.toLocaleLowerCase());\n case undefined:\n return Promise.resolve(\"legacy\");\n default:\n throw new Error(`Invalid parameter for \"defaultsMode\", expect ${DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n }\n});\nconst isMobileBrowser = () => {\n const parsedUA = typeof window !== \"undefined\" && window?.navigator?.userAgent\n ? bowser.parse(window.navigator.userAgent)\n : undefined;\n const platform = parsedUA?.platform?.type;\n return platform === \"tablet\" || platform === \"mobile\";\n};\n"],"names":["getHttpHandlerExtensionConfiguration","runtimeConfig","httpHandler","handler","key","value","resolveHttpHandlerRuntimeConfig","httpHandlerExtensionConfiguration","HttpAuthLocation","HttpApiKeyAuthLocation","EndpointURLScheme","AlgorithmId","FieldPosition","SMITHY_CONTEXT_KEY","IniSectionType","RequestHandlerProtocol","HttpRequest","options","request","req","cloned","cloneQuery","query","carry","paramName","param","HttpResponse","response","resp","isValidHostname","hostname","NoOpLogger","getAllAliases","name","aliases","_aliases","alias","getMiddlewareNameWithAliases","constructStack","absoluteEntries","relativeEntries","identifyOnResolve","entriesNameSet","sort","entries","a","b","stepWeights","priorityWeights","removeByName","toRemove","isRemoved","filterCb","entry","removeByReference","cloneTo","toStack","_a","stack","expandRelativeMiddlewareList","from","expandedMiddlewareList","getMiddlewareList","debug","normalizedAbsoluteEntries","normalizedRelativeEntries","normalizedEntriesNameMap","normalizedEntry","toMiddleware","wholeList","middleware","override","toOverrideIndex","toOverride","plugin","tags","mw","step","toggle","context","Client","config","command","optionsOrCb","cb","callback","result","err","alphabetByEncoding","alphabetByValue","i","start","limit","char","index","bitsPerLetter","bitsPerByte","maxLetterValue","fromBase64","input","totalByteLength","out","dataView","bits","bitLength","j","chunkOffset","byteLength","k","offset","fromUtf8","toUint8Array","data","toUtf8","toBase64","_input","isArrayLike","isUint8Array","str","bitClusterCount","transformToString","payload","encoding","transformFromString","Uint8ArrayBlobAdapter","source","getAwsChunkedEncodingStream","readableStream","base64Encoder","bodyLengthChecker","checksumAlgorithmFn","checksumLocationName","streamHasher","checksumRequired","digest","reader","controller","done","checksum","escapeUri","uri","hexEncode","c","buildQueryString","parts","iLen","qsEntry","requestTimeout","timeoutInMs","resolve","reject","timeoutError","keepAliveSupport","FetchHttpHandler","instanceOrOptions","opts","abortSignal","requestTimeoutInMs","keepAlive","abortError","path","queryString","auth","username","password","port","method","url","body","requestOptions","fetchRequest","raceOfPromises","fetchHeaders","transformedHeaders","pair","streamCollector","stream","collectBlob","collectStream","blob","base64","readToBase64","arrayBuffer","chunks","isDone","length","collected","chunk","commaIndex","dataOffset","SHORT_TO_HEX","HEX_TO_SHORT","encodedByte","fromHex","encoded","toHex","bytes","ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED","sdkStreamMixin","isBlobInstance","isReadableStreamInstance","_b","transformed","transformToByteArray","blobToWebStream","buf","collectBody","streamBody","fromContext","Command","ClassBuilder","clientStack","configuration","middlewareFn","clientName","commandName","inputFilterSensitiveLog","outputFilterSensitiveLog","smithyContext","additionalContext","CommandCtor","logger","handlerExecutionContext","requestHandler","_","endpointParameterInstructions","middlewareSupplier","service","operation","inputFilter","outputFilter","serializer","deserializer","closure","CommandRef","SENSITIVE_STRING","createAggregatedClient","commands","methodImpl","args","methodName","parseBoolean","expectNumber","parsed","stackTraceWarning","MAX_FLOAT","expectFloat32","expected","expectLong","expectInt32","expectSizedInt","expectShort","expectByte","size","castInt","expectNonNull","location","expectObject","receivedType","expectString","expectUnion","asObject","setKeys","v","strictParseFloat32","parseNumber","NUMBER_REGEX","matches","strictParseLong","strictParseInt32","strictParseShort","strictParseByte","message","s","DAYS","MONTHS","dateToUtcString","date","year","month","dayOfWeek","dayOfMonthInt","hoursInt","minutesInt","secondsInt","dayOfMonthString","hoursString","minutesString","secondsString","RFC3339_WITH_OFFSET","parseRfc3339DateTimeWithOffset","match","yearStr","monthStr","dayStr","hours","minutes","seconds","fractionalMilliseconds","offsetStr","stripLeadingZeroes","parseDateValue","day","buildDate","parseOffsetToMilliseconds","IMF_FIXDATE","RFC_850_DATE","ASC_TIME","parseRfc7231DateTime","parseMonthByShortName","adjustRfc850Year","parseTwoDigitYear","time","adjustedMonth","validateDayOfMonth","parseMilliseconds","thisYear","valueInThisCentury","FIFTY_YEARS_IN_MILLIS","monthIdx","DAYS_IN_MONTH","maxDays","isLeapYear","type","lower","upper","dateVal","directionStr","direction","hour","minute","idx","ServiceException","decorateServiceException","exception","additions","throwDefaultError","output","parsedBody","exceptionCtor","errorCode","$metadata","deserializeMetadata","statusCode","withBaseException","ExceptionCtor","loadConfigsForDefaultMode","mode","getChecksumConfiguration","checksumAlgorithms","id","algorithmId","algo","resolveChecksumRuntimeConfig","clientConfig","checksumAlgorithm","getRetryConfiguration","_retryStrategy","retryStrategy","resolveRetryRuntimeConfig","retryStrategyConfiguration","getDefaultExtensionConfiguration","resolveDefaultRuntimeConfig","extendedEncodeURIComponent","getArrayIfSingleItem","mayBeArray","getValueFromTextNode","obj","textNodeName","StringWrapper","Class","Constructor","instance","map","arg0","arg1","arg2","target","filter","instructions","mapWithFilter","applyInstruction","_instructions","targetKey","instruction","nonNullish","valueFn","pass","sourceKey","_value","defaultFilterPassed","customFilterPassed","resolvedPath","memberName","labelValueProvider","uriLabel","isGreedyLabel","labelValue","segment","serializeDateTime","getSmithyContext","normalizeProvider","promisified","ALGORITHM_QUERY_PARAM","CREDENTIAL_QUERY_PARAM","AMZ_DATE_QUERY_PARAM","SIGNED_HEADERS_QUERY_PARAM","EXPIRES_QUERY_PARAM","SIGNATURE_QUERY_PARAM","TOKEN_QUERY_PARAM","AUTH_HEADER","AMZ_DATE_HEADER","DATE_HEADER","GENERATED_HEADERS","SIGNATURE_HEADER","SHA256_HEADER","TOKEN_HEADER","ALWAYS_UNSIGNABLE_HEADERS","PROXY_HEADER_PATTERN","SEC_HEADER_PATTERN","ALGORITHM_IDENTIFIER","EVENT_ALGORITHM_IDENTIFIER","UNSIGNED_PAYLOAD","MAX_CACHE_SIZE","KEY_TYPE_IDENTIFIER","MAX_PRESIGNED_TTL","signingKeyCache","cacheQueue","createScope","shortDate","region","getSigningKey","sha256Constructor","credentials","credsHash","hmac","cacheKey","signable","ctor","secret","hash","getCanonicalHeaders","headers","unsignableHeaders","signableHeaders","canonical","headerName","canonicalHeaderName","getCanonicalQuery","keys","serialized","isArrayBuffer","arg","getPayloadHash","hashConstructor","hashCtor","HeaderFormatter","position","header","shortView","intView","longBytes","binView","binBytes","utf8Bytes","strView","strBytes","tsBytes","Int64","UUID_PATTERN","uuidBytes","HEADER_VALUE_TYPE","Int64$1","number","remaining","negate","negative","hasHeader","soughtHeader","cloneRequest","rest","moveHeadersToQuery","lname","prepareRequest","iso8601","toDate","SignatureV4","applyChecksum","sha256","uriEscapePath","originalRequest","signingDate","expiresIn","unhoistableHeaders","signingRegion","signingService","longDate","formatDate","scope","canonicalHeaders","getCanonicalHeaderList","toSign","priorSignature","hashedPayload","hashedHeaders","stringToSign","signableMessage","signature","requestToSign","payloadHash","sortedHeaders","credentialScope","canonicalRequest","hashedRequest","normalizedPathSegments","pathSegment","normalizedPath","keyPromise","now","SelectorType","memoize","provider","isExpired","requiresRefresh","resolved","pending","hasResult","isConstant","coalesceProvider","IP_V4_REGEX","isIpAddress","VALID_HOST_LABEL_REGEX","isValidHostLabel","allowSubDomains","labels","label","customEndpointFunctions","debugId","toDebugString","EndpointError","booleanEquals","value1","value2","getAttrPathList","pathList","part","squareBracketIndex","arrayIndex","getAttr","acc","isSet","not","DEFAULT_PORTS","parseURL","whatwgURL","protocol","urlString","host","pathname","search","scheme","isIp","inputContainsDefaultPort","authority","stringEquals","substring","stop","reverse","uriEncode","endpointFunctions","evaluateTemplate","template","evaluatedTemplateArr","templateContext","currentIndex","openingBraceIndex","closingBraceIndex","parameterName","refName","attrName","getReferenceValue","ref","evaluateExpression","keyName","callFunction","fn","argv","evaluatedArgs","fnSegments","evaluateCondition","assign","fnArgs","evaluateConditions","conditions","conditionsReferenceRecord","condition","toAssign","getEndpointHeaders","headerKey","headerVal","headerValEntry","processedExpr","getEndpointProperty","property","propertyEntry","getEndpointProperties","properties","propertyKey","propertyVal","getEndpointUrl","endpointUrl","expression","error","evaluateEndpointRule","endpointRule","endpoint","referenceRecord","endpointRuleOptions","evaluateErrorRule","errorRule","evaluateTreeRule","treeRule","rules","evaluateRules","rule","endpointOrUndefined","resolveEndpoint","ruleSetObject","endpointParams","parameters","paramsWithDefault","paramKey","paramDefaultValue","requiredParams","requiredParam","_c","givenEndpoint","_e","_d","DEFAULT_USE_DUALSTACK_ENDPOINT","DEFAULT_USE_FIPS_ENDPOINT","isFipsRegion","getRealRegion","resolveRegionConfig","useFipsEndpoint","providedRegion","resolveEventStreamSerdeConfig","CONTENT_LENGTH_HEADER","contentLengthMiddleware","next","contentLengthMiddlewareOptions","getContentLengthPlugin","resolveParamsForS3","bucket","isArnBucketName","isDnsCompatibleBucketName","DOMAIN_PATTERN","IP_ADDRESS_PATTERN","DOTS_PATTERN","bucketName","arn","partition","isArn","isValidArn","createConfigValueProvider","configKey","canonicalEndpointParamKey","configProvider","configValue","getEndpointFromConfig","serviceId","parseQueryString","querystring","parseUrl","toEndpointV1","getEndpointFromInstructions","commandInput","instructionsSupplier","endpointFromConfig","resolveParams","endpointMiddleware","authScheme","httpAuthOption","deserializerMiddleware","hint","serializerMiddleware","deserializerMiddlewareOption","serializerMiddlewareOption","getSerdePlugin","commandStack","endpointMiddlewareOptions","getEndpointPlugin","resolveEndpointConfig","tls","customEndpointProvider","RETRY_MODES","DEFAULT_MAX_ATTEMPTS","DEFAULT_RETRY_MODE","THROTTLING_ERROR_CODES","TRANSIENT_ERROR_CODES","TRANSIENT_ERROR_STATUS_CODES","NODEJS_TIMEOUT_ERROR_CODES","isClockSkewCorrectedError","isThrottlingError","isTransientError","isServerError","DefaultRateLimiter","currentTimeInSeconds","amount","delay","timestamp","fillAmount","calculatedRate","rateToUse","newRate","t","timeBucket","currentRate","num","DEFAULT_RETRY_DELAY_BASE","MAXIMUM_RETRY_DELAY","THROTTLING_RETRY_DELAY_BASE","INITIAL_RETRY_TOKENS","RETRY_COST","TIMEOUT_RETRY_COST","NO_RETRY_INCREMENT","INVOCATION_ID_HEADER","REQUEST_HEADER","getDefaultRetryBackoffStrategy","delayBase","attempts","createDefaultRetryToken","retryDelay","retryCount","retryCost","StandardRetryStrategy","maxAttempts","retryTokenScope","token","errorInfo","errorType","delayFromErrorType","capacityCost","tokenToRenew","AdaptiveRetryStrategy","maxAttemptsProvider","rateLimiter","asSdkError","resolveRetryConfig","isStreamingPayload","retryMiddleware","isRetryStrategyV2","retryToken","lastError","totalRetryDelay","isRequest","v4","e","retryErrorInfo","getRetryErrorInfo","getRetryErrorType","retryAfterHint","getRetryAfterHint","retryMiddlewareOptions","getRetryPlugin","retryAfterHeaderName","retryAfter","retryAfterSeconds","requestBuilder","RequestBuilder","basePath","resolvePath","HeaderMarshaller","nameLength","BOOLEAN_TAG","BYTE_TAG","SHORT_TAG","INT_TAG","LONG_TAG","binaryLength","BINARY_TAG","stringLength","STRING_TAG","TIMESTAMP_TAG","UUID_TAG","PRELUDE_MEMBER_LENGTH","PRELUDE_LENGTH","CHECKSUM_LENGTH","MINIMUM_MESSAGE_LENGTH","splitMessage","byteOffset","buffer","view","messageLength","headerLength","expectedPreludeChecksum","expectedMessageChecksum","checksummer","Crc32","EventStreamCodec","isEndOfStream","messages","rawHeaders","MessageDecoderStream","MessageEncoderStream","msg","SmithyMessageDecoderStream","deserialized","SmithyMessageEncoderStream","getChunkedStream","currentMessageTotalLength","currentMessagePendingLength","currentMessage","messageLengthBuffer","allocateMessage","iterator","sourceIterator","chunkLength","currentOffset","bytesRemaining","numBytesForTotal","numBytesToWrite","getMessageUnmarshaller","messageType","unmodeledError","code","deserializedException","event","EventStreamMarshaller$1","utf8Encoder","utf8Decoder","inputStream","readableStreamtoIterable","iterableToReadableStream","asyncIterable","EventStreamMarshaller","UniversalEventStreamMarshaller","bodyIterable","isReadableStream","serialziedIterable","eventStreamSerdeProvider","blobReader","onChunk","chunkSize","fileReader","totalBytesRead","read","blobHasher","invalidProvider","BLOCK_SIZE","DIGEST_LENGTH","INIT","Md5","sourceData","isEmptyData","convertToBuffer","undecoratedLength","bytesHashed","bitsHashed","state","d","ff","gg","hh","ii","cmn","q","x","TEXT_ENCODER","calculateBodyLength","len","DEFAULTS_MODE_OPTIONS","resolveDefaultsModeConfig","defaultsMode","isMobileBrowser","parsedUA","bowser","platform"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156]}