# Third-party notices

| Component | Licence | Use |
| --- | --- | --- |
| Next.js | MIT | Web framework |
| React, React DOM | MIT | UI |
| Zustand | MIT | UI state |
| fflate | MIT | ZIP for `.myps` |
| Zod | MIT | Manifest validation |
| DB-IP Lite country database (db-ip.com), CC BY 4.0 | CC BY 4.0 | Country of a client IP for the RU/BY/IR access block. Only the blocked ranges are kept, in `src/geo/blocked-ranges.json` (built by `scripts/geo/build-blocked-ranges.mjs`). Attribution link is on the blocked page |
| lucide-react | ISC | Icons |
| @fontsource/roboto (Roboto, Google) | SIL OFL 1.1 | Self-hosted UI and text font with Cyrillic |
| @fontsource/lora (Lora, Cyreal) | SIL OFL 1.1 | Self-hosted serif text font with Cyrillic |
| SCOWL en_US / en_GB Hunspell word lists (Kevin Atkinson et al., via `dictionary-en` 4.0.0 / `dictionary-en-gb` 3.0.0) | MIT AND BSD (SCOWL/Ispell permissive licence) | Spell check word lists `public/dict/en-US.txt`, `en-GB.txt` (affixes expanded by `scripts/build-dict.mjs`); licence text in `public/dict/LICENSE-en.txt` |
| onnxruntime-web (Microsoft) | MIT | In-browser model inference; WASM files copied to `public/ort/` |
| pdfjs-dist (pdf.js, Mozilla) 5.4.296 | Apache-2.0 | PDF page rendering for PDF / PDF-compatible AI import, loaded only when a PDF is opened; worker and `openjpeg.wasm` (OpenJPEG, BSD-2-Clause) copied to `public/pdfjs/` with the licence |
| libheif-js 1.23.5 (libheif and libde265 compiled to WebAssembly, Kiril Vatev / struktur AG / Dirk Farin) | LGPL-3.0 | HEIC/HEIF decoding in browsers without a HEVC decoder. Shipped unmodified as a separate, dynamically loaded chunk (only when a HEIC file is opened), so it can be replaced; source: https://github.com/catdad-experiments/libheif-js and https://github.com/strukturag/libheif |
| U²-Net small (u2netp) model weights, Xuebin Qin et al. | Apache-2.0 | Background removal model, `public/models/u2netp.onnx` |
| rembg ONNX export of u2netp (Daniel Gatis) | MIT | Source of the `.onnx` file (release v0.0.0); details and sha256 in `MODEL_MANIFEST.json` |
| MediaPipe Face Mesh (Google LLC), `@mediapipe/face_mesh` 0.4.1633559619 | Apache-2.0 | Face landmarks for Face-Aware Liquify. Copied to `public/mediapipe/face_mesh/` at install time (`scripts/copy-mediapipe.mjs`); checksums in `MODEL_MANIFEST.json` (`face-mesh-468`) |

Dev only: TypeScript (Apache-2.0), ESLint (MIT), eslint-config-next (MIT), Vitest (MIT), Playwright (Apache-2.0).

The Ukrainian spell-check list `public/dict/uk.txt` is a small word list written for this project (no third-party dictionary; `dictionary-uk` is GPL-3.0 and is not used). Font licence texts ship inside the npm packages (`node_modules/@fontsource/*/LICENSE`). No Adobe or Photopea code, assets or branding are used. Test fixtures are synthetic and generated by `tests/fixtures/make_fixtures.py`.
Font licence texts ship inside the npm packages (`node_modules/@fontsource/*/LICENSE`); copies are served from `public/licenses/<Family>-OFL.txt` and File ▸ Package… puts them next to the bundled woff2 files (OFL 1.1 permits redistribution with the licence). No Adobe or Photopea code, assets or branding are used. Test fixtures are synthetic and generated by `tests/fixtures/make_fixtures.py`.

Model provenance: U²-Net, "U²-Net: Going Deeper with Nested U-Structure for Salient Object Detection" (Qin et al., Pattern Recognition 2020), https://github.com/xuebinqin/U-2-Net, Apache License 2.0. The ONNX file was downloaded from https://github.com/danielgatis/rembg/releases/download/v0.0.0/u2netp.onnx and is verified by sha256 at load time. `@imgly/background-removal` (AGPL) is not used.

W8 classical image algorithms, written in TypeScript from the published descriptions (no third-party code copied): GrabCut (Rother, Kolmogorov, Blake 2004) for Object Selection, non-local means (Buades, Coll, Morel 2005) for denoise, Richardson-Lucy deconvolution for deblur, and Lanczos-3 resampling for the edge-aware upscale (`src/ai/`). No new model weights ship with this build. The upscale, denoise, deblur, restore and people slots load a model only from a build-time URL (`NEXT_PUBLIC_MYPS_*_MODEL_URL`); none is set by default.
