absolute-widget
Version:
An embeddable User Login and Registration using Absolute & PasswordLess with consent page
160 lines (159 loc) • 3.73 kB
TypeScript
export interface LogMessage {
action: string;
message: string;
code: number;
data?: unknown;
}
export interface AbsoluteLoginProps {
baseUrl: string;
ipInfoToken: string;
userId: string;
appId: string;
appSecret: string;
accountId?: string | null;
onMessage: (arg: LogMessage) => void;
}
export interface PWLRegisterProps {
baseUrl: string;
ipInfoToken: string;
token: string;
onMessage: (arg: LogMessage) => void;
}
export interface PWLConsentProps {
baseUrl: string;
ipInfoToken: string;
googleMapKey: string;
accessToken: string;
onMessage: (arg: LogMessage) => void;
}
export interface UserInfo {
userid?: string;
accountid?: string;
email?: string;
phone?: string;
}
export interface PwlAppsProps {
appName: string;
appId: string;
authSubType: string[];
}
export interface LoginResultData {
allowWithoutMFA?: boolean;
trackingId?: string;
jwtToken?: string;
userId?: string;
authType?: string;
user?: UserInfo;
passwordlessApps?: PwlAppsProps[];
[other: string]: unknown;
}
export type platformType = 'app' | 'all' | string;
export interface RegisterResultData {
appName?: string;
appId?: string;
userName?: string;
userId?: string;
email?: string;
platform?: platformType;
[other: string]: unknown;
}
export interface ConsentResultData {
type?: string;
src?: string;
latitude?: string;
longitude?: string;
id?: string;
auth?: string;
reqTime?: string | Date;
device?: string;
appId?: string;
email?: string;
userId?: string;
token?: string;
transactionId?: string;
requestType?: string;
createdOn?: string;
deviceProfile?: string;
[other: string]: unknown;
}
export interface DeviceResultData {
deviceId?: string;
}
export interface ApiLoginResponse {
resultCode?: number;
resultData?: LoginResultData;
resultMessage?: string;
timestamp?: Date | string;
}
export interface ApiRegisterResponse {
resultCode?: number;
resultData?: RegisterResultData;
resultMessage?: string;
timestamp?: Date | string;
}
export interface ApiConsentResponse {
resultCode?: number;
resultData?: ConsentResultData;
resultMessage?: string;
timestamp?: Date | 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 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;
};
abuse?: {
name?: string;
};
[key: string]: unknown;
}
export interface MimeType {
pattern: string;
mime: string;
}