storysplat-viewer@2.14.3
PlayCanvas-based 3D viewer for StorySplat scenes - HTML export & dynamic embedding
AI Security Review
scanned 2d ago · by lpm-firewall-aiThe package’s runtime analytics sends visitor/session activity with the embedding page’s hostname and referrer to its own service. The README discloses this behavior and provides opt-outs, so this warrants a telemetry warning rather than a publish block.
Decision evidence
public snapshot- Analytics payloads include the embedding page’s hostname and referrer, along with visitor and session identifiers.
- Runtime analytics is sent by POST to `/api/track-embed`.
- The README documents viewer analytics and identifies DNT, Global Privacy Control, query-string, and storage opt-outs.
- The analytics API defaults to `https://discover.storysplat.com`; the API URL can be configured through `STORYSPLAT_API_URL` or a window setting.
- The flagged `atob` helper decodes data into a browser Blob URL.
- The manifest has no install hook; `prepublishOnly` runs the build.
- The package is described as a 3D scene viewer, and its network use includes fetching scenes and viewer assets.
- The README discloses the runtime tracking and provides opt-out controls.
- The base64 decoding helper is used to create Blob URLs, not to decode and execute code.
Source & flagged code
6 flaggedA single source file combines environment access, network access, and code or shell execution; review context before blocking.
dist/index.jsView on unpkg · L1Source decodes a Base64-obscured HTTP endpoint at runtime.
dist/index.jsView on unpkg · L1Findings
Affected versions and remediation
This report applies to storysplat-viewer@2.14.3.
See all versions of storysplat-viewer for other recorded verdicts.
- Review the evidence and your use of storysplat-viewer@2.14.3 before allowing it. Restrict the permissions described in this report.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
Evidence last updated: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.