@onfido/api 2.3.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -1
- package/dist/index.es.js +1 -1
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/resources/Checks.d.ts +2 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v2.3.1, 24 May 2022
|
|
4
|
+
|
|
5
|
+
- Reinstated `privacyNoticesReadConsentGiven` parameter
|
|
6
|
+
|
|
3
7
|
## v2.3.0, 10 May 2022
|
|
4
8
|
|
|
5
9
|
- Updated to use API v3.4. For more details please see our [release notes](https://developers.onfido.com/release-notes#api-v34)
|
|
6
10
|
- Added `location` to applicant request, applicant response and documents request. `location` is a mandatory parameter for all applicants in order to create a check using API v3.4
|
|
7
11
|
- Added `consents` to applicant request. `consents` is a mandatory parameter for any applicant located in the United States in order to create a check using API v3.4
|
|
8
12
|
- Added `phoneNumber` to applicant request and response
|
|
9
|
-
- Removed `privacy_notices_read_consent_given` from check request and response
|
|
10
13
|
|
|
11
14
|
## v2.2.0, 02 March 2022
|
|
12
15
|
|
package/dist/index.es.js
CHANGED
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/errors/OnfidoError.ts","../src/errors/OnfidoApiError.ts","../src/formatting.ts","../src/OnfidoDownload.ts","../src/Resource.ts","../src/resources/Addresses.ts","../src/resources/Applicants.ts","../src/resources/Autofill.ts","../src/resources/Checks.ts","../src/resources/Documents.ts","../src/resources/LivePhotos.ts","../src/resources/LiveVideos.ts","../src/resources/Reports.ts","../src/resources/SdkTokens.ts","../src/resources/Webhooks.ts","../src/Onfido.ts","../src/WebhookEventVerifier.ts"],"sourcesContent":["export class OnfidoError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = \"OnfidoError\";\n }\n}\n","import { OnfidoError } from \"./OnfidoError\";\n\nexport class OnfidoApiError extends OnfidoError {\n public readonly responseBody: unknown;\n public readonly statusCode: number;\n public readonly type: string;\n public readonly fields: unknown;\n\n private constructor(\n message: string,\n responseBody: unknown,\n statusCode: number,\n type: string,\n fields: unknown\n ) {\n super(message);\n this.name = \"OnfidoApiError\";\n\n this.responseBody = responseBody;\n this.statusCode = statusCode;\n this.type = type;\n this.fields = fields;\n }\n\n public static fromResponse(\n responseBody: unknown,\n statusCode: number\n ): OnfidoApiError {\n const innerErrorData: unknown =\n responseBody instanceof Object ? (responseBody as any).error : {};\n\n const innerError: {\n type?: unknown;\n message?: unknown;\n fields?: unknown;\n } = innerErrorData instanceof Object ? innerErrorData : {};\n\n const type = `${innerError.type || \"unknown\"}`;\n const message = `${innerError.message || responseBody}`;\n const fields = innerError.fields;\n\n const fullMessage =\n `${message} (status code ${statusCode})` +\n (fields ? ` | ${JSON.stringify(fields)}` : \"\");\n\n return new OnfidoApiError(\n fullMessage,\n responseBody,\n statusCode,\n type,\n fields\n );\n }\n\n public isClientError(): boolean {\n return this.statusCode < 500;\n }\n}\n","import { Readable } from \"stream\";\nimport { IFormData } from \"./types/formData\";\n\n// Using require because \"form-data\" exports this object as a default export which breaks integration when esModuleInterop: false\n// tslint:disable-next-line: no-var-requires\nconst FormData = require(\"form-data\");\n\nexport type SimpleObject = { [key: string]: unknown };\n\ntype ContentsAndOptions = {\n contents: Readable;\n filepath: string;\n contentType?: string;\n};\n\nexport type FileLike = Readable | ContentsAndOptions;\n\nconst snakeCase = (camelCaseString: string): string =>\n camelCaseString.replace(/[A-Z]/g, char => `_${char.toLowerCase()}`);\n\nconst camelCase = (snakeCaseString: string): string =>\n snakeCaseString\n .replace(/_[0-9]/g, underscoreDigit => underscoreDigit[1])\n .replace(/_[a-z]/g, underscoreChar => underscoreChar[1].toUpperCase());\n\nconst deepMapObjectKeys = (value: unknown, f: (key: string) => string): any => {\n if (!(value instanceof Object)) {\n return value;\n } else if (Array.isArray(value)) {\n return value.map(item => deepMapObjectKeys(item, f));\n } else {\n return Object.keys(value).reduce<SimpleObject>((acc, key) => {\n acc[f(key)] = deepMapObjectKeys((value as SimpleObject)[key], f);\n return acc;\n }, {});\n }\n};\n\nexport const convertObjectToSnakeCase = (requestBody: unknown): unknown => {\n // Converting to JSON and back first handles things like dates, circular references etc.\n requestBody = JSON.parse(JSON.stringify(requestBody));\n\n return deepMapObjectKeys(requestBody, snakeCase);\n};\n\nexport const convertObjectToCamelCase = (\n responseBody: SimpleObject\n): SimpleObject => deepMapObjectKeys(responseBody, camelCase);\n\nexport const toFormData = (object: SimpleObject): IFormData => {\n return Object.entries(object).reduce((formData, [key, value]) => {\n if (value instanceof Object && \"contents\" in value) {\n const { contents, ...options } = value as ContentsAndOptions;\n formData.append(snakeCase(key), contents, options);\n } else if (value !== undefined && value !== null) {\n if (value instanceof Object) {\n for (const [elementKey, elementValue] of Object.entries(value)) {\n formData.append(snakeCase(key + \"[\" + elementKey + \"]\"), elementValue);\n }\n } else {\n formData.append(snakeCase(key), value);\n }\n }\n return formData;\n }, new FormData());\n};\n","import { IncomingMessage } from \"http\";\nimport { PassThrough, Readable } from \"stream\";\n\nexport class OnfidoDownload {\n private readonly incomingMessage: IncomingMessage;\n\n constructor(incomingMessage: IncomingMessage) {\n this.incomingMessage = incomingMessage;\n }\n\n public asStream(): Readable {\n // Use a PassThrough stream so the IncomingMessage isn't exposed.\n const passThroughStream = new PassThrough();\n this.incomingMessage.pipe(passThroughStream);\n return passThroughStream;\n }\n\n public get contentType(): string {\n return this.incomingMessage.headers[\"content-type\"]!;\n }\n}\n","import { AxiosInstance, AxiosPromise, AxiosResponse } from \"axios\";\nimport { IncomingMessage } from \"http\";\nimport { Readable } from \"stream\";\nimport { OnfidoApiError } from \"./errors/OnfidoApiError\";\nimport { OnfidoError } from \"./errors/OnfidoError\";\nimport {\n convertObjectToCamelCase,\n convertObjectToSnakeCase,\n SimpleObject,\n toFormData\n} from \"./formatting\";\nimport { OnfidoDownload } from \"./OnfidoDownload\";\n\nexport enum Method {\n GET = \"get\",\n POST = \"post\",\n PUT = \"put\",\n DELETE = \"delete\"\n}\n\nconst isJson = (response: AxiosResponse<unknown>): boolean =>\n (response.headers[\"content-type\"] || \"\").includes(\"application/json\");\n\nconst readFullStream = (stream: Readable): Promise<unknown> =>\n new Promise((resolve): void => {\n let all = \"\";\n\n stream.on(\"data\", data => (all += data));\n stream.on(\"error\", () => resolve(\"An error occurred reading the response\"));\n stream.on(\"end\", () => {\n // Try to parse as JSON, but fall back to just returning the raw text.\n try {\n resolve(JSON.parse(all));\n } catch {\n resolve(all);\n }\n });\n });\n\nconst convertAxiosErrorToOnfidoError = async (\n error: any\n): Promise<OnfidoError> => {\n if (!error.response) {\n return new OnfidoError(\n error.message || \"An unknown error occurred making the request\"\n );\n }\n\n // Received a 4XX or 5XX response.\n const response: AxiosResponse = error.response;\n const data = response.data;\n\n // If we were downloading a file, we will have a stream instead of a string.\n const body = data instanceof Readable ? await readFullStream(data) : data;\n\n return OnfidoApiError.fromResponse(body, response.status);\n};\n\nconst handleResponse = async (request: AxiosPromise<any>): Promise<any> => {\n try {\n const response = await request;\n const data = response.data;\n return isJson(response) ? convertObjectToCamelCase(data) : data;\n } catch (error) {\n throw await convertAxiosErrorToOnfidoError(error);\n }\n};\n\nexport class Resource<T extends SimpleObject> {\n private readonly name: string;\n private readonly axiosInstance: AxiosInstance;\n\n protected constructor(name: string, axiosInstance: AxiosInstance) {\n this.name = name;\n this.axiosInstance = axiosInstance;\n }\n\n protected async request({\n method,\n path = \"\",\n body,\n query\n }: {\n method: Method;\n path?: string;\n body?: T;\n query?: SimpleObject;\n }): Promise<any> {\n const request = this.axiosInstance({\n method,\n url: `${this.name}/${path}`,\n data: body && convertObjectToSnakeCase(body),\n params: query && convertObjectToSnakeCase(query)\n });\n\n return handleResponse(request);\n }\n\n protected async upload(body: T): Promise<any> {\n const formData = toFormData(body);\n\n const request = this.axiosInstance({\n method: Method.POST,\n url: `${this.name}/`,\n data: formData,\n headers: formData.getHeaders()\n });\n\n return handleResponse(request);\n }\n\n protected async download(path: string): Promise<OnfidoDownload> {\n const request = this.axiosInstance({\n method: Method.GET,\n url: `${this.name}/${path}`,\n responseType: \"stream\",\n // Accept a response with any content type (e.g. image/png, application/pdf, video/mp4)\n headers: { Accept: \"*/*\" }\n });\n\n const stream: IncomingMessage = await handleResponse(request);\n return new OnfidoDownload(stream);\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\ntype AddressOptional = {\n flatNumber: string | null;\n buildingNumber: string | null;\n buildingName: string | null;\n street: string | null;\n subStreet: string | null;\n town: string | null;\n state: string | null;\n line1: string | null;\n line2: string | null;\n line3: string | null;\n};\n\nexport type AddressRequest = {\n postcode: string;\n country: string;\n} & Partial<AddressOptional>;\n\nexport type Address = {\n postcode: string;\n country: string;\n} & AddressOptional;\n\nexport class Addresses extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"addresses\", axiosInstance);\n }\n\n public async pick(postcode: string): Promise<Address[]> {\n const { addresses } = await this.request({\n method: Method.GET,\n path: \"pick\",\n query: { postcode }\n });\n\n return addresses;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\nimport { Address, AddressRequest } from \"./Addresses\";\nimport { IdNumber, IdNumberRequest } from \"./IdNumbers\";\nimport { Location, LocationRequest } from \"./Location\";\nimport { ConsentsRequest } from \"./ConsentsRequest\";\n\n// firstName and lastName are also optional, to allow updating.\nexport type ApplicantRequest = {\n firstName?: string | null;\n lastName?: string | null;\n email?: string | null;\n dob?: string | null;\n address?: AddressRequest | null;\n idNumbers?: IdNumberRequest[] | null;\n phoneNumber?: string | null;\n location?: LocationRequest | null;\n consents?: ConsentsRequest[] | null;\n};\n\nexport type Applicant = {\n id: string;\n createdAt: string;\n deleteAt: string | null;\n href: string;\n firstName: string;\n lastName: string;\n email: string | null;\n dob: string | null;\n address: Address | null;\n idNumbers: IdNumber[] | null;\n phoneNumber: string | null;\n location: Location | null;\n};\n\nexport class Applicants extends Resource<ApplicantRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"applicants\", axiosInstance);\n }\n\n public async create(applicantRequest: ApplicantRequest): Promise<Applicant> {\n return this.request({ method: Method.POST, body: applicantRequest });\n }\n\n public async find(id: string): Promise<Applicant> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async update(\n id: string,\n applicantRequest: ApplicantRequest\n ): Promise<Applicant> {\n return this.request({\n method: Method.PUT,\n path: id,\n body: applicantRequest\n });\n }\n\n public async delete(id: string): Promise<void> {\n await this.request({ method: Method.DELETE, path: id });\n }\n\n public async restore(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/restore` });\n }\n\n public async list({\n page,\n perPage,\n includeDeleted\n }: {\n page?: number;\n perPage?: number;\n includeDeleted?: boolean;\n } = {}): Promise<Applicant[]> {\n const { applicants } = await this.request({\n method: Method.GET,\n query: { page, perPage, includeDeleted }\n });\n\n return applicants;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type ExtractionResult = {\n documentId: string;\n documentClassification: {\n issuingCountry: string;\n documentType: string;\n issuingState?: string;\n };\n extractedData: {\n documentNumber?: string;\n firstName?: string;\n lastName?: string;\n middleName?: string;\n fullName?: string;\n gender?: string;\n dateOfBirth?: string;\n dateOfExpiry?: string;\n nationality?: string;\n mrzLine1?: string;\n mrzLine2?: string;\n mrzLine3?: string;\n addressLine1?: string;\n addressLine2?: string;\n addressLine3?: string;\n addressLine4?: string;\n addressLine5?: string;\n };\n};\n\ntype AutofillResource = {\n documentId: string;\n};\n\nexport class Autofill extends Resource<AutofillResource> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"extractions\", axiosInstance);\n }\n\n public async perform(documentId: string): Promise<ExtractionResult> {\n return this.request({\n method: Method.POST,\n body: { documentId }\n });\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type CheckRequest = {\n applicantId: string;\n reportNames: string[];\n documentIds?: string[] | null;\n applicantProvidesData?: boolean;\n asynchronous?: boolean;\n tags?: string[] | null;\n suppressFormEmails?: boolean;\n redirectUri?: string | null;\n webhookIds?: string[] | null;\n subResult?: string;\n consider?: string[];\n};\n\nexport type Check = {\n id: string;\n reportIds: string[];\n createdAt: string;\n href: string;\n applicantId: string;\n applicantProvidesData: boolean;\n status: string;\n tags: string[];\n result: string | null;\n formUri: string | null;\n redirectUri: string | null;\n resultsUri: string;\n webhookIds: string[] | null;\n};\n\nexport class Checks extends Resource<CheckRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"checks\", axiosInstance);\n }\n\n public async create(checkRequest: CheckRequest): Promise<Check> {\n return this.request({ method: Method.POST, body: checkRequest });\n }\n\n public async find(id: string): Promise<Check> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<Check[]> {\n const { checks } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return checks;\n }\n\n public async resume(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/resume` });\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { FileLike } from \"../formatting\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\nimport { LocationRequest } from \"./Location\";\n\nexport type DocumentRequest = {\n applicantId?: string | null;\n file: FileLike;\n type: string;\n side?: string | null;\n issuingCountry?: string | null;\n validateImageQuality?: boolean | null;\n location?: LocationRequest | null;\n};\n\nexport type Document = {\n id: string;\n applicantId: string | null;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n type: string;\n side: string | null;\n issuingCountry: string | null;\n};\n\nexport class Documents extends Resource<DocumentRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"documents\", axiosInstance);\n }\n\n public async upload(documentRequest: DocumentRequest): Promise<Document> {\n return super.upload(documentRequest);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async find(id: string): Promise<Document> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<Document[]> {\n const { documents } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return documents;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { FileLike } from \"../formatting\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type LivePhotoRequest = {\n applicantId: string;\n file: FileLike;\n advancedValidation?: string;\n};\n\nexport type LivePhoto = {\n id: string;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n};\n\nexport class LivePhotos extends Resource<LivePhotoRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"live_photos\", axiosInstance);\n }\n\n public async upload(livePhotoRequest: LivePhotoRequest): Promise<LivePhoto> {\n return super.upload(livePhotoRequest);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async find(id: string): Promise<LivePhoto> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<LivePhoto[]> {\n const { livePhotos } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return livePhotos;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type LiveVideo = {\n id: string;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n};\n\nexport class LiveVideos extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"live_videos\", axiosInstance);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async frame(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/frame`);\n }\n\n public async find(id: string): Promise<LiveVideo> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<LiveVideo[]> {\n const { liveVideos } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return liveVideos;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type Report = {\n id: string;\n createdAt: string;\n name: string;\n href: string;\n status: string;\n result: string | null;\n subResult: string | null;\n properties: object | null;\n breakdown: object | null;\n documents: Array<{ id: string }>;\n checkId: string;\n};\n\nexport class Reports extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"reports\", axiosInstance);\n }\n\n public async find(id: string): Promise<Report> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(checkId: string): Promise<Report[]> {\n const { reports } = await this.request({\n method: Method.GET,\n query: { checkId }\n });\n\n return reports;\n }\n\n public async resume(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/resume` });\n }\n\n public async cancel(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/cancel` });\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type SdkTokenRequest = {\n applicantId: string;\n applicationId?: string | null;\n referrer?: string | null;\n crossDeviceUrl?: string | null;\n};\n\nexport class SdkTokens extends Resource<SdkTokenRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"sdk_token\", axiosInstance);\n }\n\n public async generate(sdkTokenRequest: SdkTokenRequest): Promise<string> {\n const { token } = await this.request({\n method: Method.POST,\n body: sdkTokenRequest\n });\n\n return token;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\n// url is also optional to allow updating.\nexport type WebhookRequest = {\n url?: string | null;\n enabled?: boolean;\n environments?: string[];\n events?: string[] | null;\n};\n\nexport type Webhook = {\n id: string;\n url: string;\n enabled: boolean;\n events: string[];\n token: string;\n href: string;\n environments: string[];\n};\n\nexport class Webhooks extends Resource<WebhookRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"webhooks\", axiosInstance);\n }\n\n public async create(webhookRequest: WebhookRequest): Promise<Webhook> {\n return this.request({ method: Method.POST, body: webhookRequest });\n }\n\n public async find(id: string): Promise<Webhook> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async update(\n id: string,\n webhookRequest: WebhookRequest\n ): Promise<Webhook> {\n return this.request({\n method: Method.PUT,\n path: id,\n body: webhookRequest\n });\n }\n\n public async delete(id: string): Promise<void> {\n await this.request({ method: Method.DELETE, path: id });\n }\n\n public async list(): Promise<Webhook[]> {\n const { webhooks } = await this.request({ method: Method.GET });\n\n return webhooks;\n }\n}\n","import axios, { AxiosInstance } from \"axios\";\nimport { version } from \"../package.json\";\nimport { Addresses } from \"./resources/Addresses\";\nimport { Applicants } from \"./resources/Applicants\";\nimport { Autofill } from \"./resources/Autofill\";\nimport { Checks } from \"./resources/Checks\";\nimport { Documents } from \"./resources/Documents\";\nimport { LivePhotos } from \"./resources/LivePhotos\";\nimport { LiveVideos } from \"./resources/LiveVideos\";\nimport { Reports } from \"./resources/Reports\";\nimport { SdkTokens } from \"./resources/SdkTokens\";\nimport { Webhooks } from \"./resources/Webhooks\";\n\nexport enum Region {\n EU = \"EU\",\n US = \"US\",\n CA = \"CA\"\n}\n\nexport type OnfidoOptions = {\n apiToken: string;\n region: Region;\n timeout?: number;\n unknownApiUrl?: string;\n};\n\nexport class Onfido {\n public readonly axiosInstance: AxiosInstance;\n // Core resources\n public readonly applicant: Applicants;\n public readonly document: Documents;\n public readonly livePhoto: LivePhotos;\n public readonly liveVideo: LiveVideos;\n public readonly check: Checks;\n public readonly report: Reports;\n // Other endpoints\n public readonly address: Addresses;\n public readonly webhook: Webhooks;\n public readonly sdkToken: SdkTokens;\n public readonly autofill: Autofill;\n\n constructor({\n apiToken,\n region,\n timeout = 30_000,\n unknownApiUrl\n }: OnfidoOptions) {\n if (!apiToken) {\n throw new Error(\"No apiToken provided\");\n }\n if (!region || !Object.values(Region).includes(region)) {\n throw new Error(\n `Unknown or missing region '${region}'. ` +\n \"We previously defaulted to region 'EU', so if you previously didn’t \" +\n \"set a region or used api.onfido.com, please set your region to 'EU'\"\n );\n }\n\n const regionUrl = `https://api.${region.toLowerCase()}.onfido.com/v3.4/`;\n\n this.axiosInstance = axios.create({\n baseURL: unknownApiUrl || regionUrl,\n headers: {\n Authorization: `Token token=${apiToken}`,\n Accept: \"application/json\",\n \"User-Agent\": `onfido-node/${version}`\n },\n timeout\n });\n\n // Core resources\n this.applicant = new Applicants(this.axiosInstance);\n this.document = new Documents(this.axiosInstance);\n this.livePhoto = new LivePhotos(this.axiosInstance);\n this.liveVideo = new LiveVideos(this.axiosInstance);\n this.check = new Checks(this.axiosInstance);\n this.report = new Reports(this.axiosInstance);\n // Other endpoints\n this.address = new Addresses(this.axiosInstance);\n this.webhook = new Webhooks(this.axiosInstance);\n this.sdkToken = new SdkTokens(this.axiosInstance);\n this.autofill = new Autofill(this.axiosInstance);\n }\n}\n","import { OnfidoError } from \"./errors/OnfidoError\";\nimport { convertObjectToCamelCase } from \"./formatting\";\n\n// Require crypto instead of importing, because Node can be built without crypto support.\nlet crypto: typeof import(\"crypto\") | undefined;\ntry {\n // tslint:disable-next-line: no-var-requires\n crypto = require(\"crypto\");\n} catch {\n // We throw an error when verifying webhooks instead.\n}\n\nexport type WebhookEvent = {\n resourceType: string;\n action: string;\n object: {\n id: string;\n status: string;\n href: string;\n completedAtIso8601: string;\n };\n};\n\nexport class WebhookEventVerifier {\n private readonly webhookToken: string;\n\n constructor(webhookToken: string) {\n this.webhookToken = webhookToken;\n }\n\n public readPayload(\n rawEventBody: string | Buffer,\n hexSignature: string\n ): WebhookEvent {\n if (!crypto) {\n throw new Error(\"Verifying webhook events requires crypto support\");\n }\n\n const givenSignature = Buffer.from(hexSignature, \"hex\");\n\n // Compute the the actual HMAC signature from the raw request body.\n const hmac = crypto.createHmac(\"sha256\", this.webhookToken);\n hmac.update(rawEventBody);\n const eventSignature = hmac.digest();\n\n // Use timingSafeEqual to prevent against timing attacks.\n if (!crypto.timingSafeEqual(givenSignature, eventSignature)) {\n throw new OnfidoError(\"Invalid signature for webhook event\");\n }\n\n const { payload } = JSON.parse(rawEventBody.toString());\n return convertObjectToCamelCase(payload) as WebhookEvent;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/errors/OnfidoError.ts","../src/errors/OnfidoApiError.ts","../src/formatting.ts","../src/OnfidoDownload.ts","../src/Resource.ts","../src/resources/Addresses.ts","../src/resources/Applicants.ts","../src/resources/Autofill.ts","../src/resources/Checks.ts","../src/resources/Documents.ts","../src/resources/LivePhotos.ts","../src/resources/LiveVideos.ts","../src/resources/Reports.ts","../src/resources/SdkTokens.ts","../src/resources/Webhooks.ts","../src/Onfido.ts","../src/WebhookEventVerifier.ts"],"sourcesContent":["export class OnfidoError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = \"OnfidoError\";\n }\n}\n","import { OnfidoError } from \"./OnfidoError\";\n\nexport class OnfidoApiError extends OnfidoError {\n public readonly responseBody: unknown;\n public readonly statusCode: number;\n public readonly type: string;\n public readonly fields: unknown;\n\n private constructor(\n message: string,\n responseBody: unknown,\n statusCode: number,\n type: string,\n fields: unknown\n ) {\n super(message);\n this.name = \"OnfidoApiError\";\n\n this.responseBody = responseBody;\n this.statusCode = statusCode;\n this.type = type;\n this.fields = fields;\n }\n\n public static fromResponse(\n responseBody: unknown,\n statusCode: number\n ): OnfidoApiError {\n const innerErrorData: unknown =\n responseBody instanceof Object ? (responseBody as any).error : {};\n\n const innerError: {\n type?: unknown;\n message?: unknown;\n fields?: unknown;\n } = innerErrorData instanceof Object ? innerErrorData : {};\n\n const type = `${innerError.type || \"unknown\"}`;\n const message = `${innerError.message || responseBody}`;\n const fields = innerError.fields;\n\n const fullMessage =\n `${message} (status code ${statusCode})` +\n (fields ? ` | ${JSON.stringify(fields)}` : \"\");\n\n return new OnfidoApiError(\n fullMessage,\n responseBody,\n statusCode,\n type,\n fields\n );\n }\n\n public isClientError(): boolean {\n return this.statusCode < 500;\n }\n}\n","import { Readable } from \"stream\";\nimport { IFormData } from \"./types/formData\";\n\n// Using require because \"form-data\" exports this object as a default export which breaks integration when esModuleInterop: false\n// tslint:disable-next-line: no-var-requires\nconst FormData = require(\"form-data\");\n\nexport type SimpleObject = { [key: string]: unknown };\n\ntype ContentsAndOptions = {\n contents: Readable;\n filepath: string;\n contentType?: string;\n};\n\nexport type FileLike = Readable | ContentsAndOptions;\n\nconst snakeCase = (camelCaseString: string): string =>\n camelCaseString.replace(/[A-Z]/g, char => `_${char.toLowerCase()}`);\n\nconst camelCase = (snakeCaseString: string): string =>\n snakeCaseString\n .replace(/_[0-9]/g, underscoreDigit => underscoreDigit[1])\n .replace(/_[a-z]/g, underscoreChar => underscoreChar[1].toUpperCase());\n\nconst deepMapObjectKeys = (value: unknown, f: (key: string) => string): any => {\n if (!(value instanceof Object)) {\n return value;\n } else if (Array.isArray(value)) {\n return value.map(item => deepMapObjectKeys(item, f));\n } else {\n return Object.keys(value).reduce<SimpleObject>((acc, key) => {\n acc[f(key)] = deepMapObjectKeys((value as SimpleObject)[key], f);\n return acc;\n }, {});\n }\n};\n\nexport const convertObjectToSnakeCase = (requestBody: unknown): unknown => {\n // Converting to JSON and back first handles things like dates, circular references etc.\n requestBody = JSON.parse(JSON.stringify(requestBody));\n\n return deepMapObjectKeys(requestBody, snakeCase);\n};\n\nexport const convertObjectToCamelCase = (\n responseBody: SimpleObject\n): SimpleObject => deepMapObjectKeys(responseBody, camelCase);\n\nexport const toFormData = (object: SimpleObject): IFormData => {\n return Object.entries(object).reduce((formData, [key, value]) => {\n if (value instanceof Object && \"contents\" in value) {\n const { contents, ...options } = value as ContentsAndOptions;\n formData.append(snakeCase(key), contents, options);\n } else if (value !== undefined && value !== null) {\n if (value instanceof Object) {\n for (const [elementKey, elementValue] of Object.entries(value)) {\n formData.append(snakeCase(key + \"[\" + elementKey + \"]\"), elementValue);\n }\n } else {\n formData.append(snakeCase(key), value);\n }\n }\n return formData;\n }, new FormData());\n};\n","import { IncomingMessage } from \"http\";\nimport { PassThrough, Readable } from \"stream\";\n\nexport class OnfidoDownload {\n private readonly incomingMessage: IncomingMessage;\n\n constructor(incomingMessage: IncomingMessage) {\n this.incomingMessage = incomingMessage;\n }\n\n public asStream(): Readable {\n // Use a PassThrough stream so the IncomingMessage isn't exposed.\n const passThroughStream = new PassThrough();\n this.incomingMessage.pipe(passThroughStream);\n return passThroughStream;\n }\n\n public get contentType(): string {\n return this.incomingMessage.headers[\"content-type\"]!;\n }\n}\n","import { AxiosInstance, AxiosPromise, AxiosResponse } from \"axios\";\nimport { IncomingMessage } from \"http\";\nimport { Readable } from \"stream\";\nimport { OnfidoApiError } from \"./errors/OnfidoApiError\";\nimport { OnfidoError } from \"./errors/OnfidoError\";\nimport {\n convertObjectToCamelCase,\n convertObjectToSnakeCase,\n SimpleObject,\n toFormData\n} from \"./formatting\";\nimport { OnfidoDownload } from \"./OnfidoDownload\";\n\nexport enum Method {\n GET = \"get\",\n POST = \"post\",\n PUT = \"put\",\n DELETE = \"delete\"\n}\n\nconst isJson = (response: AxiosResponse<unknown>): boolean =>\n (response.headers[\"content-type\"] || \"\").includes(\"application/json\");\n\nconst readFullStream = (stream: Readable): Promise<unknown> =>\n new Promise((resolve): void => {\n let all = \"\";\n\n stream.on(\"data\", data => (all += data));\n stream.on(\"error\", () => resolve(\"An error occurred reading the response\"));\n stream.on(\"end\", () => {\n // Try to parse as JSON, but fall back to just returning the raw text.\n try {\n resolve(JSON.parse(all));\n } catch {\n resolve(all);\n }\n });\n });\n\nconst convertAxiosErrorToOnfidoError = async (\n error: any\n): Promise<OnfidoError> => {\n if (!error.response) {\n return new OnfidoError(\n error.message || \"An unknown error occurred making the request\"\n );\n }\n\n // Received a 4XX or 5XX response.\n const response: AxiosResponse = error.response;\n const data = response.data;\n\n // If we were downloading a file, we will have a stream instead of a string.\n const body = data instanceof Readable ? await readFullStream(data) : data;\n\n return OnfidoApiError.fromResponse(body, response.status);\n};\n\nconst handleResponse = async (request: AxiosPromise<any>): Promise<any> => {\n try {\n const response = await request;\n const data = response.data;\n return isJson(response) ? convertObjectToCamelCase(data) : data;\n } catch (error) {\n throw await convertAxiosErrorToOnfidoError(error);\n }\n};\n\nexport class Resource<T extends SimpleObject> {\n private readonly name: string;\n private readonly axiosInstance: AxiosInstance;\n\n protected constructor(name: string, axiosInstance: AxiosInstance) {\n this.name = name;\n this.axiosInstance = axiosInstance;\n }\n\n protected async request({\n method,\n path = \"\",\n body,\n query\n }: {\n method: Method;\n path?: string;\n body?: T;\n query?: SimpleObject;\n }): Promise<any> {\n const request = this.axiosInstance({\n method,\n url: `${this.name}/${path}`,\n data: body && convertObjectToSnakeCase(body),\n params: query && convertObjectToSnakeCase(query)\n });\n\n return handleResponse(request);\n }\n\n protected async upload(body: T): Promise<any> {\n const formData = toFormData(body);\n\n const request = this.axiosInstance({\n method: Method.POST,\n url: `${this.name}/`,\n data: formData,\n headers: formData.getHeaders()\n });\n\n return handleResponse(request);\n }\n\n protected async download(path: string): Promise<OnfidoDownload> {\n const request = this.axiosInstance({\n method: Method.GET,\n url: `${this.name}/${path}`,\n responseType: \"stream\",\n // Accept a response with any content type (e.g. image/png, application/pdf, video/mp4)\n headers: { Accept: \"*/*\" }\n });\n\n const stream: IncomingMessage = await handleResponse(request);\n return new OnfidoDownload(stream);\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\ntype AddressOptional = {\n flatNumber: string | null;\n buildingNumber: string | null;\n buildingName: string | null;\n street: string | null;\n subStreet: string | null;\n town: string | null;\n state: string | null;\n line1: string | null;\n line2: string | null;\n line3: string | null;\n};\n\nexport type AddressRequest = {\n postcode: string;\n country: string;\n} & Partial<AddressOptional>;\n\nexport type Address = {\n postcode: string;\n country: string;\n} & AddressOptional;\n\nexport class Addresses extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"addresses\", axiosInstance);\n }\n\n public async pick(postcode: string): Promise<Address[]> {\n const { addresses } = await this.request({\n method: Method.GET,\n path: \"pick\",\n query: { postcode }\n });\n\n return addresses;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\nimport { Address, AddressRequest } from \"./Addresses\";\nimport { IdNumber, IdNumberRequest } from \"./IdNumbers\";\nimport { Location, LocationRequest } from \"./Location\";\nimport { ConsentsRequest } from \"./ConsentsRequest\";\n\n// firstName and lastName are also optional, to allow updating.\nexport type ApplicantRequest = {\n firstName?: string | null;\n lastName?: string | null;\n email?: string | null;\n dob?: string | null;\n address?: AddressRequest | null;\n idNumbers?: IdNumberRequest[] | null;\n phoneNumber?: string | null;\n location?: LocationRequest | null;\n consents?: ConsentsRequest[] | null;\n};\n\nexport type Applicant = {\n id: string;\n createdAt: string;\n deleteAt: string | null;\n href: string;\n firstName: string;\n lastName: string;\n email: string | null;\n dob: string | null;\n address: Address | null;\n idNumbers: IdNumber[] | null;\n phoneNumber: string | null;\n location: Location | null;\n};\n\nexport class Applicants extends Resource<ApplicantRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"applicants\", axiosInstance);\n }\n\n public async create(applicantRequest: ApplicantRequest): Promise<Applicant> {\n return this.request({ method: Method.POST, body: applicantRequest });\n }\n\n public async find(id: string): Promise<Applicant> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async update(\n id: string,\n applicantRequest: ApplicantRequest\n ): Promise<Applicant> {\n return this.request({\n method: Method.PUT,\n path: id,\n body: applicantRequest\n });\n }\n\n public async delete(id: string): Promise<void> {\n await this.request({ method: Method.DELETE, path: id });\n }\n\n public async restore(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/restore` });\n }\n\n public async list({\n page,\n perPage,\n includeDeleted\n }: {\n page?: number;\n perPage?: number;\n includeDeleted?: boolean;\n } = {}): Promise<Applicant[]> {\n const { applicants } = await this.request({\n method: Method.GET,\n query: { page, perPage, includeDeleted }\n });\n\n return applicants;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type ExtractionResult = {\n documentId: string;\n documentClassification: {\n issuingCountry: string;\n documentType: string;\n issuingState?: string;\n };\n extractedData: {\n documentNumber?: string;\n firstName?: string;\n lastName?: string;\n middleName?: string;\n fullName?: string;\n gender?: string;\n dateOfBirth?: string;\n dateOfExpiry?: string;\n nationality?: string;\n mrzLine1?: string;\n mrzLine2?: string;\n mrzLine3?: string;\n addressLine1?: string;\n addressLine2?: string;\n addressLine3?: string;\n addressLine4?: string;\n addressLine5?: string;\n };\n};\n\ntype AutofillResource = {\n documentId: string;\n};\n\nexport class Autofill extends Resource<AutofillResource> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"extractions\", axiosInstance);\n }\n\n public async perform(documentId: string): Promise<ExtractionResult> {\n return this.request({\n method: Method.POST,\n body: { documentId }\n });\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type CheckRequest = {\n applicantId: string;\n reportNames: string[];\n documentIds?: string[] | null;\n applicantProvidesData?: boolean;\n asynchronous?: boolean;\n tags?: string[] | null;\n suppressFormEmails?: boolean;\n redirectUri?: string | null;\n privacyNoticesReadConsentGiven?: boolean;\n webhookIds?: string[] | null;\n subResult?: string;\n consider?: string[];\n};\n\nexport type Check = {\n id: string;\n reportIds: string[];\n createdAt: string;\n href: string;\n applicantId: string;\n applicantProvidesData: boolean;\n status: string;\n tags: string[];\n result: string | null;\n formUri: string | null;\n redirectUri: string | null;\n resultsUri: string;\n privacyNoticesReadConsentGiven: boolean;\n webhookIds: string[] | null;\n};\n\nexport class Checks extends Resource<CheckRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"checks\", axiosInstance);\n }\n\n public async create(checkRequest: CheckRequest): Promise<Check> {\n return this.request({ method: Method.POST, body: checkRequest });\n }\n\n public async find(id: string): Promise<Check> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<Check[]> {\n const { checks } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return checks;\n }\n\n public async resume(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/resume` });\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { FileLike } from \"../formatting\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\nimport { LocationRequest } from \"./Location\";\n\nexport type DocumentRequest = {\n applicantId?: string | null;\n file: FileLike;\n type: string;\n side?: string | null;\n issuingCountry?: string | null;\n validateImageQuality?: boolean | null;\n location?: LocationRequest | null;\n};\n\nexport type Document = {\n id: string;\n applicantId: string | null;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n type: string;\n side: string | null;\n issuingCountry: string | null;\n};\n\nexport class Documents extends Resource<DocumentRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"documents\", axiosInstance);\n }\n\n public async upload(documentRequest: DocumentRequest): Promise<Document> {\n return super.upload(documentRequest);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async find(id: string): Promise<Document> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<Document[]> {\n const { documents } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return documents;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { FileLike } from \"../formatting\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type LivePhotoRequest = {\n applicantId: string;\n file: FileLike;\n advancedValidation?: string;\n};\n\nexport type LivePhoto = {\n id: string;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n};\n\nexport class LivePhotos extends Resource<LivePhotoRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"live_photos\", axiosInstance);\n }\n\n public async upload(livePhotoRequest: LivePhotoRequest): Promise<LivePhoto> {\n return super.upload(livePhotoRequest);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async find(id: string): Promise<LivePhoto> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<LivePhoto[]> {\n const { livePhotos } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return livePhotos;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type LiveVideo = {\n id: string;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n};\n\nexport class LiveVideos extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"live_videos\", axiosInstance);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async frame(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/frame`);\n }\n\n public async find(id: string): Promise<LiveVideo> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<LiveVideo[]> {\n const { liveVideos } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return liveVideos;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type Report = {\n id: string;\n createdAt: string;\n name: string;\n href: string;\n status: string;\n result: string | null;\n subResult: string | null;\n properties: object | null;\n breakdown: object | null;\n documents: Array<{ id: string }>;\n checkId: string;\n};\n\nexport class Reports extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"reports\", axiosInstance);\n }\n\n public async find(id: string): Promise<Report> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(checkId: string): Promise<Report[]> {\n const { reports } = await this.request({\n method: Method.GET,\n query: { checkId }\n });\n\n return reports;\n }\n\n public async resume(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/resume` });\n }\n\n public async cancel(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/cancel` });\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type SdkTokenRequest = {\n applicantId: string;\n applicationId?: string | null;\n referrer?: string | null;\n crossDeviceUrl?: string | null;\n};\n\nexport class SdkTokens extends Resource<SdkTokenRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"sdk_token\", axiosInstance);\n }\n\n public async generate(sdkTokenRequest: SdkTokenRequest): Promise<string> {\n const { token } = await this.request({\n method: Method.POST,\n body: sdkTokenRequest\n });\n\n return token;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\n// url is also optional to allow updating.\nexport type WebhookRequest = {\n url?: string | null;\n enabled?: boolean;\n environments?: string[];\n events?: string[] | null;\n};\n\nexport type Webhook = {\n id: string;\n url: string;\n enabled: boolean;\n events: string[];\n token: string;\n href: string;\n environments: string[];\n};\n\nexport class Webhooks extends Resource<WebhookRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"webhooks\", axiosInstance);\n }\n\n public async create(webhookRequest: WebhookRequest): Promise<Webhook> {\n return this.request({ method: Method.POST, body: webhookRequest });\n }\n\n public async find(id: string): Promise<Webhook> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async update(\n id: string,\n webhookRequest: WebhookRequest\n ): Promise<Webhook> {\n return this.request({\n method: Method.PUT,\n path: id,\n body: webhookRequest\n });\n }\n\n public async delete(id: string): Promise<void> {\n await this.request({ method: Method.DELETE, path: id });\n }\n\n public async list(): Promise<Webhook[]> {\n const { webhooks } = await this.request({ method: Method.GET });\n\n return webhooks;\n }\n}\n","import axios, { AxiosInstance } from \"axios\";\nimport { version } from \"../package.json\";\nimport { Addresses } from \"./resources/Addresses\";\nimport { Applicants } from \"./resources/Applicants\";\nimport { Autofill } from \"./resources/Autofill\";\nimport { Checks } from \"./resources/Checks\";\nimport { Documents } from \"./resources/Documents\";\nimport { LivePhotos } from \"./resources/LivePhotos\";\nimport { LiveVideos } from \"./resources/LiveVideos\";\nimport { Reports } from \"./resources/Reports\";\nimport { SdkTokens } from \"./resources/SdkTokens\";\nimport { Webhooks } from \"./resources/Webhooks\";\n\nexport enum Region {\n EU = \"EU\",\n US = \"US\",\n CA = \"CA\"\n}\n\nexport type OnfidoOptions = {\n apiToken: string;\n region: Region;\n timeout?: number;\n unknownApiUrl?: string;\n};\n\nexport class Onfido {\n public readonly axiosInstance: AxiosInstance;\n // Core resources\n public readonly applicant: Applicants;\n public readonly document: Documents;\n public readonly livePhoto: LivePhotos;\n public readonly liveVideo: LiveVideos;\n public readonly check: Checks;\n public readonly report: Reports;\n // Other endpoints\n public readonly address: Addresses;\n public readonly webhook: Webhooks;\n public readonly sdkToken: SdkTokens;\n public readonly autofill: Autofill;\n\n constructor({\n apiToken,\n region,\n timeout = 30_000,\n unknownApiUrl\n }: OnfidoOptions) {\n if (!apiToken) {\n throw new Error(\"No apiToken provided\");\n }\n if (!region || !Object.values(Region).includes(region)) {\n throw new Error(\n `Unknown or missing region '${region}'. ` +\n \"We previously defaulted to region 'EU', so if you previously didn’t \" +\n \"set a region or used api.onfido.com, please set your region to 'EU'\"\n );\n }\n\n const regionUrl = `https://api.${region.toLowerCase()}.onfido.com/v3.4/`;\n\n this.axiosInstance = axios.create({\n baseURL: unknownApiUrl || regionUrl,\n headers: {\n Authorization: `Token token=${apiToken}`,\n Accept: \"application/json\",\n \"User-Agent\": `onfido-node/${version}`\n },\n timeout\n });\n\n // Core resources\n this.applicant = new Applicants(this.axiosInstance);\n this.document = new Documents(this.axiosInstance);\n this.livePhoto = new LivePhotos(this.axiosInstance);\n this.liveVideo = new LiveVideos(this.axiosInstance);\n this.check = new Checks(this.axiosInstance);\n this.report = new Reports(this.axiosInstance);\n // Other endpoints\n this.address = new Addresses(this.axiosInstance);\n this.webhook = new Webhooks(this.axiosInstance);\n this.sdkToken = new SdkTokens(this.axiosInstance);\n this.autofill = new Autofill(this.axiosInstance);\n }\n}\n","import { OnfidoError } from \"./errors/OnfidoError\";\nimport { convertObjectToCamelCase } from \"./formatting\";\n\n// Require crypto instead of importing, because Node can be built without crypto support.\nlet crypto: typeof import(\"crypto\") | undefined;\ntry {\n // tslint:disable-next-line: no-var-requires\n crypto = require(\"crypto\");\n} catch {\n // We throw an error when verifying webhooks instead.\n}\n\nexport type WebhookEvent = {\n resourceType: string;\n action: string;\n object: {\n id: string;\n status: string;\n href: string;\n completedAtIso8601: string;\n };\n};\n\nexport class WebhookEventVerifier {\n private readonly webhookToken: string;\n\n constructor(webhookToken: string) {\n this.webhookToken = webhookToken;\n }\n\n public readPayload(\n rawEventBody: string | Buffer,\n hexSignature: string\n ): WebhookEvent {\n if (!crypto) {\n throw new Error(\"Verifying webhook events requires crypto support\");\n }\n\n const givenSignature = Buffer.from(hexSignature, \"hex\");\n\n // Compute the the actual HMAC signature from the raw request body.\n const hmac = crypto.createHmac(\"sha256\", this.webhookToken);\n hmac.update(rawEventBody);\n const eventSignature = hmac.digest();\n\n // Use timingSafeEqual to prevent against timing attacks.\n if (!crypto.timingSafeEqual(givenSignature, eventSignature)) {\n throw new OnfidoError(\"Invalid signature for webhook event\");\n }\n\n const { payload } = JSON.parse(rawEventBody.toString());\n return convertObjectToCamelCase(payload) as WebhookEvent;\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
|
|
|
7
7
|
var axios = _interopDefault(require('axios'));
|
|
8
8
|
var stream = require('stream');
|
|
9
9
|
|
|
10
|
-
var version = "2.3.
|
|
10
|
+
var version = "2.3.1";
|
|
11
11
|
|
|
12
12
|
class OnfidoError extends Error {
|
|
13
13
|
constructor(message) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/errors/OnfidoError.ts","../src/errors/OnfidoApiError.ts","../src/formatting.ts","../src/OnfidoDownload.ts","../src/Resource.ts","../src/resources/Addresses.ts","../src/resources/Applicants.ts","../src/resources/Autofill.ts","../src/resources/Checks.ts","../src/resources/Documents.ts","../src/resources/LivePhotos.ts","../src/resources/LiveVideos.ts","../src/resources/Reports.ts","../src/resources/SdkTokens.ts","../src/resources/Webhooks.ts","../src/Onfido.ts","../src/WebhookEventVerifier.ts"],"sourcesContent":["export class OnfidoError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = \"OnfidoError\";\n }\n}\n","import { OnfidoError } from \"./OnfidoError\";\n\nexport class OnfidoApiError extends OnfidoError {\n public readonly responseBody: unknown;\n public readonly statusCode: number;\n public readonly type: string;\n public readonly fields: unknown;\n\n private constructor(\n message: string,\n responseBody: unknown,\n statusCode: number,\n type: string,\n fields: unknown\n ) {\n super(message);\n this.name = \"OnfidoApiError\";\n\n this.responseBody = responseBody;\n this.statusCode = statusCode;\n this.type = type;\n this.fields = fields;\n }\n\n public static fromResponse(\n responseBody: unknown,\n statusCode: number\n ): OnfidoApiError {\n const innerErrorData: unknown =\n responseBody instanceof Object ? (responseBody as any).error : {};\n\n const innerError: {\n type?: unknown;\n message?: unknown;\n fields?: unknown;\n } = innerErrorData instanceof Object ? innerErrorData : {};\n\n const type = `${innerError.type || \"unknown\"}`;\n const message = `${innerError.message || responseBody}`;\n const fields = innerError.fields;\n\n const fullMessage =\n `${message} (status code ${statusCode})` +\n (fields ? ` | ${JSON.stringify(fields)}` : \"\");\n\n return new OnfidoApiError(\n fullMessage,\n responseBody,\n statusCode,\n type,\n fields\n );\n }\n\n public isClientError(): boolean {\n return this.statusCode < 500;\n }\n}\n","import { Readable } from \"stream\";\nimport { IFormData } from \"./types/formData\";\n\n// Using require because \"form-data\" exports this object as a default export which breaks integration when esModuleInterop: false\n// tslint:disable-next-line: no-var-requires\nconst FormData = require(\"form-data\");\n\nexport type SimpleObject = { [key: string]: unknown };\n\ntype ContentsAndOptions = {\n contents: Readable;\n filepath: string;\n contentType?: string;\n};\n\nexport type FileLike = Readable | ContentsAndOptions;\n\nconst snakeCase = (camelCaseString: string): string =>\n camelCaseString.replace(/[A-Z]/g, char => `_${char.toLowerCase()}`);\n\nconst camelCase = (snakeCaseString: string): string =>\n snakeCaseString\n .replace(/_[0-9]/g, underscoreDigit => underscoreDigit[1])\n .replace(/_[a-z]/g, underscoreChar => underscoreChar[1].toUpperCase());\n\nconst deepMapObjectKeys = (value: unknown, f: (key: string) => string): any => {\n if (!(value instanceof Object)) {\n return value;\n } else if (Array.isArray(value)) {\n return value.map(item => deepMapObjectKeys(item, f));\n } else {\n return Object.keys(value).reduce<SimpleObject>((acc, key) => {\n acc[f(key)] = deepMapObjectKeys((value as SimpleObject)[key], f);\n return acc;\n }, {});\n }\n};\n\nexport const convertObjectToSnakeCase = (requestBody: unknown): unknown => {\n // Converting to JSON and back first handles things like dates, circular references etc.\n requestBody = JSON.parse(JSON.stringify(requestBody));\n\n return deepMapObjectKeys(requestBody, snakeCase);\n};\n\nexport const convertObjectToCamelCase = (\n responseBody: SimpleObject\n): SimpleObject => deepMapObjectKeys(responseBody, camelCase);\n\nexport const toFormData = (object: SimpleObject): IFormData => {\n return Object.entries(object).reduce((formData, [key, value]) => {\n if (value instanceof Object && \"contents\" in value) {\n const { contents, ...options } = value as ContentsAndOptions;\n formData.append(snakeCase(key), contents, options);\n } else if (value !== undefined && value !== null) {\n if (value instanceof Object) {\n for (const [elementKey, elementValue] of Object.entries(value)) {\n formData.append(snakeCase(key + \"[\" + elementKey + \"]\"), elementValue);\n }\n } else {\n formData.append(snakeCase(key), value);\n }\n }\n return formData;\n }, new FormData());\n};\n","import { IncomingMessage } from \"http\";\nimport { PassThrough, Readable } from \"stream\";\n\nexport class OnfidoDownload {\n private readonly incomingMessage: IncomingMessage;\n\n constructor(incomingMessage: IncomingMessage) {\n this.incomingMessage = incomingMessage;\n }\n\n public asStream(): Readable {\n // Use a PassThrough stream so the IncomingMessage isn't exposed.\n const passThroughStream = new PassThrough();\n this.incomingMessage.pipe(passThroughStream);\n return passThroughStream;\n }\n\n public get contentType(): string {\n return this.incomingMessage.headers[\"content-type\"]!;\n }\n}\n","import { AxiosInstance, AxiosPromise, AxiosResponse } from \"axios\";\nimport { IncomingMessage } from \"http\";\nimport { Readable } from \"stream\";\nimport { OnfidoApiError } from \"./errors/OnfidoApiError\";\nimport { OnfidoError } from \"./errors/OnfidoError\";\nimport {\n convertObjectToCamelCase,\n convertObjectToSnakeCase,\n SimpleObject,\n toFormData\n} from \"./formatting\";\nimport { OnfidoDownload } from \"./OnfidoDownload\";\n\nexport enum Method {\n GET = \"get\",\n POST = \"post\",\n PUT = \"put\",\n DELETE = \"delete\"\n}\n\nconst isJson = (response: AxiosResponse<unknown>): boolean =>\n (response.headers[\"content-type\"] || \"\").includes(\"application/json\");\n\nconst readFullStream = (stream: Readable): Promise<unknown> =>\n new Promise((resolve): void => {\n let all = \"\";\n\n stream.on(\"data\", data => (all += data));\n stream.on(\"error\", () => resolve(\"An error occurred reading the response\"));\n stream.on(\"end\", () => {\n // Try to parse as JSON, but fall back to just returning the raw text.\n try {\n resolve(JSON.parse(all));\n } catch {\n resolve(all);\n }\n });\n });\n\nconst convertAxiosErrorToOnfidoError = async (\n error: any\n): Promise<OnfidoError> => {\n if (!error.response) {\n return new OnfidoError(\n error.message || \"An unknown error occurred making the request\"\n );\n }\n\n // Received a 4XX or 5XX response.\n const response: AxiosResponse = error.response;\n const data = response.data;\n\n // If we were downloading a file, we will have a stream instead of a string.\n const body = data instanceof Readable ? await readFullStream(data) : data;\n\n return OnfidoApiError.fromResponse(body, response.status);\n};\n\nconst handleResponse = async (request: AxiosPromise<any>): Promise<any> => {\n try {\n const response = await request;\n const data = response.data;\n return isJson(response) ? convertObjectToCamelCase(data) : data;\n } catch (error) {\n throw await convertAxiosErrorToOnfidoError(error);\n }\n};\n\nexport class Resource<T extends SimpleObject> {\n private readonly name: string;\n private readonly axiosInstance: AxiosInstance;\n\n protected constructor(name: string, axiosInstance: AxiosInstance) {\n this.name = name;\n this.axiosInstance = axiosInstance;\n }\n\n protected async request({\n method,\n path = \"\",\n body,\n query\n }: {\n method: Method;\n path?: string;\n body?: T;\n query?: SimpleObject;\n }): Promise<any> {\n const request = this.axiosInstance({\n method,\n url: `${this.name}/${path}`,\n data: body && convertObjectToSnakeCase(body),\n params: query && convertObjectToSnakeCase(query)\n });\n\n return handleResponse(request);\n }\n\n protected async upload(body: T): Promise<any> {\n const formData = toFormData(body);\n\n const request = this.axiosInstance({\n method: Method.POST,\n url: `${this.name}/`,\n data: formData,\n headers: formData.getHeaders()\n });\n\n return handleResponse(request);\n }\n\n protected async download(path: string): Promise<OnfidoDownload> {\n const request = this.axiosInstance({\n method: Method.GET,\n url: `${this.name}/${path}`,\n responseType: \"stream\",\n // Accept a response with any content type (e.g. image/png, application/pdf, video/mp4)\n headers: { Accept: \"*/*\" }\n });\n\n const stream: IncomingMessage = await handleResponse(request);\n return new OnfidoDownload(stream);\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\ntype AddressOptional = {\n flatNumber: string | null;\n buildingNumber: string | null;\n buildingName: string | null;\n street: string | null;\n subStreet: string | null;\n town: string | null;\n state: string | null;\n line1: string | null;\n line2: string | null;\n line3: string | null;\n};\n\nexport type AddressRequest = {\n postcode: string;\n country: string;\n} & Partial<AddressOptional>;\n\nexport type Address = {\n postcode: string;\n country: string;\n} & AddressOptional;\n\nexport class Addresses extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"addresses\", axiosInstance);\n }\n\n public async pick(postcode: string): Promise<Address[]> {\n const { addresses } = await this.request({\n method: Method.GET,\n path: \"pick\",\n query: { postcode }\n });\n\n return addresses;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\nimport { Address, AddressRequest } from \"./Addresses\";\nimport { IdNumber, IdNumberRequest } from \"./IdNumbers\";\nimport { Location, LocationRequest } from \"./Location\";\nimport { ConsentsRequest } from \"./ConsentsRequest\";\n\n// firstName and lastName are also optional, to allow updating.\nexport type ApplicantRequest = {\n firstName?: string | null;\n lastName?: string | null;\n email?: string | null;\n dob?: string | null;\n address?: AddressRequest | null;\n idNumbers?: IdNumberRequest[] | null;\n phoneNumber?: string | null;\n location?: LocationRequest | null;\n consents?: ConsentsRequest[] | null;\n};\n\nexport type Applicant = {\n id: string;\n createdAt: string;\n deleteAt: string | null;\n href: string;\n firstName: string;\n lastName: string;\n email: string | null;\n dob: string | null;\n address: Address | null;\n idNumbers: IdNumber[] | null;\n phoneNumber: string | null;\n location: Location | null;\n};\n\nexport class Applicants extends Resource<ApplicantRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"applicants\", axiosInstance);\n }\n\n public async create(applicantRequest: ApplicantRequest): Promise<Applicant> {\n return this.request({ method: Method.POST, body: applicantRequest });\n }\n\n public async find(id: string): Promise<Applicant> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async update(\n id: string,\n applicantRequest: ApplicantRequest\n ): Promise<Applicant> {\n return this.request({\n method: Method.PUT,\n path: id,\n body: applicantRequest\n });\n }\n\n public async delete(id: string): Promise<void> {\n await this.request({ method: Method.DELETE, path: id });\n }\n\n public async restore(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/restore` });\n }\n\n public async list({\n page,\n perPage,\n includeDeleted\n }: {\n page?: number;\n perPage?: number;\n includeDeleted?: boolean;\n } = {}): Promise<Applicant[]> {\n const { applicants } = await this.request({\n method: Method.GET,\n query: { page, perPage, includeDeleted }\n });\n\n return applicants;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type ExtractionResult = {\n documentId: string;\n documentClassification: {\n issuingCountry: string;\n documentType: string;\n issuingState?: string;\n };\n extractedData: {\n documentNumber?: string;\n firstName?: string;\n lastName?: string;\n middleName?: string;\n fullName?: string;\n gender?: string;\n dateOfBirth?: string;\n dateOfExpiry?: string;\n nationality?: string;\n mrzLine1?: string;\n mrzLine2?: string;\n mrzLine3?: string;\n addressLine1?: string;\n addressLine2?: string;\n addressLine3?: string;\n addressLine4?: string;\n addressLine5?: string;\n };\n};\n\ntype AutofillResource = {\n documentId: string;\n};\n\nexport class Autofill extends Resource<AutofillResource> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"extractions\", axiosInstance);\n }\n\n public async perform(documentId: string): Promise<ExtractionResult> {\n return this.request({\n method: Method.POST,\n body: { documentId }\n });\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type CheckRequest = {\n applicantId: string;\n reportNames: string[];\n documentIds?: string[] | null;\n applicantProvidesData?: boolean;\n asynchronous?: boolean;\n tags?: string[] | null;\n suppressFormEmails?: boolean;\n redirectUri?: string | null;\n webhookIds?: string[] | null;\n subResult?: string;\n consider?: string[];\n};\n\nexport type Check = {\n id: string;\n reportIds: string[];\n createdAt: string;\n href: string;\n applicantId: string;\n applicantProvidesData: boolean;\n status: string;\n tags: string[];\n result: string | null;\n formUri: string | null;\n redirectUri: string | null;\n resultsUri: string;\n webhookIds: string[] | null;\n};\n\nexport class Checks extends Resource<CheckRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"checks\", axiosInstance);\n }\n\n public async create(checkRequest: CheckRequest): Promise<Check> {\n return this.request({ method: Method.POST, body: checkRequest });\n }\n\n public async find(id: string): Promise<Check> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<Check[]> {\n const { checks } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return checks;\n }\n\n public async resume(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/resume` });\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { FileLike } from \"../formatting\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\nimport { LocationRequest } from \"./Location\";\n\nexport type DocumentRequest = {\n applicantId?: string | null;\n file: FileLike;\n type: string;\n side?: string | null;\n issuingCountry?: string | null;\n validateImageQuality?: boolean | null;\n location?: LocationRequest | null;\n};\n\nexport type Document = {\n id: string;\n applicantId: string | null;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n type: string;\n side: string | null;\n issuingCountry: string | null;\n};\n\nexport class Documents extends Resource<DocumentRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"documents\", axiosInstance);\n }\n\n public async upload(documentRequest: DocumentRequest): Promise<Document> {\n return super.upload(documentRequest);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async find(id: string): Promise<Document> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<Document[]> {\n const { documents } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return documents;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { FileLike } from \"../formatting\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type LivePhotoRequest = {\n applicantId: string;\n file: FileLike;\n advancedValidation?: string;\n};\n\nexport type LivePhoto = {\n id: string;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n};\n\nexport class LivePhotos extends Resource<LivePhotoRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"live_photos\", axiosInstance);\n }\n\n public async upload(livePhotoRequest: LivePhotoRequest): Promise<LivePhoto> {\n return super.upload(livePhotoRequest);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async find(id: string): Promise<LivePhoto> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<LivePhoto[]> {\n const { livePhotos } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return livePhotos;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type LiveVideo = {\n id: string;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n};\n\nexport class LiveVideos extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"live_videos\", axiosInstance);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async frame(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/frame`);\n }\n\n public async find(id: string): Promise<LiveVideo> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<LiveVideo[]> {\n const { liveVideos } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return liveVideos;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type Report = {\n id: string;\n createdAt: string;\n name: string;\n href: string;\n status: string;\n result: string | null;\n subResult: string | null;\n properties: object | null;\n breakdown: object | null;\n documents: Array<{ id: string }>;\n checkId: string;\n};\n\nexport class Reports extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"reports\", axiosInstance);\n }\n\n public async find(id: string): Promise<Report> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(checkId: string): Promise<Report[]> {\n const { reports } = await this.request({\n method: Method.GET,\n query: { checkId }\n });\n\n return reports;\n }\n\n public async resume(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/resume` });\n }\n\n public async cancel(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/cancel` });\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type SdkTokenRequest = {\n applicantId: string;\n applicationId?: string | null;\n referrer?: string | null;\n crossDeviceUrl?: string | null;\n};\n\nexport class SdkTokens extends Resource<SdkTokenRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"sdk_token\", axiosInstance);\n }\n\n public async generate(sdkTokenRequest: SdkTokenRequest): Promise<string> {\n const { token } = await this.request({\n method: Method.POST,\n body: sdkTokenRequest\n });\n\n return token;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\n// url is also optional to allow updating.\nexport type WebhookRequest = {\n url?: string | null;\n enabled?: boolean;\n environments?: string[];\n events?: string[] | null;\n};\n\nexport type Webhook = {\n id: string;\n url: string;\n enabled: boolean;\n events: string[];\n token: string;\n href: string;\n environments: string[];\n};\n\nexport class Webhooks extends Resource<WebhookRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"webhooks\", axiosInstance);\n }\n\n public async create(webhookRequest: WebhookRequest): Promise<Webhook> {\n return this.request({ method: Method.POST, body: webhookRequest });\n }\n\n public async find(id: string): Promise<Webhook> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async update(\n id: string,\n webhookRequest: WebhookRequest\n ): Promise<Webhook> {\n return this.request({\n method: Method.PUT,\n path: id,\n body: webhookRequest\n });\n }\n\n public async delete(id: string): Promise<void> {\n await this.request({ method: Method.DELETE, path: id });\n }\n\n public async list(): Promise<Webhook[]> {\n const { webhooks } = await this.request({ method: Method.GET });\n\n return webhooks;\n }\n}\n","import axios, { AxiosInstance } from \"axios\";\nimport { version } from \"../package.json\";\nimport { Addresses } from \"./resources/Addresses\";\nimport { Applicants } from \"./resources/Applicants\";\nimport { Autofill } from \"./resources/Autofill\";\nimport { Checks } from \"./resources/Checks\";\nimport { Documents } from \"./resources/Documents\";\nimport { LivePhotos } from \"./resources/LivePhotos\";\nimport { LiveVideos } from \"./resources/LiveVideos\";\nimport { Reports } from \"./resources/Reports\";\nimport { SdkTokens } from \"./resources/SdkTokens\";\nimport { Webhooks } from \"./resources/Webhooks\";\n\nexport enum Region {\n EU = \"EU\",\n US = \"US\",\n CA = \"CA\"\n}\n\nexport type OnfidoOptions = {\n apiToken: string;\n region: Region;\n timeout?: number;\n unknownApiUrl?: string;\n};\n\nexport class Onfido {\n public readonly axiosInstance: AxiosInstance;\n // Core resources\n public readonly applicant: Applicants;\n public readonly document: Documents;\n public readonly livePhoto: LivePhotos;\n public readonly liveVideo: LiveVideos;\n public readonly check: Checks;\n public readonly report: Reports;\n // Other endpoints\n public readonly address: Addresses;\n public readonly webhook: Webhooks;\n public readonly sdkToken: SdkTokens;\n public readonly autofill: Autofill;\n\n constructor({\n apiToken,\n region,\n timeout = 30_000,\n unknownApiUrl\n }: OnfidoOptions) {\n if (!apiToken) {\n throw new Error(\"No apiToken provided\");\n }\n if (!region || !Object.values(Region).includes(region)) {\n throw new Error(\n `Unknown or missing region '${region}'. ` +\n \"We previously defaulted to region 'EU', so if you previously didn’t \" +\n \"set a region or used api.onfido.com, please set your region to 'EU'\"\n );\n }\n\n const regionUrl = `https://api.${region.toLowerCase()}.onfido.com/v3.4/`;\n\n this.axiosInstance = axios.create({\n baseURL: unknownApiUrl || regionUrl,\n headers: {\n Authorization: `Token token=${apiToken}`,\n Accept: \"application/json\",\n \"User-Agent\": `onfido-node/${version}`\n },\n timeout\n });\n\n // Core resources\n this.applicant = new Applicants(this.axiosInstance);\n this.document = new Documents(this.axiosInstance);\n this.livePhoto = new LivePhotos(this.axiosInstance);\n this.liveVideo = new LiveVideos(this.axiosInstance);\n this.check = new Checks(this.axiosInstance);\n this.report = new Reports(this.axiosInstance);\n // Other endpoints\n this.address = new Addresses(this.axiosInstance);\n this.webhook = new Webhooks(this.axiosInstance);\n this.sdkToken = new SdkTokens(this.axiosInstance);\n this.autofill = new Autofill(this.axiosInstance);\n }\n}\n","import { OnfidoError } from \"./errors/OnfidoError\";\nimport { convertObjectToCamelCase } from \"./formatting\";\n\n// Require crypto instead of importing, because Node can be built without crypto support.\nlet crypto: typeof import(\"crypto\") | undefined;\ntry {\n // tslint:disable-next-line: no-var-requires\n crypto = require(\"crypto\");\n} catch {\n // We throw an error when verifying webhooks instead.\n}\n\nexport type WebhookEvent = {\n resourceType: string;\n action: string;\n object: {\n id: string;\n status: string;\n href: string;\n completedAtIso8601: string;\n };\n};\n\nexport class WebhookEventVerifier {\n private readonly webhookToken: string;\n\n constructor(webhookToken: string) {\n this.webhookToken = webhookToken;\n }\n\n public readPayload(\n rawEventBody: string | Buffer,\n hexSignature: string\n ): WebhookEvent {\n if (!crypto) {\n throw new Error(\"Verifying webhook events requires crypto support\");\n }\n\n const givenSignature = Buffer.from(hexSignature, \"hex\");\n\n // Compute the the actual HMAC signature from the raw request body.\n const hmac = crypto.createHmac(\"sha256\", this.webhookToken);\n hmac.update(rawEventBody);\n const eventSignature = hmac.digest();\n\n // Use timingSafeEqual to prevent against timing attacks.\n if (!crypto.timingSafeEqual(givenSignature, eventSignature)) {\n throw new OnfidoError(\"Invalid signature for webhook event\");\n }\n\n const { payload } = JSON.parse(rawEventBody.toString());\n return convertObjectToCamelCase(payload) as WebhookEvent;\n }\n}\n"],"names":["PassThrough","Readable","Region"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/errors/OnfidoError.ts","../src/errors/OnfidoApiError.ts","../src/formatting.ts","../src/OnfidoDownload.ts","../src/Resource.ts","../src/resources/Addresses.ts","../src/resources/Applicants.ts","../src/resources/Autofill.ts","../src/resources/Checks.ts","../src/resources/Documents.ts","../src/resources/LivePhotos.ts","../src/resources/LiveVideos.ts","../src/resources/Reports.ts","../src/resources/SdkTokens.ts","../src/resources/Webhooks.ts","../src/Onfido.ts","../src/WebhookEventVerifier.ts"],"sourcesContent":["export class OnfidoError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = \"OnfidoError\";\n }\n}\n","import { OnfidoError } from \"./OnfidoError\";\n\nexport class OnfidoApiError extends OnfidoError {\n public readonly responseBody: unknown;\n public readonly statusCode: number;\n public readonly type: string;\n public readonly fields: unknown;\n\n private constructor(\n message: string,\n responseBody: unknown,\n statusCode: number,\n type: string,\n fields: unknown\n ) {\n super(message);\n this.name = \"OnfidoApiError\";\n\n this.responseBody = responseBody;\n this.statusCode = statusCode;\n this.type = type;\n this.fields = fields;\n }\n\n public static fromResponse(\n responseBody: unknown,\n statusCode: number\n ): OnfidoApiError {\n const innerErrorData: unknown =\n responseBody instanceof Object ? (responseBody as any).error : {};\n\n const innerError: {\n type?: unknown;\n message?: unknown;\n fields?: unknown;\n } = innerErrorData instanceof Object ? innerErrorData : {};\n\n const type = `${innerError.type || \"unknown\"}`;\n const message = `${innerError.message || responseBody}`;\n const fields = innerError.fields;\n\n const fullMessage =\n `${message} (status code ${statusCode})` +\n (fields ? ` | ${JSON.stringify(fields)}` : \"\");\n\n return new OnfidoApiError(\n fullMessage,\n responseBody,\n statusCode,\n type,\n fields\n );\n }\n\n public isClientError(): boolean {\n return this.statusCode < 500;\n }\n}\n","import { Readable } from \"stream\";\nimport { IFormData } from \"./types/formData\";\n\n// Using require because \"form-data\" exports this object as a default export which breaks integration when esModuleInterop: false\n// tslint:disable-next-line: no-var-requires\nconst FormData = require(\"form-data\");\n\nexport type SimpleObject = { [key: string]: unknown };\n\ntype ContentsAndOptions = {\n contents: Readable;\n filepath: string;\n contentType?: string;\n};\n\nexport type FileLike = Readable | ContentsAndOptions;\n\nconst snakeCase = (camelCaseString: string): string =>\n camelCaseString.replace(/[A-Z]/g, char => `_${char.toLowerCase()}`);\n\nconst camelCase = (snakeCaseString: string): string =>\n snakeCaseString\n .replace(/_[0-9]/g, underscoreDigit => underscoreDigit[1])\n .replace(/_[a-z]/g, underscoreChar => underscoreChar[1].toUpperCase());\n\nconst deepMapObjectKeys = (value: unknown, f: (key: string) => string): any => {\n if (!(value instanceof Object)) {\n return value;\n } else if (Array.isArray(value)) {\n return value.map(item => deepMapObjectKeys(item, f));\n } else {\n return Object.keys(value).reduce<SimpleObject>((acc, key) => {\n acc[f(key)] = deepMapObjectKeys((value as SimpleObject)[key], f);\n return acc;\n }, {});\n }\n};\n\nexport const convertObjectToSnakeCase = (requestBody: unknown): unknown => {\n // Converting to JSON and back first handles things like dates, circular references etc.\n requestBody = JSON.parse(JSON.stringify(requestBody));\n\n return deepMapObjectKeys(requestBody, snakeCase);\n};\n\nexport const convertObjectToCamelCase = (\n responseBody: SimpleObject\n): SimpleObject => deepMapObjectKeys(responseBody, camelCase);\n\nexport const toFormData = (object: SimpleObject): IFormData => {\n return Object.entries(object).reduce((formData, [key, value]) => {\n if (value instanceof Object && \"contents\" in value) {\n const { contents, ...options } = value as ContentsAndOptions;\n formData.append(snakeCase(key), contents, options);\n } else if (value !== undefined && value !== null) {\n if (value instanceof Object) {\n for (const [elementKey, elementValue] of Object.entries(value)) {\n formData.append(snakeCase(key + \"[\" + elementKey + \"]\"), elementValue);\n }\n } else {\n formData.append(snakeCase(key), value);\n }\n }\n return formData;\n }, new FormData());\n};\n","import { IncomingMessage } from \"http\";\nimport { PassThrough, Readable } from \"stream\";\n\nexport class OnfidoDownload {\n private readonly incomingMessage: IncomingMessage;\n\n constructor(incomingMessage: IncomingMessage) {\n this.incomingMessage = incomingMessage;\n }\n\n public asStream(): Readable {\n // Use a PassThrough stream so the IncomingMessage isn't exposed.\n const passThroughStream = new PassThrough();\n this.incomingMessage.pipe(passThroughStream);\n return passThroughStream;\n }\n\n public get contentType(): string {\n return this.incomingMessage.headers[\"content-type\"]!;\n }\n}\n","import { AxiosInstance, AxiosPromise, AxiosResponse } from \"axios\";\nimport { IncomingMessage } from \"http\";\nimport { Readable } from \"stream\";\nimport { OnfidoApiError } from \"./errors/OnfidoApiError\";\nimport { OnfidoError } from \"./errors/OnfidoError\";\nimport {\n convertObjectToCamelCase,\n convertObjectToSnakeCase,\n SimpleObject,\n toFormData\n} from \"./formatting\";\nimport { OnfidoDownload } from \"./OnfidoDownload\";\n\nexport enum Method {\n GET = \"get\",\n POST = \"post\",\n PUT = \"put\",\n DELETE = \"delete\"\n}\n\nconst isJson = (response: AxiosResponse<unknown>): boolean =>\n (response.headers[\"content-type\"] || \"\").includes(\"application/json\");\n\nconst readFullStream = (stream: Readable): Promise<unknown> =>\n new Promise((resolve): void => {\n let all = \"\";\n\n stream.on(\"data\", data => (all += data));\n stream.on(\"error\", () => resolve(\"An error occurred reading the response\"));\n stream.on(\"end\", () => {\n // Try to parse as JSON, but fall back to just returning the raw text.\n try {\n resolve(JSON.parse(all));\n } catch {\n resolve(all);\n }\n });\n });\n\nconst convertAxiosErrorToOnfidoError = async (\n error: any\n): Promise<OnfidoError> => {\n if (!error.response) {\n return new OnfidoError(\n error.message || \"An unknown error occurred making the request\"\n );\n }\n\n // Received a 4XX or 5XX response.\n const response: AxiosResponse = error.response;\n const data = response.data;\n\n // If we were downloading a file, we will have a stream instead of a string.\n const body = data instanceof Readable ? await readFullStream(data) : data;\n\n return OnfidoApiError.fromResponse(body, response.status);\n};\n\nconst handleResponse = async (request: AxiosPromise<any>): Promise<any> => {\n try {\n const response = await request;\n const data = response.data;\n return isJson(response) ? convertObjectToCamelCase(data) : data;\n } catch (error) {\n throw await convertAxiosErrorToOnfidoError(error);\n }\n};\n\nexport class Resource<T extends SimpleObject> {\n private readonly name: string;\n private readonly axiosInstance: AxiosInstance;\n\n protected constructor(name: string, axiosInstance: AxiosInstance) {\n this.name = name;\n this.axiosInstance = axiosInstance;\n }\n\n protected async request({\n method,\n path = \"\",\n body,\n query\n }: {\n method: Method;\n path?: string;\n body?: T;\n query?: SimpleObject;\n }): Promise<any> {\n const request = this.axiosInstance({\n method,\n url: `${this.name}/${path}`,\n data: body && convertObjectToSnakeCase(body),\n params: query && convertObjectToSnakeCase(query)\n });\n\n return handleResponse(request);\n }\n\n protected async upload(body: T): Promise<any> {\n const formData = toFormData(body);\n\n const request = this.axiosInstance({\n method: Method.POST,\n url: `${this.name}/`,\n data: formData,\n headers: formData.getHeaders()\n });\n\n return handleResponse(request);\n }\n\n protected async download(path: string): Promise<OnfidoDownload> {\n const request = this.axiosInstance({\n method: Method.GET,\n url: `${this.name}/${path}`,\n responseType: \"stream\",\n // Accept a response with any content type (e.g. image/png, application/pdf, video/mp4)\n headers: { Accept: \"*/*\" }\n });\n\n const stream: IncomingMessage = await handleResponse(request);\n return new OnfidoDownload(stream);\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\ntype AddressOptional = {\n flatNumber: string | null;\n buildingNumber: string | null;\n buildingName: string | null;\n street: string | null;\n subStreet: string | null;\n town: string | null;\n state: string | null;\n line1: string | null;\n line2: string | null;\n line3: string | null;\n};\n\nexport type AddressRequest = {\n postcode: string;\n country: string;\n} & Partial<AddressOptional>;\n\nexport type Address = {\n postcode: string;\n country: string;\n} & AddressOptional;\n\nexport class Addresses extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"addresses\", axiosInstance);\n }\n\n public async pick(postcode: string): Promise<Address[]> {\n const { addresses } = await this.request({\n method: Method.GET,\n path: \"pick\",\n query: { postcode }\n });\n\n return addresses;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\nimport { Address, AddressRequest } from \"./Addresses\";\nimport { IdNumber, IdNumberRequest } from \"./IdNumbers\";\nimport { Location, LocationRequest } from \"./Location\";\nimport { ConsentsRequest } from \"./ConsentsRequest\";\n\n// firstName and lastName are also optional, to allow updating.\nexport type ApplicantRequest = {\n firstName?: string | null;\n lastName?: string | null;\n email?: string | null;\n dob?: string | null;\n address?: AddressRequest | null;\n idNumbers?: IdNumberRequest[] | null;\n phoneNumber?: string | null;\n location?: LocationRequest | null;\n consents?: ConsentsRequest[] | null;\n};\n\nexport type Applicant = {\n id: string;\n createdAt: string;\n deleteAt: string | null;\n href: string;\n firstName: string;\n lastName: string;\n email: string | null;\n dob: string | null;\n address: Address | null;\n idNumbers: IdNumber[] | null;\n phoneNumber: string | null;\n location: Location | null;\n};\n\nexport class Applicants extends Resource<ApplicantRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"applicants\", axiosInstance);\n }\n\n public async create(applicantRequest: ApplicantRequest): Promise<Applicant> {\n return this.request({ method: Method.POST, body: applicantRequest });\n }\n\n public async find(id: string): Promise<Applicant> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async update(\n id: string,\n applicantRequest: ApplicantRequest\n ): Promise<Applicant> {\n return this.request({\n method: Method.PUT,\n path: id,\n body: applicantRequest\n });\n }\n\n public async delete(id: string): Promise<void> {\n await this.request({ method: Method.DELETE, path: id });\n }\n\n public async restore(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/restore` });\n }\n\n public async list({\n page,\n perPage,\n includeDeleted\n }: {\n page?: number;\n perPage?: number;\n includeDeleted?: boolean;\n } = {}): Promise<Applicant[]> {\n const { applicants } = await this.request({\n method: Method.GET,\n query: { page, perPage, includeDeleted }\n });\n\n return applicants;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type ExtractionResult = {\n documentId: string;\n documentClassification: {\n issuingCountry: string;\n documentType: string;\n issuingState?: string;\n };\n extractedData: {\n documentNumber?: string;\n firstName?: string;\n lastName?: string;\n middleName?: string;\n fullName?: string;\n gender?: string;\n dateOfBirth?: string;\n dateOfExpiry?: string;\n nationality?: string;\n mrzLine1?: string;\n mrzLine2?: string;\n mrzLine3?: string;\n addressLine1?: string;\n addressLine2?: string;\n addressLine3?: string;\n addressLine4?: string;\n addressLine5?: string;\n };\n};\n\ntype AutofillResource = {\n documentId: string;\n};\n\nexport class Autofill extends Resource<AutofillResource> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"extractions\", axiosInstance);\n }\n\n public async perform(documentId: string): Promise<ExtractionResult> {\n return this.request({\n method: Method.POST,\n body: { documentId }\n });\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type CheckRequest = {\n applicantId: string;\n reportNames: string[];\n documentIds?: string[] | null;\n applicantProvidesData?: boolean;\n asynchronous?: boolean;\n tags?: string[] | null;\n suppressFormEmails?: boolean;\n redirectUri?: string | null;\n privacyNoticesReadConsentGiven?: boolean;\n webhookIds?: string[] | null;\n subResult?: string;\n consider?: string[];\n};\n\nexport type Check = {\n id: string;\n reportIds: string[];\n createdAt: string;\n href: string;\n applicantId: string;\n applicantProvidesData: boolean;\n status: string;\n tags: string[];\n result: string | null;\n formUri: string | null;\n redirectUri: string | null;\n resultsUri: string;\n privacyNoticesReadConsentGiven: boolean;\n webhookIds: string[] | null;\n};\n\nexport class Checks extends Resource<CheckRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"checks\", axiosInstance);\n }\n\n public async create(checkRequest: CheckRequest): Promise<Check> {\n return this.request({ method: Method.POST, body: checkRequest });\n }\n\n public async find(id: string): Promise<Check> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<Check[]> {\n const { checks } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return checks;\n }\n\n public async resume(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/resume` });\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { FileLike } from \"../formatting\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\nimport { LocationRequest } from \"./Location\";\n\nexport type DocumentRequest = {\n applicantId?: string | null;\n file: FileLike;\n type: string;\n side?: string | null;\n issuingCountry?: string | null;\n validateImageQuality?: boolean | null;\n location?: LocationRequest | null;\n};\n\nexport type Document = {\n id: string;\n applicantId: string | null;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n type: string;\n side: string | null;\n issuingCountry: string | null;\n};\n\nexport class Documents extends Resource<DocumentRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"documents\", axiosInstance);\n }\n\n public async upload(documentRequest: DocumentRequest): Promise<Document> {\n return super.upload(documentRequest);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async find(id: string): Promise<Document> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<Document[]> {\n const { documents } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return documents;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { FileLike } from \"../formatting\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type LivePhotoRequest = {\n applicantId: string;\n file: FileLike;\n advancedValidation?: string;\n};\n\nexport type LivePhoto = {\n id: string;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n};\n\nexport class LivePhotos extends Resource<LivePhotoRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"live_photos\", axiosInstance);\n }\n\n public async upload(livePhotoRequest: LivePhotoRequest): Promise<LivePhoto> {\n return super.upload(livePhotoRequest);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async find(id: string): Promise<LivePhoto> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<LivePhoto[]> {\n const { livePhotos } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return livePhotos;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { OnfidoDownload } from \"../OnfidoDownload\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type LiveVideo = {\n id: string;\n createdAt: string;\n href: string;\n downloadHref: string;\n fileName: string;\n fileType: string;\n fileSize: number;\n};\n\nexport class LiveVideos extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"live_videos\", axiosInstance);\n }\n\n public async download(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/download`);\n }\n\n public async frame(id: string): Promise<OnfidoDownload> {\n return super.download(`${id}/frame`);\n }\n\n public async find(id: string): Promise<LiveVideo> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(applicantId: string): Promise<LiveVideo[]> {\n const { liveVideos } = await this.request({\n method: Method.GET,\n query: { applicantId }\n });\n\n return liveVideos;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type Report = {\n id: string;\n createdAt: string;\n name: string;\n href: string;\n status: string;\n result: string | null;\n subResult: string | null;\n properties: object | null;\n breakdown: object | null;\n documents: Array<{ id: string }>;\n checkId: string;\n};\n\nexport class Reports extends Resource<never> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"reports\", axiosInstance);\n }\n\n public async find(id: string): Promise<Report> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async list(checkId: string): Promise<Report[]> {\n const { reports } = await this.request({\n method: Method.GET,\n query: { checkId }\n });\n\n return reports;\n }\n\n public async resume(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/resume` });\n }\n\n public async cancel(id: string): Promise<void> {\n await this.request({ method: Method.POST, path: `${id}/cancel` });\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\nexport type SdkTokenRequest = {\n applicantId: string;\n applicationId?: string | null;\n referrer?: string | null;\n crossDeviceUrl?: string | null;\n};\n\nexport class SdkTokens extends Resource<SdkTokenRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"sdk_token\", axiosInstance);\n }\n\n public async generate(sdkTokenRequest: SdkTokenRequest): Promise<string> {\n const { token } = await this.request({\n method: Method.POST,\n body: sdkTokenRequest\n });\n\n return token;\n }\n}\n","import { AxiosInstance } from \"axios\";\nimport { Method, Resource } from \"../Resource\";\n\n// url is also optional to allow updating.\nexport type WebhookRequest = {\n url?: string | null;\n enabled?: boolean;\n environments?: string[];\n events?: string[] | null;\n};\n\nexport type Webhook = {\n id: string;\n url: string;\n enabled: boolean;\n events: string[];\n token: string;\n href: string;\n environments: string[];\n};\n\nexport class Webhooks extends Resource<WebhookRequest> {\n constructor(axiosInstance: AxiosInstance) {\n super(\"webhooks\", axiosInstance);\n }\n\n public async create(webhookRequest: WebhookRequest): Promise<Webhook> {\n return this.request({ method: Method.POST, body: webhookRequest });\n }\n\n public async find(id: string): Promise<Webhook> {\n return this.request({ method: Method.GET, path: id });\n }\n\n public async update(\n id: string,\n webhookRequest: WebhookRequest\n ): Promise<Webhook> {\n return this.request({\n method: Method.PUT,\n path: id,\n body: webhookRequest\n });\n }\n\n public async delete(id: string): Promise<void> {\n await this.request({ method: Method.DELETE, path: id });\n }\n\n public async list(): Promise<Webhook[]> {\n const { webhooks } = await this.request({ method: Method.GET });\n\n return webhooks;\n }\n}\n","import axios, { AxiosInstance } from \"axios\";\nimport { version } from \"../package.json\";\nimport { Addresses } from \"./resources/Addresses\";\nimport { Applicants } from \"./resources/Applicants\";\nimport { Autofill } from \"./resources/Autofill\";\nimport { Checks } from \"./resources/Checks\";\nimport { Documents } from \"./resources/Documents\";\nimport { LivePhotos } from \"./resources/LivePhotos\";\nimport { LiveVideos } from \"./resources/LiveVideos\";\nimport { Reports } from \"./resources/Reports\";\nimport { SdkTokens } from \"./resources/SdkTokens\";\nimport { Webhooks } from \"./resources/Webhooks\";\n\nexport enum Region {\n EU = \"EU\",\n US = \"US\",\n CA = \"CA\"\n}\n\nexport type OnfidoOptions = {\n apiToken: string;\n region: Region;\n timeout?: number;\n unknownApiUrl?: string;\n};\n\nexport class Onfido {\n public readonly axiosInstance: AxiosInstance;\n // Core resources\n public readonly applicant: Applicants;\n public readonly document: Documents;\n public readonly livePhoto: LivePhotos;\n public readonly liveVideo: LiveVideos;\n public readonly check: Checks;\n public readonly report: Reports;\n // Other endpoints\n public readonly address: Addresses;\n public readonly webhook: Webhooks;\n public readonly sdkToken: SdkTokens;\n public readonly autofill: Autofill;\n\n constructor({\n apiToken,\n region,\n timeout = 30_000,\n unknownApiUrl\n }: OnfidoOptions) {\n if (!apiToken) {\n throw new Error(\"No apiToken provided\");\n }\n if (!region || !Object.values(Region).includes(region)) {\n throw new Error(\n `Unknown or missing region '${region}'. ` +\n \"We previously defaulted to region 'EU', so if you previously didn’t \" +\n \"set a region or used api.onfido.com, please set your region to 'EU'\"\n );\n }\n\n const regionUrl = `https://api.${region.toLowerCase()}.onfido.com/v3.4/`;\n\n this.axiosInstance = axios.create({\n baseURL: unknownApiUrl || regionUrl,\n headers: {\n Authorization: `Token token=${apiToken}`,\n Accept: \"application/json\",\n \"User-Agent\": `onfido-node/${version}`\n },\n timeout\n });\n\n // Core resources\n this.applicant = new Applicants(this.axiosInstance);\n this.document = new Documents(this.axiosInstance);\n this.livePhoto = new LivePhotos(this.axiosInstance);\n this.liveVideo = new LiveVideos(this.axiosInstance);\n this.check = new Checks(this.axiosInstance);\n this.report = new Reports(this.axiosInstance);\n // Other endpoints\n this.address = new Addresses(this.axiosInstance);\n this.webhook = new Webhooks(this.axiosInstance);\n this.sdkToken = new SdkTokens(this.axiosInstance);\n this.autofill = new Autofill(this.axiosInstance);\n }\n}\n","import { OnfidoError } from \"./errors/OnfidoError\";\nimport { convertObjectToCamelCase } from \"./formatting\";\n\n// Require crypto instead of importing, because Node can be built without crypto support.\nlet crypto: typeof import(\"crypto\") | undefined;\ntry {\n // tslint:disable-next-line: no-var-requires\n crypto = require(\"crypto\");\n} catch {\n // We throw an error when verifying webhooks instead.\n}\n\nexport type WebhookEvent = {\n resourceType: string;\n action: string;\n object: {\n id: string;\n status: string;\n href: string;\n completedAtIso8601: string;\n };\n};\n\nexport class WebhookEventVerifier {\n private readonly webhookToken: string;\n\n constructor(webhookToken: string) {\n this.webhookToken = webhookToken;\n }\n\n public readPayload(\n rawEventBody: string | Buffer,\n hexSignature: string\n ): WebhookEvent {\n if (!crypto) {\n throw new Error(\"Verifying webhook events requires crypto support\");\n }\n\n const givenSignature = Buffer.from(hexSignature, \"hex\");\n\n // Compute the the actual HMAC signature from the raw request body.\n const hmac = crypto.createHmac(\"sha256\", this.webhookToken);\n hmac.update(rawEventBody);\n const eventSignature = hmac.digest();\n\n // Use timingSafeEqual to prevent against timing attacks.\n if (!crypto.timingSafeEqual(givenSignature, eventSignature)) {\n throw new OnfidoError(\"Invalid signature for webhook event\");\n }\n\n const { payload } = JSON.parse(rawEventBody.toString());\n return convertObjectToCamelCase(payload) as WebhookEvent;\n }\n}\n"],"names":["PassThrough","Readable","Region"],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare type CheckRequest = {
|
|
|
10
10
|
tags?: string[] | null;
|
|
11
11
|
suppressFormEmails?: boolean;
|
|
12
12
|
redirectUri?: string | null;
|
|
13
|
+
privacyNoticesReadConsentGiven?: boolean;
|
|
13
14
|
webhookIds?: string[] | null;
|
|
14
15
|
subResult?: string;
|
|
15
16
|
consider?: string[];
|
|
@@ -27,6 +28,7 @@ export declare type Check = {
|
|
|
27
28
|
formUri: string | null;
|
|
28
29
|
redirectUri: string | null;
|
|
29
30
|
resultsUri: string;
|
|
31
|
+
privacyNoticesReadConsentGiven: boolean;
|
|
30
32
|
webhookIds: string[] | null;
|
|
31
33
|
};
|
|
32
34
|
export declare class Checks extends Resource<CheckRequest> {
|