produce
A multi-rule multi-purpose source/target agnostic configurable transformer
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
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| provenance | publisher-changed | AI (provenance): Publisher change from 2017; aularon matches the etabits GitHub org author. Legitimate account transition. | ai | |
| maintainer-change | maintainer-removed | AI (maintainer-change): Old 'david' account removed during legitimate 2017 maintainer transition. | ai | |
| maintainer-change | maintainer-added | AI (maintainer-change): aularon is the package author under the etabits org; legitimate maintainer setup. | ai | |
| maintainer-change | maintainer-takeover | AI (maintainer-change): Publisher change from 2017 appears to be same author (etabits org) transitioning accounts; aularon has 9yr npm history with clean record. | ai | |
| provenance | no-provenance | AI (provenance): Package predates Sigstore provenance on npm; absence is expected and not a risk signal for this established package. | ai | |
| npm-metadata | suspicious-initial-version | AI (npm-metadata): Package is 12+ years old with 7 versions and a trusted publisher (511 approved packages). The 0.0.0 version is a historical artifact, not a malware indicator. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require is the intentional plugin-loading mechanism for this configurable transformer tool. It loads user-specified rule modules by resolved path — expected and documented behavior. | ai | |
| semgrep | semgrep:shady-links-raw-ip | AI (semgrep): The raw IP (127.0.0.1) appears only in a console.log message showing the local server's listening address. This is a loopback address in a log statement, not a network request to a suspicious host. | ai | |
| npm-metadata | url-dep:line | AI (npm-metadata): The 'line' dependency points to etabits/node-line, the same GitHub org as this package. It is a first-party dependency from the same author, not an untrusted external URL. | ai |
Versions (showing 7 of 7)
| Version | Deps | Published |
|---|---|---|
| 0.4.1 | 1 / 5 | |
| 0.4.0 | 1 / 5 | |
| 0.3.5 | 1 / 5 | |
| 0.3.3 | 1 / 5 | |
| 0.3.2 | 1 / 5 | |
| 0.3.1 | 1 / 5 | |
| 0.0.0 | 0 / 3 |
v0.4.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.4.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.5
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.3
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.3.2
3 findingsAll previous maintainers (david) were replaced by new maintainers (aularon). This is a strong signal of a potential package hijack and requires careful review.
This version was published by a different npm account than previous versions on 2017-02-04. This could indicate a legitimate maintainer transition or an account compromise.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.1
3 findingsAll previous maintainers (david) were replaced by new maintainers (aularon). This is a strong signal of a potential package hijack and requires careful review.
This version was published by a different npm account than previous versions on 2017-02-04. This could indicate a legitimate maintainer transition or an account compromise.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.