// Import the native module. On web, it will be resolved to ReactNativePasskeys.web.ts // and on native platforms to ReactNativePasskeys.ts import ReactNativePasskeysModule from "./ReactNativePasskeysModule"; import type { AuthenticationExtensionsLargeBlobInputs, AuthenticationExtensionsPRFInputs, AuthenticationResponseJSON, PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON, CreationResponse, } from "./ReactNativePasskeys.types"; export function isSupported(): boolean { return ReactNativePasskeysModule.isSupported(); } export function isAutoFillAvalilable(): boolean { return ReactNativePasskeysModule.isAutoFillAvalilable(); } export async function create( request: Omit & { // Platform support: // - iOS: largeBlob (iOS 17+), prf (iOS 18+) // - Android: prf // - Web: largeBlob, prf extensions?: { largeBlob?: AuthenticationExtensionsLargeBlobInputs; prf?: AuthenticationExtensionsPRFInputs; // Request credProps on registration to learn discoverability. credProps?: boolean; }; } & Pick, ): Promise { return await ReactNativePasskeysModule.create(request); } export async function get( request: Omit & { // Platform support: // - iOS: largeBlob (iOS 17+), prf (iOS 18+) // - Android: prf // - Web: largeBlob, prf extensions?: { largeBlob?: AuthenticationExtensionsLargeBlobInputs; prf?: AuthenticationExtensionsPRFInputs; }; }, ): Promise { return await ReactNativePasskeysModule.get(request); }