{
  "parser": {
    "fields": [
      {
        "name": "name.manufacturer",
        "stages": [
          {
            "type": "selector",
            "opts": ["#manufacturer"]
          }
        ]
      },
      {
        "name": "name.name",
        "stages": [
          {
            "type": "selector",
            "opts": ["span#name"]
          }
        ]
      },
      {
        "name": "name.model",
        "stages": [
          {
            "type": "selector",
            "opts": ["div#model"]
          }
        ]
      },
      {
        "name": "variant.type",
        "stages": [
          {
            "type": "selector",
            "opts": ["span#type"]
          }
        ]
      },
      {
        "name": "variant.kind",
        "stages": [
          {
            "type": "selector",
            "opts": ["span#kind"]
          }
        ]
      },
      {
        "name": "engine.cc",
        "stages": [
          {
            "type": "selector",
            "opts": ["span#cc"]
          }
        ]
      },
      {
        "name": "engine.fuel",
        "stages": [
          {
            "type": "selector",
            "opts": ["span#fuel"]
          }
        ]
      },
      {
        "name": "production.year",
        "stages": [
          {
            "type": "selector",
            "opts": ["p.year span.strong"]
          }
        ]
      },
      {
        "name": "policy.status",
        "stages": [
          {
            "type": "selector",
            "opts": ["p.oc span.strong"]
          },
          {
            "type": "trim"
          }
        ]
      },
      {
        "name": "registration.status",
        "stages": [
          {
            "type": "selector",
            "opts": ["p.status span.strong"]
          },
          {
            "type": "trim"
          }
        ]
      },
      {
        "name": "inspection.status",
        "stages": [
          {
            "type": "selector",
            "opts": ["p.tech span.strong"]
          },
          {
            "type": "trim"
          }
        ]
      },
      {
        "name": "mileage.value",
        "stages": [
          {
            "type": "selector",
            "opts": ["#mileageeeee"]
          },
          {
            "type": "trim"
          }
        ]
      },
      {
        "name": "mileage.type",
        "stages": [
          {
            "type": "selector",
            "opts": ["#mileagetype"]
          },
          {
            "type": "trim"
          }
        ]
      },
      {
        "name": "status.stolen",
        "stages": [
          {
            "type": "selector",
            "opts": [".stolen"]
          }
        ]
      },
      {
        "name": "events",
        "stages": [
          {
            "type": "group",
            "opts": [
              {
                "context": "table#events tbody",
                "elements": "tr.event",
                "fields": [
                  {
                    "name": "date",
                    "stages": [
                      {
                        "type": "selector",
                        "opts": [".date p"]
                      }
                    ]
                  },
                  {
                    "name": "type",
                    "stages": [
                      {
                        "type": "selector",
                        "opts": [".type"]
                      }
                    ]
                  },
                  {
                    "name": "description",
                    "stages": [
                      {
                        "type": "selector",
                        "opts": [".description p"]
                      },
                      {
                        "type": "trim"
                      }
                    ]
                  },
                  {
                    "name": "owner",
                    "stages": [
                      {
                        "type": "selector",
                        "opts": [".owner"]
                      }
                    ]
                  },
                  {
                    "name": "location",
                    "stages": [
                      {
                        "type": "selector",
                        "opts": [".location"]
                      }
                    ]
                  },
                  {
                    "name": "note",
                    "stages": [
                      {
                        "type": "selector",
                        "opts": [".note"]
                      }
                    ]
                  },
                  {
                    "name": "mileage",
                    "stages": [
                      {
                        "type": "selector",
                        "opts": [".mileage"]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  "resolver": {
    "variant": {
      "types": [
        {
          "name": "CAR",
          "values": [
            "car"
          ]
        },
        {
          "name": "VAN",
          "values": [
            "van"
          ]
        }
      ],
      "kinds": [
        {
          "name": "HATCHBACK",
          "values": [
            "hatchback"
          ]
        },
        {
          "name": "LIMOUSINE",
          "values": [
            "limousine"
          ]
        },
        {
          "name": "SEDAN",
          "values": [
            "sedan"
          ]
        },
        {
          "name": "COUPE",
          "values": [
            "coupe"
          ]
        },
        {
          "name": "OTHER",
          "values": [
            "other"
          ]
        }
      ],
      "engineFuels": [
        {
          "name": "PETROL",
          "values": [
            "petrol"
          ]
        },
        {
          "name": "CNG",
          "values": [
            "cng"
          ]
        },
        {
          "name": "LPG",
          "values": [
            "lpg"
          ]
        },
        {
          "name": "DIESEL",
          "values": [
            "diesel"
          ]
        },
        {
          "name": "OTHER",
          "values": [
            "other"
          ]
        }
      ],
      "policyStatus": [
        {
          "name": "UPTODATE",
          "values": [
            "actual"
          ]
        },
        {
          "name": "OUTDATED",
          "values": [
            "not actual"
          ]
        }
      ],
      "registrationStatus": [
        {
          "name": "REGISTERED",
          "values": [
            "registered"
          ]
        },
        {
          "name": "OUTDATED",
          "values": [
            "not registered"
          ]
        }
      ],
      "inspectionStatus": [
        {
          "name": "UPTODATE",
          "values": [
            "actual"
          ]
        },
        {
          "name": "OUTDATED",
          "values": [
            "not actual"
          ]
        }
      ],
      "mileageStatus": [
        {
          "name": "KM",
          "values": [
            "km"
          ]
        },
        {
          "name": "MILE",
          "values": [
            "mile"
          ]
        }
      ],
      "countries": [
        {
          "name": "PL",
          "values": [
            "PL"
          ]
        },
        {
          "name": "UK",
          "values": [
            "UK"
          ]
        }
      ],
      "makes": [
        {
          "name": "AUDI",
          "values": [
            "AUDI"
          ]
        }
      ],
      "owners": [
        {
          "name": "PRIVATE",
          "values": [
            "private"
          ]
        }
      ],
      "events": [
        {
          "name": "CHANGE_OWNER",
          "values": [
            "first-owner"
          ]
        },
        {
          "name": "REGISTRATION",
          "values": [
            "first-registration"
          ]
        },
        {
          "name": "ABROAD_REGISTRATION",
          "values": [
            "abroad-registration"
          ]
        },
        {
          "name": "DEREGISTRATION",
          "values": [
            "deregistration"
          ]
        },
        {
          "name": "INSPECTION",
          "values": [
            "inspection"
          ]
        },
        {
          "name": "CO_OWNER",
          "values": [
            "co-owner"
          ]
        },
        {
          "name": "HOLDER",
          "values": [
            "holder"
          ]
        },
        {
          "name": "CHANGED_REGISTRATION_LOCATION",
          "values": [
            "changed-registration-location"
          ]
        },
        {
          "name": "STOLEN",
          "values": [
            "stolen"
          ]
        }
      ]
    }
  },
  "example": {
    "timeout": 5000,
    "plate": "BBC12345",
    "vin": "ABC123456789DEF",
    "url": "https://vehiclehost/vehicle-history.xhtml"
  },
  "form": {
    "url": "https://vehiclehost",
    "prefix": "vehiclehistory",
    "notFoundMessage": "vehicle not found",
    "postUrlHost": "vehiclehost",
    "postUrlRegex": "/action=\"(https\\:\/\/vehiclehost\/strona\\-glowna.+?)\" class/g",
    "timeout": 5000,
    "headers": {
      "Content-Type": "application/xhtml+xml",
      "User-Agent": "Mozilla/5.0",
      "Origin": "https://vehiclehost",
      "Referer": "https://vehiclehost"
    },
    "fields": [
      {
        "fieldName": "vehiclehistory:buttonCheck",
        "fieldRegex": null,
        "fieldDefaultValue": "Check",
        "searchCarRequestField": null
      },
      {
        "fieldName": "vehiclehistory:form",
        "fieldRegex": null,
        "fieldDefaultValue": "vehiclehistory:form",
        "searchCarRequestField": null
      },
      {
        "fieldName": "javax.faces.encodedURL",
        "fieldRegex": "/name=\"javax.faces.encodedURL\" value=\"(.+?)\"/g",
        "fieldDefaultValue": null,
        "searchCarRequestField": null
      },
      {
        "fieldName": "javax.faces.ViewState",
        "fieldRegex": "/id=\"javax.faces.ViewState\" value=\"(.+?)\"/g",
        "fieldDefaultValue": null,
        "searchCarRequestField": null
      },
      {
        "fieldName": "vehiclehistory:plate",
        "fieldRegex": null,
        "fieldDefaultValue": null,
        "searchCarRequestField": "plate"
      },
      {
        "fieldName": "vehiclehistory:vin",
        "fieldRegex": null,
        "fieldDefaultValue": null,
        "searchCarRequestField": "vin"
      },
      {
        "fieldName": "vehiclehistory:date",
        "fieldRegex": null,
        "fieldDefaultValue": null,
        "searchCarRequestField": "firstRegistrationDate"
      }
    ]
  }
}