rba-widget
Version:
An embeddable Risk Based Authentication - Login & Transaction
181 lines (180 loc) • 4.8 kB
TypeScript
export type UserDetails = {
userId: string;
secret: string;
accountId?: string | null;
transactionId?: string | null;
transaction_amount?: string | number | null;
transaction_type?: string | null;
recipient_details?: string | null;
recipient_bank_name?: string | null;
transaction_category?: string | null;
transaction_currency?: string | null;
transaction_frequency?: string | null;
recipient_account_no?: string | number;
wallet_id?: string;
payment_mode?: string;
upi_id?: string;
recipient_ifsc_code?: string;
ifsc_code?: string;
sender_upi_id?: string;
account_no?: number | string;
bank_name?: number | string;
debit_card_no?: number | string;
debit_card_expiry?: string;
debit_card_cvv?: number | string;
credit_card_no?: number | string;
credit_card_expiry?: string;
credit_card_cvv?: number | string;
device_fingerprint?: string;
device_id?: string;
device_model?: string;
device_type?: string;
ip_address?: string;
isp_name?: string;
latitude?: string;
longitude?: string;
network_type?: string;
operating_system_and_version?: string;
time_zone?: string;
timestamp?: string;
type?: string;
vpn_check?: string;
};
export type LogMessage = {
action: string;
message: string;
code: number;
data?: unknown;
};
export type RBAWidgetProps = {
baseUrl: string;
ipInfoToken: string;
type: "login" | "transaction";
userDetails: UserDetails;
onMessage: (arg: LogMessage) => void;
pageLoadTime?: number;
jwt?: undefined | string;
};
export type UserInfo = {
userid?: string;
accountid?: string;
email?: string;
phone?: string;
};
export type LoginResultData = {
actionNeeded?: string;
trackingId?: string;
jwt?: string;
userId?: string;
authType?: string;
user?: UserInfo;
};
export type DeviceResultData = {
deviceId?: string;
};
export type ApiResponse = {
resultCode?: number;
resultData?: LoginResultData;
resultMessage?: string;
timestamp?: Date | string;
transaction_currency: string;
};
export interface User {
userid: string;
accountid: string;
}
export interface MFADialogProps {
open: boolean;
onClose: () => void;
baseUrl: string;
handleFinalCall: (status: number) => void;
responseData: LoginResultData | undefined;
deviceData: DeviceInfo | null;
logAction: (action: string, message: string, code: number, data?: unknown) => void;
}
export interface CircularProgressWithLabelProps {
value: number;
}
export interface DataJSONBodyProps {
type: number;
device_id?: string;
device_type?: string;
operating_system_and_version?: string;
browser_version?: string;
ip_address?: string;
latitude?: string | number;
longitude?: string | number;
timestamp: string;
time_taken_to_login?: number;
time_taken_to_complete_transaction?: number;
screen_resolution?: string;
transaction_amount?: string;
transaction_type?: string;
recipient_details?: string;
recipient_bank_name?: string;
transaction_category?: string;
transaction_currency?: string;
transaction_frequency?: string;
recipient_account_no?: string | number;
wallet_id?: string;
payment_mode?: string;
upi_id?: string;
recipient_ifsc_code?: string;
ifsc_code?: string;
sender_upi_id?: string;
account_no?: number | string;
bank_name?: number | string;
debit_card_no?: number | string;
debit_card_expiry?: string;
debit_card_cvv?: number | string;
credit_card_no?: number | string;
credit_card_expiry?: string;
credit_card_cvv?: number | string;
device_fingerprint?: string;
device_model?: string;
isp_name?: string;
network_type?: string;
time_zone?: string;
vpn_check?: string;
}
export interface DeviceInfo {
ip: string;
loc: string;
latitude: string;
longitude: string;
postal: string;
timeZone: string;
timeZoneArea: string;
carrierName: string;
browserName: string;
browserVersion: string;
deviceType: string;
engineName: string;
engineVersion: string;
fullBrowserVersion: string;
mobileModel: string;
mobileVendor: string;
osName: string;
osVersion: string;
screenResolution: string;
defaultLanguage: string;
isVpnUsed: boolean;
deviceId: string;
[key: string]: unknown;
}
export interface GeolocationData {
ip?: string;
loc?: string;
latitude?: string;
longitude?: string;
postal?: string;
org?: string;
privacy?: {
vpn?: boolean;
};
[key: string]: unknown;
}
export type MimeType = {
pattern: string;
mime: string;
};