UNPKG

@nevis-security/nevis-mobile-authentication-sdk-react

Version:

React Native plugin for Nevis Mobile Authentication SDK. Supports only mobile.

91 lines (80 loc) 3.01 kB
/** * Copyright © 2024 Nevis Security AG. All rights reserved. */ import { Version } from './Version'; /** * The object containing information about Nevis Mobile Authentication SDK for Android. */ export abstract class AndroidMetaData { /** * The current version of Nevis Mobile Authentication SDK for Android. */ abstract mobileAuthenticationVersion: Version; /** * The SHA-256 hash of the signing certificate of the application that includes the Nevis Mobile * Authentication SDK for Android. * * This information can be used to properly configure the {@link https://docs.nevis.net/configurationguide/use-cases/Mobile-Authentication/Mobile-Authentication-Use-Cases/Mobile-Authentication-with-Deep-Links#for-android | well-known} * file on the backend, to use {@link https://developer.android.com/training/app-links/verify-android-applinks | Android App Links}. */ abstract signingCertificateSha256: string; /** * The {@link https://docs.nevis.net/mobilesdk/guide/configuration#facet-id | facet ID} used by * Nevis Mobile Authentication SDK for Android. * * The facet ID of your application has to match the list of allowed facets stored provided by * the facet service of the backend. */ abstract applicationFacetId: string; /** * Default constructor for {@link AndroidMetaData}. * * @param mobileAuthenticationVersion the current version of Nevis Mobile Authentication SDK for Android. * @param signingCertificateSha256 the SHA-256 hash of the signing certificate of the application. * @param applicationFacetId the facet ID used by Nevis Mobile Authentication SDK for Android. * @returns an {@link AndroidMetaData} instance. */ static create( mobileAuthenticationVersion: Version, signingCertificateSha256: string, applicationFacetId: string ): AndroidMetaData { return new AndroidMetaDataImpl( mobileAuthenticationVersion, signingCertificateSha256, applicationFacetId ); } /** * Alternate constructor that creates a {@link AndroidMetaData} from a json. * * @param json contains the source for instance creation. * @returns an {@link AndroidMetaData} instance. */ static fromJson(json: any): AndroidMetaData { return AndroidMetaDataImpl.fromJson(json); } } export class AndroidMetaDataImpl extends AndroidMetaData { mobileAuthenticationVersion: Version; signingCertificateSha256: string; applicationFacetId: string; constructor( mobileAuthenticationVersion: Version, signingCertificateSha256: string, applicationFacetId: string ) { super(); this.mobileAuthenticationVersion = mobileAuthenticationVersion; this.signingCertificateSha256 = signingCertificateSha256; this.applicationFacetId = applicationFacetId; } static fromJson(json: any): AndroidMetaDataImpl { const mobileAuthenticationVersion = Version.fromJson(json.mobileAuthenticationVersion); return new AndroidMetaDataImpl( mobileAuthenticationVersion, json.signingCertificateSha256, json.applicationFacetId ); } }