@crossmint/client-sdk-react-native-ui 0.4.1 → 0.4.3

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.
@@ -0,0 +1 @@
1
+ import{e as S}from"./chunk-NP3T43SL.js";import{b as u}from"./chunk-TKB736C5.js";import I,{useCallback as d,useContext as N,useEffect as D,useRef as V,useState as E,useMemo as W}from"react";import v from"bs58";import{PublicKey as L}from"@solana/web3.js";import{RNWebView as q}from"@crossmint/client-sdk-rn-window";import{WebViewParent as F}from"@crossmint/client-sdk-rn-window";import{signerInboundEvents as j,signerOutboundEvents as J}from"@crossmint/client-signers";import{View as $}from"react-native";import{jsx as _,jsxs as G}from"react/jsx-runtime";var k=I.createContext(null);function oe(){let y=N(k);if(y==null)throw new Error("useCrossmintRecoveryKey must be used within a CrossmintRecoveryKeyProvider");return y}var h={timeoutMs:1e4,intervalMs:5e3},z="https://crossmint-signer-frames.onrender.com";function ae({children:y,experimental_secureEndpointUrl:M=z}){let{crossmint:{apiKey:o,jwt:a,appId:f}}=S(),b=V(null),i=V(null),[P,R]=E(null),[p,g]=E(!1),[x,c]=E("not-loaded"),T=W(()=>f!=null?`window.crossmintAppId = '${f}';`:"",[f]);D(()=>{b.current!=null&&i.current==null&&(i.current=new F(b,{incomingEvents:J,outgoingEvents:j}))},[]);let A=d(()=>u(this,null,function*(){if(i.current!=null)try{yield i.current.handshakeWithChild(),g(!0),c("frame-loaded")}catch(t){console.error("[RN] handshakeWithChild error:",t),g(!1),c("not-loaded")}}),[]),O=d(t=>{let s=i.current;if(s!=null){try{let n=JSON.parse(t.nativeEvent.data);if(n&&typeof n.type=="string"&&n.type.startsWith("console.")){let e=n.type.split(".")[1],r=(n.data||[]).map(l=>{try{return l==="[Function]"||l==="[Circular Reference]"||l==="[Unserializable Object]"?l:JSON.parse(l)}catch(H){return l}}),w=`[WebView:${e.toUpperCase()}]`;switch(e){case"log":console.log(w,...r);break;case"error":console.error(w,...r);break;case"warn":console.warn(w,...r);break;case"info":console.info(w,...r);break;default:console.log(`[WebView Unknown:${e}]`,...r)}return}}catch(n){}s.handleMessage(t)}},[]),m=d(t=>{let s=i.current;if(s==null||a==null||o==null)throw new Error("Cannot build signer: Missing prerequisites (parent, jwt, apiKey).");return{type:"solana-keypair",address:t,signer:{signMessage:n=>u(this,null,function*(){try{let e=yield s.sendAction({event:"request:sign",responseEvent:"response:sign",data:{authData:{jwt:a,apiKey:o},data:{bytes:v.encode(n),keyType:"ed25519",encoding:"base58"}},options:h});if(e==null||e.status==="error"||e.signature==null)throw new Error("Failed to sign message");return v.decode(e.signature)}catch(e){throw e}}),signTransaction:n=>u(this,null,function*(){try{let e=n.message.serialize(),r=yield s.sendAction({event:"request:sign",responseEvent:"response:sign",data:{authData:{jwt:a,apiKey:o},data:{bytes:v.encode(e),keyType:"ed25519",encoding:"base58"}},options:h});if(r==null||r.status==="error"||r.signature==null)throw new Error("Failed to sign transaction: No signature returned");return n.addSignature(new L(t),v.decode(r.signature)),n}catch(e){throw e}})}}},[a,o]),C=d(t=>u(this,null,function*(){let s=i.current;if(s==null||!p){let e="WebViewParent not ready or handshake incomplete.";throw new Error(e)}if(a==null||o==null){let e="Missing authentication credentials (JWT or API Key).";throw new Error(e)}let n=t.startsWith("email:")?t:`email:${t}`;try{let e=yield s.sendAction({event:"request:create-signer",responseEvent:"response:create-signer",data:{authData:{jwt:a,apiKey:o},data:{authId:n,chainLayer:"solana"}},options:h});if((e==null?void 0:e.status)==="success"&&e.address){let r=m(e.address);return R(r),c("loaded"),r}return c("awaiting-otp-validation"),null}catch(e){throw c("not-loaded"),e}}),[p,a,o,m]),K=d(t=>u(this,null,function*(){R(null);let s=i.current;if(s==null||!p){let n="WebViewParent not ready or handshake incomplete.";throw new Error(n)}if(a==null||o==null){let n="Missing authentication credentials (JWT or API Key).";throw new Error(n)}try{let n=yield s.sendAction({event:"request:send-otp",responseEvent:"response:send-otp",data:{authData:{jwt:a,apiKey:o},data:{chainLayer:"solana",encryptedOtp:t}},options:h});if(n==null||n.status==="error"||n.address==null)throw new Error("Failed to validate encrypted OTP");let e=m(n.address);return R(e),c("loaded"),n.address}catch(n){return c("not-loaded"),null}}),[p,a,o,m]),U=W(()=>({experimental_recoveryKeyStatus:x,experimental_recoverySigner:P,experimental_createRecoveryKeySigner:C,experimental_validateEmailOtp:K}),[x,P,C,K]);return G(k.Provider,{value:U,children:[y,_($,{style:{position:"absolute",width:0,height:0,overflow:"hidden"},children:_(q,{ref:b,source:{uri:M},onLoadEnd:A,onMessage:O,onError:()=>g(!1),onHttpError:()=>g(!1),style:{width:1,height:1},injectedGlobals:T})})]})}export{k as a,oe as b,ae as c};
@@ -1 +1 @@
1
- import{a as c,c as m}from"./chunk-IGSKGHQ6.js";import{a as i}from"./chunk-JNYZIWPY.js";import{a as l}from"./chunk-TKB736C5.js";import{useContext as v,useMemo as y}from"react";import{CrossmintWalletProvider as d,WalletContext as C}from"@crossmint/client-sdk-react-base";import{jsx as o}from"react/jsx-runtime";var p=["experimental_recoveryKeyStatus","experimental_recoverySigner","experimental_createRecoveryKeySigner","experimental_validateEmailOtp"];function u({children:n}){let e=v(C),t=v(c);if(e==null)throw new Error("BaseWalletContext not found. Ensure CrossmintWalletProvider structure is correct.");let r=y(()=>{let s=l({},e);if(t!=null)Object.assign(s,t);else for(let a of p)Object.defineProperty(s,a,{get(){throw new Error(`Cannot access '${a}'. Ensure 'useRecoveryKey={true}' is set on CrossmintWalletProvider.`)},enumerable:!0,configurable:!0});return s},[e,t]);return o(i.Provider,{value:r,children:n})}function S({children:n,experimental_enableRecoveryKeys:e=!1,experimental_secureEndpointUrl:t}){let r=o(d,{children:o(u,{children:n})});return e?o(m,{experimental_secureEndpointUrl:t,children:r}):r}export{S as a};
1
+ import{a as c,c as m}from"./chunk-5AFOALYE.js";import{a as i}from"./chunk-JNYZIWPY.js";import{a as l}from"./chunk-TKB736C5.js";import{useContext as v,useMemo as y}from"react";import{CrossmintWalletProvider as d,WalletContext as C}from"@crossmint/client-sdk-react-base";import{jsx as o}from"react/jsx-runtime";var p=["experimental_recoveryKeyStatus","experimental_recoverySigner","experimental_createRecoveryKeySigner","experimental_validateEmailOtp"];function u({children:n}){let e=v(C),t=v(c);if(e==null)throw new Error("BaseWalletContext not found. Ensure CrossmintWalletProvider structure is correct.");let r=y(()=>{let s=l({},e);if(t!=null)Object.assign(s,t);else for(let a of p)Object.defineProperty(s,a,{get(){throw new Error(`Cannot access '${a}'. Ensure 'useRecoveryKey={true}' is set on CrossmintWalletProvider.`)},enumerable:!0,configurable:!0});return s},[e,t]);return o(i.Provider,{value:r,children:n})}function S({children:n,experimental_enableRecoveryKeys:e=!1,experimental_secureEndpointUrl:t}){let r=o(d,{children:o(u,{children:n})});return e?o(m,{experimental_secureEndpointUrl:t,children:r}):r}export{S 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 _chunkK7HBZCC4cjs = require('./chunk-K7HBZCC4.cjs');var _chunkO5AL6DBJcjs = require('./chunk-O5AL6DBJ.cjs');var _react = require('react'); var _react2 = _interopRequireDefault(_react);var _bs58 = require('bs58'); var _bs582 = _interopRequireDefault(_bs58);var _web3js = require('@solana/web3.js');var _clientsdkrnwindow = require('@crossmint/client-sdk-rn-window');var _clientsigners = require('@crossmint/client-signers');var _reactnative = require('react-native');var _jsxruntime = require('react/jsx-runtime');var k=_react2.default.createContext(null);function se(){let y=_react.useContext.call(void 0, k);if(y==null)throw new Error("useCrossmintRecoveryKey must be used within a CrossmintRecoveryKeyProvider");return y}var h={timeoutMs:1e4,intervalMs:5e3},z="https://crossmint-signer-frames.onrender.com";function oe({children:y,experimental_secureEndpointUrl:M=z}){let{crossmint:{apiKey:o,jwt:a,appId:f}}=_chunkK7HBZCC4cjs.e.call(void 0, ),b=_react.useRef.call(void 0, null),i=_react.useRef.call(void 0, null),[P,R]=_react.useState.call(void 0, null),[p,g]=_react.useState.call(void 0, !1),[x,c]=_react.useState.call(void 0, "not-loaded"),T=_react.useMemo.call(void 0, ()=>f!=null?`window.crossmintAppId = '${f}';`:"",[f]);_react.useEffect.call(void 0, ()=>{b.current!=null&&i.current==null&&(i.current=new (0, _clientsdkrnwindow.WebViewParent)(b,{incomingEvents:_clientsigners.signerOutboundEvents,outgoingEvents:_clientsigners.signerInboundEvents}))},[]);let A=_react.useCallback.call(void 0, ()=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){if(i.current!=null)try{yield i.current.handshakeWithChild(),g(!0),c("frame-loaded")}catch(t){console.error("[RN] handshakeWithChild error:",t),g(!1),c("not-loaded")}}),[]),O=_react.useCallback.call(void 0, t=>{let s=i.current;if(s!=null){try{let n=JSON.parse(t.nativeEvent.data);if(n&&typeof n.type=="string"&&n.type.startsWith("console.")){let e=n.type.split(".")[1],r=(n.data||[]).map(l=>{try{return l==="[Function]"||l==="[Circular Reference]"||l==="[Unserializable Object]"?l:JSON.parse(l)}catch(H){return l}}),w=`[WebView:${e.toUpperCase()}]`;switch(e){case"log":console.log(w,...r);break;case"error":console.error(w,...r);break;case"warn":console.warn(w,...r);break;case"info":console.info(w,...r);break;default:console.log(`[WebView Unknown:${e}]`,...r)}return}}catch(n){}s.handleMessage(t)}},[]),m=_react.useCallback.call(void 0, t=>{let s=i.current;if(s==null||a==null||o==null)throw new Error("Cannot build signer: Missing prerequisites (parent, jwt, apiKey).");return{type:"solana-keypair",address:t,signer:{signMessage:n=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){try{let e=yield s.sendAction({event:"request:sign",responseEvent:"response:sign",data:{authData:{jwt:a,apiKey:o},data:{bytes:_bs582.default.encode(n),keyType:"ed25519",encoding:"base58"}},options:h});if(e==null||e.status==="error"||e.signature==null)throw new Error("Failed to sign message");return _bs582.default.decode(e.signature)}catch(e){throw e}}),signTransaction:n=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){try{let e=n.message.serialize(),r=yield s.sendAction({event:"request:sign",responseEvent:"response:sign",data:{authData:{jwt:a,apiKey:o},data:{bytes:_bs582.default.encode(e),keyType:"ed25519",encoding:"base58"}},options:h});if(r==null||r.status==="error"||r.signature==null)throw new Error("Failed to sign transaction: No signature returned");return n.addSignature(new (0, _web3js.PublicKey)(t),_bs582.default.decode(r.signature)),n}catch(e){throw e}})}}},[a,o]),C=_react.useCallback.call(void 0, t=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){let s=i.current;if(s==null||!p){let e="WebViewParent not ready or handshake incomplete.";throw new Error(e)}if(a==null||o==null){let e="Missing authentication credentials (JWT or API Key).";throw new Error(e)}let n=t.startsWith("email:")?t:`email:${t}`;try{let e=yield s.sendAction({event:"request:create-signer",responseEvent:"response:create-signer",data:{authData:{jwt:a,apiKey:o},data:{authId:n,chainLayer:"solana"}},options:h});if((e==null?void 0:e.status)==="success"&&e.address){let r=m(e.address);return R(r),c("loaded"),r}return c("awaiting-otp-validation"),null}catch(e){throw c("not-loaded"),e}}),[p,a,o,m]),K=_react.useCallback.call(void 0, t=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){R(null);let s=i.current;if(s==null||!p){let n="WebViewParent not ready or handshake incomplete.";throw new Error(n)}if(a==null||o==null){let n="Missing authentication credentials (JWT or API Key).";throw new Error(n)}try{let n=yield s.sendAction({event:"request:send-otp",responseEvent:"response:send-otp",data:{authData:{jwt:a,apiKey:o},data:{chainLayer:"solana",encryptedOtp:t}},options:h});if(n==null||n.status==="error"||n.address==null)throw new Error("Failed to validate encrypted OTP");let e=m(n.address);return R(e),c("loaded"),n.address}catch(n){return c("not-loaded"),null}}),[p,a,o,m]),U=_react.useMemo.call(void 0, ()=>({experimental_recoveryKeyStatus:x,experimental_recoverySigner:P,experimental_createRecoveryKeySigner:C,experimental_validateEmailOtp:K}),[x,P,C,K]);return _jsxruntime.jsxs.call(void 0, k.Provider,{value:U,children:[y,_jsxruntime.jsx.call(void 0, _reactnative.View,{style:{position:"absolute",width:0,height:0,overflow:"hidden"},children:_jsxruntime.jsx.call(void 0, _clientsdkrnwindow.RNWebView,{ref:b,source:{uri:M},onLoadEnd:A,onMessage:O,onError:()=>g(!1),onHttpError:()=>g(!1),style:{width:1,height:1},injectedGlobals:T})})]})}exports.a = k; exports.b = se; exports.c = oe;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkYW4OQ76Qcjs = require('./chunk-YW4OQ76Q.cjs');var _chunk3WHZJ64Kcjs = require('./chunk-3WHZJ64K.cjs');var _chunkO5AL6DBJcjs = require('./chunk-O5AL6DBJ.cjs');var _react = require('react');var _clientsdkreactbase = require('@crossmint/client-sdk-react-base');var _jsxruntime = require('react/jsx-runtime');var p=["experimental_recoveryKeyStatus","experimental_recoverySigner","experimental_createRecoveryKeySigner","experimental_validateEmailOtp"];function u({children:n}){let e=_react.useContext.call(void 0, _clientsdkreactbase.WalletContext),t=_react.useContext.call(void 0, _chunkYW4OQ76Qcjs.a);if(e==null)throw new Error("BaseWalletContext not found. Ensure CrossmintWalletProvider structure is correct.");let r=_react.useMemo.call(void 0, ()=>{let s=_chunkO5AL6DBJcjs.a.call(void 0, {},e);if(t!=null)Object.assign(s,t);else for(let a of p)Object.defineProperty(s,a,{get(){throw new Error(`Cannot access '${a}'. Ensure 'useRecoveryKey={true}' is set on CrossmintWalletProvider.`)},enumerable:!0,configurable:!0});return s},[e,t]);return _jsxruntime.jsx.call(void 0, _chunk3WHZJ64Kcjs.a.Provider,{value:r,children:n})}function K({children:n,experimental_enableRecoveryKeys:e=!1,experimental_secureEndpointUrl:t}){let r=_jsxruntime.jsx.call(void 0, _clientsdkreactbase.CrossmintWalletProvider,{children:_jsxruntime.jsx.call(void 0, u,{children:n})});return e?_jsxruntime.jsx.call(void 0, _chunkYW4OQ76Qcjs.c,{experimental_secureEndpointUrl:t,children:r}):r}exports.a = K;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkHRTGZDTVcjs = require('./chunk-HRTGZDTV.cjs');var _chunk3WHZJ64Kcjs = require('./chunk-3WHZJ64K.cjs');var _chunkO5AL6DBJcjs = require('./chunk-O5AL6DBJ.cjs');var _react = require('react');var _clientsdkreactbase = require('@crossmint/client-sdk-react-base');var _jsxruntime = require('react/jsx-runtime');var p=["experimental_recoveryKeyStatus","experimental_recoverySigner","experimental_createRecoveryKeySigner","experimental_validateEmailOtp"];function u({children:n}){let e=_react.useContext.call(void 0, _clientsdkreactbase.WalletContext),t=_react.useContext.call(void 0, _chunkHRTGZDTVcjs.a);if(e==null)throw new Error("BaseWalletContext not found. Ensure CrossmintWalletProvider structure is correct.");let r=_react.useMemo.call(void 0, ()=>{let s=_chunkO5AL6DBJcjs.a.call(void 0, {},e);if(t!=null)Object.assign(s,t);else for(let a of p)Object.defineProperty(s,a,{get(){throw new Error(`Cannot access '${a}'. Ensure 'useRecoveryKey={true}' is set on CrossmintWalletProvider.`)},enumerable:!0,configurable:!0});return s},[e,t]);return _jsxruntime.jsx.call(void 0, _chunk3WHZJ64Kcjs.a.Provider,{value:r,children:n})}function K({children:n,experimental_enableRecoveryKeys:e=!1,experimental_secureEndpointUrl:t}){let r=_jsxruntime.jsx.call(void 0, _clientsdkreactbase.CrossmintWalletProvider,{children:_jsxruntime.jsx.call(void 0, u,{children:n})});return e?_jsxruntime.jsx.call(void 0, _chunkHRTGZDTVcjs.c,{experimental_secureEndpointUrl:t,children:r}):r}exports.a = K;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK7HBZCC4cjs = require('../chunk-K7HBZCC4.cjs');var _chunk3WHZJ64Kcjs = require('../chunk-3WHZJ64K.cjs');require('../chunk-BZACBNUH.cjs');require('../chunk-O5AL6DBJ.cjs');exports.WalletContext = _chunk3WHZJ64Kcjs.a; exports.useAuth = _chunkK7HBZCC4cjs.d; exports.useCrossmint = _chunkK7HBZCC4cjs.e; exports.useCrossmintAuth = _chunkK7HBZCC4cjs.c; exports.useWallet = _chunk3WHZJ64Kcjs.b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK7HBZCC4cjs = require('../chunk-K7HBZCC4.cjs');require('../chunk-BZACBNUH.cjs');var _chunk3WHZJ64Kcjs = require('../chunk-3WHZJ64K.cjs');require('../chunk-O5AL6DBJ.cjs');exports.WalletContext = _chunk3WHZJ64Kcjs.a; exports.useAuth = _chunkK7HBZCC4cjs.d; exports.useCrossmint = _chunkK7HBZCC4cjs.e; exports.useCrossmintAuth = _chunkK7HBZCC4cjs.c; exports.useWallet = _chunk3WHZJ64Kcjs.b;
@@ -1 +1 @@
1
- import{c as a,d as b,e}from"../chunk-NP3T43SL.js";import{a as c,b as d}from"../chunk-JNYZIWPY.js";import"../chunk-ZRIYUAKZ.js";import"../chunk-TKB736C5.js";export{c as WalletContext,b as useAuth,e as useCrossmint,a as useCrossmintAuth,d as useWallet};
1
+ import{c as a,d as b,e}from"../chunk-NP3T43SL.js";import"../chunk-ZRIYUAKZ.js";import{a as c,b as d}from"../chunk-JNYZIWPY.js";import"../chunk-TKB736C5.js";export{c as WalletContext,b as useAuth,e as useCrossmint,a as useCrossmintAuth,d as useWallet};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK7HBZCC4cjs = require('../chunk-K7HBZCC4.cjs');require('../chunk-3WHZJ64K.cjs');require('../chunk-BZACBNUH.cjs');require('../chunk-O5AL6DBJ.cjs');exports.useAuth = _chunkK7HBZCC4cjs.d; exports.useCrossmintAuth = _chunkK7HBZCC4cjs.c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK7HBZCC4cjs = require('../chunk-K7HBZCC4.cjs');require('../chunk-BZACBNUH.cjs');require('../chunk-3WHZJ64K.cjs');require('../chunk-O5AL6DBJ.cjs');exports.useAuth = _chunkK7HBZCC4cjs.d; exports.useCrossmintAuth = _chunkK7HBZCC4cjs.c;
@@ -1 +1 @@
1
- import{c as a,d as b}from"../chunk-NP3T43SL.js";import"../chunk-JNYZIWPY.js";import"../chunk-ZRIYUAKZ.js";import"../chunk-TKB736C5.js";export{b as useAuth,a as useCrossmintAuth};
1
+ import{c as a,d as b}from"../chunk-NP3T43SL.js";import"../chunk-ZRIYUAKZ.js";import"../chunk-JNYZIWPY.js";import"../chunk-TKB736C5.js";export{b as useAuth,a as useCrossmintAuth};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-ZR6BLDCD.cjs');var _chunkZU4NFMJ2cjs = require('./chunk-ZU4NFMJ2.cjs');require('./chunk-YW4OQ76Q.cjs');var _chunkK7HBZCC4cjs = require('./chunk-K7HBZCC4.cjs');var _chunk3WHZJ64Kcjs = require('./chunk-3WHZJ64K.cjs');require('./chunk-BZACBNUH.cjs');var _chunk4L2OHRE5cjs = require('./chunk-4L2OHRE5.cjs');require('./chunk-O5AL6DBJ.cjs');exports.CrossmintAuthProvider = _chunkK7HBZCC4cjs.b; exports.CrossmintProvider = _chunk4L2OHRE5cjs.a; exports.CrossmintWalletProvider = _chunkZU4NFMJ2cjs.a; exports.WalletContext = _chunk3WHZJ64Kcjs.a; exports.useAuth = _chunkK7HBZCC4cjs.d; exports.useCrossmint = _chunkK7HBZCC4cjs.e; exports.useCrossmintAuth = _chunkK7HBZCC4cjs.c; exports.useWallet = _chunk3WHZJ64Kcjs.b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-ZR6BLDCD.cjs');var _chunkXPXBKZWScjs = require('./chunk-XPXBKZWS.cjs');var _chunk4L2OHRE5cjs = require('./chunk-4L2OHRE5.cjs');require('./chunk-HRTGZDTV.cjs');var _chunkK7HBZCC4cjs = require('./chunk-K7HBZCC4.cjs');require('./chunk-BZACBNUH.cjs');var _chunk3WHZJ64Kcjs = require('./chunk-3WHZJ64K.cjs');require('./chunk-O5AL6DBJ.cjs');exports.CrossmintAuthProvider = _chunkK7HBZCC4cjs.b; exports.CrossmintProvider = _chunk4L2OHRE5cjs.a; exports.CrossmintWalletProvider = _chunkXPXBKZWScjs.a; exports.WalletContext = _chunk3WHZJ64Kcjs.a; exports.useAuth = _chunkK7HBZCC4cjs.d; exports.useCrossmint = _chunkK7HBZCC4cjs.e; exports.useCrossmintAuth = _chunkK7HBZCC4cjs.c; exports.useWallet = _chunk3WHZJ64Kcjs.b;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import"./chunk-C62HRWJA.js";import{a as l}from"./chunk-ZYFXIZY5.js";import"./chunk-IGSKGHQ6.js";import{b as t,c as e,d as r,e as a}from"./chunk-NP3T43SL.js";import{a as o,b as s}from"./chunk-JNYZIWPY.js";import"./chunk-ZRIYUAKZ.js";import{a as m}from"./chunk-I52CP62R.js";import"./chunk-TKB736C5.js";export{t as CrossmintAuthProvider,m as CrossmintProvider,l as CrossmintWalletProvider,o as WalletContext,r as useAuth,a as useCrossmint,e as useCrossmintAuth,s as useWallet};
1
+ import"./chunk-C62HRWJA.js";import{a as l}from"./chunk-CGB5MYRJ.js";import{a as m}from"./chunk-I52CP62R.js";import"./chunk-5AFOALYE.js";import{b as t,c as e,d as r,e as a}from"./chunk-NP3T43SL.js";import"./chunk-ZRIYUAKZ.js";import{a as o,b as s}from"./chunk-JNYZIWPY.js";import"./chunk-TKB736C5.js";export{t as CrossmintAuthProvider,m as CrossmintProvider,l as CrossmintWalletProvider,o as WalletContext,r as useAuth,a as useCrossmint,e as useCrossmintAuth,s as useWallet};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK7HBZCC4cjs = require('../chunk-K7HBZCC4.cjs');require('../chunk-3WHZJ64K.cjs');require('../chunk-BZACBNUH.cjs');require('../chunk-O5AL6DBJ.cjs');exports.AuthContext = _chunkK7HBZCC4cjs.a; exports.CrossmintAuthProvider = _chunkK7HBZCC4cjs.b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK7HBZCC4cjs = require('../chunk-K7HBZCC4.cjs');require('../chunk-BZACBNUH.cjs');require('../chunk-3WHZJ64K.cjs');require('../chunk-O5AL6DBJ.cjs');exports.AuthContext = _chunkK7HBZCC4cjs.a; exports.CrossmintAuthProvider = _chunkK7HBZCC4cjs.b;
@@ -1 +1 @@
1
- import{a,b}from"../chunk-NP3T43SL.js";import"../chunk-JNYZIWPY.js";import"../chunk-ZRIYUAKZ.js";import"../chunk-TKB736C5.js";export{a as AuthContext,b as CrossmintAuthProvider};
1
+ import{a,b}from"../chunk-NP3T43SL.js";import"../chunk-ZRIYUAKZ.js";import"../chunk-JNYZIWPY.js";import"../chunk-TKB736C5.js";export{a as AuthContext,b as CrossmintAuthProvider};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkYW4OQ76Qcjs = require('../chunk-YW4OQ76Q.cjs');require('../chunk-K7HBZCC4.cjs');require('../chunk-3WHZJ64K.cjs');require('../chunk-BZACBNUH.cjs');require('../chunk-O5AL6DBJ.cjs');exports.CrossmintRecoveryKeyContext = _chunkYW4OQ76Qcjs.a; exports.CrossmintRecoveryKeyProvider = _chunkYW4OQ76Qcjs.c; exports.useCrossmintRecoveryKey = _chunkYW4OQ76Qcjs.b;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkHRTGZDTVcjs = require('../chunk-HRTGZDTV.cjs');require('../chunk-K7HBZCC4.cjs');require('../chunk-BZACBNUH.cjs');require('../chunk-3WHZJ64K.cjs');require('../chunk-O5AL6DBJ.cjs');exports.CrossmintRecoveryKeyContext = _chunkHRTGZDTVcjs.a; exports.CrossmintRecoveryKeyProvider = _chunkHRTGZDTVcjs.c; exports.useCrossmintRecoveryKey = _chunkHRTGZDTVcjs.b;
@@ -1 +1 @@
1
- import{a,b,c}from"../chunk-IGSKGHQ6.js";import"../chunk-NP3T43SL.js";import"../chunk-JNYZIWPY.js";import"../chunk-ZRIYUAKZ.js";import"../chunk-TKB736C5.js";export{a as CrossmintRecoveryKeyContext,c as CrossmintRecoveryKeyProvider,b as useCrossmintRecoveryKey};
1
+ import{a,b,c}from"../chunk-5AFOALYE.js";import"../chunk-NP3T43SL.js";import"../chunk-ZRIYUAKZ.js";import"../chunk-JNYZIWPY.js";import"../chunk-TKB736C5.js";export{a as CrossmintRecoveryKeyContext,c as CrossmintRecoveryKeyProvider,b as useCrossmintRecoveryKey};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkZU4NFMJ2cjs = require('../chunk-ZU4NFMJ2.cjs');require('../chunk-YW4OQ76Q.cjs');require('../chunk-K7HBZCC4.cjs');require('../chunk-3WHZJ64K.cjs');require('../chunk-BZACBNUH.cjs');require('../chunk-O5AL6DBJ.cjs');exports.CrossmintWalletProvider = _chunkZU4NFMJ2cjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXPXBKZWScjs = require('../chunk-XPXBKZWS.cjs');require('../chunk-HRTGZDTV.cjs');require('../chunk-K7HBZCC4.cjs');require('../chunk-BZACBNUH.cjs');require('../chunk-3WHZJ64K.cjs');require('../chunk-O5AL6DBJ.cjs');exports.CrossmintWalletProvider = _chunkXPXBKZWScjs.a;
@@ -1 +1 @@
1
- import{a}from"../chunk-ZYFXIZY5.js";import"../chunk-IGSKGHQ6.js";import"../chunk-NP3T43SL.js";import"../chunk-JNYZIWPY.js";import"../chunk-ZRIYUAKZ.js";import"../chunk-TKB736C5.js";export{a as CrossmintWalletProvider};
1
+ import{a}from"../chunk-CGB5MYRJ.js";import"../chunk-5AFOALYE.js";import"../chunk-NP3T43SL.js";import"../chunk-ZRIYUAKZ.js";import"../chunk-JNYZIWPY.js";import"../chunk-TKB736C5.js";export{a as CrossmintWalletProvider};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-ZR6BLDCD.cjs');var _chunkZU4NFMJ2cjs = require('../chunk-ZU4NFMJ2.cjs');require('../chunk-YW4OQ76Q.cjs');var _chunkK7HBZCC4cjs = require('../chunk-K7HBZCC4.cjs');require('../chunk-3WHZJ64K.cjs');require('../chunk-BZACBNUH.cjs');var _chunk4L2OHRE5cjs = require('../chunk-4L2OHRE5.cjs');require('../chunk-O5AL6DBJ.cjs');exports.CrossmintAuthProvider = _chunkK7HBZCC4cjs.b; exports.CrossmintProvider = _chunk4L2OHRE5cjs.a; exports.CrossmintWalletProvider = _chunkZU4NFMJ2cjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-ZR6BLDCD.cjs');var _chunkXPXBKZWScjs = require('../chunk-XPXBKZWS.cjs');var _chunk4L2OHRE5cjs = require('../chunk-4L2OHRE5.cjs');require('../chunk-HRTGZDTV.cjs');var _chunkK7HBZCC4cjs = require('../chunk-K7HBZCC4.cjs');require('../chunk-BZACBNUH.cjs');require('../chunk-3WHZJ64K.cjs');require('../chunk-O5AL6DBJ.cjs');exports.CrossmintAuthProvider = _chunkK7HBZCC4cjs.b; exports.CrossmintProvider = _chunk4L2OHRE5cjs.a; exports.CrossmintWalletProvider = _chunkXPXBKZWScjs.a;
@@ -1 +1 @@
1
- import"../chunk-C62HRWJA.js";import{a as c}from"../chunk-ZYFXIZY5.js";import"../chunk-IGSKGHQ6.js";import{b as a}from"../chunk-NP3T43SL.js";import"../chunk-JNYZIWPY.js";import"../chunk-ZRIYUAKZ.js";import{a as b}from"../chunk-I52CP62R.js";import"../chunk-TKB736C5.js";export{a as CrossmintAuthProvider,b as CrossmintProvider,c as CrossmintWalletProvider};
1
+ import"../chunk-C62HRWJA.js";import{a as c}from"../chunk-CGB5MYRJ.js";import{a as b}from"../chunk-I52CP62R.js";import"../chunk-5AFOALYE.js";import{b as a}from"../chunk-NP3T43SL.js";import"../chunk-ZRIYUAKZ.js";import"../chunk-JNYZIWPY.js";import"../chunk-TKB736C5.js";export{a as CrossmintAuthProvider,b as CrossmintProvider,c as CrossmintWalletProvider};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crossmint/client-sdk-react-native-ui",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "repository": "https://github.com/Crossmint/crossmint-sdk",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Paella Labs Inc",
@@ -24,14 +24,14 @@
24
24
  "expo-secure-store": "14.0.1",
25
25
  "expo-web-browser": "~14.0.2",
26
26
  "react-native-webview": "13.12.5",
27
- "@crossmint/client-sdk-auth": "1.2.3",
27
+ "@crossmint/client-sdk-auth": "1.2.4",
28
28
  "@crossmint/client-sdk-base": "1.4.18",
29
- "@crossmint/client-sdk-react-base": "0.2.8",
29
+ "@crossmint/client-sdk-react-base": "0.2.9",
30
+ "@crossmint/client-signers": "0.0.8",
31
+ "@crossmint/common-sdk-auth": "1.0.27",
30
32
  "@crossmint/client-sdk-rn-window": "0.2.2",
31
- "@crossmint/client-signers": "0.0.7",
32
- "@crossmint/common-sdk-auth": "1.0.26",
33
33
  "@crossmint/common-sdk-base": "0.4.0",
34
- "@crossmint/wallets-sdk": "0.7.3"
34
+ "@crossmint/wallets-sdk": "0.7.4"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/react": "19.0.12"
@@ -1 +0,0 @@
1
- import{e as S}from"./chunk-NP3T43SL.js";import{b as u}from"./chunk-TKB736C5.js";import I,{useCallback as d,useContext as N,useEffect as L,useRef as V,useState as E,useMemo as W}from"react";import v from"bs58";import{PublicKey as D}from"@solana/web3.js";import{RNWebView as q}from"@crossmint/client-sdk-rn-window";import{WebViewParent as F}from"@crossmint/client-sdk-rn-window";import{signerInboundEvents as j,signerOutboundEvents as J}from"@crossmint/client-signers";import{View as $}from"react-native";import{jsx as _,jsxs as G}from"react/jsx-runtime";var M=I.createContext(null);function oe(){let y=N(M);if(y==null)throw new Error("useCrossmintRecoveryKey must be used within a CrossmintRecoveryKeyProvider");return y}var h={timeoutMs:1e4,intervalMs:5e3},z="https://crossmint-signer-frames.onrender.com";function ae({children:y,experimental_secureEndpointUrl:A=z}){let{crossmint:{apiKey:s,jwt:o,appId:f}}=S(),b=V(null),a=V(null),[P,R]=E(null),[p,g]=E(!1),[x,c]=E("not-loaded"),k=W(()=>f!=null?`window.crossmintAppId = '${f}';`:"",[f]);L(()=>{b.current!=null&&a.current==null&&(a.current=new F(b,{incomingEvents:J,outgoingEvents:j}))},[]);let T=d(()=>u(this,null,function*(){if(a.current!=null)try{yield a.current.handshakeWithChild(),g(!0),c("frame-loaded")}catch(r){console.error("[RN] handshakeWithChild error:",r),g(!1),c("not-loaded")}}),[]),O=d(r=>{let t=a.current;if(t!=null){try{let n=JSON.parse(r.nativeEvent.data);if(n&&typeof n.type=="string"&&n.type.startsWith("console.")){let e=n.type.split(".")[1],i=(n.data||[]).map(l=>{try{return l==="[Function]"||l==="[Circular Reference]"||l==="[Unserializable Object]"?l:JSON.parse(l)}catch(H){return l}}),w=`[WebView:${e.toUpperCase()}]`;switch(e){case"log":console.log(w,...i);break;case"error":console.error(w,...i);break;case"warn":console.warn(w,...i);break;case"info":console.info(w,...i);break;default:console.log(`[WebView Unknown:${e}]`,...i)}return}}catch(n){}t.handleMessage(r)}},[]),m=d(r=>{let t=a.current;if(t==null||o==null||s==null)throw new Error("Cannot build signer: Missing prerequisites (parent, jwt, apiKey).");return{type:"solana-keypair",address:r,signer:{signMessage:n=>u(this,null,function*(){try{let e=yield t.sendAction({event:"request:sign-message",responseEvent:"response:sign-message",data:{authData:{jwt:o,apiKey:s},data:{message:v.encode(n),chainLayer:"solana",encoding:"base58"}},options:h});if(e==null||e.status==="error"||e.signature==null)throw new Error("Failed to sign message");return v.decode(e.signature)}catch(e){throw e}}),signTransaction:n=>u(this,null,function*(){try{let e=yield t.sendAction({event:"request:sign-transaction",responseEvent:"response:sign-transaction",data:{authData:{jwt:o,apiKey:s},data:{transaction:v.encode(n.serialize()),chainLayer:"solana",encoding:"base58"}},options:h});if(e==null||e.status==="error"||e.signature==null)throw new Error("Failed to sign transaction: No signature returned");return n.addSignature(new D(r),v.decode(e.signature)),n}catch(e){throw e}})}}},[o,s]),C=d(r=>u(this,null,function*(){let t=a.current;if(t==null||!p){let e="WebViewParent not ready or handshake incomplete.";throw new Error(e)}if(o==null||s==null){let e="Missing authentication credentials (JWT or API Key).";throw new Error(e)}let n=r.startsWith("email:")?r:`email:${r}`;try{let e=yield t.sendAction({event:"request:create-signer",responseEvent:"response:create-signer",data:{authData:{jwt:o,apiKey:s},data:{authId:n,chainLayer:"solana"}},options:h});if((e==null?void 0:e.status)==="success"&&e.address){let i=m(e.address);return R(i),c("loaded"),i}return c("awaiting-otp-validation"),null}catch(e){throw c("not-loaded"),e}}),[p,o,s,m]),K=d(r=>u(this,null,function*(){R(null);let t=a.current;if(t==null||!p){let n="WebViewParent not ready or handshake incomplete.";throw new Error(n)}if(o==null||s==null){let n="Missing authentication credentials (JWT or API Key).";throw new Error(n)}try{let n=yield t.sendAction({event:"request:send-otp",responseEvent:"response:send-otp",data:{authData:{jwt:o,apiKey:s},data:{chainLayer:"solana",encryptedOtp:r}},options:h});if(n==null||n.status==="error"||n.address==null)throw new Error("Failed to validate encrypted OTP");let e=m(n.address);return R(e),c("loaded"),n.address}catch(n){return c("not-loaded"),null}}),[p,o,s,m]),U=W(()=>({experimental_recoveryKeyStatus:x,experimental_recoverySigner:P,experimental_createRecoveryKeySigner:C,experimental_validateEmailOtp:K}),[x,P,C,K]);return G(M.Provider,{value:U,children:[y,_($,{style:{position:"absolute",width:0,height:0,overflow:"hidden"},children:_(q,{ref:b,source:{uri:A},onLoadEnd:T,onMessage:O,onError:()=>g(!1),onHttpError:()=>g(!1),style:{width:1,height:1},injectedGlobals:k})})]})}export{M as a,oe as b,ae as c};
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkK7HBZCC4cjs = require('./chunk-K7HBZCC4.cjs');var _chunkO5AL6DBJcjs = require('./chunk-O5AL6DBJ.cjs');var _react = require('react'); var _react2 = _interopRequireDefault(_react);var _bs58 = require('bs58'); var _bs582 = _interopRequireDefault(_bs58);var _web3js = require('@solana/web3.js');var _clientsdkrnwindow = require('@crossmint/client-sdk-rn-window');var _clientsigners = require('@crossmint/client-signers');var _reactnative = require('react-native');var _jsxruntime = require('react/jsx-runtime');var M=_react2.default.createContext(null);function se(){let y=_react.useContext.call(void 0, M);if(y==null)throw new Error("useCrossmintRecoveryKey must be used within a CrossmintRecoveryKeyProvider");return y}var h={timeoutMs:1e4,intervalMs:5e3},z="https://crossmint-signer-frames.onrender.com";function oe({children:y,experimental_secureEndpointUrl:A=z}){let{crossmint:{apiKey:s,jwt:o,appId:f}}=_chunkK7HBZCC4cjs.e.call(void 0, ),b=_react.useRef.call(void 0, null),a=_react.useRef.call(void 0, null),[P,R]=_react.useState.call(void 0, null),[p,g]=_react.useState.call(void 0, !1),[x,c]=_react.useState.call(void 0, "not-loaded"),k=_react.useMemo.call(void 0, ()=>f!=null?`window.crossmintAppId = '${f}';`:"",[f]);_react.useEffect.call(void 0, ()=>{b.current!=null&&a.current==null&&(a.current=new (0, _clientsdkrnwindow.WebViewParent)(b,{incomingEvents:_clientsigners.signerOutboundEvents,outgoingEvents:_clientsigners.signerInboundEvents}))},[]);let T=_react.useCallback.call(void 0, ()=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){if(a.current!=null)try{yield a.current.handshakeWithChild(),g(!0),c("frame-loaded")}catch(r){console.error("[RN] handshakeWithChild error:",r),g(!1),c("not-loaded")}}),[]),O=_react.useCallback.call(void 0, r=>{let t=a.current;if(t!=null){try{let n=JSON.parse(r.nativeEvent.data);if(n&&typeof n.type=="string"&&n.type.startsWith("console.")){let e=n.type.split(".")[1],i=(n.data||[]).map(l=>{try{return l==="[Function]"||l==="[Circular Reference]"||l==="[Unserializable Object]"?l:JSON.parse(l)}catch(H){return l}}),w=`[WebView:${e.toUpperCase()}]`;switch(e){case"log":console.log(w,...i);break;case"error":console.error(w,...i);break;case"warn":console.warn(w,...i);break;case"info":console.info(w,...i);break;default:console.log(`[WebView Unknown:${e}]`,...i)}return}}catch(n){}t.handleMessage(r)}},[]),m=_react.useCallback.call(void 0, r=>{let t=a.current;if(t==null||o==null||s==null)throw new Error("Cannot build signer: Missing prerequisites (parent, jwt, apiKey).");return{type:"solana-keypair",address:r,signer:{signMessage:n=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){try{let e=yield t.sendAction({event:"request:sign-message",responseEvent:"response:sign-message",data:{authData:{jwt:o,apiKey:s},data:{message:_bs582.default.encode(n),chainLayer:"solana",encoding:"base58"}},options:h});if(e==null||e.status==="error"||e.signature==null)throw new Error("Failed to sign message");return _bs582.default.decode(e.signature)}catch(e){throw e}}),signTransaction:n=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){try{let e=yield t.sendAction({event:"request:sign-transaction",responseEvent:"response:sign-transaction",data:{authData:{jwt:o,apiKey:s},data:{transaction:_bs582.default.encode(n.serialize()),chainLayer:"solana",encoding:"base58"}},options:h});if(e==null||e.status==="error"||e.signature==null)throw new Error("Failed to sign transaction: No signature returned");return n.addSignature(new (0, _web3js.PublicKey)(r),_bs582.default.decode(e.signature)),n}catch(e){throw e}})}}},[o,s]),C=_react.useCallback.call(void 0, r=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){let t=a.current;if(t==null||!p){let e="WebViewParent not ready or handshake incomplete.";throw new Error(e)}if(o==null||s==null){let e="Missing authentication credentials (JWT or API Key).";throw new Error(e)}let n=r.startsWith("email:")?r:`email:${r}`;try{let e=yield t.sendAction({event:"request:create-signer",responseEvent:"response:create-signer",data:{authData:{jwt:o,apiKey:s},data:{authId:n,chainLayer:"solana"}},options:h});if((e==null?void 0:e.status)==="success"&&e.address){let i=m(e.address);return R(i),c("loaded"),i}return c("awaiting-otp-validation"),null}catch(e){throw c("not-loaded"),e}}),[p,o,s,m]),K=_react.useCallback.call(void 0, r=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){R(null);let t=a.current;if(t==null||!p){let n="WebViewParent not ready or handshake incomplete.";throw new Error(n)}if(o==null||s==null){let n="Missing authentication credentials (JWT or API Key).";throw new Error(n)}try{let n=yield t.sendAction({event:"request:send-otp",responseEvent:"response:send-otp",data:{authData:{jwt:o,apiKey:s},data:{chainLayer:"solana",encryptedOtp:r}},options:h});if(n==null||n.status==="error"||n.address==null)throw new Error("Failed to validate encrypted OTP");let e=m(n.address);return R(e),c("loaded"),n.address}catch(n){return c("not-loaded"),null}}),[p,o,s,m]),U=_react.useMemo.call(void 0, ()=>({experimental_recoveryKeyStatus:x,experimental_recoverySigner:P,experimental_createRecoveryKeySigner:C,experimental_validateEmailOtp:K}),[x,P,C,K]);return _jsxruntime.jsxs.call(void 0, M.Provider,{value:U,children:[y,_jsxruntime.jsx.call(void 0, _reactnative.View,{style:{position:"absolute",width:0,height:0,overflow:"hidden"},children:_jsxruntime.jsx.call(void 0, _clientsdkrnwindow.RNWebView,{ref:b,source:{uri:A},onLoadEnd:T,onMessage:O,onError:()=>g(!1),onHttpError:()=>g(!1),style:{width:1,height:1},injectedGlobals:k})})]})}exports.a = M; exports.b = se; exports.c = oe;