mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-24 10:08:00 -06:00
A /ToUnicode CMap with any unparsable part made the reading path discard the whole map and fall back to the font encoding, so search and redaction missed text the edit layer could read. Vendor hayro-cmap 0.1.0 and patch it to skip malformed bfchar/bfrange entries, unresolvable usecmap references and unparseable tails, keeping every readable entry, matching MuPDF/pdftotext and PdfCraft's own edit-layer parser. Fixes #3177. Signed-off-by: Charan Rathore <180254320+charan-rathore@users.noreply.github.com>
119 lines
4.8 KiB
TOML
119 lines
4.8 KiB
TOML
[workspace]
|
|
resolver = "3"
|
|
members = ["crates/*", "apps/*", "xtask"]
|
|
exclude = ["vendor"]
|
|
default-members = ["crates/*", "apps/pdfcraft", "apps/pdfcraft-cli", "xtask"]
|
|
|
|
[workspace.package]
|
|
version = "0.8.0"
|
|
edition = "2024"
|
|
license = "MIT OR Apache-2.0"
|
|
rust-version = "1.95"
|
|
repository = "https://github.com/storytold/pdfcraft"
|
|
|
|
[workspace.dependencies]
|
|
# Shared frontend components; engines remain independent of egui.
|
|
craft-ui = { git = "https://github.com/storytold/craft-libs", version = "0.1.0", rev = "5c874d51eeb3de70e735c8ce87a59a7dedd47675", features = ["serde"] }
|
|
# Quit the macOS way (#1136): ⌘Q asks about unsaved changes, and closing quits through `terminate:`.
|
|
craft-quit = { git = "https://github.com/storytold/craft-libs", version = "0.1.0", rev = "f58bc1a3df490992d633393d0898af0588ce882c" }
|
|
# Shared system spooler; document composition remains in pdfcraft-print.
|
|
craft-print = { git = "https://github.com/storytold/craft-libs", version = "0.1.0", rev = "666c358065261a2816b376fa3bb10538dbf53040" }
|
|
# internal
|
|
pdfcraft-geom = { path = "crates/geom", version = "0.8.0" }
|
|
pdfcraft-filters = { path = "crates/filters", version = "0.8.0" }
|
|
pdfcraft-cos = { path = "crates/cos", version = "0.8.0" }
|
|
pdfcraft-crypt = { path = "crates/crypt", version = "0.8.0" }
|
|
pdfcraft-organize = { path = "crates/organize", version = "0.8.0" }
|
|
pdfcraft-measure = { path = "crates/measure", version = "0.8.0" }
|
|
pdfcraft-annot = { path = "crates/annot", version = "0.8.0" }
|
|
pdfcraft-audit = { path = "crates/audit", version = "0.8.0" }
|
|
pdfcraft-fonts = { path = "crates/fonts", version = "0.8.0" }
|
|
pdfcraft-model = { path = "crates/model", version = "0.8.0" }
|
|
pdfcraft-content = { path = "crates/content", version = "0.8.0" }
|
|
pdfcraft-redact = { path = "crates/redact", version = "0.8.0" }
|
|
pdfcraft-print = { path = "crates/print", version = "0.8.0" }
|
|
pdfcraft-xfdf = { path = "crates/xfdf", version = "0.8.0" }
|
|
pdfcraft-sign = { path = "crates/sign", version = "0.8.0" }
|
|
pdfcraft-optimize = { path = "crates/optimize", version = "0.8.0" }
|
|
pdfcraft-a11y = { path = "crates/a11y", version = "0.8.0" }
|
|
pdfcraft-oracle = { path = "crates/oracle", version = "0.8.0" }
|
|
pdfcraft-testkit = { path = "crates/testkit", version = "0.8.0" }
|
|
pdfcraft-ocr = { path = "crates/ocr", version = "0.8.0" }
|
|
pdfcraft-js = { path = "crates/js", version = "0.8.0" }
|
|
pdfcraft-compare = { path = "crates/compare", version = "0.8.0" }
|
|
pdfcraft-preflight = { path = "crates/preflight", version = "0.8.0" }
|
|
pdfcraft-export = { path = "crates/export", version = "0.8.0" }
|
|
pdfcraft-edit = { path = "crates/edit", version = "0.8.0" }
|
|
pdfcraft-create = { path = "crates/create", version = "0.8.0" }
|
|
pdfcraft-forms = { path = "crates/forms", version = "0.8.0" }
|
|
pdfcraft-xfa = { path = "crates/xfa", version = "0.8.0" }
|
|
pdfcraft-render = { path = "crates/render", version = "0.8.0" }
|
|
pdfcraft-engine = { path = "crates/engine", version = "0.8.0" }
|
|
pdfcraft-platform = { path = "crates/platform", version = "0.8.0" }
|
|
pdfcraft-ui-egui = { path = "crates/ui-egui", version = "0.8.0" }
|
|
pdfcraft-automation = { path = "crates/automation", version = "0.8.0", default-features = false }
|
|
|
|
# pdf
|
|
hayro = "0.7.1"
|
|
hayro-syntax = "0.7.2"
|
|
lopdf = "0.45"
|
|
flate2 = { version = "1.1", default-features = false, features = ["rust_backend"] }
|
|
weezl = "0.2"
|
|
|
|
# foundation
|
|
thiserror = "2"
|
|
serde = { version = "1", features = ["derive", "rc"] }
|
|
serde_json = "1"
|
|
log = "0.4"
|
|
kurbo = "0.13"
|
|
|
|
# testing
|
|
proptest = "1"
|
|
|
|
# ui
|
|
egui = "0.36"
|
|
egui_extras = { version = "0.36", default-features = false, features = ["svg"] }
|
|
eframe = { version = "0.36", default-features = false }
|
|
egui_kittest = "0.36"
|
|
rfd = "0.17"
|
|
|
|
[workspace.lints.rust]
|
|
unsafe_code = "forbid"
|
|
|
|
[workspace.lints.clippy]
|
|
dbg_macro = "warn"
|
|
todo = "warn"
|
|
|
|
# `"*"` matches every non-workspace package: crates.io dependencies and the
|
|
# vendored crates under `vendor/` (excluded from the workspace). Our own crates
|
|
# keep full debug info. Dependencies keep only line tables, so backtraces still
|
|
# show file and line, but debug info for the whole dependency graph stays out of
|
|
# every test binary (each UI test binary had a 500-600 MB PDB on Windows, #454).
|
|
[profile.dev.package."*"]
|
|
opt-level = 2
|
|
debug = "line-tables-only"
|
|
|
|
[profile.dev]
|
|
opt-level = 1
|
|
|
|
[profile.low-disk]
|
|
inherits = "dev"
|
|
debug = "line-tables-only"
|
|
incremental = false
|
|
|
|
[profile.release]
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
|
|
# Vendored, patched third-party crates (see vendor/README.md). Each patch is meant to go upstream.
|
|
[patch.crates-io]
|
|
hayro-interpret = { path = "vendor/hayro-interpret" }
|
|
hayro = { path = "vendor/hayro" }
|
|
hayro-syntax = { path = "vendor/hayro-syntax" }
|
|
hayro-cmap = { path = "vendor/hayro-cmap" }
|
|
hayro-jbig2 = { path = "vendor/hayro-jbig2" }
|
|
lopdf = { path = "vendor/lopdf" }
|
|
winit = { path = "vendor/winit" }
|
|
egui-wgpu = { path = "vendor/egui-wgpu" }
|
|
vello_common = { path = "vendor/vello_common" }
|