@mindbowser_inc/ui-feedback-plugin 0.3.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/aws-DieAIoX4.mjs +134 -0
- package/dist/{aws-CkWYvUhs.mjs.map → aws-DieAIoX4.mjs.map} +1 -1
- package/dist/{index-D6dCjvzy.mjs → index-BcqBbswO.mjs} +181 -147
- package/dist/index-BcqBbswO.mjs.map +1 -0
- package/dist/{supabase-CbB80UVb.mjs → supabase-BUHP2OkK.mjs} +2 -2
- package/dist/{supabase-CbB80UVb.mjs.map → supabase-BUHP2OkK.mjs.map} +1 -1
- package/dist/ui-feedback-plugin.es.js +2 -2
- package/dist/ui-feedback-plugin.umd.js +228 -250
- package/dist/ui-feedback-plugin.umd.js.map +1 -1
- package/package.json +13 -1
- package/dist/aws-CkWYvUhs.mjs +0 -134
- package/dist/index-B-1NC_TX.mjs +0 -12047
- package/dist/index-B-1NC_TX.mjs.map +0 -1
- package/dist/index-ClYqXfVs.mjs +0 -183
- package/dist/index-ClYqXfVs.mjs.map +0 -1
- package/dist/index-D6dCjvzy.mjs.map +0 -1
- package/dist/index.browser-CKeO7JYa.mjs +0 -190
- package/dist/index.browser-CKeO7JYa.mjs.map +0 -1
- package/dist/loadCognitoIdentity-V6H3EoBY.mjs +0 -957
- package/dist/loadCognitoIdentity-V6H3EoBY.mjs.map +0 -1
- package/dist/stream-collector-mh16BUWl.mjs +0 -4032
- package/dist/stream-collector-mh16BUWl.mjs.map +0 -1
- package/dist/tslib.es6-BNkLP3y-.mjs +0 -112
- package/dist/tslib.es6-BNkLP3y-.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream-collector-mh16BUWl.mjs","sources":["../node_modules/@aws-sdk/core/dist-es/submodules/client/setCredentialFeature.js","../node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/isStreamingPayload/isStreamingPayload.browser.js","../node_modules/@smithy/core/dist-es/submodules/client/middleware-stack/MiddlewareStack.js","../node_modules/@smithy/types/dist-es/endpoint.js","../node_modules/@smithy/types/dist-es/extensions/checksum.js","../node_modules/@smithy/types/dist-es/middleware.js","../node_modules/@smithy/core/dist-es/submodules/transport/getSmithyContext.js","../node_modules/@smithy/core/dist-es/submodules/transport/httpRequest.js","../node_modules/@smithy/core/dist-es/submodules/transport/httpResponse.js","../node_modules/@smithy/core/dist-es/submodules/transport/isValidHostLabel.js","../node_modules/@smithy/core/dist-es/submodules/transport/normalizeProvider.js","../node_modules/@smithy/core/dist-es/submodules/transport/parseQueryString.js","../node_modules/@smithy/core/dist-es/submodules/transport/parseUrl.js","../node_modules/@smithy/core/dist-es/submodules/transport/toEndpointV1.js","../node_modules/@smithy/core/dist-es/submodules/client/invalid-dependency/invalidProvider.js","../node_modules/@smithy/core/dist-es/submodules/client/smithy-client/client.js","../node_modules/@smithy/core/dist-es/submodules/schema/deref.js","../node_modules/@smithy/core/dist-es/submodules/schema/schemas/operation.js","../node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js","../node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaSerializationMiddleware.js","../node_modules/@smithy/core/dist-es/submodules/schema/middleware/getSchemaSerdePlugin.js","../node_modules/@smithy/core/dist-es/submodules/schema/schemas/translateTraits.js","../node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js","../node_modules/@smithy/core/dist-es/submodules/schema/TypeRegistry.js","../node_modules/@smithy/core/dist-es/submodules/client/smithy-client/schemaLogFilter.js","../node_modules/@smithy/core/dist-es/submodules/client/smithy-client/command.js","../node_modules/@smithy/core/dist-es/submodules/client/smithy-client/exceptions.js","../node_modules/@smithy/core/dist-es/submodules/client/smithy-client/defaults-mode.js","../node_modules/@smithy/core/dist-es/submodules/client/smithy-client/extensions/checksum.js","../node_modules/@smithy/core/dist-es/submodules/client/smithy-client/extensions/retry.js","../node_modules/@smithy/core/dist-es/submodules/client/smithy-client/extensions/defaultExtensionConfiguration.js","../node_modules/@smithy/core/dist-es/submodules/client/smithy-client/NoOpLogger.js","../node_modules/@smithy/core/dist-es/submodules/serde/util-base64/constants-for-browser.js","../node_modules/@smithy/core/dist-es/submodules/serde/util-base64/fromBase64.browser.js","../node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/fromUtf8.browser.js","../node_modules/@smithy/core/dist-es/submodules/serde/util-base64/toBase64.browser.js","../node_modules/@smithy/core/dist-es/submodules/serde/util-stream/blob/Uint8ArrayBlobAdapter.js","../node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUtf8.browser.js","../node_modules/@smithy/core/dist-es/submodules/serde/uuid/v4.js","../node_modules/@smithy/core/dist-es/submodules/serde/parse-utils.js","../node_modules/@smithy/core/dist-es/submodules/serde/date-utils.js","../node_modules/@smithy/core/dist-es/submodules/serde/lazy-json.js","../node_modules/@smithy/core/dist-es/submodules/serde/value/NumericValue.js","../node_modules/@smithy/core/dist-es/submodules/serde/util-hex-encoding/hex-encoding.js","../node_modules/@smithy/core/dist-es/submodules/serde/util-body-length/calculateBodyLength.browser.js","../node_modules/@smithy/core/dist-es/submodules/serde/util-utf8/toUint8Array.browser.js","../node_modules/@smithy/core/dist-es/submodules/serde/is-array-buffer/is-array-buffer.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/getEndpointFromConfig.browser.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/service-customizations/s3.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/createConfigValueProvider.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/getEndpointFromInstructions.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/endpointMiddleware.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/getEndpointPlugin.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/resolveEndpointConfig.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/bdd/BinaryDecisionDiagram.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/cache/EndpointCache.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/types/EndpointError.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/debug/debugId.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/debug/toDebugString.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/customEndpointFunctions.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/booleanEquals.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/coalesce.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/getAttrPathList.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/getAttr.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/isSet.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/ite.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/not.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/isIpAddress.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/parseURL.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/split.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/stringEquals.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/substring.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/uriEncode.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/endpointFunctions.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateTemplate.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getReferenceValue.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateExpression.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/evaluateCondition.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getEndpointHeaders.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getEndpointProperties.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/utils/getEndpointUrl.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/decideEndpoint.js","../node_modules/@smithy/core/dist-es/submodules/endpoints/index.browser.js","../node_modules/@smithy/core/dist-es/submodules/serde/index.browser.js","../node_modules/@smithy/core/dist-es/submodules/protocols/collect-stream-body.js","../node_modules/@smithy/core/dist-es/submodules/protocols/SerdeContext.js","../node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js","../node_modules/@smithy/core/dist-es/submodules/protocols/serde/determineTimestampFormat.js","../node_modules/@smithy/core/dist-es/submodules/protocols/protocol-http/extensions/httpExtensionConfiguration.js","../node_modules/@smithy/core/dist-es/submodules/protocols/middleware-content-length/contentLengthMiddleware.js","../node_modules/@smithy/core/dist-es/submodules/protocols/util-uri-escape/escape-uri.js","../node_modules/@smithy/core/dist-es/submodules/protocols/querystring-builder/buildQueryString.js","../node_modules/@smithy/core/dist-es/submodules/retry/service-error-classification/constants.js","../node_modules/@smithy/core/dist-es/submodules/retry/service-error-classification/service-error-classification.js","../node_modules/@smithy/core/dist-es/submodules/retry/util-retry/constants.js","../node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/parseRetryAfterHeader.js","../node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/util.js","../node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/retryMiddleware.js","../node_modules/@smithy/core/dist-es/submodules/retry/util-retry/DefaultRateLimiter.js","../node_modules/@smithy/core/dist-es/submodules/retry/util-retry/retries-2026-config.js","../node_modules/@smithy/core/dist-es/submodules/retry/util-retry/DefaultRetryBackoffStrategy.js","../node_modules/@smithy/core/dist-es/submodules/retry/util-retry/DefaultRetryToken.js","../node_modules/@smithy/core/dist-es/submodules/retry/util-retry/config.js","../node_modules/@smithy/core/dist-es/submodules/retry/util-retry/StandardRetryStrategy.js","../node_modules/@smithy/core/dist-es/submodules/retry/util-retry/AdaptiveRetryStrategy.js","../node_modules/@smithy/core/dist-es/submodules/retry/middleware-retry/configurations.js","../node_modules/@smithy/core/dist-es/submodules/retry/index.browser.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/setFeature.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-host-header/hostHeaderMiddleware.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-logger/loggerMiddleware.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-recursion-detection/getRecursionDetectionPlugin.browser.js","../node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/resolveAuthOptions.js","../node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js","../node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js","../node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-signing/httpSigningMiddleware.js","../node_modules/@smithy/core/dist-es/legacy-root-exports/middleware-http-signing/getHttpSigningMiddleware.js","../node_modules/@smithy/core/dist-es/normalizeProvider.js","../node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/DefaultIdentityProviderConfig.js","../node_modules/@smithy/core/dist-es/legacy-root-exports/util-identity-and-auth/memoizeIdentityProvider.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/configurations.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/partitions.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/partition.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/check-features.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/constants.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/encode-features.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/middleware-user-agent/user-agent-middleware.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-browser/defaultUserAgent.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/isVirtualHostableS3Bucket.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/lib/aws/parseArn.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/util-endpoints/aws.js","../node_modules/@smithy/core/dist-es/submodules/config/property-provider/memoize.js","../node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/checkRegion.js","../node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/isFipsRegion.js","../node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/getRealRegion.js","../node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/resolveRegionConfig.js","../node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/constants.js","../node_modules/@smithy/core/dist-es/submodules/config/defaults-mode/resolveDefaultsModeConfig.browser.js","../node_modules/@smithy/core/dist-es/submodules/config/index.browser.js","../node_modules/@aws-sdk/core/dist-es/submodules/client/region-config-resolver/extensions.js","../node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../node_modules/@aws-crypto/util/build/module/convertToBuffer.js","../node_modules/@aws-crypto/util/build/module/isEmptyData.js","../node_modules/@smithy/signature-v4/dist-es/HeaderFormatter.js","../node_modules/@smithy/signature-v4/dist-es/constants.js","../node_modules/@smithy/signature-v4/dist-es/getCanonicalQuery.js","../node_modules/@smithy/signature-v4/dist-es/utilDate.js","../node_modules/@smithy/signature-v4/dist-es/SignatureV4Base.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/getPayloadHash.js","../node_modules/@smithy/signature-v4/dist-es/headerUtil.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/SignatureV4.js","../node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js","../node_modules/@aws-sdk/core/dist-es/submodules/protocols/ConfigurableSerdeContext.js","../node_modules/@aws-sdk/core/dist-es/submodules/protocols/UnionSerde.js","../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getDateHeader.js","../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getSkewCorrectedDate.js","../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/isClockSkewed.js","../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/utils/getUpdatedSystemClockOffset.js","../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/AwsSdkSigV4Signer.js","../node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js","../node_modules/@aws-sdk/util-locate-window/dist-es/index.js","../node_modules/@aws-crypto/supports-web-crypto/build/module/supportsWebCrypto.js","../node_modules/@aws-crypto/sha256-browser/build/module/constants.js","../node_modules/@aws-crypto/sha256-browser/build/module/webCryptoSha256.js","../node_modules/@aws-crypto/sha256-js/build/module/constants.js","../node_modules/@aws-crypto/sha256-js/build/module/RawSha256.js","../node_modules/@aws-crypto/sha256-js/build/module/jsSha256.js","../node_modules/@aws-crypto/sha256-browser/build/module/crossPlatformSha256.js","../node_modules/@smithy/fetch-http-handler/dist-es/create-request.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"],"sourcesContent":["export function setCredentialFeature(credentials, feature, value) {\n if (!credentials.$source) {\n credentials.$source = {};\n }\n credentials.$source[feature] = value;\n return credentials;\n}\n","export const isStreamingPayload = (request) => request?.body instanceof ReadableStream;\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","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 addChecksumAlgorithm(algo) {\n checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return 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 SMITHY_CONTEXT_KEY = \"__smithy_context\";\n","import { SMITHY_CONTEXT_KEY } from \"@smithy/types\";\nexport const getSmithyContext = (context) => context[SMITHY_CONTEXT_KEY] || (context[SMITHY_CONTEXT_KEY] = {});\n","export class HttpRequest {\n method;\n protocol;\n hostname;\n port;\n path;\n query;\n headers;\n username;\n password;\n fragment;\n body;\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 clone(request) {\n const cloned = new HttpRequest({\n ...request,\n headers: { ...request.headers },\n });\n if (cloned.query) {\n cloned.query = cloneQuery(cloned.query);\n }\n return cloned;\n }\n static isInstance(request) {\n if (!request) {\n return false;\n }\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 return HttpRequest.clone(this);\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 statusCode;\n reason;\n headers;\n body;\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","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 normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\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 \"./parseQueryString\";\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 \"./parseUrl\";\nexport const toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n const v1Endpoint = parseUrl(endpoint.url);\n if (endpoint.headers) {\n v1Endpoint.headers = {};\n for (const name in endpoint.headers) {\n v1Endpoint.headers[name.toLowerCase()] = endpoint.headers[name].join(\", \");\n }\n }\n return v1Endpoint;\n }\n return endpoint;\n }\n return parseUrl(endpoint);\n};\n","export const invalidProvider = (message) => () => Promise.reject(message);\n","import { constructStack } from \"../middleware-stack/MiddlewareStack\";\nexport class Client {\n config;\n middlewareStack = constructStack();\n initConfig;\n handlers;\n constructor(config) {\n this.config = config;\n const { protocol, protocolSettings } = config;\n if (protocolSettings) {\n if (typeof protocol === \"function\") {\n config.protocol = new protocol(protocolSettings);\n }\n }\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const useHandlerCache = options === undefined && this.config.cacheMiddleware === true;\n let handler;\n if (useHandlerCache) {\n if (!this.handlers) {\n this.handlers = new WeakMap();\n }\n const handlers = this.handlers;\n if (handlers.has(command.constructor)) {\n handler = handlers.get(command.constructor);\n }\n else {\n handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n handlers.set(command.constructor, handler);\n }\n }\n else {\n delete this.handlers;\n handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n }\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 this.config?.requestHandler?.destroy?.();\n delete this.handlers;\n }\n}\n","export const deref = (schemaRef) => {\n if (typeof schemaRef === \"function\") {\n return schemaRef();\n }\n return schemaRef;\n};\n","export const operation = (namespace, name, traits, input, output) => ({\n name,\n namespace,\n traits,\n input,\n output,\n});\n","import { HttpResponse, getSmithyContext } from \"@smithy/core/transport\";\nimport { operation } from \"../schemas/operation\";\nexport const schemaDeserializationMiddleware = (config) => (next, context) => async (args) => {\n const { response } = await next(args);\n const { operationSchema } = getSmithyContext(context);\n const [, ns, n, t, i, o] = operationSchema ?? [];\n try {\n const parsed = await config.protocol.deserializeResponse(operation(ns, n, t, i, o), {\n ...config,\n ...context,\n }, response);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n enumerable: false,\n writable: false,\n configurable: false,\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 try {\n error.message += \"\\n \" + hint;\n }\n catch (e) {\n if (!context.logger || context.logger?.constructor?.name === \"NoOpLogger\") {\n console.warn(hint);\n }\n else {\n context.logger?.warn?.(hint);\n }\n }\n if (typeof error.$responseBodyText !== \"undefined\") {\n if (error.$response) {\n error.$response.body = error.$responseBodyText;\n }\n }\n try {\n if (HttpResponse.isInstance(response)) {\n const { headers = {}, statusCode } = response;\n const headerEntries = Object.entries(headers);\n error.$metadata = {\n httpStatusCode: statusCode,\n requestId: findHeader(/^x-[\\w-]+-request-?id$/, headerEntries),\n extendedRequestId: findHeader(/^x-[\\w-]+-id-2$/, headerEntries),\n cfId: findHeader(/^x-[\\w-]+-cf-id$/, headerEntries),\n };\n }\n }\n catch (e) {\n }\n }\n throw error;\n }\n};\nconst findHeader = (pattern, headers) => {\n return (headers.find(([k]) => {\n return k.match(pattern);\n }) || [void 0, void 1])[1];\n};\n","import { getSmithyContext, toEndpointV1 } from \"@smithy/core/transport\";\nimport { operation } from \"../schemas/operation\";\nexport const schemaSerializationMiddleware = (config) => (next, context) => async (args) => {\n const { operationSchema } = getSmithyContext(context);\n const [, ns, n, t, i, o] = operationSchema ?? [];\n const endpoint = context.endpointV2\n ? async () => toEndpointV1(context.endpointV2)\n : config.endpoint;\n const request = await config.protocol.serializeRequest(operation(ns, n, t, i, o), args.input, {\n ...config,\n ...context,\n endpoint,\n });\n return next({\n ...args,\n request,\n });\n};\n","import { schemaDeserializationMiddleware } from \"./schemaDeserializationMiddleware\";\nimport { schemaSerializationMiddleware } from \"./schemaSerializationMiddleware\";\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 getSchemaSerdePlugin(config) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(schemaSerializationMiddleware(config), serializerMiddlewareOption);\n commandStack.add(schemaDeserializationMiddleware(config), deserializerMiddlewareOption);\n config.protocol.setSerdeContext(config);\n },\n };\n}\n","export const traitsCache = [];\nexport function translateTraits(indicator) {\n if (typeof indicator === \"object\") {\n return indicator;\n }\n indicator = indicator | 0;\n if (traitsCache[indicator]) {\n return traitsCache[indicator];\n }\n const traits = {};\n let i = 0;\n for (const trait of [\n \"httpLabel\",\n \"idempotent\",\n \"idempotencyToken\",\n \"sensitive\",\n \"httpPayload\",\n \"httpResponseCode\",\n \"httpQueryParams\",\n ]) {\n if (((indicator >> i++) & 1) === 1) {\n traits[trait] = 1;\n }\n }\n return (traitsCache[indicator] = traits);\n}\n","import { deref } from \"../deref\";\nimport { translateTraits } from \"./translateTraits\";\nconst anno = {\n it: Symbol.for(\"@smithy/nor-struct-it\"),\n ns: Symbol.for(\"@smithy/ns\"),\n};\nexport const simpleSchemaCacheN = [];\nexport const simpleSchemaCacheS = {};\nexport class NormalizedSchema {\n ref;\n memberName;\n static symbol = Symbol.for(\"@smithy/nor\");\n symbol = NormalizedSchema.symbol;\n name;\n schema;\n _isMemberSchema;\n traits;\n memberTraits;\n normalizedTraits;\n constructor(ref, memberName) {\n this.ref = ref;\n this.memberName = memberName;\n const traitStack = [];\n let _ref = ref;\n let schema = ref;\n this._isMemberSchema = false;\n while (isMemberSchema(_ref)) {\n traitStack.push(_ref[1]);\n _ref = _ref[0];\n schema = deref(_ref);\n this._isMemberSchema = true;\n }\n if (traitStack.length > 0) {\n this.memberTraits = {};\n for (let i = traitStack.length - 1; i >= 0; --i) {\n const traitSet = traitStack[i];\n Object.assign(this.memberTraits, translateTraits(traitSet));\n }\n }\n else {\n this.memberTraits = 0;\n }\n if (schema instanceof NormalizedSchema) {\n const computedMemberTraits = this.memberTraits;\n Object.assign(this, schema);\n this.memberTraits = Object.assign({}, computedMemberTraits, schema.getMemberTraits(), this.getMemberTraits());\n this.normalizedTraits = void 0;\n this.memberName = memberName ?? schema.memberName;\n return;\n }\n this.schema = deref(schema);\n if (isStaticSchema(this.schema)) {\n this.name = `${this.schema[1]}#${this.schema[2]}`;\n this.traits = this.schema[3];\n }\n else {\n this.name = this.memberName ?? String(schema);\n this.traits = 0;\n }\n if (this._isMemberSchema && !memberName) {\n throw new Error(`@smithy/core/schema - NormalizedSchema member init ${this.getName(true)} missing member name.`);\n }\n }\n static [Symbol.hasInstance](lhs) {\n const isPrototype = this.prototype.isPrototypeOf(lhs);\n if (!isPrototype && typeof lhs === \"object\" && lhs !== null) {\n const ns = lhs;\n return ns.symbol === this.symbol;\n }\n return isPrototype;\n }\n static of(ref) {\n const keyAble = typeof ref === \"function\" || (typeof ref === \"object\" && ref !== null);\n if (typeof ref === \"number\") {\n if (simpleSchemaCacheN[ref]) {\n return simpleSchemaCacheN[ref];\n }\n }\n else if (typeof ref === \"string\") {\n if (simpleSchemaCacheS[ref]) {\n return simpleSchemaCacheS[ref];\n }\n }\n else if (keyAble) {\n if (ref[anno.ns]) {\n return ref[anno.ns];\n }\n }\n const sc = deref(ref);\n if (sc instanceof NormalizedSchema) {\n return sc;\n }\n if (isMemberSchema(sc)) {\n const [ns, traits] = sc;\n if (ns instanceof NormalizedSchema) {\n Object.assign(ns.getMergedTraits(), translateTraits(traits));\n return ns;\n }\n throw new Error(`@smithy/core/schema - may not init unwrapped member schema=${JSON.stringify(ref, null, 2)}.`);\n }\n const ns = new NormalizedSchema(sc);\n if (keyAble) {\n return (ref[anno.ns] = ns);\n }\n if (typeof sc === \"string\") {\n return (simpleSchemaCacheS[sc] = ns);\n }\n if (typeof sc === \"number\") {\n return (simpleSchemaCacheN[sc] = ns);\n }\n return ns;\n }\n getSchema() {\n const sc = this.schema;\n if (Array.isArray(sc) && sc[0] === 0) {\n return sc[4];\n }\n return sc;\n }\n getName(withNamespace = false) {\n const { name } = this;\n const short = !withNamespace && name && name.includes(\"#\");\n return short ? name.split(\"#\")[1] : name || undefined;\n }\n getMemberName() {\n return this.memberName;\n }\n isMemberSchema() {\n return this._isMemberSchema;\n }\n isListSchema() {\n const sc = this.getSchema();\n return typeof sc === \"number\"\n ? sc >= 64 && sc < 128\n : sc[0] === 1;\n }\n isMapSchema() {\n const sc = this.getSchema();\n return typeof sc === \"number\"\n ? sc >= 128 && sc <= 0b1111_1111\n : sc[0] === 2;\n }\n isStructSchema() {\n const sc = this.getSchema();\n if (typeof sc !== \"object\") {\n return false;\n }\n const id = sc[0];\n return (id === 3 ||\n id === -3 ||\n id === 4);\n }\n isUnionSchema() {\n const sc = this.getSchema();\n if (typeof sc !== \"object\") {\n return false;\n }\n return sc[0] === 4;\n }\n isBlobSchema() {\n const sc = this.getSchema();\n return sc === 21 || sc === 42;\n }\n isTimestampSchema() {\n const sc = this.getSchema();\n return (typeof sc === \"number\" &&\n sc >= 4 &&\n sc <= 7);\n }\n isUnitSchema() {\n return this.getSchema() === \"unit\";\n }\n isDocumentSchema() {\n return this.getSchema() === 15;\n }\n isStringSchema() {\n return this.getSchema() === 0;\n }\n isBooleanSchema() {\n return this.getSchema() === 2;\n }\n isNumericSchema() {\n return this.getSchema() === 1;\n }\n isBigIntegerSchema() {\n return this.getSchema() === 17;\n }\n isBigDecimalSchema() {\n return this.getSchema() === 19;\n }\n isStreaming() {\n const { streaming } = this.getMergedTraits();\n return !!streaming || this.getSchema() === 42;\n }\n isIdempotencyToken() {\n return !!this.getMergedTraits().idempotencyToken;\n }\n getMergedTraits() {\n return (this.normalizedTraits ??\n (this.normalizedTraits = {\n ...this.getOwnTraits(),\n ...this.getMemberTraits(),\n }));\n }\n getMemberTraits() {\n return translateTraits(this.memberTraits);\n }\n getOwnTraits() {\n return translateTraits(this.traits);\n }\n getKeySchema() {\n const [isDoc, isMap] = [this.isDocumentSchema(), this.isMapSchema()];\n if (!isDoc && !isMap) {\n throw new Error(`@smithy/core/schema - cannot get key for non-map: ${this.getName(true)}`);\n }\n const schema = this.getSchema();\n const memberSchema = isDoc\n ? 15\n : schema[4] ?? 0;\n return member([memberSchema, 0], \"key\");\n }\n getValueSchema() {\n const sc = this.getSchema();\n const [isDoc, isMap, isList] = [this.isDocumentSchema(), this.isMapSchema(), this.isListSchema()];\n const memberSchema = typeof sc === \"number\"\n ? 0b0011_1111 & sc\n : sc && typeof sc === \"object\" && (isMap || isList)\n ? sc[3 + sc[0]]\n : isDoc\n ? 15\n : void 0;\n if (memberSchema != null) {\n return member([memberSchema, 0], isMap ? \"value\" : \"member\");\n }\n throw new Error(`@smithy/core/schema - ${this.getName(true)} has no value member.`);\n }\n getMemberSchema(memberName) {\n const struct = this.getSchema();\n if (this.isStructSchema() && struct[4].includes(memberName)) {\n const i = struct[4].indexOf(memberName);\n const memberSchema = struct[5][i];\n return member(isMemberSchema(memberSchema) ? memberSchema : [memberSchema, 0], memberName);\n }\n if (this.isDocumentSchema()) {\n return member([15, 0], memberName);\n }\n throw new Error(`@smithy/core/schema - ${this.getName(true)} has no member=${memberName}.`);\n }\n getMemberSchemas() {\n const buffer = {};\n try {\n for (const [k, v] of this.structIterator()) {\n buffer[k] = v;\n }\n }\n catch (ignored) { }\n return buffer;\n }\n getEventStreamMember() {\n if (this.isStructSchema()) {\n for (const [memberName, memberSchema] of this.structIterator()) {\n if (memberSchema.isStreaming() && memberSchema.isStructSchema()) {\n return memberName;\n }\n }\n }\n return \"\";\n }\n *structIterator() {\n if (this.isUnitSchema()) {\n return;\n }\n if (!this.isStructSchema()) {\n throw new Error(\"@smithy/core/schema - cannot iterate non-struct schema.\");\n }\n const struct = this.getSchema();\n const z = struct[4].length;\n let it = struct[anno.it];\n if (it && z === it.length) {\n yield* it;\n return;\n }\n it = Array(z);\n for (let i = 0; i < z; ++i) {\n const k = struct[4][i];\n const v = member([struct[5][i], 0], k);\n yield (it[i] = [k, v]);\n }\n struct[anno.it] = it;\n }\n}\nfunction member(memberSchema, memberName) {\n if (memberSchema instanceof NormalizedSchema) {\n return Object.assign(memberSchema, {\n memberName,\n _isMemberSchema: true,\n });\n }\n const internalCtorAccess = NormalizedSchema;\n return new internalCtorAccess(memberSchema, memberName);\n}\nconst isMemberSchema = (sc) => Array.isArray(sc) && sc.length === 2;\nexport const isStaticSchema = (sc) => Array.isArray(sc) && sc.length >= 5;\n","export class TypeRegistry {\n namespace;\n schemas;\n exceptions;\n static registries = new Map();\n constructor(namespace, schemas = new Map(), exceptions = new Map()) {\n this.namespace = namespace;\n this.schemas = schemas;\n this.exceptions = exceptions;\n }\n static for(namespace) {\n if (!TypeRegistry.registries.has(namespace)) {\n TypeRegistry.registries.set(namespace, new TypeRegistry(namespace));\n }\n return TypeRegistry.registries.get(namespace);\n }\n copyFrom(other) {\n const { schemas, exceptions } = this;\n for (const [k, v] of other.schemas) {\n if (!schemas.has(k)) {\n schemas.set(k, v);\n }\n }\n for (const [k, v] of other.exceptions) {\n if (!exceptions.has(k)) {\n exceptions.set(k, v);\n }\n }\n }\n register(shapeId, schema) {\n const qualifiedName = this.normalizeShapeId(shapeId);\n for (const r of [this, TypeRegistry.for(qualifiedName.split(\"#\")[0])]) {\n r.schemas.set(qualifiedName, schema);\n }\n }\n getSchema(shapeId) {\n const id = this.normalizeShapeId(shapeId);\n if (!this.schemas.has(id)) {\n if (!shapeId.includes(\"#\")) {\n const suffix = \"#\" + shapeId;\n const candidates = [];\n for (const [shapeId, schema] of this.schemas.entries()) {\n if (shapeId.endsWith(suffix)) {\n candidates.push(schema);\n }\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n }\n throw new Error(`@smithy/core/schema - schema not found for ${id}`);\n }\n return this.schemas.get(id);\n }\n registerError(es, ctor) {\n const $error = es;\n const ns = $error[1];\n for (const r of [this, TypeRegistry.for(ns)]) {\n r.schemas.set(ns + \"#\" + $error[2], $error);\n r.exceptions.set($error, ctor);\n }\n }\n getErrorCtor(es) {\n const $error = es;\n if (this.exceptions.has($error)) {\n return this.exceptions.get($error);\n }\n const registry = TypeRegistry.for($error[1]);\n return registry.exceptions.get($error);\n }\n getBaseException() {\n for (const exceptionKey of this.exceptions.keys()) {\n if (Array.isArray(exceptionKey)) {\n const [, ns, name] = exceptionKey;\n const id = ns + \"#\" + name;\n if (id.startsWith(\"smithy.ts.sdk.synthetic.\") && id.endsWith(\"ServiceException\")) {\n return exceptionKey;\n }\n }\n }\n return undefined;\n }\n find(predicate) {\n for (const schema of this.schemas.values()) {\n if (predicate(schema)) {\n return schema;\n }\n }\n return undefined;\n }\n clear() {\n this.schemas.clear();\n this.exceptions.clear();\n }\n normalizeShapeId(shapeId) {\n if (shapeId.includes(\"#\")) {\n return shapeId;\n }\n return this.namespace + \"#\" + shapeId;\n }\n}\n","import { NormalizedSchema } from \"@smithy/core/schema\";\nconst SENSITIVE_STRING = \"***SensitiveInformation***\";\nexport function schemaLogFilter(schema, data) {\n if (data == null) {\n return data;\n }\n const ns = NormalizedSchema.of(schema);\n if (ns.getMergedTraits().sensitive) {\n return SENSITIVE_STRING;\n }\n if (ns.isListSchema()) {\n const isSensitive = !!ns.getValueSchema().getMergedTraits().sensitive;\n if (isSensitive) {\n return SENSITIVE_STRING;\n }\n }\n else if (ns.isMapSchema()) {\n const isSensitive = !!ns.getKeySchema().getMergedTraits().sensitive || !!ns.getValueSchema().getMergedTraits().sensitive;\n if (isSensitive) {\n return SENSITIVE_STRING;\n }\n }\n else if (ns.isStructSchema() && typeof data === \"object\") {\n const object = data;\n const newObject = {};\n for (const [member, memberNs] of ns.structIterator()) {\n if (object[member] != null) {\n newObject[member] = schemaLogFilter(memberNs, object[member]);\n }\n }\n return newObject;\n }\n return data;\n}\n","import { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { constructStack } from \"../middleware-stack/MiddlewareStack\";\nimport { schemaLogFilter } from \"./schemaLogFilter\";\nexport class Command {\n middlewareStack = constructStack();\n schema;\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 commandInstance: this,\n ...smithyContext,\n },\n ...additionalContext,\n };\n const { requestHandler } = configuration;\n let requestOptions = options ?? {};\n if (smithyContext.eventStream) {\n requestOptions = {\n isEventStream: true,\n ...requestOptions,\n };\n }\n return stack.resolve((request) => requestHandler.handle(request.request, requestOptions), handlerExecutionContext);\n }\n}\nclass ClassBuilder {\n _init = () => { };\n _ep = {};\n _middlewareFn = () => [];\n _commandName = \"\";\n _clientName = \"\";\n _additionalContext = {};\n _smithyContext = {};\n _inputFilterSensitiveLog = undefined;\n _outputFilterSensitiveLog = undefined;\n _serializer = null;\n _deserializer = null;\n _operationSchema;\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 sc(operation) {\n this._operationSchema = operation;\n this._smithyContext.operationSchema = operation;\n return this;\n }\n build() {\n const closure = this;\n let CommandRef;\n return (CommandRef = class extends Command {\n input;\n static getEndpointParameterInstructions() {\n return closure._ep;\n }\n constructor(...[input]) {\n super();\n this.input = input ?? {};\n closure._init(this);\n this.schema = closure._operationSchema;\n }\n resolveMiddleware(stack, configuration, options) {\n const op = closure._operationSchema;\n const input = op?.[4] ?? op?.input;\n const output = op?.[5] ?? op?.output;\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 ?? (op ? schemaLogFilter.bind(null, input) : (_) => _),\n outputFilterSensitiveLog: closure._outputFilterSensitiveLog ?? (op ? schemaLogFilter.bind(null, output) : (_) => _),\n smithyContext: closure._smithyContext,\n additionalContext: closure._additionalContext,\n });\n }\n serialize = closure._serializer;\n deserialize = closure._deserializer;\n });\n }\n}\n","export class ServiceException extends Error {\n $fault;\n $response;\n $retryable;\n $metadata;\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, Object.getPrototypeOf(this).constructor.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n static isInstance(value) {\n if (!value)\n return false;\n const candidate = value;\n return (ServiceException.prototype.isPrototypeOf(candidate) ||\n (Boolean(candidate.$fault) &&\n Boolean(candidate.$metadata) &&\n (candidate.$fault === \"client\" || candidate.$fault === \"server\")));\n }\n static [Symbol.hasInstance](instance) {\n if (!instance)\n return false;\n const candidate = instance;\n if (this === ServiceException) {\n return ServiceException.isInstance(instance);\n }\n if (ServiceException.isInstance(instance)) {\n if (candidate.name && this.name) {\n return this.prototype.isPrototypeOf(instance) || candidate.name === this.name;\n }\n return this.prototype.isPrototypeOf(instance);\n }\n return false;\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","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 };\nconst knownAlgorithms = Object.values(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 for (const [id, ChecksumCtor] of Object.entries(runtimeConfig.checksumAlgorithms ?? {})) {\n checksumAlgorithms.push({\n algorithmId: () => id,\n checksumConstructor: () => ChecksumCtor,\n });\n }\n return {\n addChecksumAlgorithm(algo) {\n runtimeConfig.checksumAlgorithms = runtimeConfig.checksumAlgorithms ?? {};\n const id = algo.algorithmId();\n const ctor = algo.checksumConstructor();\n if (knownAlgorithms.includes(id)) {\n runtimeConfig.checksumAlgorithms[id.toUpperCase()] = ctor;\n }\n else {\n runtimeConfig.checksumAlgorithms[id] = ctor;\n }\n checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return checksumAlgorithms;\n },\n };\n};\nexport const resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n const id = checksumAlgorithm.algorithmId();\n if (knownAlgorithms.includes(id)) {\n runtimeConfig[id] = checksumAlgorithm.checksumConstructor();\n }\n });\n return runtimeConfig;\n};\n","export const getRetryConfiguration = (runtimeConfig) => {\n return {\n setRetryStrategy(retryStrategy) {\n runtimeConfig.retryStrategy = retryStrategy;\n },\n retryStrategy() {\n return runtimeConfig.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 Object.assign(getChecksumConfiguration(runtimeConfig), getRetryConfiguration(runtimeConfig));\n};\nexport const getDefaultClientConfiguration = getDefaultExtensionConfiguration;\nexport const resolveDefaultRuntimeConfig = (config) => {\n return Object.assign(resolveChecksumRuntimeConfig(config), resolveRetryRuntimeConfig(config));\n};\n","export class NoOpLogger {\n trace() { }\n debug() { }\n info() { }\n warn() { }\n error() { }\n}\n","const chars = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`;\nexport const alphabetByEncoding = Object.entries(chars).reduce((acc, [i, c]) => {\n acc[c] = Number(i);\n return acc;\n}, {});\nexport const alphabetByValue = chars.split(\"\");\nexport const bitsPerLetter = 6;\nexport const bitsPerByte = 8;\nexport const maxLetterValue = 0b111111;\n","import { alphabetByEncoding, bitsPerByte, bitsPerLetter } from \"./constants-for-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 \"../util-utf8/fromUtf8.browser\";\nimport { alphabetByValue, bitsPerByte, bitsPerLetter, maxLetterValue } from \"./constants-for-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","export function bindUint8ArrayBlobAdapter(toUtf8, fromUtf8, toBase64, fromBase64) {\n return class Uint8ArrayBlobAdapter extends Uint8Array {\n static fromString(source, encoding = \"utf-8\") {\n if (typeof source === \"string\") {\n if (encoding === \"base64\") {\n return Uint8ArrayBlobAdapter.mutate(fromBase64(source));\n }\n return Uint8ArrayBlobAdapter.mutate(fromUtf8(source));\n }\n throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`);\n }\n static mutate(source) {\n Object.setPrototypeOf(source, Uint8ArrayBlobAdapter.prototype);\n return source;\n }\n transformToString(encoding = \"utf-8\") {\n if (encoding === \"base64\") {\n return toBase64(this);\n }\n return toUtf8(this);\n }\n };\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","const decimalToHex = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, \"0\"));\nexport function bindV4(getRandomValues) {\n if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n return () => crypto.randomUUID();\n }\n return () => {\n const rnds = new Uint8Array(16);\n getRandomValues(rnds);\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n return (decimalToHex[rnds[0]] +\n decimalToHex[rnds[1]] +\n decimalToHex[rnds[2]] +\n decimalToHex[rnds[3]] +\n \"-\" +\n decimalToHex[rnds[4]] +\n decimalToHex[rnds[5]] +\n \"-\" +\n decimalToHex[rnds[6]] +\n decimalToHex[rnds[7]] +\n \"-\" +\n decimalToHex[rnds[8]] +\n decimalToHex[rnds[9]] +\n \"-\" +\n decimalToHex[rnds[10]] +\n decimalToHex[rnds[11]] +\n decimalToHex[rnds[12]] +\n decimalToHex[rnds[13]] +\n decimalToHex[rnds[14]] +\n decimalToHex[rnds[15]]);\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 = [];\n for (const k in asObject) {\n if (asObject[k] != null) {\n setKeys.push(k);\n }\n }\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 if (typeof value === \"object\" && value.tag === 1) {\n valueAsDouble = value.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 const LazyJsonString = function LazyJsonString(val) {\n const str = Object.assign(new String(val), {\n deserializeJSON() {\n return JSON.parse(String(val));\n },\n toString() {\n return String(val);\n },\n toJSON() {\n return String(val);\n },\n });\n return str;\n};\nLazyJsonString.from = (object) => {\n if (object && typeof object === \"object\" && (object instanceof LazyJsonString || \"deserializeJSON\" in object)) {\n return object;\n }\n else if (typeof object === \"string\" || Object.getPrototypeOf(object) === String.prototype) {\n return LazyJsonString(String(object));\n }\n return LazyJsonString(JSON.stringify(object));\n};\nLazyJsonString.fromObject = LazyJsonString.from;\n","const format = /^-?\\d*(\\.\\d+)?$/;\nexport class NumericValue {\n string;\n type;\n constructor(string, type) {\n this.string = string;\n this.type = type;\n if (!format.test(string)) {\n throw new Error(`@smithy/core/serde - NumericValue must only contain [0-9], at most one decimal point \".\", and an optional negation prefix \"-\".`);\n }\n }\n toString() {\n return this.string;\n }\n static [Symbol.hasInstance](object) {\n if (!object || typeof object !== \"object\") {\n return false;\n }\n const _nv = object;\n return NumericValue.prototype.isPrototypeOf(object) || (_nv.type === \"bigDecimal\" && format.test(_nv.string));\n }\n}\nexport function nv(input) {\n return new NumericValue(String(input), \"bigDecimal\");\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","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","import { fromUtf8 } from \"./fromUtf8.browser\";\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 isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n","export const getEndpointFromConfig = async (serviceId) => undefined;\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, isClientContextParam = false) => {\n const configProvider = async () => {\n let configValue;\n if (isClientContextParam) {\n const clientContextParams = config.clientContextParams;\n const nestedValue = clientContextParams?.[configKey];\n configValue = nestedValue ?? config[configKey] ?? config[canonicalEndpointParamKey];\n }\n else {\n configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n }\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 === \"accountId\" || canonicalEndpointParamKey === \"AccountId\") {\n return async () => {\n const credentials = typeof config.credentials === \"function\" ? await config.credentials() : config.credentials;\n const configValue = credentials?.accountId ?? credentials?.AccountId;\n return configValue;\n };\n }\n if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n return async () => {\n if (config.isCustomEndpoint === false) {\n return undefined;\n }\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","import { resolveParamsForS3 } from \"../service-customizations\";\nimport { createConfigValueProvider } from \"./createConfigValueProvider\";\nimport { toEndpointV1 } from \"./toEndpointV1\";\nexport function bindGetEndpointFromInstructions(getEndpointFromConfig) {\n return async (commandInput, instructionsSupplier, clientConfig, context) => {\n if (!clientConfig.isCustomEndpoint) {\n let endpointFromConfig;\n if (clientConfig.serviceConfiguredEndpoint) {\n endpointFromConfig = await clientConfig.serviceConfiguredEndpoint();\n }\n else {\n endpointFromConfig = await getEndpointFromConfig(clientConfig.serviceId);\n }\n if (endpointFromConfig) {\n clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig));\n clientConfig.isCustomEndpoint = true;\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 if (clientConfig.isCustomEndpoint && clientConfig.endpoint) {\n const customEndpoint = await clientConfig.endpoint();\n if (customEndpoint?.headers) {\n endpoint.headers ??= {};\n for (const [name, value] of Object.entries(customEndpoint.headers)) {\n endpoint.headers[name] = Array.isArray(value) ? value : [value];\n }\n }\n }\n return endpoint;\n };\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, instruction.type !== \"builtInParams\")();\n break;\n case \"operationContextParams\":\n endpointParams[name] = instruction.get(commandInput);\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/core/transport\";\nimport { bindGetEndpointFromInstructions } from \"./adaptors/getEndpointFromInstructions\";\nfunction setFeature(context, feature, value) {\n if (!context.__smithy_context) {\n context.__smithy_context = { features: {} };\n }\n else if (!context.__smithy_context.features) {\n context.__smithy_context.features = {};\n }\n context.__smithy_context.features[feature] = value;\n}\nexport function bindEndpointMiddleware(getEndpointFromConfig) {\n const getEndpointFromInstructions = bindGetEndpointFromInstructions(getEndpointFromConfig);\n return ({ config, instructions, }) => {\n return (next, context) => async (args) => {\n if (config.isCustomEndpoint) {\n setFeature(context, \"ENDPOINT_OVERRIDE\", \"N\");\n }\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}\n","import { bindEndpointMiddleware } from \"./endpointMiddleware\";\nconst serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\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 function bindGetEndpointPlugin(getEndpointFromConfig) {\n const endpointMiddleware = bindEndpointMiddleware(getEndpointFromConfig);\n return (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(endpointMiddleware({\n config,\n instructions,\n }), endpointMiddlewareOptions);\n },\n });\n}\n","import { normalizeProvider } from \"@smithy/core/transport\";\nimport { toEndpointV1 } from \"./adaptors/toEndpointV1\";\nexport function bindResolveEndpointConfig(getEndpointFromConfig) {\n return (input) => {\n const tls = input.tls ?? true;\n const { endpoint, useDualstackEndpoint, useFipsEndpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await normalizeProvider(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n const resolvedConfig = Object.assign(input, {\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: normalizeProvider(useDualstackEndpoint ?? false),\n useFipsEndpoint: normalizeProvider(useFipsEndpoint ?? false),\n });\n let configuredEndpointPromise = undefined;\n resolvedConfig.serviceConfiguredEndpoint = async () => {\n if (input.serviceId && !configuredEndpointPromise) {\n configuredEndpointPromise = getEndpointFromConfig(input.serviceId);\n }\n return configuredEndpointPromise;\n };\n return resolvedConfig;\n };\n}\n","export class BinaryDecisionDiagram {\n nodes;\n root;\n conditions;\n results;\n constructor(bdd, root, conditions, results) {\n this.nodes = bdd;\n this.root = root;\n this.conditions = conditions;\n this.results = results;\n }\n static from(bdd, root, conditions, results) {\n return new BinaryDecisionDiagram(bdd, root, conditions, results);\n }\n}\n","export class EndpointCache {\n capacity;\n data = new Map();\n parameters = [];\n constructor({ size, params }) {\n this.capacity = size ?? 50;\n if (params) {\n this.parameters = params;\n }\n }\n get(endpointParams, resolver) {\n const key = this.hash(endpointParams);\n if (key === false) {\n return resolver();\n }\n if (!this.data.has(key)) {\n if (this.data.size > this.capacity + 10) {\n const keys = this.data.keys();\n let i = 0;\n while (true) {\n const { value, done } = keys.next();\n this.data.delete(value);\n if (done || ++i > 10) {\n break;\n }\n }\n }\n this.data.set(key, resolver());\n }\n return this.data.get(key);\n }\n size() {\n return this.data.size;\n }\n hash(endpointParams) {\n let buffer = \"\";\n const { parameters } = this;\n if (parameters.length === 0) {\n return false;\n }\n for (const param of parameters) {\n const val = String(endpointParams[param] ?? \"\");\n if (val.includes(\"|;\")) {\n return false;\n }\n buffer += val + \"|;\";\n }\n return buffer;\n }\n}\n","export class EndpointError extends Error {\n constructor(message) {\n super(message);\n this.name = \"EndpointError\";\n }\n}\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 const customEndpointFunctions = {};\n","export const booleanEquals = (value1, value2) => value1 === value2;\n","export function coalesce(...args) {\n for (const arg of args) {\n if (arg != null) {\n return arg;\n }\n }\n return undefined;\n}\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 const i = parseInt(index);\n return acc[i < 0 ? acc.length + i : i];\n }\n return acc[index];\n}, value);\n","export const isSet = (value) => value != null;\n","export function ite(condition, trueValue, falseValue) {\n return condition ? trueValue : falseValue;\n}\n","export const not = (value) => !value;\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","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 function split(value, delimiter, limit) {\n if (limit === 1) {\n return [value];\n }\n if (value === \"\") {\n return [\"\"];\n }\n const parts = value.split(delimiter);\n if (limit === 0) {\n return parts;\n }\n return parts.slice(0, limit - 1).concat(parts.slice(1).join(delimiter));\n}\n","export const stringEquals = (value1, value2) => value1 === value2;\n","export const substring = (input, start, stop, reverse) => {\n if (input == null || start >= stop || input.length < stop || /[^\\u0000-\\u007f]/.test(input)) {\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, coalesce, getAttr, isSet, isValidHostLabel, ite, not, parseURL, split, stringEquals, substring, uriEncode, } from \"../lib\";\nexport const endpointFunctions = {\n booleanEquals,\n coalesce,\n getAttr,\n isSet,\n isValidHostLabel,\n ite,\n not,\n parseURL,\n split,\n stringEquals,\n substring,\n uriEncode,\n};\n","import { getAttr } from \"../lib\";\nexport const evaluateTemplate = (template, options) => {\n const evaluatedTemplateArr = [];\n const { referenceRecord, endpointParams } = options;\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((referenceRecord[refName] ?? endpointParams[refName]), attrName));\n }\n else {\n evaluatedTemplateArr.push((referenceRecord[parameterName] ?? endpointParams[parameterName]));\n }\n currentIndex = closingBraceIndex + 1;\n }\n return evaluatedTemplateArr.join(\"\");\n};\n","export const getReferenceValue = ({ ref }, options) => {\n return options.referenceRecord[ref] ?? options.endpointParams[ref];\n};\n","import { EndpointError, } from \"../types\";\nimport { customEndpointFunctions } from \"./customEndpointFunctions\";\nimport { endpointFunctions } from \"./endpointFunctions\";\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 group.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};\nexport const callFunction = ({ fn, argv }, options) => {\n const evaluatedArgs = Array(argv.length);\n for (let i = 0; i < evaluatedArgs.length; ++i) {\n const arg = argv[i];\n if (typeof arg === \"boolean\" || typeof arg === \"number\") {\n evaluatedArgs[i] = arg;\n }\n else {\n evaluatedArgs[i] = group.evaluateExpression(arg, \"arg\", options);\n }\n }\n const namespaceSeparatorIndex = fn.indexOf(\".\");\n if (namespaceSeparatorIndex !== -1) {\n const namespaceFunctions = customEndpointFunctions[fn.slice(0, namespaceSeparatorIndex)];\n const customFunction = namespaceFunctions?.[fn.slice(namespaceSeparatorIndex + 1)];\n if (typeof customFunction === \"function\") {\n return customFunction(...evaluatedArgs);\n }\n }\n const callable = endpointFunctions[fn];\n if (typeof callable === \"function\") {\n return callable(...evaluatedArgs);\n }\n throw new Error(`function ${fn} not loaded in endpointFunctions.`);\n};\nexport const group = {\n evaluateExpression,\n callFunction,\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nexport const evaluateCondition = (condition, options) => {\n const { assign } = condition;\n if (assign && assign in options.referenceRecord) {\n throw new EndpointError(`'${assign}' is already defined in Reference Record.`);\n }\n const value = callFunction(condition, options);\n options.logger?.debug?.(`${debugId} evaluateCondition: ${toDebugString(condition)} = ${toDebugString(value)}`);\n const result = value === \"\" ? true : !!value;\n if (assign != null) {\n return { result, toAssign: { name: assign, value } };\n }\n return { result };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointHeaders = (headers, options) => Object.entries(headers ?? {}).reduce((acc, [headerKey, headerVal]) => {\n acc[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 return acc;\n}, {});\n","import { EndpointError } from \"../types\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nexport const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => {\n acc[propertyKey] = group.getEndpointProperty(propertyVal, options);\n return acc;\n}, {});\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 group.getEndpointProperties(property, options);\n case \"boolean\":\n return property;\n default:\n throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n }\n};\nexport const group = {\n getEndpointProperty,\n getEndpointProperties,\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 { EndpointError } from \"./types\";\nimport { evaluateCondition } from \"./utils/evaluateCondition\";\nimport { evaluateExpression } from \"./utils/evaluateExpression\";\nimport { getEndpointHeaders } from \"./utils/getEndpointHeaders\";\nimport { getEndpointProperties } from \"./utils/getEndpointProperties\";\nimport { getEndpointUrl } from \"./utils/getEndpointUrl\";\nconst RESULT = 100_000_000;\nexport const decideEndpoint = (bdd, options) => {\n const { nodes, root, results, conditions } = bdd;\n let ref = root;\n const referenceRecord = {};\n const closure = {\n referenceRecord,\n endpointParams: options.endpointParams,\n logger: options.logger,\n };\n while (ref !== 1 && ref !== -1 && ref < RESULT) {\n const node_i = 3 * (Math.abs(ref) - 1);\n const [condition_i, highRef, lowRef] = [nodes[node_i], nodes[node_i + 1], nodes[node_i + 2]];\n const [fn, argv, assign] = conditions[condition_i];\n const evaluation = evaluateCondition({ fn, assign, argv }, closure);\n if (evaluation.toAssign) {\n const { name, value } = evaluation.toAssign;\n referenceRecord[name] = value;\n }\n ref = ref >= 0 === evaluation.result ? highRef : lowRef;\n }\n if (ref >= RESULT) {\n const result = results[ref - RESULT];\n if (result[0] === -1) {\n const [, errorExpression] = result;\n throw new EndpointError(evaluateExpression(errorExpression, \"Error\", closure));\n }\n const [url, properties, headers] = result;\n return {\n url: getEndpointUrl(url, closure),\n properties: getEndpointProperties(properties, closure),\n headers: getEndpointHeaders(headers ?? {}, closure),\n };\n }\n throw new EndpointError(`No matching endpoint.`);\n};\n","import { getEndpointFromConfig } from \"./middleware-endpoint/adaptors/getEndpointFromConfig.browser\";\nimport { bindGetEndpointFromInstructions } from \"./middleware-endpoint/adaptors/getEndpointFromInstructions\";\nimport { bindEndpointMiddleware } from \"./middleware-endpoint/endpointMiddleware\";\nimport { bindGetEndpointPlugin } from \"./middleware-endpoint/getEndpointPlugin\";\nimport { bindResolveEndpointConfig } from \"./middleware-endpoint/resolveEndpointConfig\";\nexport { toEndpointV1 } from \"@smithy/core/transport\";\nexport { BinaryDecisionDiagram } from \"./util-endpoints/bdd/BinaryDecisionDiagram\";\nexport { EndpointCache } from \"./util-endpoints/cache/EndpointCache\";\nexport { decideEndpoint } from \"./util-endpoints/decideEndpoint\";\nexport { isIpAddress } from \"./util-endpoints/lib/isIpAddress\";\nexport { isValidHostLabel } from \"@smithy/core/transport\";\nexport { customEndpointFunctions } from \"./util-endpoints/utils/customEndpointFunctions\";\nexport { resolveEndpoint } from \"./util-endpoints/resolveEndpoint\";\nexport * from \"./util-endpoints/types\";\nexport const getEndpointFromInstructions = bindGetEndpointFromInstructions(getEndpointFromConfig);\nexport const resolveEndpointConfig = bindResolveEndpointConfig(getEndpointFromConfig);\nexport const endpointMiddleware = bindEndpointMiddleware(getEndpointFromConfig);\nexport const getEndpointPlugin = bindGetEndpointPlugin(getEndpointFromConfig);\nexport { resolveParams, } from \"./middleware-endpoint/adaptors/getEndpointFromInstructions\";\nexport { toEndpointV1 as middlewareEndpointToEndpointV1 } from \"./middleware-endpoint/adaptors/toEndpointV1\";\nexport { endpointMiddlewareOptions } from \"./middleware-endpoint/getEndpointPlugin\";\nexport { resolveEndpointRequiredConfig } from \"./middleware-endpoint/resolveEndpointRequiredConfig\";\n","import { fromBase64 } from \"./util-base64/fromBase64.browser\";\nimport { toBase64 } from \"./util-base64/toBase64.browser\";\nimport { bindUint8ArrayBlobAdapter } from \"./util-stream/blob/Uint8ArrayBlobAdapter\";\nimport { fromUtf8 } from \"./util-utf8/fromUtf8.browser\";\nimport { toUtf8 } from \"./util-utf8/toUtf8.browser\";\nimport { bindV4 } from \"./uuid/v4\";\nconst no = Symbol.for(\"node-only\");\nexport { copyDocumentWithTransform } from \"./copyDocumentWithTransform\";\nexport { dateToUtcString, parseRfc3339DateTime, parseRfc3339DateTimeWithOffset, parseRfc7231DateTime, parseEpochTimestamp, } from \"./date-utils\";\nexport { LazyJsonString } from \"./lazy-json\";\nexport { logger, parseBoolean, expectBoolean, expectNumber, expectFloat32, expectInt, expectInt32, expectShort, expectByte, expectNonNull, expectObject, expectString, expectUnion, expectLong, strictParseDouble, strictParseFloat, strictParseFloat32, strictParseLong, strictParseInt, strictParseInt32, strictParseShort, strictParseByte, limitedParseDouble, handleFloat, limitedParseFloat, limitedParseFloat32, } from \"./parse-utils\";\nexport { quoteHeader } from \"./quote-header\";\nexport { _parseEpochTimestamp, _parseRfc3339DateTimeWithOffset, _parseRfc7231DateTime, } from \"./schema-serde-lib/schema-date-utils\";\nexport { splitEvery } from \"./split-every\";\nexport { splitHeader } from \"./split-header\";\nexport { NumericValue, nv } from \"./value/NumericValue\";\nexport { fromHex, toHex } from \"./util-hex-encoding/hex-encoding\";\nexport { toBase64, fromBase64 };\nexport { calculateBodyLength } from \"./util-body-length/calculateBodyLength.browser\";\nexport { toUint8Array } from \"./util-utf8/toUint8Array.browser\";\nexport { toUtf8, fromUtf8 };\nexport const fromArrayBuffer = no;\nexport const fromString = no;\nexport { isArrayBuffer } from \"./is-array-buffer/is-array-buffer\";\nexport { deserializerMiddleware } from \"./middleware-serde/deserializerMiddleware\";\nexport { deserializerMiddlewareOption, serializerMiddlewareOption, getSerdePlugin, } from \"./middleware-serde/serdePlugin\";\nexport { serializerMiddleware } from \"./middleware-serde/serializerMiddleware\";\nexport const Hash = no;\nexport class Uint8ArrayBlobAdapter extends bindUint8ArrayBlobAdapter(toUtf8, fromUtf8, toBase64, fromBase64) {\n}\nexport { ChecksumStream } from \"./util-stream/checksum/ChecksumStream.browser\";\nexport { createChecksumStream } from \"./util-stream/checksum/createChecksumStream.browser\";\nexport { createBufferedReadable } from \"./util-stream/createBufferedReadable.browser\";\nexport { getAwsChunkedEncodingStream } from \"./util-stream/getAwsChunkedEncodingStream.browser\";\nexport { headStream } from \"./util-stream/headStream.browser\";\nexport { sdkStreamMixin } from \"./util-stream/sdk-stream-mixin.browser\";\nexport { splitStream } from \"./util-stream/splitStream.browser\";\nexport { isReadableStream, isBlob } from \"./util-stream/stream-type-check\";\nconst _getRandomValues = (array) => crypto.getRandomValues(array);\nexport const v4 = bindV4(_getRandomValues);\nexport const generateIdempotencyToken = v4;\n","import { Uint8ArrayBlobAdapter } from \"@smithy/core/serde\";\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","export class SerdeContext {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n","import { NormalizedSchema, TypeRegistry, translateTraits } from \"@smithy/core/schema\";\nimport { HttpRequest, HttpResponse } from \"@smithy/core/transport\";\nimport { SerdeContext } from \"./SerdeContext\";\nexport class HttpProtocol extends SerdeContext {\n options;\n compositeErrorRegistry;\n constructor(options) {\n super();\n this.options = options;\n this.compositeErrorRegistry = TypeRegistry.for(options.defaultNamespace);\n for (const etr of options.errorTypeRegistries ?? []) {\n this.compositeErrorRegistry.copyFrom(etr);\n }\n }\n getRequestType() {\n return HttpRequest;\n }\n getResponseType() {\n return HttpResponse;\n }\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n this.serializer.setSerdeContext(serdeContext);\n this.deserializer.setSerdeContext(serdeContext);\n if (this.getPayloadCodec()) {\n this.getPayloadCodec().setSerdeContext(serdeContext);\n }\n }\n updateServiceEndpoint(request, endpoint) {\n if (\"url\" in endpoint) {\n request.protocol = endpoint.url.protocol;\n request.hostname = endpoint.url.hostname;\n request.port = endpoint.url.port ? Number(endpoint.url.port) : undefined;\n request.path = endpoint.url.pathname;\n request.fragment = endpoint.url.hash || void 0;\n request.username = endpoint.url.username || void 0;\n request.password = endpoint.url.password || void 0;\n if (!request.query) {\n request.query = {};\n }\n for (const [k, v] of endpoint.url.searchParams.entries()) {\n request.query[k] = v;\n }\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n request.headers[name] = endpoint.headers[name].join(\", \");\n }\n }\n return request;\n }\n else {\n request.protocol = endpoint.protocol;\n request.hostname = endpoint.hostname;\n request.port = endpoint.port ? Number(endpoint.port) : undefined;\n request.path = endpoint.path;\n request.query = {\n ...endpoint.query,\n };\n if (endpoint.headers) {\n for (const name in endpoint.headers) {\n request.headers[name] = endpoint.headers[name];\n }\n }\n return request;\n }\n }\n setHostPrefix(request, operationSchema, input) {\n if (this.serdeContext?.disableHostPrefix) {\n return;\n }\n const inputNs = NormalizedSchema.of(operationSchema.input);\n const opTraits = translateTraits(operationSchema.traits ?? {});\n if (opTraits.endpoint) {\n let hostPrefix = opTraits.endpoint?.[0];\n if (typeof hostPrefix === \"string\") {\n for (const [name, member] of inputNs.structIterator()) {\n if (!member.getMergedTraits().hostLabel) {\n continue;\n }\n const replacement = input[name];\n if (typeof replacement !== \"string\") {\n throw new Error(`@smithy/core/schema - ${name} in input must be a string as hostLabel.`);\n }\n hostPrefix = hostPrefix.replace(`{${name}}`, replacement);\n }\n request.hostname = hostPrefix + request.hostname;\n }\n }\n }\n deserializeMetadata(output) {\n return {\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 }\n async serializeEventStream({ eventStream, requestSchema, initialRequest, }) {\n const eventStreamSerde = await this.loadEventStreamCapability();\n return eventStreamSerde.serializeEventStream({\n eventStream,\n requestSchema,\n initialRequest,\n });\n }\n async deserializeEventStream({ response, responseSchema, initialResponseContainer, }) {\n const eventStreamSerde = await this.loadEventStreamCapability();\n return eventStreamSerde.deserializeEventStream({\n response,\n responseSchema,\n initialResponseContainer,\n });\n }\n async loadEventStreamCapability() {\n const { EventStreamSerde, eventStreamSerdeProvider } = await import(\"@smithy/core/event-streams\");\n const marshaller = this.resolveEventStreamMarshaller(eventStreamSerdeProvider);\n return new EventStreamSerde({\n marshaller,\n serializer: this.serializer,\n deserializer: this.deserializer,\n serdeContext: this.serdeContext,\n defaultContentType: this.getDefaultContentType(),\n });\n }\n resolveEventStreamMarshaller(importedProvider) {\n const context = this.serdeContext;\n if (context.eventStreamMarshaller) {\n return context.eventStreamMarshaller;\n }\n return importedProvider(this.serdeContext);\n }\n getDefaultContentType() {\n throw new Error(`@smithy/core/protocols - ${this.constructor.name} getDefaultContentType() implementation missing.`);\n }\n async deserializeHttpMessage(schema, context, response, arg4, arg5) {\n void schema;\n void context;\n void response;\n void arg4;\n void arg5;\n return [];\n }\n getEventStreamMarshaller() {\n const context = this.serdeContext;\n if (!context.eventStreamMarshaller) {\n throw new Error(\"@smithy/core - HttpProtocol: eventStreamMarshaller missing in serdeContext.\");\n }\n return context.eventStreamMarshaller;\n }\n}\n","export function determineTimestampFormat(ns, settings) {\n if (settings.timestampFormat.useTrait) {\n if (ns.isTimestampSchema() &&\n (ns.getSchema() === 5 ||\n ns.getSchema() === 6 ||\n ns.getSchema() === 7)) {\n return ns.getSchema();\n }\n }\n const { httpLabel, httpPrefixHeaders, httpHeader, httpQuery } = ns.getMergedTraits();\n const bindingFormat = settings.httpBindings\n ? typeof httpPrefixHeaders === \"string\" || Boolean(httpHeader)\n ? 6\n : Boolean(httpQuery) || Boolean(httpLabel)\n ? 5\n : undefined\n : undefined;\n return bindingFormat ?? settings.timestampFormat.default;\n}\n","export const getHttpHandlerExtensionConfiguration = (runtimeConfig) => {\n return {\n setHttpHandler(handler) {\n runtimeConfig.httpHandler = handler;\n },\n httpHandler() {\n return runtimeConfig.httpHandler;\n },\n updateHttpClientConfig(key, value) {\n runtimeConfig.httpHandler?.updateHttpClientConfig(key, value);\n },\n httpHandlerConfigs() {\n return runtimeConfig.httpHandler.httpHandlerConfigs();\n },\n };\n};\nexport const resolveHttpHandlerRuntimeConfig = (httpHandlerExtensionConfiguration) => {\n return {\n httpHandler: httpHandlerExtensionConfiguration.httpHandler(),\n };\n};\n","import { HttpRequest } from \"@smithy/core/transport\";\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 escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","import { escapeUri } from \"../util-uri-escape/escape-uri\";\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 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\"];\nexport const NODEJS_NETWORK_ERROR_CODES = [\"EHOSTUNREACH\", \"ENETUNREACH\", \"ENOTFOUND\", \"EAI_AGAIN\"];\n","import { CLOCK_SKEW_ERROR_CODES, NODEJS_NETWORK_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 isBrowserNetworkError = (error) => {\n const errorMessages = new Set([\n \"Failed to fetch\",\n \"NetworkError when attempting to fetch resource\",\n \"The Internet connection appears to be offline\",\n \"Load failed\",\n \"Network request failed\",\n ]);\n const isValid = error && error instanceof TypeError;\n if (!isValid) {\n return false;\n }\n return errorMessages.has(error.message);\n};\nexport const isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n error.$retryable?.throttling == true;\nexport const isTransientError = (error, depth = 0) => isRetryableByTrait(error) ||\n isClockSkewCorrectedError(error) ||\n (error.name === \"InvalidSignatureException\" && error.message?.includes(\"Signature expired\")) ||\n TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n NODEJS_NETWORK_ERROR_CODES.includes(error?.code || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0) ||\n isBrowserNetworkError(error) ||\n isNodeJsHttp2TransientError(error) ||\n (error.cause !== undefined && depth <= 10 && isTransientError(error.cause, depth + 1));\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};\nexport function isNodeJsHttp2TransientError(error) {\n return error.code === \"ERR_HTTP2_STREAM_ERROR\" && error.message.includes(\"NGHTTP2_REFUSED_STREAM\");\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 { HttpResponse } from \"@smithy/core/protocols\";\nimport { parseRfc7231DateTime } from \"@smithy/core/serde\";\nexport function parseRetryAfterHeader(response, logger) {\n if (!HttpResponse.isInstance(response)) {\n return;\n }\n for (const header of Object.keys(response.headers)) {\n const h = header.toLowerCase();\n if (h === \"retry-after\") {\n const retryAfter = response.headers[header];\n let retryAfterSeconds = NaN;\n if (retryAfter.endsWith(\"GMT\")) {\n try {\n const date = parseRfc7231DateTime(retryAfter);\n retryAfterSeconds = (date.getTime() - Date.now()) / 1000;\n }\n catch (e) {\n logger?.trace?.(\"Failed to parse retry-after header\");\n logger?.trace?.(e);\n }\n }\n else if (retryAfter.match(/ GMT, ((\\d+)|(\\d+\\.\\d+))$/)) {\n retryAfterSeconds = Number(retryAfter.match(/ GMT, ([\\d.]+)$/)?.[1]);\n }\n else if (retryAfter.match(/^((\\d+)|(\\d+\\.\\d+))$/)) {\n retryAfterSeconds = Number(retryAfter);\n }\n else if (Date.parse(retryAfter) >= Date.now()) {\n retryAfterSeconds = (Date.parse(retryAfter) - Date.now()) / 1000;\n }\n if (isNaN(retryAfterSeconds)) {\n return;\n }\n return new Date(Date.now() + retryAfterSeconds * 1000);\n }\n else if (h === \"x-amz-retry-after\") {\n const v = response.headers[header];\n const backoffMilliseconds = Number(v);\n if (isNaN(backoffMilliseconds)) {\n logger?.trace?.(`Failed to parse x-amz-retry-after=${v}`);\n return;\n }\n return new Date(Date.now() + backoffMilliseconds);\n }\n }\n}\nexport function getRetryAfterHint(response, logger) {\n return parseRetryAfterHeader(response, logger);\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 { NoOpLogger } from \"@smithy/core/client\";\nimport { HttpRequest } from \"@smithy/core/protocols\";\nimport { v4 } from \"@smithy/core/serde\";\nimport { isServerError, isThrottlingError, isTransientError, } from \"../service-error-classification/service-error-classification\";\nimport { INVOCATION_ID_HEADER, REQUEST_HEADER } from \"../util-retry/constants\";\nimport { parseRetryAfterHeader } from \"./parseRetryAfterHeader\";\nimport { asSdkError } from \"./util\";\nexport function bindRetryMiddleware(isStreamingPayload) {\n return (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\"] ?? \"\") + (context.__retryLongPoll ? \":longpoll\" : \"\"));\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, options.logger);\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 += (retryToken?.$retryLog?.acquisitionDelay ?? 0) + delay;\n if (delay > 0) {\n await cooldown(delay);\n }\n }\n }\n }\n else {\n retryStrategy = retryStrategy;\n if (retryStrategy?.mode) {\n context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n }\n return retryStrategy.retry(next, args);\n }\n };\n}\nconst cooldown = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" &&\n typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" &&\n typeof retryStrategy.recordSuccess !== \"undefined\";\nconst getRetryErrorInfo = (error, logger) => {\n const errorInfo = {\n error,\n errorType: getRetryErrorType(error),\n };\n const retryAfterHint = parseRetryAfterHeader(error.$response, logger);\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 function bindGetRetryPlugin(isStreamingPayload) {\n const retryMiddleware = bindRetryMiddleware(isStreamingPayload);\n return (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n });\n}\n","import { isThrottlingError } from \"../service-error-classification/service-error-classification\";\nexport class DefaultRateLimiter {\n static setTimeoutFn = (fn, delay) => setTimeout(fn, delay);\n beta;\n minCapacity;\n minFillRate;\n scaleConstant;\n smooth;\n enabled = false;\n availableTokens = 0;\n lastMaxRate = 0;\n measuredTxRate = 0;\n requestCount = 0;\n fillRate;\n lastThrottleTime;\n lastTimestamp = 0;\n lastTxRateBucket;\n maxCapacity;\n timeWindow = 0;\n constructor(options) {\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 this.lastThrottleTime = this.getCurrentTimeInSeconds();\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n async getSendToken() {\n return this.acquireTokenBucket(1);\n }\n updateClientSendingRate(response) {\n let calculatedRate;\n this.updateMeasuredRate();\n const retryErrorInfo = response;\n const isThrottling = retryErrorInfo?.errorType === \"THROTTLING\" || isThrottlingError(retryErrorInfo?.error ?? response);\n if (isThrottling) {\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 getCurrentTimeInSeconds() {\n return Date.now() / 1000;\n }\n async acquireTokenBucket(amount) {\n if (!this.enabled) {\n return;\n }\n this.refillTokenBucket();\n while (amount > this.availableTokens) {\n const delay = ((amount - this.availableTokens) / this.fillRate) * 1000;\n await new Promise((resolve) => DefaultRateLimiter.setTimeoutFn(resolve, delay));\n this.refillTokenBucket();\n }\n this.availableTokens = this.availableTokens - 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.availableTokens = Math.min(this.maxCapacity, this.availableTokens + fillAmount);\n this.lastTimestamp = timestamp;\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.availableTokens = Math.min(this.availableTokens, 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 class Retry {\n static v2026 = typeof process !== \"undefined\" && process.env?.SMITHY_NEW_RETRIES_2026 === \"true\";\n static delay() {\n return Retry.v2026 ? 50 : 100;\n }\n static throttlingDelay() {\n return Retry.v2026 ? 1_000 : 500;\n }\n static cost() {\n return Retry.v2026 ? 14 : 5;\n }\n static throttlingCost() {\n return Retry.v2026 ? 5 : 10;\n }\n static modifiedCostType() {\n return Retry.v2026 ? \"THROTTLING\" : \"TRANSIENT\";\n }\n}\n","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\nimport { Retry } from \"./retries-2026-config\";\nexport class DefaultRetryBackoffStrategy {\n x = Retry.delay();\n computeNextBackoffDelay(i) {\n const b = Math.random();\n const r = 2;\n const t_i = b * Math.min(this.x * r ** i, MAXIMUM_RETRY_DELAY);\n return Math.floor(t_i);\n }\n setDelayBase(delay) {\n this.x = delay;\n }\n}\n","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport class DefaultRetryToken {\n delay;\n count;\n cost;\n longPoll;\n $retryLog = {\n acquisitionDelay: 0,\n };\n constructor(delay, count, cost, longPoll) {\n this.delay = delay;\n this.count = count;\n this.cost = cost;\n this.longPoll = longPoll;\n }\n getRetryCount() {\n return this.count;\n }\n getRetryDelay() {\n return Math.min(MAXIMUM_RETRY_DELAY, this.delay);\n }\n getRetryCost() {\n return this.cost;\n }\n isLongPoll() {\n return this.longPoll;\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","import { DefaultRetryBackoffStrategy } from \"./DefaultRetryBackoffStrategy\";\nimport { DefaultRetryToken } from \"./DefaultRetryToken\";\nimport { DEFAULT_MAX_ATTEMPTS, RETRY_MODES } from \"./config\";\nimport { INITIAL_RETRY_TOKENS, NO_RETRY_INCREMENT } from \"./constants\";\nimport { Retry } from \"./retries-2026-config\";\nconst refusal = {\n incompatible: 1,\n attempts: 2,\n capacity: 3,\n};\nexport class StandardRetryStrategy {\n mode = RETRY_MODES.STANDARD;\n retryBackoffStrategy;\n capacity = INITIAL_RETRY_TOKENS;\n maxAttemptsProvider;\n baseDelay;\n constructor(arg1) {\n if (typeof arg1 === \"number\") {\n this.maxAttemptsProvider = async () => arg1;\n }\n else if (typeof arg1 === \"function\") {\n this.maxAttemptsProvider = arg1;\n }\n else if (arg1 && typeof arg1 === \"object\") {\n this.maxAttemptsProvider = async () => arg1.maxAttempts;\n this.baseDelay = arg1.baseDelay;\n this.retryBackoffStrategy = arg1.backoff;\n }\n this.maxAttemptsProvider ??= async () => DEFAULT_MAX_ATTEMPTS;\n this.baseDelay ??= Retry.delay();\n this.retryBackoffStrategy ??= new DefaultRetryBackoffStrategy();\n }\n async acquireInitialRetryToken(retryTokenScope) {\n return new DefaultRetryToken(Retry.delay(), 0, undefined, Retry.v2026 && retryTokenScope.includes(\":longpoll\"));\n }\n async refreshRetryTokenForRetry(token, errorInfo) {\n const maxAttempts = await this.getMaxAttempts();\n const retryCode = this.retryCode(token, errorInfo, maxAttempts);\n const shouldRetry = retryCode === 0;\n const isLongPoll = token.isLongPoll?.();\n if (shouldRetry || isLongPoll) {\n const errorType = errorInfo.errorType;\n this.retryBackoffStrategy.setDelayBase(errorType === \"THROTTLING\" ? Retry.throttlingDelay() : this.baseDelay);\n const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());\n let retryDelay = delayFromErrorType;\n if (errorInfo.retryAfterHint instanceof Date) {\n retryDelay = Math.max(delayFromErrorType, Math.min(errorInfo.retryAfterHint.getTime() - Date.now(), delayFromErrorType + 5_000));\n }\n if (!shouldRetry) {\n const longPollBackoff = Retry.v2026 && retryCode === refusal.capacity && isLongPoll ? retryDelay : 0;\n if (longPollBackoff > 0) {\n await new Promise((r) => setTimeout(r, longPollBackoff));\n }\n }\n else {\n const capacityCost = this.getCapacityCost(errorType);\n this.capacity -= capacityCost;\n const nextToken = new DefaultRetryToken(0, token.getRetryCount() + 1, capacityCost, token.isLongPoll?.() ?? false);\n await new Promise((r) => setTimeout(r, retryDelay));\n nextToken.$retryLog.acquisitionDelay = retryDelay;\n return nextToken;\n }\n }\n throw new Error(\"No retry token available\");\n }\n recordSuccess(token) {\n this.capacity = Math.min(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT));\n }\n getCapacity() {\n return this.capacity;\n }\n async maxAttempts() {\n return this.maxAttemptsProvider();\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 retryCode(tokenToRenew, errorInfo, maxAttempts) {\n const attempts = tokenToRenew.getRetryCount() + 1;\n const retryableStatus = this.isRetryableError(errorInfo.errorType) ? 0 : refusal.incompatible;\n const attemptStatus = attempts < maxAttempts ? 0 : refusal.attempts;\n const capacityStatus = this.capacity >= this.getCapacityCost(errorInfo.errorType) ? 0 : refusal.capacity;\n return retryableStatus || attemptStatus || capacityStatus;\n }\n getCapacityCost(errorType) {\n return errorType === Retry.modifiedCostType() ? Retry.throttlingCost() : Retry.cost();\n }\n isRetryableError(errorType) {\n return errorType === \"THROTTLING\" || errorType === \"TRANSIENT\";\n }\n}\n","import { DefaultRateLimiter } from \"./DefaultRateLimiter\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nimport { RETRY_MODES } from \"./config\";\nexport class AdaptiveRetryStrategy {\n mode = RETRY_MODES.ADAPTIVE;\n rateLimiter;\n standardRetryStrategy;\n constructor(maxAttemptsProvider, options) {\n const { rateLimiter } = options ?? {};\n this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();\n this.standardRetryStrategy = options\n ? new StandardRetryStrategy({\n maxAttempts: typeof maxAttemptsProvider === \"number\" ? maxAttemptsProvider : 3,\n ...options,\n })\n : new StandardRetryStrategy(maxAttemptsProvider);\n }\n async acquireInitialRetryToken(retryTokenScope) {\n const token = await this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\n await this.rateLimiter.getSendToken();\n return token;\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n this.rateLimiter.updateClientSendingRate(errorInfo);\n const token = await this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n await this.rateLimiter.getSendToken();\n return token;\n }\n recordSuccess(token) {\n this.rateLimiter.updateClientSendingRate({});\n this.standardRetryStrategy.recordSuccess(token);\n }\n async maxAttemptsProvider() {\n return this.standardRetryStrategy.maxAttempts();\n }\n}\n","import { normalizeProvider } from \"@smithy/core/client\";\nimport { AdaptiveRetryStrategy } from \"../util-retry/AdaptiveRetryStrategy\";\nimport { StandardRetryStrategy } from \"../util-retry/StandardRetryStrategy\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES } from \"../util-retry/config\";\nimport { Retry } from \"../util-retry/retries-2026-config\";\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, defaults) => {\n const { retryStrategy, retryMode } = input;\n const { defaultMaxAttempts = DEFAULT_MAX_ATTEMPTS, defaultBaseDelay = Retry.delay() } = defaults ?? {};\n const maxAttemptsProvider = normalizeProvider(input.maxAttempts ?? defaultMaxAttempts);\n let controller = retryStrategy\n ? Promise.resolve(retryStrategy)\n : undefined;\n const getDefault = async () => {\n const maxAttempts = await maxAttemptsProvider();\n const adaptive = (await normalizeProvider(retryMode)()) === RETRY_MODES.ADAPTIVE;\n if (adaptive) {\n return new AdaptiveRetryStrategy(maxAttemptsProvider, {\n maxAttempts,\n baseDelay: defaultBaseDelay,\n });\n }\n return new StandardRetryStrategy({\n maxAttempts,\n baseDelay: defaultBaseDelay,\n });\n };\n return Object.assign(input, {\n maxAttempts: maxAttemptsProvider,\n retryStrategy: () => (controller ??= getDefault()),\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","import { isStreamingPayload } from \"./middleware-retry/isStreamingPayload/isStreamingPayload.browser\";\nimport { bindGetRetryPlugin, bindRetryMiddleware } from \"./middleware-retry/retryMiddleware\";\nconst no = Symbol.for(\"node-only\");\nexport { isRetryableByTrait, isClockSkewError, isClockSkewCorrectedError, isBrowserNetworkError, isThrottlingError, isTransientError, isServerError, isNodeJsHttp2TransientError, } from \"./service-error-classification/service-error-classification\";\nexport { AdaptiveRetryStrategy } from \"./util-retry/AdaptiveRetryStrategy\";\nexport { ConfiguredRetryStrategy } from \"./util-retry/ConfiguredRetryStrategy\";\nexport { DefaultRateLimiter } from \"./util-retry/DefaultRateLimiter\";\nexport { StandardRetryStrategy } from \"./util-retry/StandardRetryStrategy\";\nexport { RETRY_MODES, DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from \"./util-retry/config\";\nexport { 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, } from \"./util-retry/constants\";\nexport { Retry } from \"./util-retry/retries-2026-config\";\nexport { AdaptiveRetryStrategy as DeprecatedAdaptiveRetryStrategy, } from \"./middleware-retry/retry-pre-sra-deprecated/AdaptiveRetryStrategy\";\nexport { StandardRetryStrategy as DeprecatedStandardRetryStrategy, } from \"./middleware-retry/retry-pre-sra-deprecated/StandardRetryStrategy\";\nexport { defaultDelayDecider } from \"./middleware-retry/retry-pre-sra-deprecated/delayDecider\";\nexport { defaultRetryDecider } from \"./middleware-retry/retry-pre-sra-deprecated/retryDecider\";\nexport const ENV_MAX_ATTEMPTS = no;\nexport const CONFIG_MAX_ATTEMPTS = no;\nexport const NODE_MAX_ATTEMPT_CONFIG_OPTIONS = no;\nexport const ENV_RETRY_MODE = no;\nexport const CONFIG_RETRY_MODE = no;\nexport const NODE_RETRY_MODE_CONFIG_OPTIONS = no;\nexport { resolveRetryConfig } from \"./middleware-retry/configurations\";\nexport { omitRetryHeadersMiddleware, omitRetryHeadersMiddlewareOptions, getOmitRetryHeadersPlugin, } from \"./middleware-retry/omitRetryHeadersMiddleware\";\nexport { retryMiddlewareOptions } from \"./middleware-retry/retryMiddleware\";\nexport { getRetryAfterHint } from \"./middleware-retry/parseRetryAfterHeader\";\nexport const retryMiddleware = bindRetryMiddleware(isStreamingPayload);\nexport const getRetryPlugin = bindGetRetryPlugin(isStreamingPayload);\n","import { Retry } from \"@smithy/core/retry\";\nRetry.v2026 ||= typeof process === \"object\" && process.env?.AWS_NEW_RETRIES_2026 === \"true\";\nexport function setFeature(context, feature, value) {\n if (!context.__aws_sdk_context) {\n context.__aws_sdk_context = {\n features: {},\n };\n }\n else if (!context.__aws_sdk_context.features) {\n context.__aws_sdk_context.features = {};\n }\n context.__aws_sdk_context.features[feature] = value;\n}\n","import { HttpRequest } from \"@smithy/core/protocols\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport const hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n }\n else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null)\n host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n};\nexport const hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport const getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n","export const loggerMiddleware = () => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n return response;\n }\n catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata,\n });\n throw error;\n }\n};\nexport const loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nexport const getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n","export const getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => { },\n});\n","export const resolveAuthOptions = (candidateAuthOptions, authSchemePreference) => {\n if (!authSchemePreference || authSchemePreference.length === 0) {\n return candidateAuthOptions;\n }\n const preferredAuthOptions = [];\n for (const preferredSchemeName of authSchemePreference) {\n for (const candidateAuthOption of candidateAuthOptions) {\n const candidateAuthSchemeName = candidateAuthOption.schemeId.split(\"#\")[1];\n if (candidateAuthSchemeName === preferredSchemeName) {\n preferredAuthOptions.push(candidateAuthOption);\n }\n }\n }\n for (const candidateAuthOption of candidateAuthOptions) {\n if (!preferredAuthOptions.find(({ schemeId }) => schemeId === candidateAuthOption.schemeId)) {\n preferredAuthOptions.push(candidateAuthOption);\n }\n }\n return preferredAuthOptions;\n};\n","import { getSmithyContext } from \"@smithy/core/transport\";\nimport { resolveAuthOptions } from \"./resolveAuthOptions\";\nfunction convertHttpAuthSchemesToMap(httpAuthSchemes) {\n const map = new Map();\n for (const scheme of httpAuthSchemes) {\n map.set(scheme.schemeId, scheme);\n }\n return map;\n}\nexport const httpAuthSchemeMiddleware = (config, mwOptions) => (next, context) => async (args) => {\n const options = config.httpAuthSchemeProvider(await mwOptions.httpAuthSchemeParametersProvider(config, context, args.input));\n const authSchemePreference = config.authSchemePreference ? await config.authSchemePreference() : [];\n const resolvedOptions = resolveAuthOptions(options, authSchemePreference);\n const authSchemes = convertHttpAuthSchemesToMap(config.httpAuthSchemes);\n const smithyContext = getSmithyContext(context);\n const failureReasons = [];\n for (const option of resolvedOptions) {\n const scheme = authSchemes.get(option.schemeId);\n if (!scheme) {\n failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` was not enabled for this service.`);\n continue;\n }\n const identityProvider = scheme.identityProvider(await mwOptions.identityProviderConfigProvider(config));\n if (!identityProvider) {\n failureReasons.push(`HttpAuthScheme \\`${option.schemeId}\\` did not have an IdentityProvider configured.`);\n continue;\n }\n const { identityProperties = {}, signingProperties = {} } = option.propertiesExtractor?.(config, context) || {};\n option.identityProperties = Object.assign(option.identityProperties || {}, identityProperties);\n option.signingProperties = Object.assign(option.signingProperties || {}, signingProperties);\n smithyContext.selectedHttpAuthScheme = {\n httpAuthOption: option,\n identity: await identityProvider(option.identityProperties),\n signer: scheme.signer,\n };\n break;\n }\n if (!smithyContext.selectedHttpAuthScheme) {\n throw new Error(failureReasons.join(\"\\n\"));\n }\n return next(args);\n};\n","import { 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: \"endpointV2Middleware\",\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 { HttpRequest } from \"@smithy/core/protocols\";\nimport { getSmithyContext } from \"@smithy/core/transport\";\nconst defaultErrorHandler = (signingProperties) => (error) => {\n throw error;\n};\nconst defaultSuccessHandler = (httpResponse, signingProperties) => { };\nexport const httpSigningMiddleware = (config) => (next, context) => async (args) => {\n if (!HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const smithyContext = getSmithyContext(context);\n const scheme = smithyContext.selectedHttpAuthScheme;\n if (!scheme) {\n throw new Error(`No HttpAuthScheme was selected: unable to sign request`);\n }\n const { httpAuthOption: { signingProperties = {} }, identity, signer, } = scheme;\n const output = await next({\n ...args,\n request: await signer.sign(args.request, identity, signingProperties),\n }).catch((signer.errorHandler || defaultErrorHandler)(signingProperties));\n (signer.successHandler || defaultSuccessHandler)(output.response, signingProperties);\n return output;\n};\n","import { 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: \"retryMiddleware\",\n};\nexport const getHttpSigningPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(httpSigningMiddleware(config), httpSigningMiddlewareOptions);\n },\n});\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 class DefaultIdentityProviderConfig {\n authSchemes = new Map();\n constructor(config) {\n for (const key in config) {\n const value = config[key];\n if (value !== undefined) {\n this.authSchemes.set(key, value);\n }\n }\n }\n getIdentityProvider(schemeId) {\n return this.authSchemes.get(schemeId);\n }\n}\n","export const createIsIdentityExpiredFunction = (expirationMs) => function isIdentityExpired(identity) {\n return doesIdentityRequireRefresh(identity) && identity.expiration.getTime() - Date.now() < expirationMs;\n};\nexport const EXPIRATION_MS = 300_000;\nexport const isIdentityExpired = createIsIdentityExpiredFunction(EXPIRATION_MS);\nexport const doesIdentityRequireRefresh = (identity) => identity.expiration !== undefined;\nexport const memoizeIdentityProvider = (provider, isExpired, requiresRefresh) => {\n if (provider === undefined) {\n return undefined;\n }\n const normalizedProvider = typeof provider !== \"function\" ? async () => Promise.resolve(provider) : provider;\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async (options) => {\n if (!pending) {\n pending = normalizedProvider(options);\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(options);\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider(options);\n }\n if (isConstant) {\n return resolved;\n }\n if (!requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider(options);\n return resolved;\n }\n return resolved;\n };\n};\n","import { normalizeProvider } from \"@smithy/core\";\nexport const DEFAULT_UA_APP_ID = undefined;\nfunction isValidUserAgentAppId(appId) {\n if (appId === undefined) {\n return true;\n }\n return typeof appId === \"string\" && appId.length <= 50;\n}\nexport function resolveUserAgentConfig(input) {\n const normalizedAppIdProvider = normalizeProvider(input.userAgentAppId ?? DEFAULT_UA_APP_ID);\n const { customUserAgent } = input;\n return Object.assign(input, {\n customUserAgent: typeof customUserAgent === \"string\" ? [[customUserAgent]] : customUserAgent,\n userAgentAppId: async () => {\n const appId = await normalizedAppIdProvider();\n if (!isValidUserAgentAppId(appId)) {\n const logger = input.logger?.constructor?.name === \"NoOpLogger\" || !input.logger ? console : input.logger;\n if (typeof appId !== \"string\") {\n logger?.warn(\"userAgentAppId must be a string or undefined.\");\n }\n else if (appId.length > 50) {\n logger?.warn(\"The provided userAgentAppId exceeds the maximum length of 50 characters.\");\n }\n }\n return appId;\n },\n });\n}\n","export const partitionsInfo = {\n \"partitions\": [\n {\n \"id\": \"aws\",\n \"outputs\": {\n \"dnsSuffix\": \"amazonaws.com\",\n \"dualStackDnsSuffix\": \"api.aws\",\n \"implicitGlobalRegion\": \"us-east-1\",\n \"name\": \"aws\",\n \"supportsDualStack\": true,\n \"supportsFIPS\": true\n },\n \"regionRegex\": \"^(us|eu|ap|sa|ca|me|af|il|mx)\\\\-\\\\w+\\\\-\\\\d+$\",\n \"regions\": {\n \"af-south-1\": {\n \"description\": \"Africa (Cape Town)\"\n },\n \"ap-east-1\": {\n \"description\": \"Asia Pacific (Hong Kong)\"\n },\n \"ap-east-2\": {\n \"description\": \"Asia Pacific (Taipei)\"\n },\n \"ap-northeast-1\": {\n \"description\": \"Asia Pacific (Tokyo)\"\n },\n \"ap-northeast-2\": {\n \"description\": \"Asia Pacific (Seoul)\"\n },\n \"ap-northeast-3\": {\n \"description\": \"Asia Pacific (Osaka)\"\n },\n \"ap-south-1\": {\n \"description\": \"Asia Pacific (Mumbai)\"\n },\n \"ap-south-2\": {\n \"description\": \"Asia Pacific (Hyderabad)\"\n },\n \"ap-southeast-1\": {\n \"description\": \"Asia Pacific (Singapore)\"\n },\n \"ap-southeast-2\": {\n \"description\": \"Asia Pacific (Sydney)\"\n },\n \"ap-southeast-3\": {\n \"description\": \"Asia Pacific (Jakarta)\"\n },\n \"ap-southeast-4\": {\n \"description\": \"Asia Pacific (Melbourne)\"\n },\n \"ap-southeast-5\": {\n \"description\": \"Asia Pacific (Malaysia)\"\n },\n \"ap-southeast-6\": {\n \"description\": \"Asia Pacific (New Zealand)\"\n },\n \"ap-southeast-7\": {\n \"description\": \"Asia Pacific (Thailand)\"\n },\n \"aws-global\": {\n \"description\": \"aws global region\"\n },\n \"ca-central-1\": {\n \"description\": \"Canada (Central)\"\n },\n \"ca-west-1\": {\n \"description\": \"Canada West (Calgary)\"\n },\n \"eu-central-1\": {\n \"description\": \"Europe (Frankfurt)\"\n },\n \"eu-central-2\": {\n \"description\": \"Europe (Zurich)\"\n },\n \"eu-north-1\": {\n \"description\": \"Europe (Stockholm)\"\n },\n \"eu-south-1\": {\n \"description\": \"Europe (Milan)\"\n },\n \"eu-south-2\": {\n \"description\": \"Europe (Spain)\"\n },\n \"eu-west-1\": {\n \"description\": \"Europe (Ireland)\"\n },\n \"eu-west-2\": {\n \"description\": \"Europe (London)\"\n },\n \"eu-west-3\": {\n \"description\": \"Europe (Paris)\"\n },\n \"il-central-1\": {\n \"description\": \"Israel (Tel Aviv)\"\n },\n \"me-central-1\": {\n \"description\": \"Middle East (UAE)\"\n },\n \"me-south-1\": {\n \"description\": \"Middle East (Bahrain)\"\n },\n \"mx-central-1\": {\n \"description\": \"Mexico (Central)\"\n },\n \"sa-east-1\": {\n \"description\": \"South America (Sao Paulo)\"\n },\n \"us-east-1\": {\n \"description\": \"US East (N. Virginia)\"\n },\n \"us-east-2\": {\n \"description\": \"US East (Ohio)\"\n },\n \"us-west-1\": {\n \"description\": \"US West (N. California)\"\n },\n \"us-west-2\": {\n \"description\": \"US West (Oregon)\"\n }\n }\n },\n {\n \"id\": \"aws-cn\",\n \"outputs\": {\n \"dnsSuffix\": \"amazonaws.com.cn\",\n \"dualStackDnsSuffix\": \"api.amazonwebservices.com.cn\",\n \"implicitGlobalRegion\": \"cn-northwest-1\",\n \"name\": \"aws-cn\",\n \"supportsDualStack\": true,\n \"supportsFIPS\": true\n },\n \"regionRegex\": \"^cn\\\\-\\\\w+\\\\-\\\\d+$\",\n \"regions\": {\n \"aws-cn-global\": {\n \"description\": \"aws-cn global region\"\n },\n \"cn-north-1\": {\n \"description\": \"China (Beijing)\"\n },\n \"cn-northwest-1\": {\n \"description\": \"China (Ningxia)\"\n }\n }\n },\n {\n \"id\": \"aws-eusc\",\n \"outputs\": {\n \"dnsSuffix\": \"amazonaws.eu\",\n \"dualStackDnsSuffix\": \"api.amazonwebservices.eu\",\n \"implicitGlobalRegion\": \"eusc-de-east-1\",\n \"name\": \"aws-eusc\",\n \"supportsDualStack\": true,\n \"supportsFIPS\": true\n },\n \"regionRegex\": \"^eusc\\\\-(de)\\\\-\\\\w+\\\\-\\\\d+$\",\n \"regions\": {\n \"eusc-de-east-1\": {\n \"description\": \"AWS European Sovereign Cloud (Germany)\"\n }\n }\n },\n {\n \"id\": \"aws-iso\",\n \"outputs\": {\n \"dnsSuffix\": \"c2s.ic.gov\",\n \"dualStackDnsSuffix\": \"api.aws.ic.gov\",\n \"implicitGlobalRegion\": \"us-iso-east-1\",\n \"name\": \"aws-iso\",\n \"supportsDualStack\": true,\n \"supportsFIPS\": true\n },\n \"regionRegex\": \"^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$\",\n \"regions\": {\n \"aws-iso-global\": {\n \"description\": \"aws-iso global region\"\n },\n \"us-iso-east-1\": {\n \"description\": \"US ISO East\"\n },\n \"us-iso-west-1\": {\n \"description\": \"US ISO WEST\"\n }\n }\n },\n {\n \"id\": \"aws-iso-b\",\n \"outputs\": {\n \"dnsSuffix\": \"sc2s.sgov.gov\",\n \"dualStackDnsSuffix\": \"api.aws.scloud\",\n \"implicitGlobalRegion\": \"us-isob-east-1\",\n \"name\": \"aws-iso-b\",\n \"supportsDualStack\": true,\n \"supportsFIPS\": true\n },\n \"regionRegex\": \"^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$\",\n \"regions\": {\n \"aws-iso-b-global\": {\n \"description\": \"aws-iso-b global region\"\n },\n \"us-isob-east-1\": {\n \"description\": \"US ISOB East (Ohio)\"\n },\n \"us-isob-west-1\": {\n \"description\": \"US ISOB West\"\n }\n }\n },\n {\n \"id\": \"aws-iso-e\",\n \"outputs\": {\n \"dnsSuffix\": \"cloud.adc-e.uk\",\n \"dualStackDnsSuffix\": \"api.cloud-aws.adc-e.uk\",\n \"implicitGlobalRegion\": \"eu-isoe-west-1\",\n \"name\": \"aws-iso-e\",\n \"supportsDualStack\": true,\n \"supportsFIPS\": true\n },\n \"regionRegex\": \"^eu\\\\-isoe\\\\-\\\\w+\\\\-\\\\d+$\",\n \"regions\": {\n \"aws-iso-e-global\": {\n \"description\": \"aws-iso-e global region\"\n },\n \"eu-isoe-west-1\": {\n \"description\": \"EU ISOE West\"\n }\n }\n },\n {\n \"id\": \"aws-iso-f\",\n \"outputs\": {\n \"dnsSuffix\": \"csp.hci.ic.gov\",\n \"dualStackDnsSuffix\": \"api.aws.hci.ic.gov\",\n \"implicitGlobalRegion\": \"us-isof-south-1\",\n \"name\": \"aws-iso-f\",\n \"supportsDualStack\": true,\n \"supportsFIPS\": true\n },\n \"regionRegex\": \"^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$\",\n \"regions\": {\n \"aws-iso-f-global\": {\n \"description\": \"aws-iso-f global region\"\n },\n \"us-isof-east-1\": {\n \"description\": \"US ISOF EAST\"\n },\n \"us-isof-south-1\": {\n \"description\": \"US ISOF SOUTH\"\n }\n }\n },\n {\n \"id\": \"aws-us-gov\",\n \"outputs\": {\n \"dnsSuffix\": \"amazonaws.com\",\n \"dualStackDnsSuffix\": \"api.aws\",\n \"implicitGlobalRegion\": \"us-gov-west-1\",\n \"name\": \"aws-us-gov\",\n \"supportsDualStack\": true,\n \"supportsFIPS\": true\n },\n \"regionRegex\": \"^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$\",\n \"regions\": {\n \"aws-us-gov-global\": {\n \"description\": \"aws-us-gov global region\"\n },\n \"us-gov-east-1\": {\n \"description\": \"AWS GovCloud (US-East)\"\n },\n \"us-gov-west-1\": {\n \"description\": \"AWS GovCloud (US-West)\"\n }\n }\n }\n ],\n \"version\": \"1.1\"\n};\n","import { partitionsInfo } from \"./partitions\";\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nexport const partition = (value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition of partitions) {\n const { regions, outputs } = partition;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData,\n };\n }\n }\n }\n for (const partition of partitions) {\n const { regionRegex, outputs } = partition;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs,\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\"Provided region was not found in the partition array or regex,\" +\n \" and default partition with id 'aws' doesn't exist.\");\n }\n return {\n ...DEFAULT_PARTITION.outputs,\n };\n};\nexport const setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n};\nexport const useDefaultPartitionInfo = () => {\n setPartitionInfo(partitionsInfo, \"\");\n};\nexport const getUserAgentPrefix = () => selectedUserAgentPrefix;\n","import { RETRY_MODES } from \"@smithy/core/retry\";\nimport { setFeature } from \"../setFeature\";\nconst ACCOUNT_ID_ENDPOINT_REGEX = /\\d{12}\\.ddb/;\nexport async function checkFeatures(context, config, args) {\n const request = args.request;\n if (request?.headers?.[\"smithy-protocol\"] === \"rpc-v2-cbor\") {\n setFeature(context, \"PROTOCOL_RPC_V2_CBOR\", \"M\");\n }\n if (typeof config.retryStrategy === \"function\") {\n const retryStrategy = await config.retryStrategy();\n if (typeof retryStrategy.mode === \"string\") {\n switch (retryStrategy.mode) {\n case RETRY_MODES.ADAPTIVE:\n setFeature(context, \"RETRY_MODE_ADAPTIVE\", \"F\");\n break;\n case RETRY_MODES.STANDARD:\n setFeature(context, \"RETRY_MODE_STANDARD\", \"E\");\n break;\n }\n }\n }\n if (typeof config.accountIdEndpointMode === \"function\") {\n const endpointV2 = context.endpointV2;\n if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) {\n setFeature(context, \"ACCOUNT_ID_ENDPOINT\", \"O\");\n }\n switch (await config.accountIdEndpointMode?.()) {\n case \"disabled\":\n setFeature(context, \"ACCOUNT_ID_MODE_DISABLED\", \"Q\");\n break;\n case \"preferred\":\n setFeature(context, \"ACCOUNT_ID_MODE_PREFERRED\", \"P\");\n break;\n case \"required\":\n setFeature(context, \"ACCOUNT_ID_MODE_REQUIRED\", \"R\");\n break;\n }\n }\n const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity;\n if (identity?.$source) {\n const credentials = identity;\n if (credentials.accountId) {\n setFeature(context, \"RESOLVED_ACCOUNT_ID\", \"T\");\n }\n for (const [key, value] of Object.entries(credentials.$source ?? {})) {\n setFeature(context, key, value);\n }\n }\n}\n","export const USER_AGENT = \"user-agent\";\nexport const X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport const SPACE = \" \";\nexport const UA_NAME_SEPARATOR = \"/\";\nexport const UA_NAME_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w]/g;\nexport const UA_VALUE_ESCAPE_REGEX = /[^!$%&'*+\\-.^_`|~\\w#]/g;\nexport const UA_ESCAPE_CHAR = \"-\";\n","const BYTE_LIMIT = 1024;\nexport function encodeFeatures(features) {\n let buffer = \"\";\n for (const key in features) {\n const val = features[key];\n if (buffer.length + val.length + 1 <= BYTE_LIMIT) {\n if (buffer.length) {\n buffer += \",\" + val;\n }\n else {\n buffer += val;\n }\n continue;\n }\n break;\n }\n return buffer;\n}\n","import { HttpRequest } from \"@smithy/core/protocols\";\nimport { getUserAgentPrefix } from \"../util-endpoints/lib/aws/partition\";\nimport { checkFeatures } from \"./check-features\";\nimport { SPACE, UA_ESCAPE_CHAR, UA_NAME_ESCAPE_REGEX, UA_NAME_SEPARATOR, UA_VALUE_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT, } from \"./constants\";\nimport { encodeFeatures } from \"./encode-features\";\nexport const userAgentMiddleware = (options) => (next, context) => async (args) => {\n const { request } = args;\n if (!HttpRequest.isInstance(request)) {\n return next(args);\n }\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n await checkFeatures(context, options, args);\n const awsContext = context;\n defaultUserAgent.push(`m/${encodeFeatures(Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features))}`);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const appId = await options.userAgentAppId();\n if (appId) {\n defaultUserAgent.push(escapeUserAgent([`app`, `${appId}`]));\n }\n const prefix = getUserAgentPrefix();\n const sdkUserAgentValue = (prefix ? [prefix] : [])\n .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n .join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? `${headers[USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nconst escapeUserAgent = (userAgentPair) => {\n const name = userAgentPair[0]\n .split(UA_NAME_SEPARATOR)\n .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n .join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n};\nexport const getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport const getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n","export { createUserAgentStringParsingProvider } from \"./createUserAgentStringParsingProvider\";\nexport const createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => async (config) => {\n const navigator = typeof window !== \"undefined\" ? window.navigator : undefined;\n const uaString = navigator?.userAgent ?? \"\";\n const osName = navigator?.userAgentData?.platform ?? fallback.os(uaString) ?? \"other\";\n const osVersion = undefined;\n const brands = navigator?.userAgentData?.brands ?? [];\n const brand = brands[brands.length - 1];\n const browserName = brand?.brand ?? fallback.browser(uaString) ?? \"unknown\";\n const browserVersion = brand?.version ?? \"unknown\";\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"ua\", \"2.1\"],\n [`os/${osName}`, osVersion],\n [\"lang/js\"],\n [\"md/browser\", `${browserName}_${browserVersion}`],\n ];\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n const appId = await config?.userAgentAppId?.();\n if (appId) {\n sections.push([`app/${appId}`]);\n }\n return sections;\n};\nexport const fallback = {\n os(ua) {\n if (/iPhone|iPad|iPod/.test(ua))\n return \"iOS\";\n if (/Macintosh|Mac OS X/.test(ua))\n return \"macOS\";\n if (/Windows NT/.test(ua))\n return \"Windows\";\n if (/Android/.test(ua))\n return \"Android\";\n if (/Linux/.test(ua))\n return \"Linux\";\n return undefined;\n },\n browser(ua) {\n if (/EdgiOS|EdgA|Edg\\//.test(ua))\n return \"Microsoft Edge\";\n if (/Firefox\\//.test(ua))\n return \"Firefox\";\n if (/Chrome\\//.test(ua))\n return \"Chrome\";\n if (/Safari\\//.test(ua))\n return \"Safari\";\n return undefined;\n },\n};\nexport const defaultUserAgent = createDefaultUserAgentProvider;\n","import { isValidHostLabel } from \"@smithy/core/endpoints\";\nimport { isIpAddress } from \"../isIpAddress\";\nexport const isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!isValidHostLabel(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if (isIpAddress(value)) {\n return false;\n }\n return true;\n};\n","const ARN_DELIMITER = \":\";\nconst RESOURCE_DELIMITER = \"/\";\nexport const parseArn = (value) => {\n const segments = value.split(ARN_DELIMITER);\n if (segments.length < 6)\n return null;\n const [arn, partition, service, region, accountId, ...resourcePath] = segments;\n if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourcePath.join(ARN_DELIMITER) === \"\")\n return null;\n const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat();\n return {\n partition,\n service,\n region,\n accountId,\n resourceId,\n };\n};\n","import { customEndpointFunctions } from \"@smithy/core/endpoints\";\nimport { isVirtualHostableS3Bucket } from \"./lib/aws/isVirtualHostableS3Bucket\";\nimport { parseArn } from \"./lib/aws/parseArn\";\nimport { partition } from \"./lib/aws/partition\";\nexport const awsEndpointFunctions = {\n isVirtualHostableS3Bucket: isVirtualHostableS3Bucket,\n parseArn: parseArn,\n partition: partition,\n};\ncustomEndpointFunctions.aws = awsEndpointFunctions;\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","import { isValidHostLabel } from \"@smithy/core/transport\";\nconst validRegions = new Set();\nexport const checkRegion = (region, check = isValidHostLabel) => {\n if (!validRegions.has(region) && !check(region)) {\n if (region === \"*\") {\n console.warn(`@smithy/config-resolver WARN - Please use the caller region instead of \"*\". See \"sigv4a\" in https://github.com/aws/aws-sdk-js-v3/blob/main/supplemental-docs/CLIENTS.md.`);\n }\n else {\n throw new Error(`Region not accepted: region=\"${region}\" is not a valid hostname component.`);\n }\n }\n else {\n validRegions.add(region);\n }\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 { checkRegion } from \"./checkRegion\";\nimport { 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 Object.assign(input, {\n region: async () => {\n const providedRegion = typeof region === \"function\" ? await region() : region;\n const realRegion = getRealRegion(providedRegion);\n checkRegion(realRegion);\n return realRegion;\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 AWS_EXECUTION_ENV = \"AWS_EXECUTION_ENV\";\nexport const AWS_REGION_ENV = \"AWS_REGION\";\nexport const AWS_DEFAULT_REGION_ENV = \"AWS_DEFAULT_REGION\";\nexport const ENV_IMDS_DISABLED = \"AWS_EC2_METADATA_DISABLED\";\nexport const DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\nexport const IMDS_REGION_PATH = \"/latest/meta-data/placement/region\";\n","import { memoize } from \"../property-provider/memoize\";\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(useMobileConfiguration() ? \"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 useMobileConfiguration = () => {\n const navigator = window?.navigator;\n if (navigator?.connection) {\n const { effectiveType, rtt, downlink } = navigator?.connection;\n const slow = (typeof effectiveType === \"string\" && effectiveType !== \"4g\") || Number(rtt) > 100 || Number(downlink) < 10;\n if (slow) {\n return true;\n }\n }\n return (navigator?.userAgentData?.mobile || (typeof navigator?.maxTouchPoints === \"number\" && navigator?.maxTouchPoints > 1));\n};\n","const no = Symbol.for(\"node-only\");\nexport { ProviderError } from \"./property-provider/ProviderError\";\nexport { CredentialsProviderError } from \"./property-provider/CredentialsProviderError\";\nexport { TokenProviderError } from \"./property-provider/TokenProviderError\";\nexport { chain } from \"./property-provider/chain\";\nexport { fromValue } from \"./property-provider/fromValue\";\nexport { memoize } from \"./property-provider/memoize\";\nexport { booleanSelector } from \"./util-config-provider/booleanSelector\";\nexport { numberSelector } from \"./util-config-provider/numberSelector\";\nexport { SelectorType } from \"./util-config-provider/types\";\nexport const getHomeDir = no;\nexport const ENV_PROFILE = no;\nexport const DEFAULT_PROFILE = \"default\";\nexport const getProfileName = no;\nexport const getSSOTokenFilepath = no;\nexport const getSSOTokenFromFile = no;\nexport const CONFIG_PREFIX_SEPARATOR = no;\nexport const loadSharedConfigFiles = no;\nexport const loadSsoSessionData = no;\nexport const parseKnownFiles = no;\nexport const externalDataInterceptor = no;\nexport const readFile = no;\nexport const loadConfig = no;\nexport const fromStatic = no;\nexport const ENV_USE_DUALSTACK_ENDPOINT = no;\nexport const CONFIG_USE_DUALSTACK_ENDPOINT = no;\nexport const DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nexport const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = no;\nexport const nodeDualstackConfigSelectors = no;\nexport const ENV_USE_FIPS_ENDPOINT = no;\nexport const CONFIG_USE_FIPS_ENDPOINT = no;\nexport const DEFAULT_USE_FIPS_ENDPOINT = false;\nexport const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = no;\nexport const nodeFipsConfigSelectors = no;\nexport { resolveCustomEndpointsConfig, } from \"./config-resolver/endpointsConfig/resolveCustomEndpointsConfig\";\nexport { resolveEndpointsConfig, } from \"./config-resolver/endpointsConfig/resolveEndpointsConfig\";\nexport const REGION_ENV_NAME = no;\nexport const REGION_INI_NAME = no;\nexport const NODE_REGION_CONFIG_OPTIONS = no;\nexport const NODE_REGION_CONFIG_FILE_OPTIONS = no;\nexport { resolveRegionConfig, } from \"./config-resolver/regionConfig/resolveRegionConfig\";\nexport { getRegionInfo } from \"./config-resolver/regionInfo/getRegionInfo\";\nexport { resolveDefaultsModeConfig, } from \"./defaults-mode/resolveDefaultsModeConfig.browser\";\n","export const getAwsRegionExtensionConfiguration = (runtimeConfig) => {\n return {\n setRegion(region) {\n runtimeConfig.region = region;\n },\n region() {\n return runtimeConfig.region;\n },\n };\n};\nexport const resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region(),\n };\n};\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { fromUtf8 as fromUtf8Browser } from \"@smithy/util-utf8\";\n// Quick polyfill\nvar fromUtf8 = typeof Buffer !== \"undefined\" && Buffer.from\n ? function (input) { return Buffer.from(input, \"utf8\"); }\n : fromUtf8Browser;\nexport function convertToBuffer(data) {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array)\n return data;\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n//# sourceMappingURL=convertToBuffer.js.map","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\n//# sourceMappingURL=isEmptyData.js.map","import { fromHex, fromUtf8, toHex } from \"@smithy/core/serde\";\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 bytes;\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 > 9_223_372_036_854_775_807 || number < -9_223_372_036_854_775_808) {\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 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 { escapeUri } from \"@smithy/core/protocols\";\nimport { SIGNATURE_HEADER } from \"./constants\";\nexport const getCanonicalQuery = ({ query = {} }) => {\n const keys = [];\n const serialized = {};\n for (const key of Object.keys(query)) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n continue;\n }\n const encodedKey = escapeUri(key);\n keys.push(encodedKey);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[encodedKey] = `${encodedKey}=${escapeUri(value)}`;\n }\n else if (Array.isArray(value)) {\n serialized[encodedKey] = value\n .slice(0)\n .reduce((encoded, value) => encoded.concat([`${encodedKey}=${escapeUri(value)}`]), [])\n .sort()\n .join(\"&\");\n }\n }\n return keys\n .sort()\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join(\"&\");\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 { normalizeProvider } from \"@smithy/core/client\";\nimport { escapeUri } from \"@smithy/core/protocols\";\nimport { toHex, toUint8Array } from \"@smithy/core/serde\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { iso8601 } from \"./utilDate\";\nexport class SignatureV4Base {\n service;\n regionProvider;\n credentialProvider;\n sha256;\n uriEscapePath;\n applyChecksum;\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\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 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, algorithmIdentifier) {\n const hash = new this.sha256();\n hash.update(toUint8Array(canonicalRequest));\n const hashedRequest = await hash.digest();\n return `${algorithmIdentifier}\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 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 formatDate(now) {\n const longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n };\n }\n getCanonicalHeaderList(headers) {\n return Object.keys(headers).sort().join(\";\");\n }\n}\n","import { toHex, toUint8Array } from \"@smithy/core/serde\";\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 { isArrayBuffer, toHex, toUint8Array } from \"@smithy/core/serde\";\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","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","import { HttpRequest } from \"@smithy/core/protocols\";\nexport const moveHeadersToQuery = (request, options = {}) => {\n const { headers, query = {} } = HttpRequest.clone(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 options.hoistableHeaders?.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 { HttpRequest } from \"@smithy/core/protocols\";\nimport { GENERATED_HEADERS } from \"./constants\";\nexport const prepareRequest = (request) => {\n request = HttpRequest.clone(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","import { toHex, toUint8Array } from \"@smithy/core/serde\";\nimport { HeaderFormatter } from \"./HeaderFormatter\";\nimport { SignatureV4Base } from \"./SignatureV4Base\";\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 { getPayloadHash } from \"./getPayloadHash\";\nimport { hasHeader } from \"./headerUtil\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nexport class SignatureV4 extends SignatureV4Base {\n headerFormatter = new HeaderFormatter();\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n super({\n applyChecksum,\n credentials,\n region,\n service,\n sha256,\n uriEscapePath,\n });\n }\n async presign(originalRequest, options = {}) {\n const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, hoistableHeaders, signingRegion, signingService, } = options;\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { longDate, shortDate } = this.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, hoistableHeaders });\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] = this.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, eventStreamCredentials, }) {\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate, longDate } = this.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, {\n signingDate,\n signingRegion: region,\n signingService,\n eventStreamCredentials,\n });\n }\n async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService, eventStreamCredentials }) {\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 eventStreamCredentials,\n });\n return promise.then((signature) => {\n return { message: signableMessage.message, signature };\n });\n }\n async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService, eventStreamCredentials, } = {}) {\n const credentials = eventStreamCredentials ?? (await this.credentialProvider());\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate } = this.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 } = this.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=${this.getCanonicalHeaderList(canonicalHeaders)}, ` +\n `Signature=${signature}`;\n return request;\n }\n async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest, ALGORITHM_IDENTIFIER);\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}\n","import { decorateServiceException } from \"@smithy/core/client\";\nimport { NormalizedSchema, TypeRegistry } from \"@smithy/core/schema\";\nexport class ProtocolLib {\n queryCompat;\n errorRegistry;\n constructor(queryCompat = false) {\n this.queryCompat = queryCompat;\n }\n resolveRestContentType(defaultContentType, inputSchema) {\n const members = inputSchema.getMemberSchemas();\n const httpPayloadMember = Object.values(members).find((m) => {\n return !!m.getMergedTraits().httpPayload;\n });\n if (httpPayloadMember) {\n const mediaType = httpPayloadMember.getMergedTraits().mediaType;\n if (mediaType) {\n return mediaType;\n }\n else if (httpPayloadMember.isStringSchema()) {\n return \"text/plain\";\n }\n else if (httpPayloadMember.isBlobSchema()) {\n return \"application/octet-stream\";\n }\n else {\n return defaultContentType;\n }\n }\n else if (!inputSchema.isUnitSchema()) {\n const hasBody = Object.values(members).find((m) => {\n const { httpQuery, httpQueryParams, httpHeader, httpLabel, httpPrefixHeaders } = m.getMergedTraits();\n const noPrefixHeaders = httpPrefixHeaders === void 0;\n return !httpQuery && !httpQueryParams && !httpHeader && !httpLabel && noPrefixHeaders;\n });\n if (hasBody) {\n return defaultContentType;\n }\n }\n }\n async getErrorSchemaOrThrowBaseException(errorIdentifier, defaultNamespace, response, dataObject, metadata, getErrorSchema) {\n let errorName = errorIdentifier;\n if (errorIdentifier.includes(\"#\")) {\n [, errorName] = errorIdentifier.split(\"#\");\n }\n const errorMetadata = {\n $metadata: metadata,\n $fault: response.statusCode < 500 ? \"client\" : \"server\",\n };\n if (!this.errorRegistry) {\n throw new Error(\"@aws-sdk/core/protocols - error handler not initialized.\");\n }\n try {\n const errorSchema = getErrorSchema?.(this.errorRegistry, errorName) ??\n this.errorRegistry.getSchema(errorIdentifier);\n return { errorSchema, errorMetadata };\n }\n catch (e) {\n dataObject.message = dataObject.message ?? dataObject.Message ?? \"UnknownError\";\n const synthetic = this.errorRegistry;\n const baseExceptionSchema = synthetic.getBaseException();\n if (baseExceptionSchema) {\n const ErrorCtor = synthetic.getErrorCtor(baseExceptionSchema) ?? Error;\n throw this.decorateServiceException(Object.assign(new ErrorCtor({ name: errorName }), errorMetadata), dataObject);\n }\n const d = dataObject;\n const message = d?.message ?? d?.Message ?? d?.Error?.Message ?? d?.Error?.message;\n throw this.decorateServiceException(Object.assign(new Error(message), {\n name: errorName,\n }, errorMetadata), dataObject);\n }\n }\n compose(composite, errorIdentifier, defaultNamespace) {\n let namespace = defaultNamespace;\n if (errorIdentifier.includes(\"#\")) {\n [namespace] = errorIdentifier.split(\"#\");\n }\n const staticRegistry = TypeRegistry.for(namespace);\n const defaultSyntheticRegistry = TypeRegistry.for(\"smithy.ts.sdk.synthetic.\" + defaultNamespace);\n composite.copyFrom(staticRegistry);\n composite.copyFrom(defaultSyntheticRegistry);\n this.errorRegistry = composite;\n }\n decorateServiceException(exception, additions = {}) {\n if (this.queryCompat) {\n const msg = exception.Message ?? additions.Message;\n const error = decorateServiceException(exception, additions);\n if (msg) {\n error.message = msg;\n }\n const errorObj = error.Error ?? {};\n errorObj.Type = error.Error?.Type;\n errorObj.Code = error.Error?.Code;\n errorObj.Message = error.Error?.message ?? error.Error?.Message ?? msg;\n error.Error = errorObj;\n const reqId = error.$metadata.requestId;\n if (reqId) {\n error.RequestId = reqId;\n }\n return error;\n }\n return decorateServiceException(exception, additions);\n }\n setQueryCompatError(output, response) {\n const queryErrorHeader = response.headers?.[\"x-amzn-query-error\"];\n if (output !== undefined && queryErrorHeader != null) {\n const [Code, Type] = queryErrorHeader.split(\";\");\n const keys = Object.keys(output);\n const Error = {\n Code,\n Type,\n };\n output.Code = Code;\n output.Type = Type;\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n Error[k === \"message\" ? \"Message\" : k] = output[k];\n }\n delete Error.__type;\n output.Error = Error;\n }\n }\n queryCompatOutput(queryCompatErrorData, errorData) {\n if (queryCompatErrorData.Error) {\n errorData.Error = queryCompatErrorData.Error;\n }\n if (queryCompatErrorData.Type) {\n errorData.Type = queryCompatErrorData.Type;\n }\n if (queryCompatErrorData.Code) {\n errorData.Code = queryCompatErrorData.Code;\n }\n }\n findQueryCompatibleError(registry, errorName) {\n try {\n return registry.getSchema(errorName);\n }\n catch (e) {\n return registry.find((schema) => NormalizedSchema.of(schema).getMergedTraits().awsQueryError?.[0] === errorName);\n }\n }\n}\n","export class SerdeContextConfig {\n serdeContext;\n setSerdeContext(serdeContext) {\n this.serdeContext = serdeContext;\n }\n}\n","export class UnionSerde {\n from;\n to;\n keys;\n constructor(from, to) {\n this.from = from;\n this.to = to;\n const keys = Object.keys(this.from);\n const set = new Set(keys);\n set.delete(\"__type\");\n this.keys = set;\n }\n mark(key) {\n this.keys.delete(key);\n }\n hasUnknown() {\n return this.keys.size === 1 && Object.keys(this.to).length === 0;\n }\n writeUnknown() {\n if (this.hasUnknown()) {\n const k = this.keys.values().next().value;\n const v = this.from[k];\n this.to.$unknown = [k, v];\n }\n }\n}\n","import { HttpResponse } from \"@smithy/core/protocols\";\nexport const getDateHeader = (response) => HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;\n","export const getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\n","import { getSkewCorrectedDate } from \"./getSkewCorrectedDate\";\nexport const isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n","import { isClockSkewed } from \"./isClockSkewed\";\nexport const getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n};\n","import { HttpRequest } from \"@smithy/core/protocols\";\nimport { getDateHeader, getSkewCorrectedDate, getUpdatedSystemClockOffset } from \"../utils\";\nconst throwSigningPropertyError = (name, property) => {\n if (!property) {\n throw new Error(`Property \\`${name}\\` is not resolved for AWS SDK SigV4Auth`);\n }\n return property;\n};\nexport const validateSigningProperties = async (signingProperties) => {\n const context = throwSigningPropertyError(\"context\", signingProperties.context);\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const signerFunction = throwSigningPropertyError(\"signer\", config.signer);\n const signer = await signerFunction(authScheme);\n const signingRegion = signingProperties?.signingRegion;\n const signingRegionSet = signingProperties?.signingRegionSet;\n const signingName = signingProperties?.signingName;\n return {\n config,\n signer,\n signingRegion,\n signingRegionSet,\n signingName,\n };\n};\nexport class AwsSdkSigV4Signer {\n async sign(httpRequest, identity, signingProperties) {\n if (!HttpRequest.isInstance(httpRequest)) {\n throw new Error(\"The request is not an instance of `HttpRequest` and cannot be signed\");\n }\n const validatedProps = await validateSigningProperties(signingProperties);\n const { config, signer } = validatedProps;\n let { signingRegion, signingName } = validatedProps;\n const handlerExecutionContext = signingProperties.context;\n if (handlerExecutionContext?.authSchemes?.length ?? 0 > 1) {\n const [first, second] = handlerExecutionContext.authSchemes;\n if (first?.name === \"sigv4a\" && second?.name === \"sigv4\") {\n signingRegion = second?.signingRegion ?? signingRegion;\n signingName = second?.signingName ?? signingName;\n }\n }\n signingProperties._preRequestSystemClockOffset = config.systemClockOffset;\n const signedRequest = await signer.sign(httpRequest, {\n signingDate: getSkewCorrectedDate(config.systemClockOffset),\n signingRegion: signingRegion,\n signingService: signingName,\n });\n return signedRequest;\n }\n errorHandler(signingProperties) {\n return (error) => {\n const errorException = error;\n const serverTime = errorException.ServerTime ?? getDateHeader(errorException.$response);\n if (serverTime) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n const preRequestOffset = signingProperties._preRequestSystemClockOffset;\n const newOffset = getUpdatedSystemClockOffset(serverTime, config.systemClockOffset);\n const isLocalCorrection = newOffset !== config.systemClockOffset;\n const isConcurrentCorrection = preRequestOffset !== undefined && preRequestOffset !== newOffset;\n const clockSkewCorrected = isLocalCorrection || isConcurrentCorrection;\n if (clockSkewCorrected && errorException.$metadata) {\n config.systemClockOffset = newOffset;\n errorException.$metadata.clockSkewCorrected = true;\n }\n }\n throw error;\n };\n }\n successHandler(httpResponse, signingProperties) {\n const dateHeader = getDateHeader(httpResponse);\n if (dateHeader) {\n const config = throwSigningPropertyError(\"config\", signingProperties.config);\n config.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, config.systemClockOffset);\n }\n }\n}\nexport const AWSSDKSigV4Signer = AwsSdkSigV4Signer;\n","import { setCredentialFeature } from \"@aws-sdk/core/client\";\nimport { doesIdentityRequireRefresh, isIdentityExpired, memoizeIdentityProvider, normalizeProvider, } from \"@smithy/core\";\nimport { SignatureV4 } from \"@smithy/signature-v4\";\nexport const resolveAwsSdkSigV4Config = (config) => {\n let inputCredentials = config.credentials;\n let isUserSupplied = !!config.credentials;\n let resolvedCredentials = undefined;\n Object.defineProperty(config, \"credentials\", {\n set(credentials) {\n if (credentials && credentials !== inputCredentials && credentials !== resolvedCredentials) {\n isUserSupplied = true;\n }\n inputCredentials = credentials;\n const memoizedProvider = normalizeCredentialProvider(config, {\n credentials: inputCredentials,\n credentialDefaultProvider: config.credentialDefaultProvider,\n });\n const boundProvider = bindCallerConfig(config, memoizedProvider);\n if (isUserSupplied && !boundProvider.attributed) {\n const isCredentialObject = typeof inputCredentials === \"object\" && inputCredentials !== null;\n resolvedCredentials = async (options) => {\n const creds = await boundProvider(options);\n const attributedCreds = creds;\n if (isCredentialObject && (!attributedCreds.$source || Object.keys(attributedCreds.$source).length === 0)) {\n return setCredentialFeature(attributedCreds, \"CREDENTIALS_CODE\", \"e\");\n }\n return attributedCreds;\n };\n resolvedCredentials.memoized = boundProvider.memoized;\n resolvedCredentials.configBound = boundProvider.configBound;\n resolvedCredentials.attributed = true;\n }\n else {\n resolvedCredentials = boundProvider;\n }\n },\n get() {\n return resolvedCredentials;\n },\n enumerable: true,\n configurable: true,\n });\n config.credentials = inputCredentials;\n const { signingEscapePath = true, systemClockOffset = config.systemClockOffset || 0, sha256, } = config;\n let signer;\n if (config.signer) {\n signer = normalizeProvider(config.signer);\n }\n else if (config.regionInfoProvider) {\n signer = () => normalizeProvider(config.region)()\n .then(async (region) => [\n (await config.regionInfoProvider(region, {\n useFipsEndpoint: await config.useFipsEndpoint(),\n useDualstackEndpoint: await config.useDualstackEndpoint(),\n })) || {},\n region,\n ])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n config.signingRegion = config.signingRegion || signingRegion || region;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n });\n }\n else {\n signer = async (authScheme) => {\n authScheme = Object.assign({}, {\n name: \"sigv4\",\n signingName: config.signingName || config.defaultSigningName,\n signingRegion: await normalizeProvider(config.region)(),\n properties: {},\n }, authScheme);\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n config.signingRegion = config.signingRegion || signingRegion;\n config.signingName = config.signingName || signingService || config.serviceId;\n const params = {\n ...config,\n credentials: config.credentials,\n region: config.signingRegion,\n service: config.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = config.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n };\n }\n const resolvedConfig = Object.assign(config, {\n systemClockOffset,\n signingEscapePath,\n signer,\n });\n return resolvedConfig;\n};\nexport const resolveAWSSDKSigV4Config = resolveAwsSdkSigV4Config;\nfunction normalizeCredentialProvider(config, { credentials, credentialDefaultProvider, }) {\n let credentialsProvider;\n if (credentials) {\n if (!credentials?.memoized) {\n credentialsProvider = memoizeIdentityProvider(credentials, isIdentityExpired, doesIdentityRequireRefresh);\n }\n else {\n credentialsProvider = credentials;\n }\n }\n else {\n if (credentialDefaultProvider) {\n credentialsProvider = normalizeProvider(credentialDefaultProvider(Object.assign({}, config, {\n parentClientConfig: config,\n })));\n }\n else {\n credentialsProvider = async () => {\n throw new Error(\"@aws-sdk/core::resolveAwsSdkSigV4Config - `credentials` not provided and no credentialDefaultProvider was configured.\");\n };\n }\n }\n credentialsProvider.memoized = true;\n return credentialsProvider;\n}\nfunction bindCallerConfig(config, credentialsProvider) {\n if (credentialsProvider.configBound) {\n return credentialsProvider;\n }\n const fn = async (options) => credentialsProvider({ ...options, callerClientConfig: config });\n fn.memoized = credentialsProvider.memoized;\n fn.configBound = true;\n return fn;\n}\n","const fallbackWindow = {};\nexport function locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n else if (typeof self !== \"undefined\") {\n return self;\n }\n return fallbackWindow;\n}\n","import { __awaiter, __generator } from \"tslib\";\nvar subtleCryptoMethods = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\nexport function supportsWebCrypto(window) {\n if (supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\") {\n var subtle = window.crypto.subtle;\n return supportsSubtleCrypto(subtle);\n }\n return false;\n}\nexport function supportsSecureRandom(window) {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n var getRandomValues = window.crypto.getRandomValues;\n return typeof getRandomValues === \"function\";\n }\n return false;\n}\nexport function supportsSubtleCrypto(subtle) {\n return (subtle &&\n subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === \"function\"; }));\n}\nexport function supportsZeroByteGCM(subtle) {\n return __awaiter(this, void 0, void 0, function () {\n var key, zeroByteAuthTag, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!supportsSubtleCrypto(subtle))\n return [2 /*return*/, false];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, subtle.generateKey({ name: \"AES-GCM\", length: 128 }, false, [\"encrypt\"])];\n case 2:\n key = _b.sent();\n return [4 /*yield*/, subtle.encrypt({\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n }, key, new Uint8Array(0))];\n case 3:\n zeroByteAuthTag = _b.sent();\n return [2 /*return*/, zeroByteAuthTag.byteLength === 16];\n case 4:\n _a = _b.sent();\n return [2 /*return*/, false];\n case 5: return [2 /*return*/];\n }\n });\n });\n}\n//# sourceMappingURL=supportsWebCrypto.js.map","export var SHA_256_HASH = { name: \"SHA-256\" };\nexport var SHA_256_HMAC_ALGO = {\n name: \"HMAC\",\n hash: SHA_256_HASH\n};\nexport var EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n//# sourceMappingURL=constants.js.map","import { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nimport { EMPTY_DATA_SHA_256, SHA_256_HASH, SHA_256_HMAC_ALGO, } from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.toHash = new Uint8Array(0);\n this.secret = secret;\n this.reset();\n }\n Sha256.prototype.update = function (data) {\n if (isEmptyData(data)) {\n return;\n }\n var update = convertToBuffer(data);\n var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength);\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n };\n Sha256.prototype.digest = function () {\n var _this = this;\n if (this.key) {\n return this.key.then(function (key) {\n return locateWindow()\n .crypto.subtle.sign(SHA_256_HMAC_ALGO, key, _this.toHash)\n .then(function (data) { return new Uint8Array(data); });\n });\n }\n if (isEmptyData(this.toHash)) {\n return Promise.resolve(EMPTY_DATA_SHA_256);\n }\n return Promise.resolve()\n .then(function () {\n return locateWindow().crypto.subtle.digest(SHA_256_HASH, _this.toHash);\n })\n .then(function (data) { return Promise.resolve(new Uint8Array(data)); });\n };\n Sha256.prototype.reset = function () {\n var _this = this;\n this.toHash = new Uint8Array(0);\n if (this.secret && this.secret !== void 0) {\n this.key = new Promise(function (resolve, reject) {\n locateWindow()\n .crypto.subtle.importKey(\"raw\", convertToBuffer(_this.secret), SHA_256_HMAC_ALGO, false, [\"sign\"])\n .then(resolve, reject);\n });\n this.key.catch(function () { });\n }\n };\n return Sha256;\n}());\nexport { Sha256 };\n//# sourceMappingURL=webCryptoSha256.js.map","/**\n * @internal\n */\nexport var BLOCK_SIZE = 64;\n/**\n * @internal\n */\nexport var DIGEST_LENGTH = 32;\n/**\n * @internal\n */\nexport var KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n/**\n * @internal\n */\nexport var INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n/**\n * @internal\n */\nexport var MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n//# sourceMappingURL=constants.js.map","import { BLOCK_SIZE, DIGEST_LENGTH, INIT, KEY, MAX_HASHABLE_LENGTH } from \"./constants\";\n/**\n * @internal\n */\nvar RawSha256 = /** @class */ (function () {\n function RawSha256() {\n this.state = Int32Array.from(INIT);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @internal\n */\n this.finished = false;\n }\n RawSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n };\n RawSha256.prototype.digest = function () {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Uint8Array(DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return out;\n };\n RawSha256.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7];\n for (var i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n this.temp[i] =\n ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0);\n }\n var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n var t2 = ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n };\n return RawSha256;\n}());\nexport { RawSha256 };\n//# sourceMappingURL=RawSha256.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n this.secret = secret;\n this.hash = new RawSha256();\n this.reset();\n }\n Sha256.prototype.update = function (toHash) {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n try {\n this.hash.update(convertToBuffer(toHash));\n }\n catch (e) {\n this.error = e;\n }\n };\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n Sha256.prototype.digestSync = function () {\n if (this.error) {\n throw this.error;\n }\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n return this.outer.digest();\n }\n return this.hash.digest();\n };\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n Sha256.prototype.digest = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.digestSync()];\n });\n });\n };\n Sha256.prototype.reset = function () {\n this.hash = new RawSha256();\n if (this.secret) {\n this.outer = new RawSha256();\n var inner = bufferFromSecret(this.secret);\n var outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n for (var i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n this.hash.update(inner);\n this.outer.update(outer);\n // overwrite the copied key in memory\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n };\n return Sha256;\n}());\nexport { Sha256 };\nfunction bufferFromSecret(secret) {\n var input = convertToBuffer(secret);\n if (input.byteLength > BLOCK_SIZE) {\n var bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n//# sourceMappingURL=jsSha256.js.map","import { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\nimport { Sha256 as JsSha256 } from \"@aws-crypto/sha256-js\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nimport { convertToBuffer } from \"@aws-crypto/util\";\nvar Sha256 = /** @class */ (function () {\n function Sha256(secret) {\n if (supportsWebCrypto(locateWindow())) {\n this.hash = new WebCryptoSha256(secret);\n }\n else {\n this.hash = new JsSha256(secret);\n }\n }\n Sha256.prototype.update = function (data, encoding) {\n this.hash.update(convertToBuffer(data));\n };\n Sha256.prototype.digest = function () {\n return this.hash.digest();\n };\n Sha256.prototype.reset = function () {\n this.hash.reset();\n };\n return Sha256;\n}());\nexport { Sha256 };\n//# sourceMappingURL=crossPlatformSha256.js.map","export function createRequest(url, requestOptions) {\n return new Request(url, requestOptions);\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, buildQueryString } from \"@smithy/core/protocols\";\nimport { createRequest } from \"./create-request\";\nimport { requestTimeout as requestTimeoutFn } from \"./request-timeout\";\nexport const keepAliveSupport = {\n supported: undefined,\n};\nexport class FetchHttpHandler {\n config;\n configProvider;\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 if (keepAliveSupport.supported === undefined) {\n keepAliveSupport.supported = Boolean(typeof Request !== \"undefined\" && \"keepalive\" in createRequest(\"https://[::1]\"));\n }\n }\n destroy() {\n }\n async handle(request, { abortSignal, requestTimeout } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const requestTimeoutInMs = requestTimeout ?? this.config.requestTimeout;\n const keepAlive = this.config.keepAlive === true;\n const credentials = this.config.credentials;\n if (abortSignal?.aborted) {\n const abortError = buildAbortError(abortSignal);\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 credentials,\n };\n if (this.config?.cache) {\n requestOptions.cache = this.config.cache;\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 if (typeof this.config.requestInit === \"function\") {\n Object.assign(requestOptions, this.config.requestInit(request));\n }\n let removeSignalEventListener = () => { };\n const fetchRequest = createRequest(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 requestTimeoutFn(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise((resolve, reject) => {\n const onAbort = () => {\n const abortError = buildAbortError(abortSignal);\n reject(abortError);\n };\n if (typeof abortSignal.addEventListener === \"function\") {\n const signal = abortSignal;\n signal.addEventListener(\"abort\", onAbort, { once: true });\n removeSignalEventListener = () => signal.removeEventListener(\"abort\", onAbort);\n }\n else {\n abortSignal.onabort = onAbort;\n }\n }));\n }\n return Promise.race(raceOfPromises).finally(removeSignalEventListener);\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}\nfunction buildAbortError(abortSignal) {\n const reason = abortSignal && typeof abortSignal === \"object\" && \"reason\" in abortSignal\n ? abortSignal.reason\n : undefined;\n if (reason) {\n if (reason instanceof Error) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n abortError.cause = reason;\n return abortError;\n }\n const abortError = new Error(String(reason));\n abortError.name = \"AbortError\";\n return abortError;\n }\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return abortError;\n}\n","import { fromBase64 } from \"@smithy/core/serde\";\nexport const streamCollector = async (stream) => {\n if ((typeof Blob === \"function\" && stream instanceof Blob) || stream.constructor?.name === \"Blob\") {\n if (Blob.prototype.arrayBuffer !== undefined) {\n return new Uint8Array(await stream.arrayBuffer());\n }\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"],"names":["setCredentialFeature","credentials","feature","value","isStreamingPayload","request","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","options","override","toOverrideIndex","toOverride","plugin","tags","cloned","mw","step","toggle","handler","context","EndpointURLScheme","AlgorithmId","SMITHY_CONTEXT_KEY","getSmithyContext","HttpRequest","__publicField","cloneQuery","req","query","carry","paramName","param","HttpResponse","response","resp","VALID_HOST_LABEL_REGEX","isValidHostLabel","allowSubDomains","labels","label","normalizeProvider","input","promisified","parseQueryString","querystring","pair","key","parseUrl","url","hostname","pathname","port","protocol","search","toEndpointV1","endpoint","v1Endpoint","invalidProvider","message","Client","config","protocolSettings","command","optionsOrCb","cb","callback","useHandlerCache","handlers","result","err","_c","_b","deref","schemaRef","operation","namespace","traits","output","schemaDeserializationMiddleware","next","args","operationSchema","ns","n","t","i","o","parsed","error","hint","_d","headers","statusCode","headerEntries","findHeader","pattern","k","schemaSerializationMiddleware","deserializerMiddlewareOption","serializerMiddlewareOption","getSchemaSerdePlugin","commandStack","traitsCache","translateTraits","indicator","trait","anno","simpleSchemaCacheN","simpleSchemaCacheS","_NormalizedSchema","ref","memberName","traitStack","_ref","schema","isMemberSchema","traitSet","computedMemberTraits","isStaticSchema","lhs","isPrototype","keyAble","sc","withNamespace","id","streaming","isDoc","isMap","memberSchema","member","isList","struct","buffer","v","z","it","NormalizedSchema","internalCtorAccess","_TypeRegistry","schemas","exceptions","other","shapeId","qualifiedName","r","suffix","candidates","es","ctor","$error","exceptionKey","predicate","TypeRegistry","SENSITIVE_STRING","schemaLogFilter","data","object","newObject","memberNs","Command","ClassBuilder","clientStack","configuration","middlewareFn","clientName","commandName","inputFilterSensitiveLog","outputFilterSensitiveLog","smithyContext","additionalContext","CommandCtor","logger","handlerExecutionContext","requestHandler","requestOptions","endpointParameterInstructions","middlewareSupplier","service","inputFilter","_","outputFilter","serializer","deserializer","closure","CommandRef","op","ServiceException","candidate","instance","decorateServiceException","exception","additions","loadConfigsForDefaultMode","mode","knownAlgorithms","getChecksumConfiguration","runtimeConfig","checksumAlgorithms","algorithmId","ChecksumCtor","algo","resolveChecksumRuntimeConfig","clientConfig","checksumAlgorithm","getRetryConfiguration","retryStrategy","resolveRetryRuntimeConfig","retryStrategyConfiguration","getDefaultExtensionConfiguration","resolveDefaultRuntimeConfig","NoOpLogger","chars","alphabetByEncoding","acc","c","alphabetByValue","bitsPerLetter","bitsPerByte","maxLetterValue","fromBase64","totalByteLength","out","dataView","bits","bitLength","j","limit","chunkOffset","byteLength","offset","fromUtf8","toBase64","_input","isArrayLike","isUint8Array","str","bitClusterCount","bindUint8ArrayBlobAdapter","toUtf8","Uint8ArrayBlobAdapter","source","encoding","decimalToHex","bindV4","getRandomValues","rnds","expectNumber","stackTraceWarning","MAX_FLOAT","expectFloat32","expected","expectLong","expectShort","expectSizedInt","expectByte","size","castInt","strictParseDouble","parseNumber","strictParseFloat32","NUMBER_REGEX","matches","strictParseShort","strictParseByte","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","parseEpochTimestamp","valueAsDouble","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","LazyJsonString","val","format","NumericValue","string","_nv","SHORT_TO_HEX","HEX_TO_SHORT","encodedByte","fromHex","encoded","toHex","bytes","TEXT_ENCODER","calculateBodyLength","body","len","code","toUint8Array","isArrayBuffer","arg","getEndpointFromConfig","serviceId","resolveParamsForS3","endpointParams","bucket","isArnBucketName","isDnsCompatibleBucketName","DOMAIN_PATTERN","IP_ADDRESS_PATTERN","DOTS_PATTERN","bucketName","arn","partition","isArn","isValidArn","createConfigValueProvider","configKey","canonicalEndpointParamKey","isClientContextParam","configProvider","configValue","clientContextParams","path","bindGetEndpointFromInstructions","commandInput","instructionsSupplier","endpointFromConfig","resolveParams","customEndpoint","instructions","instruction","setFeature","bindEndpointMiddleware","getEndpointFromInstructions","authScheme","httpAuthOption","endpointMiddlewareOptions","bindGetEndpointPlugin","endpointMiddleware","bindResolveEndpointConfig","tls","useDualstackEndpoint","useFipsEndpoint","customEndpointProvider","resolvedConfig","configuredEndpointPromise","BinaryDecisionDiagram","bdd","root","conditions","results","EndpointCache","params","resolver","keys","done","parameters","EndpointError","debugId","toDebugString","customEndpointFunctions","booleanEquals","value1","value2","coalesce","getAttrPathList","parts","pathList","part","squareBracketIndex","arrayIndex","getAttr","index","isSet","ite","condition","trueValue","falseValue","not","IP_V4_REGEX","isIpAddress","DEFAULT_PORTS","parseURL","whatwgURL","urlString","host","scheme","isIp","inputContainsDefaultPort","authority","split","delimiter","stringEquals","substring","start","stop","reverse","uriEncode","endpointFunctions","evaluateTemplate","template","evaluatedTemplateArr","referenceRecord","currentIndex","openingBraceIndex","closingBraceIndex","parameterName","refName","attrName","getReferenceValue","evaluateExpression","obj","keyName","group","callFunction","fn","argv","evaluatedArgs","namespaceSeparatorIndex","namespaceFunctions","customFunction","callable","evaluateCondition","assign","getEndpointHeaders","headerKey","headerVal","headerValEntry","processedExpr","getEndpointProperties","properties","propertyKey","propertyVal","getEndpointProperty","property","propertyEntry","getEndpointUrl","endpointUrl","expression","RESULT","decideEndpoint","nodes","node_i","condition_i","highRef","lowRef","evaluation","errorExpression","resolveEndpointConfig","getEndpointPlugin","_getRandomValues","array","v4","generateIdempotencyToken","collectBody","streamBody","fromContext","SerdeContext","serdeContext","HttpProtocol","etr","inputNs","opTraits","hostPrefix","replacement","eventStream","requestSchema","initialRequest","responseSchema","initialResponseContainer","EventStreamSerde","eventStreamSerdeProvider","marshaller","importedProvider","arg4","arg5","determineTimestampFormat","settings","httpLabel","httpPrefixHeaders","httpHeader","httpQuery","getHttpHandlerExtensionConfiguration","resolveHttpHandlerRuntimeConfig","httpHandlerExtensionConfiguration","CONTENT_LENGTH_HEADER","contentLengthMiddleware","bodyLengthChecker","length","contentLengthMiddlewareOptions","getContentLengthPlugin","escapeUri","uri","hexEncode","buildQueryString","iLen","qsEntry","THROTTLING_ERROR_CODES","TRANSIENT_ERROR_CODES","TRANSIENT_ERROR_STATUS_CODES","NODEJS_TIMEOUT_ERROR_CODES","NODEJS_NETWORK_ERROR_CODES","isRetryableByTrait","isClockSkewCorrectedError","isBrowserNetworkError","errorMessages","isThrottlingError","isTransientError","depth","isNodeJsHttp2TransientError","isServerError","MAXIMUM_RETRY_DELAY","INITIAL_RETRY_TOKENS","NO_RETRY_INCREMENT","INVOCATION_ID_HEADER","REQUEST_HEADER","parseRetryAfterHeader","header","h","retryAfter","retryAfterSeconds","e","backoffMilliseconds","asSdkError","bindRetryMiddleware","maxAttempts","isRetryStrategyV2","retryToken","lastError","attempts","totalRetryDelay","isRequest","retryErrorInfo","getRetryErrorInfo","delay","cooldown","ms","resolve","errorInfo","getRetryErrorType","retryAfterHint","retryMiddlewareOptions","bindGetRetryPlugin","retryMiddleware","_DefaultRateLimiter","calculatedRate","rateToUse","newRate","amount","timestamp","fillAmount","timeBucket","currentRate","num","DefaultRateLimiter","_Retry","Retry","DefaultRetryBackoffStrategy","t_i","DefaultRetryToken","count","cost","longPoll","RETRY_MODES","DEFAULT_MAX_ATTEMPTS","DEFAULT_RETRY_MODE","refusal","StandardRetryStrategy","arg1","retryTokenScope","token","retryCode","shouldRetry","isLongPoll","errorType","delayFromErrorType","retryDelay","capacityCost","nextToken","longPollBackoff","tokenToRenew","retryableStatus","attemptStatus","capacityStatus","AdaptiveRetryStrategy","maxAttemptsProvider","rateLimiter","resolveRetryConfig","defaults","retryMode","defaultMaxAttempts","defaultBaseDelay","controller","getDefault","getRetryPlugin","resolveHostHeaderConfig","hostHeaderMiddleware","handlerProtocol","hostHeaderMiddlewareOptions","getHostHeaderPlugin","loggerMiddleware","dynamoDbDocumentClientOptions","overrideInputFilterSensitiveLog","overrideOutputFilterSensitiveLog","$metadata","outputWithoutMetadata","loggerMiddlewareOptions","getLoggerPlugin","getRecursionDetectionPlugin","resolveAuthOptions","candidateAuthOptions","authSchemePreference","preferredAuthOptions","preferredSchemeName","candidateAuthOption","schemeId","convertHttpAuthSchemesToMap","httpAuthSchemes","map","httpAuthSchemeMiddleware","mwOptions","resolvedOptions","authSchemes","failureReasons","option","identityProvider","identityProperties","signingProperties","httpAuthSchemeEndpointRuleSetMiddlewareOptions","getHttpAuthSchemeEndpointRuleSetPlugin","httpAuthSchemeParametersProvider","identityProviderConfigProvider","defaultErrorHandler","defaultSuccessHandler","httpResponse","httpSigningMiddleware","identity","signer","httpSigningMiddlewareOptions","getHttpSigningPlugin","DefaultIdentityProviderConfig","createIsIdentityExpiredFunction","expirationMs","doesIdentityRequireRefresh","EXPIRATION_MS","isIdentityExpired","memoizeIdentityProvider","provider","isExpired","requiresRefresh","normalizedProvider","resolved","pending","hasResult","isConstant","coalesceProvider","DEFAULT_UA_APP_ID","isValidUserAgentAppId","appId","resolveUserAgentConfig","normalizedAppIdProvider","customUserAgent","partitionsInfo","selectedPartitionsInfo","partitions","regions","outputs","region","regionData","regionRegex","DEFAULT_PARTITION","ACCOUNT_ID_ENDPOINT_REGEX","checkFeatures","endpointV2","_e","USER_AGENT","X_AMZ_USER_AGENT","SPACE","UA_NAME_SEPARATOR","UA_NAME_ESCAPE_REGEX","UA_VALUE_ESCAPE_REGEX","UA_ESCAPE_CHAR","BYTE_LIMIT","encodeFeatures","features","userAgentMiddleware","userAgent","escapeUserAgent","defaultUserAgent","awsContext","sdkUserAgentValue","normalUAValue","section","userAgentPair","version","prefixSeparatorIndex","prefix","uaName","item","getUserAgentMiddlewareOptions","getUserAgentPlugin","createDefaultUserAgentProvider","clientVersion","navigator","uaString","osName","fallback","osVersion","brands","brand","browserName","browserVersion","sections","ua","isVirtualHostableS3Bucket","ARN_DELIMITER","RESOURCE_DELIMITER","parseArn","segments","accountId","resourcePath","resourceId","resource","awsEndpointFunctions","memoize","validRegions","checkRegion","check","isFipsRegion","getRealRegion","resolveRegionConfig","providedRegion","realRegion","DEFAULTS_MODE_OPTIONS","resolveDefaultsModeConfig","defaultsMode","useMobileConfiguration","effectiveType","rtt","downlink","DEFAULT_USE_DUALSTACK_ENDPOINT","DEFAULT_USE_FIPS_ENDPOINT","getAwsRegionExtensionConfiguration","resolveAwsRegionExtensionConfiguration","awsRegionExtensionConfiguration","fromUtf8Browser","convertToBuffer","isEmptyData","HeaderFormatter","chunks","headerName","position","chunk","shortView","intView","longBytes","binView","binBytes","utf8Bytes","strView","strBytes","tsBytes","Int64","UUID_PATTERN","uuidBytes","HEADER_VALUE_TYPE","number","remaining","negate","negative","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","getCanonicalQuery","serialized","encodedKey","iso8601","toDate","SignatureV4Base","applyChecksum","sha256","uriEscapePath","canonicalHeaders","payloadHash","sortedHeaders","longDate","credentialScope","canonicalRequest","algorithmIdentifier","hash","hashedRequest","normalizedPathSegments","pathSegment","normalizedPath","now","signingKeyCache","cacheQueue","createScope","shortDate","getSigningKey","sha256Constructor","credsHash","hmac","cacheKey","signable","secret","getCanonicalHeaders","unsignableHeaders","signableHeaders","canonical","canonicalHeaderName","getPayloadHash","hashConstructor","hashCtor","hasHeader","soughtHeader","moveHeadersToQuery","lname","prepareRequest","SignatureV4","originalRequest","signingDate","expiresIn","unhoistableHeaders","hoistableHeaders","signingRegion","signingService","scope","toSign","payload","priorSignature","eventStreamCredentials","hashedPayload","hashedHeaders","stringToSign","signableMessage","signature","requestToSign","keyPromise","ProtocolLib","queryCompat","defaultContentType","inputSchema","members","httpPayloadMember","m","mediaType","httpQueryParams","errorIdentifier","defaultNamespace","dataObject","metadata","getErrorSchema","errorName","errorMetadata","synthetic","baseExceptionSchema","ErrorCtor","d","composite","staticRegistry","defaultSyntheticRegistry","msg","errorObj","reqId","queryErrorHeader","Code","Type","Error","queryCompatErrorData","errorData","registry","SerdeContextConfig","UnionSerde","to","set","getDateHeader","getSkewCorrectedDate","systemClockOffset","isClockSkewed","clockTime","getUpdatedSystemClockOffset","currentSystemClockOffset","clockTimeInMs","throwSigningPropertyError","validateSigningProperties","signingRegionSet","signingName","AwsSdkSigV4Signer","httpRequest","validatedProps","first","second","errorException","serverTime","preRequestOffset","newOffset","dateHeader","resolveAwsSdkSigV4Config","inputCredentials","isUserSupplied","resolvedCredentials","memoizedProvider","normalizeCredentialProvider","boundProvider","bindCallerConfig","isCredentialObject","attributedCreds","signingEscapePath","regionInfo","SignerCtor","credentialDefaultProvider","credentialsProvider","fallbackWindow","locateWindow","subtleCryptoMethods","supportsWebCrypto","window","supportsSecureRandom","subtle","supportsSubtleCrypto","methodName","SHA_256_HASH","SHA_256_HMAC_ALGO","EMPTY_DATA_SHA_256","Sha256","update","typedArray","_this","reject","BLOCK_SIZE","DIGEST_LENGTH","KEY","INIT","MAX_HASHABLE_LENGTH","RawSha256","bitsHashed","bufferView","undecoratedLength","state","state0","state1","state2","state3","state4","state5","state6","state7","u","t1_1","t2_1","t1","t2","toHash","__awaiter","__generator","inner","bufferFromSecret","outer","bufferHash","WebCryptoSha256","JsSha256","createRequest","requestTimeout","timeoutInMs","timeoutError","keepAliveSupport","FetchHttpHandler","opts","instanceOrOptions","abortSignal","requestTimeoutInMs","keepAlive","abortError","buildAbortError","queryString","auth","username","password","method","removeSignalEventListener","fetchRequest","raceOfPromises","fetchHeaders","transformedHeaders","requestTimeoutFn","onAbort","signal","reason","streamCollector","stream","collectBlob","collectStream","blob","base64","readToBase64","arrayBuffer","reader","isDone","collected","commaIndex","dataOffset"],"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,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174]}
|