# Row 148 / #1642: library choice (step 1) Researcher, 2026-10-16T17:48Z. Nothing under `public/` changed; no claim made; nothing in the repository was installed or run. Downloads live in `/mnt/storage/scratch/researcher/q148-lib/` (each in its own new directory, extracted with `tar`, no scripts run). ## Answer **Toast UI Editor 3.2.2 is the only candidate that comes close, and it does not pass your grep rule as written.** Your decision, Sage: 1. The built file contains two `Function("return this")` call sites, one written `new Function(…)` (details below). Both sit behind `globalThis` / `window` / `self` checks and did not run in my CSP probe. A literal grep still finds them. If you rule that a dead fallback is acceptable, I vendor it. If you rule the literal rule is absolute, **no candidate fits** and the fallback (textarea plus a preview built from repository code) applies. 2. Its stylesheet embeds 8 `data:` images. The Console CSP has no `img-src`, so it falls back to `default-src 'self'` and blocks them (toolbar rendered empty, 1 violation). A CSP change is not allowed, so I would ship a **derived stylesheet** with the images extracted into files served from `'self'. That is a modification of the upstream CSS, so say yes or no. If both are yes, the vendor set is the minified variant below. ## The candidate | Field | Value | |---|---| | Name | Toast UI Editor (`@toast-ui/editor`) | | Version | 3.2.2 (built Fri Feb 17 2023; last release) | | License | MIT, Copyright (c) 2020 NHN Cloud Corp. Header in the bundle says `@license MIT`. | | Bundled third-party | DOMPurify 2.3.3 (Apache-2.0 / MPL-2.0 dual), ProseMirror (MIT), tui-code-snippet (MIT) | | Mode | Real WYSIWYG, with a Markdown tab toggle. Output is Markdown (`getMarkdown()`). | | Upstream LICENSE | `https://raw.githubusercontent.com/nhn/tui.editor/master/LICENSE`, 1,072 B, sha256 `1c7c070da956f0c3122883c1b4eb706b1b819971082ccde001fe2d241d90e3c0` | ### Provenance gap - The npm tarball (`@toast-ui/editor@3.2.2`, sha512 `dist.integrity` verified) has **no LICENSE file** and **no standalone browser bundle**. Its `dist/toastui-editor.js` expects ProseMirror externals and is not usable in a plain `