This repository ships as static files (no app bundler). Anything we add must stay maintainable and auditable.
- npm
dependencies/devDependencies
- Prefer packages with recent releases, responsive maintainers, and public security disclosure practice.
- Do not add libraries whose upstream is archived, explicitly unmaintained, or has had no meaningful release or security fix for an extended period without a written exception and an owner.
- Do not vendor unmaintained npm tarballs into
lib/except as a time-boxed migration bridge (see exceptions below).
- Vendored scripts under
lib/
- Every file must have a documented upstream (URL + license) in
SECURITY.mdor next to the file. - Prefer reproducible copies from
npm pack/scripts/*.mjsover hand-edited minified blobs.
- Browser APIs
- First-party code may use WebGL / WebGPU directly. That code is ours to maintain; it is not an npm dependency.
- File:
lib/holoplaycore.module.js— vendored ES module from Looking Glass Factory’sholoplay-corenpm package (WebSocket client to HoloPlay Service; includes MIT-licensed CBOR helpers in the same file). - Used only when
config.useHoloplayis true (e.g.version=holoplay). See HOLOPLAY.md for architecture, dev without hardware, and upgrade notes. - Maintenance: Prefer reproducible refresh from a pinned
holoplay-coreversion (npm pack/ small vendor script) over ad hoc edits. Our tree may lag npm; align versions when touching LKG integration.
| Item | Status | Required action |
|---|---|---|
**regl** (WebGL wrapper) |
Upstream maintenance is effectively stalled. Still required for js/webgl/ until the port in **migration_repl.md** lands. |
Remove regl and replace with first-party WebGL (or a dependency that passes this policy). |
- npm
three+ vendoredlib/three.module.jspowerjs/three-rain/only whenrenderer=threeor themathcode_alphabet_threeversion preset. This path is not a replacement for the MSDF rain pipeline; see RENDERING_PIPELINE.md.
- npm
p5+ vendoredlib/p5.min.js(browser UMD) powerjs/p5-rain/whenrenderer=p5orversion=mathcode_p5. LGPL-2.1 — reviewnode_modules/p5/license.txtbefore redistributing modified bundles. Not MSDF / bloom parity; see RENDERING_PIPELINE.md.
**twgl**: Was listed as a dependency and copied tolib/twgl-full.module.jsbut was not imported by any application module. It has been removed entirely to avoid shipping unused third-party code.
When upgrading or adding dependencies, update **SECURITY.md** supply-chain table and run **npm test** (and **npm run test:regression** for renderer/shader changes — see **tests/README.md**).