Translate the 159 tools.json keys added upstream after this branch
was opened:
- editPdfText (114) - the PDF text editor
- duplexCollate (43) - the duplex collate tool
- mergePdf.removeDuplicateFonts
- pdfToTiff.alert.conversionOutOfMemory
fa/tools.json is now at full parity with en/tools.json (1039 keys).
Also register Farsi in the README language table and in the
TRANSLATION.md supported-language list and coverage table, matching
what the Korean and Slovak additions did.
Runs typecheck and tests on every push and before publishing. A daily
job rebuilds both vendored tarballs from one commit of the engine fork,
verifies a single wasm ends up on disk, and opens a pull request.
Adds a node-side harness that drives the engine wasm directly, fixtures
that build PDFs in-memory, and cases for font fallback and flattening.
The engine loader now tolerates a runtime without import.meta.resolve so
the suite can load it outside a browser.
Clears the previous document before opening a new one, keeps the
selection when clicking the dock or rotating a box, refreshes the glass
overlay so style changes preview every time, adds double-click word
selection, and widens the Windows font stacks for Indic scripts. The
dock now publishes its own height so the swatches lay out correctly on
small screens.
Exported annotations stayed as live FreeText objects, so viewers that
ignore appearance streams showed nothing and the text was not part of
the page. Flattening draws them into the content stream with an
embedded subset of the font, falling back to the old embed path for
anything the flattener cannot place.
Both vendored packages now come from a single build of the engine fork.
The viewer tarball ships without its own copy of pdfium.wasm and loads
the shared engine through EmbedPDF.init({ wasmUrl }), which drops it
from 7.1 MB to 2.1 MB and removes the second WebAssembly instance.
The star history chart in the README was broken due to GitHub stargazer API restrictions. Update the chart to use a working data source so it displays correctly again.