UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 10.2 kB
"use strict";var e=require("viem"),t=require("react"),i=require("./internal-context-DNWjSiYq.js");function a(e){return e?new Date(1e3*e):null}function l(e,t){return e.slice().sort(((e,t)=>(e.firstVerifiedAt?.getTime()??0)-(t.firstVerifiedAt?.getTime()??0))).find((e=>e.type===t))}const r=e=>e?n(e).find((e=>0===e.walletIndex))??null:null,n=e=>e?s(e,"ethereum"):[],s=(e,t)=>e.linkedAccounts.filter((e=>"wallet"===e.type&&"privy"===e.walletClientType&&!e.imported&&e.chainType===t)),m=e=>e?s(e,"solana"):[],d=e=>e?m(e).find((e=>0===e.walletIndex))??null:null;let o=(t,i)=>t===i||!(!t.startsWith("0x")||!i.startsWith("0x"))&&e.getAddress(t)===e.getAddress(i);const p=/*#__PURE__*/t.createContext({ready:!1,authenticated:!1,user:null,walletConnectors:null,connectWallet:i.notImplemented,login:i.notImplemented,connectOrCreateWallet:i.notImplemented,linkEmail:i.notImplemented,linkPhone:i.notImplemented,linkFarcaster:i.notImplemented,linkWallet:i.notImplemented,startCrossAppAuthFlow:i.notImplemented,linkGoogle:i.notImplemented,linkTwitter:i.notImplemented,linkDiscord:i.notImplemented,linkGithub:i.notImplemented,linkSpotify:i.notImplemented,linkInstagram:i.notImplemented,linkTelegram:i.notImplemented,linkTiktok:i.notImplemented,linkLine:i.notImplemented,linkLinkedIn:i.notImplemented,linkApple:i.notImplemented,linkPasskey:i.notImplemented,updateEmail:i.notImplemented,updatePhone:i.notImplemented,logout:i.notImplemented,getAccessToken:i.notImplemented,unlinkEmail:i.notImplemented,unlinkPhone:i.notImplemented,unlinkWallet:i.notImplemented,unlinkGoogle:i.notImplemented,unlinkTwitter:i.notImplemented,unlinkDiscord:i.notImplemented,unlinkGithub:i.notImplemented,unlinkSpotify:i.notImplemented,unlinkInstagram:i.notImplemented,unlinkTiktok:i.notImplemented,unlinkLine:i.notImplemented,unlinkLinkedIn:i.notImplemented,unlinkApple:i.notImplemented,unlinkCrossAppAccount:i.notImplemented,unlinkFarcaster:i.notImplemented,unlinkTelegram:i.notImplemented,unlinkPasskey:i.notImplemented,signMessage:i.notImplemented,signTypedData:i.notImplemented,enrollInMfa:i.notImplemented,initEnrollmentWithSms:i.notImplemented,initEnrollmentWithTotp:i.notImplemented,initEnrollmentWithPasskey:i.notImplemented,promptMfa:i.notImplemented,init:i.notImplemented,submitEnrollmentWithSms:i.notImplemented,submitEnrollmentWithTotp:i.notImplemented,submitEnrollmentWithPasskey:i.notImplemented,unenroll:i.notImplemented,submit:i.notImplemented,cancel:i.notImplemented,sendTransaction:i.notImplemented,signTransaction:i.notImplemented,exportWallet:i.notImplemented,setWalletPassword:i.notImplemented,setWalletRecovery:i.notImplemented,requestFarcasterSignerFromWarpcast:i.notImplemented,getFarcasterSignerPublicKey:i.notImplemented,signFarcasterMessage:i.notImplemented,signMessageWithCrossAppWallet:i.notImplemented,signTypedDataWithCrossAppWallet:i.notImplemented,sendTransactionWithCrossAppWallet:i.notImplemented,signTransactionWithCrossAppWallet:i.notImplemented,isModalOpen:!1,mfaMethods:[]});exports.PrivyContext=p,exports.convertUserResponseToUser=function(e){if(!e)return null;let t=function(e){let t=[];for(let i of e){let e=i.type;switch(i.type){case"wallet":let l={id:i.id,address:i.address,type:i.type,imported:i.imported,delegated:i.delegated,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at),chainType:i.chain_type,walletClientType:i.wallet_client_type,connectorType:i.connector_type,recoveryMethod:i.recovery_method,walletIndex:i.wallet_index};t.push(l);break;case"smart_wallet":let r={address:i.address,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at),smartWalletType:i.smart_wallet_type,smartWalletVersion:i.smart_wallet_version};t.push(r);break;case"cross_app":let n={type:i.type,subject:i.subject,embeddedWallets:i.embedded_wallets,smartWallets:i.smart_wallets,providerApp:{id:i.provider_app_id},firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(n);break;case"email":let s={address:i.address,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(s);break;case"phone":let m={number:i.phoneNumber,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(m);break;case"google_oauth":let d={subject:i.subject,email:i.email,name:i.name,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(d);break;case"spotify_oauth":let o={subject:i.subject,email:i.email,name:i.name,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(o);break;case"instagram_oauth":let p={subject:i.subject,username:i.username,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(p);break;case"twitter_oauth":let u={subject:i.subject,username:i.username,name:i.name,type:i.type,profilePictureUrl:i.profile_picture_url,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(u);break;case"discord_oauth":let c={subject:i.subject,username:i.username,email:i.email,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(c);break;case"github_oauth":let f={subject:i.subject,username:i.username,name:i.name,email:i.email,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(f);break;case"tiktok_oauth":let _={subject:i.subject,username:i.username,name:i.name,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(_);break;case"line_oauth":let y={subject:i.subject,name:i.name,email:i.email,profilePictureUrl:i.profile_picture_url,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(y);break;case"linkedin_oauth":let h={subject:i.subject,name:i.name,email:i.email,vanityName:i.vanity_name,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(h);break;case"apple_oauth":let b={subject:i.subject,email:i.email,type:i.type,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(b);break;case"custom_auth":t.push({type:i.type,customUserId:i.custom_user_id,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)});break;case"farcaster":let I={type:i.type,fid:i.fid,ownerAddress:i.owner_address,displayName:i.display_name,username:i.username,bio:i.bio,pfp:i.profile_picture_url,url:i.homepage_url,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at),signerPublicKey:i.signer_public_key};t.push(I);break;case"passkey":let k={type:i.type,enrolledInMfa:i.enrolled_in_mfa,credentialId:i.credential_id,publicKey:i.public_key,authenticatorName:i.authenticator_name,createdWithDevice:i.created_with_device,createdWithOs:i.created_with_os,createdWithBrowser:i.created_with_browser,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(k);break;case"telegram":let v={type:i.type,telegramUserId:i.telegram_user_id,firstName:i.first_name,lastName:i.last_name,username:i.username,photoUrl:i.photo_url,firstVerifiedAt:a(i.first_verified_at),latestVerifiedAt:a(i.latest_verified_at)};t.push(v);break;default:console.warn(`Unrecognized account type: ${e}. Please consider upgrading the Privy SDK.`)}}return t}(e.linked_accounts),i=l(t,"wallet"),r=l(t,"smart_wallet"),n=l(t,"email"),s=l(t,"phone"),m=l(t,"google_oauth"),d=l(t,"twitter_oauth"),o=l(t,"discord_oauth"),p=l(t,"github_oauth"),u=l(t,"spotify_oauth"),c=l(t,"instagram_oauth"),f=l(t,"tiktok_oauth"),_=l(t,"line_oauth"),y=l(t,"linkedin_oauth"),h=l(t,"apple_oauth"),b=l(t,"farcaster"),I=l(t,"telegram"),k=e.mfa_methods.map((({type:e,verified_at:t})=>({type:e,verifiedAt:a(t)})));return{id:e.id,createdAt:a(e.created_at),linkedAccounts:t,email:n&&{address:n?.address},phone:s&&{number:s?.number},wallet:i&&{id:i.id,address:i.address,chainType:i.chainType,walletClientType:i.walletClientType,connectorType:i.connectorType,recoveryMethod:i.recoveryMethod,imported:i.imported,delegated:i.delegated,walletIndex:i.walletIndex},smartWallet:r&&{address:r.address,smartWalletType:r.smartWalletType,smartWalletVersion:r.smartWalletVersion},google:m&&{subject:m.subject,email:m.email,name:m.name},twitter:d&&{subject:d.subject,username:d.username,name:d.name,profilePictureUrl:d.profilePictureUrl},discord:o&&{subject:o.subject,username:o.username,email:o.email},github:p&&{subject:p.subject,username:p.username,name:p.name,email:p.email},spotify:u&&{subject:u.subject,email:u.email,name:u.name},instagram:c&&{subject:c.subject,username:c.username},tiktok:f&&{subject:f.subject,username:f.username,name:f.name},line:_&&{subject:_.subject,name:_.name,email:_.email,profilePictureUrl:_.profilePictureUrl},linkedin:y&&{subject:y.subject,name:y.name,email:y.email,vanityName:y.vanityName},apple:h&&{subject:h.subject,email:h.email},farcaster:b&&{fid:b.fid,ownerAddress:b.ownerAddress,displayName:b.displayName,username:b.username,bio:b.bio,pfp:b.pfp,url:b.url,signerPublicKey:b.signerPublicKey},telegram:I&&{telegramUserId:I.telegramUserId,firstName:I.firstName,lastName:I.lastName,username:I.username,photoUrl:I.photoUrl},delegatedWallets:[],mfaMethods:k.map((e=>e.type)),hasAcceptedTerms:e.has_accepted_terms??!1,isGuest:e.is_guest,customMetadata:e.custom_metadata}},exports.getAllPrivyWalletsForChainType=s,exports.getConnectedWalletWithAddress=(e,t)=>e.find((e=>o(e.address,t)))||null,exports.getImportedPrivyEthereumWallet=e=>e?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType&&e.imported&&"ethereum"===e.chainType))||null,exports.getImportedPrivySolanaWallet=e=>e?.linkedAccounts.find((e=>"wallet"===e.type&&e.imported&&"privy"===e.walletClientType&&"solana"===e.chainType))||null,exports.getIsUnifiedWallet=e=>!!e.id&&"privy-v2"===e.recoveryMethod,exports.getPrivyEthereumHDWallets=n,exports.getPrivyEthereumWallet=r,exports.getPrivyPrimaryWallet=e=>r(e)??d(e),exports.getPrivySolanaHDWallets=m,exports.getPrivySolanaWallet=d,exports.getPrivyWalletWithAddress=(e,t)=>e?.linkedAccounts.find((e=>"wallet"===e.type&&"privy"===e.walletClientType&&o(e.address,t)))||null,exports.usePrivyContext=()=>t.useContext(p);