# Third-party notices — TrophyMed / Trace_Tool **Compiled 2026-08-14** against `main`; **revised 2026-08-19** — added the distribution posture in §0.1 (counsel's question), corrected the `html2pdf` inner versions against the shipped bytes (§2.3), and published the notices where the recipients of the code can read them (§5). **Revised 2026-08-20** — recorded the scholarly bibliographic sources behind FINDER Literature (§6.1) and the abstract-copyright question they raise (§6.2). No npm dependency changed, so §§1–2 and the counts in §0 are unaffected. This is the complete inventory of third-party software, fonts, icons and data incorporated into or distributed with the TrophyMed platform, together with the licence each is used under and the obligations that attach. > **Status: internal compliance record and drafting input for counsel.** It > was compiled by resolving the actual dependency trees and reading the actual > licence identifiers, not from recollection. It has not been reviewed by an > attorney. **Nothing here is copyleft-binding on TrophyMed's own source.** Every component is permissive (MIT / ISC / BSD / Apache-2.0 / OFL / Zlib), or is dual-licensed with a permissive option that we elect. TrophyMed's own code remains proprietary and unpublished. --- ## 0. Summary for counsel | | Count | |---|---| | npm packages, server side (run in Vercel Functions) | **26** | | npm packages, browser side (bundled into vendored libraries) | **73** \* | | Icon set (vendored SVGs) | 1 (95 files) | | Typeface | 1 (14 subset files) | | Reference data corpora | 3 bundled + 1 local-only | \* 71 resolved from registry metadata, plus `tslib` and `core-js-pure`, which only the shipped bytes reveal (§2.3). **Six items need a decision or an action, and are listed here rather than buried below:** 1. **`dompurify` — `MPL-2.0 OR Apache-2.0`. ★ We elect Apache-2.0.** This is the only weak-copyleft option anywhere in the tree: under MPL-2.0, modifications to *those files* would have to be published. We do not modify it, and electing Apache-2.0 removes the question entirely. Reached via `jspdf` → `canvg` inside the html2pdf bundle. 2. **`jszip` 2.7.0 and `pizzip` 3.2.0 — `MIT OR GPL-3.0`. ★ We elect MIT.** Two separate components. An automated scan will report "GPL-3.0" for both; the election is what answers it. 3. **Apache-2.0 components carry real obligations** the MIT ones do not — attribution, a copy of the licence, and a statement of changes if modified. Eleven components: `xlsx` and its eight SheetJS dependencies, Mozilla `pdf.js` embedded inside `pdf-parse`, and the Microsoft TypeScript helper runtime inside the `html2pdf` bundle (§2.3). Plus `dompurify` by election. The licence copy is at [`licenses/Apache-2.0.txt`](licenses/Apache-2.0.txt), and is served to users at `/legal/licenses/Apache-2.0.txt` (§5). 4. **`pdf-parse` declares MIT but embeds Mozilla `pdf.js`, which is Apache-2.0.** The npm metadata does not surface this. It is a whole Apache-2.0 library inside an MIT package, and a scanner reading metadata alone will miss it. 5. **`rgbcolor@1.0.1` declares `MIT OR SEE LICENSE IN FEEL-FREE.md`** — a non-standard identifier (the file says the author does not care what you do with it). Effectively permissive; flagged because it is the one licence string in 97 packages that a human should read rather than parse. 6. **`atob` / `btoa` — `MIT OR Apache-2.0`. We elect MIT** (simplest, no NOTICE obligation). ### 0.1 Distribution posture — what is shipped, what merely runs Asked by counsel 2026-08-19: *are these packages distributed to end users, or merely run remotely?* **Both, and the split is exactly the §1 / §2 boundary.** The dividing line is not "open source or not" but **does a verbatim copy reach the user's machine** — that is what every licence here uses as its trigger word (MIT "copies or substantial portions", Apache-2.0 §4 "reproduce and distribute copies", OFL "distributed"). | | **Tier A — run remotely** | **Tier B — distributed** | |---|---|---| | What | §1: 26 npm packages | §2–4: 73 npm packages in 5 vendored files, 95 Lucide SVGs, 14 Inter subsets | | How it reaches a user | It does not | `