@crossmint/client-sdk-react-base 0.7.2 → 0.7.4

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 (37) hide show
  1. package/dist/chunk-K7OZQQ55.js +1 -0
  2. package/dist/chunk-OQ2HEJ2B.cjs +1 -0
  3. package/dist/chunk-QKCWSAPH.cjs +1 -0
  4. package/dist/chunk-R55UKDZF.js +1 -0
  5. package/dist/hooks/index.cjs +1 -1
  6. package/dist/hooks/index.d.cts +1 -0
  7. package/dist/hooks/index.d.ts +1 -0
  8. package/dist/hooks/index.js +1 -1
  9. package/dist/hooks/useAuth.cjs +1 -1
  10. package/dist/hooks/useAuth.js +1 -1
  11. package/dist/hooks/useSignerAuth.cjs +1 -0
  12. package/dist/hooks/useSignerAuth.d.cts +34 -0
  13. package/dist/hooks/useSignerAuth.d.ts +34 -0
  14. package/dist/hooks/useSignerAuth.js +1 -0
  15. package/dist/hooks/useWallet.cjs +1 -1
  16. package/dist/hooks/useWallet.js +1 -1
  17. package/dist/index.cjs +1 -1
  18. package/dist/index.d.cts +3 -1
  19. package/dist/index.d.ts +3 -1
  20. package/dist/index.js +1 -1
  21. package/dist/providers/CrossmintAuthBaseProvider.cjs +1 -1
  22. package/dist/providers/CrossmintAuthBaseProvider.js +1 -1
  23. package/dist/providers/CrossmintWalletBaseProvider.cjs +1 -1
  24. package/dist/providers/CrossmintWalletBaseProvider.d.cts +6 -0
  25. package/dist/providers/CrossmintWalletBaseProvider.d.ts +6 -0
  26. package/dist/providers/CrossmintWalletBaseProvider.js +1 -1
  27. package/dist/providers/CrossmintWalletUIBaseProvider.cjs +1 -0
  28. package/dist/providers/CrossmintWalletUIBaseProvider.d.cts +59 -0
  29. package/dist/providers/CrossmintWalletUIBaseProvider.d.ts +59 -0
  30. package/dist/providers/CrossmintWalletUIBaseProvider.js +1 -0
  31. package/dist/providers/index.cjs +1 -1
  32. package/dist/providers/index.d.cts +1 -0
  33. package/dist/providers/index.d.ts +1 -0
  34. package/dist/providers/index.js +1 -1
  35. package/package.json +7 -7
  36. package/dist/chunk-LJMUJ5YD.js +0 -1
  37. package/dist/chunk-TFK4FDBE.cjs +0 -1
@@ -0,0 +1 @@
1
+ import{c as i}from"./chunk-22GIA4MK.js";import{useState as d,useRef as s,useCallback as n}from"react";var a=r=>()=>{throw new Error(`${r} is not available. Make sure you're using an email or phone signer wallet.`)};function W(r){let[v,h]=d(!1),[f,g]=d("initial"),[O,c]=d(!1),[y,P]=d("initial"),l=s(a("sendEmailWithOtp")),m=s(a("verifyOtp")),p=s(a("sendPhoneWithOtp")),S=s(a("verifyPhoneOtp")),o=s(a("reject")),b=n(()=>i(this,null,function*(){try{yield l.current(),g("otp")}catch(e){console.error("Failed to send email OTP",e),o.current(new Error("Failed to send email OTP"))}}),[]),T=n(e=>i(this,null,function*(){try{yield m.current(e),h(!1),g("initial")}catch(t){console.error("Failed to verify OTP",t),o.current(new Error("Failed to verify OTP"))}}),[]),D=n(()=>i(this,null,function*(){try{yield l.current()}catch(e){console.error("Failed to resend email OTP",e),o.current(new Error("Failed to resend email OTP"))}}),[]),R=n(()=>i(this,null,function*(){try{yield p.current(),P("otp")}catch(e){console.error("Failed to send phone OTP",e),o.current(new Error("Failed to send phone OTP"))}}),[]),E=n(e=>i(this,null,function*(){try{yield S.current(e),c(!1),P("initial")}catch(t){console.error("Failed to verify phone OTP",t),o.current(new Error("Failed to verify phone OTP"))}}),[]),w=n(()=>i(this,null,function*(){try{yield p.current()}catch(e){console.error("Failed to resend phone OTP",e),o.current(new Error("Failed to resend phone OTP"))}}),[]),F=n((e,t,u,_)=>i(this,null,function*(){(r==null?void 0:r.signer.type)==="phone"&&r.signer.phone?(c(e),p.current=t,S.current=u):(h(e),l.current=t,m.current=u),o.current=_}),[r==null?void 0:r.signer.type,r==null?void 0:r.signer]);return{emailSignerDialogOpen:v,emailSignerDialogStep:f,setEmailSignerDialogOpen:h,setEmailSignerDialogStep:g,phoneSignerDialogOpen:O,phoneSignerDialogStep:y,setPhoneSignerDialogOpen:c,setPhoneSignerDialogStep:P,sendEmailWithOtpRef:l,verifyOtpRef:m,sendPhoneWithOtpRef:p,verifyPhoneOtpRef:S,rejectRef:o,emailsigners_handleSendEmailOTP:b,emailsigners_handleOTPSubmit:T,emailsigners_handleResendOTP:D,phonesigners_handleSendPhoneOTP:R,phonesigners_handleOTPSubmit:E,phonesigners_handleResendOTP:w,onAuthRequired:F}}export{W as a};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunk56X52ZGBcjs = require('./chunk-56X52ZGB.cjs');var _chunkQKCWSAPHcjs = require('./chunk-QKCWSAPH.cjs');var _chunkCK4JCQY6cjs = require('./chunk-CK4JCQY6.cjs');var _react = require('react');var _walletssdk = require('@crossmint/wallets-sdk');function we(){let p=_react.useContext.call(void 0, q);if(!p)throw new Error("useWallet must be used within CrossmintWalletProvider");return p}var _jsxruntime = require('react/jsx-runtime');function Be({children:p,appearance:l,createOnLogin:t,headlessSigningFlow:y,showPasskeyHelpers:i=!0,callbacks:a,initializeWebView:v,renderUI:n,clientTEEConnection:s}){let{experimental_customAuth:d}=_chunk56X52ZGBcjs.a.call(void 0, ),[m,f]=_react.useState.call(void 0, {open:!1}),r=_chunkQKCWSAPHcjs.a.call(void 0, t),u=(t==null?void 0:t.signer.type)==="email"&&(t==null?void 0:t.signer.email)!=null?t.signer.email:d==null?void 0:d.email,g=(t==null?void 0:t.signer.type)==="phone"&&(t==null?void 0:t.signer.phone)!=null?t.signer.phone:d==null?void 0:d.phone,P=_react.useCallback.call(void 0, e=>()=>new Promise(o=>{if(!i){o();return}f({type:e,open:!0,primaryActionOnClick:()=>{f({open:!1}),o()},secondaryActionOnClick:()=>{f({open:!1}),o()}})}),[i]),w=_react.useCallback.call(void 0, ()=>{let e=a==null?void 0:a.onWalletCreationStart,o=a==null?void 0:a.onTransactionStart;return(t==null?void 0:t.signer.type)==="passkey"&&i&&(e=P("create-wallet"),o=P("transaction")),{onWalletCreationStart:e,onTransactionStart:o}},[a,t==null?void 0:t.signer.type,i,P]),h={emailSignerProps:{email:u,open:r.emailSignerDialogOpen&&u!=null,setOpen:r.setEmailSignerDialogOpen,step:r.emailSignerDialogStep,onSubmitOTP:r.emailsigners_handleOTPSubmit,onResendOTPCode:r.emailsigners_handleResendOTP,onSubmitEmail:r.emailsigners_handleSendEmailOTP,rejectRef:r.rejectRef,appearance:l},phoneSignerProps:{phone:g,open:r.phoneSignerDialogOpen&&g!=null,setOpen:r.setPhoneSignerDialogOpen,step:r.phoneSignerDialogStep,onSubmitOTP:r.phonesigners_handleOTPSubmit,onResendOTPCode:r.phonesigners_handleResendOTP,onSubmitPhone:r.phonesigners_handleSendPhoneOTP,rejectRef:r.rejectRef,appearance:l},passkeyPromptProps:{state:m,appearance:l}};return _jsxruntime.jsxs.call(void 0, Z,{createOnLogin:t,onAuthRequired:r.onAuthRequired,initializeWebView:v,callbacks:w(),clientTEEConnection:s,children:[p,!y&&n!=null&&n(h)]})}var _clientsdkauth = require('@crossmint/client-sdk-auth');var _commonsdkauth = require('@crossmint/common-sdk-auth');var x=_react.createContext.call(void 0, {crossmintAuth:void 0,logout:()=>{},status:"initializing",getUser:()=>{},login:()=>{}});function de(){let p=_react.useContext.call(void 0, x);if(p==null)throw new Error("useCrossmintAuthBase must be used within CrossmintAuthBaseProvider");return p}function ue({children:p,onLoginSuccess:l,refreshRoute:t,logoutRoute:y,storageProvider:i}){let{crossmint:a}=_chunk56X52ZGBcjs.a.call(void 0, "CrossmintAuthBaseProvider must be used within CrossmintProvider"),[v,n]=_react.useState.call(void 0, void 0),[s,d]=_react.useState.call(void 0, void 0),[m,f]=_react.useState.call(void 0, !1),r=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>{if(!r.current)try{r.current=_clientsdkauth.CrossmintAuth.from(a,{callbacks:{onLogout:()=>{n(void 0),d(void 0)},onTokenRefresh:o=>{n(o.user),d(o.jwt)}},refreshRoute:t,logoutRoute:y,storageProvider:i})}catch(o){console.error("Failed to initialize CrossmintAuth:",o)}},[a,t,y,i]);let u=r.current,g=_react.useCallback.call(void 0, ()=>{l==null||l()},[l]);_react.useEffect.call(void 0, ()=>{var o;if(s==null)if(i)(o=i.get)==null||o.call(i,_commonsdkauth.SESSION_PREFIX).then(C=>{C!=null&&d(C)}).finally(()=>{f(!0)});else{try{let C=_clientsdkauth.getCookie.call(void 0, _commonsdkauth.SESSION_PREFIX);d(C)}catch(C){console.error("Failed to get cookie:",C)}f(!0)}else f(!0)},[s,i]),_react.useEffect.call(void 0, ()=>{s!=null&&g()},[s,g]);let P=_react.useCallback.call(void 0, ()=>{u==null||u.logout()},[u]),w=_react.useCallback.call(void 0, ()=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){if(s==null){console.log("User not logged in");return}let o=yield u==null?void 0:u.getUser();return n(o),o}),[s,u]),h=_react.useCallback.call(void 0, ()=>m?s!=null?"logged-in":"logged-out":"initializing",[s,m]),e=_react.useMemo.call(void 0, ()=>({crossmintAuth:u,logout:P,jwt:s,user:v,status:h(),getUser:w,login:()=>{}}),[u,P,s,v,m,w,h]);return _jsxruntime.jsx.call(void 0, x.Provider,{value:e,children:p})}function fe(){let p=_react.useContext.call(void 0, x);if(p==null)throw new Error("useCrossmintAuth must be used within a CrossmintAuthProvider");return p}var Qe=fe;var _lodashclonedeep = require('lodash.clonedeep'); var _lodashclonedeep2 = _interopRequireDefault(_lodashclonedeep);var q=_react.createContext.call(void 0, {wallet:void 0,status:"not-loaded",getOrCreateWallet:()=>Promise.resolve(void 0),onAuthRequired:void 0,clientTEEConnection:void 0,emailSignerState:{needsAuth:!1,sendEmailWithOtp:null,verifyOtp:null,reject:null}});function Z({children:p,createOnLogin:l,callbacks:t,onAuthRequired:y,clientTEEConnection:i,initializeWebView:a}){let{crossmint:v,experimental_customAuth:n}=_chunk56X52ZGBcjs.a.call(void 0, "CrossmintWalletBaseProvider must be used within CrossmintProvider"),[s,d]=_react.useState.call(void 0, void 0),[m,f]=_react.useState.call(void 0, "not-loaded"),[r,u]=_react.useState.call(void 0, {needsAuth:!1,sendEmailWithOtp:null,verifyOtp:null,reject:null}),g=_react.useCallback.call(void 0, (h,e,o,C)=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){if(u({needsAuth:h,sendEmailWithOtp:e,verifyOtp:o,reject:C}),y)return yield y(h,e,o,C)}),[y]),P=_react.useCallback.call(void 0, h=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){var o,C,F,D,N,H,M,V,z,J,K,X;let e=_lodashclonedeep2.default.call(void 0, h);if(!((n==null?void 0:n.jwt)==null||m==="in-progress")){if(s!=null)return s;try{f("in-progress");let E=_walletssdk.CrossmintWallets.from(v),B=(C=(o=e.options)==null?void 0:o.experimental_callbacks)==null?void 0:C.onWalletCreationStart,T=(D=(F=e.options)==null?void 0:F.experimental_callbacks)==null?void 0:D.onTransactionStart;if(((N=e==null?void 0:e.signer)==null?void 0:N.type)==="email"){let S=(H=e.signer.email)!=null?H:n==null?void 0:n.email,b=(M=e.signer.onAuthRequired)!=null?M:g;if(S==null)throw new Error("Email not found in experimental_customAuth or signer. Please set email in experimental_customAuth or signer.");e.signer=_chunkCK4JCQY6cjs.b.call(void 0, _chunkCK4JCQY6cjs.a.call(void 0, {},e.signer),{email:S,onAuthRequired:b})}if(((V=e==null?void 0:e.signer)==null?void 0:V.type)==="phone"){let S=(z=e.signer.phone)!=null?z:n==null?void 0:n.phone,b=(J=e.signer.onAuthRequired)!=null?J:g;if(S==null)throw new Error("Phone not found in signer. Please set phone in signer.");e.signer=_chunkCK4JCQY6cjs.b.call(void 0, _chunkCK4JCQY6cjs.a.call(void 0, {},e.signer),{phone:S,onAuthRequired:b})}if(((K=e==null?void 0:e.signer)==null?void 0:K.type)==="external-wallet"){let S=((X=e.signer)==null?void 0:X.address)!=null?e.signer:n.externalWalletSigner;if(S==null)throw new Error("External wallet config not found in experimental_customAuth or signer. Please set it in experimental_customAuth or signer.");e.signer=S}(e.signer.type==="email"||e.signer.type==="phone")&&(yield a==null?void 0:a());let G=yield E.getOrCreateWallet({chain:e.chain,signer:e.signer,owner:e.owner,plugins:e.plugins,delegatedSigners:e.delegatedSigners,alias:e.alias,options:{clientTEEConnection:i==null?void 0:i(),experimental_callbacks:{onWalletCreationStart:B!=null?B:t==null?void 0:t.onWalletCreationStart,onTransactionStart:T!=null?T:t==null?void 0:t.onTransactionStart}}});return d(G),f("loaded"),G}catch(E){console.error("Failed to create wallet:",E),d(void 0),f("error");return}}}),[v,n,g,m,s,t==null?void 0:t.onWalletCreationStart,t==null?void 0:t.onTransactionStart,i,a]);_react.useEffect.call(void 0, ()=>{if(l!=null){if(l.signer.type==="email"&&(n==null?void 0:n.email)==null||l.signer.type==="external-wallet"&&(n==null?void 0:n.externalWalletSigner)==null&&l.signer.address==null)return;P(l)}},[l,P,n==null?void 0:n.email,n==null?void 0:n.externalWalletSigner]),_react.useEffect.call(void 0, ()=>{(n==null?void 0:n.jwt)==null&&m!=="not-loaded"&&(f("not-loaded"),d(void 0))},[n==null?void 0:n.jwt,m]);let w=_react.useMemo.call(void 0, ()=>({wallet:s,status:m,getOrCreateWallet:P,onAuthRequired:g,clientTEEConnection:i,emailSignerState:r}),[P,s,m,g,i,r]);return _jsxruntime.jsx.call(void 0, q.Provider,{value:w,children:p})}exports.a = q; exports.b = Z; exports.c = we; exports.d = Be; exports.e = x; exports.f = de; exports.g = ue; exports.h = fe; exports.i = Qe;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkCK4JCQY6cjs = require('./chunk-CK4JCQY6.cjs');var _react = require('react');var a=r=>()=>{throw new Error(`${r} is not available. Make sure you're using an email or phone signer wallet.`)};function M(r){let[v,h]=_react.useState.call(void 0, !1),[f,g]=_react.useState.call(void 0, "initial"),[O,c]=_react.useState.call(void 0, !1),[y,P]=_react.useState.call(void 0, "initial"),l=_react.useRef.call(void 0, a("sendEmailWithOtp")),m=_react.useRef.call(void 0, a("verifyOtp")),p=_react.useRef.call(void 0, a("sendPhoneWithOtp")),S=_react.useRef.call(void 0, a("verifyPhoneOtp")),o=_react.useRef.call(void 0, a("reject")),b=_react.useCallback.call(void 0, ()=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){try{yield l.current(),g("otp")}catch(e){console.error("Failed to send email OTP",e),o.current(new Error("Failed to send email OTP"))}}),[]),T=_react.useCallback.call(void 0, e=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){try{yield m.current(e),h(!1),g("initial")}catch(t){console.error("Failed to verify OTP",t),o.current(new Error("Failed to verify OTP"))}}),[]),D=_react.useCallback.call(void 0, ()=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){try{yield l.current()}catch(e){console.error("Failed to resend email OTP",e),o.current(new Error("Failed to resend email OTP"))}}),[]),R=_react.useCallback.call(void 0, ()=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){try{yield p.current(),P("otp")}catch(e){console.error("Failed to send phone OTP",e),o.current(new Error("Failed to send phone OTP"))}}),[]),E=_react.useCallback.call(void 0, e=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){try{yield S.current(e),c(!1),P("initial")}catch(t){console.error("Failed to verify phone OTP",t),o.current(new Error("Failed to verify phone OTP"))}}),[]),w=_react.useCallback.call(void 0, ()=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){try{yield p.current()}catch(e){console.error("Failed to resend phone OTP",e),o.current(new Error("Failed to resend phone OTP"))}}),[]),F=_react.useCallback.call(void 0, (e,t,u,_)=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){(r==null?void 0:r.signer.type)==="phone"&&r.signer.phone?(c(e),p.current=t,S.current=u):(h(e),l.current=t,m.current=u),o.current=_}),[r==null?void 0:r.signer.type,r==null?void 0:r.signer]);return{emailSignerDialogOpen:v,emailSignerDialogStep:f,setEmailSignerDialogOpen:h,setEmailSignerDialogStep:g,phoneSignerDialogOpen:O,phoneSignerDialogStep:y,setPhoneSignerDialogOpen:c,setPhoneSignerDialogStep:P,sendEmailWithOtpRef:l,verifyOtpRef:m,sendPhoneWithOtpRef:p,verifyPhoneOtpRef:S,rejectRef:o,emailsigners_handleSendEmailOTP:b,emailsigners_handleOTPSubmit:T,emailsigners_handleResendOTP:D,phonesigners_handleSendPhoneOTP:R,phonesigners_handleOTPSubmit:E,phonesigners_handleResendOTP:w,onAuthRequired:F}}exports.a = M;
@@ -0,0 +1 @@
1
+ import{a as R}from"./chunk-B3EC7QUJ.js";import{a as Y}from"./chunk-K7OZQQ55.js";import{a as U,b as q,c as x}from"./chunk-22GIA4MK.js";import{createContext as ge,useCallback as L,useEffect as ee,useMemo as Pe,useState as F}from"react";import{CrossmintWallets as he}from"@crossmint/wallets-sdk";import{useContext as te}from"react";function Re(){let p=te(O);if(!p)throw new Error("useWallet must be used within CrossmintWalletProvider");return p}import{useContext as fe}from"react";import{useCallback as Z,useState as ne}from"react";import{jsxs as oe}from"react/jsx-runtime";function Te({children:p,appearance:l,createOnLogin:t,headlessSigningFlow:y,showPasskeyHelpers:i=!0,callbacks:a,initializeWebView:v,renderUI:n,clientTEEConnection:s}){let{experimental_customAuth:d}=R(),[m,f]=ne({open:!1}),r=Y(t),u=(t==null?void 0:t.signer.type)==="email"&&(t==null?void 0:t.signer.email)!=null?t.signer.email:d==null?void 0:d.email,g=(t==null?void 0:t.signer.type)==="phone"&&(t==null?void 0:t.signer.phone)!=null?t.signer.phone:d==null?void 0:d.phone,P=Z(e=>()=>new Promise(o=>{if(!i){o();return}f({type:e,open:!0,primaryActionOnClick:()=>{f({open:!1}),o()},secondaryActionOnClick:()=>{f({open:!1}),o()}})}),[i]),w=Z(()=>{let e=a==null?void 0:a.onWalletCreationStart,o=a==null?void 0:a.onTransactionStart;return(t==null?void 0:t.signer.type)==="passkey"&&i&&(e=P("create-wallet"),o=P("transaction")),{onWalletCreationStart:e,onTransactionStart:o}},[a,t==null?void 0:t.signer.type,i,P]),h={emailSignerProps:{email:u,open:r.emailSignerDialogOpen&&u!=null,setOpen:r.setEmailSignerDialogOpen,step:r.emailSignerDialogStep,onSubmitOTP:r.emailsigners_handleOTPSubmit,onResendOTPCode:r.emailsigners_handleResendOTP,onSubmitEmail:r.emailsigners_handleSendEmailOTP,rejectRef:r.rejectRef,appearance:l},phoneSignerProps:{phone:g,open:r.phoneSignerDialogOpen&&g!=null,setOpen:r.setPhoneSignerDialogOpen,step:r.phoneSignerDialogStep,onSubmitOTP:r.phonesigners_handleOTPSubmit,onResendOTPCode:r.phonesigners_handleResendOTP,onSubmitPhone:r.phonesigners_handleSendPhoneOTP,rejectRef:r.rejectRef,appearance:l},passkeyPromptProps:{state:m,appearance:l}};return oe($,{createOnLogin:t,onAuthRequired:r.onAuthRequired,initializeWebView:v,callbacks:w(),clientTEEConnection:s,children:[p,!y&&n!=null&&n(h)]})}import{createContext as re,useCallback as E,useContext as ie,useEffect as j,useMemo as se,useRef as le,useState as k}from"react";import{CrossmintAuth as ae,getCookie as de}from"@crossmint/client-sdk-auth";import{SESSION_PREFIX as _}from"@crossmint/common-sdk-auth";import{jsx as me}from"react/jsx-runtime";var A=re({crossmintAuth:void 0,logout:()=>{},status:"initializing",getUser:()=>{},login:()=>{}});function ue(){let p=ie(A);if(p==null)throw new Error("useCrossmintAuthBase must be used within CrossmintAuthBaseProvider");return p}function pe({children:p,onLoginSuccess:l,refreshRoute:t,logoutRoute:y,storageProvider:i}){let{crossmint:a}=R("CrossmintAuthBaseProvider must be used within CrossmintProvider"),[v,n]=k(void 0),[s,d]=k(void 0),[m,f]=k(!1),r=le(null);j(()=>{if(!r.current)try{r.current=ae.from(a,{callbacks:{onLogout:()=>{n(void 0),d(void 0)},onTokenRefresh:o=>{n(o.user),d(o.jwt)}},refreshRoute:t,logoutRoute:y,storageProvider:i})}catch(o){console.error("Failed to initialize CrossmintAuth:",o)}},[a,t,y,i]);let u=r.current,g=E(()=>{l==null||l()},[l]);j(()=>{var o;if(s==null)if(i)(o=i.get)==null||o.call(i,_).then(C=>{C!=null&&d(C)}).finally(()=>{f(!0)});else{try{let C=de(_);d(C)}catch(C){console.error("Failed to get cookie:",C)}f(!0)}else f(!0)},[s,i]),j(()=>{s!=null&&g()},[s,g]);let P=E(()=>{u==null||u.logout()},[u]),w=E(()=>x(this,null,function*(){if(s==null){console.log("User not logged in");return}let o=yield u==null?void 0:u.getUser();return n(o),o}),[s,u]),h=E(()=>m?s!=null?"logged-in":"logged-out":"initializing",[s,m]),e=se(()=>({crossmintAuth:u,logout:P,jwt:s,user:v,status:h(),getUser:w,login:()=>{}}),[u,P,s,v,m,w,h]);return me(A.Provider,{value:e,children:p})}function Ce(){let p=fe(A);if(p==null)throw new Error("useCrossmintAuth must be used within a CrossmintAuthProvider");return p}var Ye=Ce;import ye from"lodash.clonedeep";import{jsx as Se}from"react/jsx-runtime";var O=ge({wallet:void 0,status:"not-loaded",getOrCreateWallet:()=>Promise.resolve(void 0),onAuthRequired:void 0,clientTEEConnection:void 0,emailSignerState:{needsAuth:!1,sendEmailWithOtp:null,verifyOtp:null,reject:null}});function $({children:p,createOnLogin:l,callbacks:t,onAuthRequired:y,clientTEEConnection:i,initializeWebView:a}){let{crossmint:v,experimental_customAuth:n}=R("CrossmintWalletBaseProvider must be used within CrossmintProvider"),[s,d]=F(void 0),[m,f]=F("not-loaded"),[r,u]=F({needsAuth:!1,sendEmailWithOtp:null,verifyOtp:null,reject:null}),g=L((h,e,o,C)=>x(this,null,function*(){if(u({needsAuth:h,sendEmailWithOtp:e,verifyOtp:o,reject:C}),y)return yield y(h,e,o,C)}),[y]),P=L(h=>x(this,null,function*(){var o,C,D,N,H,M,V,z,J,K,X,G;let e=ye(h);if(!((n==null?void 0:n.jwt)==null||m==="in-progress")){if(s!=null)return s;try{f("in-progress");let B=he.from(v),T=(C=(o=e.options)==null?void 0:o.experimental_callbacks)==null?void 0:C.onWalletCreationStart,b=(N=(D=e.options)==null?void 0:D.experimental_callbacks)==null?void 0:N.onTransactionStart;if(((H=e==null?void 0:e.signer)==null?void 0:H.type)==="email"){let S=(M=e.signer.email)!=null?M:n==null?void 0:n.email,I=(V=e.signer.onAuthRequired)!=null?V:g;if(S==null)throw new Error("Email not found in experimental_customAuth or signer. Please set email in experimental_customAuth or signer.");e.signer=q(U({},e.signer),{email:S,onAuthRequired:I})}if(((z=e==null?void 0:e.signer)==null?void 0:z.type)==="phone"){let S=(J=e.signer.phone)!=null?J:n==null?void 0:n.phone,I=(K=e.signer.onAuthRequired)!=null?K:g;if(S==null)throw new Error("Phone not found in signer. Please set phone in signer.");e.signer=q(U({},e.signer),{phone:S,onAuthRequired:I})}if(((X=e==null?void 0:e.signer)==null?void 0:X.type)==="external-wallet"){let S=((G=e.signer)==null?void 0:G.address)!=null?e.signer:n.externalWalletSigner;if(S==null)throw new Error("External wallet config not found in experimental_customAuth or signer. Please set it in experimental_customAuth or signer.");e.signer=S}(e.signer.type==="email"||e.signer.type==="phone")&&(yield a==null?void 0:a());let Q=yield B.getOrCreateWallet({chain:e.chain,signer:e.signer,owner:e.owner,plugins:e.plugins,delegatedSigners:e.delegatedSigners,alias:e.alias,options:{clientTEEConnection:i==null?void 0:i(),experimental_callbacks:{onWalletCreationStart:T!=null?T:t==null?void 0:t.onWalletCreationStart,onTransactionStart:b!=null?b:t==null?void 0:t.onTransactionStart}}});return d(Q),f("loaded"),Q}catch(B){console.error("Failed to create wallet:",B),d(void 0),f("error");return}}}),[v,n,g,m,s,t==null?void 0:t.onWalletCreationStart,t==null?void 0:t.onTransactionStart,i,a]);ee(()=>{if(l!=null){if(l.signer.type==="email"&&(n==null?void 0:n.email)==null||l.signer.type==="external-wallet"&&(n==null?void 0:n.externalWalletSigner)==null&&l.signer.address==null)return;P(l)}},[l,P,n==null?void 0:n.email,n==null?void 0:n.externalWalletSigner]),ee(()=>{(n==null?void 0:n.jwt)==null&&m!=="not-loaded"&&(f("not-loaded"),d(void 0))},[n==null?void 0:n.jwt,m]);let w=Pe(()=>({wallet:s,status:m,getOrCreateWallet:P,onAuthRequired:g,clientTEEConnection:i,emailSignerState:r}),[P,s,m,g,i,r]);return Se(O.Provider,{value:w,children:p})}export{O as a,$ as b,Re as c,Te as d,A as e,ue as f,pe as g,Ce as h,Ye as i};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTFK4FDBEcjs = require('../chunk-TFK4FDBE.cjs');var _chunk56X52ZGBcjs = require('../chunk-56X52ZGB.cjs');require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.useAuth = _chunkTFK4FDBEcjs.h; exports.useCrossmint = _chunk56X52ZGBcjs.a; exports.useCrossmintAuth = _chunkTFK4FDBEcjs.g; exports.useWallet = _chunkTFK4FDBEcjs.c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkOQ2HEJ2Bcjs = require('../chunk-OQ2HEJ2B.cjs');var _chunk56X52ZGBcjs = require('../chunk-56X52ZGB.cjs');var _chunkQKCWSAPHcjs = require('../chunk-QKCWSAPH.cjs');require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.useAuth = _chunkOQ2HEJ2Bcjs.i; exports.useCrossmint = _chunk56X52ZGBcjs.a; exports.useCrossmintAuth = _chunkOQ2HEJ2Bcjs.h; exports.useSignerAuth = _chunkQKCWSAPHcjs.a; exports.useWallet = _chunkOQ2HEJ2Bcjs.c;
@@ -1,6 +1,7 @@
1
1
  export { useCrossmint } from './useCrossmint.cjs';
2
2
  export { useWallet } from './useWallet.cjs';
3
3
  export { useAuth, useCrossmintAuth } from './useAuth.cjs';
4
+ export { DialogStep, SignerAuthHandlers, SignerAuthState, SignerType, useSignerAuth } from './useSignerAuth.cjs';
4
5
  import '../providers/CrossmintProvider.cjs';
5
6
  import 'react/jsx-runtime';
6
7
  import 'react';
@@ -1,6 +1,7 @@
1
1
  export { useCrossmint } from './useCrossmint.js';
2
2
  export { useWallet } from './useWallet.js';
3
3
  export { useAuth, useCrossmintAuth } from './useAuth.js';
4
+ export { DialogStep, SignerAuthHandlers, SignerAuthState, SignerType, useSignerAuth } from './useSignerAuth.js';
4
5
  import '../providers/CrossmintProvider.js';
5
6
  import 'react/jsx-runtime';
6
7
  import 'react';
@@ -1 +1 @@
1
- import{c as b,g as c,h as d}from"../chunk-LJMUJ5YD.js";import{a}from"../chunk-B3EC7QUJ.js";import"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{d as useAuth,a as useCrossmint,c as useCrossmintAuth,b as useWallet};
1
+ import{c as b,h as d,i as e}from"../chunk-R55UKDZF.js";import{a}from"../chunk-B3EC7QUJ.js";import{a as c}from"../chunk-K7OZQQ55.js";import"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{e as useAuth,a as useCrossmint,d as useCrossmintAuth,c as useSignerAuth,b as useWallet};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTFK4FDBEcjs = require('../chunk-TFK4FDBE.cjs');require('../chunk-56X52ZGB.cjs');require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.useAuth = _chunkTFK4FDBEcjs.h; exports.useCrossmintAuth = _chunkTFK4FDBEcjs.g;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkOQ2HEJ2Bcjs = require('../chunk-OQ2HEJ2B.cjs');require('../chunk-56X52ZGB.cjs');require('../chunk-QKCWSAPH.cjs');require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.useAuth = _chunkOQ2HEJ2Bcjs.i; exports.useCrossmintAuth = _chunkOQ2HEJ2Bcjs.h;
@@ -1 +1 @@
1
- import{g as a,h as b}from"../chunk-LJMUJ5YD.js";import"../chunk-B3EC7QUJ.js";import"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{b as useAuth,a as useCrossmintAuth};
1
+ import{h as a,i as b}from"../chunk-R55UKDZF.js";import"../chunk-B3EC7QUJ.js";import"../chunk-K7OZQQ55.js";import"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{b as useAuth,a as useCrossmintAuth};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkQKCWSAPHcjs = require('../chunk-QKCWSAPH.cjs');require('../chunk-CK4JCQY6.cjs');exports.useSignerAuth = _chunkQKCWSAPHcjs.a;
@@ -0,0 +1,34 @@
1
+ import { MutableRefObject } from 'react';
2
+ import { CreateOnLogin } from '../types/wallet.cjs';
3
+ import '@crossmint/common-sdk-base';
4
+ import '@crossmint/wallets-sdk';
5
+
6
+ type SignerType = "email" | "phone";
7
+ type DialogStep = "initial" | "otp";
8
+ interface SignerAuthState {
9
+ emailSignerDialogOpen: boolean;
10
+ emailSignerDialogStep: DialogStep;
11
+ setEmailSignerDialogOpen: (open: boolean) => void;
12
+ setEmailSignerDialogStep: (step: DialogStep) => void;
13
+ phoneSignerDialogOpen: boolean;
14
+ phoneSignerDialogStep: DialogStep;
15
+ setPhoneSignerDialogOpen: (open: boolean) => void;
16
+ setPhoneSignerDialogStep: (step: DialogStep) => void;
17
+ sendEmailWithOtpRef: MutableRefObject<() => Promise<void>>;
18
+ verifyOtpRef: MutableRefObject<(otp: string) => Promise<void>>;
19
+ sendPhoneWithOtpRef: MutableRefObject<() => Promise<void>>;
20
+ verifyPhoneOtpRef: MutableRefObject<(otp: string) => Promise<void>>;
21
+ rejectRef: MutableRefObject<(error?: Error) => void>;
22
+ }
23
+ interface SignerAuthHandlers {
24
+ emailsigners_handleSendEmailOTP: () => Promise<void>;
25
+ emailsigners_handleOTPSubmit: (otp: string) => Promise<void>;
26
+ emailsigners_handleResendOTP: () => Promise<void>;
27
+ phonesigners_handleSendPhoneOTP: () => Promise<void>;
28
+ phonesigners_handleOTPSubmit: (otp: string) => Promise<void>;
29
+ phonesigners_handleResendOTP: () => Promise<void>;
30
+ onAuthRequired: (needsAuth: boolean, sendMessageWithOtp: () => Promise<void>, verifyOtp: (otp: string) => Promise<void>, reject: () => void) => Promise<void>;
31
+ }
32
+ declare function useSignerAuth(createOnLogin?: CreateOnLogin): SignerAuthState & SignerAuthHandlers;
33
+
34
+ export { type DialogStep, type SignerAuthHandlers, type SignerAuthState, type SignerType, useSignerAuth };
@@ -0,0 +1,34 @@
1
+ import { MutableRefObject } from 'react';
2
+ import { CreateOnLogin } from '../types/wallet.js';
3
+ import '@crossmint/common-sdk-base';
4
+ import '@crossmint/wallets-sdk';
5
+
6
+ type SignerType = "email" | "phone";
7
+ type DialogStep = "initial" | "otp";
8
+ interface SignerAuthState {
9
+ emailSignerDialogOpen: boolean;
10
+ emailSignerDialogStep: DialogStep;
11
+ setEmailSignerDialogOpen: (open: boolean) => void;
12
+ setEmailSignerDialogStep: (step: DialogStep) => void;
13
+ phoneSignerDialogOpen: boolean;
14
+ phoneSignerDialogStep: DialogStep;
15
+ setPhoneSignerDialogOpen: (open: boolean) => void;
16
+ setPhoneSignerDialogStep: (step: DialogStep) => void;
17
+ sendEmailWithOtpRef: MutableRefObject<() => Promise<void>>;
18
+ verifyOtpRef: MutableRefObject<(otp: string) => Promise<void>>;
19
+ sendPhoneWithOtpRef: MutableRefObject<() => Promise<void>>;
20
+ verifyPhoneOtpRef: MutableRefObject<(otp: string) => Promise<void>>;
21
+ rejectRef: MutableRefObject<(error?: Error) => void>;
22
+ }
23
+ interface SignerAuthHandlers {
24
+ emailsigners_handleSendEmailOTP: () => Promise<void>;
25
+ emailsigners_handleOTPSubmit: (otp: string) => Promise<void>;
26
+ emailsigners_handleResendOTP: () => Promise<void>;
27
+ phonesigners_handleSendPhoneOTP: () => Promise<void>;
28
+ phonesigners_handleOTPSubmit: (otp: string) => Promise<void>;
29
+ phonesigners_handleResendOTP: () => Promise<void>;
30
+ onAuthRequired: (needsAuth: boolean, sendMessageWithOtp: () => Promise<void>, verifyOtp: (otp: string) => Promise<void>, reject: () => void) => Promise<void>;
31
+ }
32
+ declare function useSignerAuth(createOnLogin?: CreateOnLogin): SignerAuthState & SignerAuthHandlers;
33
+
34
+ export { type DialogStep, type SignerAuthHandlers, type SignerAuthState, type SignerType, useSignerAuth };
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-K7OZQQ55.js";import"../chunk-22GIA4MK.js";export{a as useSignerAuth};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTFK4FDBEcjs = require('../chunk-TFK4FDBE.cjs');require('../chunk-56X52ZGB.cjs');require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.useWallet = _chunkTFK4FDBEcjs.c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkOQ2HEJ2Bcjs = require('../chunk-OQ2HEJ2B.cjs');require('../chunk-56X52ZGB.cjs');require('../chunk-QKCWSAPH.cjs');require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.useWallet = _chunkOQ2HEJ2Bcjs.c;
@@ -1 +1 @@
1
- import{c as a}from"../chunk-LJMUJ5YD.js";import"../chunk-B3EC7QUJ.js";import"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{a as useWallet};
1
+ import{c as a}from"../chunk-R55UKDZF.js";import"../chunk-B3EC7QUJ.js";import"../chunk-K7OZQQ55.js";import"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{a as useWallet};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-YSXSE5ZY.cjs');var _chunkPU5EOTE7cjs = require('./chunk-PU5EOTE7.cjs');var _chunkTFK4FDBEcjs = require('./chunk-TFK4FDBE.cjs');var _chunk56X52ZGBcjs = require('./chunk-56X52ZGB.cjs');var _chunk4UWLWRLDcjs = require('./chunk-4UWLWRLD.cjs');require('./chunk-CK4JCQY6.cjs');exports.CrossmintAuthBaseContext = _chunkTFK4FDBEcjs.d; exports.CrossmintAuthBaseProvider = _chunkTFK4FDBEcjs.f; exports.CrossmintContext = _chunk4UWLWRLDcjs.a; exports.CrossmintProvider = _chunk4UWLWRLDcjs.b; exports.CrossmintWalletBaseContext = _chunkTFK4FDBEcjs.a; exports.CrossmintWalletBaseProvider = _chunkTFK4FDBEcjs.b; exports.EVMWallet = _chunkPU5EOTE7cjs.a; exports.SolanaWallet = _chunkPU5EOTE7cjs.b; exports.StellarWallet = _chunkPU5EOTE7cjs.c; exports.useAuth = _chunkTFK4FDBEcjs.h; exports.useCrossmint = _chunk56X52ZGBcjs.a; exports.useCrossmintAuth = _chunkTFK4FDBEcjs.g; exports.useCrossmintAuthBase = _chunkTFK4FDBEcjs.e; exports.useWallet = _chunkTFK4FDBEcjs.c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-YSXSE5ZY.cjs');var _chunkPU5EOTE7cjs = require('./chunk-PU5EOTE7.cjs');var _chunkOQ2HEJ2Bcjs = require('./chunk-OQ2HEJ2B.cjs');var _chunk56X52ZGBcjs = require('./chunk-56X52ZGB.cjs');var _chunkQKCWSAPHcjs = require('./chunk-QKCWSAPH.cjs');var _chunk4UWLWRLDcjs = require('./chunk-4UWLWRLD.cjs');require('./chunk-CK4JCQY6.cjs');exports.CrossmintAuthBaseContext = _chunkOQ2HEJ2Bcjs.e; exports.CrossmintAuthBaseProvider = _chunkOQ2HEJ2Bcjs.g; exports.CrossmintContext = _chunk4UWLWRLDcjs.a; exports.CrossmintProvider = _chunk4UWLWRLDcjs.b; exports.CrossmintWalletBaseContext = _chunkOQ2HEJ2Bcjs.a; exports.CrossmintWalletBaseProvider = _chunkOQ2HEJ2Bcjs.b; exports.CrossmintWalletUIBaseProvider = _chunkOQ2HEJ2Bcjs.d; exports.EVMWallet = _chunkPU5EOTE7cjs.a; exports.SolanaWallet = _chunkPU5EOTE7cjs.b; exports.StellarWallet = _chunkPU5EOTE7cjs.c; exports.useAuth = _chunkOQ2HEJ2Bcjs.i; exports.useCrossmint = _chunk56X52ZGBcjs.a; exports.useCrossmintAuth = _chunkOQ2HEJ2Bcjs.h; exports.useCrossmintAuthBase = _chunkOQ2HEJ2Bcjs.f; exports.useSignerAuth = _chunkQKCWSAPHcjs.a; exports.useWallet = _chunkOQ2HEJ2Bcjs.c;
package/dist/index.d.cts CHANGED
@@ -1,14 +1,16 @@
1
1
  export { useCrossmint } from './hooks/useCrossmint.cjs';
2
2
  export { useWallet } from './hooks/useWallet.cjs';
3
3
  export { useAuth, useCrossmintAuth } from './hooks/useAuth.cjs';
4
+ export { DialogStep, SignerAuthHandlers, SignerAuthState, SignerType, useSignerAuth } from './hooks/useSignerAuth.cjs';
4
5
  export { CrossmintWalletBaseContext, CrossmintWalletBaseProvider, CrossmintWalletBaseProviderProps } from './providers/CrossmintWalletBaseProvider.cjs';
6
+ export { CrossmintWalletUIBaseProvider, CrossmintWalletUIBaseProviderProps, UIRenderProps } from './providers/CrossmintWalletUIBaseProvider.cjs';
5
7
  export { CrossmintContext, CrossmintProvider } from './providers/CrossmintProvider.cjs';
6
8
  export { CrossmintAuthBaseContext, CrossmintAuthBaseProvider, useCrossmintAuthBase } from './providers/CrossmintAuthBaseProvider.cjs';
7
9
  export { BaseCrossmintWalletProviderProps, CreateOnLogin } from './types/wallet.cjs';
8
10
  export { AuthStatus, CrossmintAuthBaseContextType, CrossmintAuthBaseProviderProps, LoginMethod } from './types/auth.cjs';
9
11
  export { Balances, Chain, DelegatedSigner, EVMWallet, EvmExternalWalletSignerConfig, SolanaExternalWalletSignerConfig, SolanaWallet, StellarWallet, Wallet, WalletPlugin } from '@crossmint/wallets-sdk';
10
- import 'react/jsx-runtime';
11
12
  import 'react';
13
+ import 'react/jsx-runtime';
12
14
  import '@crossmint/client-sdk-window';
13
15
  import '@crossmint/client-signers';
14
16
  import '@crossmint/common-sdk-base';
package/dist/index.d.ts CHANGED
@@ -1,14 +1,16 @@
1
1
  export { useCrossmint } from './hooks/useCrossmint.js';
2
2
  export { useWallet } from './hooks/useWallet.js';
3
3
  export { useAuth, useCrossmintAuth } from './hooks/useAuth.js';
4
+ export { DialogStep, SignerAuthHandlers, SignerAuthState, SignerType, useSignerAuth } from './hooks/useSignerAuth.js';
4
5
  export { CrossmintWalletBaseContext, CrossmintWalletBaseProvider, CrossmintWalletBaseProviderProps } from './providers/CrossmintWalletBaseProvider.js';
6
+ export { CrossmintWalletUIBaseProvider, CrossmintWalletUIBaseProviderProps, UIRenderProps } from './providers/CrossmintWalletUIBaseProvider.js';
5
7
  export { CrossmintContext, CrossmintProvider } from './providers/CrossmintProvider.js';
6
8
  export { CrossmintAuthBaseContext, CrossmintAuthBaseProvider, useCrossmintAuthBase } from './providers/CrossmintAuthBaseProvider.js';
7
9
  export { BaseCrossmintWalletProviderProps, CreateOnLogin } from './types/wallet.js';
8
10
  export { AuthStatus, CrossmintAuthBaseContextType, CrossmintAuthBaseProviderProps, LoginMethod } from './types/auth.js';
9
11
  export { Balances, Chain, DelegatedSigner, EVMWallet, EvmExternalWalletSignerConfig, SolanaExternalWalletSignerConfig, SolanaWallet, StellarWallet, Wallet, WalletPlugin } from '@crossmint/wallets-sdk';
10
- import 'react/jsx-runtime';
11
12
  import 'react';
13
+ import 'react/jsx-runtime';
12
14
  import '@crossmint/client-sdk-window';
13
15
  import '@crossmint/client-signers';
14
16
  import '@crossmint/common-sdk-base';
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import"./chunk-B35TULQO.js";import{a as d,b as g,c as h}from"./chunk-3UZONNFB.js";import{a as f,b as m,c as p,d as t,e as x,f as a,g as b,h as c}from"./chunk-LJMUJ5YD.js";import{a as e}from"./chunk-B3EC7QUJ.js";import{a as o,b as r}from"./chunk-RPEGJASB.js";import"./chunk-22GIA4MK.js";export{t as CrossmintAuthBaseContext,a as CrossmintAuthBaseProvider,o as CrossmintContext,r as CrossmintProvider,f as CrossmintWalletBaseContext,m as CrossmintWalletBaseProvider,d as EVMWallet,g as SolanaWallet,h as StellarWallet,c as useAuth,e as useCrossmint,b as useCrossmintAuth,x as useCrossmintAuthBase,p as useWallet};
1
+ import"./chunk-B35TULQO.js";import{a as h,b as i,c as j}from"./chunk-3UZONNFB.js";import{a as f,b as m,c as p,d as x,e as a,f as b,g as c,h as d,i as g}from"./chunk-R55UKDZF.js";import{a as e}from"./chunk-B3EC7QUJ.js";import{a as t}from"./chunk-K7OZQQ55.js";import{a as o,b as r}from"./chunk-RPEGJASB.js";import"./chunk-22GIA4MK.js";export{a as CrossmintAuthBaseContext,c as CrossmintAuthBaseProvider,o as CrossmintContext,r as CrossmintProvider,f as CrossmintWalletBaseContext,m as CrossmintWalletBaseProvider,x as CrossmintWalletUIBaseProvider,h as EVMWallet,i as SolanaWallet,j as StellarWallet,g as useAuth,e as useCrossmint,d as useCrossmintAuth,b as useCrossmintAuthBase,t as useSignerAuth,p as useWallet};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTFK4FDBEcjs = require('../chunk-TFK4FDBE.cjs');require('../chunk-56X52ZGB.cjs');require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.CrossmintAuthBaseContext = _chunkTFK4FDBEcjs.d; exports.CrossmintAuthBaseProvider = _chunkTFK4FDBEcjs.f; exports.useCrossmintAuthBase = _chunkTFK4FDBEcjs.e;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkOQ2HEJ2Bcjs = require('../chunk-OQ2HEJ2B.cjs');require('../chunk-56X52ZGB.cjs');require('../chunk-QKCWSAPH.cjs');require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.CrossmintAuthBaseContext = _chunkOQ2HEJ2Bcjs.e; exports.CrossmintAuthBaseProvider = _chunkOQ2HEJ2Bcjs.g; exports.useCrossmintAuthBase = _chunkOQ2HEJ2Bcjs.f;
@@ -1 +1 @@
1
- import{d as a,e as b,f as c}from"../chunk-LJMUJ5YD.js";import"../chunk-B3EC7QUJ.js";import"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{a as CrossmintAuthBaseContext,c as CrossmintAuthBaseProvider,b as useCrossmintAuthBase};
1
+ import{e as a,f as b,g as c}from"../chunk-R55UKDZF.js";import"../chunk-B3EC7QUJ.js";import"../chunk-K7OZQQ55.js";import"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{a as CrossmintAuthBaseContext,c as CrossmintAuthBaseProvider,b as useCrossmintAuthBase};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTFK4FDBEcjs = require('../chunk-TFK4FDBE.cjs');require('../chunk-56X52ZGB.cjs');require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.CrossmintWalletBaseContext = _chunkTFK4FDBEcjs.a; exports.CrossmintWalletBaseProvider = _chunkTFK4FDBEcjs.b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkOQ2HEJ2Bcjs = require('../chunk-OQ2HEJ2B.cjs');require('../chunk-56X52ZGB.cjs');require('../chunk-QKCWSAPH.cjs');require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.CrossmintWalletBaseContext = _chunkOQ2HEJ2Bcjs.a; exports.CrossmintWalletBaseProvider = _chunkOQ2HEJ2Bcjs.b;
@@ -13,6 +13,12 @@ type CrossmintWalletBaseContext = {
13
13
  getOrCreateWallet: <C extends Chain>(props: WalletArgsFor<C>) => Promise<Wallet<Chain> | undefined>;
14
14
  onAuthRequired?: EmailSignerConfig["onAuthRequired"] | PhoneSignerConfig["onAuthRequired"];
15
15
  clientTEEConnection?: () => HandshakeParent<typeof signerOutboundEvents, typeof signerInboundEvents>;
16
+ emailSignerState: {
17
+ needsAuth: boolean;
18
+ sendEmailWithOtp: (() => Promise<void>) | null;
19
+ verifyOtp: ((otp: string) => Promise<void>) | null;
20
+ reject: ((error?: Error) => void) | null;
21
+ };
16
22
  };
17
23
  declare const CrossmintWalletBaseContext: react.Context<CrossmintWalletBaseContext>;
18
24
  interface CrossmintWalletBaseProviderProps {
@@ -13,6 +13,12 @@ type CrossmintWalletBaseContext = {
13
13
  getOrCreateWallet: <C extends Chain>(props: WalletArgsFor<C>) => Promise<Wallet<Chain> | undefined>;
14
14
  onAuthRequired?: EmailSignerConfig["onAuthRequired"] | PhoneSignerConfig["onAuthRequired"];
15
15
  clientTEEConnection?: () => HandshakeParent<typeof signerOutboundEvents, typeof signerInboundEvents>;
16
+ emailSignerState: {
17
+ needsAuth: boolean;
18
+ sendEmailWithOtp: (() => Promise<void>) | null;
19
+ verifyOtp: ((otp: string) => Promise<void>) | null;
20
+ reject: ((error?: Error) => void) | null;
21
+ };
16
22
  };
17
23
  declare const CrossmintWalletBaseContext: react.Context<CrossmintWalletBaseContext>;
18
24
  interface CrossmintWalletBaseProviderProps {
@@ -1 +1 @@
1
- import{a,b}from"../chunk-LJMUJ5YD.js";import"../chunk-B3EC7QUJ.js";import"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{a as CrossmintWalletBaseContext,b as CrossmintWalletBaseProvider};
1
+ import{a,b}from"../chunk-R55UKDZF.js";import"../chunk-B3EC7QUJ.js";import"../chunk-K7OZQQ55.js";import"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{a as CrossmintWalletBaseContext,b as CrossmintWalletBaseProvider};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkOQ2HEJ2Bcjs = require('../chunk-OQ2HEJ2B.cjs');require('../chunk-56X52ZGB.cjs');require('../chunk-QKCWSAPH.cjs');require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.CrossmintWalletUIBaseProvider = _chunkOQ2HEJ2Bcjs.d;
@@ -0,0 +1,59 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode, MutableRefObject } from 'react';
3
+ import { UIConfig } from '@crossmint/common-sdk-base';
4
+ import { HandshakeParent } from '@crossmint/client-sdk-window';
5
+ import { signerOutboundEvents, signerInboundEvents } from '@crossmint/client-signers';
6
+ import { CreateOnLogin } from '../types/wallet.cjs';
7
+ import '@crossmint/wallets-sdk';
8
+
9
+ interface CrossmintWalletUIBaseProviderProps {
10
+ children: ReactNode;
11
+ appearance?: UIConfig;
12
+ createOnLogin?: CreateOnLogin;
13
+ headlessSigningFlow?: boolean;
14
+ showPasskeyHelpers?: boolean;
15
+ callbacks?: {
16
+ onWalletCreationStart?: () => Promise<void>;
17
+ onTransactionStart?: () => Promise<void>;
18
+ };
19
+ initializeWebView?: () => Promise<void>;
20
+ renderUI?: (props: UIRenderProps) => ReactNode;
21
+ clientTEEConnection?: () => HandshakeParent<typeof signerOutboundEvents, typeof signerInboundEvents>;
22
+ }
23
+ interface UIRenderProps {
24
+ emailSignerProps: {
25
+ email?: string;
26
+ open: boolean;
27
+ setOpen: (open: boolean) => void;
28
+ step: "initial" | "otp";
29
+ onSubmitOTP: (token: string) => Promise<void>;
30
+ onResendOTPCode: () => Promise<void>;
31
+ onSubmitEmail: () => Promise<void>;
32
+ rejectRef: MutableRefObject<(error?: Error) => void>;
33
+ appearance?: UIConfig;
34
+ };
35
+ phoneSignerProps: {
36
+ phone?: string;
37
+ open: boolean;
38
+ setOpen: (open: boolean) => void;
39
+ step: "initial" | "otp";
40
+ onSubmitOTP: (token: string) => Promise<void>;
41
+ onResendOTPCode: () => Promise<void>;
42
+ onSubmitPhone: () => Promise<void>;
43
+ rejectRef: MutableRefObject<(error?: Error) => void>;
44
+ appearance?: UIConfig;
45
+ };
46
+ passkeyPromptProps?: {
47
+ state: {
48
+ open: boolean;
49
+ type?: ValidPasskeyPromptType;
50
+ primaryActionOnClick?: () => void;
51
+ secondaryActionOnClick?: () => void;
52
+ };
53
+ appearance?: UIConfig;
54
+ };
55
+ }
56
+ type ValidPasskeyPromptType = "create-wallet" | "transaction" | "not-supported" | "create-wallet-error" | "transaction-error";
57
+ declare function CrossmintWalletUIBaseProvider({ children, appearance, createOnLogin, headlessSigningFlow, showPasskeyHelpers, callbacks, initializeWebView, renderUI, clientTEEConnection, }: CrossmintWalletUIBaseProviderProps): react_jsx_runtime.JSX.Element;
58
+
59
+ export { CrossmintWalletUIBaseProvider, type CrossmintWalletUIBaseProviderProps, type UIRenderProps };
@@ -0,0 +1,59 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { ReactNode, MutableRefObject } from 'react';
3
+ import { UIConfig } from '@crossmint/common-sdk-base';
4
+ import { HandshakeParent } from '@crossmint/client-sdk-window';
5
+ import { signerOutboundEvents, signerInboundEvents } from '@crossmint/client-signers';
6
+ import { CreateOnLogin } from '../types/wallet.js';
7
+ import '@crossmint/wallets-sdk';
8
+
9
+ interface CrossmintWalletUIBaseProviderProps {
10
+ children: ReactNode;
11
+ appearance?: UIConfig;
12
+ createOnLogin?: CreateOnLogin;
13
+ headlessSigningFlow?: boolean;
14
+ showPasskeyHelpers?: boolean;
15
+ callbacks?: {
16
+ onWalletCreationStart?: () => Promise<void>;
17
+ onTransactionStart?: () => Promise<void>;
18
+ };
19
+ initializeWebView?: () => Promise<void>;
20
+ renderUI?: (props: UIRenderProps) => ReactNode;
21
+ clientTEEConnection?: () => HandshakeParent<typeof signerOutboundEvents, typeof signerInboundEvents>;
22
+ }
23
+ interface UIRenderProps {
24
+ emailSignerProps: {
25
+ email?: string;
26
+ open: boolean;
27
+ setOpen: (open: boolean) => void;
28
+ step: "initial" | "otp";
29
+ onSubmitOTP: (token: string) => Promise<void>;
30
+ onResendOTPCode: () => Promise<void>;
31
+ onSubmitEmail: () => Promise<void>;
32
+ rejectRef: MutableRefObject<(error?: Error) => void>;
33
+ appearance?: UIConfig;
34
+ };
35
+ phoneSignerProps: {
36
+ phone?: string;
37
+ open: boolean;
38
+ setOpen: (open: boolean) => void;
39
+ step: "initial" | "otp";
40
+ onSubmitOTP: (token: string) => Promise<void>;
41
+ onResendOTPCode: () => Promise<void>;
42
+ onSubmitPhone: () => Promise<void>;
43
+ rejectRef: MutableRefObject<(error?: Error) => void>;
44
+ appearance?: UIConfig;
45
+ };
46
+ passkeyPromptProps?: {
47
+ state: {
48
+ open: boolean;
49
+ type?: ValidPasskeyPromptType;
50
+ primaryActionOnClick?: () => void;
51
+ secondaryActionOnClick?: () => void;
52
+ };
53
+ appearance?: UIConfig;
54
+ };
55
+ }
56
+ type ValidPasskeyPromptType = "create-wallet" | "transaction" | "not-supported" | "create-wallet-error" | "transaction-error";
57
+ declare function CrossmintWalletUIBaseProvider({ children, appearance, createOnLogin, headlessSigningFlow, showPasskeyHelpers, callbacks, initializeWebView, renderUI, clientTEEConnection, }: CrossmintWalletUIBaseProviderProps): react_jsx_runtime.JSX.Element;
58
+
59
+ export { CrossmintWalletUIBaseProvider, type CrossmintWalletUIBaseProviderProps, type UIRenderProps };
@@ -0,0 +1 @@
1
+ import{d as a}from"../chunk-R55UKDZF.js";import"../chunk-B3EC7QUJ.js";import"../chunk-K7OZQQ55.js";import"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{a as CrossmintWalletUIBaseProvider};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkTFK4FDBEcjs = require('../chunk-TFK4FDBE.cjs');require('../chunk-56X52ZGB.cjs');var _chunk4UWLWRLDcjs = require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.CrossmintAuthBaseContext = _chunkTFK4FDBEcjs.d; exports.CrossmintAuthBaseProvider = _chunkTFK4FDBEcjs.f; exports.CrossmintContext = _chunk4UWLWRLDcjs.a; exports.CrossmintProvider = _chunk4UWLWRLDcjs.b; exports.CrossmintWalletBaseContext = _chunkTFK4FDBEcjs.a; exports.CrossmintWalletBaseProvider = _chunkTFK4FDBEcjs.b; exports.useCrossmintAuthBase = _chunkTFK4FDBEcjs.e;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkOQ2HEJ2Bcjs = require('../chunk-OQ2HEJ2B.cjs');require('../chunk-56X52ZGB.cjs');require('../chunk-QKCWSAPH.cjs');var _chunk4UWLWRLDcjs = require('../chunk-4UWLWRLD.cjs');require('../chunk-CK4JCQY6.cjs');exports.CrossmintAuthBaseContext = _chunkOQ2HEJ2Bcjs.e; exports.CrossmintAuthBaseProvider = _chunkOQ2HEJ2Bcjs.g; exports.CrossmintContext = _chunk4UWLWRLDcjs.a; exports.CrossmintProvider = _chunk4UWLWRLDcjs.b; exports.CrossmintWalletBaseContext = _chunkOQ2HEJ2Bcjs.a; exports.CrossmintWalletBaseProvider = _chunkOQ2HEJ2Bcjs.b; exports.CrossmintWalletUIBaseProvider = _chunkOQ2HEJ2Bcjs.d; exports.useCrossmintAuthBase = _chunkOQ2HEJ2Bcjs.f;
@@ -1,4 +1,5 @@
1
1
  export { CrossmintWalletBaseContext, CrossmintWalletBaseProvider, CrossmintWalletBaseProviderProps } from './CrossmintWalletBaseProvider.cjs';
2
+ export { CrossmintWalletUIBaseProvider, CrossmintWalletUIBaseProviderProps, UIRenderProps } from './CrossmintWalletUIBaseProvider.cjs';
2
3
  export { CrossmintContext, CrossmintProvider } from './CrossmintProvider.cjs';
3
4
  export { CrossmintAuthBaseContext, CrossmintAuthBaseProvider, useCrossmintAuthBase } from './CrossmintAuthBaseProvider.cjs';
4
5
  import 'react/jsx-runtime';
@@ -1,4 +1,5 @@
1
1
  export { CrossmintWalletBaseContext, CrossmintWalletBaseProvider, CrossmintWalletBaseProviderProps } from './CrossmintWalletBaseProvider.js';
2
+ export { CrossmintWalletUIBaseProvider, CrossmintWalletUIBaseProviderProps, UIRenderProps } from './CrossmintWalletUIBaseProvider.js';
2
3
  export { CrossmintContext, CrossmintProvider } from './CrossmintProvider.js';
3
4
  export { CrossmintAuthBaseContext, CrossmintAuthBaseProvider, useCrossmintAuthBase } from './CrossmintAuthBaseProvider.js';
4
5
  import 'react/jsx-runtime';
@@ -1 +1 @@
1
- import{a as c,b as d,d as e,e as f,f as g}from"../chunk-LJMUJ5YD.js";import"../chunk-B3EC7QUJ.js";import{a,b}from"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{e as CrossmintAuthBaseContext,g as CrossmintAuthBaseProvider,a as CrossmintContext,b as CrossmintProvider,c as CrossmintWalletBaseContext,d as CrossmintWalletBaseProvider,f as useCrossmintAuthBase};
1
+ import{a as c,b as d,d as e,e as f,f as g,g as h}from"../chunk-R55UKDZF.js";import"../chunk-B3EC7QUJ.js";import"../chunk-K7OZQQ55.js";import{a,b}from"../chunk-RPEGJASB.js";import"../chunk-22GIA4MK.js";export{f as CrossmintAuthBaseContext,h as CrossmintAuthBaseProvider,a as CrossmintContext,b as CrossmintProvider,c as CrossmintWalletBaseContext,d as CrossmintWalletBaseProvider,e as CrossmintWalletUIBaseProvider,g as useCrossmintAuthBase};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crossmint/client-sdk-react-base",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "repository": "https://github.com/Crossmint/crossmint-sdk",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Paella Labs Inc",
@@ -20,13 +20,13 @@
20
20
  "dependencies": {
21
21
  "lodash.isequal": "4.5.0",
22
22
  "lodash.clonedeep": "4.5.0",
23
- "@crossmint/common-sdk-auth": "1.0.58",
24
- "@crossmint/common-sdk-base": "0.9.7",
25
- "@crossmint/client-sdk-auth": "1.2.36",
26
- "@crossmint/client-sdk-base": "1.7.3",
23
+ "@crossmint/common-sdk-auth": "1.0.59",
24
+ "@crossmint/client-sdk-auth": "1.2.37",
25
+ "@crossmint/client-sdk-base": "1.7.4",
26
+ "@crossmint/common-sdk-base": "0.9.8",
27
27
  "@crossmint/client-sdk-window": "1.0.5",
28
- "@crossmint/client-signers": "0.0.20",
29
- "@crossmint/wallets-sdk": "0.18.1"
28
+ "@crossmint/client-signers": "0.1.0",
29
+ "@crossmint/wallets-sdk": "0.18.3"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/react": "19.0.12",
@@ -1 +0,0 @@
1
- import{a as A}from"./chunk-B3EC7QUJ.js";import{a as I,b as U,c as v}from"./chunk-22GIA4MK.js";import{createContext as ie,useCallback as le,useEffect as G,useMemo as ae,useState as Q}from"react";import{CrossmintWallets as ue}from"@crossmint/wallets-sdk";import{useContext as Y}from"react";function me(){let s=Y(b);if(!s)throw new Error("useWallet must be used within CrossmintWalletProvider");return s}import{useContext as oe}from"react";import{createContext as Z,useCallback as E,useContext as $,useEffect as O,useMemo as V,useRef as L,useState as k}from"react";import{CrossmintAuth as _,getCookie as ee}from"@crossmint/client-sdk-auth";import{SESSION_PREFIX as X}from"@crossmint/common-sdk-auth";import{jsx as re}from"react/jsx-runtime";var W=Z({crossmintAuth:void 0,logout:()=>{},status:"initializing",getUser:()=>{},login:()=>{}});function te(){let s=$(W);if(s==null)throw new Error("useCrossmintAuthBase must be used within CrossmintAuthBaseProvider");return s}function ne({children:s,onLoginSuccess:l,refreshRoute:a,logoutRoute:p,storageProvider:r}){let{crossmint:h}=A("CrossmintAuthBaseProvider must be used within CrossmintProvider"),[c,e]=k(void 0),[n,f]=k(void 0),[u,C]=k(!1),g=L(null);O(()=>{if(!g.current)try{g.current=_.from(h,{callbacks:{onLogout:()=>{e(void 0),f(void 0)},onTokenRefresh:o=>{e(o.user),f(o.jwt)}},refreshRoute:a,logoutRoute:p,storageProvider:r})}catch(o){console.error("Failed to initialize CrossmintAuth:",o)}},[h,a,p,r]);let i=g.current,S=E(()=>{l==null||l()},[l]);O(()=>{var o;if(n==null)if(r)(o=r.get)==null||o.call(r,X).then(d=>{d!=null&&f(d)}).finally(()=>{C(!0)});else{try{let d=ee(X);f(d)}catch(d){console.error("Failed to get cookie:",d)}C(!0)}else C(!0)},[n,r]),O(()=>{n!=null&&S()},[n,S]);let t=E(()=>{i==null||i.logout()},[i]),y=E(()=>v(this,null,function*(){if(n==null){console.log("User not logged in");return}let o=yield i==null?void 0:i.getUser();return e(o),o}),[n,i]),x=E(()=>u?n!=null?"logged-in":"logged-out":"initializing",[n,u]),B=V(()=>({crossmintAuth:i,logout:t,jwt:n,user:c,status:x(),getUser:y,login:()=>{}}),[i,t,n,c,u,y,x]);return re(W.Provider,{value:B,children:s})}function se(){let s=oe(W);if(s==null)throw new Error("useCrossmintAuth must be used within a CrossmintAuthProvider");return s}var Ie=se;import de from"lodash.clonedeep";import{jsx as fe}from"react/jsx-runtime";var b=ie({wallet:void 0,status:"not-loaded",getOrCreateWallet:()=>Promise.resolve(void 0),onAuthRequired:void 0,clientTEEConnection:void 0});function Me({children:s,createOnLogin:l,callbacks:a,onAuthRequired:p,clientTEEConnection:r,initializeWebView:h}){let{crossmint:c,experimental_customAuth:e}=A("CrossmintWalletBaseProvider must be used within CrossmintProvider"),[n,f]=Q(void 0),[u,C]=Q("not-loaded"),g=le(S=>v(this,null,function*(){var y,x,B,o,d,N,H,j,D,z,J,K;let t=de(S);if(!((e==null?void 0:e.jwt)==null||u==="in-progress")){if(n!=null)return n;try{C("in-progress");let R=ue.from(c),q=(x=(y=t.options)==null?void 0:y.experimental_callbacks)==null?void 0:x.onWalletCreationStart,F=(o=(B=t.options)==null?void 0:B.experimental_callbacks)==null?void 0:o.onTransactionStart;if(((d=t==null?void 0:t.signer)==null?void 0:d.type)==="email"){let m=(N=t.signer.email)!=null?N:e==null?void 0:e.email,T=(H=t.signer.onAuthRequired)!=null?H:p;if(m==null)throw new Error("Email not found in experimental_customAuth or signer. Please set email in experimental_customAuth or signer.");t.signer=U(I({},t.signer),{email:m,onAuthRequired:T})}if(((j=t==null?void 0:t.signer)==null?void 0:j.type)==="phone"){let m=(D=t.signer.phone)!=null?D:e==null?void 0:e.phone,T=(z=t.signer.onAuthRequired)!=null?z:p;if(m==null)throw new Error("Phone not found in signer. Please set phone in signer.");t.signer=U(I({},t.signer),{phone:m,onAuthRequired:T})}if(((J=t==null?void 0:t.signer)==null?void 0:J.type)==="external-wallet"){let m=((K=t.signer)==null?void 0:K.address)!=null?t.signer:e.externalWalletSigner;if(m==null)throw new Error("External wallet config not found in experimental_customAuth or signer. Please set it in experimental_customAuth or signer.");t.signer=m}(t.signer.type==="email"||t.signer.type==="phone")&&(yield h==null?void 0:h());let M=yield R.getOrCreateWallet({chain:t.chain,signer:t.signer,owner:t.owner,plugins:t.plugins,delegatedSigners:t.delegatedSigners,alias:t.alias,options:{clientTEEConnection:r==null?void 0:r(),experimental_callbacks:{onWalletCreationStart:q!=null?q:a==null?void 0:a.onWalletCreationStart,onTransactionStart:F!=null?F:a==null?void 0:a.onTransactionStart}}});return f(M),C("loaded"),M}catch(R){console.error("Failed to create wallet:",R),f(void 0),C("error");return}}}),[c,e]);G(()=>{if(l!=null){if(l.signer.type==="email"&&(e==null?void 0:e.email)==null||l.signer.type==="external-wallet"&&(e==null?void 0:e.externalWalletSigner)==null&&l.signer.address==null)return;g(l)}},[l,g,e==null?void 0:e.email,e==null?void 0:e.externalWalletSigner]),G(()=>{(e==null?void 0:e.jwt)==null&&u!=="not-loaded"&&(C("not-loaded"),f(void 0))},[e==null?void 0:e.jwt,u]);let i=ae(()=>({wallet:n,status:u,getOrCreateWallet:g,onAuthRequired:p,clientTEEConnection:r}),[g,n,u,p,r]);return fe(b.Provider,{value:i,children:s})}export{b as a,Me as b,me as c,W as d,te as e,ne as f,se as g,Ie as h};
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunk56X52ZGBcjs = require('./chunk-56X52ZGB.cjs');var _chunkCK4JCQY6cjs = require('./chunk-CK4JCQY6.cjs');var _react = require('react');var _walletssdk = require('@crossmint/wallets-sdk');function ge(){let s=_react.useContext.call(void 0, U);if(!s)throw new Error("useWallet must be used within CrossmintWalletProvider");return s}var _clientsdkauth = require('@crossmint/client-sdk-auth');var _commonsdkauth = require('@crossmint/common-sdk-auth');var _jsxruntime = require('react/jsx-runtime');var P=_react.createContext.call(void 0, {crossmintAuth:void 0,logout:()=>{},status:"initializing",getUser:()=>{},login:()=>{}});function ee(){let s=_react.useContext.call(void 0, P);if(s==null)throw new Error("useCrossmintAuthBase must be used within CrossmintAuthBaseProvider");return s}function te({children:s,onLoginSuccess:l,refreshRoute:a,logoutRoute:p,storageProvider:r}){let{crossmint:h}=_chunk56X52ZGBcjs.a.call(void 0, "CrossmintAuthBaseProvider must be used within CrossmintProvider"),[c,e]=_react.useState.call(void 0, void 0),[n,f]=_react.useState.call(void 0, void 0),[u,C]=_react.useState.call(void 0, !1),g=_react.useRef.call(void 0, null);_react.useEffect.call(void 0, ()=>{if(!g.current)try{g.current=_clientsdkauth.CrossmintAuth.from(h,{callbacks:{onLogout:()=>{e(void 0),f(void 0)},onTokenRefresh:o=>{e(o.user),f(o.jwt)}},refreshRoute:a,logoutRoute:p,storageProvider:r})}catch(o){console.error("Failed to initialize CrossmintAuth:",o)}},[h,a,p,r]);let i=g.current,W=_react.useCallback.call(void 0, ()=>{l==null||l()},[l]);_react.useEffect.call(void 0, ()=>{var o;if(n==null)if(r)(o=r.get)==null||o.call(r,_commonsdkauth.SESSION_PREFIX).then(d=>{d!=null&&f(d)}).finally(()=>{C(!0)});else{try{let d=_clientsdkauth.getCookie.call(void 0, _commonsdkauth.SESSION_PREFIX);f(d)}catch(d){console.error("Failed to get cookie:",d)}C(!0)}else C(!0)},[n,r]),_react.useEffect.call(void 0, ()=>{n!=null&&W()},[n,W]);let t=_react.useCallback.call(void 0, ()=>{i==null||i.logout()},[i]),y=_react.useCallback.call(void 0, ()=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){if(n==null){console.log("User not logged in");return}let o=yield i==null?void 0:i.getUser();return e(o),o}),[n,i]),x=_react.useCallback.call(void 0, ()=>u?n!=null?"logged-in":"logged-out":"initializing",[n,u]),S=_react.useMemo.call(void 0, ()=>({crossmintAuth:i,logout:t,jwt:n,user:c,status:x(),getUser:y,login:()=>{}}),[i,t,n,c,u,y,x]);return _jsxruntime.jsx.call(void 0, P.Provider,{value:S,children:s})}function oe(){let s=_react.useContext.call(void 0, P);if(s==null)throw new Error("useCrossmintAuth must be used within a CrossmintAuthProvider");return s}var Te=oe;var _lodashclonedeep = require('lodash.clonedeep'); var _lodashclonedeep2 = _interopRequireDefault(_lodashclonedeep);var U=_react.createContext.call(void 0, {wallet:void 0,status:"not-loaded",getOrCreateWallet:()=>Promise.resolve(void 0),onAuthRequired:void 0,clientTEEConnection:void 0});function Ke({children:s,createOnLogin:l,callbacks:a,onAuthRequired:p,clientTEEConnection:r,initializeWebView:h}){let{crossmint:c,experimental_customAuth:e}=_chunk56X52ZGBcjs.a.call(void 0, "CrossmintWalletBaseProvider must be used within CrossmintProvider"),[n,f]=_react.useState.call(void 0, void 0),[u,C]=_react.useState.call(void 0, "not-loaded"),g=_react.useCallback.call(void 0, W=>_chunkCK4JCQY6cjs.c.call(void 0, this,null,function*(){var y,x,S,o,d,k,N,H,j,D,z,J;let t=_lodashclonedeep2.default.call(void 0, W);if(!((e==null?void 0:e.jwt)==null||u==="in-progress")){if(n!=null)return n;try{C("in-progress");let E=_walletssdk.CrossmintWallets.from(c),R=(x=(y=t.options)==null?void 0:y.experimental_callbacks)==null?void 0:x.onWalletCreationStart,q=(o=(S=t.options)==null?void 0:S.experimental_callbacks)==null?void 0:o.onTransactionStart;if(((d=t==null?void 0:t.signer)==null?void 0:d.type)==="email"){let m=(k=t.signer.email)!=null?k:e==null?void 0:e.email,F=(N=t.signer.onAuthRequired)!=null?N:p;if(m==null)throw new Error("Email not found in experimental_customAuth or signer. Please set email in experimental_customAuth or signer.");t.signer=_chunkCK4JCQY6cjs.b.call(void 0, _chunkCK4JCQY6cjs.a.call(void 0, {},t.signer),{email:m,onAuthRequired:F})}if(((H=t==null?void 0:t.signer)==null?void 0:H.type)==="phone"){let m=(j=t.signer.phone)!=null?j:e==null?void 0:e.phone,F=(D=t.signer.onAuthRequired)!=null?D:p;if(m==null)throw new Error("Phone not found in signer. Please set phone in signer.");t.signer=_chunkCK4JCQY6cjs.b.call(void 0, _chunkCK4JCQY6cjs.a.call(void 0, {},t.signer),{phone:m,onAuthRequired:F})}if(((z=t==null?void 0:t.signer)==null?void 0:z.type)==="external-wallet"){let m=((J=t.signer)==null?void 0:J.address)!=null?t.signer:e.externalWalletSigner;if(m==null)throw new Error("External wallet config not found in experimental_customAuth or signer. Please set it in experimental_customAuth or signer.");t.signer=m}(t.signer.type==="email"||t.signer.type==="phone")&&(yield h==null?void 0:h());let K=yield E.getOrCreateWallet({chain:t.chain,signer:t.signer,owner:t.owner,plugins:t.plugins,delegatedSigners:t.delegatedSigners,alias:t.alias,options:{clientTEEConnection:r==null?void 0:r(),experimental_callbacks:{onWalletCreationStart:R!=null?R:a==null?void 0:a.onWalletCreationStart,onTransactionStart:q!=null?q:a==null?void 0:a.onTransactionStart}}});return f(K),C("loaded"),K}catch(E){console.error("Failed to create wallet:",E),f(void 0),C("error");return}}}),[c,e]);_react.useEffect.call(void 0, ()=>{if(l!=null){if(l.signer.type==="email"&&(e==null?void 0:e.email)==null||l.signer.type==="external-wallet"&&(e==null?void 0:e.externalWalletSigner)==null&&l.signer.address==null)return;g(l)}},[l,g,e==null?void 0:e.email,e==null?void 0:e.externalWalletSigner]),_react.useEffect.call(void 0, ()=>{(e==null?void 0:e.jwt)==null&&u!=="not-loaded"&&(C("not-loaded"),f(void 0))},[e==null?void 0:e.jwt,u]);let i=_react.useMemo.call(void 0, ()=>({wallet:n,status:u,getOrCreateWallet:g,onAuthRequired:p,clientTEEConnection:r}),[g,n,u,p,r]);return _jsxruntime.jsx.call(void 0, U.Provider,{value:i,children:s})}exports.a = U; exports.b = Ke; exports.c = ge; exports.d = P; exports.e = ee; exports.f = te; exports.g = oe; exports.h = Te;