# third-party notices for the simulator (`sim/`)

The simulator page is MIT (`LICENSE` in this folder, shipped as `LICENSE.txt` next to the page; the repository has the same license). It ships, or loads at run time, the projects below under their own licenses. Versions are the ones pinned in `package-lock.json` on 2026-10-03. This file and every license text named here are copied into the built page (`dist/`), so they are served next to it; in the repository the texts are in each package under `node_modules/` after `npm ci`.

This file is a list of what the page is built from and where each license text lives. It has not been reviewed by a lawyer.

## 1. Programs run as WebAssembly (not npm bundles of this page's code)

| project | version | license | copyright / source |
|---|---|---|---|
| Icarus Verilog (`iverilog`, `vvp`) | upstream commit `07dd50d37e36af1397f51bfeadaa5b5d0dc62fb5` (v13-branch, 2026-04-30) | GPL-2.0, full text in [`licenses/iverilog-COPYING.txt`](licenses/iverilog-COPYING.txt) (the `COPYING` of that commit, sha256 `8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643`) | Stephen Williams and contributors, https://github.com/steveicarus/iverilog. Our changes are one patch, `src/tb/wasm/build/patches/0001-iverilog-wasm-static-modules-inprocess-exec.patch`; the build is `src/tb/wasm/build/build.sh` (two `em++` links, then `fix-glue.py`). The resulting `iverilog.{mjs,wasm}` / `vvp.{mjs,wasm}` are in `src/tb/wasm/`. |
| Yosys as WebAssembly (`@yowasp/yosys`) | 0.70.62-dev.1236 | ISC (the npm package's `"license"` field; it carries no license file) | Yosys: Claire Xenia Wolf and contributors, https://github.com/YosysHQ/yosys (ISC). WebAssembly packaging: YoWASP, https://yowasp.org/, https://github.com/YoWASP/yosys. `yosys.core.wasm` also contains ABC (UC Berkeley; its strings are in the binary), licensed by `copyright.txt` in https://github.com/berkeley-abc/abc; that text is not reproduced here. |

## 2. JavaScript the page imports directly (in `sim/src`)

Confirmed by the import statements in `sim/src/**`; these are in the built bundle.

| package | version | license | copyright / source |
|---|---|---|---|
| `digitaljs` | 0.14.2 | BSD-2-Clause | Copyright 2018 Marek Materzok, https://github.com/tilk/digitaljs |
| `yosys2digitaljs` | 0.10.3 | BSD-2-Clause | Copyright 2018 Marek Materzok, https://github.com/tilk/yosys2digitaljs |
| `3vl` | 1.0.1 | BSD-2-Clause | Marek Materzok, https://github.com/tilk/3vl |
| CodeMirror (`@codemirror/commands`, `@codemirror/language`, `@codemirror/legacy-modes`, `@codemirror/state`, `@codemirror/view`, `@lezer/highlight`) | 6.11.1, 6.12.4, 6.5.4, 6.7.5, 6.43.12, 1.2.3 | MIT | Copyright (C) 2018-2021 by Marijn Haverbeke and others, https://codemirror.net/ |
| `lz-string` | 1.5.0 | MIT | Copyright (c) 2013 pieroxy, https://github.com/pieroxy/lz-string |

## 3. Pulled in by those (transitive) and present in the bundle

`digitaljs` and `yosys2digitaljs` depend on the packages below. "Present" means identifier strings of the package were found in the built `dist/assets/*.js` on 2026-10-03; a string match is evidence, not a full audit.

| package | version | license | copyright / source |
|---|---|---|---|
| JointJS (`@joint/core`) | 4.1.3 | **MPL-2.0** | client IO Ltd, https://github.com/clientIO/joint. MPL-2.0 requires that the source of the MPL-covered files stay available: the unmodified source is the npm package `@joint/core@4.1.3` and the repository above; this page does not modify it. |
| jQuery (`jquery`) | 3.7.1 | MIT | OpenJS Foundation and other contributors, https://jquery.com/ |
| `@dagrejs/graphlib` | 2.1.13 | MIT | Chris Pettitt, https://github.com/dagrejs/graphlib |
| `big-integer` | 1.6.52 | Unlicense | Peter Olson, https://github.com/peterolson/BigInteger.js |
| `truncate-utf8-bytes` | 1.0.2 | WTFPL (declared in `package.json`; the package has no license file) | Parsha Pourkhomami, https://github.com/parshap/truncate-utf8-bytes |
| `topsort` | 0.0.2 | Apache-2.0 (the package ships the Apache-2.0 text as `LICENSE` but declares no `license` field, so the inventory below says "none declared") | https://github.com/thlorenz/topsort |

## 4. Everything in the lockfile that is not dev-only

The build cannot easily prove which transitive packages survive tree-shaking (for example `elkjs` EPL-2.0, `fastpriorityqueue` and `web-worker` Apache-2.0, `jquery-ui` MIT, `@joint/layout-directed-graph` MPL-2.0 are dependencies of `digitaljs` but their names were not found in the bundle), so the complete install set is listed, with each license text that exists shipped under `licenses/`. Generated from `package-lock.json` by `scripts/notices.mjs`; the Vite build regenerates it into `dist/`.

<!-- inventory:begin (generated by scripts/notices.mjs, do not edit by hand) -->
Packages in `package-lock.json` that are not dev-only (77). `license` is the field npm recorded; `text` is the license file found in the installed package, shipped next to this file under `licenses/`.

| package | version | license | text |
|---|---|---|---|
| `@codemirror/autocomplete` | 6.20.3 | MIT | [LICENSE](licenses/codemirror-autocomplete-6.20.3.txt) |
| `@codemirror/commands` | 6.11.1 | MIT | [LICENSE](licenses/codemirror-commands-6.11.1.txt) |
| `@codemirror/language` | 6.12.4 | MIT | [LICENSE](licenses/codemirror-language-6.12.4.txt) |
| `@codemirror/legacy-modes` | 6.5.4 | MIT | [LICENSE](licenses/codemirror-legacy-modes-6.5.4.txt) |
| `@codemirror/lint` | 6.9.7 | MIT | [LICENSE](licenses/codemirror-lint-6.9.7.txt) |
| `@codemirror/search` | 6.7.2 | MIT | [LICENSE](licenses/codemirror-search-6.7.2.txt) |
| `@codemirror/state` | 6.7.5 | MIT | [LICENSE](licenses/codemirror-state-6.7.5.txt) |
| `@codemirror/view` | 6.43.12 | MIT | [LICENSE](licenses/codemirror-view-6.43.12.txt) |
| `@dagrejs/dagre` | 1.0.4 | MIT | [LICENSE](licenses/dagrejs-dagre-1.0.4.txt) |
| `@dagrejs/graphlib` | 2.1.13 | MIT | [LICENSE](licenses/dagrejs-graphlib-2.1.13.txt) |
| `@joint/core` | 4.1.3 | MPL-2.0 | [LICENSE](licenses/joint-core-4.1.3.txt) |
| `@joint/layout-directed-graph` | 4.1.4 | MPL-2.0 | [LICENSE](licenses/joint-layout-directed-graph-4.1.4.txt) |
| `@lezer/common` | 1.5.2 | MIT | [LICENSE](licenses/lezer-common-1.5.2.txt) |
| `@lezer/highlight` | 1.2.3 | MIT | [LICENSE](licenses/lezer-highlight-1.2.3.txt) |
| `@lezer/lr` | 1.4.10 | MIT | [LICENSE](licenses/lezer-lr-1.4.10.txt) |
| `@marijn/find-cluster-break` | 1.0.4 | MIT | [LICENSE](licenses/marijn-find-cluster-break-1.0.4.txt) |
| `@yowasp/yosys` | 0.70.62-dev.1236 | ISC | no license file in the package |
| `3vl` | 1.0.1 | BSD-2-Clause | [LICENSE](licenses/3vl-1.0.1.txt) |
| `assert` | 2.1.0 | MIT | [LICENSE](licenses/assert-2.1.0.txt) |
| `available-typed-arrays` | 1.0.7 | MIT | [LICENSE](licenses/available-typed-arrays-1.0.7.txt) |
| `big-integer` | 1.6.52 | Unlicense | [LICENSE](licenses/big-integer-1.6.52.txt) |
| `call-bind` | 1.0.9 | MIT | [LICENSE](licenses/call-bind-1.0.9.txt) |
| `call-bind-apply-helpers` | 1.0.2 | MIT | [LICENSE](licenses/call-bind-apply-helpers-1.0.2.txt) |
| `call-bound` | 1.0.4 | MIT | [LICENSE](licenses/call-bound-1.0.4.txt) |
| `codemirror` | 6.0.2 | MIT | [LICENSE](licenses/codemirror-6.0.2.txt) |
| `crelt` | 1.0.7 | MIT | [LICENSE](licenses/crelt-1.0.7.txt) |
| `define-data-property` | 1.1.4 | MIT | [LICENSE](licenses/define-data-property-1.1.4.txt) |
| `define-properties` | 1.2.1 | MIT | [LICENSE](licenses/define-properties-1.2.1.txt) |
| `digitaljs` | 0.14.2 | BSD-2-Clause | [LICENSE](licenses/digitaljs-0.14.2.txt) |
| `dunder-proto` | 1.0.1 | MIT | [LICENSE](licenses/dunder-proto-1.0.1.txt) |
| `elkjs` | 0.11.1 | EPL-2.0 | [LICENSE.md](licenses/elkjs-0.11.1.txt) |
| `es-define-property` | 1.0.1 | MIT | [LICENSE](licenses/es-define-property-1.0.1.txt) |
| `es-errors` | 1.3.0 | MIT | [LICENSE](licenses/es-errors-1.3.0.txt) |
| `es-object-atoms` | 1.1.2 | MIT | [LICENSE](licenses/es-object-atoms-1.1.2.txt) |
| `fastpriorityqueue` | 0.7.5 | Apache-2.0 | [LICENSE](licenses/fastpriorityqueue-0.7.5.txt) |
| `for-each` | 0.3.5 | MIT | [LICENSE](licenses/for-each-0.3.5.txt) |
| `function-bind` | 1.1.2 | MIT | [LICENSE](licenses/function-bind-1.1.2.txt) |
| `generator-function` | 2.0.1 | MIT | [LICENSE.md](licenses/generator-function-2.0.1.txt) |
| `get-intrinsic` | 1.3.0 | MIT | [LICENSE](licenses/get-intrinsic-1.3.0.txt) |
| `get-proto` | 1.0.1 | MIT | [LICENSE](licenses/get-proto-1.0.1.txt) |
| `gopd` | 1.2.0 | MIT | [LICENSE](licenses/gopd-1.2.0.txt) |
| `has-property-descriptors` | 1.0.2 | MIT | [LICENSE](licenses/has-property-descriptors-1.0.2.txt) |
| `has-symbols` | 1.1.0 | MIT | [LICENSE](licenses/has-symbols-1.1.0.txt) |
| `has-tostringtag` | 1.0.2 | MIT | [LICENSE](licenses/has-tostringtag-1.0.2.txt) |
| `hashmap` | 2.4.0 | MIT | [LICENSE](licenses/hashmap-2.4.0.txt) |
| `hasown` | 2.0.4 | MIT | [LICENSE](licenses/hasown-2.0.4.txt) |
| `inherits` | 2.0.4 | ISC | [LICENSE](licenses/inherits-2.0.4.txt) |
| `is-arguments` | 1.2.0 | MIT | [LICENSE](licenses/is-arguments-1.2.0.txt) |
| `is-callable` | 1.2.7 | MIT | [LICENSE](licenses/is-callable-1.2.7.txt) |
| `is-generator-function` | 1.1.2 | MIT | [LICENSE](licenses/is-generator-function-1.1.2.txt) |
| `is-nan` | 1.3.2 | MIT | [LICENSE](licenses/is-nan-1.3.2.txt) |
| `is-regex` | 1.2.1 | MIT | [LICENSE](licenses/is-regex-1.2.1.txt) |
| `is-typed-array` | 1.1.15 | MIT | [LICENSE](licenses/is-typed-array-1.1.15.txt) |
| `jquery` | 3.7.1 | MIT | [LICENSE.txt](licenses/jquery-3.7.1.txt) |
| `jquery-ui` | 1.14.2 | MIT | [LICENSE.txt](licenses/jquery-ui-1.14.2.txt) |
| `lz-string` | 1.5.0 | MIT | [LICENSE](licenses/lz-string-1.5.0.txt) |
| `math-intrinsics` | 1.1.0 | MIT | [LICENSE](licenses/math-intrinsics-1.1.0.txt) |
| `minimist` | 1.2.8 | MIT | [LICENSE](licenses/minimist-1.2.8.txt) |
| `object-is` | 1.1.6 | MIT | [LICENSE](licenses/object-is-1.1.6.txt) |
| `object-keys` | 1.1.1 | MIT | [LICENSE](licenses/object-keys-1.1.1.txt) |
| `object.assign` | 4.1.7 | MIT | [LICENSE](licenses/object.assign-4.1.7.txt) |
| `possible-typed-array-names` | 1.1.0 | MIT | [LICENSE](licenses/possible-typed-array-names-1.1.0.txt) |
| `safe-regex-test` | 1.1.0 | MIT | [LICENSE](licenses/safe-regex-test-1.1.0.txt) |
| `sanitize-filename` | 1.6.4 | WTFPL OR ISC | [LICENSE.md](licenses/sanitize-filename-1.6.4.txt) |
| `set-function-length` | 1.2.2 | MIT | [LICENSE](licenses/set-function-length-1.2.2.txt) |
| `style-mod` | 4.1.4 | MIT | [LICENSE](licenses/style-mod-4.1.4.txt) |
| `tmp` | 0.2.7 | MIT | [LICENSE](licenses/tmp-0.2.7.txt) |
| `tmp-promise` | 3.0.3 | MIT | no license file in the package |
| `topsort` | 0.0.2 | none declared | [LICENSE](licenses/topsort-0.0.2.txt) |
| `truncate-utf8-bytes` | 1.0.2 | WTFPL | no license file in the package |
| `utf8-byte-length` | 1.0.5 | (WTFPL OR MIT) | [LICENSE.MIT.txt](licenses/utf8-byte-length-1.0.5.txt) |
| `util` | 0.12.5 | MIT | [LICENSE](licenses/util-0.12.5.txt) |
| `w3c-keyname` | 2.2.8 | MIT | [LICENSE](licenses/w3c-keyname-2.2.8.txt) |
| `wavecanvas` | 1.1.1 | BSD-2-Clause | [LICENSE](licenses/wavecanvas-1.1.1.txt) |
| `web-worker` | 1.5.0 | Apache-2.0 | [LICENSE](licenses/web-worker-1.5.0.txt) |
| `which-typed-array` | 1.1.24 | MIT | [LICENSE](licenses/which-typed-array-1.1.24.txt) |
| `yosys2digitaljs` | 0.10.3 | BSD-2-Clause | [LICENSE](licenses/yosys2digitaljs-0.10.3.txt) |
<!-- inventory:end -->

## 5. Build and test tools (not shipped)

| package | version | license | source |
|---|---|---|---|
| vite | 8.3.0 | MIT | Evan You and contributors, https://vitejs.dev/ |
| playwright | 1.58.1 | Apache-2.0 | Microsoft, https://playwright.dev/ |
| Emscripten (built the iverilog/vvp wasm) | 6.0.2 | MIT / UIUC | https://emscripten.org/ |
