@privy-io/expo 0.3.3 → 0.3.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.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.mjs +6 -6
- package/package.json +2 -2
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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
|
|
1
|
+
{"mappings":"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","sources":["packages-js-public/expo/src/src/context/EmbeddedWalletWebView.tsx","packages-js-public/expo/src/src/models/EmbeddedWalletState.ts","packages-js-public/expo/src/src/models/index.ts","packages-js-public/expo/src/src/utils/toStableSetter.ts","packages-js-public/expo/src/src/types.ts","packages-js-public/expo/src/src/utils/getUserEmbeddedWallet.ts","packages-js-public/expo/src/src/utils/toErrorState.ts","packages-js-public/expo/src/src/utils/index.ts","packages-js-public/expo/src/src/context/useConnectEmbeddedWallet.ts","packages-js-public/expo/src/src/context/useInitializeUser.ts","packages-js-public/expo/src/src/context/useRNAppStateToFetchUserOnAppResume.ts","packages-js-public/expo/src/src/expo.ts","packages-js-public/expo/src/src/hooks/hooks.types.ts","packages-js-public/expo/src/src/hooks/useLoginWithEmail.ts","packages-js-public/expo/src/src/hooks/useLinkEmail.ts","packages-js-public/expo/src/src/hooks/useLoginWithSMS.ts","packages-js-public/expo/src/src/hooks/useLinkSMS.ts","packages-js-public/expo/src/src/hooks/useEmbeddedWallet.ts","packages-js-public/expo/src/src/hooks/usePrivyClient.ts","packages-js-public/expo/src/src/hooks/usePrivy.ts","packages-js-public/expo/src/src/hooks/index.ts","packages-js-public/expo/src/src/PrivyProvider.tsx","packages-js-public/expo/src/src/index.ts","packages-js-public/expo/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"export * from '@privy-io/js-sdk-core';\nexport * from './PrivyProvider';\nexport * from './types';\nexport * from './models';\nexport * from './hooks';\nexport {getUserEmbeddedWallet} from './utils';\nexport {SecureStorageAdapter, useOAuthFlow} from './expo';\nexport type {OAuthFlowState} from './expo';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var e=require("@privy-io/js-sdk-core"),t=require("react"),s=require("react-native"),a=require("react-native-webview"),r=require("react-fast-compare"),i=require("expo-application"),n=require("expo-linking"),o=require("expo-secure-store");function c(e,t){return Object.keys(t).forEach(function(s){"default"===s||"__esModule"===s||e.hasOwnProperty(s)||Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[s]}})}),e}function
|
|
1
|
+
var e=require("@privy-io/js-sdk-core"),t=require("react"),s=require("react-native"),a=require("react-native-webview"),r=require("react-fast-compare"),i=require("expo-application"),n=require("expo-linking"),o=require("expo-secure-store");function c(e,t){return Object.keys(t).forEach(function(s){"default"===s||"__esModule"===s||e.hasOwnProperty(s)||Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[s]}})}),e}function l(e,t,s,a){Object.defineProperty(e,t,{get:s,set:a,enumerable:!0,configurable:!0})}function u(e){return e&&e.__esModule?e.default:e}l(module.exports,"getUserEmbeddedWallet",()=>g),l(module.exports,"SecureStorageAdapter",()=>E),l(module.exports,"useOAuthFlow",()=>x);var d={};l(d,"PrivyContext",()=>W),l(d,"PrivyProvider",()=>I);var p={};p=JSON.parse('{"name":"@privy-io/expo","version":"0.3.4","description":"Expo client for the Privy Auth API","keywords":["authentication","authorization","identity","privacy","privy","user data","react-native","expo","web3"],"license":"Apache-2.0","source":"./src/index.ts","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.js","import":"./dist/index.mjs","types":"./dist/index.d.ts"}},"targets":{"main":{"isLibrary":true,"sourceMap":false,"optimize":true},"module":{"isLibrary":true,"sourceMap":false,"optimize":true}},"files":["dist/**/*","LICENSE","README.md"],"scripts":{"build":"npx parcel build --no-cache","clean":"rm -rf dist .turbo","dev":"npx parcel watch -p 4234","test":"jest --testMatch \\"**/test/unit/**/*.test.ts\\"","test:ci":"npm run test","test-integration":"jest --testMatch \\"**/test/integration/**/*.test.ts\\"","lint":"eslint \\"src/**/*.{ts,tsx,js,jsx}\\" && npx tsc --noEmit","format":"eslint \\"src/**/*.{ts,tsx,js,jsx}\\" --fix"},"peerDependencies":{"react":"*","react-native":"*","react-native-webview":"*","expo-constants":"*","expo-linking":"*","expo-secure-store":"*","expo-application":"*"},"dependencies":{"@privy-io/js-sdk-core":"0.8.4","react-fast-compare":"^3.2.2"},"devDependencies":{"@privy-io/eslint-config-custom":"*","@privy-io/parcel-config":"*","@privy-io/tsconfig":"*","@tsconfig/node16-strictest-esm":"^1.0.3","parcel":"2.10.1","typescript":"^4.9.5"},"author":"privy.io","publishConfig":{"access":"public"}}');const h=({client:e,isWebViewReady:s,setIsWebViewReady:r})=>{let i=(0,t.useRef)(null);(0,t.useEffect)(()=>{s&&i.current&&e.setMessagePoster(i.current)},[s,e]);let n=(0,t.useCallback)(async t=>{let{data:s}=t.nativeEvent,a=e.embeddedWallet.getMessageHandler();a?.(JSON.parse(s))},[e]);return u(t).createElement(u(a),{style:{flex:1},ref:i,source:{uri:e.embeddedWallet.getURL()},onLoad:()=>r(!0),onMessage:n})},y=e=>t=>e(e=>u(r)(e,t)?e:t),g=e=>{if(!e)return null;let t=e.linked_accounts.find(e=>"wallet"===e.type&&"privy"===e.wallet_client_type&&"embedded"===e.connector_type);return t||null},m=e=>"object"==typeof e&&!!(e?.error&&e?.code),b=e=>t=>e instanceof Error?{status:"error",error:e}:m(e)?{status:"error",error:Error(e.error)}:"string"==typeof e?{status:"error",error:Error(e)}:t,f=({client:s,user:a,wallet:r,setWallet:i,isWebViewReady:n})=>{let o=(0,t.useCallback)(async e=>{i({status:"creating"});try{let t=await s.embeddedWallet.create(e);i({status:"connected",provider:t})}catch(e){i({status:"error",error:"Error creating embedded wallet"})}},[s]),c=(0,t.useCallback)(async e=>{i({status:"connecting"});try{let t=await s.embeddedWallet.getProvider(e);i({status:"connected",provider:t})}catch(e){i({status:"error",error:"Error creating embedded wallet"})}},[s]);return(0,t.useEffect)(()=>{// Ensures that in the event of an expiring session or otherwise bad token,
|
|
2
2
|
// the wallet returns to disconnected state along with a logged out user
|
|
3
3
|
if(!a&&"disconnected"!==r.status)return i({status:"disconnected"});async function t(){// There is a user but no embedded wallet account
|
|
4
4
|
// We need to create an embedded walert for this user
|
|
@@ -10,5 +10,5 @@ i({status:"connecting"});try{let e=await s.embeddedWallet.getProvider();i({statu
|
|
|
10
10
|
n&&t()},[n,a])},v=({client:e,isUserInitialized:s,setIsUserInitialized:a})=>{(0,t.useEffect)(()=>{let t=async()=>{try{await e.user.get()}catch(e){// Explicitly swallow this error
|
|
11
11
|
}finally{a(!0)}};s||t()},[s])},C=({client:e})=>{let a=(0,t.useRef)(s.AppState.currentState);(0,t.useEffect)(()=>{let t=(0,s.AppState).addEventListener("change",t=>{a.current.match(/inactive|background/)&&"active"===t&&e.user.get().catch(()=>{}),a.current=t});return()=>{t.remove()}},[])},w=e=>"loading"!==e.status,x=()=>{let{oAuthState:e,client:s}=(0,t.useContext)(W),a=(0,t.useCallback)(async function({provider:e,redirectUri:t}){let{url:a}=await s.auth.oauth.generateURL(e,n.createURL(t||"/"));return n.openURL(a)},[s]);return{start:a,state:e}},k=({client:e,user:s,isUserInitialized:a,setOAuthState:r})=>{let i=n.useURL();return(0,t.useEffect)(()=>{let t=async()=>{if(!i){r({status:"done"});return}let{queryParams:t}=n.parse(i),{privy_oauth_state:a,privy_oauth_code:o}=t;if(!o||!a){r({status:"done"});return}r({status:"loading"});try{s?await e.auth.oauth.linkWithCode(o,a):await e.auth.oauth.loginWithCode(o,a),r({status:"done"})}catch(e){r(b(e))}// Since stripping query params off the url in place is not possible
|
|
12
12
|
// navigating to the currentUrl less the query params should accomplish the same
|
|
13
|
-
return n.openURL(i.split("?")[0])};a&&t()},[i,a])},S=()=>i.applicationId,E={get:e=>o.getItemAsync(e.replace(":","-")),put(e,t){o.setItemAsync(e.replace(":","-"),t)},del(e){o.deleteItemAsync(e.replace(":","-"))},getKeys:async()=>[]},W=/*#__PURE__*/(0,t.createContext)({}),I=a=>{let[r,i]=(0,t.useState)(!1),[n,o]=(0,t.useState)(!1),[c,
|
|
14
|
-
nativeAppIdentifier:S(),baseUrl:a.baseUrl,sdkVersion:`expo:${/*@__PURE__*/
|
|
13
|
+
return n.openURL(i.split("?")[0])};a&&t()},[i,a])},S=()=>i.applicationId,E={get:e=>o.getItemAsync(e.replace(":","-")),put(e,t){o.setItemAsync(e.replace(":","-"),t)},del(e){o.deleteItemAsync(e.replace(":","-"))},getKeys:async()=>[]},W=/*#__PURE__*/(0,t.createContext)({}),I=a=>{let[r,i]=(0,t.useState)(!1),[n,o]=(0,t.useState)(!1),[c,l]=(0,t.useState)(null),[d,g]=(0,t.useState)({status:"disconnected"}),[m,b]=(0,t.useState)({status:"initial"}),[x,I]=(0,t.useState)({status:"initial"}),A=(0,t.useCallback)(e=>{if(e)return y(l)(e);l(null),b({status:"initial"}),I({status:"initial"}),g({status:"disconnected"})},[]),R=(0,t.useMemo)(()=>new(u(e))({storage:a.storage||E,appId:a.appId,// @ts-expect-error config for internal use only
|
|
14
|
+
nativeAppIdentifier:S(),baseUrl:a.baseUrl,sdkVersion:`expo:${/*@__PURE__*/u(p).version}`,callbacks:{setUser:A}}),[a.storage,a.appId,a.baseUrl,A]),U=(0,t.useCallback)(()=>(A(null),R.auth.logout()),[A,R]),M=(0,t.useCallback)(()=>R.getAccessToken(),[R]);return C({client:R}),v({client:R,isUserInitialized:r,setIsUserInitialized:i}),f({client:R,user:c,isWebViewReady:n,wallet:d,setWallet:g}),k({client:R,isUserInitialized:r,user:c,setOAuthState:I}),u(t).createElement(u(t).Fragment,null,u(t).createElement(W.Provider,{value:{client:R,user:c,isReady:n&&r&&w(x),logout:U,getAccessToken:M,wallet:d,oAuthState:x,otpState:m,setOtpState:b}},a.children),u(t).createElement(s.View,{style:{width:0,height:0,overflow:"hidden"}},u(t).createElement(h,{client:R,isWebViewReady:n,setIsWebViewReady:o})))};var A={},R={};l(R,"isConnected",()=>U),l(R,"isConnecting",()=>M),l(R,"isDisconnected",()=>j),l(R,"isNotCreated",()=>L),l(R,"isCreating",()=>P),l(R,"hasError",()=>O),l(R,"needsRecovery",()=>_);const U=e=>"connected"===e.status,M=e=>"connecting"===e.status,j=e=>"disconnected"===e.status,L=e=>"not-created"===e.status,P=e=>"creating"===e.status,O=e=>"error"===e.status,_=e=>"needs-recovery"===e.status;c(A,R);var q={};l(q,"useLoginWithEmail",()=>z),l(q,"useLinkEmail",()=>V),l(q,"useLoginWithSMS",()=>N),l(q,"useLinkSMS",()=>D),l(q,"useEmbeddedWallet",()=>T),l(q,"usePrivyClient",()=>F),l(q,"usePrivy",()=>J);const z=()=>{let[e,s]=(0,t.useState)(""),{client:a,otpState:r,setOtpState:i}=(0,t.useContext)(W),n=(0,t.useCallback)(async({email:e})=>{s(e);try{i({status:"sending-code"}),await a.auth.email.sendCode(e),i({status:"awaiting-code-input"})}catch(e){i(b(e))}},[a]),o=(0,t.useCallback)(async({code:t,email:s})=>{let r=s||e;if(!r)throw Error("Must `sendCode` with a valid email before calling `loginWithCode`");try{i({status:"submitting-code"});let e=await a.auth.email.loginWithCode(r,t);return i({status:"done"}),e}catch(e){i(b(e))}},[a,e]);return{sendCode:n,loginWithCode:o,state:r}},V=()=>{let[e,s]=(0,t.useState)(""),{client:a,otpState:r,setOtpState:i}=(0,t.useContext)(W),n=(0,t.useCallback)(async({email:e})=>{s(e);try{i({status:"sending-code"}),await a.auth.email.sendCode(e),i({status:"awaiting-code-input"})}catch(e){i(b(e))}},[a]),o=(0,t.useCallback)(async({code:t,email:s})=>{let r=s||e;if(!r)throw Error("Must `sendCode` with a valid email before calling `linkWithCode`");try{i({status:"submitting-code"});let e=await a.auth.email.linkWithCode(r,t);return i({status:"done"}),e}catch(e){i(b(e))}},[a,e]);return{sendCode:n,linkWithCode:o,state:r}},N=()=>{let[e,s]=(0,t.useState)(""),{client:a,otpState:r,setOtpState:i}=(0,t.useContext)(W),n=(0,t.useCallback)(async({phone:e})=>{s(e);try{i({status:"sending-code"}),await a.auth.phone.sendCode(e),i({status:"awaiting-code-input"})}catch(e){i(b(e))}},[a]),o=(0,t.useCallback)(async({code:t,phone:s})=>{let r=s||e;if(!r)throw Error("Must `sendCode` with a valid phone number before calling `loginWithCode`");try{i({status:"submitting-code"});let r=await a.auth.phone.loginWithCode(s||e,t);return i({status:"done"}),r}catch(e){i(b(e))}},[a,e]);return{sendCode:n,loginWithCode:o,state:r}},D=()=>{let[e,s]=(0,t.useState)(""),{client:a,otpState:r,setOtpState:i}=(0,t.useContext)(W),n=(0,t.useCallback)(async({phone:e})=>{s(e);try{i({status:"sending-code"}),await a.auth.phone.sendCode(e),i({status:"awaiting-code-input"})}catch(e){i(b(e))}},[a]),o=(0,t.useCallback)(async({code:t,phone:s})=>{let r=s||e;if(!r)throw Error("Must `sendCode` with a valid phone number before calling `linkWithCode`");try{i({status:"submitting-code"});let r=await a.auth.phone.linkWithCode(s||e,t);return i({status:"done"}),r}catch(e){i(b(e))}},[a,e]);return{sendCode:n,linkWithCode:o,state:r}},T=()=>{let{wallet:e}=(0,t.useContext)(W);return e},F=()=>{let{client:e}=(0,t.useContext)(W);return e},J=()=>{let{user:e,isReady:s,logout:a,getAccessToken:r}=(0,t.useContext)(W);return{user:e,isReady:s,logout:a,getAccessToken:r}};c(module.exports,e),c(module.exports,d),c(module.exports,{}),c(module.exports,A),c(module.exports,q);
|
package/dist/index.mjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import e from"@privy-io/js-sdk-core";import t,{createContext as a,useState as s,
|
|
1
|
+
import e from"@privy-io/js-sdk-core";import t,{createContext as a,useState as s,useCallback as r,useMemo as i,useRef as n,useEffect as o,useContext as c}from"react";import{View as d,AppState as l}from"react-native";import u from"react-native-webview";import p from"react-fast-compare";import{applicationId as h}from"expo-application";import{createURL as f,openURL as b,useURL as y,parse as g}from"expo-linking";import{getItemAsync as m,setItemAsync as v,deleteItemAsync as $}from"expo-secure-store";function w(e,t,a,s){Object.defineProperty(e,t,{get:a,set:s,enumerable:!0,configurable:!0})}var x,C={};w(C,"PrivyContext",()=>z),w(C,"PrivyProvider",()=>V);var E={};E=JSON.parse('{"name":"@privy-io/expo","version":"0.3.4","description":"Expo client for the Privy Auth API","keywords":["authentication","authorization","identity","privacy","privy","user data","react-native","expo","web3"],"license":"Apache-2.0","source":"./src/index.ts","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.js","import":"./dist/index.mjs","types":"./dist/index.d.ts"}},"targets":{"main":{"isLibrary":true,"sourceMap":false,"optimize":true},"module":{"isLibrary":true,"sourceMap":false,"optimize":true}},"files":["dist/**/*","LICENSE","README.md"],"scripts":{"build":"npx parcel build --no-cache","clean":"rm -rf dist .turbo","dev":"npx parcel watch -p 4234","test":"jest --testMatch \\"**/test/unit/**/*.test.ts\\"","test:ci":"npm run test","test-integration":"jest --testMatch \\"**/test/integration/**/*.test.ts\\"","lint":"eslint \\"src/**/*.{ts,tsx,js,jsx}\\" && npx tsc --noEmit","format":"eslint \\"src/**/*.{ts,tsx,js,jsx}\\" --fix"},"peerDependencies":{"react":"*","react-native":"*","react-native-webview":"*","expo-constants":"*","expo-linking":"*","expo-secure-store":"*","expo-application":"*"},"dependencies":{"@privy-io/js-sdk-core":"0.8.4","react-fast-compare":"^3.2.2"},"devDependencies":{"@privy-io/eslint-config-custom":"*","@privy-io/parcel-config":"*","@privy-io/tsconfig":"*","@tsconfig/node16-strictest-esm":"^1.0.3","parcel":"2.10.1","typescript":"^4.9.5"},"author":"privy.io","publishConfig":{"access":"public"}}');let W=({client:e,isWebViewReady:a,setIsWebViewReady:s})=>{let i=n(null);o(()=>{a&&i.current&&e.setMessagePoster(i.current)},[a,e]);let c=r(async t=>{let{data:a}=t.nativeEvent,s=e.embeddedWallet.getMessageHandler();s?.(JSON.parse(a))},[e]);return t.createElement(u,{style:{flex:1},ref:i,source:{uri:e.embeddedWallet.getURL()},onLoad:()=>s(!0),onMessage:c})},S=e=>t=>e(e=>p(e,t)?e:t),k=e=>{if(!e)return null;let t=e.linked_accounts.find(e=>"wallet"===e.type&&"privy"===e.wallet_client_type&&"embedded"===e.connector_type);return t||null},I=e=>"object"==typeof e&&!!(e?.error&&e?.code),P=e=>t=>e instanceof Error?{status:"error",error:e}:I(e)?{status:"error",error:Error(e.error)}:"string"==typeof e?{status:"error",error:Error(e)}:t,A=({client:e,user:t,wallet:a,setWallet:s,isWebViewReady:i})=>{let n=r(async t=>{s({status:"creating"});try{let a=await e.embeddedWallet.create(t);s({status:"connected",provider:a})}catch(e){s({status:"error",error:"Error creating embedded wallet"})}},[e]),c=r(async t=>{s({status:"connecting"});try{let a=await e.embeddedWallet.getProvider(t);s({status:"connected",provider:a})}catch(e){s({status:"error",error:"Error creating embedded wallet"})}},[e]);return o(()=>{// Ensures that in the event of an expiring session or otherwise bad token,
|
|
2
2
|
// the wallet returns to disconnected state along with a logged out user
|
|
3
|
-
if(!t&&"disconnected"!==a.status)return s({status:"disconnected"});async function
|
|
3
|
+
if(!t&&"disconnected"!==a.status)return s({status:"disconnected"});async function r(){// There is a user but no embedded wallet account
|
|
4
4
|
// We need to create an embedded walert for this user
|
|
5
5
|
if(!k(t))return s({status:"not-created",create:n});// There is definitely a user with an embedded wallet
|
|
6
6
|
// so we try to connect and get a provider
|
|
7
7
|
// `getProvider` will internally attempt recovery of `pinless` wallets
|
|
8
8
|
// Otherwise, let the user know they need to prompt for recovery
|
|
9
9
|
s({status:"connecting"});try{let t=await e.embeddedWallet.getProvider();s({status:"connected",provider:t})}catch(e){$diYGi$errorIndicatesRecoveryIsNeeded(e)?s({status:"needs-recovery",recover:c}):s({status:"error",error:"Error loading embedded wallet"})}}// Automatically run on first load, once we know the iframe is loaded
|
|
10
|
-
r
|
|
11
|
-
}finally{a(!0)}};t||s()},[t])},R=({client:e})=>{let t=n(l.currentState);o(()=>{let a=l.addEventListener("change",a=>{t.current.match(/inactive|background/)&&"active"===a&&e.user.get().catch(()=>{}),t.current=a});return()=>{a.remove()}},[])},L=e=>"loading"!==e.status,U=()=>{let{oAuthState:e,client:t}=c(z),a=
|
|
10
|
+
i&&r()},[i,t])},M=({client:e,isUserInitialized:t,setIsUserInitialized:a})=>{o(()=>{let s=async()=>{try{await e.user.get()}catch(e){// Explicitly swallow this error
|
|
11
|
+
}finally{a(!0)}};t||s()},[t])},R=({client:e})=>{let t=n(l.currentState);o(()=>{let a=l.addEventListener("change",a=>{t.current.match(/inactive|background/)&&"active"===a&&e.user.get().catch(()=>{}),t.current=a});return()=>{a.remove()}},[])},L=e=>"loading"!==e.status,U=()=>{let{oAuthState:e,client:t}=c(z),a=r(async function({provider:e,redirectUri:a}){let{url:s}=await t.auth.oauth.generateURL(e,f(a||"/"));return b(s)},[t]);return{start:a,state:e}},j=({client:e,user:t,isUserInitialized:a,setOAuthState:s})=>{let r=y();return o(()=>{let i=async()=>{if(!r){s({status:"done"});return}let{queryParams:a}=g(r),{privy_oauth_state:i,privy_oauth_code:n}=a;if(!n||!i){s({status:"done"});return}s({status:"loading"});try{t?await e.auth.oauth.linkWithCode(n,i):await e.auth.oauth.loginWithCode(n,i),s({status:"done"})}catch(e){s(P(e))}// Since stripping query params off the url in place is not possible
|
|
12
12
|
// navigating to the currentUrl less the query params should accomplish the same
|
|
13
|
-
return b(r.split("?")[0])};a&&i()},[r,a])},O=()=>h,_={get:e=>m(e.replace(":","-")),put(e,t){v(e.replace(":","-"),t)},del(e){$(e.replace(":","-"))},getKeys:async()=>[]},z=a({}),V=a=>{let[n,o]=s(!1),[c,l]=s(!1),[u,p]=s(null),[h,f]=s({status:"disconnected"}),[b,y]=s({status:"initial"}),[g,m]=s({status:"initial"}),v=r(()=>{var t;return new e({storage:a.storage||_,appId:a.appId,// @ts-expect-error config for internal use only
|
|
14
|
-
nativeAppIdentifier:O(),baseUrl:a.baseUrl,sdkVersion:`expo:${((t=E)&&t.__esModule?t.default:t).version}`,callbacks:{setUser:
|
|
13
|
+
return b(r.split("?")[0])};a&&i()},[r,a])},O=()=>h,_={get:e=>m(e.replace(":","-")),put(e,t){v(e.replace(":","-"),t)},del(e){$(e.replace(":","-"))},getKeys:async()=>[]},z=a({}),V=a=>{let[n,o]=s(!1),[c,l]=s(!1),[u,p]=s(null),[h,f]=s({status:"disconnected"}),[b,y]=s({status:"initial"}),[g,m]=s({status:"initial"}),v=r(e=>{if(e)return S(p)(e);p(null),y({status:"initial"}),m({status:"initial"}),f({status:"disconnected"})},[]),$=i(()=>{var t;return new e({storage:a.storage||_,appId:a.appId,// @ts-expect-error config for internal use only
|
|
14
|
+
nativeAppIdentifier:O(),baseUrl:a.baseUrl,sdkVersion:`expo:${((t=E)&&t.__esModule?t.default:t).version}`,callbacks:{setUser:v}})},[a.storage,a.appId,a.baseUrl,v]),w=r(()=>(v(null),$.auth.logout()),[v,$]),x=r(()=>$.getAccessToken(),[$]);return R({client:$}),M({client:$,isUserInitialized:n,setIsUserInitialized:o}),A({client:$,user:u,isWebViewReady:c,wallet:h,setWallet:f}),j({client:$,isUserInitialized:n,user:u,setOAuthState:m}),t.createElement(t.Fragment,null,t.createElement(z.Provider,{value:{client:$,user:u,isReady:c&&n&&L(g),logout:w,getAccessToken:x,wallet:h,oAuthState:g,otpState:b,setOtpState:y}},a.children),t.createElement(d,{style:{width:0,height:0,overflow:"hidden"}},t.createElement(W,{client:$,isWebViewReady:c,setIsWebViewReady:l})))};var N={};w(N,"isConnected",()=>D),w(N,"isConnecting",()=>T),w(N,"isDisconnected",()=>q),w(N,"isNotCreated",()=>F),w(N,"isCreating",()=>J),w(N,"hasError",()=>G),w(N,"needsRecovery",()=>H);let D=e=>"connected"===e.status,T=e=>"connecting"===e.status,q=e=>"disconnected"===e.status,F=e=>"not-created"===e.status,J=e=>"creating"===e.status,G=e=>"error"===e.status,H=e=>"needs-recovery"===e.status;x={},Object.keys(N).forEach(function(e){"default"===e||"__esModule"===e||x.hasOwnProperty(e)||Object.defineProperty(x,e,{enumerable:!0,get:function(){return N[e]}})});var K={};w(K,"useLoginWithEmail",()=>Y),w(K,"useLinkEmail",()=>B),w(K,"useLoginWithSMS",()=>Q),w(K,"useLinkSMS",()=>X),w(K,"useEmbeddedWallet",()=>Z),w(K,"usePrivyClient",()=>ee),w(K,"usePrivy",()=>et);let Y=()=>{let[e,t]=s(""),{client:a,otpState:i,setOtpState:n}=c(z),o=r(async({email:e})=>{t(e);try{n({status:"sending-code"}),await a.auth.email.sendCode(e),n({status:"awaiting-code-input"})}catch(e){n(P(e))}},[a]),d=r(async({code:t,email:s})=>{let r=s||e;if(!r)throw Error("Must `sendCode` with a valid email before calling `loginWithCode`");try{n({status:"submitting-code"});let e=await a.auth.email.loginWithCode(r,t);return n({status:"done"}),e}catch(e){n(P(e))}},[a,e]);return{sendCode:o,loginWithCode:d,state:i}},B=()=>{let[e,t]=s(""),{client:a,otpState:i,setOtpState:n}=c(z),o=r(async({email:e})=>{t(e);try{n({status:"sending-code"}),await a.auth.email.sendCode(e),n({status:"awaiting-code-input"})}catch(e){n(P(e))}},[a]),d=r(async({code:t,email:s})=>{let r=s||e;if(!r)throw Error("Must `sendCode` with a valid email before calling `linkWithCode`");try{n({status:"submitting-code"});let e=await a.auth.email.linkWithCode(r,t);return n({status:"done"}),e}catch(e){n(P(e))}},[a,e]);return{sendCode:o,linkWithCode:d,state:i}},Q=()=>{let[e,t]=s(""),{client:a,otpState:i,setOtpState:n}=c(z),o=r(async({phone:e})=>{t(e);try{n({status:"sending-code"}),await a.auth.phone.sendCode(e),n({status:"awaiting-code-input"})}catch(e){n(P(e))}},[a]),d=r(async({code:t,phone:s})=>{let r=s||e;if(!r)throw Error("Must `sendCode` with a valid phone number before calling `loginWithCode`");try{n({status:"submitting-code"});let r=await a.auth.phone.loginWithCode(s||e,t);return n({status:"done"}),r}catch(e){n(P(e))}},[a,e]);return{sendCode:o,loginWithCode:d,state:i}},X=()=>{let[e,t]=s(""),{client:a,otpState:i,setOtpState:n}=c(z),o=r(async({phone:e})=>{t(e);try{n({status:"sending-code"}),await a.auth.phone.sendCode(e),n({status:"awaiting-code-input"})}catch(e){n(P(e))}},[a]),d=r(async({code:t,phone:s})=>{let r=s||e;if(!r)throw Error("Must `sendCode` with a valid phone number before calling `linkWithCode`");try{n({status:"submitting-code"});let r=await a.auth.phone.linkWithCode(s||e,t);return n({status:"done"}),r}catch(e){n(P(e))}},[a,e]);return{sendCode:o,linkWithCode:d,state:i}},Z=()=>{let{wallet:e}=c(z);return e},ee=()=>{let{client:e}=c(z);return e},et=()=>{let{user:e,isReady:t,logout:a,getAccessToken:s}=c(z);return{user:e,isReady:t,logout:a,getAccessToken:s}};export{k as getUserEmbeddedWallet,_ as SecureStorageAdapter,U as useOAuthFlow,z as PrivyContext,V as PrivyProvider,D as isConnected,T as isConnecting,q as isDisconnected,F as isNotCreated,J as isCreating,G as hasError,H as needsRecovery,Y as useLoginWithEmail,B as useLinkEmail,Q as useLoginWithSMS,X as useLinkSMS,Z as useEmbeddedWallet,ee as usePrivyClient,et as usePrivy};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@privy-io/expo",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "Expo client for the Privy Auth API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"authentication",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"expo-application": "*"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@privy-io/js-sdk-core": "0.8.
|
|
65
|
+
"@privy-io/js-sdk-core": "0.8.4",
|
|
66
66
|
"react-fast-compare": "^3.2.2"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|