BEACON

← candidates

npm plotly.js @3.7.0

score
0.6 med
flagged 2026-07-21 12:33
signals by category
topology 2

maintainers added:

package profile →

Signals fired

signalweightrationale
topology
typosquat 1.0 combosquat of 'plotly'
dist_tag_anomaly 0.5 dist-tags.latest=3.7.0 but max published is 4.0.0-rc.0

Prior profile (what it deviated from)

{
  "had_install_script": false,
  "maintainers": [
    "chriddyp",
    "bpostlethwaite",
    "antrg",
    "hammadtheone",
    "bronsolo",
    "t4rk",
    "alexshoe",
    "lconnors",
    "ndrezner",
    "farkites",
    "alexcjohnson",
    "emilykl-plotly",
    "marthacryan",
    "packages-team-plotly"
  ],
  "versions": 279
}

Evidence (package doc at flag time)

{
  "dependencies_count": 43,
  "dist": {
    "integrity": "sha512-r17/w3Ob/E+A1vqN382PV/6Dz+IAxAsxNCpWcnGfGFLqE0M6vPUa+ve7HPhivrl9LMicZg2Fy0U5GbpauHo32A==",
    "tarball": "https://registry.npmjs.org/plotly.js/-/plotly.js-3.7.0.tgz",
    "unpackedSize": 98161486
  },
  "dist-tags": {
    "latest": "3.7.0",
    "maintenance": "1.16.5",
    "rc": "4.0.0-rc.0"
  },
  "latest_version": "3.7.0",
  "maintainers": [
    {
      "email": "chris@plot.ly",
      "name": "chriddyp"
    },
    {
      "email": "post.ben.here@gmail.com",
      "name": "bpostlethwaite"
    },
    {
      "email": "antoine@plot.ly",
      "name": "antrg"
    },
    {
      "email": "hammadtheone@gmail.com",
      "name": "hammadtheone"
    },
    {
      "email": "chuck@plot.ly",
      "name": "bronsolo"
    },
    {
      "email": "t4rk@outlook.com",
      "name": "t4rk"
    },
    {
      "email": "alexshoe@gmail.com",
      "name": "alexshoe"
    },
    {
      "email": "liam@plotly.com",
      "name": "lconnors"
    },
    {
      "email": "nathan@drezner.xyz",
      "name": "ndrezner"
    },
    {
      "email": "mario.rodriguez@plot.ly",
      "name": "farkites"
    },
    {
      "email": "alex@plot.ly",
      "name": "alexcjohnson"
    },
    {
      "email": "emily@plot.ly",
      "name": "emilykl-plotly"
    },
    {
      "email": "martha.cryan326@gmail.com",
      "name": "marthacryan"
    },
    {
      "email": "packages@plot.ly",
      "name": "packages-team-plotly"
    }
  ],
  "num_versions": 281,
  "repository": {
    "type": "git",
    "url": "git+https://github.com/plotly/plotly.js.git"
  },
  "scripts": {
    "b64": "python3 test/image/generate_b64_mocks.py && node devtools/test_dashboard/server.mjs",
    "baseline": "node test/image/make_baseline.mjs",
    "build": "npm run empty-dist && npm run preprocess && npm run find-strings && npm run bundle && npm run extra-bundles && npm run locales && npm run schema dist && npm run stats",
    "bundle": "node tasks/bundle.mjs",
    "cibuild": "npm run empty-dist && npm run preprocess && node tasks/cibundle.mjs",
    "custom-bundle": "node tasks/custom_bundle.mjs",
    "empty-dist": "node tasks/empty_dist.js",
    "empty-draftlogs": "node tasks/empty_draftlogs.js",
    "extra-bundles": "node tasks/extra_bundles.mjs",
    "find-strings": "node tasks/find_locale_strings.js",
    "lint": "npx @biomejs/biome lint",
    "lint-fix": "npx @biomejs/biome format ./test/image/mocks --write; npx @biomejs/biome lint --write || true",
    "locales": "node tasks/locales.js",
    "mathjax3": "node devtools/test_dashboard/server.mjs --mathjax3",
    "mathjax3chtml": "node devtools/test_dashboard/server.mjs --mathjax3chtml",
    "noci-baseline": "npm run cibuild && ./tasks/noci_test.sh image && git checkout dist && echo 'Please do not commit unless the change was expected!'",
    "postpublish": "node tasks/sync_packages.js",
    "postversion": "node -e \"console.log('Version bumped and committed. If ok, run: git push && git push --tags')\"",
    "preprocess": "node tasks/preprocess.js",
    "pretest": "node tasks/pretest.js",
    "preversion": "check-node-version --node 18 --npm 10 && npm-link-check && npm ls --prod --all",
    "regl-codegen": "node devtools/regl_codegen/server.mjs",
    "schema": "node tasks/schema.mjs",
    "start": "node devtools/test_dashboard/server.mjs",
    "stats": "node tasks/stats.js",
    "strict": "node devtools/test_dashboard/server.mjs --strict",
    "test": "npm run test-jasmine -- --nowatch && npm run test-bundle && npm run test-image && npm run test-export && npm run test-syntax && npm run lint",
    "test-bundle": "node tasks/test_bundle.js",
    "test-export": "node test/image/export_test.js",
    "test-image": "node test/image/compare_pixels_test.mjs",
    "test-jasmine": "karma start test/jasmine/karma.conf.js",
    "test-mock": "node tasks/test_mock.mjs",
    "test-plain-obj": "node tasks/test_plain_obj.mjs",
    "test-syntax": "node tasks/test_syntax.js && npm run find-strings -- --no-output",
    "use-draftlogs": "node tasks/use_draftlogs.js",
    "version": "npm run build && git add -A lib dist build src/version.js"
  },
  "signal_details": {
    "dist_tag_anomaly": "dist-tags.latest=3.7.0 but max published is 4.0.0-rc.0",
    "typosquat": "combosquat of 'plotly'"
  },
  "time": {
    "created": "2015-11-17T16:26:30.427Z",
    "modified": "2026-07-21T17:33:06.252Z"
  }
}