← Home

shoe

streaming sockjs for node and the browser

15
Versions
MIT
License
No
Install Scripts
Missing
Provenance

Supply chain provenance

Status for the latest visible version.

No SLSA provenance npm registry signatures No source commit

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

substack

Keywords

websocketstreamsockbrowserify

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
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 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.14

1 finding
INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.13

1 finding
INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.12

1 finding
INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.11

1 finding
INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.10

1 finding
INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.9

3 findings
HIGH Bundled binary files (2) npm-metadata

Package 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

HIGH New obfuscated file: example/dnode/node_modules/browserify/example/debug/browserify.js source-diff

Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.

INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.7

1 finding
INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.6

1 finding
INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.5

1 finding
INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.4

1 finding
INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.3

1 finding
INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.2

1 finding
LOW No provenance attestation provenance

Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.

v0.0.1

1 finding
INFO No provenance attestation provenance

[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
INFO No provenance attestation provenance

[Accepted risk] Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.