@crossmint/client-sdk-react-native-ui 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-IGSKGHQ6.js +1 -0
- package/dist/chunk-YW4OQ76Q.cjs +1 -0
- package/dist/chunk-ZU4NFMJ2.cjs +1 -0
- package/dist/chunk-ZYFXIZY5.js +1 -0
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useCrossmintAuth.cjs +1 -1
- package/dist/hooks/useCrossmintAuth.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/providers/CrossmintAuthProvider.cjs +1 -1
- package/dist/providers/CrossmintAuthProvider.js +1 -1
- package/dist/providers/CrossmintRecoveryKeyProvider.cjs +1 -1
- package/dist/providers/CrossmintRecoveryKeyProvider.d.cts +4 -3
- package/dist/providers/CrossmintRecoveryKeyProvider.d.ts +4 -3
- package/dist/providers/CrossmintRecoveryKeyProvider.js +1 -1
- package/dist/providers/CrossmintWalletProvider.cjs +1 -1
- package/dist/providers/CrossmintWalletProvider.js +1 -1
- package/dist/providers/index.cjs +1 -1
- package/dist/providers/index.js +1 -1
- package/package.json +3 -3
- package/dist/chunk-72R3QH5S.cjs +0 -1
- package/dist/chunk-7ZYN2HKW.js +0 -1
- package/dist/chunk-R5T73KY6.cjs +0 -1
- package/dist/chunk-ZYB4SS5E.js +0 -1
|
@@ -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 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};
|
|
@@ -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 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;
|
|
@@ -0,0 +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;
|
|
@@ -0,0 +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};
|
package/dist/hooks/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK7HBZCC4cjs = require('../chunk-K7HBZCC4.cjs');require('../chunk-
|
|
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;
|
package/dist/hooks/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a,d as b,e}from"../chunk-NP3T43SL.js";import
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK7HBZCC4cjs = require('../chunk-K7HBZCC4.cjs');require('../chunk-
|
|
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 +1 @@
|
|
|
1
|
-
import{c as a,d as b}from"../chunk-NP3T43SL.js";import"../chunk-
|
|
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};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-ZR6BLDCD.cjs');var
|
|
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;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-C62HRWJA.js";import{a as l}from"./chunk-
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkK7HBZCC4cjs = require('../chunk-K7HBZCC4.cjs');require('../chunk-
|
|
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 +1 @@
|
|
|
1
|
-
import{a,b}from"../chunk-NP3T43SL.js";import"../chunk-
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
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;
|
|
@@ -10,10 +10,11 @@ interface RecoverySigner {
|
|
|
10
10
|
signTransaction: (transaction: VersionedTransaction) => Promise<VersionedTransaction>;
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
+
type RecoveryKeyStatus = "not-loaded" | "frame-loaded" | "awaiting-otp-validation" | "loaded";
|
|
13
14
|
interface CrossmintRecoveryKeyContextState {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
experimental_createRecoveryKeySigner: (authId: string) => Promise<
|
|
15
|
+
experimental_recoveryKeyStatus: RecoveryKeyStatus;
|
|
16
|
+
experimental_recoverySigner: RecoverySigner | null;
|
|
17
|
+
experimental_createRecoveryKeySigner: (authId: string) => Promise<RecoverySigner | null>;
|
|
17
18
|
experimental_validateEmailOtp: (encryptedOtp: string) => Promise<string | null>;
|
|
18
19
|
}
|
|
19
20
|
declare const CrossmintRecoveryKeyContext: react__default.Context<CrossmintRecoveryKeyContextState | null>;
|
|
@@ -10,10 +10,11 @@ interface RecoverySigner {
|
|
|
10
10
|
signTransaction: (transaction: VersionedTransaction) => Promise<VersionedTransaction>;
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
+
type RecoveryKeyStatus = "not-loaded" | "frame-loaded" | "awaiting-otp-validation" | "loaded";
|
|
13
14
|
interface CrossmintRecoveryKeyContextState {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
experimental_createRecoveryKeySigner: (authId: string) => Promise<
|
|
15
|
+
experimental_recoveryKeyStatus: RecoveryKeyStatus;
|
|
16
|
+
experimental_recoverySigner: RecoverySigner | null;
|
|
17
|
+
experimental_createRecoveryKeySigner: (authId: string) => Promise<RecoverySigner | null>;
|
|
17
18
|
experimental_validateEmailOtp: (encryptedOtp: string) => Promise<string | null>;
|
|
18
19
|
}
|
|
19
20
|
declare const CrossmintRecoveryKeyContext: react__default.Context<CrossmintRecoveryKeyContextState | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c}from"../chunk-
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
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 +1 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
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};
|
package/dist/providers/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-ZR6BLDCD.cjs');var
|
|
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;
|
package/dist/providers/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../chunk-C62HRWJA.js";import{a as c}from"../chunk-
|
|
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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crossmint/client-sdk-react-native-ui",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"repository": "https://github.com/Crossmint/crossmint-sdk",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Paella Labs Inc",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"@crossmint/client-sdk-auth": "1.2.3",
|
|
28
28
|
"@crossmint/client-sdk-base": "1.4.18",
|
|
29
29
|
"@crossmint/client-sdk-react-base": "0.2.8",
|
|
30
|
-
"@crossmint/client-sdk-rn-window": "0.2.
|
|
31
|
-
"@crossmint/common-sdk-auth": "1.0.26",
|
|
30
|
+
"@crossmint/client-sdk-rn-window": "0.2.2",
|
|
32
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
34
|
"@crossmint/wallets-sdk": "0.7.3"
|
|
35
35
|
},
|
package/dist/chunk-72R3QH5S.cjs
DELETED
|
@@ -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 _RNWebView = require('@crossmint/client-sdk-rn-window/src/rn-webview/RNWebView');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 S=_react2.default.createContext(null);function re(){let p=_react.useContext.call(void 0, S);if(p==null)throw new Error("useCrossmintRecoveryKey must be used within a CrossmintRecoveryKeyProvider");return p}var h={timeoutMs:1e4,intervalMs:5e3},J="https://crossmint-signer-frames.onrender.com";function te({children:p,experimental_secureEndpointUrl:M=J}){let{crossmint:{apiKey:s,jwt:o,appId:v}}=_chunkK7HBZCC4cjs.e.call(void 0, ),f=_react.useRef.call(void 0, null),i=_react.useRef.call(void 0, null),[E,b]=_react.useState.call(void 0, null),[a,y]=_react.useState.call(void 0, !1),k=_react.useMemo.call(void 0, ()=>v!=null?`window.crossmintAppId = '${v}';`:"",[v]);_react.useEffect.call(void 0, ()=>{f.current!=null&&i.current==null&&(i.current=new (0, _clientsdkrnwindow.WebViewParent)(f,{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(),y(!0)}catch(t){console.error("[RN] handshakeWithChild error:",t),y(!1)}}),[]),T=_react.useCallback.call(void 0, t=>{let r=i.current;if(r!=null){try{let e=JSON.parse(t.nativeEvent.data);if(e&&typeof e.type=="string"&&e.type.startsWith("console.")){let n=e.type.split(".")[1],u=(e.data||[]).map(c=>{try{return c==="[Function]"||c==="[Circular Reference]"||c==="[Unserializable Object]"?c:JSON.parse(c)}catch(z){return c}}),w=`[WebView:${n.toUpperCase()}]`;switch(n){case"log":console.log(w,...u);break;case"error":console.error(w,...u);break;case"warn":console.warn(w,...u);break;case"info":console.info(w,...u);break;default:console.log(`[WebView Unknown:${n}]`,...u)}return}}catch(e){}r.handleMessage(t)}},[]),g=_react.useCallback.call(void 0, t=>{let r=i.current;if(r==null||o==null||s==null)throw new Error("Cannot build signer: Missing prerequisites (parent, jwt, apiKey).");return{type:"solana-keypair",address:t,signer:{signMessage:e=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){try{let n=yield r.sendAction({event:"request:sign-message",responseEvent:"response:sign-message",data:{authData:{jwt:o,apiKey:s},data:{message:_bs582.default.encode(e),chainLayer:"solana",encoding:"base58"}},options:h});if(n==null||n.status==="error"||n.signature==null)throw new Error("Failed to sign message");return _bs582.default.decode(n.signature)}catch(n){throw n}}),signTransaction:e=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){try{let n=yield r.sendAction({event:"request:sign-transaction",responseEvent:"response:sign-transaction",data:{authData:{jwt:o,apiKey:s},data:{transaction:_bs582.default.encode(e.serialize()),chainLayer:"solana",encoding:"base58"}},options:h});if(n==null||n.status==="error"||n.signature==null)throw new Error("Failed to sign transaction: No signature returned");return e.addSignature(new (0, _web3js.PublicKey)(t),_bs582.default.decode(n.signature)),e}catch(n){throw n}})}}},[o,s]),R=_react.useCallback.call(void 0, t=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){let r=i.current;if(r==null||!a){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)}try{let e=yield r.sendAction({event:"request:create-signer",responseEvent:"response:create-signer",data:{authData:{jwt:o,apiKey:s},data:{authId:t,chainLayer:"solana"}},options:h});if((e==null?void 0:e.status)==="success"&&e.address){let n=g(e.address);b(n)}}catch(e){throw e}}),[a,o,s,g]),P=_react.useCallback.call(void 0, t=>_chunkO5AL6DBJcjs.b.call(void 0, this,null,function*(){b(null);let r=i.current;if(r==null||!a){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)}try{let e=yield r.sendAction({event:"request:send-otp",responseEvent:"response:send-otp",data:{authData:{jwt:o,apiKey:s},data:{chainLayer:"solana",encryptedOtp:t}},options:h});if(e==null||e.status==="error"||e.address==null)throw new Error("Failed to validate encrypted OTP");let n=g(e.address);return b(n),e.address}catch(e){return null}}),[a,o,s,g]),_=_react.useMemo.call(void 0, ()=>({isWebViewReady:a,recoverySigner:E,experimental_createRecoveryKeySigner:R,experimental_validateEmailOtp:P}),[a,E,R,P]);return _jsxruntime.jsxs.call(void 0, S.Provider,{value:_,children:[p,_jsxruntime.jsx.call(void 0, _reactnative.View,{style:{position:"absolute",width:0,height:0,overflow:"hidden"},children:_jsxruntime.jsx.call(void 0, _RNWebView.RNWebView,{ref:f,source:{uri:M},onLoadEnd:A,onMessage:T,onError:()=>y(!1),onHttpError:()=>y(!1),style:{width:1,height:1},injectedGlobals:k})})]})}exports.a = S; exports.b = re; exports.c = te;
|
package/dist/chunk-7ZYN2HKW.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as C}from"./chunk-NP3T43SL.js";import{b as l}from"./chunk-TKB736C5.js";import O,{useCallback as d,useContext as U,useEffect as I,useRef as V,useState as W,useMemo as x}from"react";import m from"bs58";import{PublicKey as N}from"@solana/web3.js";import{RNWebView as L}from"@crossmint/client-sdk-rn-window/src/rn-webview/RNWebView";import{WebViewParent as D}from"@crossmint/client-sdk-rn-window";import{signerInboundEvents as q,signerOutboundEvents as F}from"@crossmint/client-signers";import{View as j}from"react-native";import{jsx as K,jsxs as $}from"react/jsx-runtime";var S=O.createContext(null);function te(){let p=U(S);if(p==null)throw new Error("useCrossmintRecoveryKey must be used within a CrossmintRecoveryKeyProvider");return p}var h={timeoutMs:1e4,intervalMs:5e3},J="https://crossmint-signer-frames.onrender.com";function se({children:p,experimental_secureEndpointUrl:M=J}){let{crossmint:{apiKey:s,jwt:o,appId:v}}=C(),f=V(null),i=V(null),[E,b]=W(null),[a,y]=W(!1),k=x(()=>v!=null?`window.crossmintAppId = '${v}';`:"",[v]);I(()=>{f.current!=null&&i.current==null&&(i.current=new D(f,{incomingEvents:F,outgoingEvents:q}))},[]);let A=d(()=>l(this,null,function*(){if(i.current!=null)try{yield i.current.handshakeWithChild(),y(!0)}catch(t){console.error("[RN] handshakeWithChild error:",t),y(!1)}}),[]),T=d(t=>{let r=i.current;if(r!=null){try{let e=JSON.parse(t.nativeEvent.data);if(e&&typeof e.type=="string"&&e.type.startsWith("console.")){let n=e.type.split(".")[1],u=(e.data||[]).map(c=>{try{return c==="[Function]"||c==="[Circular Reference]"||c==="[Unserializable Object]"?c:JSON.parse(c)}catch(z){return c}}),w=`[WebView:${n.toUpperCase()}]`;switch(n){case"log":console.log(w,...u);break;case"error":console.error(w,...u);break;case"warn":console.warn(w,...u);break;case"info":console.info(w,...u);break;default:console.log(`[WebView Unknown:${n}]`,...u)}return}}catch(e){}r.handleMessage(t)}},[]),g=d(t=>{let r=i.current;if(r==null||o==null||s==null)throw new Error("Cannot build signer: Missing prerequisites (parent, jwt, apiKey).");return{type:"solana-keypair",address:t,signer:{signMessage:e=>l(this,null,function*(){try{let n=yield r.sendAction({event:"request:sign-message",responseEvent:"response:sign-message",data:{authData:{jwt:o,apiKey:s},data:{message:m.encode(e),chainLayer:"solana",encoding:"base58"}},options:h});if(n==null||n.status==="error"||n.signature==null)throw new Error("Failed to sign message");return m.decode(n.signature)}catch(n){throw n}}),signTransaction:e=>l(this,null,function*(){try{let n=yield r.sendAction({event:"request:sign-transaction",responseEvent:"response:sign-transaction",data:{authData:{jwt:o,apiKey:s},data:{transaction:m.encode(e.serialize()),chainLayer:"solana",encoding:"base58"}},options:h});if(n==null||n.status==="error"||n.signature==null)throw new Error("Failed to sign transaction: No signature returned");return e.addSignature(new N(t),m.decode(n.signature)),e}catch(n){throw n}})}}},[o,s]),R=d(t=>l(this,null,function*(){let r=i.current;if(r==null||!a){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)}try{let e=yield r.sendAction({event:"request:create-signer",responseEvent:"response:create-signer",data:{authData:{jwt:o,apiKey:s},data:{authId:t,chainLayer:"solana"}},options:h});if((e==null?void 0:e.status)==="success"&&e.address){let n=g(e.address);b(n)}}catch(e){throw e}}),[a,o,s,g]),P=d(t=>l(this,null,function*(){b(null);let r=i.current;if(r==null||!a){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)}try{let e=yield r.sendAction({event:"request:send-otp",responseEvent:"response:send-otp",data:{authData:{jwt:o,apiKey:s},data:{chainLayer:"solana",encryptedOtp:t}},options:h});if(e==null||e.status==="error"||e.address==null)throw new Error("Failed to validate encrypted OTP");let n=g(e.address);return b(n),e.address}catch(e){return null}}),[a,o,s,g]),_=x(()=>({isWebViewReady:a,recoverySigner:E,experimental_createRecoveryKeySigner:R,experimental_validateEmailOtp:P}),[a,E,R,P]);return $(S.Provider,{value:_,children:[p,K(j,{style:{position:"absolute",width:0,height:0,overflow:"hidden"},children:K(L,{ref:f,source:{uri:M},onLoadEnd:A,onMessage:T,onError:()=>y(!1),onHttpError:()=>y(!1),style:{width:1,height:1},injectedGlobals:k})})]})}export{S as a,te as b,se as c};
|
package/dist/chunk-R5T73KY6.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk72R3QH5Scjs = require('./chunk-72R3QH5S.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=["isWebViewReady","recoverySigner","experimental_createRecoveryKeySigner","experimental_validateEmailOtp"];function u({children:n}){let e=_react.useContext.call(void 0, _clientsdkreactbase.WalletContext),t=_react.useContext.call(void 0, _chunk72R3QH5Scjs.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, _chunk72R3QH5Scjs.c,{experimental_secureEndpointUrl:t,children:r}):r}exports.a = K;
|
package/dist/chunk-ZYB4SS5E.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as c,c as m}from"./chunk-7ZYN2HKW.js";import{a as l}from"./chunk-JNYZIWPY.js";import{a as i}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=["isWebViewReady","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=i({},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(l.Provider,{value:r,children:n})}function b({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{b as a};
|