Components
To get the field definitions of any entity type use the following code. We first get all bundles, and then for each bundle we are getting the field definitions.
$bundles = \Drupal::service('entity_type.bundle.info')->getBundleInfo('node');
foreach ($bundles as $bundle => $data) {
$fields = \Drupal::service('entity_field.manager')->getFieldDefinitions('node', $bundle);
}