escodegen
ECMAScript code generator
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.
Maintainers
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| semgrep | semgrep:eval-usage | AI (semgrep): eval() in assets/json2.js is the canonical Crockford JSON polyfill pattern — a well-known, intentional use of eval for JSON parsing in legacy environments. Not a supply-chain risk. | ai | |
| semgrep | semgrep:new-function-constructor | AI (semgrep): new Function() usage is in jQuery test fixture files (tmp/jquery-1.7.2.js), not escodegen's own code. This is jQuery's JSON parsing pattern, not a risk for this package. | ai | |
| license | uncommon-license:BSD | AI (license): BSD is a standard permissive license; the analyzer doesn't recognize it by name but it is a well-known acceptable license. | ai | |
| source-diff | net-exec-file:tmp/res.js | AI (source-diff): tmp/res.js is a jQuery-based test output file. Network/exec patterns are jQuery's own code, not malicious dropper behavior. | ai | |
| source-diff | net-exec-file:tmp/c.js | AI (source-diff): tmp/c.js is a jQuery 1.7.2 test fixture used as input for escodegen's code generation tests. Network/exec patterns are jQuery's own AJAX code. | ai | |
| source-diff | net-exec-file:tmp/jquery-1.7.2.js | AI (source-diff): tmp/jquery-1.7.2.js is a jQuery 1.7.2 test fixture. Network/exec patterns are jQuery's own AJAX/JSON code, not malicious. | ai | |
| source-diff | net-exec-file:tmp/jquery.min.js | AI (source-diff): tmp/jquery.min.js is a minified jQuery 1.7.2 test fixture. Network/exec patterns are jQuery's own code, not malicious. | ai | |
| source-diff | obfuscated-file:tmp/res.js | AI (source-diff): tmp/res.js is a minified jQuery test fixture (escodegen output). Long lines are expected in minified JS test outputs. | ai | |
| source-diff | obfuscated-file:tmp/res2.js | AI (source-diff): tmp/res2.js is a minified jQuery test fixture output. Long lines are expected in minified JS test outputs. | ai | |
| source-diff | large-new-source-files | AI (source-diff): Large number of new files is expected for an early version of a code generator that bundles test fixtures (jQuery, esprima). | ai | |
| source-diff | net-exec-file:tmp/res2.js | AI (source-diff): tmp/res2.js is a jQuery-based test output file. Network/exec patterns are jQuery's own code, not malicious dropper behavior. | ai | |
| source-diff | obfuscated-file:esprima.js | AI (source-diff): esprima.js is the legitimate esprima parser (minified for distribution), with clear copyright headers. Not obfuscated malware. | ai | |
| source-diff | obfuscated-file:escodegen.browser.js | AI (source-diff): escodegen.browser.js is a browserify-generated bundle, explicitly documented in the build script. Long lines are expected in browserified output; not obfuscation. | ai | |
| publish-pattern | new-deps-added | AI (publish-pattern): estraverse is a legitimate, well-known AST traversal library from the same ecosystem author (Constellation), appropriate for an ECMAScript code generator. | ai | |
| source-diff | obfuscated-file:coverage/prettify.js | AI (source-diff): prettify.js is Google's syntax highlighter, minified as part of lcov HTML coverage report output. Not malicious — standard coverage tooling artifact. | ai | |
| source-diff | obfuscated-file:coverage/lcov-report/prettify.js | AI (source-diff): Same prettify.js minified file in lcov-report subdirectory. Standard coverage report artifact, not obfuscated malware. | ai | |
| source-diff | source-size-dropped | AI (source-diff): Size drop explained by removal of large files from prior version; new coverage artifacts are separate. No stub/redirect pattern present. | ai | |
| maintainer-change | maintainer-added | AI (maintainer-change): michaelficarra has a strong track record (49 approved packages) and is a recognized contributor to the JS AST tooling ecosystem. | ai | |
| provenance | publisher-changed | AI (provenance): michaelficarra is a well-known JS tooling maintainer; the transition from constellation (Yusuke Suzuki) is a documented legitimate handoff within the estools org. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require in bin/escodegen.js loads the package's own root module — standard CLI pattern, not arbitrary code loading. | ai | |
| provenance | no-provenance | AI (provenance): escodegen is a long-established, well-known package from a trusted publisher; lack of Sigstore provenance is common and not a meaningful risk signal here. | ai |
Versions (showing 51 of 60)
| Version | Deps | Published |
|---|---|---|
| 2.1.0 | 4 / 12 | |
| 2.0.0 | 5 / 10 | |
| 1.14.3 | 5 / 9 | |
| 1.14.2 | 5 / 9 | |
| 1.14.1 | 5 / 9 | |
| 1.14.0 | 5 / 9 | |
| 1.13.0 | 5 / 9 | |
| 1.12.1 | 5 / 9 | |
| 1.12.0 | 5 / 9 | |
| 1.11.1 | 5 / 9 | |
| 1.11.0 | 5 / 9 | |
| 1.10.0 | 5 / 9 | |
| 1.9.1 | 5 / 9 | |
| 1.9.0 | 5 / 9 | |
| 1.8.1 | 5 / 9 | |
| 1.8.0 | 5 / 9 | |
| 1.7.1 | 5 / 9 | |
| 1.7.0 | 5 / 10 | |
| 1.6.1 | 5 / 10 | |
| 1.6.0 | 5 / 9 | |
| 1.5.0 | 5 / 9 | |
| 1.4.3 | 5 / 9 | |
| 1.4.2 | 5 / 9 | |
| 1.4.1 | 4 / 11 | |
| 1.4.0 | 4 / 11 | |
| 1.3.3 | 4 / 11 | |
| 1.3.2 | 4 / 11 | |
| 1.3.1 | 4 / 11 | |
| 1.3.0 | 4 / 11 | |
| 1.2.0 | 4 / 11 | |
| 1.1.0 | 4 / 10 | |
| 1.0.1 | 4 / 10 | |
| 1.0.0 | 3 / 10 | |
| 0.0.28 | 3 / 10 | |
| 0.0.27 | 3 / 10 | |
| 0.0.26 | 3 / 10 | |
| 0.0.25 | 3 / 10 | |
| 0.0.24 | 3 / 10 | |
| 0.0.23 | 3 / 5 | |
| 0.0.22 | 3 / 5 | |
| 0.0.21 | 3 / 5 | |
| 0.0.20 | 3 / 5 | |
| 0.0.19 | 3 / 5 | |
| 0.0.18 | 3 / 4 | |
| 0.0.17 | 3 / 2 | |
| 0.0.16 | 3 / 2 | |
| 0.0.15 | 2 / 1 | |
| 0.0.14 | 2 / 1 | |
| 0.0.12 | 2 / 0 | |
| 0.0.11 | 2 / 0 | |
| 0.0.10 | 2 / 0 |
v0.0.28
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.27
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.26
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.25
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.24
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.22
2 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.21
2 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.20
2 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.19
2 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.18
2 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.17
2 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.16
2 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.15
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.14
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.12
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.11
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.10
3 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.