@datadome/fraud-sdk-node
Version:
Fraud Protection - Node.js SDK
56 lines (55 loc) • 1.94 kB
TypeScript
import { DataDomeEvent, LoginEvent, RegistrationEvent, StatusType, Response, ResponseError, ResponseAction } from './model';
import { IncomingMessage } from 'http';
export { DataDome, LoginEvent, RegistrationEvent, ResponseAction, StatusType, DataDomeOptions };
export * from './model';
interface LogInterface {
debug(primaryMessage: string, ...supportingData: any[]): void;
warn(primaryMessage: string, ...supportingData: any[]): void;
error(primaryMessage: string, ...supportingData: any[]): void;
info(primaryMessage: string, ...supportingData: any[]): void;
}
interface DataDomeOptions {
logger?: LogInterface;
timeout?: number;
endpoint?: string;
}
/**
* Main class that is used to get DataDome recommendations for fraud protection
*
* @example <caption>to get a `Response` on a Login request</caption>
* use `await datadomeClient.validate(req, new LoginEvent(accountName))`
*
* @example <caption>to get a `Response` on a Registration request</caption>
* use ```await datadomeClient.validate(req,
new RegistrationEvent(
req.body.email,
{ id: sessionId, createdAt: Date.now() }, // Session Information
{ // User Information
id: userId,
title: req.body.title,
firstName: req.body.firstname
lastName: req.body.lastname,
createdAt: Date.now();
phone: req.body.phone,
email: req.body.email,
address: {}
},
StatusType.SUCCEEDED
)
);```
*/
declare class DataDome {
private options;
private logger;
private requestOptions;
constructor(key: string, options?: DataDomeOptions);
private buildPayload;
private sendRequest;
/**
* Validate request
* @async
*
* */
validate(request: IncomingMessage, event: DataDomeEvent): Promise<Response | ResponseError>;
collect(request: IncomingMessage, event: DataDomeEvent): Promise<Response | ResponseError>;
}