@fuul/sdk 7.0.0-beta.1 → 7.0.0-beta.2
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/dist/core.d.ts +7 -7
- package/dist/index.mjs +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/release.json.d.ts +1 -1
- package/package.json +1 -1
package/dist/core.d.ts
CHANGED
|
@@ -151,7 +151,7 @@ export declare function getPointsLeaderboard(params: GetPointsLeaderboardParams)
|
|
|
151
151
|
* @returns {LeaderboardResponse<ReferredUsersLeaderboard>} Referred users leaderboard response
|
|
152
152
|
* @example
|
|
153
153
|
* ```typescript
|
|
154
|
-
* const results = await Fuul.getReferredUsersLeaderboard({ page: 1, page_size: 10 })
|
|
154
|
+
* const results = await Fuul.getReferredUsersLeaderboard({ page: 1, page_size: 10 });
|
|
155
155
|
* ```
|
|
156
156
|
*/
|
|
157
157
|
export declare function getReferredUsersLeaderboard(params: GetReferredUsersLeaderboardParams): Promise<LeaderboardResponse<ReferredUsersLeaderboard>>;
|
|
@@ -161,7 +161,7 @@ export declare function getReferredUsersLeaderboard(params: GetReferredUsersLead
|
|
|
161
161
|
* @returns {LeaderboardResponse<VolumeLeaderboard>} Value leaderboard response
|
|
162
162
|
* @example
|
|
163
163
|
* ```typescript
|
|
164
|
-
* const results = await Fuul.getVolumeLeaderboard({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress });
|
|
164
|
+
* const results = await Fuul.getVolumeLeaderboard({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress });
|
|
165
165
|
* ```
|
|
166
166
|
**/
|
|
167
167
|
export declare function getVolumeLeaderboard(params: GetVolumeLeaderboardParams): Promise<LeaderboardResponse<VolumeLeaderboard>>;
|
|
@@ -171,7 +171,7 @@ export declare function getVolumeLeaderboard(params: GetVolumeLeaderboardParams)
|
|
|
171
171
|
* @returns {UserPayoutsByConversionResponse} User payouts by conversion
|
|
172
172
|
* @example
|
|
173
173
|
* ```typescript
|
|
174
|
-
* const results = await Fuul.getUserPayoutsByConversion({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress }
|
|
174
|
+
* const results = await Fuul.getUserPayoutsByConversion({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress });
|
|
175
175
|
* ```
|
|
176
176
|
**/
|
|
177
177
|
export declare function getUserPayoutsByConversion(params: GetUserPayoutsByConversionParams): Promise<UserPayoutsByConversionResponse>;
|
|
@@ -181,7 +181,7 @@ export declare function getUserPayoutsByConversion(params: GetUserPayoutsByConve
|
|
|
181
181
|
* @returns {UserPointsByConversionResponse} User points by conversion
|
|
182
182
|
* @example
|
|
183
183
|
* ```typescript
|
|
184
|
-
* const results = await Fuul.getUserPointsByConversion({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress }
|
|
184
|
+
* const results = await Fuul.getUserPointsByConversion({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress });
|
|
185
185
|
* ```
|
|
186
186
|
**/
|
|
187
187
|
export declare function getUserPointsByConversion(params: GetUserPointsByConversionParams): Promise<UserPointsByConversionResponse>;
|
|
@@ -191,7 +191,7 @@ export declare function getUserPointsByConversion(params: GetUserPointsByConvers
|
|
|
191
191
|
* @returns {UserPayoutMovementsResponse} User payout movements
|
|
192
192
|
* @example
|
|
193
193
|
* ```typescript
|
|
194
|
-
* const results = await Fuul.getUserPayoutMovements({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress }
|
|
194
|
+
* const results = await Fuul.getUserPayoutMovements({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress });
|
|
195
195
|
* ```
|
|
196
196
|
**/
|
|
197
197
|
export declare function getUserPayoutMovements(params: GetUserPayoutMovementsParams): Promise<UserPayoutMovementsResponse>;
|
|
@@ -201,7 +201,7 @@ export declare function getUserPayoutMovements(params: GetUserPayoutMovementsPar
|
|
|
201
201
|
* @returns {UserPointsMovementsResponse} User payout movements
|
|
202
202
|
* @example
|
|
203
203
|
* ```typescript
|
|
204
|
-
* const results = await Fuul.getUserPointsMovements({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress }}
|
|
204
|
+
* const results = await Fuul.getUserPointsMovements({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress }};
|
|
205
205
|
* ```
|
|
206
206
|
**/
|
|
207
207
|
export declare function getUserPointsMovements(params: GetUserPointsMovementsParams): Promise<UserPointsMovementsResponse>;
|
|
@@ -211,7 +211,7 @@ export declare function getUserPointsMovements(params: GetUserPointsMovementsPar
|
|
|
211
211
|
* @returns {Conversion[]} List of conversions
|
|
212
212
|
* @example
|
|
213
213
|
* ```typescript
|
|
214
|
-
* const results = await Fuul.getConversions({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress });
|
|
214
|
+
* const results = await Fuul.getConversions({ user_identifier: '0x12345', identifier_type: UserIdentifierType.EvmAddress });
|
|
215
215
|
* ```
|
|
216
216
|
**/
|
|
217
217
|
export declare function getConversions(params?: GetConversionsParams): Promise<Conversion[]>;
|
package/dist/index.mjs
CHANGED
package/dist/index.umd.js
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[et]=this[et]={accessors:{}}).accessors,s=this.prototype;function o(i){const c=G(i);r[c]||(Pn(s,i),r[c]=!0)}return a.isArray(t)?t.forEach(o):o(t),this}};P.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),a.reduceDescriptors(P.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}}),a.freezeMethods(P);function Ce(e,t){const n=this||Y,r=t||n,s=P.from(r.headers);let o=r.data;return a.forEach(e,function(c){o=c.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function tt(e){return!!(e&&e.__CANCEL__)}function H(e,t,n){m.call(this,e??"canceled",m.ERR_CANCELED,t,n),this.name="CanceledError"}a.inherits(H,m,{__CANCEL__:!0});function nt(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new m("Request failed with status code "+n.status,[m.ERR_BAD_REQUEST,m.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Nn(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function Un(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(f){const u=Date.now(),l=r[o];i||(i=u),n[s]=f,r[s]=u;let d=o,g=0;for(;d!==s;)g+=n[d++],d=d%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i<t)return;const w=l&&u-l;return w?Math.round(g*1e3/w):void 0}}function xn(e,t){let n=0,r=1e3/t,s,o;const i=(u,l=Date.now())=>{n=l,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const l=Date.now(),d=l-n;d>=r?i(u,l):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-d)))},()=>s&&i(s)]}const ie=(e,t,n=3)=>{let r=0;const s=Un(50,250);return xn(o=>{const i=o.loaded,c=o.lengthComputable?o.total:void 0,f=i-r,u=s(f),l=i<=c;r=i;const d={loaded:i,total:c,progress:c?i/c:void 0,bytes:f,rate:u||void 0,estimated:u&&c&&l?(c-i)/u:void 0,event:o,lengthComputable:c!=null,[t?"download":"upload"]:!0};e(d)},n)},rt=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},st=e=>(...t)=>a.asap(()=>e(...t)),Ln=A.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,A.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(A.origin),A.navigator&&/(msie|trident)/i.test(A.navigator.userAgent)):()=>!0,Fn=A.hasStandardBrowserEnv?{write(e,t,n,r,s,o){const i=[e+"="+encodeURIComponent(t)];a.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),a.isString(r)&&i.push("path="+r),a.isString(s)&&i.push("domain="+s),o===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function Dn(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function kn(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function ot(e,t,n){let r=!Dn(t);return e&&(r||n==!1)?kn(e,t):t}const it=e=>e instanceof P?{...e}:e;function I(e,t){t=t||{};const n={};function r(u,l,d,g){return a.isPlainObject(u)&&a.isPlainObject(l)?a.merge.call({caseless:g},u,l):a.isPlainObject(l)?a.merge({},l):a.isArray(l)?l.slice():l}function s(u,l,d,g){if(a.isUndefined(l)){if(!a.isUndefined(u))return r(void 0,u,d,g)}else return r(u,l,d,g)}function o(u,l){if(!a.isUndefined(l))return r(void 0,l)}function i(u,l){if(a.isUndefined(l)){if(!a.isUndefined(u))return r(void 0,u)}else return r(void 0,l)}function c(u,l,d){if(d in t)return r(u,l);if(d in e)return r(void 0,u)}const f={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:c,headers:(u,l,d)=>s(it(u),it(l),d,!0)};return a.forEach(Object.keys({...e,...t}),function(l){const d=f[l]||s,g=d(e[l],t[l],l);a.isUndefined(g)&&d!==c||(n[l]=g)}),n}const at=e=>{const t=I({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:c}=t;t.headers=i=P.from(i),t.url=Qe(ot(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),c&&i.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):"")));let f;if(a.isFormData(n)){if(A.hasStandardBrowserEnv||A.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if((f=i.getContentType())!==!1){const[u,...l]=f?f.split(";").map(d=>d.trim()).filter(Boolean):[];i.setContentType([u||"multipart/form-data",...l].join("; "))}}if(A.hasStandardBrowserEnv&&(r&&a.isFunction(r)&&(r=r(t)),r||r!==!1&&Ln(t.url))){const u=s&&o&&Fn.read(o);u&&i.set(s,u)}return t},Bn=typeof XMLHttpRequest<"u"&&function(e){return new Promise(function(n,r){const s=at(e);let o=s.data;const i=P.from(s.headers).normalize();let{responseType:c,onUploadProgress:f,onDownloadProgress:u}=s,l,d,g,w,h;function y(){w&&w(),h&&h(),s.cancelToken&&s.cancelToken.unsubscribe(l),s.signal&&s.signal.removeEventListener("abort",l)}let p=new XMLHttpRequest;p.open(s.method.toUpperCase(),s.url,!0),p.timeout=s.timeout;function E(){if(!p)return;const C=P.from("getAllResponseHeaders"in p&&p.getAllResponseHeaders()),N={data:!c||c==="text"||c==="json"?p.responseText:p.response,status:p.status,statusText:p.statusText,headers:C,config:e,request:p};nt(function(j){n(j),y()},function(j){r(j),y()},N),p=null}"onloadend"in p?p.onloadend=E:p.onreadystatechange=function(){!p||p.readyState!==4||p.status===0&&!(p.responseURL&&p.responseURL.indexOf("file:")===0)||setTimeout(E)},p.onabort=function(){p&&(r(new m("Request aborted",m.ECONNABORTED,e,p)),p=null)},p.onerror=function(){r(new m("Network Error",m.ERR_NETWORK,e,p)),p=null},p.ontimeout=function(){let F=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const N=s.transitional||Ge;s.timeoutErrorMessage&&(F=s.timeoutErrorMessage),r(new m(F,N.clarifyTimeoutError?m.ETIMEDOUT:m.ECONNABORTED,e,p)),p=null},o===void 0&&i.setContentType(null),"setRequestHeader"in p&&a.forEach(i.toJSON(),function(F,N){p.setRequestHeader(N,F)}),a.isUndefined(s.withCredentials)||(p.withCredentials=!!s.withCredentials),c&&c!=="json"&&(p.responseType=s.responseType),u&&([g,h]=ie(u,!0),p.addEventListener("progress",g)),f&&p.upload&&([d,w]=ie(f),p.upload.addEventListener("progress",d),p.upload.addEventListener("loadend",w)),(s.cancelToken||s.signal)&&(l=C=>{p&&(r(!C||C.type?new H(null,e,p):C),p.abort(),p=null)},s.cancelToken&&s.cancelToken.subscribe(l),s.signal&&(s.signal.aborted?l():s.signal.addEventListener("abort",l)));const S=Nn(s.url);if(S&&A.protocols.indexOf(S)===-1){r(new m("Unsupported protocol "+S+":",m.ERR_BAD_REQUEST,e));return}p.send(o||null)})},In=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,c();const l=u instanceof Error?u:this.reason;r.abort(l instanceof m?l:new H(l instanceof Error?l.message:l))}};let i=t&&setTimeout(()=>{i=null,o(new m(`timeout ${t} of ms exceeded`,m.ETIMEDOUT))},t);const c=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(o):u.removeEventListener("abort",o)}),e=null)};e.forEach(u=>u.addEventListener("abort",o));const{signal:f}=r;return f.unsubscribe=()=>a.asap(c),f}},qn=function*(e,t){let n=e.byteLength;if(n<t){yield e;return}let r=0,s;for(;r<n;)s=r+t,yield e.slice(r,s),r=s},vn=async function*(e,t){for await(const n of jn(e))yield*qn(n,t)},jn=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:n,value:r}=await t.read();if(n)break;yield r}}finally{await t.cancel()}},ct=(e,t,n,r)=>{const s=vn(e,t);let o=0,i,c=f=>{i||(i=!0,r&&r(f))};return new ReadableStream({async pull(f){try{const{done:u,value:l}=await s.next();if(u){c(),f.close();return}let d=l.byteLength;if(n){let g=o+=d;n(g)}f.enqueue(new Uint8Array(l))}catch(u){throw c(u),u}},cancel(f){return c(f),s.return()}},{highWaterMark:2})},ae=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",ut=ae&&typeof ReadableStream=="function",$n=ae&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),lt=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Mn=ut&<(()=>{let e=!1;const t=new Request(A.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),ft=64*1024,Re=ut&<(()=>a.isReadableStream(new Response("").body)),ce={stream:Re&&(e=>e.body)};ae&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!ce[t]&&(ce[t]=a.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new m(`Response type '${t}' is not supported`,m.ERR_NOT_SUPPORT,r)})})})(new Response);const Hn=async e=>{if(e==null)return 0;if(a.isBlob(e))return e.size;if(a.isSpecCompliantForm(e))return(await new Request(A.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(a.isArrayBufferView(e)||a.isArrayBuffer(e))return e.byteLength;if(a.isURLSearchParams(e)&&(e=e+""),a.isString(e))return(await $n(e)).byteLength},Vn=async(e,t)=>{const n=a.toFiniteNumber(e.getContentLength());return n??Hn(t)},Te={http:fn,xhr:Bn,fetch:ae&&(async e=>{let{url:t,method:n,data:r,signal:s,cancelToken:o,timeout:i,onDownloadProgress:c,onUploadProgress:f,responseType:u,headers:l,withCredentials:d="same-origin",fetchOptions:g}=at(e);u=u?(u+"").toLowerCase():"text";let w=In([s,o&&o.toAbortSignal()],i),h;const y=w&&w.unsubscribe&&(()=>{w.unsubscribe()});let p;try{if(f&&Mn&&n!=="get"&&n!=="head"&&(p=await Vn(l,r))!==0){let N=new Request(t,{method:"POST",body:r,duplex:"half"}),k;if(a.isFormData(r)&&(k=N.headers.get("content-type"))&&l.setContentType(k),N.body){const[j,pe]=rt(p,ie(st(f)));r=ct(N.body,ft,j,pe)}}a.isString(d)||(d=d?"include":"omit");const E="credentials"in Request.prototype;h=new Request(t,{...g,signal:w,method:n.toUpperCase(),headers:l.normalize().toJSON(),body:r,duplex:"half",credentials:E?d:void 0});let S=await fetch(h,g);const C=Re&&(u==="stream"||u==="response");if(Re&&(c||C&&y)){const N={};["status","statusText","headers"].forEach(At=>{N[At]=S[At]});const k=a.toFiniteNumber(S.headers.get("content-length")),[j,pe]=c&&rt(k,ie(st(c),!0))||[];S=new Response(ct(S.body,ft,j,()=>{pe&&pe(),y&&y()}),N)}u=u||"text";let F=await ce[a.findKey(ce,u)||"text"](S,e);return!C&&y&&y(),await new Promise((N,k)=>{nt(N,k,{data:F,headers:P.from(S.headers),status:S.status,statusText:S.statusText,config:e,request:h})})}catch(E){throw y&&y(),E&&E.name==="TypeError"&&/Load failed|fetch/i.test(E.message)?Object.assign(new m("Network Error",m.ERR_NETWORK,e,h),{cause:E.cause||E}):m.from(E,E&&E.code,e,h)}})};a.forEach(Te,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const dt=e=>`- ${e}`,Kn=e=>a.isFunction(e)||e===null||e===!1,ht={getAdapter:e=>{e=a.isArray(e)?e:[e];const{length:t}=e;let n,r;const s={};for(let o=0;o<t;o++){n=e[o];let i;if(r=n,!Kn(n)&&(r=Te[(i=String(n)).toLowerCase()],r===void 0))throw new m(`Unknown adapter '${i}'`);if(r)break;s[i||"#"+o]=r}if(!r){const o=Object.entries(s).map(([c,f])=>`adapter ${c} `+(f===!1?"is not supported by the environment":"is not available in the build"));let i=t?o.length>1?`since :
|
|
4
4
|
`+o.map(dt).join(`
|
|
5
5
|
`):" "+dt(o[0]):"as no adapter specified";throw new m("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return r},adapters:Te};function Ae(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new H(null,e)}function pt(e){return Ae(e),e.headers=P.from(e.headers),e.data=Ce.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ht.getAdapter(e.adapter||Y.adapter)(e).then(function(r){return Ae(e),r.data=Ce.call(e,e.transformResponse,r),r.headers=P.from(r.headers),r},function(r){return tt(r)||(Ae(e),r&&r.response&&(r.response.data=Ce.call(e,e.transformResponse,r.response),r.response.headers=P.from(r.response.headers))),Promise.reject(r)})}const mt="1.11.0",ue={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{ue[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const yt={};ue.transitional=function(t,n,r){function s(o,i){return"[Axios v"+mt+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,c)=>{if(t===!1)throw new m(s(i," has been removed"+(n?" in "+n:"")),m.ERR_DEPRECATED);return n&&!yt[i]&&(yt[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,c):!0}},ue.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function zn(e,t,n){if(typeof e!="object")throw new m("options must be an object",m.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const c=e[o],f=c===void 0||i(c,o,e);if(f!==!0)throw new m("option "+o+" must be "+f,m.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new m("Unknown option "+o,m.ERR_BAD_OPTION)}}const le={assertOptions:zn,validators:ue},L=le.validators;let q=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Ye,response:new Ye}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=`
|
|
6
|
-
`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=I(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&le.assertOptions(r,{silentJSONParsing:L.transitional(L.boolean),forcedJSONParsing:L.transitional(L.boolean),clarifyTimeoutError:L.transitional(L.boolean)},!1),s!=null&&(a.isFunction(s)?n.paramsSerializer={serialize:s}:le.assertOptions(s,{encode:L.function,serialize:L.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),le.assertOptions(n,{baseUrl:L.spelling("baseURL"),withXsrfToken:L.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&a.merge(o.common,o[n.method]);o&&a.forEach(["delete","get","head","post","put","patch","common"],h=>{delete o[h]}),n.headers=P.concat(i,o);const c=[];let f=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(n)===!1||(f=f&&y.synchronous,c.unshift(y.fulfilled,y.rejected))});const u=[];this.interceptors.response.forEach(function(y){u.push(y.fulfilled,y.rejected)});let l,d=0,g;if(!f){const h=[pt.bind(this),void 0];for(h.unshift(...c),h.push(...u),g=h.length,l=Promise.resolve(n);d<g;)l=l.then(h[d++],h[d++]);return l}g=c.length;let w=n;for(d=0;d<g;){const h=c[d++],y=c[d++];try{w=h(w)}catch(p){y.call(this,p);break}}try{l=pt.call(this,w)}catch(h){return Promise.reject(h)}for(d=0,g=u.length;d<g;)l=l.then(u[d++],u[d++]);return l}getUri(t){t=I(this.defaults,t);const n=ot(t.baseURL,t.url,t.allowAbsoluteUrls);return Qe(n,t.params,t.paramsSerializer)}};a.forEach(["delete","get","head","options"],function(t){q.prototype[t]=function(n,r){return this.request(I(r||{},{method:t,url:n,data:(r||{}).data}))}}),a.forEach(["post","put","patch"],function(t){function n(r){return function(o,i,c){return this.request(I(c||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:o,data:i}))}}q.prototype[t]=n(),q.prototype[t+"Form"]=n(!0)});let Jn=class _t{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(o){n=o});const r=this;this.promise.then(s=>{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(c=>{r.subscribe(c),o=c}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,c){r.reason||(r.reason=new H(o,i,c),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new _t(function(s){t=s}),cancel:t}}};function Wn(e){return function(n){return e.apply(null,n)}}function Xn(e){return a.isObject(e)&&e.isAxiosError===!0}const _e={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(_e).forEach(([e,t])=>{_e[t]=e});function gt(e){const t=new q(e),n=_(q.prototype.request,t);return a.extend(n,q.prototype,t,{allOwnKeys:!0}),a.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return gt(I(e,s))},n}const b=gt(Y);b.Axios=q,b.CanceledError=H,b.CancelToken=Jn,b.isCancel=tt,b.VERSION=mt,b.toFormData=se,b.AxiosError=m,b.Cancel=b.CanceledError,b.all=function(t){return Promise.all(t)},b.spread=Wn,b.isAxiosError=Xn,b.mergeConfig=I,b.AxiosHeaders=P,b.formToJSON=e=>Ze(a.isHTMLForm(e)?new FormData(e):e),b.getAdapter=ht.getAdapter,b.HttpStatusCode=_e,b.default=b;const{Axios:Gr,AxiosError:fe,CanceledError:Zr,isCancel:es,CancelToken:ts,VERSION:ns,all:rs,Cancel:ss,isAxiosError:os,spread:is,toFormData:as,AxiosHeaders:cs,HttpStatusCode:us,formToJSON:ls,getAdapter:fs,mergeConfig:ds}=b;class Oe extends Error{constructor(n){super(n.join(", "));T(this,"errors");this.name="ValidationError",this.errors=n}}class Pe extends Error{constructor(n){super("Address already registered.");T(this,"address");this.name="AddressInUseError",this.address=n}}class Ne extends Error{constructor(n){super("Code already registered.");T(this,"code");this.name="CodeInUseError",this.code=n}}class Ue extends Error{constructor(){super("Invalid signature provided"),this.name="InvalidSignatureError"}}class Qn{constructor(t){T(this,"httpClient");T(this,"_debug");this.httpClient=t.httpClient,this._debug=t.debug}async create(t,n,r,s,o){var i;try{await this.httpClient.post({path:"/affiliates",postData:{address:t,identifier_type:n,name:r,code:r,signature:s,account_chain_id:o}})}catch(c){if(c instanceof fe){const f=(i=c.response)==null?void 0:i.data;if(typeof(f==null?void 0:f.message)=="string"){const u=f.message.toLowerCase();throw u=="invalid signature"?new Ue:u=="address in use"?new Pe(t):u=="code in use"?new Ne(r):new Error(u)}else if((f==null?void 0:f.message)instanceof Array)throw new Oe(f.message)}throw c}}async update(t,n,r,s,o){var i;try{await this.httpClient.post({path:`/affiliates/${t}`,postData:{code:r,user_identifier:t,identifier_type:n,signature:s,account_chain_id:o}})}catch(c){if(c instanceof fe){const f=(i=c.response)==null?void 0:i.data;if(typeof(f==null?void 0:f.message)=="string"){const u=f.message.toLowerCase();throw u=="invalid signature"?new Ue:u=="address in use"?new Pe(t):u=="code in use"?new Ne(r):new Error(u)}else if((f==null?void 0:f.message)instanceof Array)throw new Oe(f.message)}throw c}}async isCodeFree(t){var n;try{return await this.httpClient.get({path:`/affiliates/codes/${t}`}),!1}catch(r){if(r instanceof fe&&((n=r.response)==null?void 0:n.status)===404)return!0;throw console.error("Fuul SDK: Could not check affiliate code",r),r}}async getCode(t,n){var r;try{return(await this.httpClient.get({path:`/affiliates/${t}`,queryParams:{identifier_type:n}})).data.code}catch(s){if(s instanceof fe&&((r=s.response)==null?void 0:r.status)===404)return null;throw console.error("Fuul SDK: Could not get affiliate code",s),s}}}const Yn="/audiences";class Gn{constructor(t){T(this,"httpClient");T(this,"_debug");this.httpClient=t.httpClient,this._debug=t.debug}async getUserAudiences(t){return(await this.httpClient.get({path:`${Yn}/user`,queryParams:{...t}})).data}}class Zn{constructor(t){T(this,"httpClient");this.httpClient=t.httpClient}async getAll(t){const{data:n}=await this.httpClient.get({path:"conversions",queryParams:{...t}});return n}}const wt="fuul.sent",er=60,tr="connect_wallet",bt=10;class nr{constructor(t){T(this,"debug");T(this,"httpClient");this.httpClient=t.httpClient,this.debug=!!t.debug}async sendEvent(t,n){if(this.isDuplicate(t)){this.debug&&console.debug("Fuul SDK: Event is considered duplicate and will not be sent");return}if(!n||!Array.isArray(n)||n.length===0)await this.httpClient.post({path:"events",postData:t});else for(const r of n){const s=structuredClone({...t,project_id:r});s.metadata.project_id=r,await this.httpClient.post({path:"events",postData:s,queryParams:{project_id:r}})}this.debug&&console.debug(`Fuul SDK: Sent '${t.name}' event`),this.saveSentEvent(t)}isDuplicate(t){var l,d,g,w;const n=`${wt}_${t.name}`,r=localStorage.getItem(n);if(!r)return!1;const s=JSON.parse(r);if(this.getCurrentTimestamp()-s.timestamp>er)return!1;let f=!1;t.metadata&&(f=s.metadata.tracking_id===t.metadata.tracking_id&&s.metadata.project_id===t.metadata.project_id&&s.metadata.referrer===t.metadata.referrer&&s.metadata.source===t.metadata.source&&s.metadata.category===t.metadata.category&&s.metadata.title===t.metadata.title&&s.metadata.tag===t.metadata.tag&&s.user_address===t.user_address&&((l=s.user)==null?void 0:l.identifier)===((d=t.user)==null?void 0:d.identifier)&&((g=s.user)==null?void 0:g.identifier_type)===((w=t.user)==null?void 0:w.identifier_type)&&s.signature===t.signature&&s.signature_message===t.signature_message);let u=!1;return t.args&&s.args&&(u=s.args.page===t.args.page),u&&f}getCurrentTimestamp(){return Date.now()/1e3}saveSentEvent(t){var i,c,f,u;const n=`${wt}_${t.name}`,r=`${n}_all`,s=this.getCurrentTimestamp(),o={...t,timestamp:s};if(localStorage.setItem(n,JSON.stringify(o)),t.name===tr){const l=JSON.parse(localStorage.getItem(r)||"[]"),d={name:t.name,user:{identifier:(i=t.user)==null?void 0:i.identifier,identifier_type:(c=t.user)==null?void 0:c.identifier_type},tracking_id:(f=t.metadata)==null?void 0:f.tracking_id,page:(u=t.args)==null?void 0:u.page};"user_address"in t&&(d.user_address=t.user_address);const g=[...l,d];g.length>bt&&g.splice(0,g.length-bt),localStorage.setItem(r,JSON.stringify(g))}}}const rr={version:"7.0.0-beta.1"};class sr{constructor(t){T(this,"client");T(this,"defaultQueryParams");this.client=b.create({...t,headers:{Authorization:`Bearer ${t.apiKey}`,"X-Fuul-Sdk-Version":rr.version}}),this.defaultQueryParams=t.queryParams||{}}makeQueryParams(t){return Object.assign({},this.defaultQueryParams||{},t||{})}async get(t){return this.client.request({url:t.path,params:this.makeQueryParams(t.queryParams),method:"GET"})}async post(t){return this.client.request({url:t.path,params:this.makeQueryParams(t.queryParams),data:t.postData,method:"POST"})}async put(t){return this.client.request({url:t.path,params:this.makeQueryParams(t.queryParams),data:t.postData,method:"PUT"})}async delete(t){return this.client.request({url:t.path,params:this.makeQueryParams(t.queryParams),method:"DELETE"})}}class or{constructor(t){T(this,"httpClient");this.httpClient=t.httpClient}async getPayoutsLeaderboard(t){return(await this.httpClient.get({path:"/payouts/leaderboard/payouts",queryParams:{...t}})).data}async getPointsLeaderboard(t){return(await this.httpClient.get({path:"/payouts/leaderboard/points",queryParams:{...t}})).data}async getReferredUsersLeaderboard(t){return(await this.httpClient.get({path:"/leaderboard/referred",queryParams:{...t}})).data}}const Z="/payouts";class ir{constructor(t){T(this,"httpClient");T(this,"_debug");this.httpClient=t.httpClient,this._debug=t.debug}async getUserPayoutsByConversion(t){return(await this.httpClient.get({path:Z,queryParams:{...t,type:"onchain-currency"}})).data}async getUserPointsByConversion(t){return(await this.httpClient.get({path:Z,queryParams:{...t,type:"point"}})).data}async getUserPayoutMovements(t){return(await this.httpClient.get({path:`${Z}/movements`,queryParams:{...t,type:"onchain-currency"}})).data}async getUserPointsMovements(t){return(await this.httpClient.get({path:`${Z}/movements`,queryParams:{...t,type:"point"}})).data}async getVolumeLeaderboard(t){return(await this.httpClient.get({path:`${Z}/leaderboard/volume`,queryParams:{...t}})).data}}const ar="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let cr=(e=21)=>{let t="",n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=ar[n[e]&63];return t};const ur="fuul.tracking_id",xe=()=>mr(ur,()=>cr()),Et=()=>V("af")||V("referrer"),lr=()=>document.referrer,fr=()=>yr(),dr=()=>V("category"),hr=()=>V("title"),pr=()=>V("tag"),mr=(e,t)=>{const n=localStorage.getItem(e);if(n)return n;{const r=t();return r?localStorage.setItem(e,r):localStorage.removeItem(e),r}},V=e=>new URLSearchParams(window.location.search).get(e),yr=()=>{const e=V("source");if(e)return e},gr="/user";class wr{constructor(t){T(this,"httpClient");this.httpClient=t.httpClient}async getUserAffiliates(t){return(await this.httpClient.get({path:gr,queryParams:{...t}})).data.affiliates}}const br="https://api.fuul.xyz/api/v1/";let v=!1,Le=!1,Fe,D,St,Ct,K,de,z,Rt,he;function Er(e){v=!!e.debug,!Le&&(Fe=e.apiKey,jr(),D=$r(e.baseApiUrl??br,e.defaultQueryParams??{}),St=new Zn({httpClient:D,debug:v}),de=new nr({httpClient:D,debug:v}),K=new Qn({httpClient:D,debug:v}),z=new ir({httpClient:D,debug:v}),Ct=new wr({httpClient:D}),Rt=new Gn({httpClient:D,debug:v}),he=new or({httpClient:D}),Le=!0,v&&console.debug("Fuul SDK: init() complete"))}function x(){if(!Le)throw new Error("Fuul SDK: You need to call init() to initialize the library before using any methods")}async function Sr(e,t){x(),De(),ke();const n={name:e,args:t??{},metadata:{tracking_id:xe()}};await de.sendEvent(n)}async function Cr(e,t){x(),De(),ke();const n={name:"pageview",args:{page:e??document.location.pathname,locationOrigin:document.location.origin},metadata:{tracking_id:xe(),referrer_url:lr(),source:fr(),affiliate_id:Et()??void 0,referrer:Et()??void 0,category:dr()??void 0,title:hr()??void 0,tag:pr()??void 0}};await de.sendEvent(n,t)}async function Rr(e,t){x(),De(),ke();const n={name:"connect_wallet",user:{identifier:e.identifier,identifier_type:e.identifierType},args:{page:document.location.pathname,locationOrigin:document.location.origin},metadata:{tracking_id:xe()}};e!=null&&e.signature&&(n.signature=e==null?void 0:e.signature,n.signature_message=e==null?void 0:e.message),e!=null&&e.accountChainId&&(n.account_chain_id=e.accountChainId),await de.sendEvent(n,t)}async function Tr(e){x(),await K.create(e.userIdentifier,e.identifierType,e.code,e.signature,e.accountChainId)}async function Ar(e){x(),await K.update(e.userIdentifier,e.identifierType,e.code,e.signature,e.accountChainId)}async function _r(e,t){return x(),await K.getCode(e,t)}async function Or(e){return x(),await K.isCodeFree(e)}async function Pr(e,t,n,r){x();const s=await K.getCode(t,n),o=new URLSearchParams({af:s??t});return r!=null&&r.title&&o.append("af_title",r.title),r!=null&&r.format&&o.append("af_format",r.format),r!=null&&r.place&&o.append("af_place",r.place),`${e}?${o.toString()}`}function Nr(e){return he.getPayoutsLeaderboard(e)}function Ur(e){return he.getPointsLeaderboard(e)}function xr(e){return he.getReferredUsersLeaderboard(e)}function Lr(e){return z.getVolumeLeaderboard(e)}function Fr(e){return z.getUserPayoutsByConversion(e)}function Dr(e){return z.getUserPointsByConversion(e)}function kr(e){return z.getUserPayoutMovements(e)}function Br(e){return z.getUserPointsMovements(e)}async function Ir(e){return x(),St.getAll(e)}async function qr(e){return x(),Ct.getUserAffiliates(e)}async function vr(e){return x(),Rt.getUserAudiences(e)}function De(){if(typeof window>"u"||typeof document>"u")throw new Error("Fuul SDK: Browser context required")}function ke(){if(navigator.webdriver)throw new Error("Fuul SDK: You are using a browser automation tool")}function jr(){if(!Fe)throw new Error("Fuul SDK: Invalid API key")}function $r(e,t){return new sr({baseURL:e,timeout:3e4,apiKey:Fe,queryParams:t})}const Mr={init:Er,sendEvent:Sr,sendPageview:Cr,identifyUser:Rr,generateTrackingLink:Pr,getConversions:Ir,createAffiliateCode:Tr,updateAffiliateCode:Ar,getAffiliateCode:_r,isAffiliateCodeFree:Or,getPayoutsLeaderboard:Nr,getPointsLeaderboard:Ur,getReferredUsersLeaderboard:xr,getUserAudiences:vr,getUserPayoutsByConversion:Fr,getUserPointsByConversion:Dr,getUserPointsMovements:Br,getUserPayoutMovements:kr,getUserAffiliates:qr,getVolumeLeaderboard:Lr};var Tt=(e=>(e.EvmAddress="evm_address",e.SolanaAddress="solana_address",e.Email="email",e))(Tt||{});R.AddressInUseError=Pe,R.CodeInUseError=Ne,R.Fuul=Mr,R.InvalidSignatureError=Ue,R.UserIdentifierType=Tt,R.ValidationError=Oe,Object.defineProperty(R,Symbol.toStringTag,{value:"Module"})});
|
|
6
|
+
`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=I(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&le.assertOptions(r,{silentJSONParsing:L.transitional(L.boolean),forcedJSONParsing:L.transitional(L.boolean),clarifyTimeoutError:L.transitional(L.boolean)},!1),s!=null&&(a.isFunction(s)?n.paramsSerializer={serialize:s}:le.assertOptions(s,{encode:L.function,serialize:L.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),le.assertOptions(n,{baseUrl:L.spelling("baseURL"),withXsrfToken:L.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&a.merge(o.common,o[n.method]);o&&a.forEach(["delete","get","head","post","put","patch","common"],h=>{delete o[h]}),n.headers=P.concat(i,o);const c=[];let f=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(n)===!1||(f=f&&y.synchronous,c.unshift(y.fulfilled,y.rejected))});const u=[];this.interceptors.response.forEach(function(y){u.push(y.fulfilled,y.rejected)});let l,d=0,g;if(!f){const h=[pt.bind(this),void 0];for(h.unshift(...c),h.push(...u),g=h.length,l=Promise.resolve(n);d<g;)l=l.then(h[d++],h[d++]);return l}g=c.length;let w=n;for(d=0;d<g;){const h=c[d++],y=c[d++];try{w=h(w)}catch(p){y.call(this,p);break}}try{l=pt.call(this,w)}catch(h){return Promise.reject(h)}for(d=0,g=u.length;d<g;)l=l.then(u[d++],u[d++]);return l}getUri(t){t=I(this.defaults,t);const n=ot(t.baseURL,t.url,t.allowAbsoluteUrls);return Qe(n,t.params,t.paramsSerializer)}};a.forEach(["delete","get","head","options"],function(t){q.prototype[t]=function(n,r){return this.request(I(r||{},{method:t,url:n,data:(r||{}).data}))}}),a.forEach(["post","put","patch"],function(t){function n(r){return function(o,i,c){return this.request(I(c||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:o,data:i}))}}q.prototype[t]=n(),q.prototype[t+"Form"]=n(!0)});let Jn=class _t{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(o){n=o});const r=this;this.promise.then(s=>{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(c=>{r.subscribe(c),o=c}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,c){r.reason||(r.reason=new H(o,i,c),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new _t(function(s){t=s}),cancel:t}}};function Wn(e){return function(n){return e.apply(null,n)}}function Xn(e){return a.isObject(e)&&e.isAxiosError===!0}const _e={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(_e).forEach(([e,t])=>{_e[t]=e});function gt(e){const t=new q(e),n=_(q.prototype.request,t);return a.extend(n,q.prototype,t,{allOwnKeys:!0}),a.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return gt(I(e,s))},n}const b=gt(Y);b.Axios=q,b.CanceledError=H,b.CancelToken=Jn,b.isCancel=tt,b.VERSION=mt,b.toFormData=se,b.AxiosError=m,b.Cancel=b.CanceledError,b.all=function(t){return Promise.all(t)},b.spread=Wn,b.isAxiosError=Xn,b.mergeConfig=I,b.AxiosHeaders=P,b.formToJSON=e=>Ze(a.isHTMLForm(e)?new FormData(e):e),b.getAdapter=ht.getAdapter,b.HttpStatusCode=_e,b.default=b;const{Axios:Gr,AxiosError:fe,CanceledError:Zr,isCancel:es,CancelToken:ts,VERSION:ns,all:rs,Cancel:ss,isAxiosError:os,spread:is,toFormData:as,AxiosHeaders:cs,HttpStatusCode:us,formToJSON:ls,getAdapter:fs,mergeConfig:ds}=b;class Oe extends Error{constructor(n){super(n.join(", "));T(this,"errors");this.name="ValidationError",this.errors=n}}class Pe extends Error{constructor(n){super("Address already registered.");T(this,"address");this.name="AddressInUseError",this.address=n}}class Ne extends Error{constructor(n){super("Code already registered.");T(this,"code");this.name="CodeInUseError",this.code=n}}class Ue extends Error{constructor(){super("Invalid signature provided"),this.name="InvalidSignatureError"}}class Qn{constructor(t){T(this,"httpClient");T(this,"_debug");this.httpClient=t.httpClient,this._debug=t.debug}async create(t,n,r,s,o){var i;try{await this.httpClient.post({path:"/affiliates",postData:{address:t,identifier_type:n,name:r,code:r,signature:s,account_chain_id:o}})}catch(c){if(c instanceof fe){const f=(i=c.response)==null?void 0:i.data;if(typeof(f==null?void 0:f.message)=="string"){const u=f.message.toLowerCase();throw u=="invalid signature"?new Ue:u=="address in use"?new Pe(t):u=="code in use"?new Ne(r):new Error(u)}else if((f==null?void 0:f.message)instanceof Array)throw new Oe(f.message)}throw c}}async update(t,n,r,s,o){var i;try{await this.httpClient.post({path:`/affiliates/${t}`,postData:{code:r,user_identifier:t,identifier_type:n,signature:s,account_chain_id:o}})}catch(c){if(c instanceof fe){const f=(i=c.response)==null?void 0:i.data;if(typeof(f==null?void 0:f.message)=="string"){const u=f.message.toLowerCase();throw u=="invalid signature"?new Ue:u=="address in use"?new Pe(t):u=="code in use"?new Ne(r):new Error(u)}else if((f==null?void 0:f.message)instanceof Array)throw new Oe(f.message)}throw c}}async isCodeFree(t){var n;try{return await this.httpClient.get({path:`/affiliates/codes/${t}`}),!1}catch(r){if(r instanceof fe&&((n=r.response)==null?void 0:n.status)===404)return!0;throw console.error("Fuul SDK: Could not check affiliate code",r),r}}async getCode(t,n){var r;try{return(await this.httpClient.get({path:`/affiliates/${t}`,queryParams:{identifier_type:n}})).data.code}catch(s){if(s instanceof fe&&((r=s.response)==null?void 0:r.status)===404)return null;throw console.error("Fuul SDK: Could not get affiliate code",s),s}}}const Yn="/audiences";class Gn{constructor(t){T(this,"httpClient");T(this,"_debug");this.httpClient=t.httpClient,this._debug=t.debug}async getUserAudiences(t){return(await this.httpClient.get({path:`${Yn}/user`,queryParams:{...t}})).data}}class Zn{constructor(t){T(this,"httpClient");this.httpClient=t.httpClient}async getAll(t){const{data:n}=await this.httpClient.get({path:"conversions",queryParams:{...t}});return n}}const wt="fuul.sent",er=60,tr="connect_wallet",bt=10;class nr{constructor(t){T(this,"debug");T(this,"httpClient");this.httpClient=t.httpClient,this.debug=!!t.debug}async sendEvent(t,n){if(this.isDuplicate(t)){this.debug&&console.debug("Fuul SDK: Event is considered duplicate and will not be sent");return}if(!n||!Array.isArray(n)||n.length===0)await this.httpClient.post({path:"events",postData:t});else for(const r of n){const s=structuredClone({...t,project_id:r});s.metadata.project_id=r,await this.httpClient.post({path:"events",postData:s,queryParams:{project_id:r}})}this.debug&&console.debug(`Fuul SDK: Sent '${t.name}' event`),this.saveSentEvent(t)}isDuplicate(t){var l,d,g,w;const n=`${wt}_${t.name}`,r=localStorage.getItem(n);if(!r)return!1;const s=JSON.parse(r);if(this.getCurrentTimestamp()-s.timestamp>er)return!1;let f=!1;t.metadata&&(f=s.metadata.tracking_id===t.metadata.tracking_id&&s.metadata.project_id===t.metadata.project_id&&s.metadata.referrer===t.metadata.referrer&&s.metadata.source===t.metadata.source&&s.metadata.category===t.metadata.category&&s.metadata.title===t.metadata.title&&s.metadata.tag===t.metadata.tag&&s.user_address===t.user_address&&((l=s.user)==null?void 0:l.identifier)===((d=t.user)==null?void 0:d.identifier)&&((g=s.user)==null?void 0:g.identifier_type)===((w=t.user)==null?void 0:w.identifier_type)&&s.signature===t.signature&&s.signature_message===t.signature_message);let u=!1;return t.args&&s.args&&(u=s.args.page===t.args.page),u&&f}getCurrentTimestamp(){return Date.now()/1e3}saveSentEvent(t){var i,c,f,u;const n=`${wt}_${t.name}`,r=`${n}_all`,s=this.getCurrentTimestamp(),o={...t,timestamp:s};if(localStorage.setItem(n,JSON.stringify(o)),t.name===tr){const l=JSON.parse(localStorage.getItem(r)||"[]"),d={name:t.name,user:{identifier:(i=t.user)==null?void 0:i.identifier,identifier_type:(c=t.user)==null?void 0:c.identifier_type},tracking_id:(f=t.metadata)==null?void 0:f.tracking_id,page:(u=t.args)==null?void 0:u.page};"user_address"in t&&(d.user_address=t.user_address);const g=[...l,d];g.length>bt&&g.splice(0,g.length-bt),localStorage.setItem(r,JSON.stringify(g))}}}const rr={version:"7.0.0-beta.2"};class sr{constructor(t){T(this,"client");T(this,"defaultQueryParams");this.client=b.create({...t,headers:{Authorization:`Bearer ${t.apiKey}`,"X-Fuul-Sdk-Version":rr.version}}),this.defaultQueryParams=t.queryParams||{}}makeQueryParams(t){return Object.assign({},this.defaultQueryParams||{},t||{})}async get(t){return this.client.request({url:t.path,params:this.makeQueryParams(t.queryParams),method:"GET"})}async post(t){return this.client.request({url:t.path,params:this.makeQueryParams(t.queryParams),data:t.postData,method:"POST"})}async put(t){return this.client.request({url:t.path,params:this.makeQueryParams(t.queryParams),data:t.postData,method:"PUT"})}async delete(t){return this.client.request({url:t.path,params:this.makeQueryParams(t.queryParams),method:"DELETE"})}}class or{constructor(t){T(this,"httpClient");this.httpClient=t.httpClient}async getPayoutsLeaderboard(t){return(await this.httpClient.get({path:"/payouts/leaderboard/payouts",queryParams:{...t}})).data}async getPointsLeaderboard(t){return(await this.httpClient.get({path:"/payouts/leaderboard/points",queryParams:{...t}})).data}async getReferredUsersLeaderboard(t){return(await this.httpClient.get({path:"/leaderboard/referred",queryParams:{...t}})).data}}const Z="/payouts";class ir{constructor(t){T(this,"httpClient");T(this,"_debug");this.httpClient=t.httpClient,this._debug=t.debug}async getUserPayoutsByConversion(t){return(await this.httpClient.get({path:Z,queryParams:{...t,type:"onchain-currency"}})).data}async getUserPointsByConversion(t){return(await this.httpClient.get({path:Z,queryParams:{...t,type:"point"}})).data}async getUserPayoutMovements(t){return(await this.httpClient.get({path:`${Z}/movements`,queryParams:{...t,type:"onchain-currency"}})).data}async getUserPointsMovements(t){return(await this.httpClient.get({path:`${Z}/movements`,queryParams:{...t,type:"point"}})).data}async getVolumeLeaderboard(t){return(await this.httpClient.get({path:`${Z}/leaderboard/volume`,queryParams:{...t}})).data}}const ar="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let cr=(e=21)=>{let t="",n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+=ar[n[e]&63];return t};const ur="fuul.tracking_id",xe=()=>mr(ur,()=>cr()),Et=()=>V("af")||V("referrer"),lr=()=>document.referrer,fr=()=>yr(),dr=()=>V("category"),hr=()=>V("title"),pr=()=>V("tag"),mr=(e,t)=>{const n=localStorage.getItem(e);if(n)return n;{const r=t();return r?localStorage.setItem(e,r):localStorage.removeItem(e),r}},V=e=>new URLSearchParams(window.location.search).get(e),yr=()=>{const e=V("source");if(e)return e},gr="/user";class wr{constructor(t){T(this,"httpClient");this.httpClient=t.httpClient}async getUserAffiliates(t){return(await this.httpClient.get({path:gr,queryParams:{...t}})).data.affiliates}}const br="https://api.fuul.xyz/api/v1/";let v=!1,Le=!1,Fe,D,St,Ct,K,de,z,Rt,he;function Er(e){v=!!e.debug,!Le&&(Fe=e.apiKey,jr(),D=$r(e.baseApiUrl??br,e.defaultQueryParams??{}),St=new Zn({httpClient:D,debug:v}),de=new nr({httpClient:D,debug:v}),K=new Qn({httpClient:D,debug:v}),z=new ir({httpClient:D,debug:v}),Ct=new wr({httpClient:D}),Rt=new Gn({httpClient:D,debug:v}),he=new or({httpClient:D}),Le=!0,v&&console.debug("Fuul SDK: init() complete"))}function x(){if(!Le)throw new Error("Fuul SDK: You need to call init() to initialize the library before using any methods")}async function Sr(e,t){x(),De(),ke();const n={name:e,args:t??{},metadata:{tracking_id:xe()}};await de.sendEvent(n)}async function Cr(e,t){x(),De(),ke();const n={name:"pageview",args:{page:e??document.location.pathname,locationOrigin:document.location.origin},metadata:{tracking_id:xe(),referrer_url:lr(),source:fr(),affiliate_id:Et()??void 0,referrer:Et()??void 0,category:dr()??void 0,title:hr()??void 0,tag:pr()??void 0}};await de.sendEvent(n,t)}async function Rr(e,t){x(),De(),ke();const n={name:"connect_wallet",user:{identifier:e.identifier,identifier_type:e.identifierType},args:{page:document.location.pathname,locationOrigin:document.location.origin},metadata:{tracking_id:xe()}};e!=null&&e.signature&&(n.signature=e==null?void 0:e.signature,n.signature_message=e==null?void 0:e.message),e!=null&&e.accountChainId&&(n.account_chain_id=e.accountChainId),await de.sendEvent(n,t)}async function Tr(e){x(),await K.create(e.userIdentifier,e.identifierType,e.code,e.signature,e.accountChainId)}async function Ar(e){x(),await K.update(e.userIdentifier,e.identifierType,e.code,e.signature,e.accountChainId)}async function _r(e,t){return x(),await K.getCode(e,t)}async function Or(e){return x(),await K.isCodeFree(e)}async function Pr(e,t,n,r){x();const s=await K.getCode(t,n),o=new URLSearchParams({af:s??t});return r!=null&&r.title&&o.append("af_title",r.title),r!=null&&r.format&&o.append("af_format",r.format),r!=null&&r.place&&o.append("af_place",r.place),`${e}?${o.toString()}`}function Nr(e){return he.getPayoutsLeaderboard(e)}function Ur(e){return he.getPointsLeaderboard(e)}function xr(e){return he.getReferredUsersLeaderboard(e)}function Lr(e){return z.getVolumeLeaderboard(e)}function Fr(e){return z.getUserPayoutsByConversion(e)}function Dr(e){return z.getUserPointsByConversion(e)}function kr(e){return z.getUserPayoutMovements(e)}function Br(e){return z.getUserPointsMovements(e)}async function Ir(e){return x(),St.getAll(e)}async function qr(e){return x(),Ct.getUserAffiliates(e)}async function vr(e){return x(),Rt.getUserAudiences(e)}function De(){if(typeof window>"u"||typeof document>"u")throw new Error("Fuul SDK: Browser context required")}function ke(){if(navigator.webdriver)throw new Error("Fuul SDK: You are using a browser automation tool")}function jr(){if(!Fe)throw new Error("Fuul SDK: Invalid API key")}function $r(e,t){return new sr({baseURL:e,timeout:3e4,apiKey:Fe,queryParams:t})}const Mr={init:Er,sendEvent:Sr,sendPageview:Cr,identifyUser:Rr,generateTrackingLink:Pr,getConversions:Ir,createAffiliateCode:Tr,updateAffiliateCode:Ar,getAffiliateCode:_r,isAffiliateCodeFree:Or,getPayoutsLeaderboard:Nr,getPointsLeaderboard:Ur,getReferredUsersLeaderboard:xr,getUserAudiences:vr,getUserPayoutsByConversion:Fr,getUserPointsByConversion:Dr,getUserPointsMovements:Br,getUserPayoutMovements:kr,getUserAffiliates:qr,getVolumeLeaderboard:Lr};var Tt=(e=>(e.EvmAddress="evm_address",e.SolanaAddress="solana_address",e.Email="email",e))(Tt||{});R.AddressInUseError=Pe,R.CodeInUseError=Ne,R.Fuul=Mr,R.InvalidSignatureError=Ue,R.UserIdentifierType=Tt,R.ValidationError=Oe,Object.defineProperty(R,Symbol.toStringTag,{value:"Module"})});
|
package/dist/release.json.d.ts
CHANGED