{
  "ml": {
    "v": "7",
    "eng": "2.9.1",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.0002719164,
        "rte": "az",
        "prob": 0.0002719164
      },
      {
        "cls": 0,
        "raw": 0.00058561563,
        "rte": "az/gem",
        "prob": 0.00058561563
      }
    ],
    "prob": 0.0002719164,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00027191638946533203,
        "type": "gem"
      },
      {
        "id": 1,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000018537044525146484,
        "type": "tar.gz"
      },
      {
        "id": 2,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001572569271957036,
        "type": "markdown"
      },
      {
        "id": 3,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000016550222426303662,
        "type": "ruby"
      },
      {
        "id": 4,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00001560648343001958,
        "type": "ruby"
      },
      {
        "id": 15,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015348196029663086,
        "type": "registry"
      },
      {
        "id": 16,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015348196029663086,
        "type": "registry"
      },
      {
        "id": 17,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000015348196029663086,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-10T15:25:49Z"
  },
  "path": "capybara-email-2.5.0.gem",
  "raw": {
    "files": [
      {
        "id": 0,
        "ctx": [
          {
            "b": "zdN/$wmoN*e[YFg00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fFCgmg=d2?fFCgmfFCfXfFCgm",
            "ln": 0
          }
        ],
        "mol": "H₂(Db₂F)",
        "sha": "4e3a5f1a1082dcd412f1f3db2880e2c0739df062c0ddcdb704c5405b1f408c7a",
        "path": "capybara-email-2.5.0.gem",
        "refs": [
          {
            "to": "pkg:gem/mail",
            "off": 0,
            "kind": "dependency"
          },
          {
            "to": "pkg:gem/capybara",
            "off": 0,
            "kind": "dependency"
          }
        ],
        "risk": 3,
        "size": 9216,
        "type": "gem",
        "facts": {
          "metrics": {
            "gem": {
              "dependency_count": 6,
              "runtime_dependency_count": 2,
              "development_dependency_count": 4
            },
            "file": {
              "size": 9216,
              "entropy": 6.04
            },
            "binary": {
              "peak_region_bytes": 4096,
              "peak_region_entropy": 7.8
            },
            "archive": {
              "file_count": 3,
              "member_count": 3,
              "script_count": 0,
              "directory_count": 0,
              "executable_count": 0,
              "hidden_file_count": 0,
              "uncompressed_size": 5691,
              "max_filename_length": 17,
              "rtlo_filename_count": 0,
              "format.regular_count": 3,
              "nested_archive_count": 3,
              "path_traversal_count": 0,
              "symlink_escape_count": 0,
              "security.setgid_count": 0,
              "security.setuid_count": 0,
              "security.sticky_count": 0,
              "double_extension_count": 0,
              "security.symlink_count": 0,
              "unicode_filename_count": 0,
              "homoglyph_filename_count": 0,
              "timing.mtime_unique_count": 1,
              "misplaced_executable_count": 0,
              "timing.mtime_spread_seconds": 0,
              "security.world_writable_count": 0
            },
            "references": {
              "declared_count": 2,
              "unresolved_count": 0,
              "security_hold_count": 0,
              "unresolved_extension_count": 0
            }
          }
        },
        "ident": {
          "name": {
            "value": "capybara-email",
            "source": "gem.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/dockyard/capybara-email",
              "kind": "homepage",
              "source": "gem.homepage"
            }
          ],
          "trust": "unsigned",
          "authors": [
            {
              "name": "Brian Cardarella",
              "role": "author",
              "source": "gem.authors"
            }
          ],
          "version": {
            "value": "2.5.0",
            "source": "gem.version",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send"
          },
          {
            "id": "micro-behaviors/fs/directory/mkdir::ruby-fileutils-mkdir-p",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby creates a directory tree"
          },
          {
            "id": "micro-behaviors/data/format/html::markdown-remote-image-source",
            "conf": 0.9,
            "crit": 3,
            "desc": "Markdown references a remote image"
          },
          {
            "id": "micro-behaviors/data/format/html::html-document-string-literal",
            "conf": 0.6,
            "crit": 3,
            "desc": "Contains an HTML document string literal"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-alias-method",
            "atk": "T1059",
            "conf": 0.7,
            "crit": 3,
            "desc": "Ruby rebinds a method with alias_method"
          }
        ]
      },
      {
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 4749,
              "entropy": 7.95
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 4749,
              "peak_region_entropy": 7.8
            }
          }
        },
        "id": 1,
        "mol": "H₂(Db₂F)",
        "path": "capybara-email-2.5.0.gem!!data.tar.gz",
        "pid": 0,
        "risk": 3,
        "sha": "c9dc1b0c5cb8d86234112dfed02b542b040ff80b8dd89b7245951ec7f5a3938a",
        "size": 4749,
        "traits": [
          {
            "id": "micro-behaviors/data/format/html::markdown-remote-image-source",
            "conf": 0.9,
            "crit": 3,
            "desc": "Markdown references a remote image"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send"
          },
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-alias-method",
            "atk": "T1059",
            "conf": 0.7,
            "crit": 3,
            "desc": "Ruby rebinds a method with alias_method"
          },
          {
            "id": "micro-behaviors/data/format/html::html-document-string-literal",
            "conf": 0.6,
            "crit": 3,
            "desc": "Contains an HTML document string literal"
          },
          {
            "id": "micro-behaviors/fs/directory/mkdir::ruby-fileutils-mkdir-p",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby creates a directory tree"
          }
        ],
        "type": "tar.gz"
      },
      {
        "ctx": [
          {
            "b": "boPuZAcU]3A:.yNvqfK2bmj=ZaZmoQx(4r5q/(C\u0026B-Q?pxMOunB2\u003e%cB7F\u003c7A+c\u003eBA::c9B1H)oe]L=yfjY0hyK6uewg}C3AcU]3A:ZLhzddc{e]UYvkvOUwzEWuyzddHcwPxk9c$)ZAA5]T9BAg/kx(+\u003eox!BsAxd)!lv@3u#A+3?kvq{H3vrb^dwO\u003e\u003c\u0026y:/Y}aZmuCAaJ]$wO#16ax9w\u003cBAIUgc$)ZAAc15[fk1\u003ckzEEQ2B.@:vz/4drz!0Ndvrb)iv{%t4vQTp=eOe^c",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "x([3hvLheez7/{rx(4\u0026zA:-V#B1.SQwO0JivrlK4AXy\u003chBzkVhzddc{wPxjxvqYP#ttnKuy*wD5BAzFyiXJd0x([3hvLheez7/:uyH}rnzddc{diJFsB8$=5wPF#dzxKjyB-FP(vq{H3vrb^0x(n37xl4B5x(v(iBy/JnA%-m0boPM}B97\u0026by*?B1z/cWxbmj=zwmM*8xLzJgy?W=#aARJAD2E?CayPkdy?Wx/BzkVhcVZz2wO(3[y?kTm3sEmHA=\u003e\u0026p3ti{!asyVcAcU]3A:ZLhzddc{cKKl?u\u003cWlbzE:(ixK#67wQ4=@B-.gQ3jm)#arR{",
            "ln": 468,
            "col": 37,
            "line": 7
          },
          {
            "b": "wGSu?zddc{wPxdvwn.!$ayX+?yIdWaB-7.jwn.!$arR^KaA}Koy-)k7wNPQ4BzbkdzdN^fvp%c]ADL\u0026nwEoL5arUfgwNPQ^wO\u003e\u003c\u0026y\u0026Y}aarR!Ix(!0gaz2y#x(4c#A+Pf0wPzc%vrue\u0026arR^HboQ64y?$kax(mD7vqWi0zddc{aAIaiBrCWzaARe",
            "ln": 952,
            "col": 7,
            "line": 38
          },
          {
            "b": "zGGDcBrz@cA=kM7y?j-dvp%d03lQE5zE:7YarU-nwO${%x(tawBy/Jnx(mMaw]zYjv@DmbwO#Pqay]x$arR^HwQ5f9v@%beB-IIlzGGk%zddc{dk2ZXazthbwNw}=zGGDcBrz@4wO=g3awcM-aTWQtaz2C33jm)#B7n^0vrc72asznxB98blxcp^",
            "ln": 1290,
            "col": 28,
            "line": 50
          },
          {
            "b": "cM(@r3lQDlar@1JxK@q]y*?E7v}Zc}azkn5azC)tA+flkx(W=}3lQDlay/LmA+fcguUa7.x(2zyvrMi?vqYQ.z/xo93lQE5zE:8=zE:8Zu%\u003crGbo[AQlV()Yzdm6%ar@9Q",
            "ln": 1818,
            "col": 48,
            "line": 69
          },
          {
            "b": "wO#VzA:\u0026z-3lQDlaAz4kB.L(casyVcAcU]3A:ZRjzddc{cKHhRzEWl2D2E*FxKM6}aAz4kB.L(cwftn\u0026vq{H3vrb^dwO\u003e\u003c\u0026y*X!pxjkH(x(mMavpJ!UB8@ECzY\u003cgzvpB4:az\u003eXixM4B53tBM7wNPU9ayPslvpS[.zF78lxLzJgzeS%cy?j-hzY\u003cszB-FP(BZ]MhvR2",
            "ln": 1974,
            "col": 52,
            "line": 77
          },
          {
            "b": "mqVEEy-)CkaAIaiBrCWzaA}KqzFs03aA.:pATA{im})cTzxHcuwK6*KvqP$1wIdFhz6y9pB0bBrvr(N8xcpR9xjkT*3lQD)xK#67Bzb98aA.:pAV/snv@3cdvix=dzF\u003cfaxcqecwN/oUarTS%wO@RmzdL$zCWUDdy?kkez/3WvA+e-(x)a6eayPdgwO\u003e\u003c\u0026y-)}oBz8^vs-nBgC4z^$z/cZxayPslBzbkdB9g@bwN//?3rgXIzxHPsa$cV4b3=VEa%p]qv}xv$wPF#5zxJIcvqfK2Cwhejar\u0026jrulSV8diY)yB0bNrwGV5pvRPE:Br*",
            "ln": 2359,
            "col": 11,
            "line": 96
          }
        ],
        "depth": 2,
        "facts": {
          "metrics": {
            "file": {
              "size": 5935,
              "entropy": 4.89
            },
            "text": {
              "lines": 232,
              "top_char": 101,
              "max_ws_run": 1,
              "digit_ratio": 0.01,
              "space_count": 729,
              "char_entropy": 4.89,
              "unique_chars": 80,
              "top_char_null": 0,
              "top_char_ratio": 0.09,
              "avg_line_length": 24.58,
              "max_line_length": 169,
              "empty_line_ratio": 0.28,
              "last_line_length": 84,
              "long_token_count": 3,
              "whitespace_ratio": 0.16,
              "line_length_stddev": 29.21,
              "repeated_char_sequences": 1,
              "trailing_whitespace_lines": 1
            },
            "binary": {
              "peak_region_bytes": 5935,
              "peak_region_entropy": 4.96
            }
          }
        },
        "id": 2,
        "mol": "H(Db)",
        "path": "capybara-email-2.5.0.gem!!data.tar.gz!!README.md",
        "risk": 1,
        "sha": "0060f268b27609e67c92755e4bf8d866ba2e465e590ea20231e978e5081e1f00",
        "size": 5935,
        "traits": [
          {
            "id": "micro-behaviors/data/format/html::markdown-remote-image-source",
            "conf": 0.9,
            "crit": 3,
            "desc": "Markdown references a remote image",
            "spans": [
              [
                20,
                72
              ]
            ]
          }
        ],
        "type": "markdown"
      },
      {
        "ctx": [
          {
            "b": "v@bN{B09?UAcU]3A:.0\u0026mqVEEy=TQBA+PYdAV^E!lT:}VvQTp=iYYVHx)a6diYYPoB7CX3ayPwlA:J\u0026#vpS}\u0026auB7JvqfJ+3lQE4wO960zFsibvqGU7wHIbbvqfKb3lQDlav6HPvqfK2jS[rMvqfJ+arUlkwc@U^ay]4}azbLdy\u0026sICB-IpE3lQDlaA.ZvauZ\u0026EqB@GWvrcB2d0oMDdgdguarUuoB95J/ar\u00264SB-IpJB7n({zdObRfe1L%B-IpJxM4%lEiG1varR!uz/Z1yjuK-giWn#]A+)vEz/P@Fa%q2Cy?mWeaA.Zve]U-HBrA.faA.Zve[wK9vrDyduVo}7Bp6ckarUuoB97=kx([2}Aa9\u003c4auZ\u0026px(4ukyhW*7c$)KuBsXLSA+)vEvrufi3lQDlavxNRD17i5vj(5jA=L-eByf92B8#5lzz39DB7].Atwd}@ByflaBzb32vruflaA.Zve]=2BA^p}yv@Dj6vpKyiyhW*7c)}kbdjCPDaz2C33jm)#wmYu}vSb!53lQDlay]zce{82sCX}m7arUlkwc@U^ar@17z!\u003co7x(W]gz^)D)v@@\u00269z/M$xA::c5A=U@jxcpY5zGGDcBp6ckbmkLoboPl(wPS6nzxIX)yJ0\u003c1A+NM}nk@qSiYYVEv%8T1zGDjday]4}ay]zc3lQDlav6EQz6jjNjS)HryJ0\u003c1A+NM}nk@qSd06rHA:@Vf3lQE5zE:7YarR)KmRM:Jaz2w2zdNQbB0a}2B7F(8z/cXgx)a69aB4\u003clBz817ar}joar@0]Aa9=}z6i5cAa9\u003c4aAITBx(mM?3lQDo3lQDoav6%UBAIRwax}cLA::kQlT:}VvQTp=iYYVHx)a6diYZ2OwmW@g3lQE4wO95%x(mDfB7Gf0v@#TfdgdguarUikz7Z6LvrufhB7Gf0v@#Tfdk2ECA3fGID#r\u003ekwQCQ/vq{H3vrb^qiZ))]x(2*\u003eph:VOe]ClAd05%ow?k6xz!9AdaBKOtaz2C33jm)#vqGT^B6\u0026=}BzbP6auBaGzE^a0Aa9\u003c4efD#=x(mC*3lQE4wO95%x(mD*v@(YtB7Gf0v@#TfdgdguarUikz7YstB0#9vy?m9#z/NoVzddxaDMWYNz!9BbavxNRD17i5vlcCrzddc{iYZ2OwmWxhwP]LzwO+%faz#adwHO:I3lQE5zE:7YarR)Kq/)4]zF78nwPz\u003caz/cXow/$V4vqfK2nk@qSaAIEzA:@U/arR)oarR)KkYQBTB-Ivxq/)4]zF6q0ay]4}aAIEzA:@U/arR^Hx\u003ewG0zddc{e]trtwNxL8AaHdPjS(a]wQ5qIAbn@%zyk=larR^Hay/tcC4CYouVZi[xMO9cc#@:udgdguarUliB7CX3arR^HaAy[m3lQDlaz2C33lQE5zE:7YarR)Kp\u00266MOzxK4jCYU6tzddc{ay/tcBy/uiA%:3jbmkLoboPl(wPS6nzxI(1A+PA73lQE4wO969vrS53arR!vw/$V4vqfKgze0\u0026#uVZNjwGTc+atl$=zfoVpx(EH3Bx*EEvqH3%A=brcx)a6nA+f5}By/0gze1lawgp+!fa5*AarR^Hx\u003ewG0zddc{e[/uzy*Rc\u0026A=.TharR^HarR!EwPS6nzxJIcvqfKgxMO9cuVoB]Bs}3vwo/!Hz^NL)arR^HarUliB7]kewO\u003e\u003c\u0026y+x*vCYWqivrcC%arR^HarR^HA+funA=91hzddc{e{7VHBye#}A=-{yz!abCBz\u003eJc3lQDlarR!rzE:7%arR!rzE:7YarR^HA+funA=91hzddc{e[e:fC}KhSuVML%az2C33jm)#Ab]Vovru5/3lQE4wO964wPRQ7wm6g/B8#5kxddRdBz9iFdQ^vgB1wBXvR/%)yBGPkarR!vw/$V4vqfKgA+frhz/f8)Bz\u003cw(zdN*5dgdguarR^Hx\u003ewF@A+xCCwO(ydC%qSUarR^HarR!rzddc{e]$PwwghqaBz99garR^HarUliB7CX3arR^HarR!rzddc{e]$PwwghqaBz9iFvrc14dgdguarR^HwO#2=arR^HwO=B03lQDlarR!FB-p]j3lQDlaz2C33lQE5zE:7YarUiaw/$P4zGYPiByfcduUBK#y::ypCYUwwarR^Hb0oKXzeqx#vSb!5j%Lz:z/f-fA=+V8x(mZcd0f3BBszS2fjF\u003cgC%jtzxMO9cj%ysRaz2C33jm)#wmYu}v@DmdwPz)1y?W^5B0#cwCYUwwarR^HBy/Yse[YlFvKJKyDNJMHBz#p=iXJc\u003eq.6qBefDlUDPUZVxMvV@jTab=b0Gl^jtgbbEjkHCaz2C33t19=3i",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "attr_reader"
            ],
            [
              "",
              "parse"
            ],
            [
              "",
              "scheme"
            ],
            [
              "",
              "host"
            ],
            [
              "",
              "port"
            ],
            [
              "",
              "port"
            ],
            [
              "",
              "default_port"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "path"
            ],
            [
              "",
              "visit"
            ],
            [
              "",
              "current_session"
            ],
            [
              "",
              "join"
            ],
            [
              "",
              "compact"
            ],
            [
              "",
              "query"
            ],
            [
              "",
              "to_xml"
            ],
            [
              "",
              "HTML"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "xpath"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "alias_method"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "css"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "mime_type"
            ],
            [
              "",
              "convert_to_html"
            ],
            [
              "",
              "mime_type"
            ],
            [
              "",
              "html_part"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "body"
            ],
            [
              "",
              "html_part"
            ],
            [
              "",
              "text_part"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "body"
            ],
            [
              "",
              "text_part"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "body"
            ],
            [
              "",
              "respond_to?"
            ],
            [
              "",
              "empty?"
            ],
            [
              "",
              "send"
            ],
            [
              "",
              "send"
            ],
            [
              "",
              "convert_links"
            ],
            [
              "",
              "gsub"
            ]
          ],
          "mbr": [
            "Capybara.current_session",
            "Capybara.current_session.visit",
            "File.join",
            "Nokogiri.HTML",
            "URI.parse",
            "args.empty?",
            "dom.css",
            "dom.css.map",
            "dom.to_xml",
            "dom.xpath",
            "dom.xpath.map",
            "email.body",
            "email.body.to_s",
            "email.html_part",
            "email.html_part.body",
            "email.html_part.body.to_s",
            "email.mime_type",
            "email.respond_to?",
            "email.send",
            "email.text_part",
            "email.text_part.body",
            "email.text_part.body.to_s",
            "text.gsub",
            "url.default_port",
            "url.host",
            "url.path",
            "url.port",
            "url.query",
            "url.scheme"
          ],
          "tgt": [
            "HTML",
            "alias_method",
            "attr_reader",
            "body",
            "compact",
            "convert_links",
            "convert_to_html",
            "css",
            "current_session",
            "default_port",
            "empty?",
            "gsub",
            "host",
            "html_part",
            "join",
            "map",
            "mime_type",
            "new",
            "parse",
            "path",
            "port",
            "query",
            "respond_to?",
            "scheme",
            "send",
            "text_part",
            "to_s",
            "to_xml",
            "visit",
            "xpath"
          ],
          "funcs": [
            [
              "initialize",
              79
            ],
            [
              "follow",
              129
            ],
            [
              "body",
              412
            ],
            [
              "dom",
              529
            ],
            [
              "find",
              699
            ],
            [
              "find_css",
              839
            ],
            [
              "source",
              1009
            ],
            [
              "raw",
              1175
            ],
            [
              "method_missing",
              1455
            ],
            [
              "convert_to_html",
              1662
            ],
            [
              "convert_links",
              1752
            ]
          ],
          "metrics": {
            "ast": {
              "op.eq": 2,
              "op.shl": 1,
              "max_depth": 15,
              "op.concat": 37,
              "call_count": 42,
              "node_count": 499,
              "member_count": 29,
              "op_density.eq": 0,
              "op_density.shl": 0,
              "max_array_length": 2,
              "max_member_depth": 4,
              "op_density.concat": 0.07
            },
            "file": {
              "size": 1845,
              "entropy": 4.85
            },
            "text": {
              "lines": 89,
              "top_char": 101,
              "digit_ratio": 0,
              "space_count": 343,
              "char_entropy": 4.85,
              "unique_chars": 72,
              "top_char_null": 0,
              "escape_density": 0.11,
              "string_density": 0.07,
              "top_char_ratio": 0.08,
              "avg_line_length": 19.73,
              "max_line_length": 81,
              "empty_line_ratio": 0.16,
              "last_line_length": 3,
              "whitespace_ratio": 0.23,
              "identifier_density": 1.4,
              "line_length_stddev": 19.85,
              "max_whitespace_run": 1,
              "octal_escape_count": 2,
              "normalized_string_count": 0.64,
              "normalized_unique_identifiers": 8.96
            },
            "binds": {
              "count": 5
            },
            "binary": {
              "peak_region_bytes": 1845,
              "peak_region_entropy": 4.93
            },
            "source": {
              "function_count": 11
            },
            "strings": {
              "bytes": 121,
              "count": 6,
              "avg_length": 20.17,
              "max_length": 48,
              "avg_entropy": 3.16,
              "entropy_stddev": 1.48
            },
            "comments": {
              "chars": 261,
              "count": 14,
              "empty": 5,
              "lines": 9,
              "to_code_ratio": 0.11
            },
            "functions": {
              "count": 11
            },
            "identifiers": {
              "count": 125,
              "unique": 58,
              "avg_length": 6.38,
              "max_length": 15,
              "min_length": 3,
              "avg_entropy": 2.31,
              "reuse_ratio": 0.46,
              "length_stddev": 3.36,
              "high_entropy_count": 1,
              "high_entropy_ratio": 0.02,
              "all_lowercase_ratio": 0.78,
              "all_uppercase_ratio": 0.03
            }
          }
        },
        "id": 3,
        "mol": "H",
        "path": "capybara-email-2.5.0.gem!!data.tar.gz!!lib/capybara/email/driver.rb",
        "pid": 8608,
        "risk": 2,
        "sha": "e5ddd9e19fa301f2a65c485ea9fdbef24c0e5789483532d870fd2b966a36623b",
        "size": 1845,
        "traits": [
          {
            "id": "micro-behaviors/data/format/html::html-document-string-literal",
            "conf": 0.6,
            "crit": 3,
            "desc": "Contains an HTML document string literal",
            "spans": [
              [
                1693,
                6
              ]
            ]
          },
          {
            "id": "micro-behaviors/metaprogramming/reflection::ruby-alias-method",
            "atk": "T1059",
            "conf": 0.7,
            "crit": 3,
            "desc": "Ruby rebinds a method with alias_method",
            "spans": [
              [
                804,
                12
              ]
            ]
          },
          {
            "id": "micro-behaviors/metaprogramming/reflection::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send",
            "spans": [
              [
                1555,
                4
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                463,
                0
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "v@bN{B09?UAcU]3A:.0\u0026ph:VOiYYYDvqfK2jrN11AcU]3A:.0\u0026ph:VOiYYVEv%8T1zGDi)arR)Kl$HgCxjk)[aARJABzbkdwO\u003e\u003c\u0026y-)h9wo!I8ar}joar@0]A+funA=917o\u003c}:LiYY#DB8$=5wG$V5wo?C/arUiaw/$M3wo!I8arR!ovrl0jA::e0arUlkwc@U^ar@1dA+eW3aARpdaz\u003eXhB75Y)cVZztz!abovriM1avxNRD17i5vlcCAz!9Aui-x:fAbo8dB8JgyxKL#\u0026arR)KB7Gf0v@#TfB0a[3BAI2dy\u003cvdEz/PRox(n0lwNP9(z!pbjvqf^%zF77!z/!M/Abo95wO#Q3wjpJVz/P[aarUiaw/$M3wo?J\u003cB6\u003c05ze:r5uV6^)wEoK",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "C4C2?zE^9)AaJ]]Aa9x\u003cuVoB}xEL6rw/%DHAcU]3A:ZOwvrMi?vqYQ.z/xo9uVoB^wNxy+Bz80*arR^HmRMWIrDI}\u003eB1RrBwnc6\u003eA41g\u0026y?kkfx(X91zdLbmvrufidgcz8arR^@x(4ukz/xo9c#-QpxE\u003eJPcN*f+aBE^Gaz9lIA+PSbc$ma9C{%\u003e:3lQDlaAg+hxBk\u003e8wO#2=3lQDoax8Y(wGUz7B8CA9B7/GlaA7\u003cmBzbkdAa9x\u003cayPd#aA8jgzxJUnazCZovix31z*cnlAV!$jAV/7lB8UY2BzkVh3lQDo3lQDoav6)OA:-/cax}=^A+PA7t{a8{Bz8^tarR!axK@r9vruf9Bz\u0026pCxK#i}azC{uB7/Gmy?aU$wGV55C4Chbtw[F5x(v($y*vw\u003cao",
            "ln": 1030,
            "col": 46,
            "line": 43
          },
          {
            "b": "A=90Ep\u00266YKB7DFdzGx]dy?$koxK@r5vrDD$xN7.kwO\u0026MizY\u0026$qwO@Sfvp%c]CwhejaAH$mwNw\u003e-wm6m]wO$\u003c]vp%d03lQE5zE:7YarUSzx)9{bwEn+!ar@1dA+P9aaARJAB7Gl1aARJAu$9L=wNDS)x(Xope^-ZzboPM\u0026ayPdgph+kCze:r5zdNQb",
            "ln": 1476,
            "col": 7,
            "line": 59
          },
          {
            "b": "x(d*9wEoL5wmYu}zdN*5z!9i(x(!ufzF7wmwPRPpasZ/uxlbQDcsQ!fv@0I2arR^HvR6g^zvdHearR^HvQTs?e]$PwwghqaBz9iFdQ^vgB14CsarR!EwPIv7wGT-^Bv*s*y?mD{zGGD2mriA!ATA{iarR^HvSb!5uTX1.B7]Ggy?l%\u003ez!9AiB7Gl1c#AKqxE\u003enQvrc14dgdguarUlkwc%C4wO#2=wO#2=",
            "ln": 1759,
            "col": 66,
            "line": 66
          }
        ],
        "depth": 2,
        "facts": {
          "imp": [
            [
              "",
              "raw"
            ],
            [
              "",
              "string"
            ],
            [
              "",
              "raw"
            ],
            [
              "",
              "value"
            ],
            [
              "",
              "header"
            ],
            [
              "",
              "email"
            ],
            [
              "",
              "map"
            ],
            [
              "",
              "fields"
            ],
            [
              "",
              "header"
            ],
            [
              "",
              "email"
            ],
            [
              "",
              "to_s"
            ],
            [
              "",
              "class"
            ],
            [
              "",
              "strftime"
            ],
            [
              "",
              "new"
            ],
            [
              "",
              "rand"
            ],
            [
              "",
              "expand_path"
            ],
            [
              "",
              "save_and_open_page_path"
            ],
            [
              "",
              "save_and_open_page_path"
            ],
            [
              "",
              "mkdir_p"
            ],
            [
              "",
              "dirname"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "write"
            ],
            [
              "",
              "require"
            ],
            [
              "",
              "open"
            ],
            [
              "",
              "save_page"
            ],
            [
              "",
              "warn"
            ],
            [
              "",
              "send"
            ],
            [
              "",
              "send"
            ],
            [
              "",
              "launchy"
            ]
          ],
          "mbr": [
            "Capybara.save_and_open_page_path",
            "Capybara.string",
            "File.dirname",
            "File.expand_path",
            "File.open",
            "FileUtils.mkdir_p",
            "Launchy.open",
            "Time.new",
            "Time.new.strftime",
            "base.email",
            "base.email.header",
            "base.email.header.fields",
            "base.email.header.fields.map",
            "base.raw",
            "base.send",
            "body_as_simple_node.send",
            "f.write"
          ],
          "tgt": [
            "class",
            "dirname",
            "email",
            "expand_path",
            "fields",
            "header",
            "map",
            "mkdir_p",
            "new",
            "open",
            "rand",
            "raw",
            "require",
            "save_and_open_page_path",
            "save_page",
            "send",
            "strftime",
            "string",
            "to_s",
            "value",
            "warn",
            "write"
          ],
          "funcs": [
            [
              "body",
              126
            ],
            [
              "body_as_simple_node",
              290
            ],
            [
              "header",
              451
            ],
            [
              "headers",
              586
            ],
            [
              "inspect",
              705
            ],
            [
              "save_page",
              872
            ],
            [
              "save_and_open",
              1355
            ],
            [
              "method_missing",
              1767
            ]
          ],
          "metrics": {
            "ast": {
              "op.pow": 1,
              "max_depth": 11,
              "op.concat": 24,
              "call_count": 28,
              "node_count": 351,
              "member_count": 17,
              "op_density.pow": 0,
              "member_depth_max": 5,
              "op_density.concat": 0.07,
              "self_compare_count": 1
            },
            "file": {
              "size": 1939,
              "entropy": 4.75
            },
            "text": {
              "lines": 74,
              "top_char": 101,
              "max_ws_run": 5,
              "digit_ratio": 0,
              "space_count": 339,
              "char_entropy": 4.75,
              "unique_chars": 67,
              "top_char_null": 0,
              "string_density": 0.07,
              "top_char_ratio": 0.09,
              "avg_line_length": 25.2,
              "max_line_length": 103,
              "empty_line_ratio": 0.15,
              "last_line_length": 3,
              "whitespace_ratio": 0.21,
              "identifier_density": 1.11,
              "line_length_stddev": 26.32,
              "normalized_string_count": 0.58,
              "suspicious_comment_ratio": 0.04,
              "suspicious_identifier_ratio": 0.02,
              "normalized_unique_identifiers": 7.73
            },
            "binds": {
              "count": 3
            },
            "binary": {
              "peak_region_bytes": 1939,
              "peak_region_entropy": 4.77
            },
            "source": {
              "function_count": 8
            },
            "imports": {
              "count": 1,
              "third_party_count": 1,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 166,
              "count": 5,
              "avg_length": 33.2,
              "max_length": 71,
              "avg_entropy": 3.08,
              "entropy_stddev": 1.67
            },
            "comments": {
              "chars": 784,
              "count": 25,
              "empty": 8,
              "lines": 17,
              "base64": 1,
              "to_code_ratio": 0.3
            },
            "functions": {
              "count": 8
            },
            "identifiers": {
              "count": 82,
              "unique": 48,
              "avg_length": 7.1,
              "max_length": 23,
              "min_length": 1,
              "avg_entropy": 2.39,
              "reuse_ratio": 0.59,
              "length_stddev": 4.74,
              "sequential_names": 1,
              "single_char_count": 1,
              "single_char_ratio": 0.02,
              "high_entropy_count": 2,
              "high_entropy_ratio": 0.04,
              "all_lowercase_ratio": 0.77
            }
          }
        },
        "id": 4,
        "mol": "H₂(DbF)",
        "path": "capybara-email-2.5.0.gem!!data.tar.gz!!lib/capybara/node/email.rb",
        "risk": 2,
        "sha": "208ed6b5a7e05b71fc2dc060c40ede1b024f3af15ef8fce6e4e7f625be2affcd",
        "size": 1939,
        "traits": [
          {
            "id": "micro-behaviors/data/source/dynamic/reflect::ruby-send-call",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby dynamically invokes a method with send",
            "spans": [
              [
                1823,
                4
              ]
            ]
          },
          {
            "id": "micro-behaviors/fs/directory/mkdir::ruby-fileutils-mkdir-p",
            "conf": 0.9,
            "crit": 3,
            "desc": "Ruby creates a directory tree",
            "spans": [
              [
                1094,
                18
              ]
            ]
          }
        ],
        "type": "ruby"
      },
      {
        "ctx": [
          {
            "b": "DM)3hz/ZhBBy/qkiWeiFz6yIPzEEx[b03]+vqfK4efYmGA=U@kzx.a=ga\u003eNtf^nd)AckSax(^%0wm5+!b04Cqi5iDMh.V{AefXInwNw$RD2\u003ee\u003ch.=\u003ccy*?A%B97=jwPv",
            "ln": 0,
            "col": 1,
            "line": 1
          }
        ],
        "depth": 1,
        "facts": {
          "metrics": {
            "file": {
              "size": 832,
              "entropy": 4.7
            },
            "binary": {
              "peak_region_bytes": 832,
              "peak_region_entropy": 4.7
            },
            "registry": {
              "age_days": 71,
              "published_at": 1782887007,
              "is_deprecated": 0,
              "downloads_total": 761363097,
              "downloads_recent": 9138634
            }
          }
        },
        "id": 15,
        "path": "mail@2.9.1.registry.json",
        "pid": 408,
        "rel": "registry",
        "role": "sidecar",
        "sha": "0ecbb047b4481fc00b9f273f1bb43cd567a6ae90ccb53ddcba084d75fc5ce5bb",
        "size": 832,
        "traits": [
          {
            "id": "metadata/registry::widely-installed",
            "conf": 1.0,
            "crit": 1,
            "desc": "Large registry install base (10k+ downloads)",
            "spans": [
              [
                0,
                0
              ]
            ]
          }
        ],
        "type": "registry"
      },
      {
        "id": 16,
        "sha": "2121d1dd5df110dd0870817ddfcafe2f9fa7d4bc0241fe83c0019114f6a48dce",
        "path": "capybara@3.40.0.registry.json",
        "size": 975,
        "type": "registry",
        "depth": 1
      },
      {
        "id": 17,
        "sha": "3fd962aa52a1cc82e8965f4e9729583386db240b32a8d7ea0ec3d3728f097b2c",
        "path": "capybara-email@2.5.0.registry.json",
        "size": 858,
        "type": "registry",
        "depth": 1
      }
    ],
    "omitted_files": 2,
    "rev": "52359",
    "v": "8"
  }
}