UNPKG

@privy-io/server-auth

Version:

Server-side client for the Privy API

2 lines (1 loc) 6.54 kB
import{fetch as e}from"node-fetch-native";import{objectToSnake as t}from"ts-case-convert";function i(e){return new Date(1e3*e)}function r(e,t){let i=e.slice().find((e=>e.type===t));if(!i)return;let{type:r,...a}=i;return a}function a(e){if(!e)return null;let t=e.linked_accounts.map((e=>{switch(e.type){case"wallet":return{id:e.id??null,address:e.address,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at),chainType:e.chain_type,chainId:e.chain_id,walletType:e.wallet_type,walletClientType:e.wallet_client_type,connectorType:e.connector_type,hdWalletIndex:e.wallet_index,imported:e.imported,delegated:e.delegated};case"smart_wallet":return{address:e.address,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at),smartWalletType:e.smart_wallet_type,smartWalletVersion:e.smart_wallet_version};case"email":return{address:e.address,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"phone":return{number:e.phoneNumber,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"google_oauth":return{subject:e.subject,email:e.email,name:e.name,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"twitter_oauth":return{subject:e.subject,username:e.username,name:e.name,profilePictureUrl:e.profile_picture_url,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"discord_oauth":return{subject:e.subject,username:e.username,email:e.email,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"github_oauth":return{subject:e.subject,username:e.username,email:e.email,name:e.name,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"apple_oauth":return{subject:e.subject,email:e.email,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"linkedin_oauth":return{subject:e.subject,email:e.email,name:e.name,type:e.type,vanityName:e.vanity_name,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"tiktok_oauth":case"spotify_oauth":return{subject:e.subject,username:e.username,name:e.name,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"instagram_oauth":return{subject:e.subject,username:e.username,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"custom_auth":return{customUserId:e.custom_user_id,type:e.type,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"farcaster":return{type:e.type,fid:e.fid,ownerAddress:e.owner_address,displayName:e.display_name,username:e.username,bio:e.bio,pfp:e.profile_picture,url:e.homepage_url,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"telegram":return{type:e.type,telegramUserId:e.telegram_user_id,firstName:e.first_name,lastName:e.last_name,username:e.username,photoUrl:e.photo_url,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"cross_app":return{type:e.type,subject:e.subject,providerApp:e.provider_app_id,embeddedWallets:e.embedded_wallets,smartWallets:e.smart_wallets,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};case"passkey":return{type:e.type,credentialId:e.credential_id,enrolledInMfa:e.enrolled_in_mfa,verifiedAt:i(e.verified_at),firstVerifiedAt:i(e.first_verified_at),latestVerifiedAt:i(e.latest_verified_at)};default:return null}})).filter((e=>null!==e)),{walletAccount:r,smartWalletAccount:a,emailAccount:s,phoneAccount:n,googleAccount:d,twitterAccount:f,discordAccount:l,githubAccount:u,appleAccount:c,linkedInAccount:_,tiktokAccount:p,spotifyAccount:m,instagramAccount:A,customJwtAccount:v,farcasterAccount:y,telegramAccount:h}=o(t);return{id:e.id,createdAt:i(e.created_at),isGuest:e.is_guest,customMetadata:e.custom_metadata,linkedAccounts:t,email:s,phone:n,wallet:r,smartWallet:a,google:d,twitter:f,discord:l,github:u,apple:c,linkedin:_,tiktok:p,spotify:m,instagram:A,custom:v,farcaster:y,telegram:h}}function s(e){if("undefined"!=typeof btoa&&"function"==typeof btoa)return btoa(e);if("function"==typeof Buffer)return Buffer.from(e).toString("base64");throw Error("@privy-io/server-auth is running in an unsupported environment")}function n(t){if(void 0===e)throw Error("Fetch is missing from this environment, use browser or node env");return function(i,r){return e(i,{...r,signal:AbortSignal.timeout(t)})}}function d(e){return t(e).map((e=>"farcaster"!==e.type?e:{type:"farcaster",fid:e.fid,owner_address:e.owner_address,username:e.username,display_name:e.display_name,bio:e.bio,profile_picture_url:e.pfp,homepage_url:e.url}))}function f(e){if(e&&0!==e.length)return e.map((e=>({chain_type:e.chainType,policy_ids:e.policyIds,additional_signers:e.additionalSigners?.map((e=>({signer_id:e.signerId,override_policy_ids:e.policyIds}))),create_smart_wallet:e.createSmartWallet})))}function l(e){return e?new Date(1e3*e):null}function o(e){return{walletAccount:r(e,"wallet"),smartWalletAccount:r(e,"smart_wallet"),emailAccount:r(e,"email"),phoneAccount:r(e,"phone"),googleAccount:r(e,"google_oauth"),twitterAccount:r(e,"twitter_oauth"),discordAccount:r(e,"discord_oauth"),githubAccount:r(e,"github_oauth"),appleAccount:r(e,"apple_oauth"),linkedInAccount:r(e,"linkedin_oauth"),tiktokAccount:r(e,"tiktok_oauth"),spotifyAccount:r(e,"spotify_oauth"),instagramAccount:r(e,"instagram_oauth"),customJwtAccount:r(e,"custom_auth"),farcasterAccount:r(e,"farcaster"),telegramAccount:r(e,"telegram")}}function u(e){let t=new URLSearchParams;for(let i in e){let r=e[i];null!=r&&t.append(i,String(r))}return Array.from(t).length?`?${t.toString()}`:""}const c=(e,t)=>"bigint"==typeof e?t(e):Array.isArray(e)?e.map((e=>c(e,t))):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map((([e,i])=>[e,c(i,t)]))):e;export{f as a,l as b,a as c,n as d,s as e,o as f,u as g,r as h,d as p,c as r};