create-request 1.3.1 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -17
- package/dist/library/BaseRequest.d.ts +26 -4
- package/dist/library/index.cjs +63 -6
- package/dist/library/index.cjs.map +1 -1
- package/dist/library/index.d.ts +1 -1
- package/dist/library/index.esm.js +63 -6
- package/dist/library/index.esm.js.map +1 -1
- package/dist/library/index.esm.min.js +1 -1
- package/dist/library/index.esm.min.js.map +1 -1
- package/dist/library/index.min.cjs +1 -1
- package/dist/library/index.min.cjs.map +1 -1
- package/dist/library/types.d.ts +25 -1
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var t,e,r,s,o,i,n,h,a;exports.HttpMethod=void 0,(t=exports.HttpMethod||(exports.HttpMethod={})).GET="GET",t.PUT="PUT",t.POST="POST",t.HEAD="HEAD",t.PATCH="PATCH",t.DELETE="DELETE",t.OPTIONS="OPTIONS",exports.RequestPriority=void 0,(e=exports.RequestPriority||(exports.RequestPriority={})).LOW="low",e.HIGH="high",e.AUTO="auto",exports.CredentialsPolicy=void 0,(r=exports.CredentialsPolicy||(exports.CredentialsPolicy={})).OMIT="omit",r.INCLUDE="include",r.SAME_ORIGIN="same-origin",exports.RequestMode=void 0,(s=exports.RequestMode||(exports.RequestMode={})).CORS="cors",s.NO_CORS="no-cors",s.SAME_ORIGIN="same-origin",s.NAVIGATE="navigate",exports.RedirectMode=void 0,(o=exports.RedirectMode||(exports.RedirectMode={})).ERROR="error",o.FOLLOW="follow",o.MANUAL="manual",exports.SameSitePolicy=void 0,(i=exports.SameSitePolicy||(exports.SameSitePolicy={})).LAX="Lax",i.NONE="None",i.STRICT="Strict",function(t){t.JSON="json",t.STRING="string",t.BINARY="binary"}(n||(n={})),exports.ReferrerPolicy=void 0,(h=exports.ReferrerPolicy||(exports.ReferrerPolicy={})).ORIGIN="origin",h.UNSAFE_URL="unsafe-url",h.SAME_ORIGIN="same-origin",h.NO_REFERRER="no-referrer",h.STRICT_ORIGIN="strict-origin",h.ORIGIN_WHEN_CROSS_ORIGIN="origin-when-cross-origin",h.NO_REFERRER_WHEN_DOWNGRADE="no-referrer-when-downgrade",h.STRICT_ORIGIN_WHEN_CROSS_ORIGIN="strict-origin-when-cross-origin",function(t){t.RELOAD="reload",t.DEFAULT="default",t.NO_CACHE="no-cache",t.NO_STORE="no-store",t.FORCE_CACHE="force-cache",t.ONLY_IF_CACHED="only-if-cached"}(a||(a={}));class c extends Error{status;response;url;method;isTimeout;isAborted;constructor(t,e,r,s={}){super(t),this.name="RequestError",this.url=e,this.method=r,this.status=s.status,this.response=s.response,this.isTimeout=s.isTimeout,this.isAborted=s.isAborted,Error.captureStackTrace&&Error.captureStackTrace(this,c),Object.setPrototypeOf(this,c.prototype)}static timeout(t,e,r){return new c(`Timeout: ${r}ms`,t,e,{isTimeout:!0})}static fromResponse(t,e,r){return new c("HTTP "+t.status,e,r,{status:t.status,response:t})}static networkError(t,e,r){let s=r.message;const o=r.code,i=r.name,n=r.stack||"",h=s.toLowerCase(),a="TimeoutError"===i||h.includes("timeout")||h.includes("aborted due to timeout")||"ETIMEDOUT"===o||n.includes("TimeoutError")||n.includes("timeout");if("fetch failed"===s||"Failed to fetch"===s){const e="ENOTFOUND"===o||"EAI_AGAIN"===o||"EAI_NODATA"===o||n.includes("getaddrinfo")||n.includes("ENOTFOUND")||n.includes("EAI_AGAIN"),r=!a&&("ECONNREFUSED"===o||"ECONNRESET"===o||n.includes("ECONNREFUSED")||n.includes("connect"));s=a?"Network error: Request timeout for "+t:e?"Network error: Unable to resolve hostname for "+t:r?"Network error: Connection refused for "+t:"Network error: Failed to fetch "+t}const u=new c(s,t,e,{...a?{isTimeout:!0}:{}});return r.stack&&(u.stack=`${u.stack||""}\n\nCaused by: ${r.stack}`),u}static abortError(t,e){return new c("Aborted",t,e,{isAborted:!0})}}class u{response;url;method;graphQLOptions;constructor(t,e,r,s){this.response=t,this.url=e,this.method=r,s&&(this.graphQLOptions={throwOnError:s.throwOnError})}get status(){return this.response.status}get statusText(){return this.response.statusText}get headers(){return this.response.headers}get ok(){return this.response.ok}get raw(){return this.response}checkGraphQLErrors(t){if(!this.graphQLOptions?.throwOnError||"object"!=typeof t||null===t)return;const e=t;if(!Array.isArray(e.errors)||0===e.errors.length)return;const r=e.errors.map((t=>"string"==typeof t?t:t&&"object"==typeof t&&"message"in t?(t.message||"Unknown error")+"":t+"")).join(", ");throw new c("GraphQL request failed with errors: "+r,this.url||"",this.method||"",{status:this.response.status,response:this.response})}async getJson(){if(this.response.bodyUsed)throw new c("Body already consumed",this.url||"",this.method||"",{status:this.response.status,response:this.response});try{const t=await this.response.json();return this.checkGraphQLErrors(t),t}catch(t){if(t instanceof c)throw t;throw new c("Invalid JSON: "+(t instanceof Error?t.message:t+""),this.url||"",this.method||"",{status:this.response.status,response:this.response})}}async getText(){if(this.response.bodyUsed)throw new c("Body already consumed",this.url||"",this.method||"",{status:this.response.status,response:this.response});try{return await this.response.text()}catch(t){throw new c("Read failed: "+(t instanceof Error?t.message:t+""),this.url||"",this.method||"",{status:this.response.status,response:this.response})}}async getBlob(){if(this.response.bodyUsed)throw new c("Body already consumed",this.url||"",this.method||"",{status:this.response.status,response:this.response});try{return await this.response.blob()}catch(t){throw new c("Read failed: "+(t instanceof Error?t.message:t+""),this.url||"",this.method||"",{status:this.response.status,response:this.response})}}async getArrayBuffer(){if(this.response.bodyUsed)throw new c("Body already consumed",this.url||"",this.method||"",{status:this.response.status,response:this.response});try{return await this.response.arrayBuffer()}catch(t){throw new c("Read failed: "+(t instanceof Error?t.message:t+""),this.url||"",this.method||"",{status:this.response.status,response:this.response})}}getBody(){if(this.response.bodyUsed)throw new c("Body already consumed",this.url||"",this.method||"",{status:this.response.status,response:this.response});return this.response.body}async getData(t){try{const e=await this.getJson();return t?t(e):e}catch(e){if(e instanceof c)throw e;if(t)throw new c("Data selector failed: "+(e instanceof Error?e.message:e+""),this.url||"",this.method||"",{status:this.response.status,response:this.response});throw c.networkError(this.url||"",this.method||"",e instanceof Error?e:Error(e+""))}}}class f{static formatRequestCookies(t){const e=[];return Object.entries(t).forEach((([t,r])=>{let s;s="string"==typeof r?r:r.value,e.push(`${encodeURIComponent(t)}=${encodeURIComponent(s)}`)})),e.join("; ")}}class p{static getTokenFromMeta(t="csrf-token"){if("undefined"==typeof document)return null;const e=document.querySelector(`meta[name="${t}"]`);return e?.getAttribute("content")||null}static getTokenFromCookie(t="csrf-token"){if("undefined"==typeof document)return null;const e=document.cookie.split(";");for(const r of e){const[e,s]=r.trim().split("=");if(e===t)return decodeURIComponent(s)}return null}static isValidToken(t){return!("string"!=typeof t||8>t.length||t.length>10&&(!/^[A-Za-z0-9\-_=+/.]+$/.test(t)||2>[/[A-Z]/.test(t),/[a-z]/.test(t),/[0-9]/.test(t),/[-_=+/.]/.test(t)].filter(Boolean).length))}}class d{static instance;csrfHeaderName="X-CSRF-Token";xsrfCookieName="XSRF-TOKEN";xsrfHeaderName="X-XSRF-TOKEN";csrfToken=null;enableAutoXsrf=!0;enableAntiCsrf=!0;requestInterceptors=[];responseInterceptors=[];errorInterceptors=[];nextInterceptorId=1;constructor(){}static getInstance(){return d.instance||(d.instance=new d),d.instance}setCsrfToken(t){return this.csrfToken=t,this}getCsrfToken(){return this.csrfToken}setCsrfHeaderName(t){return this.csrfHeaderName=t,this}getCsrfHeaderName(){return this.csrfHeaderName}setXsrfCookieName(t){return this.xsrfCookieName=t,this}getXsrfCookieName(){return this.xsrfCookieName}setXsrfHeaderName(t){return this.xsrfHeaderName=t,this}getXsrfHeaderName(){return this.xsrfHeaderName}setEnableAutoXsrf(t){return this.enableAutoXsrf=t,this}isAutoXsrfEnabled(){return this.enableAutoXsrf}setEnableAntiCsrf(t){return this.enableAntiCsrf=t,this}isAntiCsrfEnabled(){return this.enableAntiCsrf}addRequestInterceptor(t){const e=this.nextInterceptorId++;return this.requestInterceptors.push({id:e,interceptor:t}),e}addResponseInterceptor(t){const e=this.nextInterceptorId++;return this.responseInterceptors.push({id:e,interceptor:t}),e}addErrorInterceptor(t){const e=this.nextInterceptorId++;return this.errorInterceptors.push({id:e,interceptor:t}),e}removeRequestInterceptor(t){this.requestInterceptors=this.requestInterceptors.filter((e=>e.id!==t))}removeResponseInterceptor(t){this.responseInterceptors=this.responseInterceptors.filter((e=>e.id!==t))}removeErrorInterceptor(t){this.errorInterceptors=this.errorInterceptors.filter((e=>e.id!==t))}clearInterceptors(){this.requestInterceptors=[],this.responseInterceptors=[],this.errorInterceptors=[]}getRequestInterceptors(){return this.requestInterceptors.map((t=>t.interceptor))}getResponseInterceptors(){return this.responseInterceptors.map((t=>t.interceptor))}getErrorInterceptors(){return this.errorInterceptors.map((t=>t.interceptor))}reset(){return this.csrfToken=null,this.csrfHeaderName="X-CSRF-Token",this.enableAntiCsrf=!0,this.xsrfCookieName="XSRF-TOKEN",this.xsrfHeaderName="X-XSRF-TOKEN",this.enableAutoXsrf=!0,this.clearInterceptors(),this}}class l{url;requestOptions={headers:{}};abortController;queryParams=new URLSearchParams;autoApplyCsrfProtection=!0;requestInterceptors=[];responseInterceptors=[];errorInterceptors=[];constructor(t){this.url=t}getGraphQLOptions(){}createFluentSetter(t,e){const r={};return Object.entries(e).forEach((([e,s])=>{r[e]=()=>(this.requestOptions[t]=s,this)})),Object.assign((e=>(this.requestOptions[t]=e,this)),r)}validateUrl(t){if(!t?.trim())throw new c("URL cannot be empty",t,this.method);if(t.includes("\0")||t.includes("\r")||t.includes("\n"))throw new c("Invalid URL (control chars)",t,this.method);const e=t.trim();if(e.startsWith("http://")||e.startsWith("https://"))try{new URL(e)}catch{throw new c("Invalid URL: "+e,e,this.method)}}withHeaders(t){const e={};return Object.entries(t).forEach((([t,r])=>{null!=r&&(e[t]=r)})),this.requestOptions.headers={...this.getHeadersRecord(),...e},this}withHeader(t,e){return null!=e?this.withHeaders({[t]:e}):this}withTimeout(t){if(!Number.isFinite(t)||0>=t)throw new c("Timeout must be a positive number",this.url,this.method);return this.requestOptions.timeout=t,this}withRetries(t){if(!Number.isInteger(t)||0>t)throw new c("Retry count must be a non-negative integer",this.url,this.method);return this.requestOptions.retries=t,this}onRetry(t){return this.requestOptions.onRetry=t,this}get withCredentials(){return this.createFluentSetter("credentials",{INCLUDE:exports.CredentialsPolicy.INCLUDE,OMIT:exports.CredentialsPolicy.OMIT,SAME_ORIGIN:exports.CredentialsPolicy.SAME_ORIGIN})}withAbortController(t){return this.abortController=t,this}withReferrer(t){return this.requestOptions.referrer=t,this}get withReferrerPolicy(){return this.createFluentSetter("referrerPolicy",{ORIGIN:exports.ReferrerPolicy.ORIGIN,UNSAFE_URL:exports.ReferrerPolicy.UNSAFE_URL,SAME_ORIGIN:exports.ReferrerPolicy.SAME_ORIGIN,NO_REFERRER:exports.ReferrerPolicy.NO_REFERRER,STRICT_ORIGIN:exports.ReferrerPolicy.STRICT_ORIGIN,ORIGIN_WHEN_CROSS_ORIGIN:exports.ReferrerPolicy.ORIGIN_WHEN_CROSS_ORIGIN,NO_REFERRER_WHEN_DOWNGRADE:exports.ReferrerPolicy.NO_REFERRER_WHEN_DOWNGRADE,STRICT_ORIGIN_WHEN_CROSS_ORIGIN:exports.ReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN})}get withRedirect(){return this.createFluentSetter("redirect",{FOLLOW:exports.RedirectMode.FOLLOW,ERROR:exports.RedirectMode.ERROR,MANUAL:exports.RedirectMode.MANUAL})}withKeepAlive(t){return this.requestOptions.keepalive=t,this}get withPriority(){return this.createFluentSetter("priority",{HIGH:exports.RequestPriority.HIGH,LOW:exports.RequestPriority.LOW,AUTO:exports.RequestPriority.AUTO})}withIntegrity(t){return this.requestOptions.integrity=t,this}get withCache(){return this.createFluentSetter("cache",{DEFAULT:"default",NO_STORE:"no-store",RELOAD:"reload",NO_CACHE:"no-cache",FORCE_CACHE:"force-cache",ONLY_IF_CACHED:"only-if-cached"})}withQueryParams(t){return Object.entries(t).forEach((([t,e])=>{null!=e&&(Array.isArray(e)?e.forEach((e=>this.queryParams.append(t,e+""))):this.queryParams.append(t,e+""))})),this}withQueryParam(t,e){return null==e||(Array.isArray(e)?e.forEach((e=>this.queryParams.append(t,e+""))):this.queryParams.append(t,e+"")),this}get withMode(){return this.createFluentSetter("mode",{CORS:exports.RequestMode.CORS,NO_CORS:exports.RequestMode.NO_CORS,SAME_ORIGIN:exports.RequestMode.SAME_ORIGIN,NAVIGATE:exports.RequestMode.NAVIGATE})}withContentType(t){return this.withHeaders({"Content-Type":t})}withAuthorization(t){return this.withHeaders({Authorization:t})}withBasicAuth(t,e){const r=this.encodeBase64(`${t}:${e}`);return this.withAuthorization("Basic "+r)}encodeBase64(t){if("undefined"!=typeof TextEncoder&&"function"==typeof btoa){const e=(new TextEncoder).encode(t);return btoa(String.fromCharCode.call(null,...new Uint8Array(e)))}if("function"==typeof btoa)return btoa(t);if("undefined"!=typeof Buffer)return Buffer.from(t).toString("base64");throw new c("Base64 encoding is not supported",this.url,this.method)}withBearerToken(t){return this.withAuthorization("Bearer "+t)}getHeadersRecord(){return"object"==typeof this.requestOptions.headers&&null!==this.requestOptions.headers?this.requestOptions.headers:{}}hasHeader(t){const e=this.getHeadersRecord();return Object.keys(e).some((e=>e.toLowerCase()===t.toLowerCase()))}withCookies(t){if(0===Object.entries(t||{}).length)return this;const e=this.getHeadersRecord(),r=[],s=[];Object.keys(e).forEach((t=>{"cookie"===t.toLowerCase()&&(e[t]&&r.push(e[t]),s.push(t))}));const o=f.formatRequestCookies(t),i=s.length>0?s[0]:"Cookie",n=[...r,o].filter(Boolean).join("; "),h={...e};return s.forEach((t=>{delete h[t]})),this.requestOptions.headers={...h,[i]:n},this}withCookie(t,e){return this.withCookies({[t]:e})}withCsrfToken(t,e="X-CSRF-Token"){return this.withHeaders({[e]:t})}withoutCsrfProtection(){return this.autoApplyCsrfProtection=!1,this}withAntiCsrfHeaders(){return this.withHeaders({"X-Requested-With":"XMLHttpRequest"})}withRequestInterceptor(t){return this.requestInterceptors.push(t),this}withResponseInterceptor(t){return this.responseInterceptors.push(t),this}withErrorInterceptor(t){return this.errorInterceptors.push(t),this}async getResponse(){const t=this.formatUrlWithQueryParams(this.url);this.applyCsrfProtection();const e={...this.requestOptions,method:this.method};return this.requestOptions.retries?this.executeWithRetries(t,e):this.executeRequest(t,e)}async getJson(){return(await this.getResponse()).getJson()}async getText(){return(await this.getResponse()).getText()}async getBlob(){return(await this.getResponse()).getBlob()}async getBody(){return(await this.getResponse()).getBody()}async getData(t){return(await this.getResponse()).getData(t)}applyCsrfProtection(){if(!this.autoApplyCsrfProtection)return;const t=d.getInstance();t.isAntiCsrfEnabled()&&this.withHeaders({"X-Requested-With":"XMLHttpRequest"});const e=t.getCsrfToken();if(e){const r=t.getCsrfHeaderName();this.hasHeader("X-CSRF-Token")||this.hasHeader(r)||this.withHeaders({[r]:e})}if(t.isAutoXsrfEnabled()&&"undefined"!=typeof document){const e=p.getTokenFromCookie(t.getXsrfCookieName());if(e&&p.isValidToken(e)){const r=t.getXsrfHeaderName();this.hasHeader("X-XSRF-TOKEN")||this.hasHeader(r)||this.withHeaders({[r]:e})}}}formatUrlWithQueryParams(t){const e=""+this.queryParams;if(!e)return t;try{const e=new URL(t);return this.queryParams.forEach(((t,r)=>{e.searchParams.append(r,t)})),""+e}catch(r){const s=t.includes("?");return`${t}${s?"&":"?"}${e}`}}async executeWithRetries(t,e){const r=this.requestOptions.retries||0,s="string"==typeof e.method?e.method:"GET";for(let o=0;r>=o;o++)try{return await this.executeRequest(t,e)}catch(e){const i=e instanceof c?e:c.networkError(t,s,e instanceof Error?e:Error(e+""));if(o>=r)throw i;this.requestOptions.onRetry&&await this.requestOptions.onRetry({attempt:o+1,error:i})}throw new c("Max retries reached",t,s)}async runRequestInterceptors(t){const e=[...d.getInstance().getRequestInterceptors(),...this.requestInterceptors];let r=t;for(let t=0;e.length>t;t++)try{const s=await e[t](r);if(s instanceof Response)return s;r=s}catch(t){throw new c("Request interceptor failed: "+(t instanceof Error?t.message:t+""),r.url,r.method)}return r}async runResponseInterceptors(t){const e=d.getInstance().getResponseInterceptors(),r=[...this.responseInterceptors,...e.reverse()];let s=t;for(let t=0;r.length>t;t++)try{s=await r[t](s)}catch(t){throw new c("Response interceptor failed: "+(t instanceof Error?t.message:t+""),s.url||"",s.method||"")}return s}async runErrorInterceptors(t){const e=d.getInstance().getErrorInterceptors(),r=[...this.errorInterceptors,...e.reverse()];let s=t;for(let e=0;r.length>e;e++)try{if(s instanceof u)return s;s=await r[e](s)}catch(r){if(r instanceof c)s=r;else{const o=r instanceof Error?r.message:r+"";s=s instanceof c?new c(`Error interceptor ${e+1} failed: ${o}`,s.url,s.method,{status:s.status,response:s.response}):s instanceof u&&s.url&&s.method?new c(`Error interceptor ${e+1} failed: ${o}`,s.url,s.method,{status:s.status}):c.networkError(t.url,t.method,r instanceof Error?r:Error(r+""))}}return s}createAbortSignal(t,e){let r,s,o=!1;if(!t)return{signal:e?.signal,cleanup:()=>{},wasTimeout:()=>!1};const i="function"==typeof AbortSignal.any,n="function"==typeof AbortSignal.timeout,h=(()=>{if(n){const e=AbortSignal.timeout(t);return e.addEventListener("abort",(()=>o=!0),{once:!0}),e}return s=new AbortController,r=setTimeout((()=>{o=!0,s.abort()}),t),s.signal})();return{signal:e&&i?AbortSignal.any([e.signal,h]):e?this.combineSignalsManually(e.signal,h):h,cleanup:()=>{void 0!==r&&clearTimeout(r)},wasTimeout:()=>o}}combineSignalsManually(t,e){if(t.aborted)return t;if(e.aborted)return e;const r=new AbortController,s=()=>r.abort();return t.addEventListener("abort",s,{once:!0}),e.addEventListener("abort",s,{once:!0}),r.signal}createRequestConfig(t,e){return{url:t,method:"string"==typeof e.method?e.method:"GET",headers:this.getHeadersRecord(),body:e.body,signal:e.signal||void 0,credentials:e.credentials,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,keepalive:e.keepalive,priority:e.priority,integrity:e.integrity,cache:e.cache}}applyRequestConfig(t,e){e.headers=t.headers,void 0!==t.body&&(e.body=t.body),void 0!==t.integrity&&(e.integrity=t.integrity),void 0!==t.cache&&(e.cache=t.cache)}async executeRequest(t,e){const r="string"==typeof e.method?e.method:"GET",s=this.createAbortSignal(this.requestOptions.timeout,this.abortController);try{const o=this.createRequestConfig(t,e),i=await this.runRequestInterceptors(o);if(i instanceof Response){const t=this.getGraphQLOptions(),e=new u(i,this.url,this.method,t);return await this.runResponseInterceptors(e)}let n;this.validateUrl(t=i.url),this.applyRequestConfig(i,e),s.signal&&(e.signal=s.signal);try{n=await fetch(t,e)}catch(e){const o=e instanceof Error?e:Error(e+""),i=o.name,n=o.message.toLowerCase(),h=s.wasTimeout();if(e instanceof DOMException&&"AbortError"===e.name){if(h&&this.requestOptions.timeout)throw c.timeout(t,r,this.requestOptions.timeout);throw c.abortError(t,r)}if((h||"TimeoutError"===i||n.includes("timeout")||n.includes("aborted due to timeout"))&&this.requestOptions.timeout)throw c.timeout(t,r,this.requestOptions.timeout);throw c.networkError(t,r,o)}if(!n.ok)throw c.fromResponse(n,t,r);const h=this.getGraphQLOptions(),a=new u(n,t,r,h);return await this.runResponseInterceptors(a)}catch(e){let s;s=e instanceof c?e:c.networkError(t,r,e instanceof Error?e:Error(e+""));const o=await this.runErrorInterceptors(s);if(o instanceof u)return o;throw o}finally{s.cleanup()}}}class w extends l{body;bodyType;graphQLOptions=void 0;constructor(t){super(t)}withBody(t){if(this.body=t,"string"==typeof t)this.bodyType=n.STRING,this.setContentTypeIfNeeded("text/plain");else if(null===t||"object"!=typeof t||t instanceof FormData||t instanceof Blob||t instanceof File||t instanceof ArrayBuffer||ArrayBuffer.isView(t)||t instanceof URLSearchParams||t instanceof ReadableStream)this.bodyType=n.BINARY;else{this.bodyType=n.JSON,this.setContentTypeIfNeeded("application/json");try{JSON.stringify(t)}catch(t){throw new c("JSON stringify failed: "+(t instanceof Error?t.message:t+""),this.url,this.method)}}return this}withGraphQL(t,e,r){if("string"!=typeof t||0===t.length)throw new c("Invalid GraphQL query",this.url,this.method);const s={query:t};if(void 0!==e){if("object"!=typeof e||null===e||Array.isArray(e))throw new c("Invalid GraphQL variables",this.url,this.method);s.variables=e}if(void 0!==r){if("object"!=typeof r||null===r||Array.isArray(r))throw new c("Invalid GraphQL options",this.url,this.method);this.graphQLOptions={throwOnError:"boolean"==typeof r.throwOnError?r.throwOnError:void 0}}try{JSON.stringify(s)}catch(t){throw new c("JSON stringify failed: "+(t instanceof Error?t.message:t+""),this.url,this.method)}return this.body=s,this.bodyType=n.JSON,this.setContentTypeIfNeeded("application/json"),this}hasContentType(){const t=this.requestOptions.headers;return"object"==typeof t&&null!==t&&Object.keys(t).some((t=>"content-type"===t.toLowerCase()))}setContentTypeIfNeeded(t){this.hasContentType()||this.withContentType(t)}getGraphQLOptions(){return this.graphQLOptions}async getResponse(){return void 0!==this.body&&(this.requestOptions.body&&delete this.requestOptions.body,this.requestOptions.body=this.bodyType===n.JSON?JSON.stringify(this.body):this.body),super.getResponse()}}class y extends l{method=exports.HttpMethod.GET;constructor(t){super(t)}}class E extends l{method=exports.HttpMethod.HEAD;constructor(t){super(t)}}class R extends l{method=exports.HttpMethod.OPTIONS;constructor(t){super(t)}}class m extends l{method=exports.HttpMethod.DELETE;constructor(t){super(t)}}class g extends w{method=exports.HttpMethod.POST;constructor(t){super(t)}}class x extends w{method=exports.HttpMethod.PUT;constructor(t){super(t)}}class O extends w{method=exports.HttpMethod.PATCH;constructor(t){super(t)}}const I={get:function(t){return new y(t)},post:function(t){return new g(t)},put:function(t){return new x(t)},del:function(t){return new m(t)},patch:function(t){return new O(t)},head:function(t){return new E(t)},options:function(t){return new R(t)},config:d.getInstance()};exports.CookieUtils=f,exports.DeleteRequest=m,exports.GetRequest=y,exports.HeadRequest=E,exports.OptionsRequest=R,exports.PatchRequest=O,exports.PostRequest=g,exports.PutRequest=x,exports.RequestError=c,exports.ResponseWrapper=u,exports.default=I;//# sourceMappingURL=index.min.cjs.map
|
|
1
|
+
"use strict";var t,e,r,s,i,o,n,h,a;exports.HttpMethod=void 0,(t=exports.HttpMethod||(exports.HttpMethod={})).GET="GET",t.PUT="PUT",t.POST="POST",t.HEAD="HEAD",t.PATCH="PATCH",t.DELETE="DELETE",t.OPTIONS="OPTIONS",exports.RequestPriority=void 0,(e=exports.RequestPriority||(exports.RequestPriority={})).LOW="low",e.HIGH="high",e.AUTO="auto",exports.CredentialsPolicy=void 0,(r=exports.CredentialsPolicy||(exports.CredentialsPolicy={})).OMIT="omit",r.INCLUDE="include",r.SAME_ORIGIN="same-origin",exports.RequestMode=void 0,(s=exports.RequestMode||(exports.RequestMode={})).CORS="cors",s.NO_CORS="no-cors",s.SAME_ORIGIN="same-origin",s.NAVIGATE="navigate",exports.RedirectMode=void 0,(i=exports.RedirectMode||(exports.RedirectMode={})).ERROR="error",i.FOLLOW="follow",i.MANUAL="manual",exports.SameSitePolicy=void 0,(o=exports.SameSitePolicy||(exports.SameSitePolicy={})).LAX="Lax",o.NONE="None",o.STRICT="Strict",function(t){t.JSON="json",t.STRING="string",t.BINARY="binary"}(n||(n={})),exports.ReferrerPolicy=void 0,(h=exports.ReferrerPolicy||(exports.ReferrerPolicy={})).ORIGIN="origin",h.UNSAFE_URL="unsafe-url",h.SAME_ORIGIN="same-origin",h.NO_REFERRER="no-referrer",h.STRICT_ORIGIN="strict-origin",h.ORIGIN_WHEN_CROSS_ORIGIN="origin-when-cross-origin",h.NO_REFERRER_WHEN_DOWNGRADE="no-referrer-when-downgrade",h.STRICT_ORIGIN_WHEN_CROSS_ORIGIN="strict-origin-when-cross-origin",function(t){t.RELOAD="reload",t.DEFAULT="default",t.NO_CACHE="no-cache",t.NO_STORE="no-store",t.FORCE_CACHE="force-cache",t.ONLY_IF_CACHED="only-if-cached"}(a||(a={}));class c extends Error{status;response;url;method;isTimeout;isAborted;constructor(t,e,r,s={}){super(t),this.name="RequestError",this.url=e,this.method=r,this.status=s.status,this.response=s.response,this.isTimeout=s.isTimeout,this.isAborted=s.isAborted,Error.captureStackTrace&&Error.captureStackTrace(this,c),Object.setPrototypeOf(this,c.prototype)}static timeout(t,e,r){return new c(`Timeout: ${r}ms`,t,e,{isTimeout:!0})}static fromResponse(t,e,r){return new c("HTTP "+t.status,e,r,{status:t.status,response:t})}static networkError(t,e,r){let s=r.message;const i=r.code,o=r.name,n=r.stack||"",h=s.toLowerCase(),a="TimeoutError"===o||h.includes("timeout")||h.includes("aborted due to timeout")||"ETIMEDOUT"===i||n.includes("TimeoutError")||n.includes("timeout");if("fetch failed"===s||"Failed to fetch"===s){const e="ENOTFOUND"===i||"EAI_AGAIN"===i||"EAI_NODATA"===i||n.includes("getaddrinfo")||n.includes("ENOTFOUND")||n.includes("EAI_AGAIN"),r=!a&&("ECONNREFUSED"===i||"ECONNRESET"===i||n.includes("ECONNREFUSED")||n.includes("connect"));s=a?"Network error: Request timeout for "+t:e?"Network error: Unable to resolve hostname for "+t:r?"Network error: Connection refused for "+t:"Network error: Failed to fetch "+t}const u=new c(s,t,e,{...a?{isTimeout:!0}:{}});return r.stack&&(u.stack=`${u.stack||""}\n\nCaused by: ${r.stack}`),u}static abortError(t,e){return new c("Aborted",t,e,{isAborted:!0})}}class u{response;url;method;graphQLOptions;constructor(t,e,r,s){this.response=t,this.url=e,this.method=r,s&&(this.graphQLOptions={throwOnError:s.throwOnError})}get status(){return this.response.status}get statusText(){return this.response.statusText}get headers(){return this.response.headers}get ok(){return this.response.ok}get raw(){return this.response}checkGraphQLErrors(t){if(!this.graphQLOptions?.throwOnError||"object"!=typeof t||null===t)return;const e=t;if(!Array.isArray(e.errors)||0===e.errors.length)return;const r=e.errors.map((t=>"string"==typeof t?t:t&&"object"==typeof t&&"message"in t?(t.message||"Unknown error")+"":t+"")).join(", ");throw new c("GraphQL request failed with errors: "+r,this.url||"",this.method||"",{status:this.response.status,response:this.response})}async getJson(){if(this.response.bodyUsed)throw new c("Body already consumed",this.url||"",this.method||"",{status:this.response.status,response:this.response});try{const t=await this.response.json();return this.checkGraphQLErrors(t),t}catch(t){if(t instanceof c)throw t;throw new c("Invalid JSON: "+(t instanceof Error?t.message:t+""),this.url||"",this.method||"",{status:this.response.status,response:this.response})}}async getText(){if(this.response.bodyUsed)throw new c("Body already consumed",this.url||"",this.method||"",{status:this.response.status,response:this.response});try{return await this.response.text()}catch(t){throw new c("Read failed: "+(t instanceof Error?t.message:t+""),this.url||"",this.method||"",{status:this.response.status,response:this.response})}}async getBlob(){if(this.response.bodyUsed)throw new c("Body already consumed",this.url||"",this.method||"",{status:this.response.status,response:this.response});try{return await this.response.blob()}catch(t){throw new c("Read failed: "+(t instanceof Error?t.message:t+""),this.url||"",this.method||"",{status:this.response.status,response:this.response})}}async getArrayBuffer(){if(this.response.bodyUsed)throw new c("Body already consumed",this.url||"",this.method||"",{status:this.response.status,response:this.response});try{return await this.response.arrayBuffer()}catch(t){throw new c("Read failed: "+(t instanceof Error?t.message:t+""),this.url||"",this.method||"",{status:this.response.status,response:this.response})}}getBody(){if(this.response.bodyUsed)throw new c("Body already consumed",this.url||"",this.method||"",{status:this.response.status,response:this.response});return this.response.body}async getData(t){try{const e=await this.getJson();return t?t(e):e}catch(e){if(e instanceof c)throw e;if(t)throw new c("Data selector failed: "+(e instanceof Error?e.message:e+""),this.url||"",this.method||"",{status:this.response.status,response:this.response});throw c.networkError(this.url||"",this.method||"",e instanceof Error?e:Error(e+""))}}}class f{static formatRequestCookies(t){const e=[];return Object.entries(t).forEach((([t,r])=>{let s;s="string"==typeof r?r:r.value,e.push(`${encodeURIComponent(t)}=${encodeURIComponent(s)}`)})),e.join("; ")}}class p{static getTokenFromMeta(t="csrf-token"){if("undefined"==typeof document)return null;const e=document.querySelector(`meta[name="${t}"]`);return e?.getAttribute("content")||null}static getTokenFromCookie(t="csrf-token"){if("undefined"==typeof document)return null;const e=document.cookie.split(";");for(const r of e){const[e,s]=r.trim().split("=");if(e===t)return decodeURIComponent(s)}return null}static isValidToken(t){return!("string"!=typeof t||8>t.length||t.length>10&&(!/^[A-Za-z0-9\-_=+/.]+$/.test(t)||2>[/[A-Z]/.test(t),/[a-z]/.test(t),/[0-9]/.test(t),/[-_=+/.]/.test(t)].filter(Boolean).length))}}class d{static instance;csrfHeaderName="X-CSRF-Token";xsrfCookieName="XSRF-TOKEN";xsrfHeaderName="X-XSRF-TOKEN";csrfToken=null;enableAutoXsrf=!0;enableAntiCsrf=!0;requestInterceptors=[];responseInterceptors=[];errorInterceptors=[];nextInterceptorId=1;constructor(){}static getInstance(){return d.instance||(d.instance=new d),d.instance}setCsrfToken(t){return this.csrfToken=t,this}getCsrfToken(){return this.csrfToken}setCsrfHeaderName(t){return this.csrfHeaderName=t,this}getCsrfHeaderName(){return this.csrfHeaderName}setXsrfCookieName(t){return this.xsrfCookieName=t,this}getXsrfCookieName(){return this.xsrfCookieName}setXsrfHeaderName(t){return this.xsrfHeaderName=t,this}getXsrfHeaderName(){return this.xsrfHeaderName}setEnableAutoXsrf(t){return this.enableAutoXsrf=t,this}isAutoXsrfEnabled(){return this.enableAutoXsrf}setEnableAntiCsrf(t){return this.enableAntiCsrf=t,this}isAntiCsrfEnabled(){return this.enableAntiCsrf}addRequestInterceptor(t){const e=this.nextInterceptorId++;return this.requestInterceptors.push({id:e,interceptor:t}),e}addResponseInterceptor(t){const e=this.nextInterceptorId++;return this.responseInterceptors.push({id:e,interceptor:t}),e}addErrorInterceptor(t){const e=this.nextInterceptorId++;return this.errorInterceptors.push({id:e,interceptor:t}),e}removeRequestInterceptor(t){this.requestInterceptors=this.requestInterceptors.filter((e=>e.id!==t))}removeResponseInterceptor(t){this.responseInterceptors=this.responseInterceptors.filter((e=>e.id!==t))}removeErrorInterceptor(t){this.errorInterceptors=this.errorInterceptors.filter((e=>e.id!==t))}clearInterceptors(){this.requestInterceptors=[],this.responseInterceptors=[],this.errorInterceptors=[]}getRequestInterceptors(){return this.requestInterceptors.map((t=>t.interceptor))}getResponseInterceptors(){return this.responseInterceptors.map((t=>t.interceptor))}getErrorInterceptors(){return this.errorInterceptors.map((t=>t.interceptor))}reset(){return this.csrfToken=null,this.csrfHeaderName="X-CSRF-Token",this.enableAntiCsrf=!0,this.xsrfCookieName="XSRF-TOKEN",this.xsrfHeaderName="X-XSRF-TOKEN",this.enableAutoXsrf=!0,this.clearInterceptors(),this}}class l{url;requestOptions={headers:{}};abortController;queryParams=new URLSearchParams;autoApplyCsrfProtection=!0;requestInterceptors=[];responseInterceptors=[];errorInterceptors=[];constructor(t){this.url=t}getGraphQLOptions(){}createFluentSetter(t,e){const r={};return Object.entries(e).forEach((([e,s])=>{r[e]=()=>(this.requestOptions[t]=s,this)})),Object.assign((e=>(this.requestOptions[t]=e,this)),r)}validateUrl(t){if(!t?.trim())throw new c("URL cannot be empty",t,this.method);if(t.includes("\0")||t.includes("\r")||t.includes("\n"))throw new c("Invalid URL (control chars)",t,this.method);const e=t.trim();if(e.startsWith("http://")||e.startsWith("https://"))try{new URL(e)}catch{throw new c("Invalid URL: "+e,e,this.method)}}withHeaders(t){const e={};return Object.entries(t).forEach((([t,r])=>{null!=r&&(e[t]=r)})),this.requestOptions.headers={...this.getHeadersRecord(),...e},this}withHeader(t,e){return null!=e?this.withHeaders({[t]:e}):this}withTimeout(t){if(!Number.isFinite(t)||0>=t)throw new c("Timeout must be a positive number",this.url,this.method);return this.requestOptions.timeout=t,this}withRetries(t){if("number"==typeof t){if(!Number.isInteger(t)||0>t)throw new c("Invalid retries: "+t,this.url,this.method);this.requestOptions.retries=t}else{if(!Number.isInteger(t.attempts)||0>t.attempts)throw new c("Invalid attempts: "+t.attempts,this.url,this.method);if(void 0!==t.delay)if("number"==typeof t.delay){if(!Number.isFinite(t.delay)||0>t.delay)throw new c("Invalid delay: "+t.delay,this.url,this.method)}else if("function"!=typeof t.delay)throw new c("Invalid delay: "+typeof t.delay,this.url,this.method);this.requestOptions.retries=t}return this}onRetry(t){return this.requestOptions.onRetry=t,this}get withCredentials(){return this.createFluentSetter("credentials",{INCLUDE:exports.CredentialsPolicy.INCLUDE,OMIT:exports.CredentialsPolicy.OMIT,SAME_ORIGIN:exports.CredentialsPolicy.SAME_ORIGIN})}withAbortController(t){return this.abortController=t,this}withReferrer(t){return this.requestOptions.referrer=t,this}get withReferrerPolicy(){return this.createFluentSetter("referrerPolicy",{ORIGIN:exports.ReferrerPolicy.ORIGIN,UNSAFE_URL:exports.ReferrerPolicy.UNSAFE_URL,SAME_ORIGIN:exports.ReferrerPolicy.SAME_ORIGIN,NO_REFERRER:exports.ReferrerPolicy.NO_REFERRER,STRICT_ORIGIN:exports.ReferrerPolicy.STRICT_ORIGIN,ORIGIN_WHEN_CROSS_ORIGIN:exports.ReferrerPolicy.ORIGIN_WHEN_CROSS_ORIGIN,NO_REFERRER_WHEN_DOWNGRADE:exports.ReferrerPolicy.NO_REFERRER_WHEN_DOWNGRADE,STRICT_ORIGIN_WHEN_CROSS_ORIGIN:exports.ReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN})}get withRedirect(){return this.createFluentSetter("redirect",{FOLLOW:exports.RedirectMode.FOLLOW,ERROR:exports.RedirectMode.ERROR,MANUAL:exports.RedirectMode.MANUAL})}withKeepAlive(t){return this.requestOptions.keepalive=t,this}get withPriority(){return this.createFluentSetter("priority",{HIGH:exports.RequestPriority.HIGH,LOW:exports.RequestPriority.LOW,AUTO:exports.RequestPriority.AUTO})}withIntegrity(t){return this.requestOptions.integrity=t,this}get withCache(){return this.createFluentSetter("cache",{DEFAULT:"default",NO_STORE:"no-store",RELOAD:"reload",NO_CACHE:"no-cache",FORCE_CACHE:"force-cache",ONLY_IF_CACHED:"only-if-cached"})}withQueryParams(t){return Object.entries(t).forEach((([t,e])=>{null!=e&&(Array.isArray(e)?e.forEach((e=>this.queryParams.append(t,e+""))):this.queryParams.append(t,e+""))})),this}withQueryParam(t,e){return null==e||(Array.isArray(e)?e.forEach((e=>this.queryParams.append(t,e+""))):this.queryParams.append(t,e+"")),this}get withMode(){return this.createFluentSetter("mode",{CORS:exports.RequestMode.CORS,NO_CORS:exports.RequestMode.NO_CORS,SAME_ORIGIN:exports.RequestMode.SAME_ORIGIN,NAVIGATE:exports.RequestMode.NAVIGATE})}withContentType(t){return this.withHeaders({"Content-Type":t})}withAuthorization(t){return this.withHeaders({Authorization:t})}withBasicAuth(t,e){const r=this.encodeBase64(`${t}:${e}`);return this.withAuthorization("Basic "+r)}encodeBase64(t){if("undefined"!=typeof TextEncoder&&"function"==typeof btoa){const e=(new TextEncoder).encode(t);return btoa(String.fromCharCode.call(null,...new Uint8Array(e)))}if("function"==typeof btoa)return btoa(t);if("undefined"!=typeof Buffer)return Buffer.from(t).toString("base64");throw new c("Base64 encoding is not supported",this.url,this.method)}withBearerToken(t){return this.withAuthorization("Bearer "+t)}getHeadersRecord(){return"object"==typeof this.requestOptions.headers&&null!==this.requestOptions.headers?this.requestOptions.headers:{}}hasHeader(t){const e=this.getHeadersRecord();return Object.keys(e).some((e=>e.toLowerCase()===t.toLowerCase()))}withCookies(t){if(0===Object.entries(t||{}).length)return this;const e=this.getHeadersRecord(),r=[],s=[];Object.keys(e).forEach((t=>{"cookie"===t.toLowerCase()&&(e[t]&&r.push(e[t]),s.push(t))}));const i=f.formatRequestCookies(t),o=s.length>0?s[0]:"Cookie",n=[...r,i].filter(Boolean).join("; "),h={...e};return s.forEach((t=>{delete h[t]})),this.requestOptions.headers={...h,[o]:n},this}withCookie(t,e){return this.withCookies({[t]:e})}withCsrfToken(t,e="X-CSRF-Token"){return this.withHeaders({[e]:t})}withoutCsrfProtection(){return this.autoApplyCsrfProtection=!1,this}withAntiCsrfHeaders(){return this.withHeaders({"X-Requested-With":"XMLHttpRequest"})}withRequestInterceptor(t){return this.requestInterceptors.push(t),this}withResponseInterceptor(t){return this.responseInterceptors.push(t),this}withErrorInterceptor(t){return this.errorInterceptors.push(t),this}async getResponse(){const t=this.formatUrlWithQueryParams(this.url);this.applyCsrfProtection();const e={...this.requestOptions,method:this.method};return this.requestOptions.retries?this.executeWithRetries(t,e):this.executeRequest(t,e)}async getJson(){return(await this.getResponse()).getJson()}async getText(){return(await this.getResponse()).getText()}async getBlob(){return(await this.getResponse()).getBlob()}async getBody(){return(await this.getResponse()).getBody()}async getData(t){return(await this.getResponse()).getData(t)}applyCsrfProtection(){if(!this.autoApplyCsrfProtection)return;const t=d.getInstance();t.isAntiCsrfEnabled()&&this.withHeaders({"X-Requested-With":"XMLHttpRequest"});const e=t.getCsrfToken();if(e){const r=t.getCsrfHeaderName();this.hasHeader("X-CSRF-Token")||this.hasHeader(r)||this.withHeaders({[r]:e})}if(t.isAutoXsrfEnabled()&&"undefined"!=typeof document){const e=p.getTokenFromCookie(t.getXsrfCookieName());if(e&&p.isValidToken(e)){const r=t.getXsrfHeaderName();this.hasHeader("X-XSRF-TOKEN")||this.hasHeader(r)||this.withHeaders({[r]:e})}}}formatUrlWithQueryParams(t){const e=""+this.queryParams;if(!e)return t;try{const e=new URL(t);return this.queryParams.forEach(((t,r)=>{e.searchParams.append(r,t)})),""+e}catch(r){const s=t.includes("?");return`${t}${s?"&":"?"}${e}`}}async executeWithRetries(t,e){const r=this.requestOptions.retries,s="number"==typeof r?r:r?.attempts||0,i="string"==typeof e.method?e.method:"GET";for(let o=0;s>=o;o++)try{return await this.executeRequest(t,e)}catch(e){const n=e instanceof c?e:c.networkError(t,i,e instanceof Error?e:Error(e+""));if(o>=s)throw n;if(this.requestOptions.onRetry&&await this.requestOptions.onRetry({attempt:o+1,error:n}),"object"==typeof r&&void 0!==r.delay){const e="function"==typeof r.delay?r.delay({attempt:o+1,error:n}):r.delay;if("number"!=typeof e||!Number.isFinite(e)||0>e)throw new c("Invalid retry delay: "+e,t,i);e>0&&await new Promise((t=>setTimeout(t,e)))}}throw new c("Max retries reached",t,i)}async runRequestInterceptors(t){const e=[...d.getInstance().getRequestInterceptors(),...this.requestInterceptors];let r=t;for(let t=0;e.length>t;t++)try{const s=await e[t](r);if(s instanceof Response)return s;r=s}catch(t){throw new c("Request interceptor failed: "+(t instanceof Error?t.message:t+""),r.url,r.method)}return r}async runResponseInterceptors(t){const e=d.getInstance().getResponseInterceptors(),r=[...this.responseInterceptors,...e.reverse()];let s=t;for(let t=0;r.length>t;t++)try{s=await r[t](s)}catch(t){throw new c("Response interceptor failed: "+(t instanceof Error?t.message:t+""),s.url||"",s.method||"")}return s}async runErrorInterceptors(t){const e=d.getInstance().getErrorInterceptors(),r=[...this.errorInterceptors,...e.reverse()];let s=t;for(let e=0;r.length>e;e++)try{if(s instanceof u)return s;s=await r[e](s)}catch(r){if(r instanceof c)s=r;else{const i=r instanceof Error?r.message:r+"";s=s instanceof c?new c(`Error interceptor ${e+1} failed: ${i}`,s.url,s.method,{status:s.status,response:s.response}):s instanceof u&&s.url&&s.method?new c(`Error interceptor ${e+1} failed: ${i}`,s.url,s.method,{status:s.status}):c.networkError(t.url,t.method,r instanceof Error?r:Error(r+""))}}return s}createAbortSignal(t,e){let r,s,i=!1;if(!t)return{signal:e?.signal,cleanup:()=>{},wasTimeout:()=>!1};const o="function"==typeof AbortSignal.any,n="function"==typeof AbortSignal.timeout,h=(()=>{if(n){const e=AbortSignal.timeout(t);return e.addEventListener("abort",(()=>i=!0),{once:!0}),e}return s=new AbortController,r=setTimeout((()=>{i=!0,s.abort()}),t),s.signal})();return{signal:e&&o?AbortSignal.any([e.signal,h]):e?this.combineSignalsManually(e.signal,h):h,cleanup:()=>{void 0!==r&&clearTimeout(r)},wasTimeout:()=>i}}combineSignalsManually(t,e){if(t.aborted)return t;if(e.aborted)return e;const r=new AbortController,s=()=>r.abort();return t.addEventListener("abort",s,{once:!0}),e.addEventListener("abort",s,{once:!0}),r.signal}createRequestConfig(t,e){return{url:t,method:"string"==typeof e.method?e.method:"GET",headers:this.getHeadersRecord(),body:e.body,signal:e.signal||void 0,credentials:e.credentials,mode:e.mode,redirect:e.redirect,referrer:e.referrer,referrerPolicy:e.referrerPolicy,keepalive:e.keepalive,priority:e.priority,integrity:e.integrity,cache:e.cache}}applyRequestConfig(t,e){e.headers=t.headers,void 0!==t.body&&(e.body=t.body),void 0!==t.integrity&&(e.integrity=t.integrity),void 0!==t.cache&&(e.cache=t.cache)}async executeRequest(t,e){const r="string"==typeof e.method?e.method:"GET",s=this.createAbortSignal(this.requestOptions.timeout,this.abortController);try{const i=this.createRequestConfig(t,e),o=await this.runRequestInterceptors(i);if(o instanceof Response){const t=this.getGraphQLOptions(),e=new u(o,this.url,this.method,t);return await this.runResponseInterceptors(e)}let n;this.validateUrl(t=o.url),this.applyRequestConfig(o,e),s.signal&&(e.signal=s.signal);try{n=await fetch(t,e)}catch(e){const i=e instanceof Error?e:Error(e+""),o=i.name,n=i.message.toLowerCase(),h=s.wasTimeout();if(e instanceof DOMException&&"AbortError"===e.name){if(h&&this.requestOptions.timeout)throw c.timeout(t,r,this.requestOptions.timeout);throw c.abortError(t,r)}if((h||"TimeoutError"===o||n.includes("timeout")||n.includes("aborted due to timeout"))&&this.requestOptions.timeout)throw c.timeout(t,r,this.requestOptions.timeout);throw c.networkError(t,r,i)}if(!n.ok)throw c.fromResponse(n,t,r);const h=this.getGraphQLOptions(),a=new u(n,t,r,h);return await this.runResponseInterceptors(a)}catch(e){let s;s=e instanceof c?e:c.networkError(t,r,e instanceof Error?e:Error(e+""));const i=await this.runErrorInterceptors(s);if(i instanceof u)return i;throw i}finally{s.cleanup()}}}class w extends l{body;bodyType;graphQLOptions=void 0;constructor(t){super(t)}withBody(t){if(this.body=t,"string"==typeof t)this.bodyType=n.STRING,this.setContentTypeIfNeeded("text/plain");else if(null===t||"object"!=typeof t||t instanceof FormData||t instanceof Blob||t instanceof File||t instanceof ArrayBuffer||ArrayBuffer.isView(t)||t instanceof URLSearchParams||t instanceof ReadableStream)this.bodyType=n.BINARY;else{this.bodyType=n.JSON,this.setContentTypeIfNeeded("application/json");try{JSON.stringify(t)}catch(t){throw new c("JSON stringify failed: "+(t instanceof Error?t.message:t+""),this.url,this.method)}}return this}withGraphQL(t,e,r){if("string"!=typeof t||0===t.length)throw new c("Invalid GraphQL query",this.url,this.method);const s={query:t};if(void 0!==e){if("object"!=typeof e||null===e||Array.isArray(e))throw new c("Invalid GraphQL variables",this.url,this.method);s.variables=e}if(void 0!==r){if("object"!=typeof r||null===r||Array.isArray(r))throw new c("Invalid GraphQL options",this.url,this.method);this.graphQLOptions={throwOnError:"boolean"==typeof r.throwOnError?r.throwOnError:void 0}}try{JSON.stringify(s)}catch(t){throw new c("JSON stringify failed: "+(t instanceof Error?t.message:t+""),this.url,this.method)}return this.body=s,this.bodyType=n.JSON,this.setContentTypeIfNeeded("application/json"),this}hasContentType(){const t=this.requestOptions.headers;return"object"==typeof t&&null!==t&&Object.keys(t).some((t=>"content-type"===t.toLowerCase()))}setContentTypeIfNeeded(t){this.hasContentType()||this.withContentType(t)}getGraphQLOptions(){return this.graphQLOptions}async getResponse(){return void 0!==this.body&&(this.requestOptions.body&&delete this.requestOptions.body,this.requestOptions.body=this.bodyType===n.JSON?JSON.stringify(this.body):this.body),super.getResponse()}}class y extends l{method=exports.HttpMethod.GET;constructor(t){super(t)}}class E extends l{method=exports.HttpMethod.HEAD;constructor(t){super(t)}}class m extends l{method=exports.HttpMethod.OPTIONS;constructor(t){super(t)}}class R extends l{method=exports.HttpMethod.DELETE;constructor(t){super(t)}}class x extends w{method=exports.HttpMethod.POST;constructor(t){super(t)}}class g extends w{method=exports.HttpMethod.PUT;constructor(t){super(t)}}class b extends w{method=exports.HttpMethod.PATCH;constructor(t){super(t)}}const I={get:function(t){return new y(t)},post:function(t){return new x(t)},put:function(t){return new g(t)},del:function(t){return new R(t)},patch:function(t){return new b(t)},head:function(t){return new E(t)},options:function(t){return new m(t)},config:d.getInstance()};exports.CookieUtils=f,exports.DeleteRequest=R,exports.GetRequest=y,exports.HeadRequest=E,exports.OptionsRequest=m,exports.PatchRequest=b,exports.PostRequest=x,exports.PutRequest=g,exports.RequestError=c,exports.ResponseWrapper=u,exports.default=I;//# sourceMappingURL=index.min.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.min.cjs","sources":["../../../src/enums.ts","../../../src/RequestError.ts","../../../src/ResponseWrapper.ts","../../../src/utils/CookieUtils.ts","../../../src/utils/CsrfUtils.ts","../../../src/utils/Config.ts","../../../src/BaseRequest.ts","../../../src/BodyRequest.ts","../../../src/requestMethods.ts","../../../src/index.ts","../../../src/requestFactories.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["HttpMethod","RequestPriority","CredentialsPolicy","RequestMode","RedirectMode","SameSitePolicy","BodyType","ReferrerPolicy","CacheMode","RequestError","Error","status","response","url","method","isTimeout","isAborted","constructor","message","options","super","this","name","captureStackTrace","Object","setPrototypeOf","prototype","timeout","timeoutMs","fromResponse","networkError","originalError","errorCode","code","errorName","stack","errorMessageLower","toLowerCase","isTimeoutError","includes","isDnsError","isConnectionError","error","abortError","ResponseWrapper","graphQLOptions","throwOnError","statusText","headers","ok","raw","checkGraphQLErrors","data","responseData","Array","isArray","errors","length","errorMessage","map","x","String","join","getJson","bodyUsed","parsed","json","getText","text","e","getBlob","blob","getArrayBuffer","arrayBuffer","getBody","body","getData","selector","CookieUtils","formatRequestCookies","cookies","cookiePairs","entries","forEach","valueOrOptions","value","push","encodeURIComponent","CsrfUtils","getTokenFromMeta","metaName","document","meta","querySelector","getAttribute","getTokenFromCookie","cookieName","cookie","split","trim","decodeURIComponent","isValidToken","token","test","filter","Boolean","Config","static","csrfHeaderName","xsrfCookieName","xsrfHeaderName","csrfToken","enableAutoXsrf","enableAntiCsrf","requestInterceptors","responseInterceptors","errorInterceptors","nextInterceptorId","getInstance","instance","setCsrfToken","getCsrfToken","setCsrfHeaderName","getCsrfHeaderName","setXsrfCookieName","getXsrfCookieName","setXsrfHeaderName","getXsrfHeaderName","setEnableAutoXsrf","enable","isAutoXsrfEnabled","setEnableAntiCsrf","isAntiCsrfEnabled","addRequestInterceptor","interceptor","id","addResponseInterceptor","addErrorInterceptor","removeRequestInterceptor","item","removeResponseInterceptor","removeErrorInterceptor","clearInterceptors","getRequestInterceptors","getResponseInterceptors","getErrorInterceptors","reset","BaseRequest","requestOptions","abortController","queryParams","URLSearchParams","autoApplyCsrfProtection","getGraphQLOptions","createFluentSetter","optionName","fluent","key","assign","validateUrl","trimmed","startsWith","URL","withHeaders","filteredHeaders","getHeadersRecord","withHeader","withTimeout","Number","isFinite","withRetries","retries","isInteger","onRetry","callback","withCredentials","INCLUDE","OMIT","SAME_ORIGIN","withAbortController","controller","withReferrer","referrer","withReferrerPolicy","ORIGIN","UNSAFE_URL","NO_REFERRER","STRICT_ORIGIN","ORIGIN_WHEN_CROSS_ORIGIN","NO_REFERRER_WHEN_DOWNGRADE","STRICT_ORIGIN_WHEN_CROSS_ORIGIN","withRedirect","FOLLOW","ERROR","MANUAL","withKeepAlive","keepalive","withPriority","HIGH","LOW","AUTO","withIntegrity","integrity","withCache","DEFAULT","NO_STORE","RELOAD","NO_CACHE","FORCE_CACHE","ONLY_IF_CACHED","withQueryParams","params","v","append","withQueryParam","withMode","CORS","NO_CORS","NAVIGATE","withContentType","contentType","withAuthorization","authValue","Authorization","withBasicAuth","username","password","credentials","encodeBase64","str","TextEncoder","btoa","bytes","encode","fromCharCode","apply","Uint8Array","Buffer","from","toString","withBearerToken","hasHeader","headerName","keys","some","withCookies","currentHeaders","cookieValues","cookieHeaderKeys","cookieString","combinedCookieValue","newHeaders","withCookie","withCsrfToken","withoutCsrfProtection","withAntiCsrfHeaders","withRequestInterceptor","withResponseInterceptor","withErrorInterceptor","getResponse","formatUrlWithQueryParams","applyCsrfProtection","fetchOptions","executeWithRetries","executeRequest","config","globalToken","xsrfToken","queryString","urlObj","searchParams","hasExistingParams","maxRetries","attempt","requestError","runRequestInterceptors","configParam","allInterceptors","currentConfig","i","result","Response","runResponseInterceptors","globalInterceptors","reverse","currentResponse","runErrorInterceptors","currentError","interceptorError","createAbortSignal","externalController","timeoutId","timeoutController","signal","cleanup","wasTimeout","hasAbortSignalAny","AbortSignal","any","hasAbortSignalTimeout","timeoutSignal","addEventListener","once","AbortController","setTimeout","abort","createTimeoutSignal","combineSignalsManually","undefined","clearTimeout","signal1","signal2","aborted","createRequestConfig","mode","redirect","referrerPolicy","priority","cache","applyRequestConfig","abortSignal","requestConfig","interceptorResult","wrappedResponse","fetch","errorObj","isOurTimeout","DOMException","BodyRequest","bodyType","withBody","STRING","setContentTypeIfNeeded","FormData","Blob","File","ArrayBuffer","isView","ReadableStream","BINARY","JSON","stringify","withGraphQL","query","variables","graphQLBody","hasContentType","header","GetRequest","GET","HeadRequest","HEAD","OptionsRequest","OPTIONS","DeleteRequest","DELETE","PostRequest","POST","PutRequest","PUT","PatchRequest","PATCH","create","get","post","put","del","patch","head"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.min.cjs","sources":["../../../src/enums.ts","../../../src/RequestError.ts","../../../src/ResponseWrapper.ts","../../../src/utils/CookieUtils.ts","../../../src/utils/CsrfUtils.ts","../../../src/utils/Config.ts","../../../src/BaseRequest.ts","../../../src/BodyRequest.ts","../../../src/requestMethods.ts","../../../src/index.ts","../../../src/requestFactories.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["HttpMethod","RequestPriority","CredentialsPolicy","RequestMode","RedirectMode","SameSitePolicy","BodyType","ReferrerPolicy","CacheMode","RequestError","Error","status","response","url","method","isTimeout","isAborted","constructor","message","options","super","this","name","captureStackTrace","Object","setPrototypeOf","prototype","timeout","timeoutMs","fromResponse","networkError","originalError","errorCode","code","errorName","stack","errorMessageLower","toLowerCase","isTimeoutError","includes","isDnsError","isConnectionError","error","abortError","ResponseWrapper","graphQLOptions","throwOnError","statusText","headers","ok","raw","checkGraphQLErrors","data","responseData","Array","isArray","errors","length","errorMessage","map","x","String","join","getJson","bodyUsed","parsed","json","getText","text","e","getBlob","blob","getArrayBuffer","arrayBuffer","getBody","body","getData","selector","CookieUtils","formatRequestCookies","cookies","cookiePairs","entries","forEach","valueOrOptions","value","push","encodeURIComponent","CsrfUtils","getTokenFromMeta","metaName","document","meta","querySelector","getAttribute","getTokenFromCookie","cookieName","cookie","split","trim","decodeURIComponent","isValidToken","token","test","filter","Boolean","Config","static","csrfHeaderName","xsrfCookieName","xsrfHeaderName","csrfToken","enableAutoXsrf","enableAntiCsrf","requestInterceptors","responseInterceptors","errorInterceptors","nextInterceptorId","getInstance","instance","setCsrfToken","getCsrfToken","setCsrfHeaderName","getCsrfHeaderName","setXsrfCookieName","getXsrfCookieName","setXsrfHeaderName","getXsrfHeaderName","setEnableAutoXsrf","enable","isAutoXsrfEnabled","setEnableAntiCsrf","isAntiCsrfEnabled","addRequestInterceptor","interceptor","id","addResponseInterceptor","addErrorInterceptor","removeRequestInterceptor","item","removeResponseInterceptor","removeErrorInterceptor","clearInterceptors","getRequestInterceptors","getResponseInterceptors","getErrorInterceptors","reset","BaseRequest","requestOptions","abortController","queryParams","URLSearchParams","autoApplyCsrfProtection","getGraphQLOptions","createFluentSetter","optionName","fluent","key","assign","validateUrl","trimmed","startsWith","URL","withHeaders","filteredHeaders","getHeadersRecord","withHeader","withTimeout","Number","isFinite","withRetries","retries","isInteger","attempts","undefined","delay","onRetry","callback","withCredentials","INCLUDE","OMIT","SAME_ORIGIN","withAbortController","controller","withReferrer","referrer","withReferrerPolicy","ORIGIN","UNSAFE_URL","NO_REFERRER","STRICT_ORIGIN","ORIGIN_WHEN_CROSS_ORIGIN","NO_REFERRER_WHEN_DOWNGRADE","STRICT_ORIGIN_WHEN_CROSS_ORIGIN","withRedirect","FOLLOW","ERROR","MANUAL","withKeepAlive","keepalive","withPriority","HIGH","LOW","AUTO","withIntegrity","integrity","withCache","DEFAULT","NO_STORE","RELOAD","NO_CACHE","FORCE_CACHE","ONLY_IF_CACHED","withQueryParams","params","v","append","withQueryParam","withMode","CORS","NO_CORS","NAVIGATE","withContentType","contentType","withAuthorization","authValue","Authorization","withBasicAuth","username","password","credentials","encodeBase64","str","TextEncoder","btoa","bytes","encode","fromCharCode","apply","Uint8Array","Buffer","from","toString","withBearerToken","hasHeader","headerName","keys","some","withCookies","currentHeaders","cookieValues","cookieHeaderKeys","cookieString","combinedCookieValue","newHeaders","withCookie","withCsrfToken","withoutCsrfProtection","withAntiCsrfHeaders","withRequestInterceptor","withResponseInterceptor","withErrorInterceptor","getResponse","formatUrlWithQueryParams","applyCsrfProtection","fetchOptions","executeWithRetries","executeRequest","config","globalToken","xsrfToken","queryString","urlObj","searchParams","hasExistingParams","retriesConfig","maxRetries","attempt","requestError","Promise","resolve","setTimeout","runRequestInterceptors","configParam","allInterceptors","currentConfig","i","result","Response","runResponseInterceptors","globalInterceptors","reverse","currentResponse","runErrorInterceptors","currentError","interceptorError","createAbortSignal","externalController","timeoutId","timeoutController","signal","cleanup","wasTimeout","hasAbortSignalAny","AbortSignal","any","hasAbortSignalTimeout","timeoutSignal","addEventListener","once","AbortController","abort","createTimeoutSignal","combineSignalsManually","clearTimeout","signal1","signal2","aborted","createRequestConfig","mode","redirect","referrerPolicy","priority","cache","applyRequestConfig","abortSignal","requestConfig","interceptorResult","wrappedResponse","fetch","errorObj","isOurTimeout","DOMException","BodyRequest","bodyType","withBody","STRING","setContentTypeIfNeeded","FormData","Blob","File","ArrayBuffer","isView","ReadableStream","BINARY","JSON","stringify","withGraphQL","query","variables","graphQLBody","hasContentType","header","GetRequest","GET","HeadRequest","HEAD","OptionsRequest","OPTIONS","DeleteRequest","DELETE","PostRequest","POST","PutRequest","PUT","PatchRequest","PATCH","create","get","post","put","del","patch","head"],"mappings":"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"}
|
package/dist/library/types.d.ts
CHANGED
|
@@ -6,6 +6,30 @@ export type RetryCallback = (options: {
|
|
|
6
6
|
attempt: number;
|
|
7
7
|
error: RequestError;
|
|
8
8
|
}) => void | Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* Delay function type for retry configuration
|
|
11
|
+
* Receives the current attempt number and error, returns delay in milliseconds
|
|
12
|
+
*/
|
|
13
|
+
export type RetryDelayFunction = (options: {
|
|
14
|
+
attempt: number;
|
|
15
|
+
error: RequestError;
|
|
16
|
+
}) => number;
|
|
17
|
+
/**
|
|
18
|
+
* Configuration object for retry behavior
|
|
19
|
+
*/
|
|
20
|
+
export interface RetryConfig {
|
|
21
|
+
/**
|
|
22
|
+
* Number of retry attempts before failing
|
|
23
|
+
*/
|
|
24
|
+
attempts: number;
|
|
25
|
+
/**
|
|
26
|
+
* Delay between retries in milliseconds, or a function that calculates the delay synchronously
|
|
27
|
+
* - If a number: fixed delay in milliseconds (must be non-negative)
|
|
28
|
+
* - If a function: calculates delay synchronously based on attempt number and error
|
|
29
|
+
* - If not provided: no delay between retries
|
|
30
|
+
*/
|
|
31
|
+
delay?: number | RetryDelayFunction;
|
|
32
|
+
}
|
|
9
33
|
/**
|
|
10
34
|
* Configuration object passed to request interceptors
|
|
11
35
|
* Contains all the information needed to make the request
|
|
@@ -63,7 +87,7 @@ export interface GraphQLOptions {
|
|
|
63
87
|
}
|
|
64
88
|
export interface RequestOptions extends Omit<RequestInit, "signal" | "body" | "method" | "credentials" | "mode" | "redirect" | "priority" | "cache"> {
|
|
65
89
|
timeout?: number;
|
|
66
|
-
retries?: number;
|
|
90
|
+
retries?: number | RetryConfig;
|
|
67
91
|
onRetry?: RetryCallback;
|
|
68
92
|
body?: Body;
|
|
69
93
|
credentials?: CredentialsPolicy | RequestCredentials;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-request",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "A modern, chainable wrapper for fetch with automatic retries, timeouts, comprehensive error handling, and first-class TypeScript support",
|
|
5
5
|
"main": "dist/library/index.cjs",
|
|
6
6
|
"module": "dist/library/index.esm.js",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"type": "git",
|
|
63
63
|
"url": "https://github.com/DanielAmenou/create-request.git"
|
|
64
64
|
},
|
|
65
|
-
"homepage": "https://
|
|
65
|
+
"homepage": "https://create-request.com/",
|
|
66
66
|
"bugs": {
|
|
67
67
|
"url": "https://github.com/DanielAmenou/create-request/issues"
|
|
68
68
|
},
|
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"tslib": "^2.4.0",
|
|
92
92
|
"tsx": "^4.20.6",
|
|
93
93
|
"typescript": "^4.7.3",
|
|
94
|
-
"undici": "^5.28.5"
|
|
94
|
+
"undici": "^5.28.5",
|
|
95
|
+
"c8": "^8.0.1"
|
|
95
96
|
}
|
|
96
97
|
}
|