diff --git a/.gitignore b/.gitignore
index 770d014..7ac4476 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,4 +5,6 @@ examples
 .vscode
 **/node_modules/**
 **/target/**
-**/dist/**
\ No newline at end of file
+**/dist/**
+**/build/**
+**/license_sh.egg-info/**
\ No newline at end of file
diff --git a/license_sh/helpers.py b/license_sh/helpers.py
index 56b2849..7358ff7 100644
--- a/license_sh/helpers.py
+++ b/license_sh/helpers.py
@@ -43,7 +43,11 @@ def get_npm_license_from_licenses_array(licenses_array):
 
     license_name = UNKNOWN
     for license_item in licenses_array:
-        license_item_type = license_item.get("type", UNKNOWN)
+        license_item_type = (
+            license_item.get("type", UNKNOWN)
+            if type(license_item) is dict
+            else f"{license_item}"
+        )
         if license_name != UNKNOWN:
             license_name = f"{license_name} AND {license_item_type}"
         else:
diff --git a/license_sh/runners/runners_shared.py b/license_sh/runners/runners_shared.py
index 8f013df..bcea6e3 100644
--- a/license_sh/runners/runners_shared.py
+++ b/license_sh/runners/runners_shared.py
@@ -30,9 +30,10 @@ def fetch_npm_licenses(all_dependencies):
                 try:
                     output, version = await result
                     page = json.loads(output)
-                    license_map[f"{page['name']}@{version}"] = extract_npm_license(
-                        page, version
-                    )
+                    if ("name") in page:
+                        license_map[f"{page['name']}@{version}"] = extract_npm_license(
+                            page, version
+                        )
 
                 except json.JSONDecodeError:
                     pass
diff --git a/license_sh/version.py b/license_sh/version.py
index f871089..13361d1 100644
--- a/license_sh/version.py
+++ b/license_sh/version.py
@@ -1,1 +1,1 @@
-__version__ = "1.0.15"
+__version__ = "1.0.16"

Npm run fail
https://gitlab.com/license_test_group/satnogs-db
```
Traceback (most recent call last):
  File "/usr/local/bin/license-sh", line 2, in <module>
    from license_sh import __main__
  File "/usr/local/lib/python3.8/site-packages/license_sh/__main__.py", line 24, in <module>
    run_license_sh(arguments)
  File "/usr/local/lib/python3.8/site-packages/license_sh/commands/run_license_sh.py", line 58, in run_license_sh
    dep_tree, license_map = runner.check()
  File "/usr/local/lib/python3.8/site-packages/license_sh/runners/npm/__init__.py", line 142, in check
    license_map = fetch_npm_licenses(flat_dependencies)
  File "/usr/local/lib/python3.8/site-packages/license_sh/runners/runners_shared.py", line 40, in fetch_npm_licenses
    asyncio.run(fetch_concurrent(urls))
  File "/usr/local/lib/python3.8/asyncio/runners.py", line 43, in run
    return loop.run_until_complete(main)
  File "/usr/local/lib/python3.8/asyncio/base_events.py", line 612, in run_until_complete
    return future.result()
  File "/usr/local/lib/python3.8/site-packages/license_sh/runners/runners_shared.py", line 33, in fetch_concurrent
    license_map[f"{page['name']}@{version}"] = extract_npm_license(
KeyError: 'name'
```
diff --git a/tests/runners/test_helpers.py b/tests/runners/test_helpers.py
index 1a0f966..9026a98 100644
--- a/tests/runners/test_helpers.py
+++ b/tests/runners/test_helpers.py
@@ -272,6 +272,16 @@ class NpmRunnerTestCase(unittest.TestCase):
         name = extract_npm_license(data, "Unknown")
         self.assertEqual(name, "MIT")
 
+    def test_extract_npm_licenses_global_single_string(self):
+        data = json.loads(
+            """{
+            "name": "name",
+            "licenses": ["MIT"]
+        }"""
+        )
+        name = extract_npm_license(data, "Unknown")
+        self.assertEqual(name, "MIT")
+
     def test_extract_npm_licenses_global_single(self):
         data = json.loads(
             """{

pip install -e .[dev]
parse_log_pytest
Pipfile
pytest
3.7
Pipfile
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
aiohttp==3.8.6
aiosignal==1.3.1
anytree==2.12.1
async-timeout==4.0.3
asynctest==0.13.0
attrs==24.2.0
boolean.py==4.0
certifi @ file:///croot/certifi_1671487769961/work/certifi
charset-normalizer==3.4.1
docopt==0.6.2
exceptiongroup==1.2.2
frozenlist==1.3.3
idna==3.10
importlib-metadata==6.7.0
iniconfig==2.0.0
license-expression==30.2.0
-e git+https://github.com/webscopeio/license.sh.git@d525d61ae4ad39a0e0da8b3b0e644a5afd0e2bde#egg=license_sh
multidict==6.0.5
packaging==24.0
pipdeptree==2.9.6
pipfile==0.0.2
pluggy==1.2.0
prompt_toolkit==3.0.48
pytest==7.4.4
questionary==1.10.0
six==1.17.0
termcolor==2.3.0
toml @ file:///tmp/build/80754af9/toml_1616166611790/work
tomli==2.0.1
typing_extensions==4.7.1
urllib3==2.0.7
wcwidth==0.2.13
yarl==1.9.4
yaspin==2.4.0
zipp==3.15.0

name: license.sh
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - pipfile=0.0.2=py_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - toml=0.10.2=pyhd3eb1b0_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - aiohttp==3.8.6
      - aiosignal==1.3.1
      - anytree==2.12.1
      - async-timeout==4.0.3
      - asynctest==0.13.0
      - attrs==24.2.0
      - boolean-py==4.0
      - charset-normalizer==3.4.1
      - docopt==0.6.2
      - exceptiongroup==1.2.2
      - frozenlist==1.3.3
      - idna==3.10
      - importlib-metadata==6.7.0
      - iniconfig==2.0.0
      - license-expression==30.2.0
      - multidict==6.0.5
      - packaging==24.0
      - pipdeptree==2.9.6
      - pluggy==1.2.0
      - prompt-toolkit==3.0.48
      - pytest==7.4.4
      - questionary==1.10.0
      - six==1.17.0
      - termcolor==2.3.0
      - tomli==2.0.1
      - typing-extensions==4.7.1
      - urllib3==2.0.7
      - wcwidth==0.2.13
      - yarl==1.9.4
      - yaspin==2.4.0
      - zipp==3.15.0
prefix: /opt/conda/envs/license.sh

tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_licenses_global_single_string
tests/runners/test_helpers.py::NpmRunnerTestCase::test_annotate_dependency_tree tests/runners/test_helpers.py::NpmRunnerTestCase::test_bad_licenses_identified tests/runners/test_helpers.py::NpmRunnerTestCase::test_bad_licenses_identified__one_package_ignored_by_package_whitelist tests/runners/test_helpers.py::NpmRunnerTestCase::test_bad_licenses_identified_are_ignored_by_package_whitelist tests/runners/test_helpers.py::NpmRunnerTestCase::test_dependency_tree_is_flattened tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_license_None_data tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_license_None_version tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_license_from_versions tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_license_global_priority tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_license_no_version tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_license_no_version_license tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_license_no_versions tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_license_simple tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_licenses_global_empty tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_licenses_global_multiple tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_licenses_global_single tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_licenses_specific_version_multiple tests/runners/test_helpers.py::NpmRunnerTestCase::test_extract_npm_licenses_specific_version_simple tests/runners/test_helpers.py::NpmRunnerTestCase::test_get_npm_license_from_licenses_array_None tests/runners/test_helpers.py::NpmRunnerTestCase::test_get_npm_license_from_licenses_empty tests/runners/test_helpers.py::NpmRunnerTestCase::test_is_license_ok_brackets tests/runners/test_helpers.py::NpmRunnerTestCase::test_is_license_ok_json tests/runners/test_helpers.py::NpmRunnerTestCase::test_is_license_ok_negative tests/runners/test_helpers.py::NpmRunnerTestCase::test_is_license_ok_simple
license_sh/version.py .gitignore license_sh/runners/runners_shared.py license_sh/helpers.py
license_sh/version.py .gitignore license_sh/runners/runners_shared.py license_sh/helpers.py