@idscan/idvc2
Version:
component for the capturing documents
60 lines (59 loc) • 2.13 kB
TypeScript
import { IDataForSubmit } from '../util';
import { Base64 } from '../helpers/base64';
import { DocumentTypeIndex } from '../environment/documentTypes';
interface IRequestBase {
frontImageBase64: Base64;
backOrSecondImageBase64: Base64;
faceImageBase64: Base64;
ssn: string;
frontMultiImagesBase64: Base64;
faceMultiImagesBase64: Base64;
documentType: DocumentTypeIndex | 0;
}
interface IRequestV3 extends IRequestBase {
trackString: string;
verifyFace: boolean;
captureMethod: string;
userAgent: string;
frontEndMetadata: string;
metadata?: string;
}
interface IRequestV4 extends IRequestBase {
trackString: {
data: string;
barcodeParams: string;
};
metadata: {
captureMethod: string;
userAgent: string;
frontEndMetadata: string;
otherMetadata?: string;
};
}
export interface IPrepareRequestDataForDiveApiParams<P = Record<string, unknown>> {
data?: IDataForSubmit;
payload?: P;
versionAPI?: '3' | '3.1' | '4';
}
type IRequestPayload = Record<string, unknown>;
/**
* Prepares request payload for Dive API (v3 / v3.1 / v4) based on submitted capture data.
*
* Builds a normalized request object:
* - extracts base64 images (front, back/second, face)
* - prepares multi-capture images if available
* - parses metadata
* - adjusts payload structure depending on API version
*
* @template P - Additional custom payload fields to be merged into the request
*
* @param params - Parameters object
* @param params.data - Raw data collected from the results of the IDVC capture flow
* @param params.payload - Optional custom fields to extend the request payload
* @param params.versionAPI - Target Dive API version (`'3' | '3.1' | '4'`)
*
* @returns Promise resolving to a prepared Dive API request object
* compatible with the specified API version and extended with custom payload fields
*/
export declare const prepareRequestDataForDiveApi: <P extends IRequestPayload>({ data, versionAPI, payload, }: IPrepareRequestDataForDiveApiParams<P>) => Promise<(IRequestV3 | IRequestV4) & P>;
export {};