shoe
streaming sockjs for node and the browser
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 |
|---|---|---|---|---|
| npm-metadata | suspicious-initial-version | AI (npm-metadata): [email protected] is a 13+ year old established package; the 0.0.0 version is a historical artifact, not a malicious throwaway. | ai | |
| npm-metadata | url-dep:sockjs-client | AI (npm-metadata): URL dep points to substack's own fork of sockjs-client, consistent with the package's original author and historical publish pattern. | ai | |
| source-diff | obfuscated-file:example/dnode/node_modules/browserify/example/debug/browserify.js | AI (source-diff): Minified file is a standard browserify bundle inside example/node_modules, not shoe's runtime code. Sample confirms benign require shim. | ai | |
| npm-metadata | bundled-binaries | AI (npm-metadata): Binaries are weakref.node inside example/node_modules — a well-known native binding in example code, not shoe's runtime. Stable false positive for this package. | ai | |
| source-diff | large-new-source-files | AI (source-diff): 792 new files are all committed example/node_modules content (esprima tests, jquery, browserify) — early npm era practice, not injected payload. | ai | |
| source-diff | source-size-tripled | AI (source-diff): Size increase from 261KB to 9MB is entirely due to committed example/node_modules test fixtures, consistent with substack's publishing style circa 2013. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Dynamic require is in example/invert/static/bundle.js for legitimate http/https protocol selection. Not in core library code. | ai | |
| semgrep | semgrep:eval-usage | AI (semgrep): eval() is in bundled example files only (JSON2 polyfill by Douglas Crockford). Not in core library code; no supply-chain risk. | ai | |
| provenance | no-provenance | AI (provenance): Package is ~14 years old; provenance attestation did not exist at publish time. Expected for this era of packages. | ai |
Versions (showing 15 of 15)
| Version | Deps | Published |
|---|---|---|
| 0.0.15 | 1 / 3 | |
| 0.0.14 | 1 / 3 | |
| 0.0.13 | 1 / 3 | |
| 0.0.12 | 1 / 3 | |
| 0.0.11 | 2 / 0 | |
| 0.0.10 | 2 / 0 | |
| 0.0.9 | 2 / 0 | |
| 0.0.7 | 2 / 0 | |
| 0.0.6 | 2 / 0 | |
| 0.0.5 | 2 / 0 | |
| 0.0.4 | 2 / 0 | |
| 0.0.3 | 2 / 0 | |
| 0.0.2 | 2 / 0 | |
| 0.0.1 | 2 / 0 | |
| 0.0.0 | 2 / 0 |
v0.0.15
1 findingPackage 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.13
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
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.9
3 findingsPackage contains compiled binaries that could be backdoors: • example/dnode/node_modules/dnode/node_modules/weak/compiled/0.6/win32/ia32/weakref.node • example/dnode/node_modules/dnode/node_modules/weak/compiled/0.6/linux/ia32/weakref.node
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.
v0.0.7
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.6
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.5
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.4
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.3
1 finding[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.1
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.0.0
1 finding[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.