@frak-labs/core-sdk 0.2.1-beta.d2556d47 → 0.2.1-beta.eb3cff34

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.
Files changed (60) hide show
  1. package/cdn/bundle.js +3 -55
  2. package/dist/actions-D4aBXbdp.cjs +1 -0
  3. package/dist/actions-Dq_uN-wn.js +1 -0
  4. package/dist/actions.cjs +1 -1
  5. package/dist/actions.d.cts +3 -3
  6. package/dist/actions.d.ts +3 -3
  7. package/dist/actions.js +1 -1
  8. package/dist/bundle.cjs +1 -1
  9. package/dist/bundle.d.cts +4 -4
  10. package/dist/bundle.d.ts +4 -4
  11. package/dist/bundle.js +1 -1
  12. package/dist/{computeLegacyProductId-BP-ciVsp.d.cts → index-BV5D9DsW.d.ts} +71 -3
  13. package/dist/{siweAuthenticate-yITE-iKh.d.cts → index-BphwTmKA.d.cts} +115 -4
  14. package/dist/{computeLegacyProductId-DiJd7RNo.d.ts → index-Dwmo109y.d.cts} +71 -3
  15. package/dist/{siweAuthenticate-CDCsp8EJ.d.ts → index-_f8EuN_1.d.ts} +115 -4
  16. package/dist/index.cjs +1 -1
  17. package/dist/index.d.cts +3 -3
  18. package/dist/index.d.ts +3 -3
  19. package/dist/index.js +1 -1
  20. package/dist/{openSso-B8v3Vtnh.d.ts → openSso-BwEK2M98.d.cts} +174 -7
  21. package/dist/{openSso-n_B4LSuW.d.cts → openSso-C1Wzl5-i.d.ts} +174 -7
  22. package/dist/src-B3Dusips.cjs +13 -0
  23. package/dist/src-CnnhYPyK.js +13 -0
  24. package/dist/trackEvent-BqJqRZ-u.cjs +1 -0
  25. package/dist/trackEvent-Bqq4jd6R.js +1 -0
  26. package/package.json +9 -10
  27. package/src/actions/displaySharingPage.ts +49 -0
  28. package/src/actions/getMerchantInformation.test.ts +13 -1
  29. package/src/actions/getMerchantInformation.ts +20 -5
  30. package/src/actions/getMergeToken.ts +33 -0
  31. package/src/actions/getUserReferralStatus.ts +42 -0
  32. package/src/actions/index.ts +8 -1
  33. package/src/actions/referral/setupReferral.test.ts +79 -0
  34. package/src/actions/referral/setupReferral.ts +32 -0
  35. package/src/clients/createIFrameFrakClient.ts +5 -2
  36. package/src/clients/transports/iframeLifecycleManager.test.ts +14 -14
  37. package/src/clients/transports/iframeLifecycleManager.ts +35 -9
  38. package/src/index.ts +12 -1
  39. package/src/stubs/rrweb.ts +9 -0
  40. package/src/types/index.ts +7 -0
  41. package/src/types/lifecycle/iframe.ts +7 -0
  42. package/src/types/resolvedConfig.ts +26 -2
  43. package/src/types/rpc/displaySharingPage.ts +82 -0
  44. package/src/types/rpc/embedded/index.ts +1 -1
  45. package/src/types/rpc/userReferralStatus.ts +20 -0
  46. package/src/types/rpc.ts +47 -0
  47. package/src/utils/cache/index.ts +7 -0
  48. package/src/utils/cache/lruMap.test.ts +55 -0
  49. package/src/utils/cache/lruMap.ts +38 -0
  50. package/src/utils/cache/withCache.test.ts +168 -0
  51. package/src/utils/cache/withCache.ts +124 -0
  52. package/src/utils/inAppBrowser.ts +60 -0
  53. package/src/utils/index.ts +6 -0
  54. package/src/utils/sdkConfigStore.ts +21 -35
  55. package/dist/setupClient-Dr_UYfTD.cjs +0 -13
  56. package/dist/setupClient-TuhDjVJx.js +0 -13
  57. package/dist/siweAuthenticate-0UPcUqI1.js +0 -1
  58. package/dist/siweAuthenticate-CfQibjZR.cjs +0 -1
  59. package/dist/trackEvent-5j5kkOCj.js +0 -1
  60. package/dist/trackEvent-B2uom25e.cjs +0 -1
@@ -0,0 +1 @@
1
+ const e=require(`./trackEvent-BqJqRZ-u.cjs`);let t=require(`viem`),n=require(`@frak-labs/frame-connector`),r=require(`viem/siwe`);async function i(e,t,n){return await e.request({method:`frak_displayEmbeddedWallet`,params:n?[t,e.config.metadata,n]:[t,e.config.metadata]})}async function a(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 o(e,t,n){return await e.request({method:`frak_displaySharingPage`,params:n?[t,e.config.metadata,n]:[t,e.config.metadata]})}async function s(t){if(typeof window>`u`)return;let n=e.y();if(!n)return;let r=await e.n.resolveMerchantId();if(!r)return;let i=`frak-identity-ensured-${r}`;if(!window.sessionStorage.getItem(i))try{let a=e.u();(await fetch(`${a}/user/identity/ensure`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`,"x-wallet-sdk-auth":t,"x-frak-client-id":n},body:JSON.stringify({merchantId:r})})).ok&&window.sessionStorage.setItem(i,`1`)}catch{}}async function c(t,n){return e.l(()=>t.request({method:`frak_getMerchantInformation`}),{cacheKey:`frak_getMerchantInformation`,cacheTime:n?.cacheTime})}async function l(t,n){return e.l(()=>t.request({method:`frak_getMergeToken`}),{cacheKey:`frak_getMergeToken`,cacheTime:n?.cacheTime})}async function u(t,n){return e.l(()=>t.request({method:`frak_getUserReferralStatus`}),{cacheKey:`frak_getUserReferralStatus`,cacheTime:n?.cacheTime})}async function d(e,t){let{metadata:n,customizations:r}=e.config;return await e.request({method:`frak_prepareSso`,params:[t,n.name,r?.css]})}async function f(t,n){try{await t.request({method:`frak_sendInteraction`,params:[n,{clientId:e.y()}]})}catch{console.warn(`[Frak SDK] Failed to send interaction:`,n.type)}}function p(t,n,r){let i=typeof window<`u`?window.location.href:void 0;return e.a(n)?(e.t(t,`user_referred_started`,{properties:{referrerClientId:n.c,walletStatus:r?.key}}),f(t,{type:`arrival`,referrerClientId:n.c,referrerMerchantId:n.m,referralTimestamp:n.t,landingUrl:i}),!0):e.i(n)?(e.t(t,`user_referred_started`,{properties:{referrer:n.r,walletStatus:r?.key}}),f(t,{type:`arrival`,referrerWallet:n.r,landingUrl:i}),!0):!1}function m(t){let n=e.y();return n?{v:2,c:n,m:t,t:Math.floor(Date.now()/1e3)}:null}function h(n,r){return e.a(n)?e.y()===n.c:e.i(n)&&r?.wallet?(0,t.isAddressEqual)(n.r,r.wallet):!1}function g(t,{walletStatus:n,frakContext:r,options:i}){if(!r)return`no-referrer`;if(h(r,n))return`self-referral`;if(!p(t,r,n))return`no-referrer`;let a=e.a(r)?r.m:i?.merchantId,o=i?.alwaysAppendUrl&&a?m(a):null;return e.r.replaceUrl({url:window.location?.href,context:o}),e.t(t,`user_referred_completed`,{properties:{status:`success`}}),`success`}async function _(t,{options:n}={}){let r=e.r.parse({url:window.location.href}),i=await x(t);try{return g(t,{walletStatus:i,frakContext:r,options:n})}catch(e){console.warn(`Error processing referral`,{error:e})}}const v=`frak:referral-success`;async function y(e){try{await _(e)===`success`&&window.dispatchEvent(new Event(v))}catch(e){console.warn(`[Frak] Referral setup failed`,e)}}async function b(t){if(typeof window>`u`){console.warn(`[Frak] No window found, can't track purchase`);return}let n=window.sessionStorage.getItem(`frak-wallet-interaction-token`),r=e.y();if(!n&&!r){console.warn(`[Frak] No identity found, skipping purchase check`);return}let i=t.merchantId??await e.n.resolveMerchantId();if(!i){console.warn(`[Frak] No merchant id found, skipping purchase check`);return}let a={Accept:`application/json`,"Content-Type":`application/json`};n&&(a[`x-wallet-sdk-auth`]=n),r&&(a[`x-frak-client-id`]=r);let o=e.u();await fetch(`${o}/user/track/purchase`,{method:`POST`,headers:a,body:JSON.stringify({customerId:t.customerId,orderId:t.orderId,token:t.token,merchantId:i})})}function x(e,t){if(!t)return e.request({method:`frak_listenToWalletStatus`}).then(t=>(S(e,t),t));let r=new n.Deferred,i=!1;return e.listenerRequest({method:`frak_listenToWalletStatus`},n=>{S(e,n),t(n),i||=(r.resolve(n),!0)}),r.promise}function S(e,t){typeof window>`u`||(e.openPanel?.setGlobalProperties({wallet:t.wallet??null}),t.interactionToken?(window.sessionStorage.setItem(`frak-wallet-interaction-token`,t.interactionToken),s(t.interactionToken)):window.sessionStorage.removeItem(`frak-wallet-interaction-token`))}function C(e,{metadata:t,login:n}){return w(e,{steps:{login:n??{}},metadata:t})}function w(e,t){function n(n){return w(e,{...t,steps:{...t.steps,sendTransaction:n}})}function r(n){return w(e,{...t,steps:{...t.steps,final:{...n,action:{key:`reward`}}}})}function i(n,r){return w(e,{...t,steps:{...t.steps,final:{...r,action:{key:`sharing`,options:n}}}})}async function o(n,r){return n&&(t.metadata=n(t.metadata??{})),await a(e,t,r)}return{params:t,sendTx:n,reward:r,sharing:i,display:o}}async function T(e,{tx:t,metadata:n}){return(await a(e,{metadata:n,steps:{login:{},sendTransaction:{tx:t}}})).sendTransaction}async function E(e,{siwe:t,metadata:n}){let i=e.config?.domain??window.location.host,o=t?.statement??`I confirm that I want to use my Frak wallet on: ${e.config.metadata.name}`;return(await a(e,{metadata:n,steps:{login:{},siweAuthenticate:{siwe:{...t,statement:o,nonce:t?.nonce??(0,r.generateSiweNonce)(),uri:t?.uri??`https://${i}`,version:t?.version??`1`,domain:i}}}})).siweAuthenticate}Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return i}});
@@ -0,0 +1 @@
1
+ import{a as e,i as t,l as n,n as r,r as i,t as a,u as o,y as s}from"./trackEvent-Bqq4jd6R.js";import{isAddressEqual as c}from"viem";import{Deferred as l}from"@frak-labs/frame-connector";import{generateSiweNonce as u}from"viem/siwe";async function d(e,t,n){return await e.request({method:`frak_displayEmbeddedWallet`,params:n?[t,e.config.metadata,n]:[t,e.config.metadata]})}async function f(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 p(e,t,n){return await e.request({method:`frak_displaySharingPage`,params:n?[t,e.config.metadata,n]:[t,e.config.metadata]})}async function m(e){if(typeof window>`u`)return;let t=s();if(!t)return;let n=await r.resolveMerchantId();if(!n)return;let i=`frak-identity-ensured-${n}`;if(!window.sessionStorage.getItem(i))try{let r=o();(await fetch(`${r}/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(i,`1`)}catch{}}async function h(e,t){return n(()=>e.request({method:`frak_getMerchantInformation`}),{cacheKey:`frak_getMerchantInformation`,cacheTime:t?.cacheTime})}async function g(e,t){return n(()=>e.request({method:`frak_getMergeToken`}),{cacheKey:`frak_getMergeToken`,cacheTime:t?.cacheTime})}async function _(e,t){return n(()=>e.request({method:`frak_getUserReferralStatus`}),{cacheKey:`frak_getUserReferralStatus`,cacheTime:t?.cacheTime})}async function v(e,t){let{metadata:n,customizations:r}=e.config;return await e.request({method:`frak_prepareSso`,params:[t,n.name,r?.css]})}async function y(e,t){try{await e.request({method:`frak_sendInteraction`,params:[t,{clientId:s()}]})}catch{console.warn(`[Frak SDK] Failed to send interaction:`,t.type)}}function b(n,r,i){let o=typeof window<`u`?window.location.href:void 0;return e(r)?(a(n,`user_referred_started`,{properties:{referrerClientId:r.c,walletStatus:i?.key}}),y(n,{type:`arrival`,referrerClientId:r.c,referrerMerchantId:r.m,referralTimestamp:r.t,landingUrl:o}),!0):t(r)?(a(n,`user_referred_started`,{properties:{referrer:r.r,walletStatus:i?.key}}),y(n,{type:`arrival`,referrerWallet:r.r,landingUrl:o}),!0):!1}function x(e){let t=s();return t?{v:2,c:t,m:e,t:Math.floor(Date.now()/1e3)}:null}function S(n,r){return e(n)?s()===n.c:t(n)&&r?.wallet?c(n.r,r.wallet):!1}function C(t,{walletStatus:n,frakContext:r,options:o}){if(!r)return`no-referrer`;if(S(r,n))return`self-referral`;if(!b(t,r,n))return`no-referrer`;let s=e(r)?r.m:o?.merchantId,c=o?.alwaysAppendUrl&&s?x(s):null;return i.replaceUrl({url:window.location?.href,context:c}),a(t,`user_referred_completed`,{properties:{status:`success`}}),`success`}async function w(e,{options:t}={}){let n=i.parse({url:window.location.href}),r=await O(e);try{return C(e,{walletStatus:r,frakContext:n,options:t})}catch(e){console.warn(`Error processing referral`,{error:e})}}const T=`frak:referral-success`;async function E(e){try{await w(e)===`success`&&window.dispatchEvent(new Event(T))}catch(e){console.warn(`[Frak] Referral setup failed`,e)}}async function D(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=s();if(!t&&!n){console.warn(`[Frak] No identity found, skipping purchase check`);return}let i=e.merchantId??await r.resolveMerchantId();if(!i){console.warn(`[Frak] No merchant id found, skipping purchase check`);return}let a={Accept:`application/json`,"Content-Type":`application/json`};t&&(a[`x-wallet-sdk-auth`]=t),n&&(a[`x-frak-client-id`]=n);let c=o();await fetch(`${c}/user/track/purchase`,{method:`POST`,headers:a,body:JSON.stringify({customerId:e.customerId,orderId:e.orderId,token:e.token,merchantId:i})})}function O(e,t){if(!t)return e.request({method:`frak_listenToWalletStatus`}).then(t=>(k(e,t),t));let n=new l,r=!1;return e.listenerRequest({method:`frak_listenToWalletStatus`},i=>{k(e,i),t(i),r||=(n.resolve(i),!0)}),n.promise}function k(e,t){typeof window>`u`||(e.openPanel?.setGlobalProperties({wallet:t.wallet??null}),t.interactionToken?(window.sessionStorage.setItem(`frak-wallet-interaction-token`,t.interactionToken),m(t.interactionToken)):window.sessionStorage.removeItem(`frak-wallet-interaction-token`))}function A(e,{metadata:t,login:n}){return j(e,{steps:{login:n??{}},metadata:t})}function j(e,t){function n(n){return j(e,{...t,steps:{...t.steps,sendTransaction:n}})}function r(n){return j(e,{...t,steps:{...t.steps,final:{...n,action:{key:`reward`}}}})}function i(n,r){return j(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 f(e,t,r)}return{params:t,sendTx:n,reward:r,sharing:i,display:a}}async function M(e,{tx:t,metadata:n}){return(await f(e,{metadata:n,steps:{login:{},sendTransaction:{tx:t}}})).sendTransaction}async function N(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 f(e,{metadata:n,steps:{login:{},siweAuthenticate:{siwe:{...t,statement:i,nonce:t?.nonce??u(),uri:t?.uri??`https://${r}`,version:t?.version??`1`,domain:r}}}})).siweAuthenticate}export{f as _,D as a,w as c,v as d,_ as f,p as g,m as h,O as i,C as l,h as m,M as n,T as o,g as p,A as r,E as s,N as t,y as u,d as v};
package/dist/actions.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./trackEvent-B2uom25e.cjs`),t=require(`./siweAuthenticate-CfQibjZR.cjs`);exports.displayEmbeddedWallet=t.p,exports.displayModal=t.f,exports.ensureIdentity=t.d,exports.getMerchantInformation=t.u,exports.modalBuilder=t.r,exports.openSso=e.c,exports.prepareSso=t.l,exports.processReferral=t.s,exports.referralInteraction=t.o,exports.sendInteraction=t.c,exports.sendTransaction=t.n,exports.siweAuthenticate=t.t,exports.trackPurchaseStatus=t.a,exports.watchWalletStatus=t.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./trackEvent-BqJqRZ-u.cjs`),t=require(`./actions-D4aBXbdp.cjs`);exports.REFERRAL_SUCCESS_EVENT=t.o,exports.displayEmbeddedWallet=t.v,exports.displayModal=t._,exports.displaySharingPage=t.g,exports.ensureIdentity=t.h,exports.getMerchantInformation=t.m,exports.getMergeToken=t.p,exports.getUserReferralStatus=t.f,exports.modalBuilder=t.r,exports.openSso=e.d,exports.prepareSso=t.d,exports.processReferral=t.l,exports.referralInteraction=t.c,exports.sendInteraction=t.u,exports.sendTransaction=t.n,exports.setupReferral=t.s,exports.siweAuthenticate=t.t,exports.trackPurchaseStatus=t.a,exports.watchWalletStatus=t.i;
@@ -1,3 +1,3 @@
1
- import { t as openSso } from "./openSso-n_B4LSuW.cjs";
2
- import { _ as displayModal, a as ModalBuilder, c as watchWalletStatus, d as referralInteraction, f as ProcessReferralOptions, g as ensureIdentity, h as getMerchantInformation, i as sendTransaction, l as trackPurchaseStatus, m as prepareSso, n as siweAuthenticate, o as ModalStepBuilder, p as processReferral, r as SendTransactionParams, s as modalBuilder, t as SiweAuthenticateModalParams, u as sendInteraction, v as displayEmbeddedWallet } from "./siweAuthenticate-yITE-iKh.cjs";
3
- export { type ModalBuilder, type ModalStepBuilder, type ProcessReferralOptions, type SendTransactionParams, type SiweAuthenticateModalParams, displayEmbeddedWallet, displayModal, ensureIdentity, getMerchantInformation, modalBuilder, openSso, prepareSso, processReferral, referralInteraction, sendInteraction, sendTransaction, siweAuthenticate, trackPurchaseStatus, watchWalletStatus };
1
+ import { t as openSso } from "./openSso-BwEK2M98.cjs";
2
+ import { C as displayEmbeddedWallet, S as displayModal, _ as getUserReferralStatus, a as ModalBuilder, b as ensureIdentity, c as watchWalletStatus, d as REFERRAL_SUCCESS_EVENT, f as setupReferral, g as prepareSso, h as processReferral, i as sendTransaction, l as trackPurchaseStatus, m as ProcessReferralOptions, n as siweAuthenticate, o as ModalStepBuilder, p as referralInteraction, r as SendTransactionParams, s as modalBuilder, t as SiweAuthenticateModalParams, u as sendInteraction, v as getMergeToken, x as displaySharingPage, y as getMerchantInformation } from "./index-BphwTmKA.cjs";
3
+ export { ModalBuilder, ModalStepBuilder, ProcessReferralOptions, REFERRAL_SUCCESS_EVENT, SendTransactionParams, SiweAuthenticateModalParams, displayEmbeddedWallet, displayModal, displaySharingPage, ensureIdentity, getMerchantInformation, getMergeToken, getUserReferralStatus, modalBuilder, openSso, prepareSso, processReferral, referralInteraction, sendInteraction, sendTransaction, setupReferral, siweAuthenticate, trackPurchaseStatus, watchWalletStatus };
package/dist/actions.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { t as openSso } from "./openSso-B8v3Vtnh.js";
2
- import { _ as displayModal, a as ModalBuilder, c as watchWalletStatus, d as referralInteraction, f as ProcessReferralOptions, g as ensureIdentity, h as getMerchantInformation, i as sendTransaction, l as trackPurchaseStatus, m as prepareSso, n as siweAuthenticate, o as ModalStepBuilder, p as processReferral, r as SendTransactionParams, s as modalBuilder, t as SiweAuthenticateModalParams, u as sendInteraction, v as displayEmbeddedWallet } from "./siweAuthenticate-CDCsp8EJ.js";
3
- export { type ModalBuilder, type ModalStepBuilder, type ProcessReferralOptions, type SendTransactionParams, type SiweAuthenticateModalParams, displayEmbeddedWallet, displayModal, ensureIdentity, getMerchantInformation, modalBuilder, openSso, prepareSso, processReferral, referralInteraction, sendInteraction, sendTransaction, siweAuthenticate, trackPurchaseStatus, watchWalletStatus };
1
+ import { t as openSso } from "./openSso-C1Wzl5-i.js";
2
+ import { C as displayEmbeddedWallet, S as displayModal, _ as getUserReferralStatus, a as ModalBuilder, b as ensureIdentity, c as watchWalletStatus, d as REFERRAL_SUCCESS_EVENT, f as setupReferral, g as prepareSso, h as processReferral, i as sendTransaction, l as trackPurchaseStatus, m as ProcessReferralOptions, n as siweAuthenticate, o as ModalStepBuilder, p as referralInteraction, r as SendTransactionParams, s as modalBuilder, t as SiweAuthenticateModalParams, u as sendInteraction, v as getMergeToken, x as displaySharingPage, y as getMerchantInformation } from "./index-_f8EuN_1.js";
3
+ export { ModalBuilder, ModalStepBuilder, ProcessReferralOptions, REFERRAL_SUCCESS_EVENT, SendTransactionParams, SiweAuthenticateModalParams, displayEmbeddedWallet, displayModal, displaySharingPage, ensureIdentity, getMerchantInformation, getMergeToken, getUserReferralStatus, modalBuilder, openSso, prepareSso, processReferral, referralInteraction, sendInteraction, sendTransaction, setupReferral, siweAuthenticate, trackPurchaseStatus, watchWalletStatus };
package/dist/actions.js CHANGED
@@ -1 +1 @@
1
- import{c as e}from"./trackEvent-5j5kkOCj.js";import{a as t,c as n,d as r,f as i,i as a,l as o,n as s,o as c,p as l,r as u,s as d,t as f,u as p}from"./siweAuthenticate-0UPcUqI1.js";export{l as displayEmbeddedWallet,i as displayModal,r as ensureIdentity,p as getMerchantInformation,u as modalBuilder,e as openSso,o as prepareSso,d as processReferral,c as referralInteraction,n as sendInteraction,s as sendTransaction,f as siweAuthenticate,t as trackPurchaseStatus,a as watchWalletStatus};
1
+ import{d as e}from"./trackEvent-Bqq4jd6R.js";import{_ as t,a as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v}from"./actions-Dq_uN-wn.js";export{f as REFERRAL_SUCCESS_EVENT,v as displayEmbeddedWallet,t as displayModal,o as displaySharingPage,s as ensureIdentity,u as getMerchantInformation,p as getMergeToken,a as getUserReferralStatus,m as modalBuilder,e as openSso,i as prepareSso,l as processReferral,r as referralInteraction,_ as sendInteraction,d as sendTransaction,h as setupReferral,g as siweAuthenticate,n as trackPurchaseStatus,c as watchWalletStatus};
package/dist/bundle.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./trackEvent-B2uom25e.cjs`),t=require(`./setupClient-Dr_UYfTD.cjs`),n=require(`./siweAuthenticate-CfQibjZR.cjs`);exports.DEEP_LINK_SCHEME=t.g,exports.DebugInfoGatherer=t.r,exports.FrakContextManager=e.r,exports.base64urlDecode=e.p,exports.base64urlEncode=e.m,exports.baseIframeProps=t.i,exports.compressJsonToB64=e.f,exports.computeLegacyProductId=e.h,exports.createIFrameFrakClient=t.n,exports.createIframe=t.a,exports.decompressJsonFromB64=e.o,exports.displayEmbeddedWallet=n.p,exports.displayModal=n.f,exports.ensureIdentity=n.d,exports.findIframeInOpener=t.o,exports.formatAmount=t.c,exports.generateSsoUrl=e.d,exports.getBackendUrl=e.s,exports.getClientId=e.g,exports.getCurrencyAmountKey=t.s,exports.getMerchantInformation=n.u,exports.getSupportedCurrency=t.u,exports.getSupportedLocale=t.l,exports.isChromiumAndroid=t.f,exports.isFrakDeepLink=t.p,exports.isV1Context=e.i,exports.isV2Context=e.a,exports.locales=t.d,exports.modalBuilder=n.r,exports.openSso=e.c,exports.prepareSso=n.l,exports.processReferral=n.s,exports.referralInteraction=n.o,exports.sdkConfigStore=e.n,exports.sendInteraction=n.c,exports.sendTransaction=n.n,exports.setupClient=t.t,exports.siweAuthenticate=n.t,exports.ssoPopupFeatures=e.l,exports.ssoPopupName=e.u,exports.toAndroidIntentUrl=t.m,exports.trackEvent=e.t,exports.trackPurchaseStatus=n.a,exports.triggerDeepLinkWithFallback=t.h,exports.watchWalletStatus=n.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./trackEvent-BqJqRZ-u.cjs`),t=require(`./src-B3Dusips.cjs`),n=require(`./actions-D4aBXbdp.cjs`);exports.DEEP_LINK_SCHEME=t.y,exports.DebugInfoGatherer=t.r,exports.FrakContextManager=e.r,exports.REFERRAL_SUCCESS_EVENT=n.o,exports.base64urlDecode=e.g,exports.base64urlEncode=e._,exports.baseIframeProps=t.s,exports.clearAllCache=e.s,exports.compressJsonToB64=e.h,exports.computeLegacyProductId=e.v,exports.createIFrameFrakClient=t.n,exports.createIframe=t.c,exports.decompressJsonFromB64=e.o,exports.displayEmbeddedWallet=n.v,exports.displayModal=n._,exports.displaySharingPage=n.g,exports.ensureIdentity=n.h,exports.findIframeInOpener=t.l,exports.formatAmount=t.d,exports.generateSsoUrl=e.m,exports.getBackendUrl=e.u,exports.getCache=e.c,exports.getClientId=e.y,exports.getCurrencyAmountKey=t.u,exports.getMerchantInformation=n.m,exports.getMergeToken=n.p,exports.getSupportedCurrency=t.p,exports.getSupportedLocale=t.f,exports.getUserReferralStatus=n.f,exports.isChromiumAndroid=t.h,exports.isFrakDeepLink=t.g,exports.isIOS=t.i,exports.isInAppBrowser=t.a,exports.isV1Context=e.i,exports.isV2Context=e.a,exports.locales=t.m,exports.modalBuilder=n.r,exports.openSso=e.d,exports.prepareSso=n.d,exports.processReferral=n.l,exports.redirectToExternalBrowser=t.o,exports.referralInteraction=n.c,exports.sdkConfigStore=e.n,exports.sendInteraction=n.u,exports.sendTransaction=n.n,exports.setupClient=t.t,exports.setupReferral=n.s,exports.siweAuthenticate=n.t,exports.ssoPopupFeatures=e.f,exports.ssoPopupName=e.p,exports.toAndroidIntentUrl=t._,exports.trackEvent=e.t,exports.trackPurchaseStatus=n.a,exports.triggerDeepLinkWithFallback=t.v,exports.watchWalletStatus=n.i,exports.withCache=e.l;
package/dist/bundle.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as FrakWalletSdkConfig, A as SendTransactionModalStepType, B as PrepareSsoReturnType, C as EmbeddedViewActionSharing, D as ModalRpcStepsInput, E as ModalRpcMetadata, F as SiweAuthenticationParams, G as InteractionTypeKey, H as FinalActionType, I as LoginModalStepType, J as MerchantConfigResponse, K as IFrameLifecycleEvent, L as OpenSsoParamsType, M as SendTransactionTxType, N as SiweAuthenticateModalStepType, O as ModalRpcStepsResultType, P as SiweAuthenticateReturnType, Q as Currency, R as OpenSsoReturnType, S as EmbeddedViewActionReferred, T as DisplayModalParamsType, U as FinalModalStepType, V as SsoMetadata, W as ModalStepMetadata, X as ResolvedSdkConfig, Y as ResolvedPlacement, Z as SdkResolvedConfig, _ as TokenAmountType, a as FrakContextV1, b as DisplayEmbeddedWalletResultType, c as isV2Context, d as IFrameTransport, et as I18nConfig, f as IFrameRpcSchema, g as RewardTier, h as GetMerchantInformationReturnType, i as FrakContext, j as SendTransactionReturnType, k as ModalStepTypes, l as FrakClient, m as EstimatedReward, n as ssoPopupFeatures, nt as LocalizedI18nConfig, o as FrakContextV2, p as WalletStatusReturnType, q as ClientLifecycleEvent, r as ssoPopupName, s as isV1Context, t as openSso, tt as Language, u as FrakLifecycleEvent, v as SendInteractionParamsType, w as LoggedInEmbeddedView, x as LoggedOutEmbeddedView, y as DisplayEmbeddedWalletParamsType, z as PrepareSsoParamsType } from "./openSso-n_B4LSuW.cjs";
2
- import { A as locales, C as decompressJsonFromB64, D as getClientId, E as base64urlEncode, F as TrackArrivalResult, I as UtmParams, L as CompressedData, M as DebugInfoGatherer, N as createIFrameFrakClient, O as getBackendUrl, P as TrackArrivalParams, R as HashProtectedData, S as DEEP_LINK_SCHEME, T as base64urlDecode, _ as DeepLinkFallbackOptions, a as CompressedSsoData, b as toAndroidIntentUrl, c as sdkConfigStore, d as findIframeInOpener, f as getSupportedLocale, g as FrakContextManager, h as formatAmount, i as AppSpecificSsoMetadata, j as setupClient, k as LocalesKey, l as baseIframeProps, m as getCurrencyAmountKey, n as FrakEvent, o as FullSsoParams, p as getSupportedCurrency, r as trackEvent, s as generateSsoUrl, t as computeLegacyProductId, u as createIframe, v as isChromiumAndroid, w as compressJsonToB64, x as triggerDeepLinkWithFallback, y as isFrakDeepLink, z as KeyProvider } from "./computeLegacyProductId-BP-ciVsp.cjs";
3
- import { _ as displayModal, a as ModalBuilder, c as watchWalletStatus, d as referralInteraction, f as ProcessReferralOptions, g as ensureIdentity, h as getMerchantInformation, i as sendTransaction, l as trackPurchaseStatus, m as prepareSso, n as siweAuthenticate, o as ModalStepBuilder, p as processReferral, r as SendTransactionParams, s as modalBuilder, t as SiweAuthenticateModalParams, u as sendInteraction, v as displayEmbeddedWallet } from "./siweAuthenticate-yITE-iKh.cjs";
4
- export { AppSpecificSsoMetadata, ClientLifecycleEvent, CompressedData, CompressedSsoData, Currency, DEEP_LINK_SCHEME, DebugInfoGatherer, DeepLinkFallbackOptions, DisplayEmbeddedWalletParamsType, DisplayEmbeddedWalletResultType, DisplayModalParamsType, EmbeddedViewActionReferred, EmbeddedViewActionSharing, EstimatedReward, FinalActionType, FinalModalStepType, FrakClient, FrakContext, FrakContextManager, FrakContextV1, FrakContextV2, FrakEvent, FrakLifecycleEvent, FrakWalletSdkConfig, FullSsoParams, GetMerchantInformationReturnType, HashProtectedData, I18nConfig, IFrameLifecycleEvent, IFrameRpcSchema, IFrameTransport, InteractionTypeKey, KeyProvider, Language, LocalesKey, LocalizedI18nConfig, LoggedInEmbeddedView, LoggedOutEmbeddedView, LoginModalStepType, MerchantConfigResponse, ModalBuilder, ModalRpcMetadata, ModalRpcStepsInput, ModalRpcStepsResultType, ModalStepBuilder, ModalStepMetadata, ModalStepTypes, OpenSsoParamsType, OpenSsoReturnType, PrepareSsoParamsType, PrepareSsoReturnType, ProcessReferralOptions, ResolvedPlacement, ResolvedSdkConfig, RewardTier, SdkResolvedConfig, SendInteractionParamsType, SendTransactionModalStepType, SendTransactionParams, SendTransactionReturnType, SendTransactionTxType, SiweAuthenticateModalParams, SiweAuthenticateModalStepType, SiweAuthenticateReturnType, SiweAuthenticationParams, SsoMetadata, TokenAmountType, TrackArrivalParams, TrackArrivalResult, UtmParams, WalletStatusReturnType, base64urlDecode, base64urlEncode, baseIframeProps, compressJsonToB64, computeLegacyProductId, createIFrameFrakClient, createIframe, decompressJsonFromB64, displayEmbeddedWallet, displayModal, ensureIdentity, findIframeInOpener, formatAmount, generateSsoUrl, getBackendUrl, getClientId, getCurrencyAmountKey, getMerchantInformation, getSupportedCurrency, getSupportedLocale, isChromiumAndroid, isFrakDeepLink, isV1Context, isV2Context, locales, modalBuilder, openSso, prepareSso, processReferral, referralInteraction, sdkConfigStore, sendInteraction, sendTransaction, setupClient, siweAuthenticate, ssoPopupFeatures, ssoPopupName, toAndroidIntentUrl, trackEvent, trackPurchaseStatus, triggerDeepLinkWithFallback, watchWalletStatus };
1
+ import { $ as ResolvedPlacement, A as ModalRpcMetadata, B as LoginModalStepType, C as EmbeddedViewActionReferred, D as DisplaySharingPageResultType, E as DisplaySharingPageParamsType, F as SendTransactionReturnType, G as SsoMetadata, H as OpenSsoReturnType, I as SendTransactionTxType, J as ModalStepMetadata, K as FinalActionType, L as SiweAuthenticateModalStepType, M as ModalRpcStepsResultType, N as ModalStepTypes, O as SharingPageProduct, P as SendTransactionModalStepType, Q as MerchantConfigResponse, R as SiweAuthenticateReturnType, S as LoggedOutEmbeddedView, T as LoggedInEmbeddedView, U as PrepareSsoParamsType, V as OpenSsoParamsType, W as PrepareSsoReturnType, X as IFrameLifecycleEvent, Y as InteractionTypeKey, Z as ClientLifecycleEvent, _ as RewardTier, a as FrakContextV1, at as Language, b as DisplayEmbeddedWalletParamsType, c as isV2Context, d as IFrameTransport, et as ResolvedSdkConfig, f as IFrameRpcSchema, g as GetMerchantInformationReturnType, h as EstimatedReward, i as FrakContext, it as I18nConfig, j as ModalRpcStepsInput, k as DisplayModalParamsType, l as FrakClient, m as UserReferralStatusType, n as ssoPopupFeatures, nt as Currency, o as FrakContextV2, ot as LocalizedI18nConfig, p as WalletStatusReturnType, q as FinalModalStepType, r as ssoPopupName, rt as FrakWalletSdkConfig, s as isV1Context, t as openSso, tt as SdkResolvedConfig, u as FrakLifecycleEvent, v as TokenAmountType, w as EmbeddedViewActionSharing, x as DisplayEmbeddedWalletResultType, y as SendInteractionParamsType, z as SiweAuthenticationParams } from "./openSso-BwEK2M98.cjs";
2
+ import { A as getClientId, B as TrackArrivalParams, C as toAndroidIntentUrl, D as compressJsonToB64, E as decompressJsonFromB64, F as LocalesKey, G as KeyProvider, H as UtmParams, I as locales, L as setupClient, M as getCache, N as withCache, O as base64urlDecode, P as getBackendUrl, R as DebugInfoGatherer, S as isFrakDeepLink, T as DEEP_LINK_SCHEME, U as CompressedData, V as TrackArrivalResult, W as HashProtectedData, _ as getCurrencyAmountKey, a as CompressedSsoData, b as DeepLinkFallbackOptions, c as sdkConfigStore, d as redirectToExternalBrowser, f as baseIframeProps, g as getSupportedCurrency, h as getSupportedLocale, i as AppSpecificSsoMetadata, j as clearAllCache, k as base64urlEncode, l as isIOS, m as findIframeInOpener, n as FrakEvent, o as FullSsoParams, p as createIframe, r as trackEvent, s as generateSsoUrl, t as computeLegacyProductId, u as isInAppBrowser, v as formatAmount, w as triggerDeepLinkWithFallback, x as isChromiumAndroid, y as FrakContextManager, z as createIFrameFrakClient } from "./index-Dwmo109y.cjs";
3
+ import { C as displayEmbeddedWallet, S as displayModal, _ as getUserReferralStatus, a as ModalBuilder, b as ensureIdentity, c as watchWalletStatus, d as REFERRAL_SUCCESS_EVENT, f as setupReferral, g as prepareSso, h as processReferral, i as sendTransaction, l as trackPurchaseStatus, m as ProcessReferralOptions, n as siweAuthenticate, o as ModalStepBuilder, p as referralInteraction, r as SendTransactionParams, s as modalBuilder, t as SiweAuthenticateModalParams, u as sendInteraction, v as getMergeToken, x as displaySharingPage, y as getMerchantInformation } from "./index-BphwTmKA.cjs";
4
+ export { AppSpecificSsoMetadata, ClientLifecycleEvent, CompressedData, CompressedSsoData, Currency, DEEP_LINK_SCHEME, DebugInfoGatherer, DeepLinkFallbackOptions, DisplayEmbeddedWalletParamsType, DisplayEmbeddedWalletResultType, DisplayModalParamsType, DisplaySharingPageParamsType, DisplaySharingPageResultType, EmbeddedViewActionReferred, EmbeddedViewActionSharing, EstimatedReward, FinalActionType, FinalModalStepType, FrakClient, FrakContext, FrakContextManager, FrakContextV1, FrakContextV2, FrakEvent, FrakLifecycleEvent, FrakWalletSdkConfig, FullSsoParams, GetMerchantInformationReturnType, HashProtectedData, I18nConfig, IFrameLifecycleEvent, IFrameRpcSchema, IFrameTransport, InteractionTypeKey, KeyProvider, Language, LocalesKey, LocalizedI18nConfig, LoggedInEmbeddedView, LoggedOutEmbeddedView, LoginModalStepType, MerchantConfigResponse, ModalBuilder, ModalRpcMetadata, ModalRpcStepsInput, ModalRpcStepsResultType, ModalStepBuilder, ModalStepMetadata, ModalStepTypes, OpenSsoParamsType, OpenSsoReturnType, PrepareSsoParamsType, PrepareSsoReturnType, ProcessReferralOptions, REFERRAL_SUCCESS_EVENT, ResolvedPlacement, ResolvedSdkConfig, RewardTier, SdkResolvedConfig, SendInteractionParamsType, SendTransactionModalStepType, SendTransactionParams, SendTransactionReturnType, SendTransactionTxType, SharingPageProduct, SiweAuthenticateModalParams, SiweAuthenticateModalStepType, SiweAuthenticateReturnType, SiweAuthenticationParams, SsoMetadata, TokenAmountType, TrackArrivalParams, TrackArrivalResult, UserReferralStatusType, UtmParams, WalletStatusReturnType, base64urlDecode, base64urlEncode, baseIframeProps, clearAllCache, compressJsonToB64, computeLegacyProductId, createIFrameFrakClient, createIframe, decompressJsonFromB64, displayEmbeddedWallet, displayModal, displaySharingPage, ensureIdentity, findIframeInOpener, formatAmount, generateSsoUrl, getBackendUrl, getCache, getClientId, getCurrencyAmountKey, getMerchantInformation, getMergeToken, getSupportedCurrency, getSupportedLocale, getUserReferralStatus, isChromiumAndroid, isFrakDeepLink, isIOS, isInAppBrowser, isV1Context, isV2Context, locales, modalBuilder, openSso, prepareSso, processReferral, redirectToExternalBrowser, referralInteraction, sdkConfigStore, sendInteraction, sendTransaction, setupClient, setupReferral, siweAuthenticate, ssoPopupFeatures, ssoPopupName, toAndroidIntentUrl, trackEvent, trackPurchaseStatus, triggerDeepLinkWithFallback, watchWalletStatus, withCache };
package/dist/bundle.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as FrakWalletSdkConfig, A as SendTransactionModalStepType, B as PrepareSsoReturnType, C as EmbeddedViewActionSharing, D as ModalRpcStepsInput, E as ModalRpcMetadata, F as SiweAuthenticationParams, G as InteractionTypeKey, H as FinalActionType, I as LoginModalStepType, J as MerchantConfigResponse, K as IFrameLifecycleEvent, L as OpenSsoParamsType, M as SendTransactionTxType, N as SiweAuthenticateModalStepType, O as ModalRpcStepsResultType, P as SiweAuthenticateReturnType, Q as Currency, R as OpenSsoReturnType, S as EmbeddedViewActionReferred, T as DisplayModalParamsType, U as FinalModalStepType, V as SsoMetadata, W as ModalStepMetadata, X as ResolvedSdkConfig, Y as ResolvedPlacement, Z as SdkResolvedConfig, _ as TokenAmountType, a as FrakContextV1, b as DisplayEmbeddedWalletResultType, c as isV2Context, d as IFrameTransport, et as I18nConfig, f as IFrameRpcSchema, g as RewardTier, h as GetMerchantInformationReturnType, i as FrakContext, j as SendTransactionReturnType, k as ModalStepTypes, l as FrakClient, m as EstimatedReward, n as ssoPopupFeatures, nt as LocalizedI18nConfig, o as FrakContextV2, p as WalletStatusReturnType, q as ClientLifecycleEvent, r as ssoPopupName, s as isV1Context, t as openSso, tt as Language, u as FrakLifecycleEvent, v as SendInteractionParamsType, w as LoggedInEmbeddedView, x as LoggedOutEmbeddedView, y as DisplayEmbeddedWalletParamsType, z as PrepareSsoParamsType } from "./openSso-B8v3Vtnh.js";
2
- import { A as locales, C as decompressJsonFromB64, D as getClientId, E as base64urlEncode, F as TrackArrivalResult, I as UtmParams, L as CompressedData, M as DebugInfoGatherer, N as createIFrameFrakClient, O as getBackendUrl, P as TrackArrivalParams, R as HashProtectedData, S as DEEP_LINK_SCHEME, T as base64urlDecode, _ as DeepLinkFallbackOptions, a as CompressedSsoData, b as toAndroidIntentUrl, c as sdkConfigStore, d as findIframeInOpener, f as getSupportedLocale, g as FrakContextManager, h as formatAmount, i as AppSpecificSsoMetadata, j as setupClient, k as LocalesKey, l as baseIframeProps, m as getCurrencyAmountKey, n as FrakEvent, o as FullSsoParams, p as getSupportedCurrency, r as trackEvent, s as generateSsoUrl, t as computeLegacyProductId, u as createIframe, v as isChromiumAndroid, w as compressJsonToB64, x as triggerDeepLinkWithFallback, y as isFrakDeepLink, z as KeyProvider } from "./computeLegacyProductId-DiJd7RNo.js";
3
- import { _ as displayModal, a as ModalBuilder, c as watchWalletStatus, d as referralInteraction, f as ProcessReferralOptions, g as ensureIdentity, h as getMerchantInformation, i as sendTransaction, l as trackPurchaseStatus, m as prepareSso, n as siweAuthenticate, o as ModalStepBuilder, p as processReferral, r as SendTransactionParams, s as modalBuilder, t as SiweAuthenticateModalParams, u as sendInteraction, v as displayEmbeddedWallet } from "./siweAuthenticate-CDCsp8EJ.js";
4
- export { AppSpecificSsoMetadata, ClientLifecycleEvent, CompressedData, CompressedSsoData, Currency, DEEP_LINK_SCHEME, DebugInfoGatherer, DeepLinkFallbackOptions, DisplayEmbeddedWalletParamsType, DisplayEmbeddedWalletResultType, DisplayModalParamsType, EmbeddedViewActionReferred, EmbeddedViewActionSharing, EstimatedReward, FinalActionType, FinalModalStepType, FrakClient, FrakContext, FrakContextManager, FrakContextV1, FrakContextV2, FrakEvent, FrakLifecycleEvent, FrakWalletSdkConfig, FullSsoParams, GetMerchantInformationReturnType, HashProtectedData, I18nConfig, IFrameLifecycleEvent, IFrameRpcSchema, IFrameTransport, InteractionTypeKey, KeyProvider, Language, LocalesKey, LocalizedI18nConfig, LoggedInEmbeddedView, LoggedOutEmbeddedView, LoginModalStepType, MerchantConfigResponse, ModalBuilder, ModalRpcMetadata, ModalRpcStepsInput, ModalRpcStepsResultType, ModalStepBuilder, ModalStepMetadata, ModalStepTypes, OpenSsoParamsType, OpenSsoReturnType, PrepareSsoParamsType, PrepareSsoReturnType, ProcessReferralOptions, ResolvedPlacement, ResolvedSdkConfig, RewardTier, SdkResolvedConfig, SendInteractionParamsType, SendTransactionModalStepType, SendTransactionParams, SendTransactionReturnType, SendTransactionTxType, SiweAuthenticateModalParams, SiweAuthenticateModalStepType, SiweAuthenticateReturnType, SiweAuthenticationParams, SsoMetadata, TokenAmountType, TrackArrivalParams, TrackArrivalResult, UtmParams, WalletStatusReturnType, base64urlDecode, base64urlEncode, baseIframeProps, compressJsonToB64, computeLegacyProductId, createIFrameFrakClient, createIframe, decompressJsonFromB64, displayEmbeddedWallet, displayModal, ensureIdentity, findIframeInOpener, formatAmount, generateSsoUrl, getBackendUrl, getClientId, getCurrencyAmountKey, getMerchantInformation, getSupportedCurrency, getSupportedLocale, isChromiumAndroid, isFrakDeepLink, isV1Context, isV2Context, locales, modalBuilder, openSso, prepareSso, processReferral, referralInteraction, sdkConfigStore, sendInteraction, sendTransaction, setupClient, siweAuthenticate, ssoPopupFeatures, ssoPopupName, toAndroidIntentUrl, trackEvent, trackPurchaseStatus, triggerDeepLinkWithFallback, watchWalletStatus };
1
+ import { $ as ResolvedPlacement, A as ModalRpcMetadata, B as LoginModalStepType, C as EmbeddedViewActionReferred, D as DisplaySharingPageResultType, E as DisplaySharingPageParamsType, F as SendTransactionReturnType, G as SsoMetadata, H as OpenSsoReturnType, I as SendTransactionTxType, J as ModalStepMetadata, K as FinalActionType, L as SiweAuthenticateModalStepType, M as ModalRpcStepsResultType, N as ModalStepTypes, O as SharingPageProduct, P as SendTransactionModalStepType, Q as MerchantConfigResponse, R as SiweAuthenticateReturnType, S as LoggedOutEmbeddedView, T as LoggedInEmbeddedView, U as PrepareSsoParamsType, V as OpenSsoParamsType, W as PrepareSsoReturnType, X as IFrameLifecycleEvent, Y as InteractionTypeKey, Z as ClientLifecycleEvent, _ as RewardTier, a as FrakContextV1, at as Language, b as DisplayEmbeddedWalletParamsType, c as isV2Context, d as IFrameTransport, et as ResolvedSdkConfig, f as IFrameRpcSchema, g as GetMerchantInformationReturnType, h as EstimatedReward, i as FrakContext, it as I18nConfig, j as ModalRpcStepsInput, k as DisplayModalParamsType, l as FrakClient, m as UserReferralStatusType, n as ssoPopupFeatures, nt as Currency, o as FrakContextV2, ot as LocalizedI18nConfig, p as WalletStatusReturnType, q as FinalModalStepType, r as ssoPopupName, rt as FrakWalletSdkConfig, s as isV1Context, t as openSso, tt as SdkResolvedConfig, u as FrakLifecycleEvent, v as TokenAmountType, w as EmbeddedViewActionSharing, x as DisplayEmbeddedWalletResultType, y as SendInteractionParamsType, z as SiweAuthenticationParams } from "./openSso-C1Wzl5-i.js";
2
+ import { A as getClientId, B as TrackArrivalParams, C as toAndroidIntentUrl, D as compressJsonToB64, E as decompressJsonFromB64, F as LocalesKey, G as KeyProvider, H as UtmParams, I as locales, L as setupClient, M as getCache, N as withCache, O as base64urlDecode, P as getBackendUrl, R as DebugInfoGatherer, S as isFrakDeepLink, T as DEEP_LINK_SCHEME, U as CompressedData, V as TrackArrivalResult, W as HashProtectedData, _ as getCurrencyAmountKey, a as CompressedSsoData, b as DeepLinkFallbackOptions, c as sdkConfigStore, d as redirectToExternalBrowser, f as baseIframeProps, g as getSupportedCurrency, h as getSupportedLocale, i as AppSpecificSsoMetadata, j as clearAllCache, k as base64urlEncode, l as isIOS, m as findIframeInOpener, n as FrakEvent, o as FullSsoParams, p as createIframe, r as trackEvent, s as generateSsoUrl, t as computeLegacyProductId, u as isInAppBrowser, v as formatAmount, w as triggerDeepLinkWithFallback, x as isChromiumAndroid, y as FrakContextManager, z as createIFrameFrakClient } from "./index-BV5D9DsW.js";
3
+ import { C as displayEmbeddedWallet, S as displayModal, _ as getUserReferralStatus, a as ModalBuilder, b as ensureIdentity, c as watchWalletStatus, d as REFERRAL_SUCCESS_EVENT, f as setupReferral, g as prepareSso, h as processReferral, i as sendTransaction, l as trackPurchaseStatus, m as ProcessReferralOptions, n as siweAuthenticate, o as ModalStepBuilder, p as referralInteraction, r as SendTransactionParams, s as modalBuilder, t as SiweAuthenticateModalParams, u as sendInteraction, v as getMergeToken, x as displaySharingPage, y as getMerchantInformation } from "./index-_f8EuN_1.js";
4
+ export { AppSpecificSsoMetadata, ClientLifecycleEvent, CompressedData, CompressedSsoData, Currency, DEEP_LINK_SCHEME, DebugInfoGatherer, DeepLinkFallbackOptions, DisplayEmbeddedWalletParamsType, DisplayEmbeddedWalletResultType, DisplayModalParamsType, DisplaySharingPageParamsType, DisplaySharingPageResultType, EmbeddedViewActionReferred, EmbeddedViewActionSharing, EstimatedReward, FinalActionType, FinalModalStepType, FrakClient, FrakContext, FrakContextManager, FrakContextV1, FrakContextV2, FrakEvent, FrakLifecycleEvent, FrakWalletSdkConfig, FullSsoParams, GetMerchantInformationReturnType, HashProtectedData, I18nConfig, IFrameLifecycleEvent, IFrameRpcSchema, IFrameTransport, InteractionTypeKey, KeyProvider, Language, LocalesKey, LocalizedI18nConfig, LoggedInEmbeddedView, LoggedOutEmbeddedView, LoginModalStepType, MerchantConfigResponse, ModalBuilder, ModalRpcMetadata, ModalRpcStepsInput, ModalRpcStepsResultType, ModalStepBuilder, ModalStepMetadata, ModalStepTypes, OpenSsoParamsType, OpenSsoReturnType, PrepareSsoParamsType, PrepareSsoReturnType, ProcessReferralOptions, REFERRAL_SUCCESS_EVENT, ResolvedPlacement, ResolvedSdkConfig, RewardTier, SdkResolvedConfig, SendInteractionParamsType, SendTransactionModalStepType, SendTransactionParams, SendTransactionReturnType, SendTransactionTxType, SharingPageProduct, SiweAuthenticateModalParams, SiweAuthenticateModalStepType, SiweAuthenticateReturnType, SiweAuthenticationParams, SsoMetadata, TokenAmountType, TrackArrivalParams, TrackArrivalResult, UserReferralStatusType, UtmParams, WalletStatusReturnType, base64urlDecode, base64urlEncode, baseIframeProps, clearAllCache, compressJsonToB64, computeLegacyProductId, createIFrameFrakClient, createIframe, decompressJsonFromB64, displayEmbeddedWallet, displayModal, displaySharingPage, ensureIdentity, findIframeInOpener, formatAmount, generateSsoUrl, getBackendUrl, getCache, getClientId, getCurrencyAmountKey, getMerchantInformation, getMergeToken, getSupportedCurrency, getSupportedLocale, getUserReferralStatus, isChromiumAndroid, isFrakDeepLink, isIOS, isInAppBrowser, isV1Context, isV2Context, locales, modalBuilder, openSso, prepareSso, processReferral, redirectToExternalBrowser, referralInteraction, sdkConfigStore, sendInteraction, sendTransaction, setupClient, setupReferral, siweAuthenticate, ssoPopupFeatures, ssoPopupName, toAndroidIntentUrl, trackEvent, trackPurchaseStatus, triggerDeepLinkWithFallback, watchWalletStatus, withCache };
package/dist/bundle.js CHANGED
@@ -1 +1 @@
1
- import{a as e,c as t,d as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,s as p,t as m,u as h}from"./trackEvent-5j5kkOCj.js";import{a as g,c as _,d as v,f as y,g as b,h as x,i as S,l as C,m as w,n as T,o as E,p as D,r as O,s as k,t as A,u as j}from"./setupClient-TuhDjVJx.js";import{a as M,c as N,d as P,f as F,i as I,l as L,n as R,o as z,p as B,r as V,s as H,t as U,u as W}from"./siweAuthenticate-0UPcUqI1.js";export{b as DEEP_LINK_SCHEME,O as DebugInfoGatherer,f as FrakContextManager,d as base64urlDecode,c as base64urlEncode,S as baseIframeProps,r as compressJsonToB64,a as computeLegacyProductId,T as createIFrameFrakClient,g as createIframe,u as decompressJsonFromB64,B as displayEmbeddedWallet,F as displayModal,P as ensureIdentity,E as findIframeInOpener,_ as formatAmount,n as generateSsoUrl,p as getBackendUrl,i as getClientId,k as getCurrencyAmountKey,W as getMerchantInformation,j as getSupportedCurrency,C as getSupportedLocale,y as isChromiumAndroid,D as isFrakDeepLink,o as isV1Context,e as isV2Context,v as locales,V as modalBuilder,t as openSso,L as prepareSso,H as processReferral,z as referralInteraction,l as sdkConfigStore,N as sendInteraction,R as sendTransaction,A as setupClient,U as siweAuthenticate,s as ssoPopupFeatures,h as ssoPopupName,w as toAndroidIntentUrl,m as trackEvent,M as trackPurchaseStatus,x as triggerDeepLinkWithFallback,I as watchWalletStatus};
1
+ import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as h,u as g,v as _,y as v}from"./trackEvent-Bqq4jd6R.js";import{_ as y,a as b,c as x,d as S,f as C,g as w,h as T,i as E,l as D,m as O,n as k,o as A,p as j,r as M,s as N,t as P,u as F,v as I,y as L}from"./src-CnnhYPyK.js";import{_ as R,a as z,c as B,d as V,f as H,g as U,h as W,i as G,l as K,m as q,n as J,o as Y,p as X,r as Z,s as Q,t as $,u as ee,v as te}from"./actions-Dq_uN-wn.js";export{L as DEEP_LINK_SCHEME,M as DebugInfoGatherer,p as FrakContextManager,Y as REFERRAL_SUCCESS_EVENT,a as base64urlDecode,e as base64urlEncode,N as baseIframeProps,m as clearAllCache,o as compressJsonToB64,_ as computeLegacyProductId,k as createIFrameFrakClient,x as createIframe,d as decompressJsonFromB64,te as displayEmbeddedWallet,R as displayModal,U as displaySharingPage,W as ensureIdentity,D as findIframeInOpener,S as formatAmount,l as generateSsoUrl,g as getBackendUrl,n as getCache,v as getClientId,F as getCurrencyAmountKey,q as getMerchantInformation,X as getMergeToken,j as getSupportedCurrency,C as getSupportedLocale,H as getUserReferralStatus,T as isChromiumAndroid,w as isFrakDeepLink,E as isIOS,b as isInAppBrowser,s as isV1Context,t as isV2Context,O as locales,Z as modalBuilder,r as openSso,V as prepareSso,K as processReferral,A as redirectToExternalBrowser,B as referralInteraction,u as sdkConfigStore,ee as sendInteraction,J as sendTransaction,P as setupClient,Q as setupReferral,$ as siweAuthenticate,i as ssoPopupFeatures,f as ssoPopupName,y as toAndroidIntentUrl,h as trackEvent,z as trackPurchaseStatus,I as triggerDeepLinkWithFallback,G as watchWalletStatus,c as withCache};
@@ -1,6 +1,6 @@
1
- import { $ as FrakWalletSdkConfig, J as MerchantConfigResponse, Q as Currency, V as SsoMetadata, Z as SdkResolvedConfig, _ as TokenAmountType, a as FrakContextV1, i as FrakContext, l as FrakClient, o as FrakContextV2, tt as Language, z as PrepareSsoParamsType } from "./openSso-n_B4LSuW.cjs";
2
- import { RpcMessage, RpcResponse } from "@frak-labs/frame-connector";
1
+ import { G as SsoMetadata, Q as MerchantConfigResponse, U as PrepareSsoParamsType, a as FrakContextV1, at as Language, i as FrakContext, l as FrakClient, nt as Currency, o as FrakContextV2, rt as FrakWalletSdkConfig, tt as SdkResolvedConfig, v as TokenAmountType } from "./openSso-C1Wzl5-i.js";
3
2
  import { Address, Hex } from "viem";
3
+ import { RpcMessage, RpcResponse } from "@frak-labs/frame-connector";
4
4
 
5
5
  //#region src/types/compression.d.ts
6
6
  /**
@@ -143,6 +143,50 @@ declare const locales: {
143
143
  */
144
144
  declare function getBackendUrl(walletUrl?: string): string;
145
145
  //#endregion
146
+ //#region src/utils/cache/withCache.d.ts
147
+ type WithCacheOptions = {
148
+ /** The key to cache the data against */cacheKey: string; /** Time in ms that cached data will remain valid. Default: 30_000 (30s). Set to 0 to disable caching. */
149
+ cacheTime?: number;
150
+ };
151
+ /**
152
+ * Returns the result of a given promise, and caches the result for
153
+ * subsequent invocations against a provided cache key.
154
+ *
155
+ * Also deduplicates concurrent calls — if multiple callers request the same
156
+ * cache key while the promise is pending, they share the same promise.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * // First call fetches, subsequent calls return cached data for 30s
161
+ * const data = await withCache(
162
+ * () => client.request({ method: "frak_getMerchantInformation" }),
163
+ * { cacheKey: "merchantInfo", cacheTime: 30_000 }
164
+ * );
165
+ * ```
166
+ */
167
+ declare function withCache<TData>(fn: () => Promise<TData>, {
168
+ cacheKey,
169
+ cacheTime
170
+ }: WithCacheOptions): Promise<TData>;
171
+ /**
172
+ * Get a cache handle for a specific key, useful for manual invalidation.
173
+ *
174
+ * @example
175
+ * ```ts
176
+ * // Invalidate merchant info cache after a mutation
177
+ * getCache("frak_getMerchantInformation").clear();
178
+ * ```
179
+ */
180
+ declare function getCache(cacheKey: string): {
181
+ /** Clear both the pending promise and the cached response */clear: () => void; /** Check if a non-expired response exists */
182
+ has: (cacheTime?: number) => boolean;
183
+ };
184
+ /**
185
+ * Clear all cached data (both pending promises and resolved responses).
186
+ * Called automatically when the client is destroyed.
187
+ */
188
+ declare function clearAllCache(): void;
189
+ //#endregion
146
190
  //#region src/utils/clientId.d.ts
147
191
  /**
148
192
  * Client ID utilities for anonymous tracking
@@ -415,6 +459,30 @@ declare function createIframe({
415
459
  */
416
460
  declare function findIframeInOpener(pathname?: string): Window | null;
417
461
  //#endregion
462
+ //#region src/utils/inAppBrowser.d.ts
463
+ /**
464
+ * Whether the current device runs iOS (including iPadOS 13+).
465
+ */
466
+ declare const isIOS: boolean;
467
+ /**
468
+ * Whether the current browser is a social media in-app browser
469
+ * (Instagram, Facebook).
470
+ */
471
+ declare const isInAppBrowser: boolean;
472
+ /**
473
+ * Redirect to external browser from in-app WebView.
474
+ *
475
+ * - **iOS**: Uses `x-safari-https://` scheme — server-side 302 redirects
476
+ * to custom URL schemes are silently swallowed by WKWebView.
477
+ * Direct `window.location.href` assignment works (confirmed iOS 17+).
478
+ *
479
+ * - **Android**: Uses backend `/common/social` endpoint which returns a PDF
480
+ * Content-Type response, forcing the WebView to hand off to the default browser.
481
+ *
482
+ * @param targetUrl - The URL to open in the external browser
483
+ */
484
+ declare function redirectToExternalBrowser(targetUrl: string): void;
485
+ //#endregion
418
486
  //#region src/utils/sdkConfigStore.d.ts
419
487
  declare const GLOBAL_KEY = "__frakSdkConfig";
420
488
  declare global {
@@ -520,4 +588,4 @@ declare function computeLegacyProductId({
520
588
  domain?: string;
521
589
  }): `0x${string}`;
522
590
  //#endregion
523
- export { locales as A, decompressJsonFromB64 as C, getClientId as D, base64urlEncode as E, TrackArrivalResult as F, UtmParams as I, CompressedData as L, DebugInfoGatherer as M, createIFrameFrakClient as N, getBackendUrl as O, TrackArrivalParams as P, HashProtectedData as R, DEEP_LINK_SCHEME as S, base64urlDecode as T, DeepLinkFallbackOptions as _, CompressedSsoData as a, toAndroidIntentUrl as b, sdkConfigStore as c, findIframeInOpener as d, getSupportedLocale as f, FrakContextManager as g, formatAmount as h, AppSpecificSsoMetadata as i, setupClient as j, LocalesKey as k, baseIframeProps as l, getCurrencyAmountKey as m, FrakEvent as n, FullSsoParams as o, getSupportedCurrency as p, trackEvent as r, generateSsoUrl as s, computeLegacyProductId as t, createIframe as u, isChromiumAndroid as v, compressJsonToB64 as w, triggerDeepLinkWithFallback as x, isFrakDeepLink as y, KeyProvider as z };
591
+ export { getClientId as A, TrackArrivalParams as B, toAndroidIntentUrl as C, compressJsonToB64 as D, decompressJsonFromB64 as E, LocalesKey as F, KeyProvider as G, UtmParams as H, locales as I, setupClient as L, getCache as M, withCache as N, base64urlDecode as O, getBackendUrl as P, DebugInfoGatherer as R, isFrakDeepLink as S, DEEP_LINK_SCHEME as T, CompressedData as U, TrackArrivalResult as V, HashProtectedData as W, getCurrencyAmountKey as _, CompressedSsoData as a, DeepLinkFallbackOptions as b, sdkConfigStore as c, redirectToExternalBrowser as d, baseIframeProps as f, getSupportedCurrency as g, getSupportedLocale as h, AppSpecificSsoMetadata as i, clearAllCache as j, base64urlEncode as k, isIOS as l, findIframeInOpener as m, FrakEvent as n, FullSsoParams as o, createIframe as p, trackEvent as r, generateSsoUrl as s, computeLegacyProductId as t, isInAppBrowser as u, formatAmount as v, triggerDeepLinkWithFallback as w, isChromiumAndroid as x, FrakContextManager as y, createIFrameFrakClient as z };
@@ -1,4 +1,4 @@
1
- import { A as SendTransactionModalStepType, B as PrepareSsoReturnType, E as ModalRpcMetadata, F as SiweAuthenticationParams, H as FinalActionType, I as LoginModalStepType, O as ModalRpcStepsResultType, P as SiweAuthenticateReturnType, T as DisplayModalParamsType, U as FinalModalStepType, b as DisplayEmbeddedWalletResultType, h as GetMerchantInformationReturnType, i as FrakContext, j as SendTransactionReturnType, k as ModalStepTypes, l as FrakClient, p as WalletStatusReturnType, v as SendInteractionParamsType, y as DisplayEmbeddedWalletParamsType, z as PrepareSsoParamsType } from "./openSso-n_B4LSuW.cjs";
1
+ import { A as ModalRpcMetadata, B as LoginModalStepType, D as DisplaySharingPageResultType, E as DisplaySharingPageParamsType, F as SendTransactionReturnType, K as FinalActionType, M as ModalRpcStepsResultType, N as ModalStepTypes, P as SendTransactionModalStepType, R as SiweAuthenticateReturnType, U as PrepareSsoParamsType, W as PrepareSsoReturnType, b as DisplayEmbeddedWalletParamsType, g as GetMerchantInformationReturnType, i as FrakContext, k as DisplayModalParamsType, l as FrakClient, m as UserReferralStatusType, p as WalletStatusReturnType, q as FinalModalStepType, x as DisplayEmbeddedWalletResultType, y as SendInteractionParamsType, z as SiweAuthenticationParams } from "./openSso-BwEK2M98.cjs";
2
2
 
3
3
  //#region src/actions/displayEmbeddedWallet.d.ts
4
4
  /**
@@ -119,6 +119,40 @@ declare function displayModal<T extends ModalStepTypes[] = ModalStepTypes[]>(cli
119
119
  metadata
120
120
  }: DisplayModalParamsType<T>, placement?: string): Promise<ModalRpcStepsResultType<T>>;
121
121
  //#endregion
122
+ //#region src/actions/displaySharingPage.d.ts
123
+ /**
124
+ * Function used to display a sharing page
125
+ * @param client - The current Frak Client
126
+ * @param params - The parameters to customize the sharing page (products, link override, metadata)
127
+ * @param placement - Optional placement ID to associate with this display request
128
+ * @returns The result indicating the user's action (shared, copied, or dismissed)
129
+ *
130
+ * @description This function will display a full-page sharing UI to the user,
131
+ * showing product info, estimated rewards, sharing steps, FAQ, and share/copy buttons.
132
+ * The sharing link is generated from the user's wallet context + merchant info.
133
+ *
134
+ * @remarks
135
+ * - The promise resolves on the first user action (share or copy) but the page stays visible
136
+ * - The user can continue to share/copy multiple times after the initial resolution
137
+ * - Dismissing the page after a share/copy action is a no-op (promise already resolved)
138
+ * - If the user dismisses without any action, the promise resolves with `{ action: "dismissed" }`
139
+ *
140
+ * @example
141
+ * ```ts
142
+ * const result = await displaySharingPage(frakClient, {
143
+ * products: [
144
+ * {
145
+ * title: "Babies camel cuir velours bout carré",
146
+ * imageUrl: "https://example.com/product.jpg",
147
+ * },
148
+ * ],
149
+ * });
150
+ *
151
+ * console.log("User action:", result.action); // "shared" | "copied" | "dismissed"
152
+ * ```
153
+ */
154
+ declare function displaySharingPage(client: FrakClient, params: DisplaySharingPageParamsType, placement?: string): Promise<DisplaySharingPageResultType>;
155
+ //#endregion
122
156
  //#region src/actions/ensureIdentity.d.ts
123
157
  /**
124
158
  * Ensure the current wallet ↔ clientId link exists on the backend.
@@ -146,13 +180,70 @@ declare function ensureIdentity(interactionToken: string): Promise<void>;
146
180
  //#endregion
147
181
  //#region src/actions/getMerchantInformation.d.ts
148
182
  /**
149
- * Fetch the current merchant information (name, rewards, tiers) from the wallet iframe
183
+ * Fetch the current merchant information (name, rewards, tiers) from the wallet iframe.
184
+ *
185
+ * Results are cached in memory for 30 seconds by default. Concurrent calls
186
+ * while a request is in-flight are deduplicated automatically.
187
+ *
150
188
  * @param client - The current Frak Client
189
+ * @param options - Optional cache configuration
190
+ * @param options.cacheTime - Time in ms to cache the result. Default: 30_000 (30s). Set to 0 to disable.
151
191
  * @returns The merchant information including available reward tiers
152
192
  *
153
193
  * @see {@link @frak-labs/core-sdk!index.GetMerchantInformationReturnType | `GetMerchantInformationReturnType`} for the return type shape
154
194
  */
155
- declare function getMerchantInformation(client: FrakClient): Promise<GetMerchantInformationReturnType>;
195
+ declare function getMerchantInformation(client: FrakClient, options?: {
196
+ cacheTime?: number;
197
+ }): Promise<GetMerchantInformationReturnType>;
198
+ //#endregion
199
+ //#region src/actions/getMergeToken.d.ts
200
+ /**
201
+ * Fetch a merge token for the current anonymous identity.
202
+ *
203
+ * Used by in-app browser redirect flows to preserve identity
204
+ * when switching from a WebView to the system browser.
205
+ * The token is appended as `?fmt=` to the redirect URL.
206
+ *
207
+ * Results are cached in memory for 30 seconds by default. Concurrent calls
208
+ * while a request is in-flight are deduplicated automatically.
209
+ *
210
+ * @param client - The current Frak Client
211
+ * @param options - Optional cache configuration
212
+ * @param options.cacheTime - Time in ms to cache the result. Default: 30_000 (30s). Set to 0 to disable.
213
+ * @returns The merge token string, or null if unavailable
214
+ */
215
+ declare function getMergeToken(client: FrakClient, options?: {
216
+ cacheTime?: number;
217
+ }): Promise<string | null>;
218
+ //#endregion
219
+ //#region src/actions/getUserReferralStatus.d.ts
220
+ /**
221
+ * Fetch the current user's referral status on the current merchant.
222
+ *
223
+ * The listener resolves the user's identity (via clientId or wallet session)
224
+ * and checks whether a referral link exists where the user is the referee.
225
+ *
226
+ * Results are cached in memory for 30 seconds by default. Concurrent calls
227
+ * while a request is in-flight are deduplicated automatically.
228
+ *
229
+ * Returns `null` when the user's identity cannot be resolved.
230
+ *
231
+ * @param client - The current Frak Client
232
+ * @param options - Optional cache configuration
233
+ * @param options.cacheTime - Time in ms to cache the result. Default: 30_000 (30s). Set to 0 to disable.
234
+ * @returns The user's referral status, or `null` if identity cannot be resolved
235
+ *
236
+ * @example
237
+ * ```ts
238
+ * const status = await getUserReferralStatus(client);
239
+ * if (status?.isReferred) {
240
+ * console.log("User was referred to this merchant");
241
+ * }
242
+ * ```
243
+ */
244
+ declare function getUserReferralStatus(client: FrakClient, options?: {
245
+ cacheTime?: number;
246
+ }): Promise<UserReferralStatusType | null>;
156
247
  //#endregion
157
248
  //#region src/actions/prepareSso.d.ts
158
249
  /**
@@ -258,6 +349,26 @@ declare function referralInteraction(client: FrakClient, {
258
349
  options?: ProcessReferralOptions;
259
350
  }): Promise<("idle" | "processing" | "success" | "no-referrer" | "self-referral") | undefined>;
260
351
  //#endregion
352
+ //#region src/actions/referral/setupReferral.d.ts
353
+ /**
354
+ * Custom event name dispatched on successful referral processing.
355
+ *
356
+ * Fired once per page load when a valid referral context is found in the URL
357
+ * and successfully tracked. Consumers (e.g. `<frak-banner>`) listen for this
358
+ * to display a referral success message.
359
+ */
360
+ declare const REFERRAL_SUCCESS_EVENT = "frak:referral-success";
361
+ /**
362
+ * Process referral context and emit a DOM event on success.
363
+ *
364
+ * - Calls {@link referralInteraction} to detect and track any referral in the URL
365
+ * - On `"success"`, dispatches a bare {@link REFERRAL_SUCCESS_EVENT} on `window`
366
+ * - Silently swallows errors (fire-and-forget during SDK init)
367
+ *
368
+ * @param client - The initialized Frak client
369
+ */
370
+ declare function setupReferral(client: FrakClient): Promise<void>;
371
+ //#endregion
261
372
  //#region src/actions/sendInteraction.d.ts
262
373
  /**
263
374
  * Send an interaction to the backend via the listener RPC.
@@ -532,4 +643,4 @@ declare function siweAuthenticate(client: FrakClient, {
532
643
  metadata
533
644
  }: SiweAuthenticateModalParams): Promise<SiweAuthenticateReturnType>;
534
645
  //#endregion
535
- export { displayModal as _, ModalBuilder as a, watchWalletStatus as c, referralInteraction as d, ProcessReferralOptions as f, ensureIdentity as g, getMerchantInformation as h, sendTransaction as i, trackPurchaseStatus as l, prepareSso as m, siweAuthenticate as n, ModalStepBuilder as o, processReferral as p, SendTransactionParams as r, modalBuilder as s, SiweAuthenticateModalParams as t, sendInteraction as u, displayEmbeddedWallet as v };
646
+ export { displayEmbeddedWallet as C, displayModal as S, getUserReferralStatus as _, ModalBuilder as a, ensureIdentity as b, watchWalletStatus as c, REFERRAL_SUCCESS_EVENT as d, setupReferral as f, prepareSso as g, processReferral as h, sendTransaction as i, trackPurchaseStatus as l, ProcessReferralOptions as m, siweAuthenticate as n, ModalStepBuilder as o, referralInteraction as p, SendTransactionParams as r, modalBuilder as s, SiweAuthenticateModalParams as t, sendInteraction as u, getMergeToken as v, displaySharingPage as x, getMerchantInformation as y };
@@ -1,6 +1,6 @@
1
- import { $ as FrakWalletSdkConfig, J as MerchantConfigResponse, Q as Currency, V as SsoMetadata, Z as SdkResolvedConfig, _ as TokenAmountType, a as FrakContextV1, i as FrakContext, l as FrakClient, o as FrakContextV2, tt as Language, z as PrepareSsoParamsType } from "./openSso-B8v3Vtnh.js";
2
- import { Address, Hex } from "viem";
1
+ import { G as SsoMetadata, Q as MerchantConfigResponse, U as PrepareSsoParamsType, a as FrakContextV1, at as Language, i as FrakContext, l as FrakClient, nt as Currency, o as FrakContextV2, rt as FrakWalletSdkConfig, tt as SdkResolvedConfig, v as TokenAmountType } from "./openSso-BwEK2M98.cjs";
3
2
  import { RpcMessage, RpcResponse } from "@frak-labs/frame-connector";
3
+ import { Address, Hex } from "viem";
4
4
 
5
5
  //#region src/types/compression.d.ts
6
6
  /**
@@ -143,6 +143,50 @@ declare const locales: {
143
143
  */
144
144
  declare function getBackendUrl(walletUrl?: string): string;
145
145
  //#endregion
146
+ //#region src/utils/cache/withCache.d.ts
147
+ type WithCacheOptions = {
148
+ /** The key to cache the data against */cacheKey: string; /** Time in ms that cached data will remain valid. Default: 30_000 (30s). Set to 0 to disable caching. */
149
+ cacheTime?: number;
150
+ };
151
+ /**
152
+ * Returns the result of a given promise, and caches the result for
153
+ * subsequent invocations against a provided cache key.
154
+ *
155
+ * Also deduplicates concurrent calls — if multiple callers request the same
156
+ * cache key while the promise is pending, they share the same promise.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * // First call fetches, subsequent calls return cached data for 30s
161
+ * const data = await withCache(
162
+ * () => client.request({ method: "frak_getMerchantInformation" }),
163
+ * { cacheKey: "merchantInfo", cacheTime: 30_000 }
164
+ * );
165
+ * ```
166
+ */
167
+ declare function withCache<TData>(fn: () => Promise<TData>, {
168
+ cacheKey,
169
+ cacheTime
170
+ }: WithCacheOptions): Promise<TData>;
171
+ /**
172
+ * Get a cache handle for a specific key, useful for manual invalidation.
173
+ *
174
+ * @example
175
+ * ```ts
176
+ * // Invalidate merchant info cache after a mutation
177
+ * getCache("frak_getMerchantInformation").clear();
178
+ * ```
179
+ */
180
+ declare function getCache(cacheKey: string): {
181
+ /** Clear both the pending promise and the cached response */clear: () => void; /** Check if a non-expired response exists */
182
+ has: (cacheTime?: number) => boolean;
183
+ };
184
+ /**
185
+ * Clear all cached data (both pending promises and resolved responses).
186
+ * Called automatically when the client is destroyed.
187
+ */
188
+ declare function clearAllCache(): void;
189
+ //#endregion
146
190
  //#region src/utils/clientId.d.ts
147
191
  /**
148
192
  * Client ID utilities for anonymous tracking
@@ -415,6 +459,30 @@ declare function createIframe({
415
459
  */
416
460
  declare function findIframeInOpener(pathname?: string): Window | null;
417
461
  //#endregion
462
+ //#region src/utils/inAppBrowser.d.ts
463
+ /**
464
+ * Whether the current device runs iOS (including iPadOS 13+).
465
+ */
466
+ declare const isIOS: boolean;
467
+ /**
468
+ * Whether the current browser is a social media in-app browser
469
+ * (Instagram, Facebook).
470
+ */
471
+ declare const isInAppBrowser: boolean;
472
+ /**
473
+ * Redirect to external browser from in-app WebView.
474
+ *
475
+ * - **iOS**: Uses `x-safari-https://` scheme — server-side 302 redirects
476
+ * to custom URL schemes are silently swallowed by WKWebView.
477
+ * Direct `window.location.href` assignment works (confirmed iOS 17+).
478
+ *
479
+ * - **Android**: Uses backend `/common/social` endpoint which returns a PDF
480
+ * Content-Type response, forcing the WebView to hand off to the default browser.
481
+ *
482
+ * @param targetUrl - The URL to open in the external browser
483
+ */
484
+ declare function redirectToExternalBrowser(targetUrl: string): void;
485
+ //#endregion
418
486
  //#region src/utils/sdkConfigStore.d.ts
419
487
  declare const GLOBAL_KEY = "__frakSdkConfig";
420
488
  declare global {
@@ -520,4 +588,4 @@ declare function computeLegacyProductId({
520
588
  domain?: string;
521
589
  }): `0x${string}`;
522
590
  //#endregion
523
- export { locales as A, decompressJsonFromB64 as C, getClientId as D, base64urlEncode as E, TrackArrivalResult as F, UtmParams as I, CompressedData as L, DebugInfoGatherer as M, createIFrameFrakClient as N, getBackendUrl as O, TrackArrivalParams as P, HashProtectedData as R, DEEP_LINK_SCHEME as S, base64urlDecode as T, DeepLinkFallbackOptions as _, CompressedSsoData as a, toAndroidIntentUrl as b, sdkConfigStore as c, findIframeInOpener as d, getSupportedLocale as f, FrakContextManager as g, formatAmount as h, AppSpecificSsoMetadata as i, setupClient as j, LocalesKey as k, baseIframeProps as l, getCurrencyAmountKey as m, FrakEvent as n, FullSsoParams as o, getSupportedCurrency as p, trackEvent as r, generateSsoUrl as s, computeLegacyProductId as t, createIframe as u, isChromiumAndroid as v, compressJsonToB64 as w, triggerDeepLinkWithFallback as x, isFrakDeepLink as y, KeyProvider as z };
591
+ export { getClientId as A, TrackArrivalParams as B, toAndroidIntentUrl as C, compressJsonToB64 as D, decompressJsonFromB64 as E, LocalesKey as F, KeyProvider as G, UtmParams as H, locales as I, setupClient as L, getCache as M, withCache as N, base64urlDecode as O, getBackendUrl as P, DebugInfoGatherer as R, isFrakDeepLink as S, DEEP_LINK_SCHEME as T, CompressedData as U, TrackArrivalResult as V, HashProtectedData as W, getCurrencyAmountKey as _, CompressedSsoData as a, DeepLinkFallbackOptions as b, sdkConfigStore as c, redirectToExternalBrowser as d, baseIframeProps as f, getSupportedCurrency as g, getSupportedLocale as h, AppSpecificSsoMetadata as i, clearAllCache as j, base64urlEncode as k, isIOS as l, findIframeInOpener as m, FrakEvent as n, FullSsoParams as o, createIframe as p, trackEvent as r, generateSsoUrl as s, computeLegacyProductId as t, isInAppBrowser as u, formatAmount as v, triggerDeepLinkWithFallback as w, isChromiumAndroid as x, FrakContextManager as y, createIFrameFrakClient as z };