import{Oma as x,Qma as y,Uma as C}from"./cli-0.5.4-jpahwy23.mjs";import{Xma as k}from"./cli-0.5.4-aacw1src.mjs";var MF=k((n)=>{var K=x(),b=C(),w=y(),f=(F)=>F[K.SMITHY_CONTEXT_KEY]||(F[K.SMITHY_CONTEXT_KEY]={}),h=(F,J)=>{if(!J||J.length===0)return F;let G=[];for(let L of J)for(let Q of F)if(Q.schemeId.split("#")[1]===L)G.push(Q);for(let L of F)if(!G.find(({schemeId:Q})=>Q===L.schemeId))G.push(L);return G};function v(F){let J=new Map;for(let G of F)J.set(G.schemeId,G);return J}var j=(F,J)=>(G,L)=>async(Q)=>{let V=F.httpAuthSchemeProvider(await J.httpAuthSchemeParametersProvider(F,L,Q.input)),W=F.authSchemePreference?await F.authSchemePreference():[],Z=h(V,W),Y=v(F.httpAuthSchemes),U=w.getSmithyContext(L),$=[];for(let X of Z){let B=Y.get(X.schemeId);if(!B){$.push(`HttpAuthScheme \`${X.schemeId}\` was not enabled for this service.`);continue}let D=B.identityProvider(await J.identityProviderConfigProvider(F));if(!D){$.push(`HttpAuthScheme \`${X.schemeId}\` did not have an IdentityProvider configured.`);continue}let{identityProperties:N={},signingProperties:R={}}=X.propertiesExtractor?.(F,L)||{};X.identityProperties=Object.assign(X.identityProperties||{},N),X.signingProperties=Object.assign(X.signingProperties||{},R),U.selectedHttpAuthScheme={httpAuthOption:X,identity:await D(X.identityProperties),signer:B.signer};break}if(!U.selectedHttpAuthScheme)throw Error($.join(`
`));return G(Q)},H={step:"serialize",tags:["HTTP_AUTH_SCHEME"],name:"httpAuthSchemeMiddleware",override:!0,relation:"before",toMiddleware:"endpointV2Middleware"},P=(F,{httpAuthSchemeParametersProvider:J,identityProviderConfigProvider:G})=>({applyToStack:(L)=>{L.addRelativeTo(j(F,{httpAuthSchemeParametersProvider:J,identityProviderConfigProvider:G}),H)}}),M={step:"serialize",tags:["HTTP_AUTH_SCHEME"],name:"httpAuthSchemeMiddleware",override:!0,relation:"before",toMiddleware:"serializerMiddleware"},l=(F,{httpAuthSchemeParametersProvider:J,identityProviderConfigProvider:G})=>({applyToStack:(L)=>{L.addRelativeTo(j(F,{httpAuthSchemeParametersProvider:J,identityProviderConfigProvider:G}),M)}}),m=(F)=>(J)=>{throw J},u=(F,J)=>{},O=(F)=>(J,G)=>async(L)=>{if(!b.HttpRequest.isInstance(L.request))return J(L);let V=w.getSmithyContext(G).selectedHttpAuthScheme;if(!V)throw Error("No HttpAuthScheme was selected: unable to sign request");let{httpAuthOption:{signingProperties:W={}},identity:Z,signer:Y}=V,U=await J({...L,request:await Y.sign(L.request,Z,W)}).catch((Y.errorHandler||m)(W));return(Y.successHandler||u)(U.response,W),U},I={step:"finalizeRequest",tags:["HTTP_SIGNING"],name:"httpSigningMiddleware",aliases:["apiKeyMiddleware","tokenMiddleware","awsAuthMiddleware"],override:!0,relation:"after",toMiddleware:"retryMiddleware"},c=(F)=>({applyToStack:(J)=>{J.addRelativeTo(O(),I)}}),a=(F)=>{if(typeof F==="function")return F;let J=Promise.resolve(F);return()=>J},d=async(F,J,G,L=(V)=>V,...Q)=>{let V=new F(G);return V=L(V)??V,await J.send(V,...Q)};function g(F,J,G,L,Q){return async function*(W,Z,...Y){let U=Z,$=W.startingToken??U[G],X=!0,B;while(X){if(U[G]=$,Q)U[Q]=U[Q]??W.pageSize;if(W.client instanceof F)B=await d(J,W.client,Z,W.withCommand,...Y);else throw Error(`Invalid client, expected instance of ${F.name}`);yield B;let D=$;$=p(B,L),X=!!($&&(!W.stopOnSameToken||$!==D))}return}}var p=(F,J)=>{let G=F,L=J.split(".");for(let Q of L){if(!G||typeof G!=="object")return;G=G[Q]}return G};function s(F,J,G){if(!F.__smithy_context)F.__smithy_context={features:{}};else if(!F.__smithy_context.features)F.__smithy_context.features={};F.__smithy_context.features[J]=G}class E{authSchemes=new Map;constructor(F){for(let J in F){let G=F[J];if(G!==void 0)this.authSchemes.set(J,G)}}getIdentityProvider(F){return this.authSchemes.get(F)}}class _{async sign(F,J,G){if(!G)throw Error("request could not be signed with `apiKey` since the `name` and `in` signer properties are missing");if(!G.name)throw Error("request could not be signed with `apiKey` since the `name` signer property is missing");if(!G.in)throw Error("request could not be signed with `apiKey` since the `in` signer property is missing");if(!J.apiKey)throw Error("request could not be signed with `apiKey` since the `apiKey` is not defined");let L=b.HttpRequest.clone(F);if(G.in===K.HttpApiKeyAuthLocation.QUERY)L.query[G.name]=J.apiKey;else if(G.in===K.HttpApiKeyAuthLocation.HEADER)L.headers[G.name]=G.scheme?`${G.scheme} ${J.apiKey}`:J.apiKey;else throw Error("request can only be signed with `apiKey` locations `query` or `header`, but found: `"+G.in+"`");return L}}class z{async sign(F,J,G){let L=b.HttpRequest.clone(F);if(!J.token)throw Error("request could not be signed with `token` since the `token` is not defined");return L.headers.Authorization=`Bearer ${J.token}`,L}}class A{async sign(F,J,G){return F}}var q=(F)=>function(G){return S(G)&&G.expiration.getTime()-Date.now()<F},T=300000,r=q(T),S=(F)=>F.expiration!==void 0,o=(F,J,G)=>{if(F===void 0)return;let L=typeof F!=="function"?async()=>Promise.resolve(F):F,Q,V,W,Z=!1,Y=async(U)=>{if(!V)V=L(U);try{Q=await V,W=!0,Z=!1}finally{V=void 0}return Q};if(J===void 0)return async(U)=>{if(!W||U?.forceRefresh)Q=await Y(U);return Q};return async(U)=>{if(!W||U?.forceRefresh)Q=await Y(U);if(Z)return Q;if(!G(Q))return Z=!0,Q;if(J(Q))return await Y(U),Q;return Q}};n.requestBuilder=b.requestBuilder;n.DefaultIdentityProviderConfig=E;n.EXPIRATION_MS=T;n.HttpApiKeyAuthSigner=_;n.HttpBearerAuthSigner=z;n.NoAuthSigner=A;n.createIsIdentityExpiredFunction=q;n.createPaginator=g;n.doesIdentityRequireRefresh=S;n.getHttpAuthSchemeEndpointRuleSetPlugin=P;n.getHttpAuthSchemePlugin=l;n.getHttpSigningPlugin=c;n.getSmithyContext=f;n.httpAuthSchemeEndpointRuleSetMiddlewareOptions=H;n.httpAuthSchemeMiddleware=j;n.httpAuthSchemeMiddlewareOptions=M;n.httpSigningMiddleware=O;n.httpSigningMiddlewareOptions=I;n.isIdentityExpired=r;n.memoizeIdentityProvider=o;n.normalizeProvider=a;n.setFeature=s});
export{MF as t5};
