UNPKG

@commercetools/ts-client

Version:
2 lines (1 loc) 24.9 kB
var window;(window||={})["@commercetools/ts-client"]=(()=>{var ue=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ie=Object.getOwnPropertyNames;var Ne=Object.prototype.hasOwnProperty;var ce=(e,r)=>{for(var t in r)ue(e,t,{get:r[t],enumerable:!0})},Ue=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of Ie(r))!Ne.call(e,i)&&i!==t&&ue(e,i,{get:()=>r[i],enumerable:!(o=Fe(r,i))||o.enumerable});return e};var ve=e=>Ue(ue({},"__esModule",{value:!0}),e);var yr={};ce(yr,{ClientBuilder:()=>L,Process:()=>le,createAuthMiddlewareForAnonymousSessionFlow:()=>j,createAuthMiddlewareForClientCredentialsFlow:()=>H,createAuthMiddlewareForExistingTokenFlow:()=>B,createAuthMiddlewareForPasswordFlow:()=>_,createAuthMiddlewareForRefreshTokenFlow:()=>K,createClient:()=>q,createConcurrentModificationMiddleware:()=>Q,createCorrelationIdMiddleware:()=>z,createErrorMiddleware:()=>J,createHttpMiddleware:()=>V,createLoggerMiddleware:()=>G,createQueueMiddleware:()=>Y,createUserAgentMiddleware:()=>W});var Ae={};ce(Ae,{createAuthMiddlewareForAnonymousSessionFlow:()=>j,createAuthMiddlewareForClientCredentialsFlow:()=>H,createAuthMiddlewareForExistingTokenFlow:()=>B,createAuthMiddlewareForPasswordFlow:()=>_,createAuthMiddlewareForRefreshTokenFlow:()=>K,createConcurrentModificationMiddleware:()=>Q,createCorrelationIdMiddleware:()=>z,createErrorMiddleware:()=>J,createHttpMiddleware:()=>V,createLoggerMiddleware:()=>G,createQueueMiddleware:()=>Y,createUserAgentMiddleware:()=>W});var M={};ce(M,{CONCURRENCT_REQUEST:()=>He,CTP_API_URL:()=>Be,CTP_AUTH_URL:()=>_e,DEFAULT_HEADERS:()=>pe,HEADERS_CONTENT_TYPES:()=>je});var je=["application/json","application/graphql"],He=20,Be="https://api.europe-west1.gcp.commercetools.com",_e="https://auth.europe-west1.gcp.commercetools.com",pe=["content-type","access-control-allow-origin","access-control-allow-headers","access-control-allow-methods","access-control-expose-headers","access-control-max-ag","x-correlation-id","server-timing","date","server","transfer-encoding","access-control-max-age","content-encoding","x-envoy-upstream-service-time","via","alt-svc","connection"];function b(e,r,t={}){this.code=t.code??=this.constructor.name,this.statusCode=e,this.status=e,this.message=r,Object.assign(this,t),this.name=this.constructor.name,this.constructor.prototype.__proto__=Error.prototype,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}function Te(...e){b.apply(this,[0,...e])}function be(...e){b.apply(this,e)}function Ke(...e){b.apply(this,[400,...e])}function Le(...e){b.apply(this,[401,...e])}function $e(...e){b.apply(this,[403,...e])}function De(...e){b.apply(this,[404,...e])}function Qe(...e){b.apply(this,[409,...e])}function ze(...e){b.apply(this,[500,...e])}function Je(...e){b.apply(this,[503,...e])}function he(e){switch(e){case 0:return Te;case 400:return Ke;case 401:return Le;case 403:return $e;case 404:return De;case 409:return Qe;case 500:return ze;case 503:return Je;default:return}}function Ve({statusCode:e,message:r,...t}){let o=r||"Unexpected non-JSON error response";e===404&&(o=`URI not found: ${t.originalRequest?.uri||t.uri}`);let i=he(e);return i?new i(o,t):new be(e,o,t)}var N=Ve;function Ge(e,r){return[503,...e].includes(r?.status||r?.statusCode)}async function Ye(e,r){async function t(){return await e({...r,headers:{...r.headers}})}return t().catch(o=>Promise.reject(o))}async function U(e){let{url:r,httpClient:t,...o}=e;return await Ye(async s=>{let{enableRetry:a,retryConfig:n,timeout:d,getAbortController:u}=o,{retryCodes:c=[],maxDelay:l=1/0,maxRetries:p=3,backoff:y=!0,retryDelay:g=200,retryOnAbort:h=!0}=n||{},E,w,C=0,R;we(c);async function O(){return t(r,{...s,...o,headers:{...Object.assign({},o.headers,o.request?.headers??{})},...o.body?{data:o.body}:{},withCredentials:s.credentialsMode==="include"})}function F(){let m=(u?u():null)||new AbortController;return o.abortController=m,o.signal=m.signal,m}async function I(){let m=async(Z,qe)=>{let D={};if(d){let S=F();R=setTimeout(()=>{S.abort(),S=F()},d)}try{if(D=await O(),D.status>399&&Ge(Z,D))return{_response:D,shouldRetry:!0}}catch(S){if((S.name.includes("AbortError")||S.name.includes("TimeoutError"))&&qe)return{_response:S,shouldRetry:!0};throw S}finally{clearTimeout(R)}return{_response:D,shouldRetry:!1}},{_response:$,shouldRetry:X}=await m(c,h);for(;a&&X&&C<p;){C++,await re(ee({retryCount:C,retryDelay:g,maxRetries:p,backoff:y,maxDelay:l}));let Z=await m(c,h);$=Z._response,X=Z.shouldRetry}return $}let f=await I();if(o.method=="HEAD")return{data:null,retryCount:C,statusCode:f.status||f.statusCode||w.statusCode,headers:f.headers};try{f.text&&typeof f.text=="function"?(E=await f.text(),w=JSON.parse(E)):w=f.data||f}catch(m){throw m}return{data:w,retryCount:C,statusCode:f.status||f.statusCode||w.statusCode,headers:f.headers}},{validateStatus:s=>!0})}function te(){return("1000000-1000-4000-8000"+-1e11).replace(/[018]/g,e=>(parseInt(e)^Math.floor(Math.random()*256)&15>>parseInt(e)/4).toString(16))}function We(e){return pe.reduce((r,t)=>{let o=e[t]?e[t]:typeof e.get=="function"?e.get(t):null;return o&&(r[t]=o),r},{})}function x(e){if(!e)return null;if(e.raw&&typeof e.raw=="function")return e.raw();if(!e.forEach)return We(e);let r={};return e.forEach((t,o)=>r[o]=t),r}function oe(e){return e!=null&&e.constructor!=null&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function P(e){let r=JSON.parse(JSON.stringify(e));return r?.headers&&(r.headers.Authorization&&(r.headers.Authorization="Bearer ********"),r.headers.authorization&&(r.headers.authorization="Bearer ********")),r}function v(e,r){return{...r,headers:{...r.headers,Authorization:`Bearer ${e}`}}}var fe=["ACL","BIND","CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LINK","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCALENDAR","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REBIND","REPORT","SEARCH","SOURCE","SUBSCRIBE","TRACE","UNBIND","UNLINK","UNLOCK","UNSUBSCRIBE"];function ee({retryCount:e,retryDelay:r,backoff:t,maxDelay:o}){return t&&e!==0?Math.min(Math.round((Math.random()+1)*r*2**e),o):r}Math.min(Math.round((Math.random()+1)*200*2**10),1/0);function re(e){return new Promise(r=>{setTimeout(r,e)})}function A(e){if(!e?.credentials?.clientId||!e.projectKey||!e.host)throw new Error("Missing required options.");return{clientId:e.credentials.clientId,host:e.host,projectKey:e.projectKey}}function ie(e){return Date.now()+e*1e3-300*1e3}function T(e){let r=e;return{get:t=>r,set:(t,o)=>{r=t}}}function xe(e){return typeof e<"u"&&e!==null}function Xe(e){return xe(e)?typeof e=="string"?e:Object.fromEntries(Object.entries(e).filter(([r,t])=>![null,void 0,""].includes(t))):""}function Ze(e){let r={},t=new URLSearchParams(e);for(let o of t.keys())t.getAll(o).length>1?r[o]=t.getAll(o):r[o]=t.get(o);return r}function er(e){if(e=Xe(e),!e)return"";let r=new URLSearchParams(e);for(let[t,o]of Object.entries(e))Array.isArray(o)&&(r.delete(t),o.filter(xe).forEach(i=>r.append(t,i)));return r.toString()}function me(e,r=Ze){return r(e)}function ne(e,r=er){return r(e)}var rr=()=>typeof window<"u"&&window.document&&window.document.nodeType===9;function tr(){if(rr())return window.navigator.userAgent;let e=process?.version?.slice(1)||"unknown",r=`(${process?.platform||""}; ${process?.arch||""})`;return`node.js/${e} ${r.trim()}`}function se(e){let r=null,t=null;if(!e)throw new Error("Missing required option `name`");let o=e.version?`${e.name}/${e.version}`:e.name;e.libraryName&&!e.libraryVersion?r=e.libraryName:e.libraryName&&e.libraryVersion&&(r=`${e.libraryName}/${e.libraryVersion}`),e.contactUrl&&!e.contactEmail?t=`(+${e.contactUrl})`:!e.contactUrl&&e.contactEmail?t=`(+${e.contactEmail})`:e.contactUrl&&e.contactEmail&&(t=`(+${e.contactUrl}; +${e.contactEmail})`);let i=tr(),s=e.customAgent||"";return[o,i,r,t,s].filter(Boolean).join(" ")}function ye(e){if(!e.host)throw new Error("Request `host` or `url` is missing or invalid, please pass in a valid host e.g `host: http://a-valid-host-url`");if(!e.httpClient&&typeof e.httpClient!="function")throw new Error("An `httpClient` is not available, please pass in a `fetch` or `axios` instance as an option or have them globally available.");if(e.httpClientOptions&&Object.prototype.toString.call(e.httpClientOptions)!=="[object Object]")throw new Error("`httpClientOptions` must be an object type")}function we(e){if(!Array.isArray(e))throw new Error("`retryCodes` option must be an array of retry status (error) codes and/or messages.")}function Me(e){if(!e)throw new Error("Missing required options");if(e.middlewares&&!Array.isArray(e.middlewares))throw new Error("Middlewares should be an array");if(!e.middlewares||!Array.isArray(e.middlewares)||!e.middlewares.length)throw new Error("You need to provide at least one middleware")}function ae(e,r,t={allowedMethods:fe}){if(!r)throw new Error(`The "${e}" function requires a "Request" object as an argument. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(typeof r.uri!="string")throw new Error(`The "${e}" Request object requires a valid uri. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`);if(!t.allowedMethods.includes(r.method))throw new Error(`The "${e}" Request object requires a valid method. See https://commercetools.github.io/nodejs/sdk/Glossary.html#clientrequest`)}function ge(e){if(!Array.isArray(e))throw new Error("`stringBodyContentTypes` option must be an array of strings")}function Ce(e){if(!e)throw new Error("Missing required options");if(!e.host)throw new Error("Missing required option (host)");if(!e.projectKey)throw new Error("Missing required option (projectKey)");if(!e.credentials)throw new Error("Missing required option (credentials)");let{clientId:r,clientSecret:t}=e.credentials||{};if(!(r&&t))throw new Error("Missing required credentials (clientId, clientSecret)");let o=e.scopes?e.scopes.join(" "):void 0,i=btoa(`${r}:${t}`),s=e.oauthUri||"/oauth/token",a=e.host.replace(/\/$/,"")+s,n=`grant_type=client_credentials${o?`&scope=${o}`:""}`;return{url:a,body:n,basicAuth:i}}function Ee(e){if(!e)throw new Error("Missing required options");if(!e.projectKey)throw new Error("Missing required option (projectKey)");let r=e.projectKey;e.oauthUri=e.oauthUri||`/oauth/${r}/anonymous/token`;let t=Ce(e);return e.credentials.anonymousId&&(t.body+=`&anonymous_id=${e.credentials.anonymousId}`),{...t}}function de(e){if(!e)throw new Error("Missing required options");if(!e.host)throw new Error("Missing required option (host)");if(!e.projectKey)throw new Error("Missing required option (projectKey)");if(!e.credentials)throw new Error("Missing required option (credentials)");if(!e.refreshToken)throw new Error("Missing required option (refreshToken)");let{clientId:r,clientSecret:t}=e.credentials;if(!(r&&t))throw new Error("Missing required credentials (clientId, clientSecret)");let o=btoa(`${r}:${t}`),i=e.oauthUri||"/oauth/token",s=e.host.replace(/\/$/,"")+i,a=`grant_type=refresh_token&refresh_token=${encodeURIComponent(e.refreshToken)}`;return{basicAuth:o,url:s,body:a}}function Oe(e){if(!e)throw new Error("Missing required options");if(!e.host)throw new Error("Missing required option (host)");if(!e.projectKey)throw new Error("Missing required option (projectKey)");if(!e.credentials)throw new Error("Missing required option (credentials)");let{clientId:r,clientSecret:t,user:o}=e.credentials,i=e.projectKey;if(!(r&&t&&o))throw new Error("Missing required credentials (clientId, clientSecret, user)");let{username:s,password:a}=o;if(!(s&&a))throw new Error("Missing required user credentials (username, password)");let n=(e.scopes||[]).join(" "),d=n?`&scope=${n}`:"",u=btoa(`${r}:${t}`),c=e.oauthUri||`/oauth/${i}/customers/token`,l=e.host.replace(/\/$/,"")+c,p=`grant_type=password&username=${encodeURIComponent(s)}&password=${encodeURIComponent(a)}${d}`;return{basicAuth:u,url:l,body:p}}async function Re(e){let{httpClient:r,httpClientOptions:t,tokenCache:o,userOption:i,tokenCacheObject:s,tokenCacheKey:a,request:n}=e,d=e.url,u=e.body,c=e.basicAuth;if(!r||typeof r!="function")throw new Error("an `httpClient` is not available, please pass in a `fetch` or `axios` instance as an option or have them globally available.");if(s&&s.refreshToken&&(!s.token||s.token&&Date.now()>s.expirationTime)){if(!i)throw new Error("Missing required options.");let p={...de({...i,refreshToken:s.refreshToken})};d=p.url,u=p.body,c=p.basicAuth}let l;try{if(l=await U({url:d,method:"POST",headers:{...n.headers,Authorization:`Basic ${c}`,"Content-Type":"application/x-www-form-urlencoded"},httpClient:r,httpClientOptions:t,body:u}),l.statusCode>=200&&l.statusCode<300){let{access_token:p,expires_in:y,refresh_token:g}=l?.data,h=ie(y),E={token:p,expirationTime:h,refreshToken:g};return await o.set(E,a),Promise.resolve(!0)}throw N({code:l.data.error,statusCode:l.data.statusCode,message:l.data.message,error:l.data.errors})}catch(p){throw p}}async function k(e,r=null,t,o,i,s,a,n){let d={request:e,tokenCache:i,tokenCacheKey:o,httpClient:a.httpClient||fetch,httpClientOptions:a.httpClientOptions,...s(a),userOption:a,next:n},u=async c=>{let l=Object.assign({},c);return l.statusCode==401&&(r=Re(d),await r,r=null,t=await i.get(o),l=await n(v(t.token,e))),l};return e.headers&&(e.headers.Authorization||e.headers.authorization)?u(await n(e)):(t=await i.get(o),t&&t.token&&Date.now()<t.expirationTime?u(await n(v(t.token,e))):(r?await r:(r=Re(d),await r,r=null),t=await i.get(o),n(v(t.token,e))))}function j(e){let r=e.tokenCache||T({token:"",expirationTime:-1}),t,o=null,i=A(e);return s=>async a=>k(a,o,t,i,r,Ee,e,s)}function H(e){let r=e.tokenCache||T({token:"",expirationTime:-1}),t,o=null,i=A(e);return s=>async a=>k(a,o,t,i,r,Ce,e,s)}function B(e,r){return t=>async o=>{if(typeof e!="string")throw new Error("authorization must be a string");let i=r?.force===void 0?!0:r.force;if(!e||o.headers&&(o.headers.Authorization||o.headers.authorization)&&i===!1)return t(o);let s={...o,headers:{...o.headers,Authorization:e}};return t(s)}}function _(e){let r=e.tokenCache||T({token:"",expirationTime:-1}),t,o=null,i=A(e);return s=>async a=>k(a,o,t,i,r,Oe,e,s)}function K(e){let r=e.tokenCache||T({token:"",tokenCacheKey:null}),t,o=null,i=A(e);return s=>async a=>k(a,o,t,i,r,de,e,s)}function Q(e){return r=>async t=>{let o=await r(t);if(o.statusCode==409){let i=o.error.body?.errors?.[0]?.currentVersion;if(i)return e&&typeof e=="function"?t.body=await e(i,t,o):t.body=typeof t.body=="string"?{...JSON.parse(t.body),version:i}:{...t.body,version:i},r(t)}return o}}function z(e){return r=>t=>{let o={...t,headers:{...t.headers,"X-Correlation-ID":e?.generate&&typeof e.generate=="function"?e.generate():te()}};return r(o)}}function J(e={}){return r=>async t=>{let o=await r(t);if(o.error){let{error:i}=o;return e.handler&&typeof e.handler=="function"?e.handler({error:i,request:t,response:o,next:r}):{...o,statusCode:i.statusCode||0,headers:i.headers||x({}),body:i,error:i}}return o}}async function or({url:e,httpClient:r,clientOptions:t}){let{request:o,maskSensitiveHeaderData:i,includeRequestInErrorResponse:s,includeResponseHeaders:a}=t;try{let n=await U({url:e,...t,httpClient:r,method:t.method,...t.body?{body:t.body}:{}});if(a||(n.headers=null),n.statusCode>=200&&n.statusCode<300)return t.method=="HEAD"?{body:null,statusCode:n.statusCode,retryCount:n.retryCount,headers:x(n.headers)}:{body:n.data,statusCode:n.statusCode,retryCount:n.retryCount,headers:x(n.headers)};let d=N({code:n.data?.errors?.[0].code,message:n?.data?.message||n?.message,statusCode:n.statusCode||n?.data?.statusCode,method:t.method,headers:x(n.headers),body:n.data,error:n.data,retryCount:n.retryCount,...s?{originalRequest:i?P(o):o}:{uri:o.uri}});return{...d,error:d}}catch(n){let d=a?x(n.response?.headers):null,u=n.response?.status||n.response?.statusCode||n.response?.data.statusCode||0,c=n.response?.data?.message;throw{body:null,error:N({statusCode:u,code:"NetworkError",status:u,message:c||n.message,headers:d,body:n.response?.data||n,error:n.response?.data||n,...s?{originalRequest:i?P(o):o}:{uri:o.uri}})}}}function V(e){ye(e);let{host:r,credentialsMode:t,httpClient:o,timeout:i,enableRetry:s,retryConfig:a,getAbortController:n,includeOriginalRequest:d,includeRequestInErrorResponse:u=!0,includeResponseHeaders:c=!0,maskSensitiveHeaderData:l=!0,httpClientOptions:p,stringBodyContentTypes:y=[]}=e;return g=>async h=>{let E=r.replace(/\/$/,"")+h.uri,w={...h.headers};ge(y),Object.prototype.hasOwnProperty.call(w,"Content-Type")||Object.prototype.hasOwnProperty.call(w,"content-type")||(w["Content-Type"]="application/json"),w["Content-Type"]===null&&delete w["Content-Type"];let C=[...M.HEADERS_CONTENT_TYPES,...y].indexOf(w["Content-Type"])>-1&&typeof h.body=="string"||oe(h.body)?h.body:JSON.stringify(h.body||void 0),R={enableRetry:s,retryConfig:a,request:h,method:h.method,headers:w,includeRequestInErrorResponse:u,maskSensitiveHeaderData:l,includeResponseHeaders:c,...p};t&&(R.credentialsMode=t),i&&(R.timeout=i,R.getAbortController=n),C&&(R.body=C);let O=await or({url:E,clientOptions:R,httpClient:o}),F={...h,includeOriginalRequest:d,maskSensitiveHeaderData:l,response:O};return g(F)}}function G(e){return r=>async t=>{let o=await r(t),i=Object.assign({},o),{loggerFn:s=console.log}=e||{};return s&&typeof s=="function"&&s(o),i}}function Y({concurrency:e=20}){let r=0,t=[],o=()=>0>=e?Promise.resolve():new Promise(s=>{let a=()=>{r<e?(r++,s()):t.push(a)};a()}),i=()=>{if(r--,t.length>0){let s=t.shift();s&&s()}};return s=>a=>o().then(()=>{let n={...a,resolve(d){a.resolve(d),i()},reject(d){a.reject(d),i()}};return s(n).finally(()=>{i()})})}var ke={name:"@commercetools/ts-client",version:"5.0.0",engines:{node:">=22"},description:"commercetools Composable Commerce TypeScript SDK client.",keywords:["commercetools","composable commerce","sdk","typescript","client","middleware","http","oauth","auth"],homepage:"https://github.com/commercetools/commercetools-sdk-typescript",license:"MIT",directories:{lib:"lib",test:"test"},publishConfig:{access:"public"},repository:{type:"git",url:"https://github.com/commercetools/commercetools-sdk-typescript"},bugs:{url:"https://github.com/commercetools/commercetools-sdk-typescript/issues"},dependencies:{buffer:"^6.0.3"},files:["dist","CHANGELOG.md"],author:"Chukwuemeka Ajima <meeky.ae@gmail.com>",main:"dist/commercetools-ts-client.cjs.js",module:"dist/commercetools-ts-client.esm.js",browser:{"./dist/commercetools-ts-client.cjs.js":"./dist/commercetools-ts-client.browser.cjs.js","./dist/commercetools-ts-client.esm.js":"./dist/commercetools-ts-client.browser.esm.js"},devDependencies:{"common-tags":"1.8.2",dotenv:"17.4.2",jest:"30.4.2",nock:"14.0.15","organize-imports-cli":"1.0.2"},scripts:{organize_imports:"find src -type f -name '*.ts' | xargs organize-imports-cli",postbuild:"yarn organize_imports",post_process_generate:"yarn organize_imports",docs:"typedoc --out docs"}};function W(e){return r=>async t=>{let o=se({...e,name:`${e.name?e.name+"/":""}commercetools-sdk-javascript-v3/${ke.version}`}),i={...t,headers:{...t.headers,"User-Agent":o}};return r(i)}}function nr({middlewares:e}){return e.length===1?e[0]:e.slice().reduce((t,o)=>(...i)=>t(o.apply(null,i)))}var Se;function le(e,r,t){if(ae("process",e,{allowedMethods:["GET"]}),typeof r!="function")throw new Error('The "process" function accepts a "Function" as a second argument that returns a Promise. See https://commercetools.github.io/nodejs/sdk/api/sdkClient.html#processrequest-processfn-options');let o={total:Number.POSITIVE_INFINITY,accumulate:!0,...t};return new Promise((i,s)=>{let a,n="";if(e&&e.uri){let[y,g]=e.uri.split("?");a=y,n=g}let u={limit:20,...{...me(n)}},c=o.total,l=!1,p=async(y,g=[])=>{let h=u.limit<c?u.limit:c,E=ne({...u,limit:h}),w={sort:"id asc",withTotal:!1,...y?{where:`id > "${y}"`}:{}},C=ne(w),R={...e,uri:`${a}?${C}&${E}`};try{let O=await q(Se).execute(R),{results:F,count:I}=O?.body||{};if(!I&&l)return i(g||[]);let f=await Promise.resolve(r(O)),m;if(l=!0,o.accumulate&&(m=g.concat(f||[])),c-=I,I<u.limit||!c)return i(m||[]);let $=F[I-1],X=$&&$.id;p(X,m)}catch(O){s(O)}};p()})}function q(e){Se=e,Me(e);let r=!0,t={async resolve(i){let{response:s,includeOriginalRequest:a,maskSensitiveHeaderData:n=!0,...d}=i,{retryCount:u,...c}=s;return r=n,{body:null,error:null,reject:i.reject,resolve:i.resolve,...c,...a?{originalRequest:d}:{},...s?.retryCount?{retryCount:s.retryCount}:{}}}},o=nr(e)(t.resolve);return{process:le,execute(i){return ae("exec",i),new Promise(async(s,a)=>{try{let n=await o({reject:a,resolve:s,...i});if(n.error)return a(n.error);n.originalRequest&&r&&(n.originalRequest=P(n.originalRequest)),s(n)}catch(n){a(n)}})}}}var{createAuthMiddlewareForPasswordFlow:sr,createAuthMiddlewareForAnonymousSessionFlow:ar,createAuthMiddlewareForClientCredentialsFlow:dr,createAuthMiddlewareForRefreshTokenFlow:lr,createAuthMiddlewareForExistingTokenFlow:ur,createCorrelationIdMiddleware:cr,createHttpMiddleware:pr,createLoggerMiddleware:hr,createQueueMiddleware:wr,createUserAgentMiddleware:Pe,createConcurrentModificationMiddleware:fr,createErrorMiddleware:mr}=Ae,L=class{projectKey;authMiddleware;httpMiddleware;userAgentMiddleware;correlationIdMiddleware;loggerMiddleware;queueMiddleware;concurrentMiddleware;telemetryMiddleware;beforeMiddleware;afterMiddleware;errorMiddleware;middlewares=[];constructor(){this.userAgentMiddleware=Pe({})}withProjectKey(r){return this.projectKey=r,this}defaultClient(r,t,o,i,s,a){return this.withClientCredentialsFlow({host:o,projectKey:i||this.projectKey,credentials:t,httpClient:a||fetch,scopes:s}).withHttpMiddleware({host:r,httpClient:a||fetch})}withAuthMiddleware(r){return this.authMiddleware=r,this}withMiddleware(r){return this.middlewares.push(r),this}withErrorMiddleware(r){return this.errorMiddleware=mr(r),this}withClientCredentialsFlow(r){return this.withAuthMiddleware(dr({host:r.host||M.CTP_AUTH_URL,projectKey:r.projectKey||this.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null},oauthUri:r.oauthUri||null,scopes:r.scopes,httpClient:r.httpClient||fetch,...r}))}withPasswordFlow(r){return this.withAuthMiddleware(sr({host:r.host||M.CTP_AUTH_URL,projectKey:r.projectKey||this.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null,user:{username:r.credentials.user.username||null,password:r.credentials.user.password||null}},httpClient:r.httpClient||fetch,...r}))}withAnonymousSessionFlow(r){return this.withAuthMiddleware(ar({host:r.host||M.CTP_AUTH_URL,projectKey:this.projectKey||r.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null,anonymousId:r.credentials.anonymousId||null},httpClient:r.httpClient||fetch,...r}))}withRefreshTokenFlow(r){return this.withAuthMiddleware(lr({host:r.host||M.CTP_AUTH_URL,projectKey:this.projectKey||r.projectKey,credentials:{clientId:r.credentials.clientId||null,clientSecret:r.credentials.clientSecret||null},httpClient:r.httpClient||fetch,refreshToken:r.refreshToken||null,...r}))}withExistingTokenFlow(r,t){return this.withAuthMiddleware(ur(r,{force:t.force||!0,...t}))}withHttpMiddleware(r){return this.httpMiddleware=pr({host:r.host||M.CTP_API_URL,httpClient:r.httpClient||fetch,...r}),this}withUserAgentMiddleware(r){return this.userAgentMiddleware=Pe(r),this}withQueueMiddleware(r){return this.queueMiddleware=wr({concurrency:r.concurrency||M.CONCURRENCT_REQUEST,...r}),this}withLoggerMiddleware(r){return this.loggerMiddleware=hr(r),this}withCorrelationIdMiddleware(r){return this.correlationIdMiddleware=cr({generate:r?.generate,...r}),this}withConcurrentModificationMiddleware(r){return this.concurrentMiddleware=fr(r?.concurrentModificationHandlerFn),this}withTelemetryMiddleware(r){let{createTelemetryMiddleware:t,...o}=r;return this.withUserAgentMiddleware({customAgent:o?.userAgent||"typescript-sdk-apm-middleware"}),this.telemetryMiddleware=t(o),this}withBeforeExecutionMiddleware(r){let{middleware:t,...o}=r||{};return this.beforeMiddleware=r.middleware(o),this}withAfterExecutionMiddleware(r){let{middleware:t,...o}=r||{};return this.afterMiddleware=r.middleware(o),this}build(){let r=this.middlewares.slice();return this.telemetryMiddleware&&r.push(this.telemetryMiddleware),this.correlationIdMiddleware&&r.push(this.correlationIdMiddleware),this.userAgentMiddleware&&r.push(this.userAgentMiddleware),this.errorMiddleware&&r.push(this.errorMiddleware),this.authMiddleware&&r.push(this.authMiddleware),this.beforeMiddleware&&r.push(this.beforeMiddleware),this.queueMiddleware&&r.push(this.queueMiddleware),this.loggerMiddleware&&r.push(this.loggerMiddleware),this.concurrentMiddleware&&r.push(this.concurrentMiddleware),this.httpMiddleware&&r.push(this.httpMiddleware),this.afterMiddleware&&r.push(this.afterMiddleware),q({middlewares:r})}};return ve(yr);})();