Files
pdfcraft/apps/pdfcraft-cli/Cargo.toml
21d5323132 Add faux-redaction audit (paint-order and colour-aware, fail-closed) (#110)
* Rework faux-redaction audit per maintainer review

- Paint-order aware: a rectangle counts as a cover only when painted
  strictly after the text (positions from the joined content stream).
- Colour-aware: WCAG contrast between text and cover must be below 3.0,
  so page backgrounds, table shading and highlights are not flagged.
- Fail closed: audit_redactions returns Err on undecodable content
  streams (decoded_strict) and malformed /Annots; the operator bound is
  an error, not a silent truncation.
- Graphics state carries across a page's content streams (one joined
  walk); form XObjects still isolate their state at Do.
- Audit-only: the sanitize-for-sharing half is dropped (upstream #162).
- Parity entry marked partial, not shipped.

* Audit: register its layer, add a README, fail closed past 32 nested forms, document what it doesn't check

---------

Co-authored-by: Erick Barraza <[email protected]>
Co-authored-by: Brandon Thomas <[email protected]>
2026-10-11 14:32:33 -04:00

37 lines
1.0 KiB
TOML

[package]
name = "pdfcraft-cli"
description = "PdfCraft command-line tool: inspect, render and robustness-check PDFs"
version.workspace = true
edition.workspace = true
license.workspace = true
[[bin]]
name = "pdfcraft-cli"
path = "src/main.rs"
[lints]
workspace = true
[dependencies]
pdfcraft-render = { workspace = true }
serde_json = { workspace = true }
pdfcraft-engine = { workspace = true }
pdfcraft-audit = { workspace = true }
pdfcraft-cos = { workspace = true }
pdfcraft-automation = { workspace = true }
base64 = "0.22"
[target.'cfg(unix)'.dependencies]
# `geteuid` for `ui`'s control-file owner check: safe, so no `unsafe` libc call here.
# Already in Cargo.lock through the GUI crates.
rustix = { version = "1", features = ["process"] }
[build-dependencies]
# VERSIONINFO for pdfcraft-cli.exe; build.rs only uses it when targeting Windows.
winresource = "0.1"
[features]
default = ["mcp"]
# The opt-in MCP server (`pdfcraft-cli mcp`). Build with --no-default-features to leave it out.
mcp = ["pdfcraft-automation/mcp"]