@aws-sdk/core
Advanced tools
@@ -5,4 +5,2 @@ /** | ||
| */ | ||
| declare module "@aws-sdk/core/account-id-endpoint" { | ||
| export * from "@aws-sdk/core/dist-types/submodules/account-id-endpoint/index.d"; | ||
| } | ||
| export * from "./dist-types/submodules/account-id-endpoint/index"; |
+1
-3
@@ -5,4 +5,2 @@ /** | ||
| */ | ||
| declare module "@aws-sdk/core/client" { | ||
| export * from "@aws-sdk/core/dist-types/submodules/client/index.d"; | ||
| } | ||
| export * from "./dist-types/submodules/client/index"; |
@@ -5,4 +5,2 @@ /** | ||
| */ | ||
| declare module "@aws-sdk/core/httpAuthSchemes" { | ||
| export * from "@aws-sdk/core/dist-types/submodules/httpAuthSchemes/index.d"; | ||
| } | ||
| export * from "./dist-types/submodules/httpAuthSchemes/index"; |
+8
-14
| { | ||
| "name": "@aws-sdk/core", | ||
| "version": "3.974.23", | ||
| "version": "3.974.24", | ||
| "description": "Core functions & classes shared by multiple AWS SDK clients.", | ||
@@ -41,10 +41,4 @@ "scripts": { | ||
| "types": "./dist-types/submodules/client/index.d.ts", | ||
| "react-native": { | ||
| "import": "./dist-es/submodules/client/index.native.js", | ||
| "require": "./dist-cjs/submodules/client/index.native.js" | ||
| }, | ||
| "browser": { | ||
| "import": "./dist-es/submodules/client/index.browser.js", | ||
| "require": "./dist-cjs/submodules/client/index.browser.js" | ||
| }, | ||
| "react-native": "./dist-es/submodules/client/index.native.js", | ||
| "browser": "./dist-es/submodules/client/index.browser.js", | ||
| "module": "./dist-es/submodules/client/index.js", | ||
@@ -114,8 +108,8 @@ "node": "./dist-cjs/submodules/client/index.js", | ||
| "dependencies": { | ||
| "@aws-sdk/types": "^3.973.13", | ||
| "@aws-sdk/xml-builder": "^3.972.31", | ||
| "@aws-sdk/types": "^3.973.14", | ||
| "@aws-sdk/xml-builder": "^3.972.32", | ||
| "@aws/lambda-invoke-store": "^0.2.2", | ||
| "@smithy/core": "^3.24.6", | ||
| "@smithy/signature-v4": "^5.4.6", | ||
| "@smithy/types": "^4.14.3", | ||
| "@smithy/core": "^3.27.0", | ||
| "@smithy/signature-v4": "^5.5.3", | ||
| "@smithy/types": "^4.15.0", | ||
| "bowser": "^2.11.0", | ||
@@ -122,0 +116,0 @@ "tslib": "^2.6.2" |
+1
-3
@@ -5,4 +5,2 @@ /** | ||
| */ | ||
| declare module "@aws-sdk/core/protocols" { | ||
| export * from "@aws-sdk/core/dist-types/submodules/protocols/index.d"; | ||
| } | ||
| export * from "./dist-types/submodules/protocols/index"; |
+1
-3
@@ -5,4 +5,2 @@ /** | ||
| */ | ||
| declare module "@aws-sdk/core/util" { | ||
| export * from "@aws-sdk/core/dist-types/submodules/util/index.d"; | ||
| } | ||
| export * from "./dist-types/submodules/util/index"; |
| const { Retry, RETRY_MODES } = require("@smithy/core/retry"); | ||
| const { HttpRequest, parseUrl } = require("@smithy/core/protocols"); | ||
| const { normalizeProvider } = require("@smithy/core"); | ||
| const { isValidHostLabel, isIpAddress, customEndpointFunctions } = require("@smithy/core/endpoints"); | ||
| const { EndpointError, resolveEndpoint } = require("@smithy/core/endpoints"); | ||
| exports.EndpointError = EndpointError; | ||
| exports.isIpAddress = isIpAddress; | ||
| exports.resolveEndpoint = resolveEndpoint; | ||
| const { resolveRegionConfig } = require("@smithy/core/config"); | ||
| exports.resolveRegionConfig = resolveRegionConfig; | ||
| const longPollMiddleware = () => (next, context) => async (args) => { | ||
| context.__retryLongPoll = true; | ||
| return next(args); | ||
| }; | ||
| const longPollMiddlewareOptions = { | ||
| name: "longPollMiddleware", | ||
| tags: ["RETRY"], | ||
| step: "initialize", | ||
| override: true, | ||
| }; | ||
| const getLongPollPlugin = (options) => ({ | ||
| applyToStack: (clientStack) => { | ||
| clientStack.add(longPollMiddleware(), longPollMiddlewareOptions); | ||
| }, | ||
| }); | ||
| function setCredentialFeature(credentials, feature, value) { | ||
| if (!credentials.$source) { | ||
| credentials.$source = {}; | ||
| } | ||
| credentials.$source[feature] = value; | ||
| return credentials; | ||
| } | ||
| Retry.v2026 ||= typeof process === "object" && process.env?.AWS_NEW_RETRIES_2026 === "true"; | ||
| function setFeature(context, feature, value) { | ||
| if (!context.__aws_sdk_context) { | ||
| context.__aws_sdk_context = { | ||
| features: {}, | ||
| }; | ||
| } | ||
| else if (!context.__aws_sdk_context.features) { | ||
| context.__aws_sdk_context.features = {}; | ||
| } | ||
| context.__aws_sdk_context.features[feature] = value; | ||
| } | ||
| function setTokenFeature(token, feature, value) { | ||
| if (!token.$source) { | ||
| token.$source = {}; | ||
| } | ||
| token.$source[feature] = value; | ||
| return token; | ||
| } | ||
| function resolveHostHeaderConfig(input) { | ||
| return input; | ||
| } | ||
| const hostHeaderMiddleware = (options) => (next) => async (args) => { | ||
| if (!HttpRequest.isInstance(args.request)) | ||
| return next(args); | ||
| const { request } = args; | ||
| const { handlerProtocol = "" } = options.requestHandler.metadata || {}; | ||
| if (handlerProtocol.indexOf("h2") >= 0 && !request.headers[":authority"]) { | ||
| delete request.headers["host"]; | ||
| request.headers[":authority"] = request.hostname + (request.port ? ":" + request.port : ""); | ||
| } | ||
| else if (!request.headers["host"]) { | ||
| let host = request.hostname; | ||
| if (request.port != null) | ||
| host += `:${request.port}`; | ||
| request.headers["host"] = host; | ||
| } | ||
| return next(args); | ||
| }; | ||
| const hostHeaderMiddlewareOptions = { | ||
| name: "hostHeaderMiddleware", | ||
| step: "build", | ||
| priority: "low", | ||
| tags: ["HOST"], | ||
| override: true, | ||
| }; | ||
| const getHostHeaderPlugin = (options) => ({ | ||
| applyToStack: (clientStack) => { | ||
| clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions); | ||
| }, | ||
| }); | ||
| const loggerMiddleware = () => (next, context) => async (args) => { | ||
| try { | ||
| const response = await next(args); | ||
| const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; | ||
| const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions; | ||
| const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; | ||
| const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog; | ||
| const { $metadata, ...outputWithoutMetadata } = response.output; | ||
| logger?.info?.({ | ||
| clientName, | ||
| commandName, | ||
| input: inputFilterSensitiveLog(args.input), | ||
| output: outputFilterSensitiveLog(outputWithoutMetadata), | ||
| metadata: $metadata, | ||
| }); | ||
| return response; | ||
| } | ||
| catch (error) { | ||
| const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; | ||
| const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions; | ||
| const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; | ||
| logger?.error?.({ | ||
| clientName, | ||
| commandName, | ||
| input: inputFilterSensitiveLog(args.input), | ||
| error, | ||
| metadata: error.$metadata, | ||
| }); | ||
| throw error; | ||
| } | ||
| }; | ||
| const loggerMiddlewareOptions = { | ||
| name: "loggerMiddleware", | ||
| tags: ["LOGGER"], | ||
| step: "initialize", | ||
| override: true, | ||
| }; | ||
| const getLoggerPlugin = (options) => ({ | ||
| applyToStack: (clientStack) => { | ||
| clientStack.add(loggerMiddleware(), loggerMiddlewareOptions); | ||
| }, | ||
| }); | ||
| const recursionDetectionMiddlewareOptions = { | ||
| step: "build", | ||
| tags: ["RECURSION_DETECTION"], | ||
| name: "recursionDetectionMiddleware", | ||
| override: true, | ||
| priority: "low", | ||
| }; | ||
| const getRecursionDetectionPlugin = (options) => ({ | ||
| applyToStack: (clientStack) => { }, | ||
| }); | ||
| const recursionDetectionMiddleware = () => (next) => async (args) => next(args); | ||
| const DEFAULT_UA_APP_ID = undefined; | ||
| function isValidUserAgentAppId(appId) { | ||
| if (appId === undefined) { | ||
| return true; | ||
| } | ||
| return typeof appId === "string" && appId.length <= 50; | ||
| } | ||
| function resolveUserAgentConfig(input) { | ||
| const normalizedAppIdProvider = normalizeProvider(input.userAgentAppId ?? DEFAULT_UA_APP_ID); | ||
| const { customUserAgent } = input; | ||
| return Object.assign(input, { | ||
| customUserAgent: typeof customUserAgent === "string" ? [[customUserAgent]] : customUserAgent, | ||
| userAgentAppId: async () => { | ||
| const appId = await normalizedAppIdProvider(); | ||
| if (!isValidUserAgentAppId(appId)) { | ||
| const logger = input.logger?.constructor?.name === "NoOpLogger" || !input.logger ? console : input.logger; | ||
| if (typeof appId !== "string") { | ||
| logger?.warn("userAgentAppId must be a string or undefined."); | ||
| } | ||
| else if (appId.length > 50) { | ||
| logger?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters."); | ||
| } | ||
| } | ||
| return appId; | ||
| }, | ||
| }); | ||
| } | ||
| const partitionsInfo = { | ||
| "partitions": [ | ||
| { | ||
| "id": "aws", | ||
| "outputs": { | ||
| "dnsSuffix": "amazonaws.com", | ||
| "dualStackDnsSuffix": "api.aws", | ||
| "implicitGlobalRegion": "us-east-1", | ||
| "name": "aws", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "af-south-1": { | ||
| "description": "Africa (Cape Town)" | ||
| }, | ||
| "ap-east-1": { | ||
| "description": "Asia Pacific (Hong Kong)" | ||
| }, | ||
| "ap-east-2": { | ||
| "description": "Asia Pacific (Taipei)" | ||
| }, | ||
| "ap-northeast-1": { | ||
| "description": "Asia Pacific (Tokyo)" | ||
| }, | ||
| "ap-northeast-2": { | ||
| "description": "Asia Pacific (Seoul)" | ||
| }, | ||
| "ap-northeast-3": { | ||
| "description": "Asia Pacific (Osaka)" | ||
| }, | ||
| "ap-south-1": { | ||
| "description": "Asia Pacific (Mumbai)" | ||
| }, | ||
| "ap-south-2": { | ||
| "description": "Asia Pacific (Hyderabad)" | ||
| }, | ||
| "ap-southeast-1": { | ||
| "description": "Asia Pacific (Singapore)" | ||
| }, | ||
| "ap-southeast-2": { | ||
| "description": "Asia Pacific (Sydney)" | ||
| }, | ||
| "ap-southeast-3": { | ||
| "description": "Asia Pacific (Jakarta)" | ||
| }, | ||
| "ap-southeast-4": { | ||
| "description": "Asia Pacific (Melbourne)" | ||
| }, | ||
| "ap-southeast-5": { | ||
| "description": "Asia Pacific (Malaysia)" | ||
| }, | ||
| "ap-southeast-6": { | ||
| "description": "Asia Pacific (New Zealand)" | ||
| }, | ||
| "ap-southeast-7": { | ||
| "description": "Asia Pacific (Thailand)" | ||
| }, | ||
| "aws-global": { | ||
| "description": "aws global region" | ||
| }, | ||
| "ca-central-1": { | ||
| "description": "Canada (Central)" | ||
| }, | ||
| "ca-west-1": { | ||
| "description": "Canada West (Calgary)" | ||
| }, | ||
| "eu-central-1": { | ||
| "description": "Europe (Frankfurt)" | ||
| }, | ||
| "eu-central-2": { | ||
| "description": "Europe (Zurich)" | ||
| }, | ||
| "eu-north-1": { | ||
| "description": "Europe (Stockholm)" | ||
| }, | ||
| "eu-south-1": { | ||
| "description": "Europe (Milan)" | ||
| }, | ||
| "eu-south-2": { | ||
| "description": "Europe (Spain)" | ||
| }, | ||
| "eu-west-1": { | ||
| "description": "Europe (Ireland)" | ||
| }, | ||
| "eu-west-2": { | ||
| "description": "Europe (London)" | ||
| }, | ||
| "eu-west-3": { | ||
| "description": "Europe (Paris)" | ||
| }, | ||
| "il-central-1": { | ||
| "description": "Israel (Tel Aviv)" | ||
| }, | ||
| "me-central-1": { | ||
| "description": "Middle East (UAE)" | ||
| }, | ||
| "me-south-1": { | ||
| "description": "Middle East (Bahrain)" | ||
| }, | ||
| "mx-central-1": { | ||
| "description": "Mexico (Central)" | ||
| }, | ||
| "sa-east-1": { | ||
| "description": "South America (Sao Paulo)" | ||
| }, | ||
| "us-east-1": { | ||
| "description": "US East (N. Virginia)" | ||
| }, | ||
| "us-east-2": { | ||
| "description": "US East (Ohio)" | ||
| }, | ||
| "us-west-1": { | ||
| "description": "US West (N. California)" | ||
| }, | ||
| "us-west-2": { | ||
| "description": "US West (Oregon)" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-cn", | ||
| "outputs": { | ||
| "dnsSuffix": "amazonaws.com.cn", | ||
| "dualStackDnsSuffix": "api.amazonwebservices.com.cn", | ||
| "implicitGlobalRegion": "cn-northwest-1", | ||
| "name": "aws-cn", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^cn\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-cn-global": { | ||
| "description": "aws-cn global region" | ||
| }, | ||
| "cn-north-1": { | ||
| "description": "China (Beijing)" | ||
| }, | ||
| "cn-northwest-1": { | ||
| "description": "China (Ningxia)" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-eusc", | ||
| "outputs": { | ||
| "dnsSuffix": "amazonaws.eu", | ||
| "dualStackDnsSuffix": "api.amazonwebservices.eu", | ||
| "implicitGlobalRegion": "eusc-de-east-1", | ||
| "name": "aws-eusc", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^eusc\\-(de)\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "eusc-de-east-1": { | ||
| "description": "AWS European Sovereign Cloud (Germany)" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-iso", | ||
| "outputs": { | ||
| "dnsSuffix": "c2s.ic.gov", | ||
| "dualStackDnsSuffix": "api.aws.ic.gov", | ||
| "implicitGlobalRegion": "us-iso-east-1", | ||
| "name": "aws-iso", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^us\\-iso\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-iso-global": { | ||
| "description": "aws-iso global region" | ||
| }, | ||
| "us-iso-east-1": { | ||
| "description": "US ISO East" | ||
| }, | ||
| "us-iso-west-1": { | ||
| "description": "US ISO WEST" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-iso-b", | ||
| "outputs": { | ||
| "dnsSuffix": "sc2s.sgov.gov", | ||
| "dualStackDnsSuffix": "api.aws.scloud", | ||
| "implicitGlobalRegion": "us-isob-east-1", | ||
| "name": "aws-iso-b", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^us\\-isob\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-iso-b-global": { | ||
| "description": "aws-iso-b global region" | ||
| }, | ||
| "us-isob-east-1": { | ||
| "description": "US ISOB East (Ohio)" | ||
| }, | ||
| "us-isob-west-1": { | ||
| "description": "US ISOB West" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-iso-e", | ||
| "outputs": { | ||
| "dnsSuffix": "cloud.adc-e.uk", | ||
| "dualStackDnsSuffix": "api.cloud-aws.adc-e.uk", | ||
| "implicitGlobalRegion": "eu-isoe-west-1", | ||
| "name": "aws-iso-e", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^eu\\-isoe\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-iso-e-global": { | ||
| "description": "aws-iso-e global region" | ||
| }, | ||
| "eu-isoe-west-1": { | ||
| "description": "EU ISOE West" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-iso-f", | ||
| "outputs": { | ||
| "dnsSuffix": "csp.hci.ic.gov", | ||
| "dualStackDnsSuffix": "api.aws.hci.ic.gov", | ||
| "implicitGlobalRegion": "us-isof-south-1", | ||
| "name": "aws-iso-f", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^us\\-isof\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-iso-f-global": { | ||
| "description": "aws-iso-f global region" | ||
| }, | ||
| "us-isof-east-1": { | ||
| "description": "US ISOF EAST" | ||
| }, | ||
| "us-isof-south-1": { | ||
| "description": "US ISOF SOUTH" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-us-gov", | ||
| "outputs": { | ||
| "dnsSuffix": "amazonaws.com", | ||
| "dualStackDnsSuffix": "api.aws", | ||
| "implicitGlobalRegion": "us-gov-west-1", | ||
| "name": "aws-us-gov", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^us\\-gov\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-us-gov-global": { | ||
| "description": "aws-us-gov global region" | ||
| }, | ||
| "us-gov-east-1": { | ||
| "description": "AWS GovCloud (US-East)" | ||
| }, | ||
| "us-gov-west-1": { | ||
| "description": "AWS GovCloud (US-West)" | ||
| } | ||
| } | ||
| } | ||
| ], | ||
| "version": "1.1" | ||
| }; | ||
| let selectedPartitionsInfo = partitionsInfo; | ||
| let selectedUserAgentPrefix = ""; | ||
| const partition = (value) => { | ||
| const { partitions } = selectedPartitionsInfo; | ||
| for (const partition of partitions) { | ||
| const { regions, outputs } = partition; | ||
| for (const [region, regionData] of Object.entries(regions)) { | ||
| if (region === value) { | ||
| return { | ||
| ...outputs, | ||
| ...regionData, | ||
| }; | ||
| } | ||
| } | ||
| } | ||
| for (const partition of partitions) { | ||
| const { regionRegex, outputs } = partition; | ||
| if (new RegExp(regionRegex).test(value)) { | ||
| return { | ||
| ...outputs, | ||
| }; | ||
| } | ||
| } | ||
| const DEFAULT_PARTITION = partitions.find((partition) => partition.id === "aws"); | ||
| if (!DEFAULT_PARTITION) { | ||
| throw new Error("Provided region was not found in the partition array or regex," + | ||
| " and default partition with id 'aws' doesn't exist."); | ||
| } | ||
| return { | ||
| ...DEFAULT_PARTITION.outputs, | ||
| }; | ||
| }; | ||
| const setPartitionInfo = (partitionsInfo, userAgentPrefix = "") => { | ||
| selectedPartitionsInfo = partitionsInfo; | ||
| selectedUserAgentPrefix = userAgentPrefix; | ||
| }; | ||
| const useDefaultPartitionInfo = () => { | ||
| setPartitionInfo(partitionsInfo, ""); | ||
| }; | ||
| const getUserAgentPrefix = () => selectedUserAgentPrefix; | ||
| const ACCOUNT_ID_ENDPOINT_REGEX = /\d{12}\.ddb/; | ||
| async function checkFeatures(context, config, args) { | ||
| const request = args.request; | ||
| if (request?.headers?.["smithy-protocol"] === "rpc-v2-cbor") { | ||
| setFeature(context, "PROTOCOL_RPC_V2_CBOR", "M"); | ||
| } | ||
| if (typeof config.retryStrategy === "function") { | ||
| const retryStrategy = await config.retryStrategy(); | ||
| if (typeof retryStrategy.mode === "string") { | ||
| switch (retryStrategy.mode) { | ||
| case RETRY_MODES.ADAPTIVE: | ||
| setFeature(context, "RETRY_MODE_ADAPTIVE", "F"); | ||
| break; | ||
| case RETRY_MODES.STANDARD: | ||
| setFeature(context, "RETRY_MODE_STANDARD", "E"); | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| if (typeof config.accountIdEndpointMode === "function") { | ||
| const endpointV2 = context.endpointV2; | ||
| if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) { | ||
| setFeature(context, "ACCOUNT_ID_ENDPOINT", "O"); | ||
| } | ||
| switch (await config.accountIdEndpointMode?.()) { | ||
| case "disabled": | ||
| setFeature(context, "ACCOUNT_ID_MODE_DISABLED", "Q"); | ||
| break; | ||
| case "preferred": | ||
| setFeature(context, "ACCOUNT_ID_MODE_PREFERRED", "P"); | ||
| break; | ||
| case "required": | ||
| setFeature(context, "ACCOUNT_ID_MODE_REQUIRED", "R"); | ||
| break; | ||
| } | ||
| } | ||
| const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity; | ||
| if (identity?.$source) { | ||
| const credentials = identity; | ||
| if (credentials.accountId) { | ||
| setFeature(context, "RESOLVED_ACCOUNT_ID", "T"); | ||
| } | ||
| for (const [key, value] of Object.entries(credentials.$source ?? {})) { | ||
| setFeature(context, key, value); | ||
| } | ||
| } | ||
| } | ||
| const USER_AGENT = "user-agent"; | ||
| const X_AMZ_USER_AGENT = "x-amz-user-agent"; | ||
| const SPACE = " "; | ||
| const UA_NAME_SEPARATOR = "/"; | ||
| const UA_NAME_ESCAPE_REGEX = /[^!$%&'*+\-.^_`|~\w]/g; | ||
| const UA_VALUE_ESCAPE_REGEX = /[^!$%&'*+\-.^_`|~\w#]/g; | ||
| const UA_ESCAPE_CHAR = "-"; | ||
| const BYTE_LIMIT = 1024; | ||
| function encodeFeatures(features) { | ||
| let buffer = ""; | ||
| for (const key in features) { | ||
| const val = features[key]; | ||
| if (buffer.length + val.length + 1 <= BYTE_LIMIT) { | ||
| if (buffer.length) { | ||
| buffer += "," + val; | ||
| } | ||
| else { | ||
| buffer += val; | ||
| } | ||
| continue; | ||
| } | ||
| break; | ||
| } | ||
| return buffer; | ||
| } | ||
| const userAgentMiddleware = (options) => (next, context) => async (args) => { | ||
| const { request } = args; | ||
| if (!HttpRequest.isInstance(request)) { | ||
| return next(args); | ||
| } | ||
| const { headers } = request; | ||
| const userAgent = context?.userAgent?.map(escapeUserAgent) || []; | ||
| const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent); | ||
| await checkFeatures(context, options, args); | ||
| const awsContext = context; | ||
| defaultUserAgent.push(`m/${encodeFeatures(Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features))}`); | ||
| const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || []; | ||
| const appId = await options.userAgentAppId(); | ||
| if (appId) { | ||
| defaultUserAgent.push(escapeUserAgent([`app`, `${appId}`])); | ||
| } | ||
| const prefix = getUserAgentPrefix(); | ||
| const sdkUserAgentValue = (prefix ? [prefix] : []) | ||
| .concat([...defaultUserAgent, ...userAgent, ...customUserAgent]) | ||
| .join(SPACE); | ||
| const normalUAValue = [ | ||
| ...defaultUserAgent.filter((section) => section.startsWith("aws-sdk-")), | ||
| ...customUserAgent, | ||
| ].join(SPACE); | ||
| if (options.runtime !== "browser") { | ||
| if (normalUAValue) { | ||
| headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] | ||
| ? `${headers[USER_AGENT]} ${normalUAValue}` | ||
| : normalUAValue; | ||
| } | ||
| headers[USER_AGENT] = sdkUserAgentValue; | ||
| } | ||
| else { | ||
| headers[X_AMZ_USER_AGENT] = sdkUserAgentValue; | ||
| } | ||
| return next({ | ||
| ...args, | ||
| request, | ||
| }); | ||
| }; | ||
| const escapeUserAgent = (userAgentPair) => { | ||
| const name = userAgentPair[0] | ||
| .split(UA_NAME_SEPARATOR) | ||
| .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)) | ||
| .join(UA_NAME_SEPARATOR); | ||
| const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR); | ||
| const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR); | ||
| const prefix = name.substring(0, prefixSeparatorIndex); | ||
| let uaName = name.substring(prefixSeparatorIndex + 1); | ||
| if (prefix === "api") { | ||
| uaName = uaName.toLowerCase(); | ||
| } | ||
| return [prefix, uaName, version] | ||
| .filter((item) => item && item.length > 0) | ||
| .reduce((acc, item, index) => { | ||
| switch (index) { | ||
| case 0: | ||
| return item; | ||
| case 1: | ||
| return `${acc}/${item}`; | ||
| default: | ||
| return `${acc}#${item}`; | ||
| } | ||
| }, ""); | ||
| }; | ||
| const getUserAgentMiddlewareOptions = { | ||
| name: "getUserAgentMiddleware", | ||
| step: "build", | ||
| priority: "low", | ||
| tags: ["SET_USER_AGENT", "USER_AGENT"], | ||
| override: true, | ||
| }; | ||
| const getUserAgentPlugin = (config) => ({ | ||
| applyToStack: (clientStack) => { | ||
| clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions); | ||
| }, | ||
| }); | ||
| const createUserAgentStringParsingProvider = ({ serviceId, clientVersion }) => async (config) => { | ||
| const module = require('bowser'); | ||
| const parse = module.parse ?? module.default.parse ?? (() => ""); | ||
| const parsedUA = typeof window !== "undefined" && window?.navigator?.userAgent ? parse(window.navigator.userAgent) : undefined; | ||
| const sections = [ | ||
| ["aws-sdk-js", clientVersion], | ||
| ["ua", "2.1"], | ||
| [`os/${parsedUA?.os?.name || "other"}`, parsedUA?.os?.version], | ||
| ["lang/js"], | ||
| ["md/browser", `${parsedUA?.browser?.name ?? "unknown"}_${parsedUA?.browser?.version ?? "unknown"}`], | ||
| ]; | ||
| if (serviceId) { | ||
| sections.push([`api/${serviceId}`, clientVersion]); | ||
| } | ||
| const appId = await config?.userAgentAppId?.(); | ||
| if (appId) { | ||
| sections.push([`app/${appId}`]); | ||
| } | ||
| return sections; | ||
| }; | ||
| const createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => async (config) => { | ||
| const navigator = typeof window !== "undefined" ? window.navigator : undefined; | ||
| const uaString = navigator?.userAgent ?? ""; | ||
| const osName = navigator?.userAgentData?.platform ?? fallback.os(uaString) ?? "other"; | ||
| const osVersion = undefined; | ||
| const brands = navigator?.userAgentData?.brands ?? []; | ||
| const brand = brands[brands.length - 1]; | ||
| const browserName = brand?.brand ?? fallback.browser(uaString) ?? "unknown"; | ||
| const browserVersion = brand?.version ?? "unknown"; | ||
| const sections = [ | ||
| ["aws-sdk-js", clientVersion], | ||
| ["ua", "2.1"], | ||
| [`os/${osName}`, osVersion], | ||
| ["lang/js"], | ||
| ["md/browser", `${browserName}_${browserVersion}`], | ||
| ]; | ||
| if (serviceId) { | ||
| sections.push([`api/${serviceId}`, clientVersion]); | ||
| } | ||
| const appId = await config?.userAgentAppId?.(); | ||
| if (appId) { | ||
| sections.push([`app/${appId}`]); | ||
| } | ||
| return sections; | ||
| }; | ||
| const fallback = { | ||
| os(ua) { | ||
| if (/iPhone|iPad|iPod/.test(ua)) | ||
| return "iOS"; | ||
| if (/Macintosh|Mac OS X/.test(ua)) | ||
| return "macOS"; | ||
| if (/Windows NT/.test(ua)) | ||
| return "Windows"; | ||
| if (/Android/.test(ua)) | ||
| return "Android"; | ||
| if (/Linux/.test(ua)) | ||
| return "Linux"; | ||
| return undefined; | ||
| }, | ||
| browser(ua) { | ||
| if (/EdgiOS|EdgA|Edg\//.test(ua)) | ||
| return "Microsoft Edge"; | ||
| if (/Firefox\//.test(ua)) | ||
| return "Firefox"; | ||
| if (/Chrome\//.test(ua)) | ||
| return "Chrome"; | ||
| if (/Safari\//.test(ua)) | ||
| return "Safari"; | ||
| return undefined; | ||
| }, | ||
| }; | ||
| const defaultUserAgent = createDefaultUserAgentProvider; | ||
| const isVirtualHostableS3Bucket = (value, allowSubDomains = false) => { | ||
| if (allowSubDomains) { | ||
| for (const label of value.split(".")) { | ||
| if (!isVirtualHostableS3Bucket(label)) { | ||
| return false; | ||
| } | ||
| } | ||
| return true; | ||
| } | ||
| if (!isValidHostLabel(value)) { | ||
| return false; | ||
| } | ||
| if (value.length < 3 || value.length > 63) { | ||
| return false; | ||
| } | ||
| if (value !== value.toLowerCase()) { | ||
| return false; | ||
| } | ||
| if (isIpAddress(value)) { | ||
| return false; | ||
| } | ||
| return true; | ||
| }; | ||
| const ARN_DELIMITER = ":"; | ||
| const RESOURCE_DELIMITER = "/"; | ||
| const parseArn = (value) => { | ||
| const segments = value.split(ARN_DELIMITER); | ||
| if (segments.length < 6) | ||
| return null; | ||
| const [arn, partition, service, region, accountId, ...resourcePath] = segments; | ||
| if (arn !== "arn" || partition === "" || service === "" || resourcePath.join(ARN_DELIMITER) === "") | ||
| return null; | ||
| const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat(); | ||
| return { | ||
| partition, | ||
| service, | ||
| region, | ||
| accountId, | ||
| resourceId, | ||
| }; | ||
| }; | ||
| const awsEndpointFunctions = { | ||
| isVirtualHostableS3Bucket: isVirtualHostableS3Bucket, | ||
| parseArn: parseArn, | ||
| partition: partition, | ||
| }; | ||
| customEndpointFunctions.aws = awsEndpointFunctions; | ||
| const resolveDefaultAwsRegionalEndpointsConfig = (input) => { | ||
| if (typeof input.endpointProvider !== "function") { | ||
| throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client."); | ||
| } | ||
| const { endpoint } = input; | ||
| if (endpoint === undefined) { | ||
| input.endpoint = async () => { | ||
| return toEndpointV1(input.endpointProvider({ | ||
| Region: typeof input.region === "function" ? await input.region() : input.region, | ||
| UseDualStack: typeof input.useDualstackEndpoint === "function" | ||
| ? await input.useDualstackEndpoint() | ||
| : input.useDualstackEndpoint, | ||
| UseFIPS: typeof input.useFipsEndpoint === "function" ? await input.useFipsEndpoint() : input.useFipsEndpoint, | ||
| Endpoint: undefined, | ||
| }, { logger: input.logger })); | ||
| }; | ||
| } | ||
| return input; | ||
| }; | ||
| const toEndpointV1 = (endpoint) => parseUrl(endpoint.url); | ||
| function stsRegionDefaultResolver() { | ||
| return async () => "us-east-1"; | ||
| } | ||
| const getAwsRegionExtensionConfiguration = (runtimeConfig) => { | ||
| return { | ||
| setRegion(region) { | ||
| runtimeConfig.region = region; | ||
| }, | ||
| region() { | ||
| return runtimeConfig.region; | ||
| }, | ||
| }; | ||
| }; | ||
| const resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => { | ||
| return { | ||
| region: awsRegionExtensionConfiguration.region(), | ||
| }; | ||
| }; | ||
| const no = Symbol.for("node-only"); | ||
| const emitWarningIfUnsupportedVersion = no; | ||
| const state = no; | ||
| const crtAvailability = no; | ||
| const NODE_APP_ID_CONFIG_OPTIONS = no; | ||
| const UA_APP_ID_ENV_NAME = no; | ||
| const UA_APP_ID_INI_NAME = no; | ||
| const REGION_ENV_NAME = no; | ||
| const REGION_INI_NAME = no; | ||
| const NODE_REGION_CONFIG_OPTIONS = no; | ||
| const NODE_REGION_CONFIG_FILE_OPTIONS = no; | ||
| const stsRegionWarning = no; | ||
| exports.DEFAULT_UA_APP_ID = DEFAULT_UA_APP_ID; | ||
| exports.NODE_APP_ID_CONFIG_OPTIONS = NODE_APP_ID_CONFIG_OPTIONS; | ||
| exports.NODE_REGION_CONFIG_FILE_OPTIONS = NODE_REGION_CONFIG_FILE_OPTIONS; | ||
| exports.NODE_REGION_CONFIG_OPTIONS = NODE_REGION_CONFIG_OPTIONS; | ||
| exports.REGION_ENV_NAME = REGION_ENV_NAME; | ||
| exports.REGION_INI_NAME = REGION_INI_NAME; | ||
| exports.UA_APP_ID_ENV_NAME = UA_APP_ID_ENV_NAME; | ||
| exports.UA_APP_ID_INI_NAME = UA_APP_ID_INI_NAME; | ||
| exports.awsEndpointFunctions = awsEndpointFunctions; | ||
| exports.createDefaultUserAgentProvider = createDefaultUserAgentProvider; | ||
| exports.createUserAgentStringParsingProvider = createUserAgentStringParsingProvider; | ||
| exports.crtAvailability = crtAvailability; | ||
| exports.defaultUserAgent = defaultUserAgent; | ||
| exports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion; | ||
| exports.fallback = fallback; | ||
| exports.getAwsRegionExtensionConfiguration = getAwsRegionExtensionConfiguration; | ||
| exports.getHostHeaderPlugin = getHostHeaderPlugin; | ||
| exports.getLoggerPlugin = getLoggerPlugin; | ||
| exports.getLongPollPlugin = getLongPollPlugin; | ||
| exports.getRecursionDetectionPlugin = getRecursionDetectionPlugin; | ||
| exports.getUserAgentMiddlewareOptions = getUserAgentMiddlewareOptions; | ||
| exports.getUserAgentPlugin = getUserAgentPlugin; | ||
| exports.getUserAgentPrefix = getUserAgentPrefix; | ||
| exports.hostHeaderMiddleware = hostHeaderMiddleware; | ||
| exports.hostHeaderMiddlewareOptions = hostHeaderMiddlewareOptions; | ||
| exports.isVirtualHostableS3Bucket = isVirtualHostableS3Bucket; | ||
| exports.loggerMiddleware = loggerMiddleware; | ||
| exports.loggerMiddlewareOptions = loggerMiddlewareOptions; | ||
| exports.parseArn = parseArn; | ||
| exports.partition = partition; | ||
| exports.recursionDetectionMiddleware = recursionDetectionMiddleware; | ||
| exports.recursionDetectionMiddlewareOptions = recursionDetectionMiddlewareOptions; | ||
| exports.resolveAwsRegionExtensionConfiguration = resolveAwsRegionExtensionConfiguration; | ||
| exports.resolveDefaultAwsRegionalEndpointsConfig = resolveDefaultAwsRegionalEndpointsConfig; | ||
| exports.resolveHostHeaderConfig = resolveHostHeaderConfig; | ||
| exports.resolveUserAgentConfig = resolveUserAgentConfig; | ||
| exports.setCredentialFeature = setCredentialFeature; | ||
| exports.setFeature = setFeature; | ||
| exports.setPartitionInfo = setPartitionInfo; | ||
| exports.setTokenFeature = setTokenFeature; | ||
| exports.state = state; | ||
| exports.stsRegionDefaultResolver = stsRegionDefaultResolver; | ||
| exports.stsRegionWarning = stsRegionWarning; | ||
| exports.toEndpointV1 = toEndpointV1; | ||
| exports.useDefaultPartitionInfo = useDefaultPartitionInfo; | ||
| exports.userAgentMiddleware = userAgentMiddleware; |
| const { Retry, RETRY_MODES } = require("@smithy/core/retry"); | ||
| const { HttpRequest, parseUrl } = require("@smithy/core/protocols"); | ||
| const { normalizeProvider } = require("@smithy/core"); | ||
| const { isValidHostLabel, isIpAddress, customEndpointFunctions } = require("@smithy/core/endpoints"); | ||
| const { EndpointError, resolveEndpoint } = require("@smithy/core/endpoints"); | ||
| exports.EndpointError = EndpointError; | ||
| exports.isIpAddress = isIpAddress; | ||
| exports.resolveEndpoint = resolveEndpoint; | ||
| const { resolveRegionConfig } = require("@smithy/core/config"); | ||
| exports.resolveRegionConfig = resolveRegionConfig; | ||
| const longPollMiddleware = () => (next, context) => async (args) => { | ||
| context.__retryLongPoll = true; | ||
| return next(args); | ||
| }; | ||
| const longPollMiddlewareOptions = { | ||
| name: "longPollMiddleware", | ||
| tags: ["RETRY"], | ||
| step: "initialize", | ||
| override: true, | ||
| }; | ||
| const getLongPollPlugin = (options) => ({ | ||
| applyToStack: (clientStack) => { | ||
| clientStack.add(longPollMiddleware(), longPollMiddlewareOptions); | ||
| }, | ||
| }); | ||
| function setCredentialFeature(credentials, feature, value) { | ||
| if (!credentials.$source) { | ||
| credentials.$source = {}; | ||
| } | ||
| credentials.$source[feature] = value; | ||
| return credentials; | ||
| } | ||
| Retry.v2026 ||= typeof process === "object" && process.env?.AWS_NEW_RETRIES_2026 === "true"; | ||
| function setFeature(context, feature, value) { | ||
| if (!context.__aws_sdk_context) { | ||
| context.__aws_sdk_context = { | ||
| features: {}, | ||
| }; | ||
| } | ||
| else if (!context.__aws_sdk_context.features) { | ||
| context.__aws_sdk_context.features = {}; | ||
| } | ||
| context.__aws_sdk_context.features[feature] = value; | ||
| } | ||
| function setTokenFeature(token, feature, value) { | ||
| if (!token.$source) { | ||
| token.$source = {}; | ||
| } | ||
| token.$source[feature] = value; | ||
| return token; | ||
| } | ||
| function resolveHostHeaderConfig(input) { | ||
| return input; | ||
| } | ||
| const hostHeaderMiddleware = (options) => (next) => async (args) => { | ||
| if (!HttpRequest.isInstance(args.request)) | ||
| return next(args); | ||
| const { request } = args; | ||
| const { handlerProtocol = "" } = options.requestHandler.metadata || {}; | ||
| if (handlerProtocol.indexOf("h2") >= 0 && !request.headers[":authority"]) { | ||
| delete request.headers["host"]; | ||
| request.headers[":authority"] = request.hostname + (request.port ? ":" + request.port : ""); | ||
| } | ||
| else if (!request.headers["host"]) { | ||
| let host = request.hostname; | ||
| if (request.port != null) | ||
| host += `:${request.port}`; | ||
| request.headers["host"] = host; | ||
| } | ||
| return next(args); | ||
| }; | ||
| const hostHeaderMiddlewareOptions = { | ||
| name: "hostHeaderMiddleware", | ||
| step: "build", | ||
| priority: "low", | ||
| tags: ["HOST"], | ||
| override: true, | ||
| }; | ||
| const getHostHeaderPlugin = (options) => ({ | ||
| applyToStack: (clientStack) => { | ||
| clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions); | ||
| }, | ||
| }); | ||
| const loggerMiddleware = () => (next, context) => async (args) => { | ||
| try { | ||
| const response = await next(args); | ||
| const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; | ||
| const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions; | ||
| const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; | ||
| const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog; | ||
| const { $metadata, ...outputWithoutMetadata } = response.output; | ||
| logger?.info?.({ | ||
| clientName, | ||
| commandName, | ||
| input: inputFilterSensitiveLog(args.input), | ||
| output: outputFilterSensitiveLog(outputWithoutMetadata), | ||
| metadata: $metadata, | ||
| }); | ||
| return response; | ||
| } | ||
| catch (error) { | ||
| const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context; | ||
| const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions; | ||
| const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog; | ||
| logger?.error?.({ | ||
| clientName, | ||
| commandName, | ||
| input: inputFilterSensitiveLog(args.input), | ||
| error, | ||
| metadata: error.$metadata, | ||
| }); | ||
| throw error; | ||
| } | ||
| }; | ||
| const loggerMiddlewareOptions = { | ||
| name: "loggerMiddleware", | ||
| tags: ["LOGGER"], | ||
| step: "initialize", | ||
| override: true, | ||
| }; | ||
| const getLoggerPlugin = (options) => ({ | ||
| applyToStack: (clientStack) => { | ||
| clientStack.add(loggerMiddleware(), loggerMiddlewareOptions); | ||
| }, | ||
| }); | ||
| const recursionDetectionMiddlewareOptions = { | ||
| step: "build", | ||
| tags: ["RECURSION_DETECTION"], | ||
| name: "recursionDetectionMiddleware", | ||
| override: true, | ||
| priority: "low", | ||
| }; | ||
| const getRecursionDetectionPlugin = (options) => ({ | ||
| applyToStack: (clientStack) => { }, | ||
| }); | ||
| const recursionDetectionMiddleware = () => (next) => async (args) => next(args); | ||
| const DEFAULT_UA_APP_ID = undefined; | ||
| function isValidUserAgentAppId(appId) { | ||
| if (appId === undefined) { | ||
| return true; | ||
| } | ||
| return typeof appId === "string" && appId.length <= 50; | ||
| } | ||
| function resolveUserAgentConfig(input) { | ||
| const normalizedAppIdProvider = normalizeProvider(input.userAgentAppId ?? DEFAULT_UA_APP_ID); | ||
| const { customUserAgent } = input; | ||
| return Object.assign(input, { | ||
| customUserAgent: typeof customUserAgent === "string" ? [[customUserAgent]] : customUserAgent, | ||
| userAgentAppId: async () => { | ||
| const appId = await normalizedAppIdProvider(); | ||
| if (!isValidUserAgentAppId(appId)) { | ||
| const logger = input.logger?.constructor?.name === "NoOpLogger" || !input.logger ? console : input.logger; | ||
| if (typeof appId !== "string") { | ||
| logger?.warn("userAgentAppId must be a string or undefined."); | ||
| } | ||
| else if (appId.length > 50) { | ||
| logger?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters."); | ||
| } | ||
| } | ||
| return appId; | ||
| }, | ||
| }); | ||
| } | ||
| const partitionsInfo = { | ||
| "partitions": [ | ||
| { | ||
| "id": "aws", | ||
| "outputs": { | ||
| "dnsSuffix": "amazonaws.com", | ||
| "dualStackDnsSuffix": "api.aws", | ||
| "implicitGlobalRegion": "us-east-1", | ||
| "name": "aws", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "af-south-1": { | ||
| "description": "Africa (Cape Town)" | ||
| }, | ||
| "ap-east-1": { | ||
| "description": "Asia Pacific (Hong Kong)" | ||
| }, | ||
| "ap-east-2": { | ||
| "description": "Asia Pacific (Taipei)" | ||
| }, | ||
| "ap-northeast-1": { | ||
| "description": "Asia Pacific (Tokyo)" | ||
| }, | ||
| "ap-northeast-2": { | ||
| "description": "Asia Pacific (Seoul)" | ||
| }, | ||
| "ap-northeast-3": { | ||
| "description": "Asia Pacific (Osaka)" | ||
| }, | ||
| "ap-south-1": { | ||
| "description": "Asia Pacific (Mumbai)" | ||
| }, | ||
| "ap-south-2": { | ||
| "description": "Asia Pacific (Hyderabad)" | ||
| }, | ||
| "ap-southeast-1": { | ||
| "description": "Asia Pacific (Singapore)" | ||
| }, | ||
| "ap-southeast-2": { | ||
| "description": "Asia Pacific (Sydney)" | ||
| }, | ||
| "ap-southeast-3": { | ||
| "description": "Asia Pacific (Jakarta)" | ||
| }, | ||
| "ap-southeast-4": { | ||
| "description": "Asia Pacific (Melbourne)" | ||
| }, | ||
| "ap-southeast-5": { | ||
| "description": "Asia Pacific (Malaysia)" | ||
| }, | ||
| "ap-southeast-6": { | ||
| "description": "Asia Pacific (New Zealand)" | ||
| }, | ||
| "ap-southeast-7": { | ||
| "description": "Asia Pacific (Thailand)" | ||
| }, | ||
| "aws-global": { | ||
| "description": "aws global region" | ||
| }, | ||
| "ca-central-1": { | ||
| "description": "Canada (Central)" | ||
| }, | ||
| "ca-west-1": { | ||
| "description": "Canada West (Calgary)" | ||
| }, | ||
| "eu-central-1": { | ||
| "description": "Europe (Frankfurt)" | ||
| }, | ||
| "eu-central-2": { | ||
| "description": "Europe (Zurich)" | ||
| }, | ||
| "eu-north-1": { | ||
| "description": "Europe (Stockholm)" | ||
| }, | ||
| "eu-south-1": { | ||
| "description": "Europe (Milan)" | ||
| }, | ||
| "eu-south-2": { | ||
| "description": "Europe (Spain)" | ||
| }, | ||
| "eu-west-1": { | ||
| "description": "Europe (Ireland)" | ||
| }, | ||
| "eu-west-2": { | ||
| "description": "Europe (London)" | ||
| }, | ||
| "eu-west-3": { | ||
| "description": "Europe (Paris)" | ||
| }, | ||
| "il-central-1": { | ||
| "description": "Israel (Tel Aviv)" | ||
| }, | ||
| "me-central-1": { | ||
| "description": "Middle East (UAE)" | ||
| }, | ||
| "me-south-1": { | ||
| "description": "Middle East (Bahrain)" | ||
| }, | ||
| "mx-central-1": { | ||
| "description": "Mexico (Central)" | ||
| }, | ||
| "sa-east-1": { | ||
| "description": "South America (Sao Paulo)" | ||
| }, | ||
| "us-east-1": { | ||
| "description": "US East (N. Virginia)" | ||
| }, | ||
| "us-east-2": { | ||
| "description": "US East (Ohio)" | ||
| }, | ||
| "us-west-1": { | ||
| "description": "US West (N. California)" | ||
| }, | ||
| "us-west-2": { | ||
| "description": "US West (Oregon)" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-cn", | ||
| "outputs": { | ||
| "dnsSuffix": "amazonaws.com.cn", | ||
| "dualStackDnsSuffix": "api.amazonwebservices.com.cn", | ||
| "implicitGlobalRegion": "cn-northwest-1", | ||
| "name": "aws-cn", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^cn\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-cn-global": { | ||
| "description": "aws-cn global region" | ||
| }, | ||
| "cn-north-1": { | ||
| "description": "China (Beijing)" | ||
| }, | ||
| "cn-northwest-1": { | ||
| "description": "China (Ningxia)" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-eusc", | ||
| "outputs": { | ||
| "dnsSuffix": "amazonaws.eu", | ||
| "dualStackDnsSuffix": "api.amazonwebservices.eu", | ||
| "implicitGlobalRegion": "eusc-de-east-1", | ||
| "name": "aws-eusc", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^eusc\\-(de)\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "eusc-de-east-1": { | ||
| "description": "AWS European Sovereign Cloud (Germany)" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-iso", | ||
| "outputs": { | ||
| "dnsSuffix": "c2s.ic.gov", | ||
| "dualStackDnsSuffix": "api.aws.ic.gov", | ||
| "implicitGlobalRegion": "us-iso-east-1", | ||
| "name": "aws-iso", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^us\\-iso\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-iso-global": { | ||
| "description": "aws-iso global region" | ||
| }, | ||
| "us-iso-east-1": { | ||
| "description": "US ISO East" | ||
| }, | ||
| "us-iso-west-1": { | ||
| "description": "US ISO WEST" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-iso-b", | ||
| "outputs": { | ||
| "dnsSuffix": "sc2s.sgov.gov", | ||
| "dualStackDnsSuffix": "api.aws.scloud", | ||
| "implicitGlobalRegion": "us-isob-east-1", | ||
| "name": "aws-iso-b", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^us\\-isob\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-iso-b-global": { | ||
| "description": "aws-iso-b global region" | ||
| }, | ||
| "us-isob-east-1": { | ||
| "description": "US ISOB East (Ohio)" | ||
| }, | ||
| "us-isob-west-1": { | ||
| "description": "US ISOB West" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-iso-e", | ||
| "outputs": { | ||
| "dnsSuffix": "cloud.adc-e.uk", | ||
| "dualStackDnsSuffix": "api.cloud-aws.adc-e.uk", | ||
| "implicitGlobalRegion": "eu-isoe-west-1", | ||
| "name": "aws-iso-e", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^eu\\-isoe\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-iso-e-global": { | ||
| "description": "aws-iso-e global region" | ||
| }, | ||
| "eu-isoe-west-1": { | ||
| "description": "EU ISOE West" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-iso-f", | ||
| "outputs": { | ||
| "dnsSuffix": "csp.hci.ic.gov", | ||
| "dualStackDnsSuffix": "api.aws.hci.ic.gov", | ||
| "implicitGlobalRegion": "us-isof-south-1", | ||
| "name": "aws-iso-f", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^us\\-isof\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-iso-f-global": { | ||
| "description": "aws-iso-f global region" | ||
| }, | ||
| "us-isof-east-1": { | ||
| "description": "US ISOF EAST" | ||
| }, | ||
| "us-isof-south-1": { | ||
| "description": "US ISOF SOUTH" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "id": "aws-us-gov", | ||
| "outputs": { | ||
| "dnsSuffix": "amazonaws.com", | ||
| "dualStackDnsSuffix": "api.aws", | ||
| "implicitGlobalRegion": "us-gov-west-1", | ||
| "name": "aws-us-gov", | ||
| "supportsDualStack": true, | ||
| "supportsFIPS": true | ||
| }, | ||
| "regionRegex": "^us\\-gov\\-\\w+\\-\\d+$", | ||
| "regions": { | ||
| "aws-us-gov-global": { | ||
| "description": "aws-us-gov global region" | ||
| }, | ||
| "us-gov-east-1": { | ||
| "description": "AWS GovCloud (US-East)" | ||
| }, | ||
| "us-gov-west-1": { | ||
| "description": "AWS GovCloud (US-West)" | ||
| } | ||
| } | ||
| } | ||
| ], | ||
| "version": "1.1" | ||
| }; | ||
| let selectedPartitionsInfo = partitionsInfo; | ||
| let selectedUserAgentPrefix = ""; | ||
| const partition = (value) => { | ||
| const { partitions } = selectedPartitionsInfo; | ||
| for (const partition of partitions) { | ||
| const { regions, outputs } = partition; | ||
| for (const [region, regionData] of Object.entries(regions)) { | ||
| if (region === value) { | ||
| return { | ||
| ...outputs, | ||
| ...regionData, | ||
| }; | ||
| } | ||
| } | ||
| } | ||
| for (const partition of partitions) { | ||
| const { regionRegex, outputs } = partition; | ||
| if (new RegExp(regionRegex).test(value)) { | ||
| return { | ||
| ...outputs, | ||
| }; | ||
| } | ||
| } | ||
| const DEFAULT_PARTITION = partitions.find((partition) => partition.id === "aws"); | ||
| if (!DEFAULT_PARTITION) { | ||
| throw new Error("Provided region was not found in the partition array or regex," + | ||
| " and default partition with id 'aws' doesn't exist."); | ||
| } | ||
| return { | ||
| ...DEFAULT_PARTITION.outputs, | ||
| }; | ||
| }; | ||
| const setPartitionInfo = (partitionsInfo, userAgentPrefix = "") => { | ||
| selectedPartitionsInfo = partitionsInfo; | ||
| selectedUserAgentPrefix = userAgentPrefix; | ||
| }; | ||
| const useDefaultPartitionInfo = () => { | ||
| setPartitionInfo(partitionsInfo, ""); | ||
| }; | ||
| const getUserAgentPrefix = () => selectedUserAgentPrefix; | ||
| const ACCOUNT_ID_ENDPOINT_REGEX = /\d{12}\.ddb/; | ||
| async function checkFeatures(context, config, args) { | ||
| const request = args.request; | ||
| if (request?.headers?.["smithy-protocol"] === "rpc-v2-cbor") { | ||
| setFeature(context, "PROTOCOL_RPC_V2_CBOR", "M"); | ||
| } | ||
| if (typeof config.retryStrategy === "function") { | ||
| const retryStrategy = await config.retryStrategy(); | ||
| if (typeof retryStrategy.mode === "string") { | ||
| switch (retryStrategy.mode) { | ||
| case RETRY_MODES.ADAPTIVE: | ||
| setFeature(context, "RETRY_MODE_ADAPTIVE", "F"); | ||
| break; | ||
| case RETRY_MODES.STANDARD: | ||
| setFeature(context, "RETRY_MODE_STANDARD", "E"); | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| if (typeof config.accountIdEndpointMode === "function") { | ||
| const endpointV2 = context.endpointV2; | ||
| if (String(endpointV2?.url?.hostname).match(ACCOUNT_ID_ENDPOINT_REGEX)) { | ||
| setFeature(context, "ACCOUNT_ID_ENDPOINT", "O"); | ||
| } | ||
| switch (await config.accountIdEndpointMode?.()) { | ||
| case "disabled": | ||
| setFeature(context, "ACCOUNT_ID_MODE_DISABLED", "Q"); | ||
| break; | ||
| case "preferred": | ||
| setFeature(context, "ACCOUNT_ID_MODE_PREFERRED", "P"); | ||
| break; | ||
| case "required": | ||
| setFeature(context, "ACCOUNT_ID_MODE_REQUIRED", "R"); | ||
| break; | ||
| } | ||
| } | ||
| const identity = context.__smithy_context?.selectedHttpAuthScheme?.identity; | ||
| if (identity?.$source) { | ||
| const credentials = identity; | ||
| if (credentials.accountId) { | ||
| setFeature(context, "RESOLVED_ACCOUNT_ID", "T"); | ||
| } | ||
| for (const [key, value] of Object.entries(credentials.$source ?? {})) { | ||
| setFeature(context, key, value); | ||
| } | ||
| } | ||
| } | ||
| const USER_AGENT = "user-agent"; | ||
| const X_AMZ_USER_AGENT = "x-amz-user-agent"; | ||
| const SPACE = " "; | ||
| const UA_NAME_SEPARATOR = "/"; | ||
| const UA_NAME_ESCAPE_REGEX = /[^!$%&'*+\-.^_`|~\w]/g; | ||
| const UA_VALUE_ESCAPE_REGEX = /[^!$%&'*+\-.^_`|~\w#]/g; | ||
| const UA_ESCAPE_CHAR = "-"; | ||
| const BYTE_LIMIT = 1024; | ||
| function encodeFeatures(features) { | ||
| let buffer = ""; | ||
| for (const key in features) { | ||
| const val = features[key]; | ||
| if (buffer.length + val.length + 1 <= BYTE_LIMIT) { | ||
| if (buffer.length) { | ||
| buffer += "," + val; | ||
| } | ||
| else { | ||
| buffer += val; | ||
| } | ||
| continue; | ||
| } | ||
| break; | ||
| } | ||
| return buffer; | ||
| } | ||
| const userAgentMiddleware = (options) => (next, context) => async (args) => { | ||
| const { request } = args; | ||
| if (!HttpRequest.isInstance(request)) { | ||
| return next(args); | ||
| } | ||
| const { headers } = request; | ||
| const userAgent = context?.userAgent?.map(escapeUserAgent) || []; | ||
| const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent); | ||
| await checkFeatures(context, options, args); | ||
| const awsContext = context; | ||
| defaultUserAgent.push(`m/${encodeFeatures(Object.assign({}, context.__smithy_context?.features, awsContext.__aws_sdk_context?.features))}`); | ||
| const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || []; | ||
| const appId = await options.userAgentAppId(); | ||
| if (appId) { | ||
| defaultUserAgent.push(escapeUserAgent([`app`, `${appId}`])); | ||
| } | ||
| const prefix = getUserAgentPrefix(); | ||
| const sdkUserAgentValue = (prefix ? [prefix] : []) | ||
| .concat([...defaultUserAgent, ...userAgent, ...customUserAgent]) | ||
| .join(SPACE); | ||
| const normalUAValue = [ | ||
| ...defaultUserAgent.filter((section) => section.startsWith("aws-sdk-")), | ||
| ...customUserAgent, | ||
| ].join(SPACE); | ||
| if (options.runtime !== "browser") { | ||
| if (normalUAValue) { | ||
| headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] | ||
| ? `${headers[USER_AGENT]} ${normalUAValue}` | ||
| : normalUAValue; | ||
| } | ||
| headers[USER_AGENT] = sdkUserAgentValue; | ||
| } | ||
| else { | ||
| headers[X_AMZ_USER_AGENT] = sdkUserAgentValue; | ||
| } | ||
| return next({ | ||
| ...args, | ||
| request, | ||
| }); | ||
| }; | ||
| const escapeUserAgent = (userAgentPair) => { | ||
| const name = userAgentPair[0] | ||
| .split(UA_NAME_SEPARATOR) | ||
| .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR)) | ||
| .join(UA_NAME_SEPARATOR); | ||
| const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR); | ||
| const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR); | ||
| const prefix = name.substring(0, prefixSeparatorIndex); | ||
| let uaName = name.substring(prefixSeparatorIndex + 1); | ||
| if (prefix === "api") { | ||
| uaName = uaName.toLowerCase(); | ||
| } | ||
| return [prefix, uaName, version] | ||
| .filter((item) => item && item.length > 0) | ||
| .reduce((acc, item, index) => { | ||
| switch (index) { | ||
| case 0: | ||
| return item; | ||
| case 1: | ||
| return `${acc}/${item}`; | ||
| default: | ||
| return `${acc}#${item}`; | ||
| } | ||
| }, ""); | ||
| }; | ||
| const getUserAgentMiddlewareOptions = { | ||
| name: "getUserAgentMiddleware", | ||
| step: "build", | ||
| priority: "low", | ||
| tags: ["SET_USER_AGENT", "USER_AGENT"], | ||
| override: true, | ||
| }; | ||
| const getUserAgentPlugin = (config) => ({ | ||
| applyToStack: (clientStack) => { | ||
| clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions); | ||
| }, | ||
| }); | ||
| const createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => async (config) => { | ||
| const sections = [ | ||
| ["aws-sdk-js", clientVersion], | ||
| ["ua", "2.1"], | ||
| ["os/other"], | ||
| ["lang/js"], | ||
| ["md/rn"], | ||
| ]; | ||
| if (serviceId) { | ||
| sections.push([`api/${serviceId}`, clientVersion]); | ||
| } | ||
| const appId = await config?.userAgentAppId?.(); | ||
| if (appId) { | ||
| sections.push([`app/${appId}`]); | ||
| } | ||
| return sections; | ||
| }; | ||
| const defaultUserAgent = createDefaultUserAgentProvider; | ||
| const createUserAgentStringParsingProvider = ({ serviceId, clientVersion }) => async (config) => { | ||
| const module = require('bowser'); | ||
| const parse = module.parse ?? module.default.parse ?? (() => ""); | ||
| const parsedUA = typeof window !== "undefined" && window?.navigator?.userAgent ? parse(window.navigator.userAgent) : undefined; | ||
| const sections = [ | ||
| ["aws-sdk-js", clientVersion], | ||
| ["ua", "2.1"], | ||
| [`os/${parsedUA?.os?.name || "other"}`, parsedUA?.os?.version], | ||
| ["lang/js"], | ||
| ["md/browser", `${parsedUA?.browser?.name ?? "unknown"}_${parsedUA?.browser?.version ?? "unknown"}`], | ||
| ]; | ||
| if (serviceId) { | ||
| sections.push([`api/${serviceId}`, clientVersion]); | ||
| } | ||
| const appId = await config?.userAgentAppId?.(); | ||
| if (appId) { | ||
| sections.push([`app/${appId}`]); | ||
| } | ||
| return sections; | ||
| }; | ||
| const fallback = { | ||
| os(ua) { | ||
| if (/iPhone|iPad|iPod/.test(ua)) | ||
| return "iOS"; | ||
| if (/Macintosh|Mac OS X/.test(ua)) | ||
| return "macOS"; | ||
| if (/Windows NT/.test(ua)) | ||
| return "Windows"; | ||
| if (/Android/.test(ua)) | ||
| return "Android"; | ||
| if (/Linux/.test(ua)) | ||
| return "Linux"; | ||
| return undefined; | ||
| }, | ||
| browser(ua) { | ||
| if (/EdgiOS|EdgA|Edg\//.test(ua)) | ||
| return "Microsoft Edge"; | ||
| if (/Firefox\//.test(ua)) | ||
| return "Firefox"; | ||
| if (/Chrome\//.test(ua)) | ||
| return "Chrome"; | ||
| if (/Safari\//.test(ua)) | ||
| return "Safari"; | ||
| return undefined; | ||
| }, | ||
| }; | ||
| const isVirtualHostableS3Bucket = (value, allowSubDomains = false) => { | ||
| if (allowSubDomains) { | ||
| for (const label of value.split(".")) { | ||
| if (!isVirtualHostableS3Bucket(label)) { | ||
| return false; | ||
| } | ||
| } | ||
| return true; | ||
| } | ||
| if (!isValidHostLabel(value)) { | ||
| return false; | ||
| } | ||
| if (value.length < 3 || value.length > 63) { | ||
| return false; | ||
| } | ||
| if (value !== value.toLowerCase()) { | ||
| return false; | ||
| } | ||
| if (isIpAddress(value)) { | ||
| return false; | ||
| } | ||
| return true; | ||
| }; | ||
| const ARN_DELIMITER = ":"; | ||
| const RESOURCE_DELIMITER = "/"; | ||
| const parseArn = (value) => { | ||
| const segments = value.split(ARN_DELIMITER); | ||
| if (segments.length < 6) | ||
| return null; | ||
| const [arn, partition, service, region, accountId, ...resourcePath] = segments; | ||
| if (arn !== "arn" || partition === "" || service === "" || resourcePath.join(ARN_DELIMITER) === "") | ||
| return null; | ||
| const resourceId = resourcePath.map((resource) => resource.split(RESOURCE_DELIMITER)).flat(); | ||
| return { | ||
| partition, | ||
| service, | ||
| region, | ||
| accountId, | ||
| resourceId, | ||
| }; | ||
| }; | ||
| const awsEndpointFunctions = { | ||
| isVirtualHostableS3Bucket: isVirtualHostableS3Bucket, | ||
| parseArn: parseArn, | ||
| partition: partition, | ||
| }; | ||
| customEndpointFunctions.aws = awsEndpointFunctions; | ||
| const resolveDefaultAwsRegionalEndpointsConfig = (input) => { | ||
| if (typeof input.endpointProvider !== "function") { | ||
| throw new Error("@aws-sdk/util-endpoint - endpointProvider and endpoint missing in config for this client."); | ||
| } | ||
| const { endpoint } = input; | ||
| if (endpoint === undefined) { | ||
| input.endpoint = async () => { | ||
| return toEndpointV1(input.endpointProvider({ | ||
| Region: typeof input.region === "function" ? await input.region() : input.region, | ||
| UseDualStack: typeof input.useDualstackEndpoint === "function" | ||
| ? await input.useDualstackEndpoint() | ||
| : input.useDualstackEndpoint, | ||
| UseFIPS: typeof input.useFipsEndpoint === "function" ? await input.useFipsEndpoint() : input.useFipsEndpoint, | ||
| Endpoint: undefined, | ||
| }, { logger: input.logger })); | ||
| }; | ||
| } | ||
| return input; | ||
| }; | ||
| const toEndpointV1 = (endpoint) => parseUrl(endpoint.url); | ||
| function stsRegionDefaultResolver() { | ||
| return async () => "us-east-1"; | ||
| } | ||
| const getAwsRegionExtensionConfiguration = (runtimeConfig) => { | ||
| return { | ||
| setRegion(region) { | ||
| runtimeConfig.region = region; | ||
| }, | ||
| region() { | ||
| return runtimeConfig.region; | ||
| }, | ||
| }; | ||
| }; | ||
| const resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => { | ||
| return { | ||
| region: awsRegionExtensionConfiguration.region(), | ||
| }; | ||
| }; | ||
| const no = Symbol.for("node-only"); | ||
| const emitWarningIfUnsupportedVersion = no; | ||
| const state = no; | ||
| const crtAvailability = no; | ||
| const NODE_APP_ID_CONFIG_OPTIONS = no; | ||
| const UA_APP_ID_ENV_NAME = no; | ||
| const UA_APP_ID_INI_NAME = no; | ||
| const REGION_ENV_NAME = no; | ||
| const REGION_INI_NAME = no; | ||
| const NODE_REGION_CONFIG_OPTIONS = no; | ||
| const NODE_REGION_CONFIG_FILE_OPTIONS = no; | ||
| const stsRegionWarning = no; | ||
| exports.DEFAULT_UA_APP_ID = DEFAULT_UA_APP_ID; | ||
| exports.NODE_APP_ID_CONFIG_OPTIONS = NODE_APP_ID_CONFIG_OPTIONS; | ||
| exports.NODE_REGION_CONFIG_FILE_OPTIONS = NODE_REGION_CONFIG_FILE_OPTIONS; | ||
| exports.NODE_REGION_CONFIG_OPTIONS = NODE_REGION_CONFIG_OPTIONS; | ||
| exports.REGION_ENV_NAME = REGION_ENV_NAME; | ||
| exports.REGION_INI_NAME = REGION_INI_NAME; | ||
| exports.UA_APP_ID_ENV_NAME = UA_APP_ID_ENV_NAME; | ||
| exports.UA_APP_ID_INI_NAME = UA_APP_ID_INI_NAME; | ||
| exports.awsEndpointFunctions = awsEndpointFunctions; | ||
| exports.createDefaultUserAgentProvider = createDefaultUserAgentProvider; | ||
| exports.createUserAgentStringParsingProvider = createUserAgentStringParsingProvider; | ||
| exports.crtAvailability = crtAvailability; | ||
| exports.defaultUserAgent = defaultUserAgent; | ||
| exports.emitWarningIfUnsupportedVersion = emitWarningIfUnsupportedVersion; | ||
| exports.fallback = fallback; | ||
| exports.getAwsRegionExtensionConfiguration = getAwsRegionExtensionConfiguration; | ||
| exports.getHostHeaderPlugin = getHostHeaderPlugin; | ||
| exports.getLoggerPlugin = getLoggerPlugin; | ||
| exports.getLongPollPlugin = getLongPollPlugin; | ||
| exports.getRecursionDetectionPlugin = getRecursionDetectionPlugin; | ||
| exports.getUserAgentMiddlewareOptions = getUserAgentMiddlewareOptions; | ||
| exports.getUserAgentPlugin = getUserAgentPlugin; | ||
| exports.getUserAgentPrefix = getUserAgentPrefix; | ||
| exports.hostHeaderMiddleware = hostHeaderMiddleware; | ||
| exports.hostHeaderMiddlewareOptions = hostHeaderMiddlewareOptions; | ||
| exports.isVirtualHostableS3Bucket = isVirtualHostableS3Bucket; | ||
| exports.loggerMiddleware = loggerMiddleware; | ||
| exports.loggerMiddlewareOptions = loggerMiddlewareOptions; | ||
| exports.parseArn = parseArn; | ||
| exports.partition = partition; | ||
| exports.recursionDetectionMiddleware = recursionDetectionMiddleware; | ||
| exports.recursionDetectionMiddlewareOptions = recursionDetectionMiddlewareOptions; | ||
| exports.resolveAwsRegionExtensionConfiguration = resolveAwsRegionExtensionConfiguration; | ||
| exports.resolveDefaultAwsRegionalEndpointsConfig = resolveDefaultAwsRegionalEndpointsConfig; | ||
| exports.resolveHostHeaderConfig = resolveHostHeaderConfig; | ||
| exports.resolveUserAgentConfig = resolveUserAgentConfig; | ||
| exports.setCredentialFeature = setCredentialFeature; | ||
| exports.setFeature = setFeature; | ||
| exports.setPartitionInfo = setPartitionInfo; | ||
| exports.setTokenFeature = setTokenFeature; | ||
| exports.state = state; | ||
| exports.stsRegionDefaultResolver = stsRegionDefaultResolver; | ||
| exports.stsRegionWarning = stsRegionWarning; | ||
| exports.toEndpointV1 = toEndpointV1; | ||
| exports.useDefaultPartitionInfo = useDefaultPartitionInfo; | ||
| exports.userAgentMiddleware = userAgentMiddleware; |
11
-15.38%482289
-11.42%336
-0.59%11773
-12.54%Updated
Updated
Updated
Updated