# libheif-js 1.23.2 Compliance Bundle

This folder contains the LGPL compliance materials for the `libheif-js@1.23.2` package shipped in GalleryPlanner.

## Included Files

- `LGPL-3.0.txt`
- `GPL-3.0.txt`
- `libheif-js-source.zip` (source archive produced with `git archive` from the upstream `1.23.2` tag)

## Verified Provenance

The shipped WASM binary is the prebuilt artifact installed by [`libheif-js@1.23.2`](https://github.com/catdad-experiments/libheif-js/tree/1.23.2), whose [`scripts/install.js`](https://github.com/catdad-experiments/libheif-js/blob/1.23.2/scripts/install.js) fetches the [`libheif-emscripten` `v1.23.2` release](https://github.com/catdad-experiments/libheif-emscripten/releases/tag/v1.23.2).

That release builds the [`strukturag/libheif` submodule at `ac1cb05c39008f01525c991ff8b88f84ddf70fd2`](https://github.com/strukturag/libheif/tree/ac1cb05c39008f01525c991ff8b88f84ddf70fd2), whose [`CMakeLists.txt`](https://github.com/strukturag/libheif/blob/ac1cb05c39008f01525c991ff8b88f84ddf70fd2/CMakeLists.txt) declares version `1.23.2`. Its [`build-emscripten.sh`](https://github.com/strukturag/libheif/blob/ac1cb05c39008f01525c991ff8b88f84ddf70fd2/build-emscripten.sh) defaults to `ENABLE_LIBDE265=1` with `LIBDE265_VERSION=1.0.15` and `ENABLE_AOM=0`; the release workflow uses Emscripten `3.1.61`. The linked [`libde265 v1.0.15`](https://github.com/strukturag/libde265/releases/tag/v1.0.15) source is statically linked into the WASM.

## Replace `libheif-js` in This Vite App

1. Update the dependency in `apps/app/package.json` to your replacement package or fork.
2. Update the dynamic decoder import and WASM asset URL in `apps/app/src/workers/heicDecode.worker.ts`.
3. Run `npm install` and `npm run build` to verify browser bundling and HEIC conversion.
4. Re-test HEIC import behavior in Chrome, Firefox, and Safari.
5. If you ship a different library, update `/open-source`, `/terms`, and `/licenses/` notices accordingly.
