Package evidence
@webarkit/[email protected]
Js Decode Then Exec: base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern.
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
- 155
- Versions published
- 33Mature · −50% score
- First published
- Oct 2021
- Publisher
- kalwalt
Effective trust discount applied: −50% (max across signals — discounts don’t stack). New install-lifecycle deltas vs the previous release would clear the discount.
Recommended action
Review before promotingMixed 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":["@webarkit/[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":["@webarkit/[email protected]"],"fail_on":"review"}'Why flagged
What the scanner saw
Js Decode Then Exec: base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern.
Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.
Availability ledger
available
Status history (1 event)
- new → available · risk review · score 25 · status changed
Evidence
Static findings
7 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Js Decode Then Exec | package/build/artoolkitNFT_embed_ES6_wasm.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| high | Js Decode Then Exec | package/build/artoolkitNFT_node_wasm.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| high | Js Decode Then Exec | package/dist/ARToolkitNFT_node.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| high | Js Decode Then Exec | package/build/artoolkitNFT_thread.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| high | Js Decode Then Exec | package/build/artoolkitNFT_wasm.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| high | Js Decode Then Exec | package/build/artoolkitNFT_wasm.simd.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
Show all 7 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Js Decode Then Exec | package/build/artoolkitNFT_embed_ES6_wasm.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| high | Js Decode Then Exec | package/build/artoolkitNFT_node_wasm.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| high | Js Decode Then Exec | package/dist/ARToolkitNFT_node.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| high | Js Decode Then Exec | package/build/artoolkitNFT_thread.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| high | Js Decode Then Exec | package/build/artoolkitNFT_wasm.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| high | Js Decode Then Exec | package/build/artoolkitNFT_wasm.simd.js | base64 / atob / fromCharCode decode paired with eval / new Function in the same file — canonical obfuscated-loader pattern. | 45 |
| low | Large Javascript Payload | package/build/artoolkitNFT.debug.js | 3446322 bytes | 0 |
Manifest
Package metadata
Scripts23
buildnode tools/makem.js; echo Built at `date`build-dockerdocker exec emscripten-jsartoolkitnft npm run buildbuild-docker-no-libardocker exec emscripten-jsartoolkitnft npm run build-no-libarbuild-no-libarnode tools/makem.js --no-libar; echo Built at `date`build-python-bindingscd python-bindings && python setup.py build_ext --inplacebuild-tswebpack --mode productiondev-tswebpack --mode development --progress --watchdocstypedocformatprettier --write .format-checkprettier --check .python-testscd python-bindings && pytest test_arcontrollerNFT.pysetup-dockerdocker run -dit --name emscripten-jsartoolkitnft -v $(pwd):/src emscripten/emsdk:4.0.17 bashtestnpm run test:alltest-node-examplecd examples/node && node example_dist.jstest:allnpm run test:min && npm run test:debug && npm run test:wasm && npm run test:simd && npm run test:embed-es6 && npm run test:es6 && npm run test:es6-simdtest:debugcross-env BUILD_TARGET=artoolkitNFT.debug.js karma start karma-debug.conf.jstest:embed-es6karma start karma-embed-es6.conf.jstest:es6cross-env BUILD_TARGET_ES6=artoolkitNFT_ES6_wasm.js karma start karma-es6.conf.jstest:es6-simdcross-env BUILD_TARGET_ES6=artoolkitNFT_ES6_wasm.simd.js karma start karma-es6.conf.jstest:mincross-env BUILD_TARGET=artoolkitNFT.min.js karma start karma.conf.jstest:simdcross-env BUILD_TARGET=artoolkitNFT_wasm.simd.js karma start karma.conf.jstest:wasmcross-env BUILD_TARGET=artoolkitNFT_wasm.js karma start karma.conf.jswatch./node_modules/.bin/watch 'npm run build' ./js/
Dependencies4
@babel/runtime7.29.7axios1.16.1canvas^3.1.0sharp0.33.5