liferay-headless-rest-client
Version:
A collection of Headless Clients used in Liferay Portal
2 lines (1 loc) • 7.07 kB
JavaScript
var z=async(F,X)=>{let G=typeof X=="function"?await X(F):X;if(G)return F.scheme==="bearer"?`Bearer ${G}`:F.scheme==="basic"?`Basic ${btoa(G)}`:G},O=(F,X,G)=>{typeof G=="string"||G instanceof Blob?F.append(X,G):F.append(X,JSON.stringify(G))};var u={bodySerializer:(F)=>{let X=new FormData;return Object.entries(F).forEach(([G,B])=>{B!=null&&(Array.isArray(B)?B.forEach((k)=>O(X,G,k)):O(X,G,B))}),X}},A={bodySerializer:(F)=>JSON.stringify(F,(X,G)=>typeof G=="bigint"?G.toString():G)};var j=(F)=>{switch(F){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},m=(F)=>{switch(F){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},w=(F)=>{switch(F){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},x=({allowReserved:F,explode:X,name:G,style:B,value:k})=>{if(!X){let V=(F?k:k.map((H)=>encodeURIComponent(H))).join(m(B));switch(B){case"label":return`.${V}`;case"matrix":return`;${G}=${V}`;case"simple":return V;default:return`${G}=${V}`}}let E=j(B),Z=k.map((V)=>B==="label"||B==="simple"?F?V:encodeURIComponent(V):q({allowReserved:F,name:G,value:V})).join(E);return B==="label"||B==="matrix"?E+Z:Z},q=({allowReserved:F,name:X,value:G})=>{if(G==null)return"";if(typeof G=="object")throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${X}=${F?G:encodeURIComponent(G)}`},R=({allowReserved:F,explode:X,name:G,style:B,value:k})=>{if(k instanceof Date)return`${G}=${k.toISOString()}`;if(B!=="deepObject"&&!X){let V=[];Object.entries(k).forEach(([M,L])=>{V=[...V,M,F?L:encodeURIComponent(L)]});let H=V.join(",");switch(B){case"form":return`${G}=${H}`;case"label":return`.${H}`;case"matrix":return`;${G}=${H}`;default:return H}}let E=w(B),Z=Object.entries(k).map(([V,H])=>q({allowReserved:F,name:B==="deepObject"?`${G}[${V}]`:V,value:H})).join(E);return B==="label"||B==="matrix"?E+Z:Z},b=/\{[^{}]+\}/g,C=({path:F,url:X})=>{let G=X,B=X.match(b);if(B)for(let k of B){let E=!1,Z=k.substring(1,k.length-1),V="simple";Z.endsWith("*")&&(E=!0,Z=Z.substring(0,Z.length-1)),Z.startsWith(".")?(Z=Z.substring(1),V="label"):Z.startsWith(";")&&(Z=Z.substring(1),V="matrix");let H=F[Z];if(H==null)continue;if(Array.isArray(H)){G=G.replace(k,x({explode:E,name:Z,style:V,value:H}));continue}if(typeof H=="object"){G=G.replace(k,R({explode:E,name:Z,style:V,value:H}));continue}if(V==="matrix"){G=G.replace(k,`;${q({name:Z,value:H})}`);continue}let M=encodeURIComponent(V==="label"?`.${H}`:H);G=G.replace(k,M)}return G},S=({allowReserved:F,array:X,object:G}={})=>(B)=>{let k=[];if(B&&typeof B=="object")for(let E in B){let Z=B[E];if(Z!=null)if(Array.isArray(Z)){let V=x({allowReserved:F,explode:!0,name:E,style:"form",value:Z,...X});V&&k.push(V)}else if(typeof Z=="object"){let V=R({allowReserved:F,explode:!0,name:E,style:"deepObject",value:Z,...G});V&&k.push(V)}else{let V=q({allowReserved:F,name:E,value:Z});V&&k.push(V)}}return k.join("&")},g=(F)=>{if(!F)return"stream";let X=F.split(";")[0]?.trim();if(X){if(X.startsWith("application/json")||X.endsWith("+json"))return"json";if(X==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some((G)=>X.startsWith(G)))return"blob";if(X.startsWith("text/"))return"text"}},d=async({security:F,...X})=>{for(let G of F){let B=await z(G,X.auth);if(!B)continue;let k=G.name??"Authorization";switch(G.in){case"query":X.query||(X.query={}),X.query[k]=B;break;case"cookie":X.headers.append("Cookie",`${k}=${B}`);break;case"header":default:X.headers.set(k,B);break}return}},U=(F)=>y({baseUrl:F.baseUrl,path:F.path,query:F.query,querySerializer:typeof F.querySerializer=="function"?F.querySerializer:S(F.querySerializer),url:F.url}),y=({baseUrl:F,path:X,query:G,querySerializer:B,url:k})=>{let E=k.startsWith("/")?k:`/${k}`,Z=(F??"")+E;X&&(Z=C({path:X,url:Z}));let V=G?B(G):"";return V.startsWith("?")&&(V=V.substring(1)),V&&(Z+=`?${V}`),Z},Y=(F,X)=>{let G={...F,...X};return G.baseUrl?.endsWith("/")&&(G.baseUrl=G.baseUrl.substring(0,G.baseUrl.length-1)),G.headers=T(F.headers,X.headers),G},T=(...F)=>{let X=new Headers;for(let G of F){if(!G||typeof G!="object")continue;let B=G instanceof Headers?G.entries():Object.entries(G);for(let[k,E]of B)if(E===null)X.delete(k);else if(Array.isArray(E))for(let Z of E)X.append(k,Z);else E!==void 0&&X.set(k,typeof E=="object"?JSON.stringify(E):E)}return X},D=class{_fns;constructor(){this._fns=[]}clear(){this._fns=[]}getInterceptorIndex(F){return typeof F=="number"?this._fns[F]?F:-1:this._fns.indexOf(F)}exists(F){let X=this.getInterceptorIndex(F);return!!this._fns[X]}eject(F){let X=this.getInterceptorIndex(F);this._fns[X]&&(this._fns[X]=null)}update(F,X){let G=this.getInterceptorIndex(F);return this._fns[G]?(this._fns[G]=X,F):!1}use(F){return this._fns=[...this._fns,F],this._fns.length-1}},f=()=>({error:new D,request:new D,response:new D}),h=S({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),p={"Content-Type":"application/json"},I=(F={})=>({...A,headers:p,parseAs:"auto",querySerializer:h,...F}),_=(F={})=>{let X=Y(I(),F),G=()=>({...X}),B=(Z)=>(X=Y(X,Z),G()),k=f(),E=async(Z)=>{let V={...X,...Z,fetch:Z.fetch??X.fetch??globalThis.fetch,headers:T(X.headers,Z.headers)};V.security&&await d({...V,security:V.security}),V.body&&V.bodySerializer&&(V.body=V.bodySerializer(V.body)),(V.body===void 0||V.body==="")&&V.headers.delete("Content-Type");let H=U(V),M={redirect:"follow",...V},L=new Request(H,M);for(let K of k.request._fns)K&&(L=await K(L,V));let v=V.fetch,J=await v(L);for(let K of k.response._fns)K&&(J=await K(J,L,V));let W={request:L,response:J};if(J.ok){if(J.status===204||J.headers.get("Content-Length")==="0")return V.responseStyle==="data"?{}:{data:{},...W};let K=(V.parseAs==="auto"?g(J.headers.get("Content-Type")):V.parseAs)??"json";if(K==="stream")return V.responseStyle==="data"?J.body:{data:J.body,...W};let Q=await J[K]();return K==="json"&&(V.responseValidator&&await V.responseValidator(Q),V.responseTransformer&&(Q=await V.responseTransformer(Q))),V.responseStyle==="data"?Q:{data:Q,...W}}let $=await J.text();try{$=JSON.parse($)}catch{}let P=$;for(let K of k.error._fns)K&&(P=await K($,J,L,V));if(P=P||{},V.throwOnError)throw P;return V.responseStyle==="data"?void 0:{error:P,...W}};return{buildUrl:U,connect:(Z)=>E({...Z,method:"CONNECT"}),delete:(Z)=>E({...Z,method:"DELETE"}),get:(Z)=>E({...Z,method:"GET"}),getConfig:G,head:(Z)=>E({...Z,method:"HEAD"}),interceptors:k,options:(Z)=>E({...Z,method:"OPTIONS"}),patch:(Z)=>E({...Z,method:"PATCH"}),post:(Z)=>E({...Z,method:"POST"}),put:(Z)=>E({...Z,method:"PUT"}),request:E,setConfig:B,trace:(Z)=>E({...Z,method:"TRACE"})}};var N=_(I({baseUrl:"http://localhost:8080"}));var r=(F)=>{return(F?.client??N).get({url:"/o/captcha/v1.0/captcha/challenge",...F})},i=(F)=>{return(F?.client??N).post({url:"/o/captcha/v1.0/captcha/response",...F,headers:{"Content-Type":"application/json",...F?.headers}})};export{i as postCaptchaResponse,r as getCaptchaChallenge};