UNPKG

@privy-io/js-sdk-core

Version:

Vanilla JS client for the Privy Auth API

2 lines (1 loc) 3.14 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@privy-io/public-api"),t=require("./maybeCreateWalletOnLogin.js");require("../../utils/getUserEmbeddedEthereumWallet.js"),require("../../utils/getAllUserEmbeddedEthereumWallets.js"),require("../../utils/getUserEmbeddedSolanaWallet.js"),require("../../utils/getAllUserEmbeddedSolanaWallets.js"),require("../../utils/shouldCreateEmbeddedEthWallet.js"),require("../../utils/shouldCreateEmbeddedSolWallet.js");exports.default=class{async generateRegistrationOptions(t){return await this._privyInternal.fetch(e.PasskeyLinkInit,{body:{relying_party:t}})}async generateAuthenticationOptions(t){return await this._privyInternal.fetch(e.PasskeyAuthenticateInit,{body:{relying_party:t}})}async generateSignupOptions(t){return await this._privyInternal.fetch(e.PasskeyRegisterInit,{body:{relying_party:t}})}async loginWithPasskey(s,a,i,n){let r=await this._privyInternal.fetch(e.PasskeyAuthenticate,{body:{relying_party:i,challenge:a,authenticator_response:this._transformAuthenticationResponseToSnakeCase(s)}});await this._privyInternal.session.updateWithTokensResponse(r);let o=await t.maybeCreateWalletOnLogin(this._embedded,r,n?.embedded);return this._privyInternal.callbacks?.setUser?.(o.user),o}async signupWithPasskey(s,a,i){let n=await this._privyInternal.fetch(e.PasskeyRegister,{body:{relying_party:a,authenticator_response:this._transformRegistrationResponseToSnakeCase(s)}});await this._privyInternal.session.updateWithTokensResponse(n);let r=await t.maybeCreateWalletOnLogin(this._embedded,n,i?.embedded);return this._privyInternal.callbacks?.setUser?.(r.user),r}async linkWithPasskey(t,s){await this._privyInternal.fetch(e.PasskeyLink,{body:{relying_party:s,authenticator_response:this._transformRegistrationResponseToSnakeCase(t)}});let a=await this._privyInternal.refreshSession();return{user:a.user,identity_token:a.identity_token}}_transformRegistrationResponseToSnakeCase(e){return{type:e.type,id:e.id,raw_id:e.rawId,response:{client_data_json:e.response.clientDataJSON,attestation_object:e.response.attestationObject,authenticator_data:e.response.authenticatorData||void 0,transports:e.response.transports||void 0,public_key:e.response.publicKey||void 0,public_key_algorithm:e.response.publicKeyAlgorithm||void 0},authenticator_attachment:e.authenticatorAttachment||void 0,client_extension_results:{app_id:e.clientExtensionResults.appid||void 0,cred_props:e.clientExtensionResults.credProps||void 0,hmac_create_secret:e.clientExtensionResults.hmacCreateSecret||void 0}}}_transformAuthenticationResponseToSnakeCase(e){return{type:e.type,id:e.id,raw_id:e.rawId,response:{signature:e.response.signature,client_data_json:e.response.clientDataJSON,authenticator_data:e.response.authenticatorData,user_handle:e.response.userHandle||void 0},authenticator_attachment:e.authenticatorAttachment||void 0,client_extension_results:{app_id:e.clientExtensionResults.appid||void 0,cred_props:e.clientExtensionResults.credProps||void 0,hmac_create_secret:e.clientExtensionResults.hmacCreateSecret||void 0}}}constructor(e,t){this._privyInternal=e,this._embedded=t}};