@frak-labs/react-sdk 0.0.15 → 0.0.16

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/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,t)=>{for(var a in t)__webpack_require__.o(t,a)&&!__webpack_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{FrakIFrameClientProvider:()=>FrakIFrameClientProvider,useFrakClient:()=>useFrakClient,useFrakConfig:()=>useFrakConfig,FrakConfigContext:()=>FrakConfigContext,FrakConfigProvider:()=>FrakConfigProvider,useDisplayModal:()=>useDisplayModal,useGetProductInformation:()=>useGetProductInformation,useOpenSso:()=>useOpenSso,FrakIFrameClientContext:()=>FrakIFrameClientContext,useSendTransactionAction:()=>useSendTransactionAction,useReferralInteraction:()=>useReferralInteraction,useSendInteraction:()=>useSendInteraction,useSiweAuthenticate:()=>useSiweAuthenticate,useWalletStatus:()=>useWalletStatus});let core_sdk_namespaceObject=require("@frak-labs/core-sdk"),external_react_namespaceObject=require("react"),FrakConfigContext=(0,external_react_namespaceObject.createContext)(void 0);function FrakConfigProvider(e){let{children:t,config:a}=e;return(0,external_react_namespaceObject.createElement)(FrakConfigContext.Provider,{value:{...a,walletUrl:a.walletUrl??"https://wallet.frak.id",domain:a.domain??("undefined"!=typeof window?window?.location?.host:void 0)??"not-found"}},t)}function useFrakConfig(){let e=(0,external_react_namespaceObject.useContext)(FrakConfigContext);if(!e)throw new core_sdk_namespaceObject.FrakRpcError(core_sdk_namespaceObject.RpcErrorCodes.configError,"Frak config not found");return e}let FrakIFrameClientContext=(0,external_react_namespaceObject.createContext)(void 0);function FrakIFrameClientProvider({style:e,children:t}){let a=useFrakConfig(),[r,n]=(0,external_react_namespaceObject.useState)(void 0),o=(0,external_react_namespaceObject.createElement)("iframe",{...core_sdk_namespaceObject.baseIframeProps,src:`${a.walletUrl}/listener`,style:e??core_sdk_namespaceObject.baseIframeProps.style,ref:e=>{e&&!r&&n((0,core_sdk_namespaceObject.createIFrameFrakClient)({iframe:e,config:a}))}}),c=(0,external_react_namespaceObject.createElement)(FrakIFrameClientContext.Provider,{value:r},t);return(0,external_react_namespaceObject.createElement)(external_react_namespaceObject.Fragment,null,o,c)}let actions_namespaceObject=require("@frak-labs/core-sdk/actions"),react_query_namespaceObject=require("@tanstack/react-query");function useFrakClient(){return(0,external_react_namespaceObject.useContext)(FrakIFrameClientContext)}function useWalletStatus(){let e=(0,react_query_namespaceObject.useQueryClient)(),t=useFrakClient(),a=(0,external_react_namespaceObject.useCallback)(t=>{e.setQueryData(["frak-sdk","wallet-status-listener"],t)},[e]);return(0,react_query_namespaceObject.useQuery)({gcTime:0,staleTime:0,queryKey:["frak-sdk","wallet-status-listener"],queryFn:async()=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.watchWalletStatus)(t,a)},enabled:!!t})}function useMounted(){let[e,t]=(0,external_react_namespaceObject.useState)(!1);return(0,external_react_namespaceObject.useEffect)(()=>{t(!0)},[]),e}function useWindowLocation(){let e=useMounted(),[t,a]=(0,external_react_namespaceObject.useState)(e?window.location:void 0);(0,external_react_namespaceObject.useEffect)(()=>{if(e)return t||r(),window.addEventListener("popstate",r),()=>{window.removeEventListener("popstate",r)};function r(){a(window.location)}},[e,t]);let r=(0,external_react_namespaceObject.useMemo)(()=>t?.href,[t?.href]);return{location:t,href:r}}function useFrakContext(){let{location:e}=useWindowLocation();return{frakContext:(0,external_react_namespaceObject.useMemo)(()=>e?.href?core_sdk_namespaceObject.FrakContextManager.parse({url:e.href}):null,[e?.href]),updateContext:(0,external_react_namespaceObject.useCallback)(t=>{console.log("Updating context",{newContext:t}),core_sdk_namespaceObject.FrakContextManager.replaceUrl({url:e?.href,context:t})},[e?.href])}}function useReferralInteraction({productId:e,modalConfig:t,options:a}={}){let r=useFrakClient(),{frakContext:n}=useFrakContext(),{data:o}=useWalletStatus(),{data:c,error:s,status:_}=(0,react_query_namespaceObject.useQuery)({gcTime:0,staleTime:0,queryKey:["frak-sdk","auto-referral-interaction",n?.r??"no-referrer",o?.key??"no-wallet-status",e??"no-product-id"],queryFn:()=>{if(!r)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.processReferral)(r,{walletStatus:o,frakContext:n,modalConfig:t,productId:e,options:a})},enabled:!!o});return(0,external_react_namespaceObject.useMemo)(()=>"pending"===_?"processing":"error"===_?s:c||"idle",[c,_,s])}function useGetProductInformation({query:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useQuery)({...e,queryKey:["frak-sdk","get-product-information"],queryFn:async()=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.getProductInformation)(t)}})}function useSiweAuthenticate({mutations:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useMutation)({...e,mutationKey:["frak-sdk","siwe-authenticate",t?.config.domain??"no-domain"],mutationFn:async e=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.siweAuthenticate)(t,e)}})}function useOpenSso({mutations:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useMutation)({...e,mutationKey:["frak-sdk","open-sso"],mutationFn:async e=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.openSso)(t,e)}})}function useSendInteraction({mutations:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useMutation)({...e,mutationKey:["frak-sdk","send-interaction"],mutationFn:async e=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.sendInteraction)(t,e)}})}function useDisplayModal({mutations:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useMutation)({...e,mutationKey:["frak-sdk","display-modal"],mutationFn:async e=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.displayModal)(t,e)}})}function useSendTransactionAction({mutations:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useMutation)({...e,mutationKey:["frak-sdk","send-transaction"],mutationFn:async e=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.sendTransaction)(t,e)}})}for(var __webpack_i__ in exports.FrakConfigContext=__webpack_exports__.FrakConfigContext,exports.FrakConfigProvider=__webpack_exports__.FrakConfigProvider,exports.FrakIFrameClientContext=__webpack_exports__.FrakIFrameClientContext,exports.FrakIFrameClientProvider=__webpack_exports__.FrakIFrameClientProvider,exports.useDisplayModal=__webpack_exports__.useDisplayModal,exports.useFrakClient=__webpack_exports__.useFrakClient,exports.useFrakConfig=__webpack_exports__.useFrakConfig,exports.useGetProductInformation=__webpack_exports__.useGetProductInformation,exports.useOpenSso=__webpack_exports__.useOpenSso,exports.useReferralInteraction=__webpack_exports__.useReferralInteraction,exports.useSendInteraction=__webpack_exports__.useSendInteraction,exports.useSendTransactionAction=__webpack_exports__.useSendTransactionAction,exports.useSiweAuthenticate=__webpack_exports__.useSiweAuthenticate,exports.useWalletStatus=__webpack_exports__.useWalletStatus,__webpack_exports__)-1===["FrakConfigContext","FrakConfigProvider","FrakIFrameClientContext","FrakIFrameClientProvider","useDisplayModal","useFrakClient","useFrakConfig","useGetProductInformation","useOpenSso","useReferralInteraction","useSendInteraction","useSendTransactionAction","useSiweAuthenticate","useWalletStatus"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";let __rslib_import_meta_url__="undefined"==typeof document?new(require("url".replace("",""))).URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href;var __webpack_require__={};__webpack_require__.d=(e,t)=>{for(var a in t)__webpack_require__.o(t,a)&&!__webpack_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var __webpack_exports__={};__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{FrakIFrameClientProvider:()=>FrakIFrameClientProvider,useFrakClient:()=>useFrakClient,useFrakConfig:()=>useFrakConfig,FrakConfigContext:()=>FrakConfigContext,FrakConfigProvider:()=>FrakConfigProvider,useDisplayModal:()=>useDisplayModal,useGetProductInformation:()=>useGetProductInformation,useOpenSso:()=>useOpenSso,FrakIFrameClientContext:()=>FrakIFrameClientContext,useSendTransactionAction:()=>useSendTransactionAction,useReferralInteraction:()=>useReferralInteraction,useSendInteraction:()=>useSendInteraction,useSiweAuthenticate:()=>useSiweAuthenticate,useWalletStatus:()=>useWalletStatus});let external_react_namespaceObject=require("react"),FrakConfigContext=(0,external_react_namespaceObject.createContext)(void 0);function FrakConfigProvider(e){let{children:t,config:a}=e;return(0,external_react_namespaceObject.createElement)(FrakConfigContext.Provider,{value:{...a,walletUrl:a.walletUrl??"https://wallet.frak.id",domain:a.domain??("undefined"!=typeof window?window?.location?.host:void 0)??"not-found"}},t)}let core_sdk_namespaceObject=require("@frak-labs/core-sdk");function useFrakConfig(){let e=(0,external_react_namespaceObject.useContext)(FrakConfigContext);if(!e)throw new core_sdk_namespaceObject.FrakRpcError(core_sdk_namespaceObject.RpcErrorCodes.configError,"Frak config not found");return e}let FrakIFrameClientContext=(0,external_react_namespaceObject.createContext)(void 0);function FrakIFrameClientProvider({style:e,children:t}){let a=useFrakConfig(),[r,n]=(0,external_react_namespaceObject.useState)(void 0),o=(0,external_react_namespaceObject.createElement)("iframe",{...core_sdk_namespaceObject.baseIframeProps,src:`${a.walletUrl}/listener`,style:e??core_sdk_namespaceObject.baseIframeProps.style,ref:e=>{e&&!r&&n((0,core_sdk_namespaceObject.createIFrameFrakClient)({iframe:e,config:a}))}}),c=(0,external_react_namespaceObject.createElement)(FrakIFrameClientContext.Provider,{value:r},t);return(0,external_react_namespaceObject.createElement)(external_react_namespaceObject.Fragment,null,o,c)}function useFrakClient(){return(0,external_react_namespaceObject.useContext)(FrakIFrameClientContext)}let actions_namespaceObject=require("@frak-labs/core-sdk/actions"),react_query_namespaceObject=require("@tanstack/react-query");function useWalletStatus(){let e=(0,react_query_namespaceObject.useQueryClient)(),t=useFrakClient(),a=(0,external_react_namespaceObject.useCallback)(t=>{e.setQueryData(["frak-sdk","wallet-status-listener"],t)},[e]);return(0,react_query_namespaceObject.useQuery)({gcTime:0,staleTime:0,queryKey:["frak-sdk","wallet-status-listener"],queryFn:async()=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.watchWalletStatus)(t,a)},enabled:!!t})}function useSendTransactionAction({mutations:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useMutation)({...e,mutationKey:["frak-sdk","send-transaction"],mutationFn:async e=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.sendTransaction)(t,e)}})}function useSendInteraction({mutations:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useMutation)({...e,mutationKey:["frak-sdk","send-interaction"],mutationFn:async e=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.sendInteraction)(t,e)}})}function useSiweAuthenticate({mutations:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useMutation)({...e,mutationKey:["frak-sdk","siwe-authenticate",t?.config.domain??"no-domain"],mutationFn:async e=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.siweAuthenticate)(t,e)}})}function useMounted(){let[e,t]=(0,external_react_namespaceObject.useState)(!1);return(0,external_react_namespaceObject.useEffect)(()=>{t(!0)},[]),e}function useWindowLocation(){let e=useMounted(),[t,a]=(0,external_react_namespaceObject.useState)(e?window.location:void 0);(0,external_react_namespaceObject.useEffect)(()=>{if(e)return t||r(),window.addEventListener("popstate",r),()=>{window.removeEventListener("popstate",r)};function r(){a(window.location)}},[e,t]);let r=(0,external_react_namespaceObject.useMemo)(()=>t?.href,[t?.href]);return{location:t,href:r}}function useFrakContext(){let{location:e}=useWindowLocation();return{frakContext:(0,external_react_namespaceObject.useMemo)(()=>e?.href?core_sdk_namespaceObject.FrakContextManager.parse({url:e.href}):null,[e?.href]),updateContext:(0,external_react_namespaceObject.useCallback)(t=>{console.log("Updating context",{newContext:t}),core_sdk_namespaceObject.FrakContextManager.replaceUrl({url:e?.href,context:t})},[e?.href])}}function useReferralInteraction({productId:e,modalConfig:t,options:a}={}){let r=useFrakClient(),{frakContext:n}=useFrakContext(),{data:o}=useWalletStatus(),{data:c,error:s,status:_}=(0,react_query_namespaceObject.useQuery)({gcTime:0,staleTime:0,queryKey:["frak-sdk","auto-referral-interaction",n?.r??"no-referrer",o?.key??"no-wallet-status",e??"no-product-id"],queryFn:()=>{if(!r)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.processReferral)(r,{walletStatus:o,frakContext:n,modalConfig:t,productId:e,options:a})},enabled:!!o});return(0,external_react_namespaceObject.useMemo)(()=>"pending"===_?"processing":"error"===_?s:c||"idle",[c,_,s])}function useDisplayModal({mutations:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useMutation)({...e,mutationKey:["frak-sdk","display-modal"],mutationFn:async e=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.displayModal)(t,e)}})}function useOpenSso({mutations:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useMutation)({...e,mutationKey:["frak-sdk","open-sso"],mutationFn:async e=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.openSso)(t,e)}})}function useGetProductInformation({query:e}={}){let t=useFrakClient();return(0,react_query_namespaceObject.useQuery)({...e,queryKey:["frak-sdk","get-product-information"],queryFn:async()=>{if(!t)throw new core_sdk_namespaceObject.ClientNotFound;return(0,actions_namespaceObject.getProductInformation)(t)}})}for(var __webpack_i__ in exports.FrakConfigContext=__webpack_exports__.FrakConfigContext,exports.FrakConfigProvider=__webpack_exports__.FrakConfigProvider,exports.FrakIFrameClientContext=__webpack_exports__.FrakIFrameClientContext,exports.FrakIFrameClientProvider=__webpack_exports__.FrakIFrameClientProvider,exports.useDisplayModal=__webpack_exports__.useDisplayModal,exports.useFrakClient=__webpack_exports__.useFrakClient,exports.useFrakConfig=__webpack_exports__.useFrakConfig,exports.useGetProductInformation=__webpack_exports__.useGetProductInformation,exports.useOpenSso=__webpack_exports__.useOpenSso,exports.useReferralInteraction=__webpack_exports__.useReferralInteraction,exports.useSendInteraction=__webpack_exports__.useSendInteraction,exports.useSendTransactionAction=__webpack_exports__.useSendTransactionAction,exports.useSiweAuthenticate=__webpack_exports__.useSiweAuthenticate,exports.useWalletStatus=__webpack_exports__.useWalletStatus,__webpack_exports__)-1===["FrakConfigContext","FrakConfigProvider","FrakIFrameClientContext","FrakIFrameClientProvider","useDisplayModal","useFrakClient","useFrakConfig","useGetProductInformation","useOpenSso","useReferralInteraction","useSendInteraction","useSendTransactionAction","useSiweAuthenticate","useWalletStatus"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__webpack_exports__[__webpack_i__]);Object.defineProperty(exports,"__esModule",{value:!0});
package/dist/index.d.cts CHANGED
@@ -2,6 +2,7 @@ import { Context } from 'react';
2
2
  import { CSSProperties } from 'react';
3
3
  import { DisplayEmbeddedWalletParamsType } from '@frak-labs/core-sdk';
4
4
  import { DisplayModalParamsType } from '@frak-labs/core-sdk';
5
+ import { FragmentProps } from 'react';
5
6
  import { FrakClient } from '@frak-labs/core-sdk';
6
7
  import { FrakRpcError } from '@frak-labs/core-sdk';
7
8
  import { FrakWalletSdkConfig } from '@frak-labs/core-sdk';
@@ -88,9 +89,7 @@ export declare type FrakIFrameClientProps = {
88
89
  export declare function FrakIFrameClientProvider({ style, children, }: {
89
90
  style?: CSSProperties;
90
91
  children?: ReactNode;
91
- }): FunctionComponentElement< {
92
- children?: ReactNode | undefined;
93
- }>;
92
+ }): FunctionComponentElement<FragmentProps>;
94
93
 
95
94
  /** @ignore */
96
95
  declare type MutationOptions = Omit<UseMutationOptions<SendTransactionReturnType, FrakRpcError, SendTransactionParams>, "mutationFn" | "mutationKey">;
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import { Context } from 'react';
2
2
  import { CSSProperties } from 'react';
3
3
  import { DisplayEmbeddedWalletParamsType } from '@frak-labs/core-sdk';
4
4
  import { DisplayModalParamsType } from '@frak-labs/core-sdk';
5
+ import { FragmentProps } from 'react';
5
6
  import { FrakClient } from '@frak-labs/core-sdk';
6
7
  import { FrakRpcError } from '@frak-labs/core-sdk';
7
8
  import { FrakWalletSdkConfig } from '@frak-labs/core-sdk';
@@ -88,9 +89,7 @@ export declare type FrakIFrameClientProps = {
88
89
  export declare function FrakIFrameClientProvider({ style, children, }: {
89
90
  style?: CSSProperties;
90
91
  children?: ReactNode;
91
- }): FunctionComponentElement< {
92
- children?: ReactNode | undefined;
93
- }>;
92
+ }): FunctionComponentElement<FragmentProps>;
94
93
 
95
94
  /** @ignore */
96
95
  declare type MutationOptions = Omit<UseMutationOptions<SendTransactionReturnType, FrakRpcError, SendTransactionParams>, "mutationFn" | "mutationKey">;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import*as e from"@frak-labs/core-sdk";import*as t from"react";import*as n from"@frak-labs/core-sdk/actions";import*as r from"@tanstack/react-query";let o=(0,t.createContext)(void 0);function a(e){let{children:n,config:r}=e;return(0,t.createElement)(o.Provider,{value:{...r,walletUrl:r.walletUrl??"https://wallet.frak.id",domain:r.domain??("undefined"!=typeof window?window?.location?.host:void 0)??"not-found"}},n)}function u(){let n=(0,t.useContext)(o);if(!n)throw new e.FrakRpcError(e.RpcErrorCodes.configError,"Frak config not found");return n}let i=(0,t.createContext)(void 0);function s({style:n,children:r}){let o=u(),[a,s]=(0,t.useState)(void 0),l=(0,t.createElement)("iframe",{...e.baseIframeProps,src:`${o.walletUrl}/listener`,style:n??e.baseIframeProps.style,ref:t=>{t&&!a&&s((0,e.createIFrameFrakClient)({iframe:t,config:o}))}}),f=(0,t.createElement)(i.Provider,{value:a},r);return(0,t.createElement)(t.Fragment,null,l,f)}function l(){return(0,t.useContext)(i)}function f(){let o=(0,r.useQueryClient)(),a=l(),u=(0,t.useCallback)(e=>{o.setQueryData(["frak-sdk","wallet-status-listener"],e)},[o]);return(0,r.useQuery)({gcTime:0,staleTime:0,queryKey:["frak-sdk","wallet-status-listener"],queryFn:async()=>{if(!a)throw new e.ClientNotFound;return(0,n.watchWalletStatus)(a,u)},enabled:!!a})}function c({productId:o,modalConfig:a,options:u}={}){let i=l(),{frakContext:s}=function(){let{location:n}=function(){let e=function(){let[e,n]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{n(!0)},[]),e}(),[n,r]=(0,t.useState)(e?window.location:void 0);(0,t.useEffect)(()=>{if(e)return n||t(),window.addEventListener("popstate",t),()=>{window.removeEventListener("popstate",t)};function t(){r(window.location)}},[e,n]);let o=(0,t.useMemo)(()=>n?.href,[n?.href]);return{location:n,href:o}}();return{frakContext:(0,t.useMemo)(()=>n?.href?e.FrakContextManager.parse({url:n.href}):null,[n?.href]),updateContext:(0,t.useCallback)(t=>{console.log("Updating context",{newContext:t}),e.FrakContextManager.replaceUrl({url:n?.href,context:t})},[n?.href])}}(),{data:d}=f(),{data:m,error:w,status:k}=(0,r.useQuery)({gcTime:0,staleTime:0,queryKey:["frak-sdk","auto-referral-interaction",s?.r??"no-referrer",d?.key??"no-wallet-status",o??"no-product-id"],queryFn:()=>{if(!i)throw new e.ClientNotFound;return(0,n.processReferral)(i,{walletStatus:d,frakContext:s,modalConfig:a,productId:o,options:u})},enabled:!!d});return(0,t.useMemo)(()=>"pending"===k?"processing":"error"===k?w:m||"idle",[m,k,w])}function d({query:t}={}){let o=l();return(0,r.useQuery)({...t,queryKey:["frak-sdk","get-product-information"],queryFn:async()=>{if(!o)throw new e.ClientNotFound;return(0,n.getProductInformation)(o)}})}function m({mutations:t}={}){let o=l();return(0,r.useMutation)({...t,mutationKey:["frak-sdk","siwe-authenticate",o?.config.domain??"no-domain"],mutationFn:async t=>{if(!o)throw new e.ClientNotFound;return(0,n.siweAuthenticate)(o,t)}})}function w({mutations:t}={}){let o=l();return(0,r.useMutation)({...t,mutationKey:["frak-sdk","send-interaction"],mutationFn:async t=>{if(!o)throw new e.ClientNotFound;return(0,n.sendInteraction)(o,t)}})}function k({mutations:t}={}){let o=l();return(0,r.useMutation)({...t,mutationKey:["frak-sdk","open-sso"],mutationFn:async t=>{if(!o)throw new e.ClientNotFound;return(0,n.openSso)(o,t)}})}function y({mutations:t}={}){let o=l();return(0,r.useMutation)({...t,mutationKey:["frak-sdk","display-modal"],mutationFn:async t=>{if(!o)throw new e.ClientNotFound;return(0,n.displayModal)(o,t)}})}function F({mutations:t}={}){let o=l();return(0,r.useMutation)({...t,mutationKey:["frak-sdk","send-transaction"],mutationFn:async t=>{if(!o)throw new e.ClientNotFound;return(0,n.sendTransaction)(o,t)}})}export{o as FrakConfigContext,a as FrakConfigProvider,i as FrakIFrameClientContext,s as FrakIFrameClientProvider,y as useDisplayModal,l as useFrakClient,u as useFrakConfig,d as useGetProductInformation,k as useOpenSso,c as useReferralInteraction,w as useSendInteraction,F as useSendTransactionAction,m as useSiweAuthenticate,f as useWalletStatus};
1
+ import*as e from"react";import*as t from"@frak-labs/core-sdk";import*as n from"@frak-labs/core-sdk/actions";import*as r from"@tanstack/react-query";let o=(0,e.createContext)(void 0);function a(t){let{children:n,config:r}=t;return(0,e.createElement)(o.Provider,{value:{...r,walletUrl:r.walletUrl??"https://wallet.frak.id",domain:r.domain??("undefined"!=typeof window?window?.location?.host:void 0)??"not-found"}},n)}function u(){let n=(0,e.useContext)(o);if(!n)throw new t.FrakRpcError(t.RpcErrorCodes.configError,"Frak config not found");return n}let i=(0,e.createContext)(void 0);function s({style:n,children:r}){let o=u(),[a,s]=(0,e.useState)(void 0),l=(0,e.createElement)("iframe",{...t.baseIframeProps,src:`${o.walletUrl}/listener`,style:n??t.baseIframeProps.style,ref:e=>{e&&!a&&s((0,t.createIFrameFrakClient)({iframe:e,config:o}))}}),f=(0,e.createElement)(i.Provider,{value:a},r);return(0,e.createElement)(e.Fragment,null,l,f)}function l(){return(0,e.useContext)(i)}function f(){let o=(0,r.useQueryClient)(),a=l(),u=(0,e.useCallback)(e=>{o.setQueryData(["frak-sdk","wallet-status-listener"],e)},[o]);return(0,r.useQuery)({gcTime:0,staleTime:0,queryKey:["frak-sdk","wallet-status-listener"],queryFn:async()=>{if(!a)throw new t.ClientNotFound;return(0,n.watchWalletStatus)(a,u)},enabled:!!a})}function c({mutations:e}={}){let o=l();return(0,r.useMutation)({...e,mutationKey:["frak-sdk","send-transaction"],mutationFn:async e=>{if(!o)throw new t.ClientNotFound;return(0,n.sendTransaction)(o,e)}})}function d({mutations:e}={}){let o=l();return(0,r.useMutation)({...e,mutationKey:["frak-sdk","send-interaction"],mutationFn:async e=>{if(!o)throw new t.ClientNotFound;return(0,n.sendInteraction)(o,e)}})}function m({mutations:e}={}){let o=l();return(0,r.useMutation)({...e,mutationKey:["frak-sdk","siwe-authenticate",o?.config.domain??"no-domain"],mutationFn:async e=>{if(!o)throw new t.ClientNotFound;return(0,n.siweAuthenticate)(o,e)}})}function w({productId:o,modalConfig:a,options:u}={}){let i=l(),{frakContext:s}=function(){let{location:n}=function(){let t=function(){let[t,n]=(0,e.useState)(!1);return(0,e.useEffect)(()=>{n(!0)},[]),t}(),[n,r]=(0,e.useState)(t?window.location:void 0);(0,e.useEffect)(()=>{if(t)return n||e(),window.addEventListener("popstate",e),()=>{window.removeEventListener("popstate",e)};function e(){r(window.location)}},[t,n]);let o=(0,e.useMemo)(()=>n?.href,[n?.href]);return{location:n,href:o}}();return{frakContext:(0,e.useMemo)(()=>n?.href?t.FrakContextManager.parse({url:n.href}):null,[n?.href]),updateContext:(0,e.useCallback)(e=>{console.log("Updating context",{newContext:e}),t.FrakContextManager.replaceUrl({url:n?.href,context:e})},[n?.href])}}(),{data:c}=f(),{data:d,error:m,status:k}=(0,r.useQuery)({gcTime:0,staleTime:0,queryKey:["frak-sdk","auto-referral-interaction",s?.r??"no-referrer",c?.key??"no-wallet-status",o??"no-product-id"],queryFn:()=>{if(!i)throw new t.ClientNotFound;return(0,n.processReferral)(i,{walletStatus:c,frakContext:s,modalConfig:a,productId:o,options:u})},enabled:!!c});return(0,e.useMemo)(()=>"pending"===k?"processing":"error"===k?m:d||"idle",[d,k,m])}function k({mutations:e}={}){let o=l();return(0,r.useMutation)({...e,mutationKey:["frak-sdk","display-modal"],mutationFn:async e=>{if(!o)throw new t.ClientNotFound;return(0,n.displayModal)(o,e)}})}function y({mutations:e}={}){let o=l();return(0,r.useMutation)({...e,mutationKey:["frak-sdk","open-sso"],mutationFn:async e=>{if(!o)throw new t.ClientNotFound;return(0,n.openSso)(o,e)}})}function F({query:e}={}){let o=l();return(0,r.useQuery)({...e,queryKey:["frak-sdk","get-product-information"],queryFn:async()=>{if(!o)throw new t.ClientNotFound;return(0,n.getProductInformation)(o)}})}export{o as FrakConfigContext,a as FrakConfigProvider,i as FrakIFrameClientContext,s as FrakIFrameClientProvider,k as useDisplayModal,l as useFrakClient,u as useFrakConfig,F as useGetProductInformation,y as useOpenSso,w as useReferralInteraction,d as useSendInteraction,c as useSendTransactionAction,m as useSiweAuthenticate,f as useWalletStatus};
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "url": "https://twitter.com/QNivelais"
12
12
  }
13
13
  ],
14
- "version": "0.0.15",
14
+ "version": "0.0.16",
15
15
  "description": "React SDK of the Frak wallet, low level library to interact directly with the frak ecosystem.",
16
16
  "repository": {
17
17
  "url": "https://github.com/frak-id/wallet",
@@ -62,7 +62,7 @@
62
62
  "publish": "echo 'Publishing react...'"
63
63
  },
64
64
  "dependencies": {
65
- "@frak-labs/core-sdk": "0.0.15"
65
+ "@frak-labs/core-sdk": "0.0.16"
66
66
  },
67
67
  "peerDependencies": {
68
68
  "viem": "^2.x",
@@ -71,9 +71,9 @@
71
71
  },
72
72
  "devDependencies": {
73
73
  "@arethetypeswrong/cli": "^0.17.4",
74
- "@microsoft/api-extractor": "^7.52.3",
75
- "@rsbuild/plugin-react": "^1.2.0",
76
- "@rslib/core": "^0.6.3",
74
+ "@microsoft/api-extractor": "^7.52.5",
75
+ "@rsbuild/plugin-react": "^1.3.0",
76
+ "@rslib/core": "^0.6.7",
77
77
  "@types/node": "^22",
78
78
  "typescript": "^5"
79
79
  },