Collects in-progress work across forms (Ch/Tx field handling, value_text edge cases), layout corrections, stream parser fixes, conformance test expansion, security audit test (TH-08), stream-decoder bomb fixture, debug examples reorganization under examples/debug/, sdk module scaffold, xtask CLI enhancements, and provenance entries for new fixtures. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
156 lines
4.1 KiB
TOML
156 lines
4.1 KiB
TOML
[package]
|
|
name = "pdftract-cli"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
publish = true
|
|
default-run = "pdftract"
|
|
|
|
[build-dependencies]
|
|
libflate = "2"
|
|
|
|
[[bin]]
|
|
name = "pdftract"
|
|
path = "src/main.rs"
|
|
test = true
|
|
|
|
[[bin]]
|
|
name = "generate_lzw_fixtures"
|
|
path = "../../tests/fixtures/generate_lzw_fixtures_main.rs"
|
|
|
|
[[bin]]
|
|
name = "generate_preprocess_fixtures"
|
|
path = "../../tests/fixtures/preprocess/generate_fixtures_main.rs"
|
|
|
|
[[bin]]
|
|
name = "gen_lexer_golden"
|
|
path = "../../tests/gen_lexer_golden.rs"
|
|
|
|
[[bin]]
|
|
name = "build-xref-fixture"
|
|
path = "../../tools/build-xref-fixture/main.rs"
|
|
|
|
[[bin]]
|
|
name = "debug-fingerprint"
|
|
path = "../../tools/debug-fingerprint/main.rs"
|
|
|
|
[[bin]]
|
|
name = "generate_slide_deck_fixtures"
|
|
path = "../../tests/fixtures/generate_slide_deck_fixtures.rs"
|
|
|
|
[[bin]]
|
|
name = "generate_scientific_paper_fixtures"
|
|
path = "../../tests/fixtures/generate_scientific_paper_fixtures.rs"
|
|
|
|
[[bin]]
|
|
name = "generate_book_chapter_fixtures"
|
|
path = "../../tests/fixtures/generate_book_chapter_fixtures.rs"
|
|
|
|
# Removed: generate_fixtures, generate_expected_json (files do not exist)
|
|
|
|
[[bench]]
|
|
name = "grep_1000"
|
|
harness = false
|
|
|
|
[lib]
|
|
name = "pdftract_cli"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
aho-corasick = "1"
|
|
anyhow = { workspace = true }
|
|
atty = "0.2"
|
|
terminal_size = "0.3"
|
|
async-stream = "0.3"
|
|
axum = { version = "0.7", features = ["json", "multipart"] }
|
|
base64 = { workspace = true }
|
|
bytes = "1"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
clap = { version = "4.5", features = ["derive"] }
|
|
crossbeam-channel = "0.5"
|
|
dirs = "5.0"
|
|
hyper = { version = "1.0", features = ["full"] }
|
|
hyper-util = { version = "0.1", features = ["full"] }
|
|
image = "0.24"
|
|
http-body-util = "0.1"
|
|
humantime = "2.1"
|
|
indicatif = { version = "0.17", optional = true }
|
|
num_cpus = "1"
|
|
rayon = "1"
|
|
libloading = { version = "0.8", optional = true }
|
|
lzw = { workspace = true }
|
|
multer = "3"
|
|
pdftract-core = { path = "../pdftract-core" }
|
|
regex = "1.10"
|
|
secrecy = { workspace = true }
|
|
semver = "1.0"
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = "1.0"
|
|
serde_yaml = { version = "0.9", optional = true }
|
|
sha2 = "0.10"
|
|
termcolor = "1.4"
|
|
schemars = { version = "0.8", features = ["derive"] }
|
|
subtle = "2.6"
|
|
tempfile = "3"
|
|
tera = "1"
|
|
tokio = { version = "1", features = ["full"] }
|
|
tokio-stream = "0.1"
|
|
tower = { version = "0.5", features = ["full"] }
|
|
tower-http = { version = "0.5", features = ["cors", "trace", "limit", "compression-full"] }
|
|
tracing = { workspace = true }
|
|
ureq = { version = "2.9", optional = true }
|
|
uuid = { version = "1.0", features = ["v4", "serde"] }
|
|
walkdir = "2"
|
|
chromiumoxide = { version = "0.6", optional = true }
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
libc = "0.2"
|
|
|
|
[features]
|
|
default = []
|
|
# OCR support via Tesseract
|
|
ocr = ["pdftract-core/ocr"]
|
|
# Full rendering via PDFium (JBIG2, JPEG2000, CCITT decoding)
|
|
full-render = ["dep:libloading", "pdftract-core/full-render"]
|
|
# Remote HTTP source support
|
|
remote = ["dep:ureq"]
|
|
# Document profiles
|
|
profiles = ["dep:serde_yaml", "pdftract-core/profiles"]
|
|
# HTTP serve mode
|
|
serve = []
|
|
# MCP server mode
|
|
mcp = []
|
|
# Inspector web viewer
|
|
inspect = []
|
|
# Folder grep mode
|
|
grep = ["dep:indicatif"]
|
|
# Content-addressed cache
|
|
cache = []
|
|
# Visual citation receipts
|
|
receipts = []
|
|
# Markdown output
|
|
markdown = []
|
|
# Headless browser testing for security tests (requires Chrome/Chromium)
|
|
chrome-test = ["chromiumoxide"]
|
|
|
|
[package.metadata.binstall]
|
|
pkg-url = "{ repo }/releases/download/v{ version }/pdftract-v{ version }-{ target }.{ archive-format }"
|
|
pkg-fmt = "tgz"
|
|
bin-dir = "pdftract-v{ version }-{ target }/{ bin }{ binary-ext }"
|
|
|
|
[package.metadata.binstall.overrides.x86_64-pc-windows-gnu]
|
|
pkg-fmt = "zip"
|
|
|
|
[dev-dependencies]
|
|
ureq = { version = "2.9", features = ["socks-proxy"] }
|
|
serde_yaml = "0.9"
|
|
jsonschema = "0.18"
|
|
reqwest = { version = "0.12", features = ["blocking", "json", "rustls-tls", "multipart"], default-features = false }
|
|
schemars = { version = "0.8", features = ["derive"] }
|
|
image = "0.24"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
criterion = "0.5"
|
|
chromiumoxide = "0.6"
|
|
lopdf = "0.34"
|