@frak-labs/nexus-sdk 0.0.44-beta.4c302c9e → 0.0.44-beta.5989fbc3
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/bundle/bundle.js +1 -1
- package/package.json +2 -2
package/dist/bundle/bundle.js
CHANGED
|
@@ -63,4 +63,4 @@ or you can use record.mirror to access the mirror instance during recording.`,bf
|
|
|
63
63
|
Last Response: ${t.lastResponse}
|
|
64
64
|
Client Status: ${t.clientStatus}
|
|
65
65
|
Error: ${t.error}
|
|
66
|
-
`.trim()}};let Vm=(()=>{if(typeof navigator>`u`)return!1;let e=navigator.userAgent;if(!(/iPhone|iPad|iPod/i.test(e)||/Macintosh/i.test(e)&&navigator.maxTouchPoints>1))return!1;let t=e.toLowerCase();return t.includes(`instagram`)||t.includes(`fban`)||t.includes(`fbav`)||t.includes(`facebook`)})();function Hm(e){e?localStorage.setItem(ym,e):localStorage.removeItem(ym)}function Um(e,t){try{let n=new URL(e);if(!n.searchParams.has(`u`))return e;let r=Km(window.location.href,t);return n.searchParams.delete(`u`),n.searchParams.append(`u`,r),n.toString()}catch{return e}}function Wm(e){let t=new URL(window.location.href);e&&t.searchParams.set(`fmt`,e);let n=t.protocol===`http:`?`x-safari-http`:`x-safari-https`;window.location.href=`${n}://${t.host}${t.pathname}${t.search}${t.hash}`}function Gm(e){return e.includes(`/common/social`)}function Km(e,t){if(!t)return e;try{let n=new URL(e);return n.searchParams.set(`fmt`,t),n.toString()}catch{return`${e}${e.includes(`?`)?`&`:`?`}fmt=${encodeURIComponent(t)}`}}function qm(e,t,n,r,i){if(i){let e=Um(t,r);window.open(e,`_blank`);return}if(wm(t)){let i=Um(t,r);Cm(i,{onFallback:()=>{e.contentWindow?.postMessage({clientLifecycle:`deep-link-failed`,data:{originalUrl:i}},n)}})}else if(Vm&&Gm(t))Wm(r);else{let e=Um(t,r);window.location.href=e}}function Jm({iframe:e,targetOrigin:t}){let n=new Le;return{handleEvent:r=>{if(!(`iframeLifecycle`in r))return;let{iframeLifecycle:i,data:a}=r;switch(i){case`connected`:n.resolve(!0);break;case`do-backup`:Hm(a.backup);break;case`remove-backup`:localStorage.removeItem(ym);break;case`show`:case`hide`:Mm({iframe:e,isVisible:i===`show`});break;case`redirect`:qm(e,a.baseRedirectUrl,t,a.mergeToken,a.openInNewTab);break}},isConnected:n.promise}}function Ym({config:e,iframe:t}){let n=e?.walletUrl??`https://wallet.frak.id`,r=typeof navigator<`u`?navigator.language?.split(`-`)[0]:void 0,i=e.metadata.lang??(r===`en`||r===`fr`?r:void 0),a=e.domain??(typeof window<`u`?window.location.hostname:``);T.setCacheScope(a,i),T.reset();let o=T.isCacheFresh?void 0:T.resolve(e.domain,e.walletUrl,i),s=Jm({iframe:t,targetOrigin:n}),c=new Le,l=new Bm(e,t);if(!t.contentWindow)throw new Ie(Fe.configError,`The iframe does not have a content window`);let u=Re({emittingTransport:t.contentWindow,listeningTransport:window,targetOrigin:n,middleware:[{async onRequest(e,t){if(!await s.isConnected)throw new Ie(Fe.clientNotConnected,`The iframe provider isn't connected yet`);return await c.promise,t}},{onRequest(e,t){return l.setLastRequest(e),t},onResponse(e,t){return l.setLastResponse(e,t),t}}],lifecycleHandlers:{iframeLifecycle:(e,t)=>{s.handleEvent(e)}}}),d=Xm(u,s),f=async()=>{d(),u.cleanup(),t.remove(),ut(),T.clearCache(),T.reset()},p;console.log(`[Frak SDK] Initializing OpenPanel`),p=new vm({apiUrl:`https://op-api.gcp.frak.id`,clientId:`6eacc8d7-49ac-4936-95e9-81ef29449570`,trackScreenViews:!0,trackOutgoingLinks:!0,trackAttributes:!1,filter:({type:e,payload:t})=>(e!==`track`||!t?.properties||`sdkVersion`in t.properties||(t.properties={...t.properties,sdkVersion:`0.2.1`,userAnonymousClientId:Ue()}),!0)}),p.setGlobalProperties({sdkVersion:`0.2.1`,userAnonymousClientId:Ue()}),p.init();let m=Zm({config:e,rpcClient:u,lifecycleManager:s,configPromise:o,contextSent:c}).then(()=>l.updateSetupStatus(!0)).catch(e=>{throw c.reject(e),e});return{config:e,debugInfo:l,waitForConnection:s.isConnected,waitForSetup:m,request:u.request,listenerRequest:u.listen,destroy:f,openPanel:p}}function Xm(e,t){let n,r,i=()=>e.sendLifecycle({clientLifecycle:`heartbeat`});async function a(){i(),n=setInterval(i,1e3),r=setTimeout(()=>{o(),console.log(`Heartbeat timeout: connection failed`)},3e4),await t.isConnected,o()}function o(){n&&clearInterval(n),r&&clearTimeout(r)}return a(),o}async function Zm({config:e,rpcClient:t,lifecycleManager:n,configPromise:r,contextSent:i}){await n.isConnected,zm(t,n.isConnected);let a=new URL(window.location.href),o=a.searchParams.get(`fmt`)??void 0;o&&(a.searchParams.delete(`fmt`),window.history.replaceState({},``,a.toString()));let s=t=>{let n=t?.merchantId??e.metadata.merchantId??``,r=t?.domain??``,i=t?.allowedDomains??[],a=t?.sdkConfig;T.setConfig(a?{isResolved:!0,merchantId:n,domain:r,allowedDomains:i,hasRawSdkConfig:!0,name:a.name??e.metadata.name,logoUrl:a.logoUrl??e.metadata.logoUrl,homepageLink:a.homepageLink??e.metadata.homepageLink,lang:a.lang??e.metadata.lang,currency:a.currency??e.metadata.currency,hidden:a.hidden,css:a.css,translations:a.translations,placements:a.placements}:{isResolved:!0,merchantId:n,domain:r,allowedDomains:i,name:e.metadata.name,logoUrl:e.metadata.logoUrl,homepageLink:e.metadata.homepageLink,lang:e.metadata.lang,currency:e.metadata.currency})},c=!1,l=e=>{let n=c?void 0:o;c=!0;let r=e.hasRawSdkConfig?{name:e.name,logoUrl:e.logoUrl,homepageLink:e.homepageLink,lang:e.lang,currency:e.currency,hidden:e.hidden,css:e.css,translations:e.translations,placements:e.placements}:void 0;t.sendLifecycle({clientLifecycle:`resolved-config`,data:{merchantId:e.merchantId,domain:e.domain??``,allowedDomains:e.allowedDomains??[],sourceUrl:window.location.href,...n&&{pendingMergeToken:n},...r&&{sdkConfig:r}}})};T.isResolved&&(l(T.getConfig()),i.resolve()),r&&(s(await r),l(T.getConfig()),i.resolve());async function u(){let n=e.customizations?.css;n&&t.sendLifecycle({clientLifecycle:`modal-css`,data:{cssLink:n}})}async function d(){let n=e.customizations?.i18n;n&&t.sendLifecycle({clientLifecycle:`modal-i18n`,data:{i18n:n}})}async function f(){if(typeof window>`u`)return;let e=window.localStorage.getItem(ym);e&&t.sendLifecycle({clientLifecycle:`restore-backup`,data:{backup:e}})}await Promise.allSettled([u(),d(),f()])}async function Qm({config:e}){let t=$m(e),n=await jm({config:t});if(!n){console.error(`Failed to create iframe`);return}let r=Ym({config:t,iframe:n});if(await r.waitForSetup,!await r.waitForConnection){console.error(`Failed to connect to client`);return}return r}function $m(e){let t=Em(e.metadata?.currency);return{...e,metadata:{...e.metadata,currency:t}}}async function eh(e,t,n=`text/javascript`){return document.getElementById(e)?Promise.resolve(!0):new Promise((r,i)=>{let a=document.createElement(`script`);a.id=e,a.src=t,a.defer=!0,a.type=n,a.onload=()=>r(!0),a.onerror=()=>i(Error(`Script load error for ${t}`)),document.head.appendChild(a)})}function th(){nh(),rh()}function nh(){window.FrakSetup.config={walletUrl:`https://wallet.frak.id`,metadata:{name:`Gapianne`,lang:`fr`,currency:`eur`,logoUrl:`https://gapianne.com/cdn/shop/files/logo-gapianne_7a65f4c4-54e8-4831-afa2-0849e4c5f8de.png`,homepageLink:`https://gapianne.com/`},customizations:{i18n:{"sharing.title":`Prêt(e) à révéler un secret bien-être ?`,"sharing.text":`Découvre ce produit chez Gapianne`,"sdk.wallet.login.text":`Créez votre porte-monnaie avec **{{ productName }}** et recevez **{{ estimatedReward }}** par ami(e) parrainé(e)`}},domain:window.location.host},window.FrakSetup.modalWalletConfig={metadata:{position:`left`}}}function rh(){let e=document.querySelectorAll(`#nexus-share-button > button`);for(let t of Array.from(e)){let e=document.createElement(`frak-button-share`);e.setAttribute(`text`,`PARTAGE ET GAGNE {REWARD} !`),e.setAttribute(`no-reward-text`,`PARTAGE ET GAGNE`),e.setAttribute(`use-reward`,`true`),e.setAttribute(`classname`,`button w-full`),t.replaceWith(e)}}let ih={"gapianne.com":th};function ah(){let e=ih[window.location.host];e&&(e(),eh(`frak-components`,`https://cdn.jsdelivr.net/npm/@frak-labs/components@beta/cdn/components.js`,`module`))}function oh(e){document.readyState===`complete`||document.readyState===`interactive`?setTimeout(e,1):document.addEventListener(`DOMContentLoaded`,e)}function sh(){return Me(96)}async function ch(e,t,n){return await e.request({method:`frak_displayEmbeddedWallet`,params:n?[t,e.config.metadata,n]:[t,e.config.metadata]})}async function lh(e,{steps:t,metadata:n},r){return await e.request({method:`frak_displayModal`,params:r?[t,n,e.config.metadata,r]:[t,n,e.config.metadata]})}async function uh(e,t,n){return await e.request({method:`frak_displaySharingPage`,params:n?[t,e.config.metadata,n]:[t,e.config.metadata]})}async function dh(e){if(typeof window>`u`)return;let t=Ue();if(!t)return;let n=await T.resolveMerchantId();if(!n)return;let r=`frak-identity-ensured-${n}`;if(!window.sessionStorage.getItem(r))try{let i=nt();(await fetch(`${i}/user/identity/ensure`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`,"x-wallet-sdk-auth":e,"x-frak-client-id":t},body:JSON.stringify({merchantId:n})})).ok&&window.sessionStorage.setItem(r,`1`)}catch{}}async function fh(e,t){return ct(()=>e.request({method:`frak_getMerchantInformation`}),{cacheKey:`frak_getMerchantInformation`,cacheTime:t?.cacheTime})}async function ph(e,t){return ct(()=>e.request({method:`frak_getMergeToken`}),{cacheKey:`frak_getMergeToken`,cacheTime:t?.cacheTime})}async function mh(e,t){return ct(()=>e.request({method:`frak_getUserReferralStatus`}),{cacheKey:`frak_getUserReferralStatus`,cacheTime:t?.cacheTime})}async function hh(e,t){let{metadata:n,customizations:r}=e.config;return await e.request({method:`frak_prepareSso`,params:[t,n.name,r?.css]})}async function gh(e,t){try{await e.request({method:`frak_sendInteraction`,params:[t,{clientId:Ue()}]})}catch{console.warn(`[Frak SDK] Failed to send interaction:`,t.type)}}function _h(e,t,n){let r=typeof window<`u`?window.location.href:void 0;return pt(t)?(Rt(e,`user_referred_started`,{properties:{referrerClientId:t.c,walletStatus:n?.key}}),gh(e,{type:`arrival`,referrerClientId:t.c,referrerMerchantId:t.m,referralTimestamp:t.t,landingUrl:r}),!0):ft(t)?(Rt(e,`user_referred_started`,{properties:{referrer:t.r,walletStatus:n?.key}}),gh(e,{type:`arrival`,referrerWallet:t.r,landingUrl:r}),!0):!1}function vh(e){let t=Ue();return t?{v:2,c:t,m:e,t:Math.floor(Date.now()/1e3)}:null}function yh(e,t){return pt(e)?Ue()===e.c:ft(e)&&t?.wallet?ke(e.r,t.wallet):!1}function bh(e,{walletStatus:t,frakContext:n,options:r}){if(!n)return`no-referrer`;if(yh(n,t))return`self-referral`;if(!_h(e,n,t))return`no-referrer`;let i=pt(n)?n.m:r?.merchantId,a=r?.alwaysAppendUrl&&i?vh(i):null;return xt.replaceUrl({url:window.location?.href,context:a}),Rt(e,`user_referred_completed`,{properties:{status:`success`}}),`success`}async function xh(e,{options:t}={}){let n=xt.parse({url:window.location.href}),r=await Th(e);try{return bh(e,{walletStatus:r,frakContext:n,options:t})}catch(e){console.warn(`Error processing referral`,{error:e})}}let Sh=`frak:referral-success`;async function Ch(e){try{await xh(e)===`success`&&window.dispatchEvent(new Event(Sh))}catch(e){console.warn(`[Frak] Referral setup failed`,e)}}async function wh(e){if(typeof window>`u`){console.warn(`[Frak] No window found, can't track purchase`);return}let t=window.sessionStorage.getItem(`frak-wallet-interaction-token`),n=Ue();if(!t&&!n){console.warn(`[Frak] No identity found, skipping purchase check`);return}let r=e.merchantId??await T.resolveMerchantId();if(!r){console.warn(`[Frak] No merchant id found, skipping purchase check`);return}let i={Accept:`application/json`,"Content-Type":`application/json`};t&&(i[`x-wallet-sdk-auth`]=t),n&&(i[`x-frak-client-id`]=n);let a=nt();await fetch(`${a}/user/track/purchase`,{method:`POST`,headers:i,body:JSON.stringify({customerId:e.customerId,orderId:e.orderId,token:e.token,merchantId:r})})}function Th(e,t){if(!t)return e.request({method:`frak_listenToWalletStatus`}).then(t=>(Eh(e,t),t));let n=new Le,r=!1;return e.listenerRequest({method:`frak_listenToWalletStatus`},i=>{Eh(e,i),t(i),r||=(n.resolve(i),!0)}),n.promise}function Eh(e,t){typeof window>`u`||(e.openPanel?.setGlobalProperties({wallet:t.wallet??null}),t.interactionToken?(window.sessionStorage.setItem(`frak-wallet-interaction-token`,t.interactionToken),dh(t.interactionToken)):window.sessionStorage.removeItem(`frak-wallet-interaction-token`))}function Dh(e,{metadata:t,login:n}){return Oh(e,{steps:{login:n??{}},metadata:t})}function Oh(e,t){function n(n){return Oh(e,{...t,steps:{...t.steps,sendTransaction:n}})}function r(n){return Oh(e,{...t,steps:{...t.steps,final:{...n,action:{key:`reward`}}}})}function i(n,r){return Oh(e,{...t,steps:{...t.steps,final:{...r,action:{key:`sharing`,options:n}}}})}async function a(n,r){return n&&(t.metadata=n(t.metadata??{})),await lh(e,t,r)}return{params:t,sendTx:n,reward:r,sharing:i,display:a}}async function kh(e,{tx:t,metadata:n}){return(await lh(e,{metadata:n,steps:{login:{},sendTransaction:{tx:t}}})).sendTransaction}async function Ah(e,{siwe:t,metadata:n}){let r=e.config?.domain??window.location.host,i=t?.statement??`I confirm that I want to use my Frak wallet on: ${e.config.metadata.name}`;return(await lh(e,{metadata:n,steps:{login:{},siweAuthenticate:{siwe:{...t,statement:i,nonce:t?.nonce??sh(),uri:t?.uri??`https://${r}`,version:t?.version??`1`,domain:r}}}})).siweAuthenticate}let jh=Ym;return oh(ah),e.DEEP_LINK_SCHEME=bm,e.DebugInfoGatherer=Bm,e.FrakContextManager=xt,e.REFERRAL_SUCCESS_EVENT=Sh,e.base64urlDecode=Ke,e.base64urlEncode=Ge,e.baseIframeProps=Am,e.clearAllCache=ut,e.compressJsonToB64=qe,e.computeLegacyProductId=We,e.createIFrameFrakClient=Ym,e.createIFrameNexusClient=jh,e.createIframe=jm,e.decompressJsonFromB64=dt,e.displayEmbeddedWallet=ch,e.displayModal=lh,e.displaySharingPage=uh,e.ensureIdentity=dh,e.findIframeInOpener=Nm,e.formatAmount=Om,e.generateSsoUrl=Je,e.getBackendUrl=nt,e.getCache=lt,e.getClientId=Ue,e.getCurrencyAmountKey=km,e.getMerchantInformation=fh,e.getMergeToken=ph,e.getSupportedCurrency=Em,e.getSupportedLocale=Dm,e.getUserReferralStatus=mh,e.isChromiumAndroid=xm,e.isFrakDeepLink=wm,e.isIOS=Fm,e.isInAppBrowser=Lm,e.isV1Context=ft,e.isV2Context=pt,e.locales=Tm,e.modalBuilder=Dh,e.openSso=Qe,e.prepareSso=hh,e.processReferral=bh,e.redirectToExternalBrowser=Rm,e.referralInteraction=xh,e.sdkConfigStore=T,e.sendInteraction=gh,e.sendTransaction=kh,e.setupClient=Qm,e.setupReferral=Ch,e.siweAuthenticate=Ah,e.ssoPopupFeatures=Xe,e.ssoPopupName=Ze,e.toAndroidIntentUrl=Sm,e.trackEvent=Rt,e.trackPurchaseStatus=wh,e.triggerDeepLinkWithFallback=Cm,e.watchWalletStatus=Th,e.withCache=ct,e})({});
|
|
66
|
+
`.trim()}};let Vm=(()=>{if(typeof navigator>`u`)return!1;let e=navigator.userAgent;if(!(/iPhone|iPad|iPod/i.test(e)||/Macintosh/i.test(e)&&navigator.maxTouchPoints>1))return!1;let t=e.toLowerCase();return t.includes(`instagram`)||t.includes(`fban`)||t.includes(`fbav`)||t.includes(`facebook`)})();function Hm(e){e?localStorage.setItem(ym,e):localStorage.removeItem(ym)}function Um(e,t){try{let n=new URL(e);if(!n.searchParams.has(`u`))return e;let r=Km(window.location.href,t);return n.searchParams.delete(`u`),n.searchParams.append(`u`,r),n.toString()}catch{return e}}function Wm(e){let t=new URL(window.location.href);e&&t.searchParams.set(`fmt`,e);let n=t.protocol===`http:`?`x-safari-http`:`x-safari-https`;window.location.href=`${n}://${t.host}${t.pathname}${t.search}${t.hash}`}function Gm(e){return e.includes(`/common/social`)}function Km(e,t){if(!t)return e;try{let n=new URL(e);return n.searchParams.set(`fmt`,t),n.toString()}catch{return`${e}${e.includes(`?`)?`&`:`?`}fmt=${encodeURIComponent(t)}`}}function qm(e,t,n,r,i){if(i){let e=Um(t,r);window.open(e,`_blank`);return}if(wm(t)){let i=Um(t,r);Cm(i,{onFallback:()=>{e.contentWindow?.postMessage({clientLifecycle:`deep-link-failed`,data:{originalUrl:i}},n)}})}else if(Vm&&Gm(t))Wm(r);else{let e=Um(t,r);window.location.href=e}}function Jm({iframe:e,targetOrigin:t}){let n=new Le;return{handleEvent:r=>{if(!(`iframeLifecycle`in r))return;let{iframeLifecycle:i,data:a}=r;switch(i){case`connected`:n.resolve(!0);break;case`do-backup`:Hm(a.backup);break;case`remove-backup`:localStorage.removeItem(ym);break;case`show`:case`hide`:Mm({iframe:e,isVisible:i===`show`});break;case`redirect`:qm(e,a.baseRedirectUrl,t,a.mergeToken,a.openInNewTab);break}},isConnected:n.promise}}function Ym({config:e,iframe:t}){let n=e?.walletUrl??`https://wallet.frak.id`,r=typeof navigator<`u`?navigator.language?.split(`-`)[0]:void 0,i=e.metadata.lang??(r===`en`||r===`fr`?r:void 0),a=e.domain??(typeof window<`u`?window.location.hostname:``);T.setCacheScope(a,i),T.reset();let o=T.isCacheFresh?void 0:T.resolve(e.domain,e.walletUrl,i),s=Jm({iframe:t,targetOrigin:n}),c=new Le,l=new Bm(e,t);if(!t.contentWindow)throw new Ie(Fe.configError,`The iframe does not have a content window`);let u=Re({emittingTransport:t.contentWindow,listeningTransport:window,targetOrigin:n,middleware:[{async onRequest(e,t){if(!await s.isConnected)throw new Ie(Fe.clientNotConnected,`The iframe provider isn't connected yet`);return await c.promise,t}},{onRequest(e,t){return l.setLastRequest(e),t},onResponse(e,t){return l.setLastResponse(e,t),t}}],lifecycleHandlers:{iframeLifecycle:(e,t)=>{s.handleEvent(e)}}}),d=Xm(u,s),f=async()=>{d(),u.cleanup(),t.remove(),ut(),T.clearCache(),T.reset()},p;console.log(`[Frak SDK] Initializing OpenPanel`),p=new vm({apiUrl:`https://op-api.gcp.frak.id`,clientId:`6eacc8d7-49ac-4936-95e9-81ef29449570`,trackScreenViews:!0,trackOutgoingLinks:!0,trackAttributes:!1,filter:({type:e,payload:t})=>(e!==`track`||!t?.properties||`sdkVersion`in t.properties||(t.properties={...t.properties,sdkVersion:`0.2.1`,userAnonymousClientId:Ue()}),!0)}),p.setGlobalProperties({sdkVersion:`0.2.1`,userAnonymousClientId:Ue()}),p.init();let m=Zm({config:e,rpcClient:u,lifecycleManager:s,configPromise:o,contextSent:c}).then(()=>l.updateSetupStatus(!0)).catch(e=>{throw c.reject(e),e});return{config:e,debugInfo:l,waitForConnection:s.isConnected,waitForSetup:m,request:u.request,listenerRequest:u.listen,destroy:f,openPanel:p}}function Xm(e,t){let n,r,i=()=>e.sendLifecycle({clientLifecycle:`heartbeat`});async function a(){i(),n=setInterval(i,1e3),r=setTimeout(()=>{o(),console.log(`Heartbeat timeout: connection failed`)},3e4),await t.isConnected,o()}function o(){n&&clearInterval(n),r&&clearTimeout(r)}return a(),o}async function Zm({config:e,rpcClient:t,lifecycleManager:n,configPromise:r,contextSent:i}){await n.isConnected,zm(t,n.isConnected);let a=new URL(window.location.href),o=a.searchParams.get(`fmt`)??void 0;o&&(a.searchParams.delete(`fmt`),window.history.replaceState({},``,a.toString()));let s=t=>{let n=t?.merchantId??e.metadata.merchantId??``,r=t?.domain??``,i=t?.allowedDomains??[],a=t?.sdkConfig;T.setConfig(a?{isResolved:!0,merchantId:n,domain:r,allowedDomains:i,hasRawSdkConfig:!0,name:a.name??e.metadata.name,logoUrl:a.logoUrl??e.metadata.logoUrl,homepageLink:a.homepageLink??e.metadata.homepageLink,lang:a.lang??e.metadata.lang,currency:a.currency??e.metadata.currency,hidden:a.hidden,css:a.css,translations:a.translations,placements:a.placements,components:a.components}:{isResolved:!0,merchantId:n,domain:r,allowedDomains:i,name:e.metadata.name,logoUrl:e.metadata.logoUrl,homepageLink:e.metadata.homepageLink,lang:e.metadata.lang,currency:e.metadata.currency})},c=!1,l=e=>{let n=c?void 0:o;c=!0;let r=e.hasRawSdkConfig?{name:e.name,logoUrl:e.logoUrl,homepageLink:e.homepageLink,lang:e.lang,currency:e.currency,hidden:e.hidden,css:e.css,translations:e.translations,placements:e.placements}:void 0;t.sendLifecycle({clientLifecycle:`resolved-config`,data:{merchantId:e.merchantId,domain:e.domain??``,allowedDomains:e.allowedDomains??[],sourceUrl:window.location.href,...n&&{pendingMergeToken:n},...r&&{sdkConfig:r}}})};T.isResolved&&(l(T.getConfig()),i.resolve()),r&&(s(await r),l(T.getConfig()),i.resolve());async function u(){let n=e.customizations?.css;n&&t.sendLifecycle({clientLifecycle:`modal-css`,data:{cssLink:n}})}async function d(){let n=e.customizations?.i18n;n&&t.sendLifecycle({clientLifecycle:`modal-i18n`,data:{i18n:n}})}async function f(){if(typeof window>`u`)return;let e=window.localStorage.getItem(ym);e&&t.sendLifecycle({clientLifecycle:`restore-backup`,data:{backup:e}})}await Promise.allSettled([u(),d(),f()])}async function Qm({config:e}){let t=$m(e),n=await jm({config:t});if(!n){console.error(`Failed to create iframe`);return}let r=Ym({config:t,iframe:n});if(await r.waitForSetup,!await r.waitForConnection){console.error(`Failed to connect to client`);return}return r}function $m(e){let t=Em(e.metadata?.currency);return{...e,metadata:{...e.metadata,currency:t}}}async function eh(e,t,n=`text/javascript`){return document.getElementById(e)?Promise.resolve(!0):new Promise((r,i)=>{let a=document.createElement(`script`);a.id=e,a.src=t,a.defer=!0,a.type=n,a.onload=()=>r(!0),a.onerror=()=>i(Error(`Script load error for ${t}`)),document.head.appendChild(a)})}function th(){nh(),rh()}function nh(){window.FrakSetup.config={walletUrl:`https://wallet.frak.id`,metadata:{name:`Gapianne`,lang:`fr`,currency:`eur`,logoUrl:`https://gapianne.com/cdn/shop/files/logo-gapianne_7a65f4c4-54e8-4831-afa2-0849e4c5f8de.png`,homepageLink:`https://gapianne.com/`},customizations:{i18n:{"sharing.title":`Prêt(e) à révéler un secret bien-être ?`,"sharing.text":`Découvre ce produit chez Gapianne`,"sdk.wallet.login.text":`Créez votre porte-monnaie avec **{{ productName }}** et recevez **{{ estimatedReward }}** par ami(e) parrainé(e)`}},domain:window.location.host},window.FrakSetup.modalWalletConfig={metadata:{position:`left`}}}function rh(){let e=document.querySelectorAll(`#nexus-share-button > button`);for(let t of Array.from(e)){let e=document.createElement(`frak-button-share`);e.setAttribute(`text`,`PARTAGE ET GAGNE {REWARD} !`),e.setAttribute(`no-reward-text`,`PARTAGE ET GAGNE`),e.setAttribute(`use-reward`,`true`),e.setAttribute(`classname`,`button w-full`),t.replaceWith(e)}}let ih={"gapianne.com":th};function ah(){let e=ih[window.location.host];e&&(e(),eh(`frak-components`,`https://cdn.jsdelivr.net/npm/@frak-labs/components@beta/cdn/components.js`,`module`))}function oh(e){document.readyState===`complete`||document.readyState===`interactive`?setTimeout(e,1):document.addEventListener(`DOMContentLoaded`,e)}function sh(){return Me(96)}async function ch(e,t,n){return await e.request({method:`frak_displayEmbeddedWallet`,params:n?[t,e.config.metadata,n]:[t,e.config.metadata]})}async function lh(e,{steps:t,metadata:n},r){return await e.request({method:`frak_displayModal`,params:r?[t,n,e.config.metadata,r]:[t,n,e.config.metadata]})}async function uh(e,t,n){return await e.request({method:`frak_displaySharingPage`,params:n?[t,e.config.metadata,n]:[t,e.config.metadata]})}async function dh(e){if(typeof window>`u`)return;let t=Ue();if(!t)return;let n=await T.resolveMerchantId();if(!n)return;let r=`frak-identity-ensured-${n}`;if(!window.sessionStorage.getItem(r))try{let i=nt();(await fetch(`${i}/user/identity/ensure`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`,"x-wallet-sdk-auth":e,"x-frak-client-id":t},body:JSON.stringify({merchantId:n})})).ok&&window.sessionStorage.setItem(r,`1`)}catch{}}async function fh(e,t){return ct(()=>e.request({method:`frak_getMerchantInformation`}),{cacheKey:`frak_getMerchantInformation`,cacheTime:t?.cacheTime})}async function ph(e,t){return ct(()=>e.request({method:`frak_getMergeToken`}),{cacheKey:`frak_getMergeToken`,cacheTime:t?.cacheTime})}async function mh(e,t){return ct(()=>e.request({method:`frak_getUserReferralStatus`}),{cacheKey:`frak_getUserReferralStatus`,cacheTime:t?.cacheTime})}async function hh(e,t){let{metadata:n,customizations:r}=e.config;return await e.request({method:`frak_prepareSso`,params:[t,n.name,r?.css]})}async function gh(e,t){try{await e.request({method:`frak_sendInteraction`,params:[t,{clientId:Ue()}]})}catch{console.warn(`[Frak SDK] Failed to send interaction:`,t.type)}}function _h(e,t,n){let r=typeof window<`u`?window.location.href:void 0;return pt(t)?(Rt(e,`user_referred_started`,{properties:{referrerClientId:t.c,walletStatus:n?.key}}),gh(e,{type:`arrival`,referrerClientId:t.c,referrerMerchantId:t.m,referralTimestamp:t.t,landingUrl:r}),!0):ft(t)?(Rt(e,`user_referred_started`,{properties:{referrer:t.r,walletStatus:n?.key}}),gh(e,{type:`arrival`,referrerWallet:t.r,landingUrl:r}),!0):!1}function vh(e){let t=Ue();return t?{v:2,c:t,m:e,t:Math.floor(Date.now()/1e3)}:null}function yh(e,t){return pt(e)?Ue()===e.c:ft(e)&&t?.wallet?ke(e.r,t.wallet):!1}function bh(e,{walletStatus:t,frakContext:n,options:r}){if(!n)return`no-referrer`;if(yh(n,t))return`self-referral`;if(!_h(e,n,t))return`no-referrer`;let i=pt(n)?n.m:r?.merchantId,a=r?.alwaysAppendUrl&&i?vh(i):null;return xt.replaceUrl({url:window.location?.href,context:a}),Rt(e,`user_referred_completed`,{properties:{status:`success`}}),`success`}async function xh(e,{options:t}={}){let n=xt.parse({url:window.location.href}),r=await Th(e);try{return bh(e,{walletStatus:r,frakContext:n,options:t})}catch(e){console.warn(`Error processing referral`,{error:e})}}let Sh=`frak:referral-success`;async function Ch(e){try{await xh(e)===`success`&&window.dispatchEvent(new Event(Sh))}catch(e){console.warn(`[Frak] Referral setup failed`,e)}}async function wh(e){if(typeof window>`u`){console.warn(`[Frak] No window found, can't track purchase`);return}let t=window.sessionStorage.getItem(`frak-wallet-interaction-token`),n=Ue();if(!t&&!n){console.warn(`[Frak] No identity found, skipping purchase check`);return}let r=e.merchantId??await T.resolveMerchantId();if(!r){console.warn(`[Frak] No merchant id found, skipping purchase check`);return}let i={Accept:`application/json`,"Content-Type":`application/json`};t&&(i[`x-wallet-sdk-auth`]=t),n&&(i[`x-frak-client-id`]=n);let a=nt();await fetch(`${a}/user/track/purchase`,{method:`POST`,headers:i,body:JSON.stringify({customerId:e.customerId,orderId:e.orderId,token:e.token,merchantId:r})})}function Th(e,t){if(!t)return e.request({method:`frak_listenToWalletStatus`}).then(t=>(Eh(e,t),t));let n=new Le,r=!1;return e.listenerRequest({method:`frak_listenToWalletStatus`},i=>{Eh(e,i),t(i),r||=(n.resolve(i),!0)}),n.promise}function Eh(e,t){typeof window>`u`||(e.openPanel?.setGlobalProperties({wallet:t.wallet??null}),t.interactionToken?(window.sessionStorage.setItem(`frak-wallet-interaction-token`,t.interactionToken),dh(t.interactionToken)):window.sessionStorage.removeItem(`frak-wallet-interaction-token`))}function Dh(e,{metadata:t,login:n}){return Oh(e,{steps:{login:n??{}},metadata:t})}function Oh(e,t){function n(n){return Oh(e,{...t,steps:{...t.steps,sendTransaction:n}})}function r(n){return Oh(e,{...t,steps:{...t.steps,final:{...n,action:{key:`reward`}}}})}function i(n,r){return Oh(e,{...t,steps:{...t.steps,final:{...r,action:{key:`sharing`,options:n}}}})}async function a(n,r){return n&&(t.metadata=n(t.metadata??{})),await lh(e,t,r)}return{params:t,sendTx:n,reward:r,sharing:i,display:a}}async function kh(e,{tx:t,metadata:n}){return(await lh(e,{metadata:n,steps:{login:{},sendTransaction:{tx:t}}})).sendTransaction}async function Ah(e,{siwe:t,metadata:n}){let r=e.config?.domain??window.location.host,i=t?.statement??`I confirm that I want to use my Frak wallet on: ${e.config.metadata.name}`;return(await lh(e,{metadata:n,steps:{login:{},siweAuthenticate:{siwe:{...t,statement:i,nonce:t?.nonce??sh(),uri:t?.uri??`https://${r}`,version:t?.version??`1`,domain:r}}}})).siweAuthenticate}let jh=Ym;return oh(ah),e.DEEP_LINK_SCHEME=bm,e.DebugInfoGatherer=Bm,e.FrakContextManager=xt,e.REFERRAL_SUCCESS_EVENT=Sh,e.base64urlDecode=Ke,e.base64urlEncode=Ge,e.baseIframeProps=Am,e.clearAllCache=ut,e.compressJsonToB64=qe,e.computeLegacyProductId=We,e.createIFrameFrakClient=Ym,e.createIFrameNexusClient=jh,e.createIframe=jm,e.decompressJsonFromB64=dt,e.displayEmbeddedWallet=ch,e.displayModal=lh,e.displaySharingPage=uh,e.ensureIdentity=dh,e.findIframeInOpener=Nm,e.formatAmount=Om,e.generateSsoUrl=Je,e.getBackendUrl=nt,e.getCache=lt,e.getClientId=Ue,e.getCurrencyAmountKey=km,e.getMerchantInformation=fh,e.getMergeToken=ph,e.getSupportedCurrency=Em,e.getSupportedLocale=Dm,e.getUserReferralStatus=mh,e.isChromiumAndroid=xm,e.isFrakDeepLink=wm,e.isIOS=Fm,e.isInAppBrowser=Lm,e.isV1Context=ft,e.isV2Context=pt,e.locales=Tm,e.modalBuilder=Dh,e.openSso=Qe,e.prepareSso=hh,e.processReferral=bh,e.redirectToExternalBrowser=Rm,e.referralInteraction=xh,e.sdkConfigStore=T,e.sendInteraction=gh,e.sendTransaction=kh,e.setupClient=Qm,e.setupReferral=Ch,e.siweAuthenticate=Ah,e.ssoPopupFeatures=Xe,e.ssoPopupName=Ze,e.toAndroidIntentUrl=Sm,e.trackEvent=Rt,e.trackPurchaseStatus=wh,e.triggerDeepLinkWithFallback=Cm,e.watchWalletStatus=Th,e.withCache=ct,e})({});
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"url": "https://twitter.com/QNivelais"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
14
|
-
"version": "0.0.44-beta.
|
|
14
|
+
"version": "0.0.44-beta.5989fbc3",
|
|
15
15
|
"description": "Legacy SDK, only used here to provide nice wrapper and redirection for older implementation, to not break anything and keep them updated with latest security updates.",
|
|
16
16
|
"repository": {
|
|
17
17
|
"url": "https://github.com/frak-id/wallet",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"publish": "echo 'Publishing legacy...'"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@frak-labs/core-sdk": "0.2.1-beta.
|
|
51
|
+
"@frak-labs/core-sdk": "0.2.1-beta.5989fbc3"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@frak-labs/dev-tooling": "0.0.0",
|