{
  "llm": {
    "conf": 0.29807717,
    "grade": "benign",
    "model": "Qwen/Qwen3.8-27B",
    "before": {
      "lvl": -1,
      "prob": 0.4448913,
      "class": "benign"
    },
    "outcome": "benign",
    "interpretation": "Legitimate inversifyjs validation package"
  },
  "ml": {
    "v": "7",
    "eng": "2.8.0",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.4448913,
        "rte": "az",
        "prob": 0.4448913
      },
      {
        "cls": 0,
        "raw": 0.08901525,
        "rte": "az/npm",
        "prob": 0.08901525
      }
    ],
    "prob": 0.4448913,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.4448913037776947,
        "type": "npm"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000012288491234357934,
        "type": "javascript"
      },
      {
        "id": 9,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000018010536223300733,
        "type": "package.json"
      },
      {
        "id": 20,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013401110663835425,
        "type": "registry"
      },
      {
        "id": 21,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013401110663835425,
        "type": "registry"
      },
      {
        "id": 22,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001430511474609375,
        "type": "registry"
      },
      {
        "id": 23,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000017215808838955127,
        "type": "npm"
      },
      {
        "id": 27,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015507141142734326,
        "type": "package.json"
      },
      {
        "id": 33,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001430511474609375,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-06T19:09:44Z"
  },
  "path": "@inversifyjs-ajv-validation-3.6.2.tgz",
  "raw": {
    "fetched": [
      {
        "kind": "dependency",
        "cached": true,
        "locator": "pkg:npm/%40inversifyjs/common@2.0.1",
        "outcome": "skipped",
        "fetched_at": 1788721783,
        "source_offset": 199,
        "source_sha256": "32fbfe7c0bd6b36b9734ef43d9ce595fdd8d641b629d3e85e2278d818ca31dfe",
        "content_sha256": "f7f063ba31cdfddad4d40d1aa1b42c9dfb91a24ddff7a42e059366cb7dd4e823"
      },
      {
        "kind": "dependency",
        "size": 5650,
        "cached": false,
        "status": 200,
        "headers": [
          [
            "date",
            "Sun, 06 Sep 2026 19:09:43 GMT"
          ],
          [
            "content-type",
            "application/octet-stream"
          ],
          [
            "content-length",
            "5650"
          ],
          [
            "connection",
            "keep-alive"
          ],
          [
            "set-cookie",
            "__cf_bm=8J2eyNgpOAu_IbwC8FxP5VbFuqPg7ZFCiRL850gHjnQ-1788721783.6723914-1.0.1.1-JcdV2k4yv1.PfooH3DfcuwqkDwTGx5sB.zDnPzow7XIJEIPFzELNjd70ImccU53KurtgO4g09n0TEfgCwntuwVIOU9sQ03HwrgzRV_AmoIa_awm.sNeG7Zo9.04JyIxM; HttpOnly; SameSite=None; Secure; Path=/; Domain=npmjs.org; Expires=Sun, 06 Sep 2026 19:39:43 GMT"
          ],
          [
            "set-cookie",
            "_cfuvid=UFb2Q9mhC2TE9wuLo0Nn6AleGfBA9DS0L0EJXwVLu5A-1788721783.6723914-1.0.1.1-.5u0zh6Qj.OhHFThJWvV8YgQ.ai62V3POX8p7n5yzBw; HttpOnly; SameSite=None; Secure; Path=/; Domain=npmjs.org"
          ],
          [
            "cf-ray",
            "a36fc50bfcafe87f-IAD"
          ],
          [
            "cf-cache-status",
            "HIT"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "access-control-allow-origin",
            "*"
          ],
          [
            "age",
            "1992453"
          ],
          [
            "cache-control",
            "public, must-revalidate, max-age=31557600"
          ],
          [
            "etag",
            "\"345199abaa81a58f61f50ed0ccb64553\""
          ],
          [
            "last-modified",
            "Sat, 14 Mar 2026 18:13:51 GMT"
          ],
          [
            "server",
            "cloudflare"
          ]
        ],
        "locator": "pkg:npm/%40inversifyjs/reflect-metadata-utils@1.5.0",
        "outcome": "ok",
        "final_url": "https://registry.npmjs.org/@inversifyjs/reflect-metadata-utils/-/reflect-metadata-utils-1.5.0.tgz",
        "fetched_at": 1788721783,
        "resolved_url": "https://registry.npmjs.org/@inversifyjs/reflect-metadata-utils/-/reflect-metadata-utils-1.5.0.tgz",
        "source_offset": 235,
        "source_sha256": "32fbfe7c0bd6b36b9734ef43d9ce595fdd8d641b629d3e85e2278d818ca31dfe",
        "content_sha256": "587726c7ff8837b66d115b28df3df2efc6cbefd82934bbc03e630d4807a74809"
      },
      {
        "kind": "dependency",
        "size": 3144,
        "cached": false,
        "status": 200,
        "headers": [
          [
            "date",
            "Sun, 06 Sep 2026 19:09:43 GMT"
          ],
          [
            "content-type",
            "application/octet-stream"
          ],
          [
            "content-length",
            "3144"
          ],
          [
            "connection",
            "keep-alive"
          ],
          [
            "set-cookie",
            "__cf_bm=vIGi7Zww.VkKUD8WLIOefLXRg14knmzD4P5AosxulHk-1788721783.6726153-1.0.1.1-AT2DWCKQf_0zni2PQqqyXnu07wQmvkN.zLsEQ.TCAAMqnP4Q4Loa0xWCxBj7yVWDg55_NYWi1iRMfXmi8OlXgTJ1N5FeqpsI0jam3Mj_YtyJYgLUYlRYCcGDFaw619S8; HttpOnly; SameSite=None; Secure; Path=/; Domain=npmjs.org; Expires=Sun, 06 Sep 2026 19:39:43 GMT"
          ],
          [
            "set-cookie",
            "_cfuvid=bnhqXpxohU1NVAy4bU9Wc_hETr5REf4fqtkfylg96PQ-1788721783.6726153-1.0.1.1-KJlIwiub_gSbWG3udZ18vB51pr2wwXKACqCTD2qBX4c; HttpOnly; SameSite=None; Secure; Path=/; Domain=npmjs.org"
          ],
          [
            "cf-ray",
            "a36fc50bf97528c8-IAD"
          ],
          [
            "cf-cache-status",
            "HIT"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "access-control-allow-origin",
            "*"
          ],
          [
            "age",
            "27742"
          ],
          [
            "cache-control",
            "public, must-revalidate, max-age=31557600"
          ],
          [
            "etag",
            "\"5df4468bcc2f0b0c24d41c40e64cc22a\""
          ],
          [
            "last-modified",
            "Sun, 06 Sep 2026 11:27:21 GMT"
          ],
          [
            "server",
            "cloudflare"
          ]
        ],
        "locator": "pkg:npm/%40inversifyjs/validation-common@3.6.2",
        "outcome": "ok",
        "final_url": "https://registry.npmjs.org/@inversifyjs/validation-common/-/validation-common-3.6.2.tgz",
        "fetched_at": 1788721783,
        "resolved_url": "https://registry.npmjs.org/@inversifyjs/validation-common/-/validation-common-3.6.2.tgz",
        "source_offset": 287,
        "source_sha256": "32fbfe7c0bd6b36b9734ef43d9ce595fdd8d641b629d3e85e2278d818ca31dfe",
        "content_sha256": "51e332921a96a7bc858a122095e3e45a4c2b8278a39cec1ed5f3961a5c649198"
      }
    ],
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "abZy80000000zQK(W4o{W!\u00260VP\u003c^U+cF{=!B4W)GV%av{vvxCN:AmgqBK8}P08Y%-Zl3Y\u003cEx8(A\u003eF+Z]}66k^3)Yytq)dn{V6Q=Lc9s1^KTiVJkb{$HN=7/vG!qwI\u0026clPrqWVx.@\u0026n8@Y6r+NXwx0]:iD]TF]XASSmp[zZG-zi%1vB)L%XxJ!/ef(ybB6\u003cp{c4VAS#xoYJ]VHF-\u003cLy@G3JA(XY]Of9lxkNyiF!1mfpC\u003c}G(.D\u0026Tu7OpRNS.P02q4J-\u003cmpdWmtq}2#ht.\u0026-].):DFd7j0D.t",
            "ln": 0
          }
        ],
        "mol": "O(S₂)Md(Pa₃)",
        "sha": "49cb05486bf3bd983812b68c422aec8ba6687893b1b59a4e10b46cb303fdee02",
        "path": "@inversifyjs-ajv-validation-3.6.2.tgz",
        "refs": [
          {
            "to": "pkg:github/inversify/monorepo",
            "off": 0,
            "kind": "repository"
          }
        ],
        "risk": 40,
        "size": 6002,
        "type": "npm",
        "facts": {
          "metrics": {
            "file": {
              "size": 6002,
              "entropy": 7.94
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 6002,
              "peak_region_entropy": 7.8
            },
            "consistency": {
              "self_dependency": 0,
              "name_repo_mismatch": 1,
              "unused_runtime_deps": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "@inversifyjs/ajv-validation",
            "source": "npm.name",
            "verified": false
          },
          "urls": [
            {
              "url": "git+https://github.com/inversify/monorepo.git",
              "kind": "repository",
              "source": "npm.repository.url"
            },
            {
              "url": "https://inversify.io",
              "kind": "homepage",
              "source": "npm.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Roberto Pintos López",
              "role": "author",
              "source": "npm.author"
            }
          ],
          "version": {
            "value": "3.6.2",
            "source": "npm.version",
            "verified": false
          },
          "identifier": {
            "value": "@inversifyjs/ajv-validation",
            "source": "npm.name",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/package/manifest/publishing::npm-public-publish-access",
            "conf": 0.9,
            "crit": 3,
            "desc": "npm package is configured for public publishing"
          },
          {
            "id": "metadata/package/dependencies/manifest::npm-many-dev-dependencies",
            "conf": 0.7,
            "crit": 1,
            "desc": "npm manifest has many devDependencies"
          },
          {
            "id": "metadata/package/manifest/repository::repo-url-git-host",
            "conf": 0.9,
            "crit": 3,
            "desc": "Repository identifies major Git host"
          },
          {
            "id": "metadata/package/quality/profile::has-typescript",
            "conf": 0.9,
            "crit": 3,
            "desc": "Package declares TypeScript tooling",
            "from": [
              {
                "file": 9
              }
            ]
          },
          {
            "id": "metadata/file/extension/identity::declaration-file-extension",
            "conf": 1.0,
            "crit": 1,
            "desc": "File uses a source declaration extension",
            "from": [
              {
                "file": 11
              }
            ]
          },
          {
            "id": "metadata/package/scripts/develop::pkg-format-script-field",
            "conf": 0.6,
            "crit": 3,
            "desc": "\"format\": script in package.json"
          },
          {
            "id": "metadata/package/manifest/repository::has-repository-field",
            "conf": 0.9,
            "crit": 2,
            "desc": "package.json declares repository metadata"
          },
          {
            "id": "metadata/package/manifest/repository::has-repository-url",
            "conf": 0.85,
            "crit": 2,
            "desc": "package.json declares a repository URL"
          },
          {
            "id": "metadata/package/scripts/develop::has-test-script",
            "conf": 1.0,
            "crit": 1,
            "desc": "package.json declares a test script"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-or-declaration-file",
            "conf": 0.85,
            "crit": 1,
            "desc": "File is a test or type-declaration source file",
            "from": [
              {
                "file": 11
              },
              {
                "file": 12
              },
              {
                "file": 13
              },
              {
                "file": 14
              },
              {
                "file": 15
              },
              {
                "file": 16
              },
              {
                "file": 17
              },
              {
                "file": 18
              }
            ],
            "uses": [
              4
            ]
          },
          {
            "id": "metadata/lang/scripted::dts-declaration-file",
            "conf": 0.99,
            "crit": 2,
            "desc": "TypeScript declaration file",
            "from": [
              {
                "file": 11
              }
            ]
          },
          {
            "id": "metadata/package/scripts/build::pkg-build-script-field",
            "conf": 0.6,
            "crit": 3,
            "desc": "Package declares a build script"
          },
          {
            "id": "metadata/package/documentation::readme-heading-name-differs",
            "conf": 0.93,
            "crit": 2,
            "desc": "README heading differs from package name"
          },
          {
            "id": "metadata/package/manifest/repository::npm-name-repo-mismatch",
            "conf": 0.8,
            "crit": 3,
            "desc": "Package name disagrees with its repository",
            "spans": [
              [
                0,
                37
              ]
            ]
          },
          {
            "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"
          },
          {
            "id": "objectives/supply-chain/impersonation/clone-and-rename::readme-clone-foreign-npm-links",
            "atk": "T1195.002",
            "conf": 0.9,
            "crit": 4,
            "desc": "Repository mismatch with foreign-only README links",
            "uses": [
              12,
              13,
              14
            ],
            "spans": [
              [
                0,
                37
              ]
            ]
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "AbP=saBtkivqGT*vru6DyiAJ=xK#3?aBLwAA=k!qcOv5.wN/U0vruBdB1ZN5y?WA*By^:MC2I):wO\u003e\u003cdyi7::3t1E3z/P}xDMU)$C4CYnx\u003ezSRyiAS^y?WA*BzkVhmriA!AV/=Mw].*basw={zeS@@y\u0026.m3zGYPiB7]lil27NzvqGT*vruj4zBFO^z/NEBB0\u003c3RwQ5fjA=-BJavf:=lVl*Xx(4u\u003er://UwmoN]z/ex=AaHeuazbUjz6ghUfk$SAwPGH\u003cyiz%.ze:i9wN[?Iy?WA*BzkVhp?:(We]2CPi%]LzAbP=saBtj%yiAS^y?WA*BzkVhp?:(WaBLwAA=k!qcOv5\u003ex(ET8ff%t@r://UwmoN]z/ex=AaHUpB0\u003c3Rfe1K)B8Mhwv}wwyAbYJexh}\u00266j.X!AwQ2?xB1Rrrz#",
            "ln": 2,
            "col": 3,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "ast": {
              "max_depth": 4,
              "call_count": 0,
              "node_count": 54
            },
            "file": {
              "size": 339,
              "entropy": 4.85
            },
            "text": {
              "lines": 5,
              "top_char": 105,
              "max_ws_run": 1,
              "space_count": 21,
              "char_entropy": 4.85,
              "unique_chars": 42,
              "top_char_null": 0,
              "string_density": 0.8,
              "top_char_ratio": 0.08,
              "avg_line_length": 67,
              "max_line_length": 86,
              "last_line_length": 33,
              "whitespace_ratio": 0.07,
              "identifier_density": 0.8,
              "line_length_stddev": 18.58,
              "normalized_string_count": 1.79,
              "suspicious_comment_ratio": 1,
              "normalized_unique_identifiers": 1.72
            },
            "binary": {
              "peak_region_bytes": 339,
              "peak_region_entropy": 4.85
            },
            "strings": {
              "bytes": 136,
              "count": 4,
              "avg_length": 34,
              "max_length": 39,
              "path_count": 4,
              "avg_entropy": 4.08,
              "entropy_stddev": 0.12
            },
            "comments": {
              "chars": 31,
              "count": 1,
              "lines": 1,
              "base64": 1,
              "to_code_ratio": 0.25
            },
            "identifiers": {
              "count": 4,
              "unique": 4,
              "avg_length": 21.5,
              "max_length": 27,
              "min_length": 17,
              "avg_entropy": 3.8,
              "reuse_ratio": 1,
              "length_stddev": 4.56,
              "high_entropy_count": 4,
              "high_entropy_ratio": 1
            }
          }
        },
        "id": 4,
        "mol": "Md(Pa)",
        "path": "@inversifyjs-ajv-validation-3.6.2.tgz!!package/lib/index.js",
        "pid": 0,
        "refs": [
          {
            "to": "./decorators/ValidateAjvSchema.js",
            "off": 35,
            "file": 9,
            "kind": "local"
          },
          {
            "to": "./models/InversifyAjvValidationError.js",
            "off": 116,
            "file": 6,
            "kind": "local"
          },
          {
            "to": "./pipes/AjvCompiledValidationPipe.js",
            "off": 201,
            "file": 2,
            "kind": "local"
          },
          {
            "to": "./pipes/AjvValidationPipe.js",
            "off": 275,
            "file": 4,
            "kind": "local"
          }
        ],
        "risk": 1,
        "sha": "a204a3d6d741448166dccb714a74c12cb4229e15354bebb79ab04c1124623247",
        "size": 339,
        "traits": [
          {
            "id": "metadata/package/files/runtime::javascript-family-lib-tree-artifact",
            "conf": 0.95,
            "crit": 3,
            "desc": "JavaScript-family source file under lib"
          }
        ],
        "type": "javascript"
      },
      {
        "ctx": [
          {
            "b": "DKp(rb4kRoxM4]niV]RAz^)o#Bz\u0026o#x(n3hB0ae]VV6G4a$K6zar\u003eoqxlbmTaBsCrarR^JB-IpxiV]RWBAzFyiXJd0x([3hvLheez7/QvC4CYnx\u003ezSzzeTrgA+fidfkkGGB.bRr3lQEted9Hxb4Lnav@=p5BzkVhb03?\u003cnP5Y.A=U@bC$Jc2xMOunayP2daA?gfx\u003egT]x(v(iAa9l(vp%c}ed9Hxb4Ln7wO#3\u0026zEWx(B0rT/DKp(rarR\u003c[x(n99A=U@bD1}yNv@Dj3z/c:War\u0026M[fFk77ed9HxarR\u003c[x(n99A=U@bD1}yNA+e\u003c0wN/*lzdN/$wmoN*eP(eHy\u0026Z^Yar\u0026J)h7*Nbed9HxarR\u003c[x(n99A=U@bD1}yNC42i3wmoN]z/ddpz/6ufzx.a:a#p\u0026fe\u00261QTarV7-3lQDnwmY{LwPhi#wmYT*x\u003equfiV@+RarR^Hb0Y\u003cWC4CYnx\u003ezT9B1.9Cy?W^eePtJGxk8lnA+flkx(W=pwQ5rdzGxJgzGv0.ar\u0026G(ga\u003em8ed9HxarR\u003c[x(n99A=U@bD1}yNw].r%wP@6kyB%4mA+cBQar\u0026M[f!Ld7ed9HxarR\u003c[x(n99A=U@bD1}yNxMOuneN@ZtwG\u003ceTa#H#he?!F23lQDlar\u003c6+zGYPiB7]liyi84wBAzENwQ5fmwPI]piV]R7e\u0026Csoa$K6zarR^JkY.3/D23#ieP2SLvruBdfjO{vwG\u003ceTa#7=7fFk46ed9HxarR\u003c[B98CFyH}Jrzfo@eBz(gMBA}?pB7ol8Ac9WwxK$V",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "b03?\u003ci4=%sgA[vSarR^Hb5?NlBAzkdAW0K!a#p\u0026ie\u0026B[83lQDlar\u003e\u0026uze%5%b03?\u003chzcZpgA[vSarR^Hb6n9HwPIv4x(FeriV]R8e?![la$K6zarR^JC4(5fB95P!ar\u0026S{f!Lgna{]CnEjLZFar\u003eucC13pYx(mH6b03\u0026[3lQDlar\u003eYwwmV@Car\u003ebEg+HHpe?!F23lQDlar\u003e=xAbu^War\u003ebDf!LdjfD{\u0026DaBL^FarR\u003ewz/668vp%c}iV]RWBAzFyiXJd2zGYPiB7]lie[]kFed9Hxb5p+nCw?IjB0rT/tm8F}arR\u003eswPhi#wmYT*C{3*sygQ)%x(v(ked9HxarR\u003eswPhi#wmYT*C{3*sC4CYnx(v(ked9HxarR\u003esx^b8narR^Hb57}rwPz\u003caz/cXow/$P4zGG]qy-)kazGGr3zE)\u0026jed9HxarR\u003exz^%$x3lQDlar\u003eMeC42D4A+PGma$K6zarR^JzF%5%a$K6zarR^JBA}?pB7ol8Ac9oharT@v3lQDny?Wx\u003czGxwkiV]RvnMl(+3lQDnwQ5fjA==vDiV@+RarR^Ha$+62ar\u0026A\u003ey?Wuix(mD)CRi-La{]CnEjLZFar\u003eYizdK[Lar\u003c6+zGYPiB7]liyi84pyizgLvqGT*vruj4zxZRsarR\u003eEwO2)IwPhi#wmYT*x\u003equfiV@+RarR^Hb4kkfb03?\u003cun%L)fFk463lQEted9Hxb5?Wly?W%7lVl\u003cOx\u003eFRJaBsCrarR^JvpJ!UB8@J^ar\u003e=EvR/:*a{]CnEjLZFar\u003e\u0026qAbP/iBz(hBb03\u0026[3lQDlar\u003e]MAaHjOar\u003eDjBrSmyarR^Hb6v{xb03?\u003cxk8DrxMOunB2\u003e%cxk8E3BZ=$kz/4dwzGYPiB7]lifkUSBz/PAdz.tWpBrR5maBL^FarR\u003eKwPz\u003caz/c:War\u0026P]hzc:eed9Hxb6n9HwG\u003ceTb5ImeB.\u003eRked9Hxb6dmmx(Ffnb03\u0026[3lQDlar\u003eoqx(4r7iV]R*B7lyB3lQDlar\u003eoqx(4rvv@bZ+zx.a:b64ymA:-M5y?Wu5ed9HxarR\u003euz/PY6BrS:*b5?NlBAzkdAV=}=CxdztwGSPUB8\u003e+med9HxarR\u003eAx(n2piV]RTB8kMdBrAg?B8\u003e+med9HxarR\u003eEA+eZ5x(4r7iV]R=zG6CnA=(mxvS=y3wiajpwNPE2ed9HxarR\u003eIwPI@qiV]R\u0026x(){cBrCQDzxZRsarR^Hb6myqBujbNBy/99vruj4zx.a:b5?Bsz6i\u003ewzxK4jB95JRePt-GygQ)%aw3D)wOl3(BzkVha$K6zarR^JBy/Jni+98KwPzi(wG\u003ceT",
            "ln": 819,
            "col": 15,
            "line": 24
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "3.6.2",
              "@inversifyjs/validation-common"
            ],
            [
              "2.0.1",
              "@inversifyjs/common"
            ],
            [
              "1.5.0",
              "@inversifyjs/reflect-metadata-utils"
            ],
            [
              "10.0.0",
              "@stryker-mutator/vitest-runner"
            ],
            [
              "4.1.11",
              "@vitest/coverage-v8"
            ],
            [
              "6.1.3",
              "rimraf"
            ],
            [
              "0.2.0",
              "@inversifyjs/eslint-plugin-require-extensions"
            ],
            [
              "24.13.3",
              "@types/node"
            ],
            [
              "3.9.6",
              "prettier"
            ],
            [
              "10.0.0",
              "@stryker-mutator/core"
            ],
            [
              "6.0.3",
              "typescript"
            ],
            [
              "2.1.0",
              "@inversifyjs/framework-core"
            ],
            [
              "4.1.11",
              "vitest"
            ],
            [
              "5.6.0",
              "@inversifyjs/http-express"
            ],
            [
              "5.0.6",
              "@types/express"
            ],
            [
              "5.6.0",
              "@inversifyjs/http-core"
            ],
            [
              "10.9.1",
              "eslint"
            ],
            [
              "8.2.3",
              "inversify"
            ],
            [
              "10.0.0",
              "@stryker-mutator/typescript-checker"
            ],
            [
              "^8.20.0",
              "ajv"
            ]
          ],
          "metrics": {
            "file": {
              "size": 2037,
              "entropy": 4.74
            },
            "binary": {
              "peak_region_bytes": 2037,
              "peak_region_entropy": 4.83
            },
            "references": {
              "declared_count": 3,
              "unresolved_count": 0,
              "security_hold_count": 0,
              "unresolved_extension_count": 0
            },
            "consistency": {
              "name_repo_mismatch": 1
            }
          }
        },
        "id": 9,
        "mol": "Md(Pa₅)",
        "path": "@inversifyjs-ajv-validation-3.6.2.tgz!!package/package.json",
        "pid": 0,
        "refs": [
          {
            "to": "pkg:github/inversify/monorepo",
            "off": 1479,
            "kind": "repository"
          },
          {
            "to": "pkg:npm/%40inversifyjs/common@2.0.1",
            "off": 199,
            "kind": "dependency"
          },
          {
            "to": "pkg:npm/%40inversifyjs/reflect-metadata-utils@1.5.0",
            "off": 235,
            "kind": "dependency"
          },
          {
            "to": "pkg:npm/%40inversifyjs/validation-common@3.6.2",
            "off": 287,
            "file": 23,
            "kind": "dependency"
          },
          {
            "to": "./lib/index.js",
            "off": 1269,
            "file": 4,
            "kind": "local"
          }
        ],
        "risk": 3,
        "sha": "32fbfe7c0bd6b36b9734ef43d9ce595fdd8d641b629d3e85e2278d818ca31dfe",
        "size": 2037,
        "traits": [
          {
            "id": "metadata/package/dependencies/manifest::npm-many-dev-dependencies",
            "conf": 0.7,
            "crit": 1,
            "desc": "npm manifest has many devDependencies",
            "spans": [
              [
                335,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/repository::has-repository-field",
            "conf": 0.9,
            "crit": 2,
            "desc": "package.json declares repository metadata",
            "spans": [
              [
                1432,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/repository::has-repository-url",
            "conf": 0.85,
            "crit": 2,
            "desc": "package.json declares a repository URL",
            "spans": [
              [
                1471,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/repository::repo-url-git-host",
            "conf": 0.9,
            "crit": 3,
            "desc": "Repository identifies major Git host",
            "spans": [
              [
                1471,
                45
              ]
            ]
          },
          {
            "id": "metadata/package/scripts/develop::has-test-script",
            "conf": 1.0,
            "crit": 1,
            "desc": "package.json declares a test script",
            "spans": [
              [
                1753,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/publishing::npm-public-publish-access",
            "conf": 0.9,
            "crit": 3,
            "desc": "npm package is configured for public publishing",
            "spans": [
              [
                1406,
                6
              ]
            ]
          },
          {
            "id": "metadata/package/quality/profile::has-typescript",
            "conf": 0.9,
            "crit": 3,
            "desc": "Package declares TypeScript tooling",
            "spans": [
              [
                883,
                12
              ]
            ]
          },
          {
            "id": "metadata/package/scripts/build::pkg-build-script-field",
            "conf": 0.6,
            "crit": 3,
            "desc": "Package declares a build script",
            "spans": [
              [
                1592,
                3
              ]
            ]
          },
          {
            "id": "metadata/package/scripts/develop::pkg-format-script-field",
            "conf": 0.6,
            "crit": 3,
            "desc": "\"format\": script in package.json",
            "spans": [
              [
                1645,
                22
              ]
            ]
          },
          {
            "id": "metadata/package/dependencies/manifest::npm-no-dependencies-field",
            "conf": 0.9,
            "crit": 2,
            "desc": "npm manifest omits dependencies field"
          },
          {
            "id": "metadata/package/manifest/freeform::pkg-skeleton-small",
            "conf": 0.7,
            "crit": 3,
            "desc": "Tiny package.json manifest",
            "spans": [
              [
                0,
                59
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/name::npm-no-name-field",
            "conf": 0.9,
            "crit": 3,
            "desc": "package.json omits name field"
          }
        ],
        "type": "package.json"
      },
      {
        "id": 20,
        "sha": "de6920d4131de2cdc98cb9aac2a2b9f6223bb07a57854eb820e89543f9ea0e3a",
        "path": "@inversifyjs_common@2.0.1.registry.json",
        "size": 869,
        "type": "registry",
        "depth": 2
      },
      {
        "id": 21,
        "sha": "212bc7660a68ebe01be71f7b0c88ea63133731645421252e1586c06ce11757ae",
        "path": "@inversifyjs_reflect-metadata-utils@1.5.0.registry.json",
        "size": 890,
        "type": "registry",
        "depth": 2
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeDXz6yIPzEEx[b03]kx(n99A=U@bD1}yNC42i3wmoN]z/ddpz/6ufzxZRQC4CYnx(v(kiWcvjhzc:eefY4QvR/+1xK$ZYvrrXOf/I6KhArPFgDv0gvp%dUwmo+8b04zeb5yXfwPI%2C4CYnx(v(kiWcvjhzc:eefXIBBzbPkb03]C",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 2,
        "facts": {
          "metrics": {
            "file": {
              "size": 894,
              "entropy": 4.87
            },
            "binary": {
              "peak_region_bytes": 894,
              "peak_region_entropy": 4.87
            },
            "registry": {
              "age_days": 0,
              "file_count": 15,
              "maintainers": 1,
              "published_at": 1788694039,
              "releases_24h": 1,
              "releases_48h": 1,
              "is_deprecated": 0,
              "release_count": 19,
              "security_hold": 0,
              "unpacked_size": 7638,
              "version_removed": 0,
              "downloads_recent": 5981,
              "package_age_days": 349,
              "first_published_at": 1758563012,
              "has_install_script": 0,
              "previous_published_at": 1788388892,
              "publisher_in_maintainers": 1,
              "days_since_previous_release": 3
            }
          }
        },
        "id": 22,
        "mol": "Md(Re)",
        "path": "@inversifyjs_validation-common@3.6.2.registry.json",
        "pid": 7,
        "rel": "registry",
        "risk": 1,
        "role": "sidecar",
        "sha": "7244b554526ef1b101cbf71500896a83e72d9f3f1461a4fe0bbb7478e7e29038",
        "size": 894,
        "traits": [
          {
            "id": "metadata/registry::freshly-published",
            "conf": 1.0,
            "crit": 3,
            "desc": "Release published within seven days",
            "spans": [
              [
                0,
                24
              ]
            ]
          }
        ],
        "type": "registry"
      },
      {
        "ctx": [
          {
            "b": "abZy80000000zQ[@C{Q.65QDHIE9-O/MBH{g#u3M/*b[BGBY3\u003eDr)WUM5(g!tHB]r:QT*kq@5XNI^sP\u003e0$r*0UFX{rBH=jP(fmRIp5?7pp21iTyKIc$78Z.uw8+\u0026975M%zdvXOFIBDDMV!sZ8?!Y-.kz0.gU:0z]n#ltoVBJrgA0OWsu!QPw6FJ[*E-RI1u5K{zHy\u003cEKqQpaKPA",
            "ln": 0
          }
        ],
        "depth": 2,
        "facts": {
          "metrics": {
            "file": {
              "size": 3144,
              "entropy": 7.92
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 3072,
              "peak_region_entropy": 7.78
            },
            "consistency": {
              "name_repo_mismatch": 1
            }
          }
        },
        "id": 23,
        "ident": {
          "name": {
            "value": "@inversifyjs/validation-common",
            "source": "npm.name",
            "verified": false
          },
          "urls": [
            {
              "url": "git+https://github.com/inversify/monorepo.git",
              "kind": "repository",
              "source": "npm.repository.url"
            },
            {
              "url": "https://inversify.io",
              "kind": "homepage",
              "source": "npm.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Roberto Pintos López",
              "role": "author",
              "source": "npm.author"
            }
          ],
          "version": {
            "value": "3.6.2",
            "source": "npm.version",
            "verified": false
          },
          "identifier": {
            "value": "@inversifyjs/validation-common",
            "source": "npm.name",
            "verified": false
          }
        },
        "mol": "Md(Pa₃)",
        "path": "pkg:npm/%40inversifyjs/validation-common@3.6.2",
        "pid": 3,
        "refs": [
          {
            "to": "pkg:github/inversify/monorepo",
            "off": 0,
            "kind": "repository"
          }
        ],
        "rel": "fetched",
        "risk": 4,
        "sha": "51e332921a96a7bc858a122095e3e45a4c2b8278a39cec1ed5f3961a5c649198",
        "size": 3144,
        "traits": [
          {
            "id": "metadata/package/manifest/repository::has-repository-url",
            "conf": 0.85,
            "crit": 2,
            "desc": "package.json declares a repository URL"
          },
          {
            "id": "metadata/package/dependencies/manifest::npm-no-runtime-dependencies",
            "conf": 0.9,
            "crit": 2,
            "desc": "npm manifest declares no runtime dependencies",
            "from": [
              {
                "file": 361
              }
            ],
            "uses": [
              11
            ]
          },
          {
            "id": "metadata/lang/scripted::dts-declaration-file",
            "conf": 0.99,
            "crit": 2,
            "desc": "TypeScript declaration file",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/dependencies/manifest::npm-many-dev-dependencies",
            "conf": 0.7,
            "crit": 1,
            "desc": "npm manifest has many devDependencies"
          },
          {
            "id": "metadata/package/quality/profile::has-typescript",
            "conf": 0.9,
            "crit": 3,
            "desc": "Package declares TypeScript tooling",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/manifest/repository::has-repository-field",
            "conf": 0.9,
            "crit": 2,
            "desc": "package.json declares repository metadata"
          },
          {
            "id": "metadata/package/scripts/build::pkg-build-script-field",
            "conf": 0.6,
            "crit": 3,
            "desc": "Package declares a build script"
          },
          {
            "id": "metadata/package/scripts/develop::pkg-format-script-field",
            "conf": 0.6,
            "crit": 3,
            "desc": "\"format\": script in package.json"
          },
          {
            "id": "metadata/package/manifest/publishing::npm-public-publish-access",
            "conf": 0.9,
            "crit": 3,
            "desc": "npm package is configured for public publishing"
          },
          {
            "id": "metadata/package/testing/presence/harness::test-or-declaration-file",
            "conf": 0.85,
            "crit": 1,
            "desc": "File is a test or type-declaration source file",
            "from": [
              {
                "file": 363
              },
              {
                "file": 364
              },
              {
                "file": 365
              }
            ],
            "uses": [
              12
            ]
          },
          {
            "id": "metadata/package/manifest/repository::repo-url-git-host",
            "conf": 0.9,
            "crit": 3,
            "desc": "Repository identifies major Git host"
          },
          {
            "id": "metadata/package/dependencies/manifest::npm-no-dependencies-field",
            "conf": 0.9,
            "crit": 2,
            "desc": "npm manifest omits dependencies field"
          },
          {
            "id": "metadata/file/extension/identity::declaration-file-extension",
            "conf": 1.0,
            "crit": 1,
            "desc": "File uses a source declaration extension",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/manifest/repository::npm-name-repo-mismatch",
            "conf": 0.8,
            "crit": 3,
            "desc": "Package name disagrees with its repository",
            "spans": [
              [
                0,
                37
              ]
            ]
          }
        ],
        "type": "npm",
        "via": "https://registry.npmjs.org/@inversifyjs/validation-common/-/validation-common-3.6.2.tgz"
      },
      {
        "ctx": [
          {
            "b": "DKp(rb4kRoxM4]niV]RAz^)o#Bz\u0026o#x(n3hB0ae]VV6G4a$K6zar\u003eoqxlbmTaBsCrarR^JB-IpxiV]RWBAzFyiXJd0x([3hvLheez7/QvC4CYnx\u003ezSzzeTrgA+fidfkkGGB.bRr3lQEted9Hxb4Lnav@=p5BzkVhb03?\u003cnP5Y.A=U@bC$Jc2v@Dj3z/cXvvqGT*vruj4zxJ[bv@2H=wG\u0026VjarR\u003eswP*EMAaJ]$wO#0(wPG4RaBsCrarR^JkXUaVwPz\u003caw{Fcjfj/ivx(n2AAboVfx(kIywPq\u003cbA+c?lCYWImB7]MgB0rT/a$$S8e?!F23lQDlar\u003exry?W^eb03?\u003cf!+jue?[L33lQDlar\u003e=BwPS3dwPw$Qar\u0026P]iw9iled9HxarR\u003eGx(d)0w*fnUa#R5de\u0026aX53lQDlar\u003e]MAaK92A+PGmb03?\u003chzcWogA)eGaBL^FarR\u003eswP*HWxk8l{B0rT/DKp(rarR\u003eCz!9A6iV]RMgbHQrfFk46ed9HxarR\u003eEzG6CpiV]RMf!\u003epme?!ERarV7-3lQDnxM4:0Aa9x\u003cb03?\u003cxMOunB2\u003e%cx(n99A=U@bC}J/Ha$K6zar\u003ePjD3sgEwoe}Qax]f}arR^Jx(n99A=U@bC{j^DarR^Hb5gLfvrk}0x(Fered9HxarR\u003eCz!9A6ed9HxarR\u003eID2Ntov@=p5BrSmyarR^Hb6Eyhx\u003egT]x(v(k3lQD%ed9Hxb5y$6wO#N2b03?\u003co?wqded9Hxb4V1rz/P@vb03\u0026[3lQDlar\u0026AZiV]R0fkLuifkkrmwQ2?xB0p@laBL^FarR\u003eCvqPN1iV]Rix(n99A=U@bD1}yNC42i3wmoN]z/ddpz/6ufzxZRsarR\u003eEBZ/f3B7^{VzF0P}b03\u0026[3lQDlar\u003el7v}x.5b03?\u003cAckSax\u003e5s]arV7-3lQDnA+fidB7]-mA^n\u0026\u0026aBsCrarR^JBA}?pb03?\u003cxk8Died9HxarR\u003eJA+({Xar\u003eDjBsR3DBz#pZfe3%LBzb/ae[n*pfkkrEwPz\u003caw{D4Dz/fGlwPhMuxk8Di3lQEted9Hxb6EKrB7]Mgb03?\u003cgCgNrg9OmRarR\u003eID2NssiV]R-z!a0bwG\u0026VjarR\u003eHv@=p5BAnS!aBsCrarR^JvS=y3wfK5Sb6m)oa$K6zarR^JvS=y3wiajpwNPE2iV]R!x(d)0w/$]7vJ)ugarR^Hb4++lzddJgiV]R=A+fumx\u003eqrceIhf!x()]ee?.o^v\u003ciDharR^Hb5y$hBrS:*b4U?ix(n2ne?.o^v\u003ciDharR^Hb5?NlvS=y3wfK5Sb5?Bsz6i\u003ewzxJzhx(4rvv@bZ+zxYAgaBKPB",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 3,
        "facts": {
          "imp": [
            [
              "3.9.6",
              "prettier"
            ],
            [
              "10.9.1",
              "eslint"
            ],
            [
              "0.2.0",
              "@inversifyjs/eslint-plugin-require-extensions"
            ],
            [
              "6.0.3",
              "typescript"
            ],
            [
              "6.1.3",
              "rimraf"
            ]
          ],
          "metrics": {
            "file": {
              "size": 1052,
              "entropy": 4.69
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 4.68
            },
            "consistency": {
              "name_repo_mismatch": 1
            }
          }
        },
        "id": 27,
        "mol": "Md(Pa₃)",
        "path": "pkg:npm/%40inversifyjs/validation-common@3.6.2!!package/package.json",
        "pid": 357,
        "refs": [
          {
            "to": "pkg:github/inversify/monorepo",
            "off": 778,
            "kind": "repository"
          },
          {
            "to": "./lib/index.js",
            "off": 615,
            "file": 358,
            "kind": "local"
          }
        ],
        "risk": 3,
        "sha": "65069f22160616e34eb88f03b4a864532f7905eba874e6eb887cf7068f1c126c",
        "size": 1052,
        "traits": [
          {
            "id": "metadata/package/dependencies/manifest::npm-many-dev-dependencies",
            "conf": 0.7,
            "crit": 1,
            "desc": "npm manifest has many devDependencies",
            "spans": [
              [
                174,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/dependencies/manifest::npm-no-dependencies-field",
            "conf": 0.9,
            "crit": 2,
            "desc": "npm manifest omits dependencies field"
          },
          {
            "id": "metadata/package/manifest/repository::has-repository-field",
            "conf": 0.9,
            "crit": 2,
            "desc": "package.json declares repository metadata",
            "spans": [
              [
                731,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/repository::has-repository-url",
            "conf": 0.85,
            "crit": 2,
            "desc": "package.json declares a repository URL",
            "spans": [
              [
                770,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/repository::repo-url-git-host",
            "conf": 0.9,
            "crit": 3,
            "desc": "Repository identifies major Git host",
            "spans": [
              [
                770,
                45
              ]
            ]
          },
          {
            "id": "metadata/package/manifest/publishing::npm-public-publish-access",
            "conf": 0.9,
            "crit": 3,
            "desc": "npm package is configured for public publishing",
            "spans": [
              [
                705,
                6
              ]
            ]
          },
          {
            "id": "metadata/package/quality/profile::has-typescript",
            "conf": 0.9,
            "crit": 3,
            "desc": "Package declares TypeScript tooling",
            "spans": [
              [
                333,
                12
              ]
            ]
          },
          {
            "id": "metadata/package/scripts/build::pkg-build-script-field",
            "conf": 0.6,
            "crit": 3,
            "desc": "Package declares a build script",
            "spans": [
              [
                891,
                3
              ]
            ]
          },
          {
            "id": "metadata/package/scripts/develop::pkg-format-script-field",
            "conf": 0.6,
            "crit": 3,
            "desc": "\"format\": script in package.json",
            "spans": [
              [
                944,
                22
              ]
            ]
          },
          {
            "id": "metadata/package/dependencies/manifest::npm-no-runtime-dependencies",
            "conf": 0.9,
            "crit": 2,
            "desc": "npm manifest declares no runtime dependencies",
            "uses": [
              1
            ]
          }
        ],
        "type": "package.json"
      },
      {
        "id": 33,
        "mol": "Md(Re)",
        "sha": "b5e672de891de90f9a739798080a303a28050ec5b00d0d61d174b443bd00834c",
        "path": "@inversifyjs_ajv-validation@3.6.2.registry.json",
        "risk": 1,
        "size": 894,
        "type": "registry",
        "depth": 1
      }
    ],
    "omitted_files": 3,
    "rev": "479f3",
    "v": "8"
  }
}