Skip to content

Releases: zzy-12345678/dsh-file-convert

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 14:46

Full Changelog: v0.4.8...v0.5.0

v0.4.8

Choose a tag to compare

@github-actions github-actions released this 24 Oct 07:40

Full Changelog: v0.4.7...v0.4.8

v0.4.7

Choose a tag to compare

@github-actions github-actions released this 18 Oct 06:40

Full Changelog: v0.4.6...v0.4.7

v0.4.6

Choose a tag to compare

@github-actions github-actions released this 30 Sep 16:29

Full Changelog: v0.4.5...v0.4.6

v0.4.5

Choose a tag to compare

@github-actions github-actions released this 14 Sep 13:28

Full Changelog: v0.4.4...v0.4.5

v0.4.4

Choose a tag to compare

@github-actions github-actions released this 03 Sep 10:57

Full Changelog: v0.4.3...v0.4.4

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 30 Aug 14:26

Full Changelog: v0.4.2...v0.4.3

v0.4.0 — page ranges, OCR, on-demand dependencies

Choose a tag to compare

@zzy-12345678 zzy-12345678 released this 30 Aug 12:18

dsh-file-convert v0.4.0

Changed

  • Timeout is now a true cancellation: conversions observe an abort signal, so ffmpeg children are killed and page loops stop instead of running behind an already-returned result.
  • All outputs (images, data, PDF text, page rasters, PDF→DOCX) are written through scratch files and published atomically; a failed page cleans up the pages already written.
  • Windows ffmpeg/ffprobe downloads now install pinned, sha256-verified FFmpeg 6.1.1 static builds (ffmpeg-static, npmmirror binary CDN with a byte-identical GitHub fallback) instead of the 2018-era FFmpeg 4.1 npm packages; a current system ffmpeg keeps priority for untrusted media.
  • outputRoots resolves symlinks (real-path) before confinement, and isSameFile detects symlink aliases of the input.
  • Resource limits are configurable and enforced: maxInputMb (default 2048), maxPdfPages (default 200, applies to implicit full-document rasterization; explicit pages override it) and maxOutputPixels (default 16 MP, clamped per page with a warning).

Added

  • pages option for PDF conversions (convert_file, batch_convert): select pages with ranges like 1-3,5,8-10; outputs keep their real page numbers (doc-3.png), text joins the selected pages.
  • OCR for PDF → TXT: ocr: true (optionally ocr_lang, default chi_sim+eng) rasterizes the pages and recognizes them. Engine priority: a locally installed Tesseract CLI, then the bundled tesseract.js (language data downloads into the plugin cache on first use). Intended for scanned PDFs — inspect_file flags those via likelyScanned.
  • install_ocr_dependencies: explicit download of tesseract.js language data (~10-30 MB per language) into the plugin cache. Conversions never download language data implicitly — without a cached pack they fail with guidance, and a local Tesseract missing a language reads as missing_dependency too.
  • install_ocr_dependencies renamed flow hardened; cached installs are recorded in a manifest.json (version, sha256, size, install date) and flag themselves for a force: true upgrade when they predate it.
  • Security test suite: symlink aliases of the input, symlink escape of outputRoots, oversized SVG, malformed PDF, corrupt media, long file names, concurrent same-output writes and oversized JSON.