PkgRadar

Package evidence

@needle-tools/[email protected]

Js Split Join Obfuscation: Array-of-single-tokens joined to form a string — used to obscure module names like require(["n","o","de",":","cr","yp","to"].join("")), defeating static require() analysis.

Trust signals

Why this verdict

PkgRadar discounts a release’s score when public reputation argues against novel malware. The verdict above already reflects these — the panel just explains what was applied.

Weekly downloads
8,138Niche · −30% score
Versions published
1,047Mature · −50% score
First published
Oct 2022
Publisher
GitHub ActionsTrusted automation · −70% score

Effective trust discount applied: 70% (max across signals — discounts don’t stack). New install-lifecycle deltas vs the previous release would clear the discount.

Recommended action

Review before promoting

Mixed signals: the package has indicators worth reading before allowing the update in automated dependency flows.

Block this release in CIcurl · GitHub Actions

Fail the build when this package version is added or upgraded. Replace $PKGRADAR_TOKEN with a Pro / Team API key from your dashboard.

curl -fsS https://pkgradar.com/gate/npm \
  -H "Authorization: Bearer $PKGRADAR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"specs":["@needle-tools/[email protected]"],"fail_on":"review"}'

GitHub Actions step:

- name: PkgRadar gate
  run: |
    curl -fsS https://pkgradar.com/gate/npm \
      -H "Authorization: Bearer ${{ secrets.PKGRADAR_TOKEN }}" \
      -H "Content-Type: application/json" \
      -d '{"specs":["@needle-tools/[email protected]"],"fail_on":"review"}'
Artifact bytes16,054,985
Previous version5.1.0-alpha.7
Published2026-05-29T17:15:22.385Z
SHA-256e1d640886e57090c856e0e6fbc0402cd995a4da12514d3759e71f41c6a9803c4

Why flagged

What the scanner saw

Js Split Join Obfuscation: Array-of-single-tokens joined to form a string — used to obscure module names like require(["n","o","de",":","cr","yp","to"].join("")), defeating static require() analysis.

Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.

Availability ledger

available

review
Last checked
reviewRisk
15Score
5.1.0-alpha.8Version
Status history (1 event)
  1. newavailable · risk review · score 15 · status changed

Evidence

Static findings

9 static · 0 from release diff · showing high-signal first.

SeverityKindPathDetailPoints
highJs Split Join Obfuscationpackage/dist/three.umd.cjsArray-of-single-tokens joined to form a string — used to obscure module names like require(["n","o","de",":","cr","yp","to"].join("")), defeating static require() analysis.40
highJs Split Join Obfuscationpackage/dist/three.jsArray-of-single-tokens joined to form a string — used to obscure module names like require(["n","o","de",":","cr","yp","to"].join("")), defeating static require() analysis.40
highJs Split Join Obfuscationpackage/dist/three.min.jsArray-of-single-tokens joined to form a string — used to obscure module names like require(["n","o","de",":","cr","yp","to"].join("")), defeating static require() analysis.40
Show all 9 findings (low-signal and informational)
SeverityKindPathDetailPoints
highJs Split Join Obfuscationpackage/dist/three.umd.cjsArray-of-single-tokens joined to form a string — used to obscure module names like require(["n","o","de",":","cr","yp","to"].join("")), defeating static require() analysis.40
highJs Split Join Obfuscationpackage/dist/three.jsArray-of-single-tokens joined to form a string — used to obscure module names like require(["n","o","de",":","cr","yp","to"].join("")), defeating static require() analysis.40
highJs Split Join Obfuscationpackage/dist/three.min.jsArray-of-single-tokens joined to form a string — used to obscure module names like require(["n","o","de",":","cr","yp","to"].join("")), defeating static require() analysis.40
lowLarge Javascript Payloadpackage/dist/materialx-CE2sUv2B.umd.cjs9706542 bytes0
lowLarge Javascript Payloadpackage/dist/rapier-DQltNJbN.umd.cjs2239758 bytes0
lowLarge Javascript Payloadpackage/dist/materialx-u1EqYrhu.min.js9705237 bytes0
lowLarge Javascript Payloadpackage/dist/materialx-vyB2Zbt4.js9763298 bytes0
lowLarge Javascript Payloadpackage/dist/rapier-B3oL1ap-.js2270978 bytes0
lowLarge Javascript Payloadpackage/dist/rapier-DJ-luMxr.min.js2237242 bytes0

Manifest

Package metadata

Dependencies18
  • @dimforge/rapier3d-compat0.19.3
  • @needle-tools/gltf-progressive3.6.0-alpha.3
  • @needle-tools/materialx1.7.0-next.0d06218
  • @needle-tools/three-animation-pointer1.0.7
  • @webxr-input-profiles/motion-controllers1.0.0
  • flatbuffers2.0.4
  • n8ao1.10.1
  • peerjs1.4.7
  • postprocessing6.39.0
  • scroll-timeline-polyfill1.1.0
  • simplex-noise4.0.3
  • stats.js0.17.0
  • threenpm:@needle-tools/[email protected]
  • three-mesh-bvh0.9.7
  • three-mesh-uinpm:@needle-tools/[email protected]
  • three.quarks0.15.6
  • uuid9.0.1
  • websocket-ts2.2.1