{"_id":"@vouched.id/vouched-nodejs","_rev":"27-1ff866c14816e3e04d0b1b95819f2e0b","name":"@vouched.id/vouched-nodejs","dist-tags":{"latest":"0.0.1-beta.16"},"versions":{"0.0.1-beta.15":{"name":"@vouched.id/vouched-nodejs","version":"0.0.1-beta.15","keywords":["vouched","nodejs"],"author":{"name":"John Cao"},"license":"Apache-2.0","_id":"@vouched.id/vouched-nodejs@0.0.1-beta.15","maintainers":[{"name":"springbee","email":"vasanth@vouched.id"},{"name":"vouched","email":"admin@vouched.id"}],"homepage":"https://github.com/vouched/vouched-nodejs#readme","bugs":{"url":"https://github.com/vouched/vouched-nodejs/issues"},"dist":{"shasum":"694ea08050d6f6269e3f0cb0330b0c59858820f4","tarball":"https://registry.npmjs.org/@vouched.id/vouched-nodejs/-/vouched-nodejs-0.0.1-beta.15.tgz","fileCount":54,"integrity":"sha512-UQUZtuqU3z17h6gCV7rJ06+XGOudXw8aL76Nz8kgT1SCUxbb6YemUuVR+4eOaQqLJ1CXtfRns7hhie/hHsihCQ==","signatures":[{"sig":"MEUCIQDz447ij0vOVw8x8c4cVA5IgKAehZHyvWN43UI+qLVxRgIgSoQhzIlBaxC0yZ1kgnKZ/S5or0YhebWZQgR6kIVeOhY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14372240,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfO/owCRA9TVsSAnZWagAANsAP/jnA4JYWRtNWHalu+GR0\nvZVIBNekpwBtwsVGNWpsTQa4r3NMdc6jvuyowkZ/mcWAUEHuFVEg3D95FrCD\nbLU0qJCBa7OnUq66x2l0zlW3XUB9ETUiJKxVEi3Hw7KALrun59aZF0r5Jk/d\nHRdDpEa11Jd2k+3L3D9USyZdG4rwxV4e1l12mftCd9YdRaKTaFJ+qYt8IgqO\nO0CB5tTnnNeykfBK4LWM/hCEPtCnY7pTmRoH0NuuhyUIcjnIXMEMp60ABGVM\nD7mEv2srHuyEC+MgoKYVtq+tRNeVEhEf4wejqKbqn1IKqGoPcf+xLeAo+KH3\nGcQaONMk8MHo3n5eyB09YVzfhnCwQ0Jtjjb3E25z4JCc3qlSM4Ut6Oblj2aY\nKqOMEY+duOD33PVkoxX4guyszibfh+Znu7WSzPzayM6alGf6ZKn89HoF0Yhw\nfC8jH42w65ucJTGRjRVDFHWQ3qvviK3/3+69+oYhlCwJlyZAvsKeYgBGUaB6\nLLVD3IX+CwAjmWDkQgGHCxZcAZkE+ixKIDvtemcNgRY3C3ZetCFJAYbAFYdR\nXIFLRd5Jqrb7xNVzq9PUTetrWYIV0/I5Ng8Zd4OkwHLijMdVuLUsrFFG5acm\nEkTMrPWMrT7zpHfdwxHnrEU3nJmPS+y5Rz3bYcfARm4Dkl8o2rFdw1Bbzhj9\nGZQX\r\n=+oik\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"transform":{"^.+\\.[t|j]sx?$":"babel-jest"},"testEnvironment":"node","coverageReporters":["lcov","html"],"testPathIgnorePatterns":["/node_modules/","./dist"]},"main":"dist/client/index.js","gitHead":"19def59fb9e685a2d3574244a7588be54472e48e","scripts":{"test":"node node_modules/.bin/jest","build":"node ./node_modules/.bin/babel src -sd dist --copy-files"},"_npmUser":{"name":"vouched","email":"admin@vouched.id"},"licenses":[{"url":"http://www.apache.org/licenses/LICENSE-2.0","type":"Apache-2.0"}],"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/vouched/vouched-nodejs.git","type":"git"},"_npmVersion":"6.13.4","description":"A set of tools that you can use to submit, access and manage verification jobs","directories":{"test":"tests","example":"example"},"_nodeVersion":"13.6.0","dependencies":{"tmp":"^0.0.33","sharp":"^0.23.1","graphql":"^0.13.2","form-data":"^2.3.2","mime-types":"^2.1.21","graphql-tag":"^2.9.2","apollo-boost":"^0.1.20","@babel/polyfill":"^7.6.0","isomorphic-fetch":"^2.2.1","lodash.isfunction":"^3.0.9","@jeremejevs/file-api":"0.10.5","apollo-upload-client":"^8.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","dotenv":"^8.2.0","eslint":"^4.3.0","jest-cli":"^23.6.0","babel-cli":"^6.26.0","babel-jest":"^24.9.0","@babel/core":"^7.8.3","babel-eslint":"^7.2.3","babel-register":"^6.26.0","babel-preset-env":"^1.7.0","eslint-plugin-jest":"^21.22.1","eslint-plugin-react":"^7.2.0","eslint-plugin-import":"^2.6.0","eslint-config-prettier":"^2.2.0","eslint-config-airbnb-base":"^11.2.0","babel-plugin-inline-import":"^3.0.0","babel-plugin-transform-define":"^1.3.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/vouched-nodejs_0.0.1-beta.15_1597766191962_0.4858047575679132","host":"s3://npm-registry-packages"}},"0.0.1-beta.16":{"name":"@vouched.id/vouched-nodejs","version":"0.0.1-beta.16","keywords":["vouched","nodejs"],"author":{"name":"John Cao"},"license":"Apache-2.0","_id":"@vouched.id/vouched-nodejs@0.0.1-beta.16","maintainers":[{"name":"springbee","email":"vasanth@vouched.id"},{"name":"vouched","email":"admin@vouched.id"}],"homepage":"https://github.com/vouched/vouched-nodejs#readme","bugs":{"url":"https://github.com/vouched/vouched-nodejs/issues"},"dist":{"shasum":"ab948f42882f4b84d6f17a4293f6ac89c03619ee","tarball":"https://registry.npmjs.org/@vouched.id/vouched-nodejs/-/vouched-nodejs-0.0.1-beta.16.tgz","fileCount":54,"integrity":"sha512-ekPioJ6LfyH1ikMn9fChgug5t0bgga8YZ34sBEqoua07S7+ViTlhDePcEpZInHw74o40+eX3PVhjdJ2V+FzbLg==","signatures":[{"sig":"MEQCIE8smacgfkp2gW0/aZsob1wVBCLAn7zPXLHVC4fTaBzeAiBEU8Jz8kX4S2zGtPaBWR2qKQyT/LGkaPMEJUcFeh6rvQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14372240,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfO/yiCRA9TVsSAnZWagAAyesP/iRqHMnIpygVGKJqFaxN\nD9mHaA3Q2zmtRk+DO3Wee6COV2sGey0NWiYmtMwl5ciMSkeuQexFLZQZdjYF\nW/7afnozs+pRbq79YBgcAKPJUhqLL4qsaDAB0pl4LXqFz+7tepssZtttwIbn\nHAEqMQo/OjeJVuhzTYxYOQIrDJUz7j52WhlVsER1zrLBc8LP1uvpWT2li0YW\nMoINnzylQSFpbne10g6jzqu7l0viqI8GUM9h3GHotIoPhFqw1y01goN+A4MJ\nDehenKz/cbF//h9JkVjtA2R0WG/R2yX54h9Z95egbpSe44qdJJUF4tyRr3EP\nhe7VIMUidECIMXCTjTu7MPSg0HiVmnzSJKqax65+HnN8BReoGrMnxW9rc6dw\neHs+mW7pWDxjeIAiwZ2ZO4CgILwc88SrwqgzYt50NHGP7uavdC46tXycPIqL\nsukaP9crjn1WvzWp9SK1U15UVa/s8pMY4/RTirQ0k9qsQpQWxSypvHE+SDlC\nwW0ZBK58xPdN9mQr/BdF2+pOnXc/QVNVGe2yQFE6omWIuvBwEGXLiwMrQBhF\n6fLxIJYFJNBxdSx2gv7QMzRsVjfy+hciDMqi7MHNbZPNfW9M8yVGpdNJVrb2\nULlwxcbksqmuKTx5Z7CKKD9VLzAqKjbFBDQ2X0sUlTc319mtYsIPOmuS080X\nzNAF\r\n=ZOg/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"transform":{"^.+\\.[t|j]sx?$":"babel-jest"},"testEnvironment":"node","coverageReporters":["lcov","html"],"testPathIgnorePatterns":["/node_modules/","./dist"]},"main":"dist/client/index.js","gitHead":"f89dffe180fdc1f09237513b051fa6bb90f81201","scripts":{"test":"node node_modules/.bin/jest","build":"node ./node_modules/.bin/babel src -sd dist --copy-files"},"_npmUser":{"name":"vouched","email":"admin@vouched.id"},"licenses":[{"url":"http://www.apache.org/licenses/LICENSE-2.0","type":"Apache-2.0"}],"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","repository":{"url":"git+https://github.com/vouched/vouched-nodejs.git","type":"git"},"_npmVersion":"6.13.4","description":"A set of tools that you can use to submit, access and manage verification jobs","directories":{"test":"tests","example":"example"},"_nodeVersion":"13.6.0","dependencies":{"tmp":"^0.0.33","sharp":"^0.23.1","graphql":"^0.13.2","form-data":"^2.3.2","mime-types":"^2.1.21","graphql-tag":"^2.9.2","apollo-boost":"^0.1.20","@babel/polyfill":"^7.6.0","isomorphic-fetch":"^2.2.1","lodash.isfunction":"^3.0.9","@jeremejevs/file-api":"0.10.5","apollo-upload-client":"^8.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^23.6.0","dotenv":"^8.2.0","eslint":"^4.3.0","jest-cli":"^23.6.0","babel-cli":"^6.26.0","babel-jest":"^24.9.0","@babel/core":"^7.8.3","babel-eslint":"^7.2.3","babel-register":"^6.26.0","babel-preset-env":"^1.7.0","eslint-plugin-jest":"^21.22.1","eslint-plugin-react":"^7.2.0","eslint-plugin-import":"^2.6.0","eslint-config-prettier":"^2.2.0","eslint-config-airbnb-base":"^11.2.0","babel-plugin-inline-import":"^3.0.0","babel-plugin-transform-define":"^1.3.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/vouched-nodejs_0.0.1-beta.16_1597766817560_0.4914460950588355","host":"s3://npm-registry-packages"}}},"time":{"created":"2020-08-18T15:56:31.961Z","modified":"2025-04-01T21:43:50.189Z","0.0.1-beta.15":"2020-08-18T15:56:32.328Z","0.0.1-beta.16":"2020-08-18T16:06:58.072Z"},"bugs":{"url":"https://github.com/vouched/vouched-nodejs/issues"},"author":{"name":"John Cao"},"license":"Apache-2.0","homepage":"https://github.com/vouched/vouched-nodejs#readme","keywords":["vouched","nodejs"],"repository":{"url":"git+https://github.com/vouched/vouched-nodejs.git","type":"git"},"description":"A set of tools that you can use to submit, access and manage verification jobs","maintainers":[{"email":"corpit@vouched.id","name":"vouched"},{"email":"aaron.hill@vouched.id","name":"aaronhill"},{"email":"simon.schick@vouched.id","name":"vouched-simon-schick"}],"readme":"# vouched-nodejs\n\n## Getting Started\n\n### Required libraries\n\n`@vouched.id/vouched-nodejs` relies on libvps and python for compressing images before transport.\nInstallation instructions for libvips found at https://github.com/lovell/sharp-libvips.\n\n## Installation\n\nIf you use npm, simply do:\n\n```sh\nnpm install @vouched.id/vouched-nodejs\n```\n\nOtherwise, you can grab the code from [[GitHub](https://github.com/vouched/vouched-nodejs)].\n\n## Quick start\n\nHere's a very simple server using Vouched for Node.js for authentication\n\n### Create the Vouched client\n\n```javascript\nconst Client = require(\"@vouched.id/vouched-nodejs\").default;\nconst client = Client(secret_app_key);\n```\n\n#### Arguments\n\n| Parameter | Type   | Required | Description            |\n| --------- | ------ | -------- | ---------------------- |\n| key       | String | \\*       | Secret Application Key |\n\n#### Returns\n\n| Parameter | Type   | Required | Description            |\n| --------- | ------ | -------- | ---------------------- |\n| key       | String | \\*       | Secret Application Key |\n\n#### Errors\n\n[`InvalidRequestError`](#InvalidRequestError)\n\n### Update client key\n\n```javascript\nconst secretClientKey = \"<SECRET>\";\nconst data = client.updateSecretClientKey(secretClientKey);\n```\n\n#### Arguments\n\n| Parameter       | Type   | Required | Description                                                                |\n| --------------- | ------ | -------- | -------------------------------------------------------------------------- |\n| secretClientKey | String | \\*       | The secret key to be included in the header X-Api-Key of the webhook call. |\n\n#### Returns\n\n| Parameter       | Type   | Required | Description                 |\n| --------------- | ------ | -------- | --------------------------- |\n| secretClientKey | String | \\*       | The updated secretClientKey |\n\n#### Errors\n\n[`AuthenticationError`](#AuthenticationError)\n[`ConnectionError`](#ConnectionError)\n[`InvalidRequestError`](#InvalidRequestError)\n[`UnknownSystemError`](#UnknownSystemError)\n\n### Submit a verification job\n\n```javascript\nconst utils = require(\"@vouched.id/vouched-nodejs\").utils;\n\nconst userPhotoBase64 = await utils.imageToBase64(\"./tests/data/selfie.png\");\nconst idPhotoBase64 = await utils.imageToBase64(\"./tests/data/id.jpg\");\nconst job = await client.submit({\n  userPhoto: userPhotoBase64,\n  idPhoto: idPhotoBase64,\n  type: \"id-verification\",\n  firstName: \"Janice\",\n  properties: [\n    { name: \"internal_id\", value: \"iid\" },\n    { name: \"internal_username\", value: \"bob\" },\n  ],\n  dob: \"06/22/1990\",\n  lastName: \"Way\",\n});\n```\n\n#### Arguments\n\n| type         | String | \\*  | Type of AI job (\"id-verification\")}                                                                                                                  |\n| ------------ | ------ | --- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |\n| callbackURL  | String |     | Upon the jobs completion, Vouched will POST the job results to the webhook. If the callbackURL is not given, Vouch will process the job in realtime. |\n| `properties` | Object |     | Arbitrary properties to add to the job, i.e. application ids. Described below.                                                                       |\n| `parameters` | Object | \\*  | Object for id-verification. Described below.                                                                                                         |\n\n#### `properties` - arbitrary properties to add to the job, i.e. application ids\n\n| type  | String | \\*  | Type of AI job (\"id-verification\")} |\n| ----- | ------ | --- | ----------------------------------- |\n| name  | String |     | Name of the property                |\n| value | String |     | Value of the property               |\n\n#### `parameters` - object for id-verification.\n\n| type        | String | \\*     | Type of AI job (\"id-verification\") |\n| ----------- | ------ | ------ | ---------------------------------- |\n| userPhoto   | String | Buffer |                                    | The users id comparison photo. Supported types include image/png, image/jpeg |\n| idPhoto     | String | Buffer | \\*                                 | The users official identification photo. Supported types include image/png, image/jpeg |\n| idPhotoBack | String | Buffer | \\*                                 | The users official back of the identification photo. Supported types include image/png, image/jpeg. |\n| firstName   | String | \\*     | The users first name.              |\n| lastName    | String | \\*     | The users last name.               |\n| dob         | String | \\*     | Date in the format MM/DD/YYYY.     |\n\n#### Returns\n\n| Parameter | Type | Required | Description            |\n| --------- | ---- | -------- | ---------------------- |\n| job       | Job  | \\*       | The newly created job. |\n\n#### Errors\n\n[`AuthenticationError`](#AuthenticationError)\n[`ConnectionError`](#ConnectionError)\n[`InvalidRequestError`](#InvalidRequestError)\n[`UnknownSystemError`](#UnknownSystemError)\n\n### Remove a job\n\n```javascript\nconst job = await client.remove({ id: \"ofm1k9xF\" });\n```\n\n#### Arguments\n\n| Parameter | Type   | Required | Description              |\n| --------- | ------ | -------- | ------------------------ |\n| id        | String | \\*       | ID of the job to remove. |\n\n#### Returns\n\n| Parameter | Type | Required | Description            |\n| --------- | ---- | -------- | ---------------------- |\n| job       | Job  | \\*       | The newly created job. |\n\n#### Errors\n\n[`AuthenticationError`](#AuthenticationError)\n[`ConnectionError`](#ConnectionError)\n[`InvalidRequestError`](#InvalidRequestError)\n[`UnknownSystemError`](#UnknownSystemError)\n\n### Provide results on jobs\n\n```javascript\nparams := map[string]interface{}{\n  \"page\":       1,\n  \"sortBy\":     \"date\",\n  \"sortOrder\":  \"desc\",\n  \"from\":       \"1990-12-24T04:44:00+00:00\",\n  \"to\":         \"2020-12-24T04:44:00+00:00\",\n  \"type\":       \"id-verification\",\n  \"token\":       \"SESSION_TOKEN\",\n  \"status\":     \"active\",\n  \"withPhotos\": false,\n  \"pageSize\":   2,\n}\nif resp, err := c.Jobs(params); err != nil {\n  fmt.Printf(\"Error: %+v\n\", err)\n} else {\n  fmt.Printf(\"Jobs: %+v\n\", resp)\n}\n\nconst jobs = client.jobs({\n    page:1,\n    pageSize:2,\n    type:'id-verification',\n    status:'active',\n    token:<TOKEN_FROM_WEB_CLIENT>,\n    sortBy:'date',\n    sortOrder:'desc',\n    withPhotos:true,\n    fromDate:'2017-01-24T04:44:00+00:00',\n    toDate:'2020-12-24T04:44:00+00:00'\n})\n```\n\n#### Arguments\n\n| Parameter  | Type    | Required | Description                                                                                                |\n| ---------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------- |\n| id         | String  | \\*       | ID of the job to remove.                                                                                   |\n| type       | String  |          | Type of job (\"id-verification\").                                                                           |\n| ids        | [ID]    |          | Filter by a list of job IDs.                                                                               |\n| page       | String  |          | Paginate list by page where the page starts at 1, defaults to 1.                                           |\n| pageSize   | String  |          | The number of items for a page, max 1000, defaults to 100.                                                 |\n| sortBy     | String  |          | Sort the list from (\"date\", \"status\").                                                                     |\n| sortOrder  | String  |          | Order the sort from (\"asc\", \"desc\").                                                                       |\n| status     | String  |          | Filter by status from (\"active\",\"completed\")                                                               |\n| to         | String  |          | Filter by submitted to ISO8601 date.                                                                       |\n| from       | String  |          | Filter by submitted from ISO8601 date.                                                                     |\n| withPhotos | Boolean |          | Defaults to False. The returned job will contain detailed information idPhoto, idPhotoBack, and userPhoto. |\n\n#### Returns\n\n| Parameter  | Type  | Required | Description                    |\n| ---------- | ----- | -------- | ------------------------------ |\n| jobs       | [Job] | \\*       | The removed job.               |\n| totalPages | Int   | \\*       | Total number of pages of jobs. |\n| pageSize   | Int   | \\*       | The requested page size.       |\n| page       | Int   | \\*       | The requested page.            |\n| total      | Int   | \\*       | Total number of filtered jobs. |\n\n### Errors\n\n[`AuthenticationError`](#AuthenticationError)\n[`ConnectionError`](#ConnectionError)\n[`InvalidRequestError`](#InvalidRequestError)\n[`UnknownSystemError`](#UnknownSystemError)\n\n## Types\n\n### Errors\n\n| Parameter  | Type    | Required | Description                                            |\n| ---------- | ------- | -------- | ------------------------------------------------------ |\n| `type`     | String  | \\*       |                                                        |\n| message    | String  | \\*       | Type of job (\"id-verification\").                       |\n| suggestion | [ID]    |          | A suggestion for matching name, John Smith, Jon Smith. |\n| errors     | [Error] |          | InvalidRequestError contains a sub list of errors      |\n\n#### `type`\n\n`InvalidRequestError` - The request is invalid.\n`FaceMatchError` - Face match felled below the threshold\n`NameMatchError` - Name match felled below the threshold\n`BirthDateMatchError` - Birth date match felled below the threshold\n`InvalidIdPhotoError` - The ID is invalid\n`InvalidUserPhotoError` - The user photo (selfie) is invalid\n`UNAUTHENTICATED`/`AuthenticationError` - The request could not be authenticated\n`ConnectionError` - A connection error occurred while communicating to the Vouched service\n`InvalidIdBackPhotoError` - The back of the ID is invalid\n`UnknownSystemError` - A unknown system error occurred\n`InvalidIdError` - The ID is invalid\n\n### Job\n\n| Parameter | Type    | Required | Description                                     |\n| --------- | ------- | -------- | ----------------------------------------------- |\n| id        | ID      | \\*       | Job ID                                          |\n| status    | String  | \\*       | Job status from (\"active\",\"completed\")          |\n| submitted | String  |          | ISO8601 date                                    |\n| `request` | Object  |          | Object for 'id-verification'.                   |\n| `result`  | Object  |          | Object of 'id-verification'.                    |\n| errors    | [Error] |          | List of errors for unsuccessful completed jobs. |\n\n#### `request`\n\n| Parameter   | Type          | Required | Description                  |\n| ----------- | ------------- | -------- | ---------------------------- |\n| type        | String        | \\*       | Job type                     |\n| callbackURL | String        |          | POST enabled webhook         |\n| parameters  | JobParameters | \\*       | Object for 'id-verification' |\n\n#### `result`\n\n| Parameter   | Type        | Required | Description                                        |\n| ----------- | ----------- | -------- | -------------------------------------------------- |\n| success     | Boolean     | \\*       | Did the id verification completed successfully?    |\n| type        | String      |          | The id type                                        |\n| callbackURL | String      |          | POST enabled webhook                               |\n| state       | String      |          | The issuing state of the id if applicable          |\n| country     | String      |          | The issuing country of the id                      |\n| id          | String      |          | The verified id number of the id                   |\n| expireDate  | String      |          | The verified expired date in the format MM/DD/YYYY |\n| birthDate   | String      |          | The verified date in the format MM/DD/YYYY         |\n| firstName   | String      |          | The user's verified first name.                    |\n| lastName    | String      |          | The user's verified last name                      |\n| confidences | Confidences |          | Confidence scores                                  |\n\n### Confidences\n\n| Parameter | Type  | Required | Description                                          |\n| --------- | ----- | -------- | ---------------------------------------------------- |\n| id        | Float | \\*       | Confidence score for an id photo, 0-1.0              |\n| backId    | Float | \\*       | Confidence score for the back of the id photo, 0-1.0 |\n| selfie    | Float | \\*       | Confidence score for a selfie photo, 0-1.0           |\n| idMatch   | Float | \\*       | Confidence score for matching data on the id, 0-1.0  |\n| faceMatch | Float | \\*       | Confidence score for matching faces, 0-1.0           |\n\n### JobParameters\n\n| Parameter         | Type   | Required | Description                                                     |\n| ----------------- | ------ | -------- | --------------------------------------------------------------- |\n| idPhoto           | String | \\*       | The user's official identification photo in base64.             |\n| userPhoto         | String |          | The user's id comparison photo in base64.                       |\n| twicPhoto         | String |          | The user's id twic id photo in base64.                          |\n| carInsurancePhoto | String |          | The user's id car insurance photo in base64.                    |\n| dotPhoto          | String | \\*       | The user's id dot letter photo in base64.                       |\n| idPhotoBack       | String |          | The user's official back of the identification photo in base64. |\n| dob               | String |          | Date in the format MM/DD/YYYY.                                  |\n| firstName         | String |          | The user's first name.                                          |\n| lastName          | String |          | The user's last name.                                           |\n\n## Testing\n\nRun the tests:\n\n```\nyarn test\n```\n\nRun a specific test file:\n\n```\nyarn test -- 'utils.test'\n```\n\nRun a specific test scenario:\n\n```\nyarn test -- 'utils.test' --t 'toImage - success'\n```\n\n```\nyarn test -- 'client.test' --t 'submit - success'\n```\n","readmeFilename":"README.md"}