For all extensions that are supported,
        lists all types that can be parsed from this extension.
        For each type, provide the list of parsers supported. The order is "most pertinent first"

        This method is for monitoring and debug, so we prefer to not rely on the cache, but rather on the query engine.
        That will ensure consistency of the results.

        :param strict_type_matching:
        :return:

def get_capabilities_by_ext(self, strict_type_matching: bool = False) -> Dict[str, Dict[Type, Dict[str, Parser]]]:
        """
        For all extensions that are supported,
        lists all types that can be parsed from this extension.
        For each type, provide the list of parsers supported. The order is "most pertinent first"

        This method is for monitoring and debug, so we prefer to not rely on the cache, but rather on the query engine.
        That will ensure consistency of the results.

        :param strict_type_matching:
        :return:
        """
        check_var(strict_type_matching, var_types=bool, var_name='strict_matching')
        res = dict()

        # For all extensions that are supported,
        for ext in self.get_all_supported_exts_for_type(type_to_match=JOKER, strict=strict_type_matching):
            res[ext] = self.get_capabilities_for_ext(ext, strict_type_matching)

        return res