/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@aws-sdk/middleware-sdk-s3-control@3.972.9/dist-cjs/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var middlewareBucketEndpoint=require("@aws-sdk/middleware-bucket-endpoint"),protocolHttp=require("@smithy/protocol-http"),utilArnParser=require("@aws-sdk/util-arn-parser"),utilEndpoints=require("@aws-sdk/util-endpoints");function resolveS3ControlConfig(e){const{useArnRegion:t}=e;return Object.assign(e,{useArnRegion:"function"==typeof t?t:()=>Promise.resolve(t)})}const CONTEXT_OUTPOST_ID="outpost_id",CONTEXT_ACCOUNT_ID="account_id",CONTEXT_ARN_REGION="outpost_arn_region",CONTEXT_SIGNING_SERVICE="signing_service",CONTEXT_SIGNING_REGION="signing_region",parseOutpostArnablesMiddleaware=e=>(t,i)=>async r=>{const{input:o}=r,s=o.Name&&utilArnParser.validate(o.Name)?"Name":o.Bucket&&utilArnParser.validate(o.Bucket)?"Bucket":void 0;if(!s)return t(r);const n=await e.region(),a=await e.useArnRegion(),d=await e.useFipsEndpoint(),u=await e.useDualstackEndpoint(),p=n;let l,c;e.regionInfoProvider?({partition:l,signingRegion:c=p}=await e.regionInfoProvider(p,{useFipsEndpoint:d,useDualstackEndpoint:u})):(c=i.endpointV2?.properties?.authSchemes?.[0]?.signingRegion||p,l=utilEndpoints.partition(c).name);const O={clientPartition:l};let E;if("Name"===s){E=utilArnParser.parse(o.Name),validateOutpostsArn(E,O);const{outpostId:e,accesspointName:t}=parseOutpostsAccessPointArnResource(E.resource);o.Name=t,i.outpost_id=e}else{E=utilArnParser.parse(o.Bucket),validateOutpostsArn(E,O);const{outpostId:e,bucketName:t}=parseOutpostBucketArnResource(E.resource);o.Bucket=t,i.outpost_id=e}return i.signing_service=E.service,i.signing_region=a?E.region:c,o.AccountId||(o.AccountId=E.accountId),a&&(i[CONTEXT_ARN_REGION]=E.region),t(r)},parseOutpostArnablesMiddleawareOptions={toMiddleware:"serializerMiddleware",relation:"before",tags:["CONVERT_ARN","OUTPOST_BUCKET_ARN","OUTPOST_ACCESS_POINT_ARN","OUTPOST"],name:"parseOutpostArnablesMiddleaware"},validateOutpostsArn=(e,{clientPartition:t})=>{const{service:i,partition:r,accountId:o,region:s}=e;middlewareBucketEndpoint.validateOutpostService(i),middlewareBucketEndpoint.validatePartition(r,{clientPartition:t}),middlewareBucketEndpoint.validateAccountId(o)},parseOutpostsAccessPointArnResource=e=>{const{outpostId:t,accesspointName:i}=middlewareBucketEndpoint.getArnResources(e);if(!t)throw new Error("ARN resource should begin with 'outpost'");return{outpostId:t,accesspointName:i}},parseOutpostBucketArnResource=e=>{const t=e.includes(":")?":":"/",[i,...r]=e.split(t);if("outpost"===i){if(!r[0]||"bucket"!==r[1]||!r[2]||3!==r.length)throw new Error(`Outpost Bucket ARN should have resource outpost${t}{outpostId}${t}bucket${t}{bucketName}`);const[e,i,o]=r;return{outpostId:e,bucketName:o}}throw new Error(`ARN resource should begin with 'outpost${t}'`)},REGEX_S3CONTROL_HOSTNAME=/^(.+\.)?s3-control(-fips)?[.-]([a-z0-9-]+)\./,getOutpostEndpoint=(e,{isCustomEndpoint:t,regionOverride:i,useFipsEndpoint:r})=>{if(t)return e;if(!e.match(REGEX_S3CONTROL_HOSTNAME))return e;const[o,s,n,a]=e.match(REGEX_S3CONTROL_HOSTNAME);return["s3-outposts"+(r?"-fips":""),i||a,e.replace(new RegExp(`^${o}`),"")].filter((e=>void 0!==e)).join(".")},ACCOUNT_ID_HEADER="x-amz-account-id",OUTPOST_ID_HEADER="x-amz-outpost-id",updateArnablesRequestMiddleware=e=>(t,i)=>async r=>{const{request:o}=r;if(!protocolHttp.HttpRequest.isInstance(o))return t(r);if(i.account_id&&(o.headers[ACCOUNT_ID_HEADER]=i.account_id),i.outpost_id){const{isCustomEndpoint:t}=e,r=await e.useFipsEndpoint();o.headers[OUTPOST_ID_HEADER]=i.outpost_id,o.hostname=getOutpostEndpoint(o.hostname,{isCustomEndpoint:t,regionOverride:i[CONTEXT_ARN_REGION],useFipsEndpoint:r})}return t(r)},updateArnablesRequestMiddlewareOptions={toMiddleware:"serializerMiddleware",relation:"after",name:"updateArnablesRequestMiddleware",tags:["ACCOUNT_ID","OUTPOST_ID","OUTPOST"]},getProcessArnablesPlugin=e=>({applyToStack:t=>{t.addRelativeTo(parseOutpostArnablesMiddleaware(e),parseOutpostArnablesMiddleawareOptions),t.addRelativeTo(updateArnablesRequestMiddleware(e),updateArnablesRequestMiddlewareOptions)}}),hostPrefixDeduplicationMiddleware=()=>(e,t)=>t=>e(t),hostPrefixDeduplicationMiddlewareOptions={tags:["HOST_PREFIX_DEDUPLICATION","ENDPOINT_V2","ENDPOINT"],toMiddleware:"serializerMiddleware",relation:"after",name:"hostPrefixDeduplicationMiddleware",override:!0},getHostPrefixDeduplicationPlugin=e=>({applyToStack:e=>{e.addRelativeTo(hostPrefixDeduplicationMiddleware(),hostPrefixDeduplicationMiddlewareOptions)}}),redirectFromPostIdMiddleware=e=>(t,i)=>async r=>{const{input:o,request:s}=r;if(!protocolHttp.HttpRequest.isInstance(s))return t(r);if(o.OutpostId){const{isCustomEndpoint:t}=e,r=await e.useFipsEndpoint();s.hostname=getOutpostEndpoint(s.hostname,{isCustomEndpoint:t,useFipsEndpoint:r}),i.signing_service="s3-outposts"}return t(r)},redirectFromPostIdMiddlewareOptions={step:"build",name:"redirectFromPostIdMiddleware",tags:["OUTPOST"],override:!0},getRedirectFromPostIdPlugin=e=>({applyToStack:t=>{t.add(redirectFromPostIdMiddleware(e),redirectFromPostIdMiddlewareOptions)}});exports.NODE_USE_ARN_REGION_CONFIG_OPTIONS=middlewareBucketEndpoint.NODE_USE_ARN_REGION_CONFIG_OPTIONS,exports.getHostPrefixDeduplicationPlugin=getHostPrefixDeduplicationPlugin,exports.getProcessArnablesPlugin=getProcessArnablesPlugin,exports.getRedirectFromPostIdPlugin=getRedirectFromPostIdPlugin,exports.hostPrefixDeduplicationMiddleware=hostPrefixDeduplicationMiddleware,exports.hostPrefixDeduplicationMiddlewareOptions=hostPrefixDeduplicationMiddlewareOptions,exports.parseOutpostArnablesMiddleaware=parseOutpostArnablesMiddleaware,exports.parseOutpostArnablesMiddleawareOptions=parseOutpostArnablesMiddleawareOptions,exports.redirectFromPostIdMiddleware=redirectFromPostIdMiddleware,exports.redirectFromPostIdMiddlewareOptions=redirectFromPostIdMiddlewareOptions,exports.resolveS3ControlConfig=resolveS3ControlConfig,exports.updateArnablesRequestMiddleware=updateArnablesRequestMiddleware,exports.updateArnablesRequestMiddlewareOptions=updateArnablesRequestMiddlewareOptions;
//# sourceMappingURL=/sm/39745c4d28b65dca1fc7f54a51c2256bc5ebf8acae918fb612c3e1092a2fbc95.map