867 Commits

Author SHA1 Message Date
Emrik Östling f444d84d4d ci: add xss scan (#614) 2026-08-19 22:35:14 +02:00
Orban Gergo 126fd4357d feat(calibre): add azw3 to supported input formats (#610) 2026-08-19 22:01:08 +02:00
Orban Gergo 3f91d518ba feat(soffice): add support for Excel and Calc spreadsheet conversions (#609) 2026-08-19 21:58:02 +02:00
Kanashimo a7722c1f77 chore: add missing PORT environment variable to README (#576) 2026-08-19 21:48:21 +02:00
Laertes87 ddd782decc fix: version printing (#606)
Co-authored-by: Emrik Östling <emrik.ostling@gmail.com>
2026-08-19 21:45:07 +02:00
Emrik Östling c8551d9548 chore: update deps (#605) 2026-08-10 22:45:52 +02:00
Emrik Östling 85355c64b3 ci: change autolabeler to a custom built (#603) 2026-08-10 20:04:33 +02:00
Laertes87 84e954948b test: add unit tests for main and db and improve coverage (#596) 2026-08-07 20:31:44 +02:00
Emrik Östling 5cf7703dd4 fix: better 404 message in logs (#599) 2026-08-04 22:02:26 +02:00
Rayan Salhab 3602f12113 fix(dasel): update converter for v3 CLI (#591) 2026-08-03 21:37:21 +02:00
桌子潔 15e4046c19 fix(results): encode download filenames (#587) 2026-08-03 21:21:08 +02:00
casi3 7157d2398e Apply EXIF orientation when converting images with ImageMagick (#577) 2026-08-03 21:20:35 +02:00
tr3lane dc61643912 fix(libreoffice): don't force MS Word 97 infilter on .wps (#585)
* fix(libreoffice): don't force MS Word 97 infilter on .wps

.wps is Microsoft Works, not MS Word 97/.doc. Forcing that infilter
makes soffice reject a genuine Works document with "source file could
not be loaded", even though the same file converts fine when no
--infilter is passed at all (LibreOffice auto-detects it correctly).

Fixes #582

* test: lock in wps export direction; document why null covers both sides

Per review: the filter map feeds both --infilter and the --convert-to
suffix, so wps: null also affects exporting TO wps. That is deliberate
and behavior-preserving: LibreOffice has no Works export filter (its
MS_Works filter is import-only), and bare `--convert-to wps` falls back
to LibreOffice's default export filter for the extension - "MS Word 97",
the exact filter this map pinned before, so export output is unchanged.
Adds a regression test asserting the docx -> wps invocation.

---------

Co-authored-by: tr3lane <182920672+tr3lane@users.noreply.github.com>
2026-07-29 11:01:02 +02:00
Emrik Östling 393441faa1 chore: fix release config 2026-06-21 22:40:20 +02:00
Emrik Östling cc4de7625d chore: refresh lockfile 2026-06-21 22:40:09 +02:00
Emrik Östling 174877cd88 ci: remove bump version action 2026-06-21 22:39:58 +02:00
Emrik Östling eceb29c22d chore: prepare for 0.18.0 v0.18.0 2026-06-21 22:29:15 +02:00
Emrik Östling 4bdb643ed4 chore(deps): bump deps 2026-06-21 22:26:09 +02:00
Emrik Östling e125326720 Merge commit from fork
Co-authored-by: Ayushi Rathore <ayushirathore@Ayushis-MacBook-Air.local>
2026-06-21 21:04:29 +02:00
Fluxmux 0965928949 security: fix path traversal vulnerability in conversion API (#532) 2026-04-27 21:43:47 +02:00
Dante Barbieri 1ba82cf1b2 fix(assimp): pass -f<format> so non-extension targets work (#557)
* fix(assimp): pass -f<format> so non-extension targets work

The assimp converter invokes `assimp export <in> <out>` and relies on
assimp's extension-based format inference to pick the output format.
That works for targets whose id happens to match a real file extension
(glb, gltf, obj, stl, ply, etc.) but silently fails for every target
whose assimp id is not a conventional filename extension:

  glb2, gltf2, objnomtl, stlb, plyb, fbxa, assbin, assxml, pbrt, assjson

Picking any of those in the UI aborts the job with:

  assimp export: no output format specified and I failed to guess it

assimp_cmd's `-f<h>` flag overrides extension inference, and the values
in `properties.to.object` already correspond 1:1 to assimp's format ids
(verified against `assimp listexport`). Passing `-f${convertTo}` makes
every advertised target work without changing anything else.

Reproduction: upload any .stl, convert to glb2. Before: ENOENT on the
nonexistent output file. After: valid binary glTF 2.0.

* fix(assimp): write real file extensions for non-extension format ids

Follow-up to the previous commit. With `-f<format>` now passed to
assimp, every advertised target exports successfully — but seven of
them still produce files with assimp's internal format id as the
extension, which no third-party viewer recognises:

  glb2 → .glb2   (really binary glTF 2.0, should be .glb)
  gltf2 → .gltf2 (text glTF 2.0, should be .gltf)
  objnomtl → .objnomtl   (OBJ without .mtl, should be .obj)
  stlb → .stlb   (binary STL, should be .stl)
  plyb → .plyb   (binary PLY, should be .ply)
  fbxa → .fbxa   (ASCII FBX, should be .fbx)
  assjson → .assjson   (JSON dump, should be .json)

Map these in `normalizeOutputFiletype`, the same helper that already
handles jpeg→jpg, latex→tex, markdown→md. The format id on `convertTo`
is untouched, so `assimp -f<id>` still selects the correct
encoding/variant — only the output filename changes.

assbin, assxml, and pbrt are both the format id and the canonical
extension, so they need no mapping.

* style(assimp): fix prettier formatting
2026-04-22 22:28:52 +02:00
Emrik Östling 70fcc8413f chore: downgrade elysia to 1.4.22 (#551)
* chore: downgrade elysia to 1.4.22

* chore: add  ca-certificates
2026-03-28 12:25:14 +01:00
renovate[bot] bee3f6302b chore(deps): update docker/login-action action to v4 (#545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-04 15:41:11 +01:00
renovate[bot] 0d201261c8 chore(deps): lock file maintenance (#542)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-02 08:38:02 +01:00
renovate[bot] f1439faf12 chore(deps): update github artifact actions (#540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-28 21:39:32 +01:00
renovate[bot] 9cbd233dd6 chore(deps): lock file maintenance (#539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-23 08:44:58 +01:00
renovate[bot] 7c93846afa chore(deps): lock file maintenance (#537)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-17 23:09:12 +01:00
Emrik Östling b013b4d0bc feat: update to debian testing (forky) (#534) 2026-02-15 12:49:11 +01:00
Giulio Librando d291f049b8 fix: allow dynamic server port via environment variable (#530) 2026-02-11 18:06:23 +01:00
Emrik Östling 8aa23c75aa Potential fix for code scanning alert no. 4: Workflow does not contain permissions (#527) 2026-02-11 17:35:23 +01:00
renovate[bot] 0483392f7e chore(deps): lock file maintenance (#533)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-09 08:17:45 +01:00
renovate[bot] debbe5d1d4 chore(deps): update eslint monorepo to v10 (#531)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-07 12:09:41 +01:00
renovate[bot] cd32144bce chore(deps): lock file maintenance (#528)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-02 08:54:23 +01:00
Emrik Östling f747a5b94b chore: update eslint config (#521) 2026-01-30 19:10:03 +01:00
Toni Ros 52af8d5824 PDF to DOCX using LibreOffice, fixes #425 (#510)
* Fix to issue #425

* Fix to Fix error in previous fix, and adapt tests

* Fix to Fix error in previous fix, and adapt tests plus prettier

* Update tests/converters/libreoffice.test.ts

Thanks

Co-authored-by: Emrik Östling <emrik.ostling@gmail.com>

* Update src/converters/libreoffice.ts

Thanks

Co-authored-by: Emrik Östling <emrik.ostling@gmail.com>

* Update src/converters/libreoffice.ts

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: Emrik Östling <emrik.ostling@gmail.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-01-29 17:20:12 +01:00
Emrik Östling 8129ecdc39 chore: update deps (#522) 2026-01-26 20:48:26 +01:00
renovate[bot] 18f2aa8562 chore(deps): update dependency eslint-plugin-better-tailwindcss to v4 (#506)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Emrik Östling <emrik.ostling@gmail.com>
2026-01-26 19:44:19 +01:00
renovate[bot] 081f62de95 chore(deps): lock file maintenance (#519)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-26 07:52:27 +01:00
renovate[bot] 1032311299 chore(deps): lock file maintenance (#512)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-19 09:24:59 +01:00
Emrik Östling 6c812b44bb chore: prepare for 0.17.0 v0.17.0 2026-01-13 20:38:35 +01:00
Emrik Östling 7a936bdc04 Merge commit from fork 2026-01-13 20:34:21 +01:00
renovate[bot] 7ec6b66da8 chore(deps): lock file maintenance (#501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-12 17:22:22 +01:00
Emrik Östling bb751163ba chore: add comment to dev compose file 2026-01-11 17:46:56 +01:00
kunal763 c3f17cc5a7 feat: add VCF to CSV converter (#497) 2026-01-11 16:38:32 +01:00
Mehul Anshumali 60f6f5b77f fix(docker): add python3-tinycss2 for Inkscape DXF export (#498)
Co-authored-by: Mehul Anshumali <mehul.a@phonepe.com>
2026-01-11 16:18:46 +01:00
Emrik Östling bbf6f6ba52 Fix Polish tutorial link in README.md 2026-01-08 21:53:34 +01:00
Emrik Östling 9802519e45 Add Polish tutorial link to README 2026-01-07 20:41:04 +01:00
renovate[bot] 2b40443885 chore(deps): lock file maintenance (#493)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-05 10:41:35 +01:00
renovate[bot] 28e5ed4c03 chore(deps): update dependency globals to v17 (#490)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-01 22:52:29 +00:00
renovate[bot] c1ca9c770a chore(deps): lock file maintenance (#489)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-31 13:43:44 +01:00