diff --git a/swh/indexer/metadata_dictionary/base.py b/swh/indexer/metadata_dictionary/base.py
--- a/swh/indexer/metadata_dictionary/base.py
+++ b/swh/indexer/metadata_dictionary/base.py
@@ -153,8 +153,8 @@
             return translated_metadata
 
 
-class JsonMapping(DictMapping, SingleFileMapping):
-    """Base class for all mappings that use a JSON file as input."""
+class JsonMapping(DictMapping):
+    """Base class for all mappings that use JSON data as input."""
 
     def translate(self, raw_content: bytes) -> Optional[Dict]:
         """
diff --git a/swh/indexer/metadata_dictionary/npm.py b/swh/indexer/metadata_dictionary/npm.py
--- a/swh/indexer/metadata_dictionary/npm.py
+++ b/swh/indexer/metadata_dictionary/npm.py
@@ -7,10 +7,10 @@
 
 from swh.indexer.codemeta import CROSSWALK_TABLE, SCHEMA_URI
 
-from .base import JsonMapping
+from .base import JsonMapping, SingleFileMapping
 
 
-class NpmMapping(JsonMapping):
+class NpmMapping(JsonMapping, SingleFileMapping):
     """
     dedicated class for NPM (package.json) mapping and translation
     """