# libheif-js 1.23.2 (libheif 1.23.2 as WebAssembly)

**LGPL notice.** `libheif-bundle.mjs` is object code of libheif (GNU Lesser General Public License 3.0,
`LICENSE-libheif`) with the HEVC decoder libde265 (LGPL-3.0) built into it, distributed by the libheif-js npm package
(`LICENSE`, `package.json`). It is unmodified and is loaded only by `assets/js/convert/heic.js`, with `import()`, inside
a worker; no 2tool code is bundled with it, so it can be replaced by any other build of libheif-js with the same
`HeifDecoder` API. The complete Corresponding Source is in `source/` in this folder (below). You may copy, change and
redistribute it under the LGPL.

## How the file was made

1. libheif-emscripten `v1.23.2` (https://github.com/catdad-experiments/libheif-emscripten) holds libheif as a git
   submodule at commit `ac1cb05c39008f01525c991ff8b88f84ddf70fd2`, which is libheif's tag `v1.23.2`. Its workflow
   (`.github/workflows/emscripten.yml`) builds with Emscripten 3.1.61 by running libheif's own `build-emscripten.sh`
   with `USE_WASM=1 USE_UNSAFE_EVAL=0 USE_TYPESCRIPT=1`. That script downloads and builds libde265 1.0.15
   (`LIBDE265_VERSION` default) and leaves AOM, OpenJPEG and the uncompressed codec off.
2. libheif-js `1.23.2` (https://github.com/catdad-experiments/libheif-js) fetches that release
   (`scripts/install.js`) and wraps it with esbuild into `libheif-wasm/libheif-bundle.mjs` (`scripts/bundle.js`; the
   `.wasm` is inlined, `var process, __dirname;` is added at the top so it never takes the Node path).
3. 2tool copied that file unmodified from npm (via the owner's 1tool checkout). `heif_get_version()` returns `1.23.2`.

## Corresponding Source (`source/`)

Downloaded 27 October 2026. The two library tarballs are the upstream release assets; the two build repositories are
GitHub's archives of their tags.

| File | From | Bytes | sha256 |
|---|---|---|---|
| `libheif-1.23.2.tar.gz` | https://github.com/strukturag/libheif/releases/download/v1.23.2/libheif-1.23.2.tar.gz | 2,111,195 | 8bd5d41d19dc84536d118b04774709f244df6104ef66d623dad5fa4650143405 |
| `libde265-1.0.15.tar.gz` | https://github.com/strukturag/libde265/releases/download/v1.0.15/libde265-1.0.15.tar.gz | 846,016 | 00251986c29d34d3af7117ed05874950c875dd9292d016be29d3b3762666511d |
| `libheif-emscripten-1.23.2.tar.gz` | https://codeload.github.com/catdad-experiments/libheif-emscripten/tar.gz/refs/tags/v1.23.2 | 3,126 | 1b1b71e8b34ccc2b9ba490d769172ad855c279efdc787d8ea7a901af177ebcab |
| `libheif-js-1.23.2.tar.gz` | https://codeload.github.com/catdad-experiments/libheif-js/tar.gz/refs/tags/1.23.2 | 10,268 | a52f4570a2c479db9875fd3d082748e41ed69057c77b81bc8bac7a689feab259 |

(The libheif-emscripten archive has an empty `libheif/` folder where the submodule goes: that is the libheif tarball.)

## The built file

| File | sha256 |
|---|---|
| `libheif-bundle.mjs` | d05292271af008d300cc75be374feb8fd35b418a71420a556c3fb817f662b502 |
