{
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.067446,
        "rte": "az",
        "prob": 0.067446
      },
      {
        "cls": 0,
        "raw": 0.39512005,
        "rte": "az/npm",
        "prob": 0.39512005
      }
    ],
    "prob": 0.067446,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.06744600087404251,
        "type": "npm"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000021845102310180664,
        "type": "package.json"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000010897715583269019,
        "type": "markdown"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001424551010131836,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-06T11:37:03Z"
  },
  "path": "flusteredduck-0.7.18.tgz",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "abZy80000000zQ?ok\u0026MA5ycYUv=fzR0AqIkBch@b:*1Vjg9\u003cA-PEpvP8RF}rqyeqMJIuD3k$TY*QD/urP]mb-hP+^S}3(37\u0026V?:*ldpnr4[=u8a1T2DOGn(9}fFTw}$mQ=VOR9hpenHY[BUi(25!-y",
            "ln": 0
          }
        ],
        "mol": "O(S₂)Md(Pa₃)",
        "sha": "bf65a47726d51e9d938c79e52d897a3ed454a701ea9e4c47de8f72fcb2f5cbb3",
        "path": "flusteredduck-0.7.18.tgz",
        "risk": 4,
        "size": 1304,
        "type": "npm",
        "facts": {
          "metrics": {
            "file": {
              "size": 1304,
              "entropy": 7.83
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 7.8
            }
          }
        },
        "ident": {
          "name": {
            "value": "flusteredduck",
            "source": "npm.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://flusterduck.com",
              "kind": "homepage",
              "source": "npm.homepage"
            }
          ],
          "trust": "unsigned",
          "version": {
            "value": "0.7.18",
            "source": "npm.version",
            "verified": false
          },
          "identifier": {
            "value": "flusteredduck",
            "source": "npm.name",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/package/files/package-json::files-array-present",
            "conf": 0.92,
            "crit": 3,
            "desc": "Package.json declares a files allowlist"
          },
          {
            "id": "metadata/package/manifest/publishing::has-publish-config",
            "conf": 0.85,
            "crit": 3,
            "desc": "npm manifest declares publishConfig"
          },
          {
            "id": "metadata/package/manifest/description::desc-prevent-squat-2",
            "conf": 0.75,
            "crit": 3,
            "desc": "Description claims to prevent squatting"
          },
          {
            "id": "metadata/package/scripts/build::pkg-build-script-field",
            "conf": 0.6,
            "crit": 3,
            "desc": "Package declares a build script"
          },
          {
            "id": "objectives/supply-chain/impersonation/manifest/attack-label::desc-prevent-squat",
            "conf": 0.75,
            "crit": 3,
            "desc": "Description claims to prevent squatting",
            "from": [
              {
                "file": 1
              }
            ],
            "uses": [
              2
            ]
          },
          {
            "id": "metadata/package/files/package-json::files-readme-md-only",
            "conf": 0.9,
            "crit": 3,
            "desc": "Package files array lists only README.md",
            "from": [
              {
                "file": 1
              }
            ]
          },
          {
            "id": "supply-chain/missing-author",
            "conf": 0.5,
            "crit": 3,
            "desc": "Package has empty or missing author field"
          },
          {
            "id": "metadata/package/manifest/publishing::npm-public-publish-access",
            "conf": 0.9,
            "crit": 3,
            "desc": "npm package is configured for public publishing"
          },
          {
            "id": "objectives/supply-chain/impersonation/readme-clone::readme-npm-links-name-only-foreign-packages",
            "atk": "T1036",
            "conf": 0.9,
            "crit": 3,
            "desc": "README npm links name only different packages"
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "DKp(rb5Q?awG\u003ceTb4+UlB97#lwN]s]v@0nt3lQDnC4CYnx(v(kiV]R2e\u0026Lyqi3G)XarR\u003eswPIv4x(Ffdz/c:War\u003cY{B7GxnwN({9D2NWAAa9l(vp%c]w]zYjmR)i*By/G6BZ]htaw3D(Byx04aARpdazbCjB97#lwozx$aAg+0yHH\u003c!azC.mBy!(\u003ee*q?NarR\u003eEA+PY9By=TSazb4#B7D)farR\u003eux(4v4b03\u0026J3lQDlar\u003cYLk$1Boe]tby3lQD%ed9Hxb5y$6wO#N2b03?\u003crzDjVlQ::GmmnsJ3lQDnAckSax(^@Pz/ff3xcGwVDKp(rarR\u003epv}f7\u003eB0rT/b5?Wly?Wx63lQEted9Hxb4$[iwPh6\u003cwG\u003ceTb4#7uAc15[fj]3yB97#lwozx$e[n*pa$K6zar\u003e(pA+PGmB0rT/DKp(rarR\u003eqB.LV5b03?\u003cwN/y(asz5BayYFcy?aVewPq\u003cbA+e=ea{]CnEf$x",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 383,
              "entropy": 4.77
            },
            "binary": {
              "peak_region_bytes": 383,
              "peak_region_entropy": 4.77
            }
          }
        },
        "id": 1,
        "mol": "O(S)Md(Pa₃)",
        "path": "flusteredduck-0.7.18.tgz!!package/package.json",
        "pid": 0,
        "risk": 4,
        "sha": "15484805abe141d11248c8c8eccdb9e5a8dcc2f632999d7e3f91a09c36e50778",
        "size": 383,
        "traits": [
          {
            "id": "supply-chain/missing-author",
            "conf": 0.5,
            "crit": 3,
            "desc": "Package has empty or missing author field",
            "spans": [
              [
                0,
                21
              ]
            ]
          },
          {
            "id": "metadata/package/files/package-json::files-array-present",
            "conf": 0.92,
            "crit": 3,
            "desc": "Package.json declares a files allowlist",
            "spans": [
              [
                174,
                11
              ]
            ]
          },
          {
            "id": "metadata/package/files/package-json::files-readme-md-only",
            "conf": 0.9,
            "crit": 3,
            "desc": "Package files array lists only README.md",
            "spans": [
              [
                174,
                30
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/description::desc-prevent-squat-2",
            "conf": 0.75,
            "crit": 3,
            "desc": "Description claims to prevent squatting",
            "spans": [
              [
                54,
                79
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/publishing::has-publish-config",
            "conf": 0.85,
            "crit": 3,
            "desc": "npm manifest declares publishConfig",
            "spans": [
              [
                235,
                19
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/publishing::npm-public-publish-access",
            "conf": 0.9,
            "crit": 3,
            "desc": "npm package is configured for public publishing",
            "spans": [
              [
                258,
                6
              ]
            ]
          },
          {
            "id": "metadata/package/scripts/build::pkg-build-script-field",
            "conf": 0.6,
            "crit": 3,
            "desc": "Package declares a build script",
            "spans": [
              [
                342,
                24
              ]
            ]
          },
          {
            "id": "objectives/supply-chain/impersonation/manifest/attack-label::desc-prevent-squat",
            "conf": 0.75,
            "crit": 3,
            "desc": "Description claims to prevent squatting",
            "uses": [
              3
            ],
            "spans": [
              [
                54,
                79
              ]
            ]
          }
        ],
        "type": "package.json"
      },
      {
        "ctx": [
          {
            "b": "boQPmB-RUoA+e=(BZ]g]3rgXMB0bvezdK\u00267B0bHmB7GxnwN({9zY\u003c1tz//M2BrB4?B-RUoA+6r5yAN+vwPz\u0026mw].*baAR)FzY\u003c1cv@2H=wPGEDnPV7=z!i$%zF%Rtv@DmbvqfQ4vqWh^l}Yct3q2bRByx04aARpdaA7\u003e7x\u003e7\u003c=y-(}\u0026w]8QhBy/G6BZ]h{t{%xdBz#pZfe4J[Cp)=LzeabAv@DiqAa9l(vp%d8w]8QhBy/G6BZ]ho3ufA-yHH\u003c!azC.mBy!(\u003eiTMj4u%)CLB7+[#Abu.izGx]dy?$kay\u0026%/vwPzs7v}#AVu%\u003crGl#MNTzdNQbvruj4zAn[Aw]8QhBy/G6BZ]htv@Diqwn+$0t{%xdBz#pZfe3{NB-RUoA+6r5yC6anz7/Brv@\u003c7a",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 320,
              "entropy": 4.76
            },
            "text": {
              "lines": 13,
              "top_char": 116,
              "space_count": 23,
              "char_entropy": 4.76,
              "unique_chars": 40,
              "top_char_null": 0,
              "top_char_ratio": 0.08,
              "avg_line_length": 23.62,
              "max_line_length": 79,
              "empty_line_ratio": 0.31,
              "last_line_length": 67,
              "whitespace_ratio": 0.11,
              "line_length_stddev": 29.08,
              "max_whitespace_run": 1
            },
            "binary": {
              "peak_region_bytes": 320,
              "peak_region_entropy": 4.76
            }
          }
        },
        "id": 2,
        "mol": "Md",
        "path": "flusteredduck-0.7.18.tgz!!package/README.md",
        "pid": 0,
        "risk": 1,
        "sha": "dc9ac88dc0afa3b913634d011db6c60a0282e6aad2b34a4514ae065d72c4a768",
        "size": 320,
        "traits": [
          {
            "id": "metadata/file/naming::uppercase-readme-md-basename",
            "conf": 1.0,
            "crit": 3,
            "desc": "Basename is uppercase README.md"
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                125,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                17,
                0
              ]
            ]
          }
        ],
        "type": "markdown"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeDXz6yIPzEEx[b03]Wy\u0026%/vwPzu)wozx$a$K{YwPz\u003caz/c:Wa$$Sde?]sfefY4QvR/+1xK$ZYvrrXOf/I6Khz^9Ch-Jujvp%dUwmo+8b04zeb5yXfwPI%2C4CYnx(v(kiWcmgh.D*Aa$K{DB-.qnAW0K*w]8QhBy/G6BZ]ida$K{W",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 882,
              "entropy": 4.84
            },
            "binary": {
              "peak_region_bytes": 882,
              "peak_region_entropy": 4.84
            },
            "registry": {
              "age_days": 0,
              "file_count": 3,
              "maintainers": 1,
              "published_at": 1788640678,
              "releases_24h": 1,
              "releases_48h": 1,
              "is_deprecated": 0,
              "release_count": 10,
              "security_hold": 0,
              "unpacked_size": 2096,
              "version_removed": 0,
              "downloads_recent": 898,
              "package_age_days": 92,
              "first_published_at": 1780685979,
              "has_install_script": 0,
              "previous_published_at": 1787963649,
              "publisher_in_maintainers": 1,
              "days_since_previous_release": 7
            }
          }
        },
        "id": 4,
        "mol": "Md(Re)",
        "path": "flusteredduck@0.7.18.registry.json",
        "pid": 0,
        "rel": "registry",
        "risk": 1,
        "role": "sidecar",
        "sha": "36ecfa9690a3002e4c41047a0ba1b4431d0efd253e821c0a92d16803b4db9560",
        "size": 882,
        "traits": [
          {
            "id": "metadata/registry::freshly-published",
            "conf": 1.0,
            "crit": 3,
            "desc": "Release published within seven days",
            "spans": [
              [
                0,
                24
              ]
            ]
          }
        ],
        "type": "registry"
      }
    ],
    "rev": "479f3",
    "v": "8"
  }
}