@shoppexio/cli
Shoppex CLI for theme control plane and MCP client setup
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source, so a manually published version cannot be tied back to a reviewed commit.
Maintainers
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| semgrep | semgrep:api-obfuscation-reflect | AI (semgrep): Reflect usage inside bundled runtime; benign build output. | ai | |
| semgrep | semgrep:new-function-constructor | AI (semgrep): new Function in bundled template/parser engine; expected. | ai | |
| provenance | publisher-changed | AI (provenance): Change is to CI/CD (GitHub Actions) publisher, not a suspicious manual account switch. | ai | |
| dependencies | unvetted-dep:@shoppexio/theme-control-client | AI (dependencies): First-party sibling package from same org/monorepo. | ai | |
| semgrep | semgrep:env-spread | AI (semgrep): env spread into local dev-server child process, not sent externally. | ai | |
| source-diff | obfuscated-file:src/storefront-commerce-runtime.js | AI (source-diff): Bundled third-party runtime synced via documented script, not injected obfuscation. | ai | |
| source-diff | net-exec-file:src/storefront-commerce-runtime.js | AI (source-diff): Bundled frontend runtime; network+eval patterns are standard bundler/template-engine code. | ai | |
| typosquat | typosquat.levenshtein:joi | AI (typosquat): Scoped brand package @shoppexio/cli; Levenshtein match to 'joi' is coincidental, not a squatting attempt. | ai |
Versions (showing 14 of 14)
| Version | Deps | Published |
|---|---|---|
| 0.4.2 | 5 / 1 | |
| 0.4.1 | 5 / 1 | |
| 0.4.0 | 5 / 1 | |
| 0.3.8 | 5 / 1 | |
| 0.3.7 | 5 / 1 | |
| 0.3.6 | 4 / 0 | |
| 0.3.5 | 4 / 0 | |
| 0.3.4 | 4 / 0 | |
| 0.3.3 | 4 / 0 | |
| 0.3.2 | 4 / 0 | |
| 0.3.1 | 4 / 0 | |
| 0.3.0 | 5 / 0 | |
| 0.2.0 | 3 / 0 | |
| 0.1.0 | 3 / 0 |
v0.4.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.4.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.4.0
6 findingsThis version was published by a different npm account than previous versions on 2026-07-18. This could indicate a legitimate maintainer transition or an account compromise.
Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Spreading entire process.env into an object — may capture all secrets 341 | const child = spawn(devServerCommand.command, args, { 342 | cwd: devServerCommand.cwd, > 343 | env: { 344 | ...process.env, 345 | SHOP_SLUG: normalizedUseMsw ? '' : shopSlug,
Spreading entire process.env into an object — may capture all secrets 158 | const child = spawn(devServerCommand.command, args, { 159 | cwd: devServerCommand.cwd, > 160 | env: { 161 | ...process.env, 162 | SHOP_SLUG: '',
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.8
6 findingsThis version was published by a different npm account than previous versions on 2026-07-07. This could indicate a legitimate maintainer transition or an account compromise.
Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Spreading entire process.env into an object — may capture all secrets 341 | const child = spawn(devServerCommand.command, args, { 342 | cwd: devServerCommand.cwd, > 343 | env: { 344 | ...process.env, 345 | SHOP_SLUG: normalizedUseMsw ? '' : shopSlug,
Spreading entire process.env into an object — may capture all secrets 158 | const child = spawn(devServerCommand.command, args, { 159 | cwd: devServerCommand.cwd, > 160 | env: { 161 | ...process.env, 162 | SHOP_SLUG: '',
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.7
6 findingsThis version was published by a different npm account than previous versions on 2026-07-06. This could indicate a legitimate maintainer transition or an account compromise.
Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Spreading entire process.env into an object — may capture all secrets 338 | const child = spawn(devServerCommand.command, args, { 339 | cwd: devServerCommand.cwd, > 340 | env: { 341 | ...process.env, 342 | SHOP_SLUG: normalizedUseMsw ? '' : shopSlug,
Spreading entire process.env into an object — may capture all secrets 158 | const child = spawn(devServerCommand.command, args, { 159 | cwd: devServerCommand.cwd, > 160 | env: { 161 | ...process.env, 162 | SHOP_SLUG: '',
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.3.6
2 findingsThis version was published by a different npm account than previous versions on 2026-05-25. 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.