Compare commits

...

287 Commits

Author SHA1 Message Date
Emrik Östling
883fad806b Merge pull request #155 from C4illin/release-please--branches--main--components--convertx-frontend 2024-10-01 14:17:30 +02:00
Emrik Östling
feacd1b816 chore(main): release 0.8.0 2024-09-30 22:01:44 +02:00
Emrik Östling
094e7a0d1c Merge pull request #160 from C4illin/feature-light-theme
feat: add light theme
2024-09-30 22:01:19 +02:00
C4illin
72636c5059 feat: add light theme, fixes #156 2024-09-30 17:14:44 +02:00
C4illin
291cfc80c6 chore: update deps 2024-09-30 15:56:33 +02:00
C4illin
ae1dfafc9d fix: cleanup formats and add opus, fixes #159 2024-09-30 15:51:11 +02:00
Emrik Östling
6caa583c35 Merge pull request #154 from C4illin/fix/#153/clean-up-ffmpeg-formats
fix: support .awb and clean up, fixes #153, #92
2024-09-28 13:36:46 +02:00
C4illin
2057167576 fix: add support for usd for assimp, #144 2024-09-28 13:13:48 +02:00
C4illin
1c9e67fc32 fix: support .awb and clean up, fixes #153, #92 2024-09-28 13:02:17 +02:00
Emrik Östling
d3af9688c6 Merge pull request #149 from C4illin/release-please--branches--main--components--convertx-frontend
chore(main): release 0.7.0
2024-09-28 11:11:11 +02:00
Emrik Östling
7d0cbb9844 chore(main): release 0.7.0 2024-09-26 23:37:45 +02:00
C4illin
88173891ba fix: wrong layout on search with few options 2024-09-26 23:37:19 +02:00
Emrik Östling
2b4b8f9551 Merge pull request #148 from Aymendje/feat-assimp 2024-09-26 23:01:33 +02:00
Aymen Djellal
63a4328d4a feat: Add support for 3d assets through assimp converter
This is a start for #144
It does not support all the 3d formats, but its a good few
2024-09-26 22:55:42 +02:00
Emrik Östling
413f5dc7b4 Merge pull request #138 from C4illin/release-please--branches--main--components--convertx-frontend 2024-09-25 23:56:29 +02:00
Emrik Östling
ebccdf9169 chore(main): release 0.6.0 2024-09-25 23:47:47 +02:00
C4illin
47139a550b fix: rename css file to force update cache, fixes #141 2024-09-25 23:47:18 +02:00
C4illin
fa5446c446 chore: fix eslint config 2024-09-25 23:46:21 +02:00
Emrik Östling
8772e582b0 Merge pull request #142 from Aymendje/patch-2 2024-09-25 23:31:23 +02:00
Aymen Djellal
45922ed3a3 [FIX] Fix broken CSS
This is a fix for #141 
The CSS was broken due to the import in the tailwind.config.js, it should be inside the module.exports and not outside. Thats why bun was giving a warning before :

```
# bun run dev
warn - The `content` option in your Tailwind CSS configuration is missing or empty.
warn - Configure your content sources or your generated CSS will be missing styles.
warn - https://tailwindcss.com/docs/content-configuration
```

it is now fixed
2024-09-25 09:12:54 -04:00
C4illin
4c747e8908 chore: format and update deps 2024-09-24 23:49:14 +02:00
Emrik Östling
e573997aa9 Merge pull request #140 from Aymendje/patch-1
Fix UNAUTHENTICATED mode
2024-09-24 09:12:28 +02:00
Aymen Djellal
c57b69991c Fix UNAUTHENTICATED mode
the function used here, randmInt(Min, Max) has an issue.
When running the code, I get a 500 error, with the error being 

```
 |       const newUserId = String(randomInt(2 ** 24,  Number.MAX_SAFE_INTEGER));
      ^
RangeError: The "max - min" is out of range. It must be <= 281474976710655. Received 9007199237963775
 code: "ERR_OUT_OF_RANGE"

      at randomInt (native:1:1)
      at /.../ConvertX/src/index.tsx:460:32
      at /.../ConvertX/src/index.tsx:594:29
      at file:///.../ConvertX/node_modules/elysia/dist/bun/index.js:76:22
```

When digging deeper in the implementation, it seems that the official node doc says : 
> The range (max - min) must be less than 2**48. min and max must be safe integers.

See : https://nodejs.org/api/crypto.html#cryptorandomintmin-max-callback

Feel free to close this PR and do the fix another way (it: by using a uuid instead of randomInt, etc.)
2024-09-23 11:44:37 -04:00
Emrik Östling
eee983a56a Merge pull request #137 from C4illin/feature-tailwind
feat: ui remake with tailwind
2024-09-23 10:20:01 +02:00
C4illin
22f823c535 feat: ui remake with tailwind 2024-09-23 03:58:29 +02:00
Emrik Östling
ed59cd7aa4 chore: clarify that batch processing is possible 2024-09-22 23:53:37 +02:00
Emrik Östling
b28977ffe2 Merge pull request #136 from C4illin/release-please--branches--main--components--convertx-frontend 2024-09-21 14:33:34 +02:00
deepsource-io[bot]
a47bb682a5 ci: add .deepsource.toml 2024-09-20 14:28:59 +00:00
C4illin
a17eca0a09 chore: format 2024-09-20 13:27:54 +02:00
Emrik Östling
ea9250543e chore(main): release 0.5.0 2024-09-20 13:24:55 +02:00
C4illin
317c932c2a feat: add option to customize how often files are automatically deleted 2024-09-20 13:24:18 +02:00
C4illin
5b1703db68 chore: add safe attribute to input element 2024-09-20 12:55:00 +02:00
C4illin
60ba7c93fb fix: improve file name replacement logic 2024-09-20 12:49:19 +02:00
C4illin
22227130dd chore: add screenshot, fixes #110 2024-09-20 12:42:58 +02:00
Emrik Östling
5daf66f5d0 Merge pull request #135 from C4illin/renovate/oven-bun-1.x 2024-09-20 12:30:55 +02:00
renovate[bot]
aee1962607 chore(deps): update oven/bun docker tag to v1.1.29 2024-09-20 09:09:55 +00:00
Emrik Östling
0d42762b36 Merge pull request #134 from C4illin/renovate/biomejs-biome-1.x 2024-09-19 17:51:12 +02:00
renovate[bot]
b97b12b449 chore(deps): update dependency @biomejs/biome to v1.9.2 2024-09-19 14:43:48 +00:00
Emrik Östling
bdf651df82 Merge pull request #133 from C4illin/renovate/oven-bun-1.x
chore(deps): update oven/bun docker tag to v1.1.28
2024-09-19 09:35:06 +02:00
renovate[bot]
267ef14789 chore(deps): update oven/bun docker tag to v1.1.28 2024-09-18 20:12:09 +00:00
Emrik Östling
905adc5e1c Merge pull request #130 from C4illin/release-please--branches--main--components--convertx-frontend 2024-09-18 16:19:47 +02:00
Emrik Östling
52ed7274e9 chore(main): release 0.4.1 2024-09-15 23:24:06 +02:00
Emrik Östling
a29238c265 Merge pull request #132 from C4illin/renovate/biomejs-biome-1.x
chore(deps): update dependency @biomejs/biome to v1.9.1
2024-09-15 23:23:41 +02:00
renovate[bot]
48c6fb79fc chore(deps): update dependency @biomejs/biome to v1.9.1 2024-09-15 20:09:54 +00:00
Emrik Östling
8358396656 Merge pull request #131 from C4illin/renovate/biomejs-biome-1.x 2024-09-12 17:40:23 +02:00
renovate[bot]
b30e5800c3 chore(deps): update dependency @biomejs/biome to v1.9.0 2024-09-12 15:03:57 +00:00
Emrik Östling
21a1b50ed8 Merge pull request #129 from C4illin/fix/#122/lowercase-env-variables 2024-09-12 13:02:45 +02:00
C4illin
e6a94fb21d chore: format 2024-09-12 12:59:59 +02:00
C4illin
bef1710e33 fix: allow non lowercase true and false values, fixes #122 2024-09-12 12:58:28 +02:00
Emrik Östling
16b322d4e6 Merge pull request #128 from C4illin/renovate/eslint-plugin-isaacscript-4.x
chore(deps): update dependency eslint-plugin-isaacscript to v4
2024-09-12 09:32:38 +02:00
renovate[bot]
9bf64e42d5 chore(deps): update dependency eslint-plugin-isaacscript to v4 2024-09-11 21:56:10 +00:00
C4illin
5988fe8212 chore: fix docker run command fixes #127 2024-09-09 13:17:37 +02:00
Emrik Östling
5df9c0b751 Merge pull request #126 from C4illin/renovate/oven-bun-1.x
chore(deps): update oven/bun docker tag to v1.1.27
2024-09-07 20:40:34 +02:00
renovate[bot]
136a8b2d74 chore(deps): update oven/bun docker tag to v1.1.27 2024-09-07 13:48:15 +00:00
C4illin
ccfb574d5d chore: Update dependencies 2024-09-05 12:22:27 +02:00
Emrik Östling
ad6eedea69 chore: Update README.md 2024-08-27 18:19:07 +02:00
Emrik Östling
c3082db8f7 Merge pull request #118 from C4illin/release-please--branches--main--components--convertx-frontend 2024-08-26 16:20:32 +02:00
Emrik Östling
a1f8cbae66 chore(main): release 0.4.0 2024-08-26 16:01:20 +02:00
C4illin
bb34bdee87 Merge branch 'main' of https://github.com/C4illin/ConvertX 2024-08-26 16:00:15 +02:00
C4illin
11fcbc3f96 t push origin main Merge branch 'luis-c465-searchable-formats' 2024-08-26 15:57:48 +02:00
Emrik Östling
f7344e4c65 Merge pull request #121 from C4illin/renovate/total-typescript-ts-reset-0.x 2024-08-25 14:42:31 +02:00
Emrik Östling
781310f3dc Merge pull request #120 from C4illin/renovate/oven-bun-1.x
chore(deps): update oven/bun docker tag to v1.1.26
2024-08-24 19:35:33 +02:00
renovate[bot]
3f063644f2 chore(deps): update dependency @total-typescript/ts-reset to ^0.6.0 2024-08-24 12:11:04 +00:00
renovate[bot]
081634b610 chore(deps): update oven/bun docker tag to v1.1.26 2024-08-24 11:41:24 +00:00
C4illin
cf3da08c73 docs: add dev instructions 2024-08-23 22:07:11 +02:00
Luis Canada
5f7234d6c1 Merge remote-tracking branch 'upstream/main' into searchable-formats 2024-08-23 14:20:16 -04:00
C4illin
6597c1d7ca feat: add robots.txt 2024-08-23 20:14:34 +02:00
Emrik Östling
ecb2c75008 Merge pull request #119 from C4illin/feature-resvg 2024-08-23 19:58:14 +02:00
C4illin
d5eeef9f68 feat: add resvg converter 2024-08-23 19:56:43 +02:00
C4illin
7456174022 chore(deps): update dependencies 2024-08-23 19:16:25 +02:00
C4illin
bc4ad49285 fix: keep unauthenticated user logged in if allowed #114 2024-08-23 15:18:43 +02:00
C4illin
f0d0e43929 feat: add option for unauthenticated file conversions #114 2024-08-23 15:09:49 +02:00
C4illin
8ca4f1587d fix: pdf support in vips 2024-08-23 14:30:02 +02:00
Emrik Östling
1535377bfe Merge pull request #117 from C4illin/renovate/oven-bun-1.x 2024-08-23 11:25:31 +02:00
renovate[bot]
83bf78fd57 chore(deps): update oven/bun docker tag to v1.1.25 2024-08-21 06:35:24 +00:00
Luis Canada
4d9c4d64aa fix: Slow click on conversion popup does not work 2024-08-20 18:10:34 -04:00
Luis Canada
53fff594fc feat: Add search bar for formats 2024-08-20 14:59:25 -04:00
Emrik Östling
fe4aeaff03 Merge pull request #115 from 101br03k/patch-1
added container name and restart policy to deployement example
2024-08-17 21:57:08 +02:00
A3
2078cb0ee0 added container name and restart policy 2024-08-17 21:31:21 +02:00
Emrik Östling
86a61d35d7 Merge pull request #112 from C4illin/renovate/oven-bun-1.x
chore(deps): update oven/bun docker tag to v1.1.24
2024-08-16 10:10:23 +02:00
renovate[bot]
96fa7e2f55 chore(deps): update oven/bun docker tag to v1.1.24 2024-08-14 12:53:14 +00:00
Emrik Östling
7d2af46b0b Merge pull request #111 from C4illin/renovate/oven-bun-1.x
chore(deps): update oven/bun docker tag to v1.1.23
2024-08-14 09:57:08 +02:00
renovate[bot]
57e2999866 chore(deps): update oven/bun docker tag to v1.1.23 2024-08-14 01:52:09 +00:00
Emrik Östling
6fb8ca4d82 Merge pull request #109 from C4illin/renovate/oven-bun-1.x
chore(deps): update oven/bun docker tag to v1.1.22
2024-08-12 09:04:37 +02:00
renovate[bot]
c295e546bd chore(deps): update oven/bun docker tag to v1.1.22 2024-08-08 01:44:24 +00:00
Emrik Östling
f7abb9389c chore: move to renovate 2024-08-06 22:06:45 +02:00
Emrik Östling
d7de154eda Merge pull request #108 from C4illin/dependabot/npm_and_yarn/npm-run-all2-tw-6.2.2
build(deps-dev): update npm-run-all2 requirement from ^6.0.0 to ^6.2.2
2024-08-06 16:52:37 +02:00
dependabot[bot]
20bd111765 build(deps-dev): update npm-run-all2 requirement from ^6.0.0 to ^6.2.2
Updates the requirements on [npm-run-all2](https://github.com/bcomnes/npm-run-all2) to permit the latest version.
- [Release notes](https://github.com/bcomnes/npm-run-all2/releases)
- [Changelog](https://github.com/bcomnes/npm-run-all2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bcomnes/npm-run-all2/compare/v6.0.0...v6.2.2)

---
updated-dependencies:
- dependency-name: npm-run-all2
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-06 08:12:26 +00:00
Emrik Östling
eadd0da291 Merge pull request #107 from C4illin/renovate/npm-run-all2-6.x 2024-08-05 21:58:52 +02:00
C4illin
52294465fb chore: fix type errors 2024-08-05 21:57:40 +02:00
renovate[bot]
049e9163ce chore(deps): update dependency npm-run-all2 to v6 2024-08-05 19:31:50 +00:00
C4illin
d466d2dbbc Merge branch 'main' of https://github.com/C4illin/ConvertX 2024-08-05 21:31:06 +02:00
C4illin
3f79ccaa2a chore: Update eslint configuration and dependencies 2024-08-05 21:25:35 +02:00
C4illin
1e9bde18c7 chore: use renovate instead 2024-08-05 21:25:18 +02:00
Emrik Östling
9af23346bf Merge pull request #103 from C4illin/renovate/npm-run-all-replacement 2024-08-05 21:24:13 +02:00
renovate[bot]
d310341fca chore(deps): replace dependency npm-run-all with npm-run-all2 ^5.0.0 2024-08-05 19:24:04 +00:00
Emrik Östling
d88a755c13 Merge pull request #101 from C4illin/dependabot/npm_and_yarn/elysia-tw-1.1.5 2024-08-05 21:23:12 +02:00
Emrik Östling
7c6085c685 Merge pull request #102 from C4illin/renovate/configure 2024-08-05 20:35:48 +02:00
renovate[bot]
7ed1ad21f2 Add renovate.json 2024-08-05 18:34:31 +00:00
dependabot[bot]
8a2237fbd9 build(deps): update elysia requirement from ^1.1.4 to ^1.1.5
---
updated-dependencies:
- dependency-name: elysia
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 14:50:25 +00:00
Emrik Östling
0e363f0731 Merge pull request #100 from C4illin/dependabot/npm_and_yarn/types/node-tw-22.1.0
build(deps-dev): update @types/node requirement from ^22.0.3 to ^22.1.0
2024-08-05 16:49:04 +02:00
dependabot[bot]
4074647b67 build(deps-dev): update @types/node requirement from ^22.0.3 to ^22.1.0
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-05 08:55:13 +00:00
Emrik Östling
c84968be50 Merge pull request #98 from C4illin/dependabot/npm_and_yarn/types/node-tw-22.0.3
build(deps-dev): update @types/node requirement from ^22.0.2 to ^22.0.3
2024-08-02 16:45:25 +02:00
dependabot[bot]
0e53a99d43 build(deps-dev): update @types/node requirement from ^22.0.2 to ^22.0.3
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-02 10:43:50 +00:00
Emrik Östling
bdd0cf556f Merge pull request #99 from C4illin/dependabot/npm_and_yarn/typescript-eslint/parser-8.0.0
build(deps-dev): bump @typescript-eslint/parser from 7.18.0 to 8.0.0
2024-08-02 12:42:23 +02:00
dependabot[bot]
2483274388 build(deps-dev): bump @typescript-eslint/parser from 7.18.0 to 8.0.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.18.0 to 8.0.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.0.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-02 08:58:10 +00:00
Emrik Östling
4c5129910a Merge pull request #96 from C4illin/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-8.0.0
build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.18.0 to 8.0.0
2024-08-01 12:30:43 +02:00
dependabot[bot]
fe13a1b736 build(deps-dev): bump @typescript-eslint/eslint-plugin
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 7.18.0 to 8.0.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.0.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-01 09:12:49 +00:00
Emrik Östling
f1ac71b397 Merge pull request #97 from C4illin/dependabot/npm_and_yarn/types/node-tw-22.0.2
build(deps-dev): update @types/node requirement from ^22.0.0 to ^22.0.2
2024-08-01 11:11:16 +02:00
dependabot[bot]
1b1067a03f build(deps-dev): update @types/node requirement from ^22.0.0 to ^22.0.2
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-01 08:44:36 +00:00
Emrik Östling
8674557e42 Merge pull request #90 from C4illin/release-please--branches--main--components--convertx-frontend 2024-07-30 19:07:14 +02:00
C4illin
87052ce105 chore: create data directory 2024-07-30 19:03:13 +02:00
Emrik Östling
98ee26f6e2 chore(main): release 0.3.3 2024-07-30 18:50:10 +02:00
C4illin
96e2c88465 build(deps): update @elysiajs/static dependency to version 1.0.3 2024-07-30 18:49:33 +02:00
C4illin
d55ba218ff chore: add linux/arm64 platform to Docker build 2024-07-30 00:50:30 +02:00
C4illin
ae2455e73e chore: fix type errors and update bun sql syntax 2024-07-30 00:48:15 +02:00
C4illin
b9fe32053c chore: Update npm dependencies and add linting scripts 2024-07-30 00:47:46 +02:00
C4illin
5cf3d74e03 chore: update old config 2024-07-30 00:44:43 +02:00
C4illin
2b92778f37 chore: lock Dockerfile base image to specific version 2024-07-29 23:03:46 +02:00
C4illin
27d4da8941 chore: add TypeScript settings 2024-07-29 23:03:24 +02:00
Emrik Östling
2384e22c22 Merge pull request #94 from C4illin/dependabot/npm_and_yarn/types/node-22.0.0
build(deps-dev): bump @types/node from 20.14.13 to 22.0.0
2024-07-29 11:05:17 +02:00
dependabot[bot]
6690caeb1e build(deps-dev): bump @types/node from 20.14.13 to 22.0.0
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.14.13 to 22.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-29 08:29:07 +00:00
C4illin
c714ade3e2 fix: downgrade @elysiajs/html dependency to version 1.0.2
Error 500 with version 0.3.2 #81
2024-07-24 19:03:19 +02:00
Emrik Östling
e9e95c61e9 Merge pull request #87 from C4illin/dependabot/npm_and_yarn/kitajs/ts-html-plugin-tw-4.0.2
build(deps-dev): update @kitajs/ts-html-plugin requirement from ^4.0.1 to ^4.0.2
2024-07-24 12:08:50 +02:00
dependabot[bot]
b1e0e68d9c build(deps-dev): update @kitajs/ts-html-plugin requirement
Updates the requirements on [@kitajs/ts-html-plugin](https://github.com/kitajs/html/tree/HEAD/packages/ts-html-plugin) to permit the latest version.
- [Release notes](https://github.com/kitajs/html/releases)
- [Changelog](https://github.com/kitajs/html/blob/master/packages/ts-html-plugin/CHANGELOG.md)
- [Commits](https://github.com/kitajs/html/commits/@kitajs/ts-html-plugin@4.0.2/packages/ts-html-plugin)

---
updated-dependencies:
- dependency-name: "@kitajs/ts-html-plugin"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-24 10:02:32 +00:00
Emrik Östling
5ce3706550 Merge pull request #89 from C4illin/dependabot/npm_and_yarn/types/node-tw-20.14.12
build(deps-dev): update @types/node requirement from ^20.14.11 to ^20.14.12
2024-07-24 12:01:01 +02:00
dependabot[bot]
57e47e95c0 build(deps-dev): update @types/node requirement
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-24 09:51:52 +00:00
Emrik Östling
6d6bc6cfdd Merge pull request #88 from C4illin/dependabot/npm_and_yarn/elysia-tw-1.1.4
build(deps): update elysia requirement from ^1.1.3 to ^1.1.4
2024-07-24 11:50:22 +02:00
dependabot[bot]
b44eb22e77 build(deps): update elysia requirement from ^1.1.3 to ^1.1.4
---
updated-dependencies:
- dependency-name: elysia
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-24 09:08:27 +00:00
Emrik Östling
6edfbaa27d Merge pull request #84 from C4illin/dependabot/npm_and_yarn/types/eslint-9.6.0
build(deps-dev): bump @types/eslint from 8.56.11 to 9.6.0
2024-07-23 20:51:20 +02:00
dependabot[bot]
d669baeff4 build(deps-dev): bump @types/eslint from 8.56.11 to 9.6.0
Bumps [@types/eslint](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/eslint) from 8.56.11 to 9.6.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/eslint)

---
updated-dependencies:
- dependency-name: "@types/eslint"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 15:18:33 +00:00
Emrik Östling
ec1a7bc015 Merge pull request #86 from C4illin/dependabot/npm_and_yarn/typescript-eslint/parser-tw-7.17.0
build(deps-dev): update @typescript-eslint/parser requirement from ^7.16.1 to ^7.17.0
2024-07-23 17:17:50 +02:00
dependabot[bot]
0805241a19 build(deps-dev): update @typescript-eslint/parser requirement
Updates the requirements on [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.17.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 15:17:42 +00:00
Emrik Östling
83f041daa2 Merge pull request #83 from C4illin/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-tw-7.17.0
build(deps-dev): update @typescript-eslint/eslint-plugin requirement from ^7.16.1 to ^7.17.0
2024-07-23 17:16:55 +02:00
dependabot[bot]
55331a4496 build(deps-dev): update @typescript-eslint/eslint-plugin requirement
Updates the requirements on [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.17.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 15:16:44 +00:00
Emrik Östling
b53f07e7a7 Merge pull request #85 from C4illin/dependabot/npm_and_yarn/typescript-tw-5.5.4
build(deps-dev): update typescript requirement from ^5.5.3 to ^5.5.4
2024-07-23 17:15:12 +02:00
dependabot[bot]
0eb89ae712 build(deps-dev): update typescript requirement from ^5.5.3 to ^5.5.4
Updates the requirements on [typescript](https://github.com/Microsoft/TypeScript) to permit the latest version.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.5.3...v5.5.4)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 09:00:50 +00:00
Emrik Östling
7dd153b02c Merge pull request #80 from C4illin/dependabot/npm_and_yarn/eslint-plugin-prettier-tw-5.2.1
build(deps-dev): update eslint-plugin-prettier requirement from ^5.1.3 to ^5.2.1
2024-07-19 19:46:55 +02:00
dependabot[bot]
6ccafeb3b0 build(deps-dev): update eslint-plugin-prettier requirement
Updates the requirements on [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) to permit the latest version.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.1.3...v5.2.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-19 16:51:07 +00:00
Emrik Östling
b703903b22 Merge pull request #74 from C4illin/dependabot/npm_and_yarn/elysiajs/html-tw-1.1.0
build(deps): update @elysiajs/html requirement from ^1.0.2 to ^1.1.0
2024-07-19 18:49:30 +02:00
dependabot[bot]
9e66eab0a2 build(deps): update @elysiajs/html requirement from ^1.0.2 to ^1.1.0
---
updated-dependencies:
- dependency-name: "@elysiajs/html"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-19 13:42:52 +00:00
Emrik Östling
b272bf9504 Merge pull request #76 from C4illin/dependabot/npm_and_yarn/elysiajs/jwt-tw-1.1.0
build(deps): update @elysiajs/jwt requirement from ^1.0.2 to ^1.1.0
2024-07-19 15:41:20 +02:00
dependabot[bot]
56632f3500 build(deps): update @elysiajs/jwt requirement from ^1.0.2 to ^1.1.0
---
updated-dependencies:
- dependency-name: "@elysiajs/jwt"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-19 10:05:14 +00:00
Emrik Östling
2d9d8f8b4f Merge pull request #79 from C4illin/dependabot/npm_and_yarn/elysia-tw-1.1.3
build(deps): update elysia requirement from ^1.1.2 to ^1.1.3
2024-07-19 12:03:43 +02:00
dependabot[bot]
65d4e0fbbe build(deps): update elysia requirement from ^1.1.2 to ^1.1.3
---
updated-dependencies:
- dependency-name: elysia
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-19 10:02:43 +00:00
Emrik Östling
8182d12ea0 Merge pull request #72 from C4illin/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-tw-7.16.1
build(deps-dev): update @typescript-eslint/eslint-plugin requirement from ^7.16.0 to ^7.16.1
2024-07-19 12:01:11 +02:00
dependabot[bot]
1c241d4cad build(deps-dev): update @typescript-eslint/eslint-plugin requirement
Updates the requirements on [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.16.1/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-17 09:56:52 +00:00
Emrik Östling
874ff6ee00 Merge pull request #75 from C4illin/dependabot/npm_and_yarn/types/node-tw-20.14.11
build(deps-dev): update @types/node requirement from ^20.14.10 to ^20.14.11
2024-07-17 11:55:23 +02:00
dependabot[bot]
e9f1219ad9 build(deps-dev): update @types/node requirement
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-17 09:15:56 +00:00
Emrik Östling
4811452aec Merge pull request #77 from C4illin/dependabot/npm_and_yarn/elysiajs/static-tw-1.1.0
build(deps): update @elysiajs/static requirement from ^1.0.3 to ^1.1.0
2024-07-17 11:14:29 +02:00
dependabot[bot]
382ebad35a build(deps): update @elysiajs/static requirement from ^1.0.3 to ^1.1.0
---
updated-dependencies:
- dependency-name: "@elysiajs/static"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-17 09:12:35 +00:00
Emrik Östling
85945256e7 Merge pull request #78 from C4illin/dependabot/npm_and_yarn/elysia-tw-1.1.2
build(deps): update elysia requirement from ^1.0.27 to ^1.1.2
2024-07-17 11:11:18 +02:00
dependabot[bot]
c504692569 build(deps): update elysia requirement from ^1.0.27 to ^1.1.2
Updates the requirements on [elysia](https://github.com/elysiajs/elysia) to permit the latest version.
- [Release notes](https://github.com/elysiajs/elysia/releases)
- [Changelog](https://github.com/elysiajs/elysia/blob/main/CHANGELOG.md)
- [Commits](https://github.com/elysiajs/elysia/commits)

---
updated-dependencies:
- dependency-name: elysia
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-17 08:54:51 +00:00
Emrik Östling
64a16036be Merge pull request #73 from C4illin/dependabot/npm_and_yarn/typescript-eslint/parser-tw-7.16.1
build(deps-dev): update @typescript-eslint/parser requirement from ^7.16.0 to ^7.16.1
2024-07-16 11:52:15 +02:00
dependabot[bot]
b9f038386f build(deps-dev): update @typescript-eslint/parser requirement
Updates the requirements on [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.16.1/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-16 08:53:35 +00:00
Emrik Östling
945775e52b Merge pull request #71 from C4illin/dependabot/npm_and_yarn/types/ws-tw-8.5.11
build(deps-dev): update @types/ws requirement from ^8.5.10 to ^8.5.11
2024-07-15 15:32:42 +02:00
dependabot[bot]
e7f3466736 build(deps-dev): update @types/ws requirement from ^8.5.10 to ^8.5.11
---
updated-dependencies:
- dependency-name: "@types/ws"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 12:47:06 +00:00
Emrik Östling
ee80eeb18d Merge pull request #69 from C4illin/dependabot/npm_and_yarn/ianvs/prettier-plugin-sort-imports-tw-4.3.1
build(deps-dev): update @ianvs/prettier-plugin-sort-imports requirement from ^4.3.0 to ^4.3.1
2024-07-15 14:45:33 +02:00
dependabot[bot]
34c7e0bd25 build(deps-dev): update @ianvs/prettier-plugin-sort-imports requirement
Updates the requirements on [@ianvs/prettier-plugin-sort-imports](https://github.com/ianvs/prettier-plugin-sort-imports) to permit the latest version.
- [Release notes](https://github.com/ianvs/prettier-plugin-sort-imports/releases)
- [Changelog](https://github.com/IanVS/prettier-plugin-sort-imports/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ianvs/prettier-plugin-sort-imports/compare/v4.3.0...v4.3.1)

---
updated-dependencies:
- dependency-name: "@ianvs/prettier-plugin-sort-imports"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 12:12:18 +00:00
Emrik Östling
492dbd5617 Merge pull request #70 from C4illin/dependabot/npm_and_yarn/prettier-tw-3.3.3
build(deps-dev): update prettier requirement from ^3.3.2 to ^3.3.3
2024-07-15 14:10:46 +02:00
dependabot[bot]
0935bf66ce build(deps-dev): update prettier requirement from ^3.3.2 to ^3.3.3
Updates the requirements on [prettier](https://github.com/prettier/prettier) to permit the latest version.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.3.2...3.3.3)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 09:10:38 +00:00
Emrik Östling
7389e0a059 Merge pull request #68 from C4illin/release-please--branches--main--components--convertx-frontend 2024-07-09 20:31:46 +02:00
Emrik Östling
c512b45f91 chore(main): release 0.3.2 2024-07-09 20:27:52 +02:00
C4illin
3ae2db5d9b fix: increase max request body to support large uploads
issue #64
2024-07-09 20:26:48 +02:00
Emrik Östling
0945b40a9c Merge pull request #67 from C4illin/dependabot/npm_and_yarn/typescript-eslint/parser-tw-7.16.0
build(deps-dev): update @typescript-eslint/parser requirement from ^7.15.0 to ^7.16.0
2024-07-09 11:31:38 +02:00
dependabot[bot]
20b958e547 build(deps-dev): update @typescript-eslint/parser requirement
Updates the requirements on [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.16.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-09 09:18:34 +00:00
Emrik Östling
e7e146c6c9 Merge pull request #66 from C4illin/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-tw-7.16.0
build(deps-dev): update @typescript-eslint/eslint-plugin requirement from ^7.15.0 to ^7.16.0
2024-07-09 11:16:59 +02:00
dependabot[bot]
005ad2d66b build(deps-dev): update @typescript-eslint/eslint-plugin requirement
Updates the requirements on [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.16.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-09 08:15:05 +00:00
Emrik Östling
e5c3a8acc4 Merge pull request #65 from C4illin/dependabot/npm_and_yarn/types/node-tw-20.14.10
build(deps-dev): update @types/node requirement from ^20.14.9 to ^20.14.10
2024-07-08 10:16:29 +02:00
dependabot[bot]
87ecbabd1f build(deps-dev): update @types/node requirement
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 08:12:13 +00:00
Emrik Östling
991c4e4ba8 Merge pull request #63 from C4illin/dependabot/npm_and_yarn/elysia-tw-1.0.27
build(deps): update elysia requirement from ^1.0.26 to ^1.0.27
2024-07-03 13:41:16 +02:00
dependabot[bot]
87ccd8b44c build(deps): update elysia requirement from ^1.0.26 to ^1.0.27
---
updated-dependencies:
- dependency-name: elysia
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-03 08:45:48 +00:00
Emrik Östling
83e6699ca6 chore: update README.md 2024-07-03 00:31:54 +02:00
Emrik Östling
c91523c038 Merge pull request #61 from C4illin/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-tw-7.15.0
build(deps-dev): update @typescript-eslint/eslint-plugin requirement from ^7.14.1 to ^7.15.0
2024-07-02 11:17:19 +02:00
dependabot[bot]
1f73f036b2 build(deps-dev): update @typescript-eslint/eslint-plugin requirement
Updates the requirements on [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.15.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 09:12:46 +00:00
Emrik Östling
1223fabfca Merge pull request #62 from C4illin/dependabot/npm_and_yarn/typescript-eslint/parser-tw-7.15.0
build(deps-dev): update @typescript-eslint/parser requirement from ^7.14.1 to ^7.15.0
2024-07-02 11:10:32 +02:00
dependabot[bot]
8a42a39e69 build(deps-dev): update @typescript-eslint/parser requirement
Updates the requirements on [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.15.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 09:09:12 +00:00
Emrik Östling
22023bad25 Merge pull request #60 from C4illin/dependabot/npm_and_yarn/typescript-tw-5.5.3
build(deps-dev): update typescript requirement from ^5.5.2 to ^5.5.3
2024-07-02 11:04:04 +02:00
dependabot[bot]
db2f2d8f0a build(deps-dev): update typescript requirement from ^5.5.2 to ^5.5.3
Updates the requirements on [typescript](https://github.com/Microsoft/TypeScript) to permit the latest version.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.5.2...v5.5.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 09:02:37 +00:00
Emrik Östling
d0fa9ac408 Merge pull request #59 from C4illin/dependabot/npm_and_yarn/elysia-tw-1.0.26
build(deps): update elysia requirement from ^1.0.25 to ^1.0.26
2024-07-01 13:47:44 +02:00
dependabot[bot]
776a97289b build(deps): update elysia requirement from ^1.0.25 to ^1.0.26
---
updated-dependencies:
- dependency-name: elysia
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 08:35:55 +00:00
Emrik Östling
95340dd0eb Merge pull request #58 from C4illin/dependabot/npm_and_yarn/biomejs/biome-1.8.3
build(deps-dev): bump @biomejs/biome from 1.8.2 to 1.8.3
2024-06-28 13:29:20 +02:00
dependabot[bot]
7dcd74cc5f build(deps-dev): bump @biomejs/biome from 1.8.2 to 1.8.3
Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) from 1.8.2 to 1.8.3.
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/cli/v1.8.3/packages/@biomejs/biome)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-28 08:25:31 +00:00
Emrik Östling
c5efac9423 Merge pull request #57 from C4illin/release-please--branches--main--components--convertx-frontend
chore(main): release 0.3.1
2024-06-28 02:00:49 +02:00
Emrik Östling
cceca9a924 chore(main): release 0.3.1 2024-06-28 01:32:05 +02:00
Emrik Östling
4d4c13a8d8 fix: release releases 2024-06-28 01:31:46 +02:00
Emrik Östling
f8f90ebd69 Merge pull request #55 from C4illin/release-please--branches--main--components--convertx-frontend 2024-06-28 00:23:46 +02:00
github-actions[bot]
648d5070e2 chore(main): release 0.3.0 2024-06-27 22:05:48 +00:00
C4illin
801cf28d1e feat: print version of installed converters to log 2024-06-28 00:05:21 +02:00
C4illin
fae2ba9c54 feat: change to xelatex 2024-06-27 23:26:46 +02:00
Emrik Östling
10d20a8786 Merge pull request #56 from C4illin/dependabot/npm_and_yarn/types/bun-tw-1.1.6
build(deps-dev): update @types/bun requirement from ^1.1.5 to ^1.1.6
2024-06-27 11:00:55 +02:00
dependabot[bot]
c9bc1e237e build(deps-dev): update @types/bun requirement from ^1.1.5 to ^1.1.6
---
updated-dependencies:
- dependency-name: "@types/bun"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-27 08:14:49 +00:00
C4illin
48a76a46b3 refactor: fix typescript 2024-06-27 01:05:36 +02:00
C4illin
4dcb796e1b feat: add version number to log
issue #44
2024-06-27 00:59:06 +02:00
C4illin
5952103bcd build(deps-dev): update @ianvs/prettier-plugin-sort-imports requirement 2024-06-27 00:58:07 +02:00
Emrik Östling
fd05ee5cd5 Merge pull request #54 from C4illin/dependabot/npm_and_yarn/types/node-tw-20.14.9
build(deps-dev): update @types/node requirement from ^20.14.8 to ^20.14.9
2024-06-26 16:27:25 +02:00
dependabot[bot]
7e7d238c7a build(deps-dev): update @types/node requirement
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-26 08:52:48 +00:00
Emrik Östling
755a4170f2 Merge pull request #52 from C4illin/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-tw-7.14.1
build(deps-dev): update @typescript-eslint/eslint-plugin requirement from ^7.13.1 to ^7.14.1
2024-06-25 11:34:25 +02:00
dependabot[bot]
263ba415f5 build(deps-dev): update @typescript-eslint/eslint-plugin requirement
Updates the requirements on [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.14.1/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-25 09:16:20 +00:00
Emrik Östling
317260098a Merge pull request #51 from C4illin/dependabot/npm_and_yarn/typescript-eslint/parser-tw-7.14.1
build(deps-dev): update @typescript-eslint/parser requirement from ^7.13.1 to ^7.14.1
2024-06-25 11:14:48 +02:00
dependabot[bot]
5304e94b4e build(deps-dev): update @typescript-eslint/parser requirement
Updates the requirements on [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.14.1/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-25 08:28:04 +00:00
Emrik Östling
aab2b311cf Merge pull request #48 from C4illin/dependabot/github_actions/docker/build-push-action-6
build(deps): bump docker/build-push-action from 5 to 6
2024-06-24 11:44:13 +02:00
Emrik Östling
baa7ea40e6 Merge pull request #49 from C4illin/dependabot/github_actions/oven-sh/setup-bun-2
build(deps): bump oven-sh/setup-bun from 1 to 2
2024-06-24 11:44:01 +02:00
Emrik Östling
481a11b610 Merge pull request #50 from C4illin/dependabot/npm_and_yarn/elysia-tw-1.0.25
build(deps): update elysia requirement from ^1.0.24 to ^1.0.25
2024-06-24 11:43:51 +02:00
dependabot[bot]
c09fe296b1 build(deps): update elysia requirement from ^1.0.24 to ^1.0.25
---
updated-dependencies:
- dependency-name: elysia
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 08:48:40 +00:00
dependabot[bot]
f023aae753 build(deps): bump oven-sh/setup-bun from 1 to 2
Bumps [oven-sh/setup-bun](https://github.com/oven-sh/setup-bun) from 1 to 2.
- [Release notes](https://github.com/oven-sh/setup-bun/releases)
- [Commits](https://github.com/oven-sh/setup-bun/compare/v1...v2)

---
updated-dependencies:
- dependency-name: oven-sh/setup-bun
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 08:38:19 +00:00
dependabot[bot]
5cd9544b55 build(deps): bump docker/build-push-action from 5 to 6
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-24 08:38:17 +00:00
Emrik Östling
97c23ba65c Merge pull request #47 from C4illin/dependabot/npm_and_yarn/types/node-tw-20.14.8
build(deps-dev): update @types/node requirement from ^20.14.6 to ^20.14.8
2024-06-22 15:49:14 +02:00
dependabot[bot]
0ffda40ac8 build(deps-dev): update @types/node requirement
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-22 12:55:07 +00:00
Emrik Östling
cb639907ee Merge pull request #43 from C4illin/dependabot/npm_and_yarn/biomejs/biome-1.8.2
build(deps-dev): bump @biomejs/biome from 1.8.1 to 1.8.2
2024-06-22 14:53:36 +02:00
dependabot[bot]
0166842b78 build(deps-dev): bump @biomejs/biome from 1.8.1 to 1.8.2
Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) from 1.8.1 to 1.8.2.
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/cli/v1.8.2/packages/@biomejs/biome)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-21 08:47:40 +00:00
Emrik Östling
277a35b5df Merge pull request #32 from C4illin/release-please--branches--main--components--convertx-frontend 2024-06-20 20:27:26 +02:00
github-actions[bot]
42124e08b2 chore(main): release 0.2.0 2024-06-20 18:24:09 +00:00
C4illin
13169574f0 feat: change from debian to alpine
issue #34
2024-06-20 20:23:34 +02:00
C4illin
6fb07f0d13 build(deps-dev): update typescroipt 2024-06-20 20:10:02 +02:00
Emrik Östling
8121114ccb Merge pull request #40 from C4illin/dependabot/npm_and_yarn/types/node-tw-20.14.6
build(deps-dev): update @types/node requirement from ^20.14.5 to ^20.14.6
2024-06-20 11:20:37 +02:00
dependabot[bot]
81881af1c1 build(deps-dev): update @types/node requirement
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-20 08:58:16 +00:00
Emrik Östling
bbb4117e9d Merge pull request #41 from C4illin/dependabot/npm_and_yarn/types/bun-tw-1.1.5
build(deps-dev): update @types/bun requirement from ^1.1.4 to ^1.1.5
2024-06-20 10:56:48 +02:00
dependabot[bot]
d7ec8179d8 build(deps-dev): update @types/bun requirement from ^1.1.4 to ^1.1.5
---
updated-dependencies:
- dependency-name: "@types/bun"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-20 08:51:56 +00:00
Emrik Östling
cef60afee3 Merge pull request #37 from C4illin/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-tw-7.13.1
build(deps-dev): update @typescript-eslint/eslint-plugin requirement from ^7.13.0 to ^7.13.1
2024-06-19 00:40:57 +02:00
dependabot[bot]
ccf116acde build(deps-dev): update @typescript-eslint/eslint-plugin requirement
Updates the requirements on [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.13.1/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 09:44:48 +00:00
Emrik Östling
f609984c90 Merge pull request #38 from C4illin/dependabot/npm_and_yarn/types/node-tw-20.14.5
build(deps-dev): update @types/node requirement from ^20.14.2 to ^20.14.5
2024-06-18 11:44:10 +02:00
dependabot[bot]
663e654c80 build(deps-dev): update @types/node requirement
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 09:43:46 +00:00
Emrik Östling
31050dbf66 Merge pull request #36 from C4illin/dependabot/npm_and_yarn/typescript-eslint/parser-tw-7.13.1
build(deps-dev): update @typescript-eslint/parser requirement from ^7.13.0 to ^7.13.1
2024-06-18 11:42:16 +02:00
dependabot[bot]
8918c418f4 build(deps-dev): update @typescript-eslint/parser requirement
Updates the requirements on [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.13.1/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 08:30:14 +00:00
Emrik Östling
56266e0da8 Merge pull request #35 from C4illin/dependabot/npm_and_yarn/elysia-tw-1.0.24
build(deps): update elysia requirement from ^1.0.23 to ^1.0.24
2024-06-18 10:28:46 +02:00
dependabot[bot]
a3f5b5153a build(deps): update elysia requirement from ^1.0.23 to ^1.0.24
---
updated-dependencies:
- dependency-name: elysia
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 08:16:34 +00:00
Emrik Östling
6b4c7a16e0 Merge pull request #33 from C4illin/dependabot/npm_and_yarn/types/bun-tw-1.1.4
build(deps-dev): update @types/bun requirement from ^1.1.3 to ^1.1.4
2024-06-13 12:43:00 +02:00
dependabot[bot]
7c7756713b build(deps-dev): update @types/bun requirement from ^1.1.3 to ^1.1.4
---
updated-dependencies:
- dependency-name: "@types/bun"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-13 08:22:51 +00:00
Emrik Östling
15d4233a82 Merge pull request #31 from C4illin/feature-libjxl 2024-06-11 19:36:52 +02:00
C4illin
a1411a7559 chore: update readme with libjxl 2024-06-11 19:36:19 +02:00
C4illin
853a4c4f32 chore: format 2024-06-11 19:32:23 +02:00
C4illin
b05b0a14b0 build(deps-dev): update trustedDependencies in package.json 2024-06-11 19:31:40 +02:00
C4illin
ff680cb295 feat: add libjxl for jpegxl conversion 2024-06-11 19:30:06 +02:00
Emrik Östling
31e1a3124c Merge pull request #30 from C4illin/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-tw-7.13.0
build(deps-dev): update @typescript-eslint/eslint-plugin requirement from ^7.12.0 to ^7.13.0
2024-06-11 15:52:39 +02:00
dependabot[bot]
70278ef0b6 build(deps-dev): update @typescript-eslint/eslint-plugin requirement
Updates the requirements on [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.13.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-11 10:28:16 +00:00
Emrik Östling
0a33fb32e7 Merge pull request #29 from C4illin/dependabot/npm_and_yarn/typescript-eslint/parser-tw-7.13.0
build(deps-dev): update @typescript-eslint/parser requirement from ^7.12.0 to ^7.13.0
2024-06-11 12:26:48 +02:00
dependabot[bot]
26f52a5122 build(deps-dev): update @typescript-eslint/parser requirement
Updates the requirements on [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.13.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-11 10:24:09 +00:00
Emrik Östling
8f8de4295a Merge pull request #28 from C4illin/dependabot/npm_and_yarn/biomejs/biome-1.8.1
build(deps-dev): bump @biomejs/biome from 1.8.0 to 1.8.1
2024-06-11 12:22:41 +02:00
dependabot[bot]
660b342f2e build(deps-dev): bump @biomejs/biome from 1.8.0 to 1.8.1
Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/cli/v1.8.1/packages/@biomejs/biome)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-11 10:08:39 +00:00
Emrik Östling
6306a99740 Merge pull request #27 from C4illin/dependabot/npm_and_yarn/prettier-tw-3.3.2
build(deps-dev): update prettier requirement from ^3.3.1 to ^3.3.2
2024-06-11 12:07:08 +02:00
dependabot[bot]
5ca6f45809 build(deps-dev): update prettier requirement from ^3.3.1 to ^3.3.2
Updates the requirements on [prettier](https://github.com/prettier/prettier) to permit the latest version.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.3.1...3.3.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-11 09:03:10 +00:00
Emrik Östling
3ea3e1dd01 Merge pull request #26 from C4illin/release-please--branches--main--components--convertx-frontend 2024-06-10 23:09:12 +02:00
github-actions[bot]
2fddfbe24a chore(main): release 0.1.2 2024-06-10 21:07:51 +00:00
C4illin
25df58ba82 fix: fix incorrect redirect
issue #23
2024-06-10 23:06:26 +02:00
Emrik Östling
249bccdc7d Merge pull request #25 from C4illin/dependabot/npm_and_yarn/elysia-tw-1.0.23
build(deps): update elysia requirement from ^1.0.22 to ^1.0.23
2024-06-10 17:22:00 +02:00
dependabot[bot]
ec0e2db0e9 build(deps): update elysia requirement from ^1.0.22 to ^1.0.23
---
updated-dependencies:
- dependency-name: elysia
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 08:26:45 +00:00
Emrik Östling
ef9b68e0da Merge pull request #22 from C4illin/dependabot/npm_and_yarn/prettier-tw-3.3.1
build(deps-dev): update prettier requirement from ^3.3.0 to ^3.3.1
2024-06-06 10:46:58 +02:00
dependabot[bot]
31789738fc build(deps-dev): update prettier requirement from ^3.3.0 to ^3.3.1
Updates the requirements on [prettier](https://github.com/prettier/prettier) to permit the latest version.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.3.0...3.3.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-06 08:24:30 +00:00
Emrik Östling
5fa349a80e Merge pull request #21 from C4illin/dependabot/npm_and_yarn/biomejs/biome-1.8.0
build(deps-dev): bump @biomejs/biome from 1.7.3 to 1.8.0
2024-06-05 16:01:20 +02:00
dependabot[bot]
5dfd0f6f44 build(deps-dev): bump @biomejs/biome from 1.7.3 to 1.8.0
Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) from 1.7.3 to 1.8.0.
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/cli/v1.8.0/packages/@biomejs/biome)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-05 14:01:06 +00:00
Emrik Östling
bfa6301570 Merge pull request #20 from C4illin/dependabot/npm_and_yarn/types/node-tw-20.14.2
build(deps-dev): update @types/node requirement from ^20.14.1 to ^20.14.2
2024-06-05 15:59:36 +02:00
dependabot[bot]
3ea52c4faf build(deps-dev): update @types/node requirement
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-05 08:22:45 +00:00
Emrik Östling
391e62bfee Merge pull request #17 from C4illin/dependabot/npm_and_yarn/typescript-eslint/eslint-plugin-tw-7.12.0
build(deps-dev): update @typescript-eslint/eslint-plugin requirement from ^7.11.0 to ^7.12.0
2024-06-04 10:42:36 +02:00
dependabot[bot]
4d1da58f74 build(deps-dev): update @typescript-eslint/eslint-plugin requirement
Updates the requirements on [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.12.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-04 08:39:26 +00:00
Emrik Östling
6dec9ae93b Merge pull request #18 from C4illin/dependabot/npm_and_yarn/types/node-tw-20.14.1
build(deps-dev): update @types/node requirement from ^20.14.0 to ^20.14.1
2024-06-04 10:38:11 +02:00
dependabot[bot]
b466a6de99 build(deps-dev): update @types/node requirement
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-04 08:37:29 +00:00
Emrik Östling
186681ef44 Merge pull request #19 from C4illin/dependabot/npm_and_yarn/typescript-eslint/parser-tw-7.12.0
build(deps-dev): update @typescript-eslint/parser requirement from ^7.11.0 to ^7.12.0
2024-06-04 10:35:57 +02:00
dependabot[bot]
1e2273b7c4 build(deps-dev): update @typescript-eslint/parser requirement
Updates the requirements on [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.12.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-04 08:15:31 +00:00
Emrik Östling
8d17f59a58 Merge pull request #16 from C4illin/dependabot/npm_and_yarn/types/node-tw-20.14.0 2024-06-03 10:44:35 +02:00
dependabot[bot]
d8fcd15aeb build(deps-dev): update @types/node requirement
---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 08:44:25 +00:00
Emrik Östling
8cc0eee254 Merge pull request #15 from C4illin/dependabot/npm_and_yarn/prettier-tw-3.3.0 2024-06-03 10:42:55 +02:00
dependabot[bot]
e4b69023d9 build(deps-dev): update prettier requirement from ^3.2.5 to ^3.3.0
Updates the requirements on [prettier](https://github.com/prettier/prettier) to permit the latest version.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.2.5...3.3.0)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-03 08:28:22 +00:00
Emrik Östling
7d40890636 chore: add image size to readme 2024-06-01 13:07:22 +02:00
Emrik Östling
3ecd2c62ae chore: add to todo 2024-06-01 13:02:31 +02:00
Emrik Östling
16cabab0d0 chore: add link to packages 2024-06-01 00:18:48 +02:00
Emrik Östling
3e1c9e147f chore: add badges 2024-05-31 16:42:15 +02:00
Emrik Östling
5e7a0f5634 chore: add links to converters 2024-05-31 16:27:24 +02:00
Emrik Östling
61b02206c0 Update release-please.yml 2024-05-31 16:15:15 +02:00
Emrik Östling
e19a32fc6b Merge pull request #14 from C4illin/release-please--branches--main--components--convertx-frontend
chore(main): release 0.1.1
2024-05-31 11:56:02 +02:00
Emrik Östling
1712fea1d3 Merge branch 'main' into release-please--branches--main--components--convertx-frontend 2024-05-30 16:45:23 +02:00
C4illin
1ac4808a64 chore: remove maintain PR workflow
This commit removes the maintain PR workflow file, `.github/workflows/maintain-pr.yml`. The workflow was no longer needed and has been deleted.
2024-05-30 16:18:51 +02:00
C4illin
84fd5367ce chore: update actions/checkout to v4 in maintain PR workflow 2024-05-30 16:18:07 +02:00
C4illin
337cfdc15b chore: add maintain PR workflow
This commit adds a new workflow file, `.github/workflows/maintain-pr.yml`, which sets up a workflow to maintain release merge pull requests. The workflow is triggered on pushes to the `main` branch. It includes steps to check for an existing PR, create/update a PR if it doesn't exist, and reset the release branch if needed.
2024-05-30 16:16:30 +02:00
Emrik Östling
b979bd4f13 chore: update badges 2024-05-30 16:13:59 +02:00
Emrik Östling
3cab902752 chore: make use latest image instead of main 2024-05-30 14:36:05 +02:00
Emrik Östling
1d0dd2a69f chore(main): release 0.1.1 2024-05-30 14:34:56 +02:00
C4illin
17f439210a chore: remove unused and fix spelling 2024-05-30 14:34:32 +02:00
C4illin
9970fd3f89 fix: 🐛 make sure all redirects are 302
issue: #12
2024-05-30 14:33:57 +02:00
C4illin
8b7bcceb7b chore: remove docker tag master 2024-05-30 14:21:13 +02:00
C4illin
93ebdabf6f chore: 🔥 remove old master tag from containers 2024-05-30 14:15:31 +02:00
C4illin
0b278c989b Merge branch 'main' of https://github.com/C4illin/ConvertX 2024-05-30 13:31:38 +02:00
C4illin
518e771afe build: dependabot follow conventional commits 2024-05-30 13:31:36 +02:00
Emrik Östling
6578a02478 Merge pull request #13 from C4illin/release-please--branches--main--components--convertx-frontend 2024-05-30 13:17:23 +02:00
Emrik Östling
e76b8a97f0 chore(main): release 0.1.0 2024-05-30 13:16:48 +02:00
C4illin
54d9aecbf9 chore: release 0.1.0
Release-As: 0.1.0
2024-05-30 13:16:09 +02:00
C4illin
f2befc5edb add release please 2024-05-30 12:40:55 +02:00
44 changed files with 1799 additions and 993 deletions

7
.deepsource.toml Normal file
View File

@@ -0,0 +1,7 @@
version = 1
[[analyzers]]
name = "javascript"
[analyzers.meta]
environment = ["nodejs"]

View File

@@ -1,55 +0,0 @@
/** @type {import("eslint").Linter.Config} */
const config = {
root: true,
parser: "@typescript-eslint/parser",
plugins: ["isaacscript", "import"],
extends: [
"plugin:@typescript-eslint/recommended-type-checked",
"plugin:@typescript-eslint/stylistic-type-checked",
"plugin:prettier/recommended",
],
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
tsconfigRootDir: __dirname,
project: [
"./tsconfig.json",
"./cli/tsconfig.eslint.json", // separate eslint config for the CLI since we want to lint and typecheck differently due to template files
"./upgrade/tsconfig.json",
"./www/tsconfig.json",
],
},
overrides: [
// Template files don't have reliable type information
{
files: ["./cli/template/**/*.{ts,tsx}"],
extends: ["plugin:@typescript-eslint/disable-type-checked"],
},
],
rules: {
// These off/not-configured-the-way-we-want lint rules we like & opt into
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-unused-vars": [
"error",
{ argsIgnorePattern: "^_", destructuredArrayIgnorePattern: "^_" },
],
"@typescript-eslint/consistent-type-imports": [
"error",
{ prefer: "type-imports", fixStyle: "inline-type-imports" },
],
"import/consistent-type-specifier-style": ["error", "prefer-inline"],
// For educational purposes we format our comments/jsdoc nicely
"isaacscript/complete-sentences-jsdoc": "warn",
"isaacscript/format-jsdoc-comments": "warn",
// These lint rules don't make sense for us but are enabled in the preset configs
"@typescript-eslint/no-confusing-void-expression": "off",
"@typescript-eslint/restrict-template-expressions": "off",
// This rule doesn't seem to be working properly
"@typescript-eslint/prefer-nullish-coalescing": "off",
},
};
module.exports = config;

View File

@@ -1,23 +0,0 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
# Maintain dependencies for npm
- package-ecosystem: "npm" # See documentation for possible values
versioning-strategy: increase
directory: "/" # Location of package manifests
schedule:
interval: "daily"
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
# Maintain dependencies for Docker
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "daily"

View File

@@ -1,28 +0,0 @@
name: 'Dependabot: Update bun.lockb'
on:
pull_request:
paths:
- "package.json"
permissions:
contents: write
jobs:
update-bun-lockb:
name: "Update bun.lockb"
if: github.actor == 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
- uses: oven-sh/setup-bun@v1
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.ref }}
- run: |
bun install
git add bun.lockb
git config --global user.name 'dependabot[bot]'
git config --global user.email 'dependabot[bot]@users.noreply.github.com'
git commit --amend --no-edit
git push --force

View File

@@ -58,9 +58,10 @@ jobs:
# https://github.com/docker/build-push-action
- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

25
.github/workflows/release-please.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
on:
push:
branches:
- main
permissions:
contents: write
pull-requests: write
name: release-please
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v4
with:
# this assumes that you have created a personal access token
# (PAT) and configured it as a GitHub action secret named
# `MY_RELEASE_PLEASE_TOKEN` (this secret name is not important).
token: ${{ secrets.MY_RELEASE_PLEASE_TOKEN }}
# token: ${{ secrets.GITHUB_TOKEN }}
# this is a built-in strategy in release-please, see "Action Inputs"
# for more options
release-type: node

21
.github/workflows/remove-docker-tag.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Remove Docker Tag
on:
workflow_dispatch:
jobs:
remove-docker-tag:
runs-on: ubuntu-latest
# Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job.
# (required)
permissions:
contents: read
packages: write
steps:
- name: Remove Docker Tag
uses: ArchieAtkinson/remove-dockertag-action@v0.0
with:
tag_name: master
github_token: ${{ secrets.GITHUB_TOKEN }}

4
.gitignore vendored
View File

@@ -46,4 +46,6 @@ package-lock.json
/output
/db
/data
/Bruno
/Bruno
/tsconfig.tsbuildinfo
/src/public/generated.css

4
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}

139
CHANGELOG.md Normal file
View File

@@ -0,0 +1,139 @@
# Changelog
## [0.8.0](https://github.com/C4illin/ConvertX/compare/v0.7.0...v0.8.0) (2024-09-30)
### Features
* add light theme, fixes [#156](https://github.com/C4illin/ConvertX/issues/156) ([72636c5](https://github.com/C4illin/ConvertX/commit/72636c5059ebf09c8fece2e268293650b2f8ccf6))
### Bug Fixes
* add support for usd for assimp, [#144](https://github.com/C4illin/ConvertX/issues/144) ([2057167](https://github.com/C4illin/ConvertX/commit/20571675766209ad1251f07e687d29a6791afc8b))
* cleanup formats and add opus, fixes [#159](https://github.com/C4illin/ConvertX/issues/159) ([ae1dfaf](https://github.com/C4illin/ConvertX/commit/ae1dfafc9d9116a57b08c2f7fc326990e00824b0))
* support .awb and clean up, fixes [#153](https://github.com/C4illin/ConvertX/issues/153), [#92](https://github.com/C4illin/ConvertX/issues/92) ([1c9e67f](https://github.com/C4illin/ConvertX/commit/1c9e67fc3201e0e5dee91e8981adf34daaabf33a))
## [0.7.0](https://github.com/C4illin/ConvertX/compare/v0.6.0...v0.7.0) (2024-09-26)
### Features
* Add support for 3d assets through assimp converter ([63a4328](https://github.com/C4illin/ConvertX/commit/63a4328d4a1e01df3e0ec4a877bad8c8ffe71129))
### Bug Fixes
* wrong layout on search with few options ([8817389](https://github.com/C4illin/ConvertX/commit/88173891ba2d69da46eda46f3f598a9b54f26f96))
## [0.6.0](https://github.com/C4illin/ConvertX/compare/v0.5.0...v0.6.0) (2024-09-25)
### Features
* ui remake with tailwind ([22f823c](https://github.com/C4illin/ConvertX/commit/22f823c535b20382981f86a13616b830a1f3392f))
### Bug Fixes
* rename css file to force update cache, fixes [#141](https://github.com/C4illin/ConvertX/issues/141) ([47139a5](https://github.com/C4illin/ConvertX/commit/47139a550bd3d847da288c61bf8f88953b79c673))
## [0.5.0](https://github.com/C4illin/ConvertX/compare/v0.4.1...v0.5.0) (2024-09-20)
### Features
* add option to customize how often files are automatically deleted ([317c932](https://github.com/C4illin/ConvertX/commit/317c932c2a26280bf37ed3d3bf9b879413590f5a))
### Bug Fixes
* improve file name replacement logic ([60ba7c9](https://github.com/C4illin/ConvertX/commit/60ba7c93fbdc961f3569882fade7cc13dee7a7a5))
## [0.4.1](https://github.com/C4illin/ConvertX/compare/v0.4.0...v0.4.1) (2024-09-15)
### Bug Fixes
* allow non lowercase true and false values, fixes [#122](https://github.com/C4illin/ConvertX/issues/122) ([bef1710](https://github.com/C4illin/ConvertX/commit/bef1710e3376baa7e25c107ded20a40d18b8c6b0))
## [0.4.0](https://github.com/C4illin/ConvertX/compare/v0.3.3...v0.4.0) (2024-08-26)
### Features
* add option for unauthenticated file conversions [#114](https://github.com/C4illin/ConvertX/issues/114) ([f0d0e43](https://github.com/C4illin/ConvertX/commit/f0d0e4392983c3e4c530304ea88e023fda9bcac0))
* add resvg converter ([d5eeef9](https://github.com/C4illin/ConvertX/commit/d5eeef9f6884b2bb878508bed97ea9ceaa662995))
* add robots.txt ([6597c1d](https://github.com/C4illin/ConvertX/commit/6597c1d7caeb4dfb6bc47b442e4dfc9840ad12b7))
* Add search bar for formats ([53fff59](https://github.com/C4illin/ConvertX/commit/53fff594fc4d69306abcb2a5cad890fcd0953a58))
### Bug Fixes
* keep unauthenticated user logged in if allowed [#114](https://github.com/C4illin/ConvertX/issues/114) ([bc4ad49](https://github.com/C4illin/ConvertX/commit/bc4ad492852fad8cb832a0c03485cccdd7f7b117))
* pdf support in vips ([8ca4f15](https://github.com/C4illin/ConvertX/commit/8ca4f1587df7f358893941c656d78d75f04dac93))
* Slow click on conversion popup does not work ([4d9c4d6](https://github.com/C4illin/ConvertX/commit/4d9c4d64aa0266f3928935ada68d91ac81f638aa))
## [0.3.3](https://github.com/C4illin/ConvertX/compare/v0.3.2...v0.3.3) (2024-07-30)
### Bug Fixes
* downgrade @elysiajs/html dependency to version 1.0.2 ([c714ade](https://github.com/C4illin/ConvertX/commit/c714ade3e23865ba6cfaf76c9e7259df1cda222c))
## [0.3.2](https://github.com/C4illin/ConvertX/compare/v0.3.1...v0.3.2) (2024-07-09)
### Bug Fixes
* increase max request body to support large uploads ([3ae2db5](https://github.com/C4illin/ConvertX/commit/3ae2db5d9b36fe3dcd4372ddcd32aa573ea59aa6)), closes [#64](https://github.com/C4illin/ConvertX/issues/64)
## [0.3.1](https://github.com/C4illin/ConvertX/compare/v0.3.0...v0.3.1) (2024-06-27)
### Bug Fixes
* release releases ([4d4c13a](https://github.com/C4illin/ConvertX/commit/4d4c13a8d85ec7c9209ad41cdbea7d4380b0edbf))
## [0.3.0](https://github.com/C4illin/ConvertX/compare/v0.2.0...v0.3.0) (2024-06-27)
### Features
* add version number to log ([4dcb796](https://github.com/C4illin/ConvertX/commit/4dcb796e1bd27badc078d0638076cd9f1e81c4a4)), closes [#44](https://github.com/C4illin/ConvertX/issues/44)
* change to xelatex ([fae2ba9](https://github.com/C4illin/ConvertX/commit/fae2ba9c54461dccdccd1bfb5e76398540d11d0b))
* print version of installed converters to log ([801cf28](https://github.com/C4illin/ConvertX/commit/801cf28d1e5edac9353b0b16be75a4fb48470b8a))
## [0.2.0](https://github.com/C4illin/ConvertX/compare/v0.1.2...v0.2.0) (2024-06-20)
### Features
* add libjxl for jpegxl conversion ([ff680cb](https://github.com/C4illin/ConvertX/commit/ff680cb29534a25c3148a90fd064bb86c71fb482))
* change from debian to alpine ([1316957](https://github.com/C4illin/ConvertX/commit/13169574f0134ae236f8d41287bb73930b575e82)), closes [#34](https://github.com/C4illin/ConvertX/issues/34)
## [0.1.2](https://github.com/C4illin/ConvertX/compare/v0.1.1...v0.1.2) (2024-06-10)
### Bug Fixes
* fix incorrect redirect ([25df58b](https://github.com/C4illin/ConvertX/commit/25df58ba82321aaa6617811a6995cb96c2a00a40)), closes [#23](https://github.com/C4illin/ConvertX/issues/23)
## [0.1.1](https://github.com/C4illin/ConvertX/compare/v0.1.0...v0.1.1) (2024-05-30)
### Bug Fixes
* :bug: make sure all redirects are 302 ([9970fd3](https://github.com/C4illin/ConvertX/commit/9970fd3f89190af96f8762edc3817d1e03082b3a)), closes [#12](https://github.com/C4illin/ConvertX/issues/12)
## 0.1.0 (2024-05-30)
### Features
* remove file from file list in index.html ([787ff97](https://github.com/C4illin/ConvertX/commit/787ff9741ecbbf4fb4c02b43bd22a214a173fd7b))
### Miscellaneous Chores
* release 0.1.0 ([54d9aec](https://github.com/C4illin/ConvertX/commit/54d9aecbf949689b12aa7e5e8e9be7b9032f4431))

View File

@@ -1,4 +1,5 @@
FROM oven/bun:1-debian as base
FROM oven/bun:1.1.29-alpine AS base
LABEL org.opencontainers.image.source="https://github.com/C4illin/ConvertX"
WORKDIR /app
# install dependencies into temp directory
@@ -13,16 +14,22 @@ RUN mkdir -p /temp/prod
COPY package.json bun.lockb /temp/prod/
RUN cd /temp/prod && bun install --frozen-lockfile --production
FROM base AS builder
RUN apk --no-cache add curl gcc
ENV PATH=/root/.cargo/bin:$PATH
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
RUN cargo install resvg
# copy node_modules from temp directory
# then copy all (non-ignored) project files into the image
# FROM base AS prerelease
# COPY --from=install /temp/dev/node_modules node_modules
# COPY . .
FROM base AS prerelease
COPY --from=install /temp/dev/node_modules node_modules
COPY . .
# # [optional] tests & build
# ENV NODE_ENV=production
ENV NODE_ENV=production
# RUN bun test
# RUN bun run build
RUN bun run build
# copy production dependencies and source code into final image
FROM base AS release
@@ -31,21 +38,30 @@ LABEL description="ConvertX: self-hosted online file converter supporting 700+ f
LABEL repo="https://github.com/C4illin/ConvertX"
# install additional dependencies
RUN rm -rf /var/lib/apt/lists/partial && apt-get update -o Acquire::CompressionTypes::Order::=gz \
&& apt-get install -y \
RUN apk --no-cache add \
pandoc \
texlive-latex-recommended \
texlive-fonts-recommended \
texlive-latex-extra \
texlive \
texlive-xetex \
texmf-dist-latexextra \
ffmpeg \
graphicsmagick \
ghostscript \
libvips-tools
vips-tools \
vips-poppler \
vips-jxl \
libjxl-tools \
assimp
# this might be needed for some latex use cases, will add it if needed.
# texmf-dist-fontsextra \
COPY --from=install /temp/prod/node_modules node_modules
COPY --from=builder /root/.cargo/bin/resvg /usr/local/bin/resvg
COPY --from=prerelease /app/src/public/generated.css /app/src/public/
# COPY --from=prerelease /app/src/index.tsx /app/src/
# COPY --from=prerelease /app/package.json .
COPY . .
EXPOSE 3000/tcp
ENV NODE_ENV=production
ENTRYPOINT [ "bun", "run", "./src/index.tsx" ]

View File

@@ -1,49 +1,64 @@
![ConvertX](images/logo.png)
# ConvertX
[![Docker](https://github.com/C4illin/ConvertX/actions/workflows/docker-publish.yml/badge.svg?branch=main)](https://github.com/C4illin/ConvertX/actions/workflows/docker-publish.yml)
[![GitHub Release](https://img.shields.io/github/v/release/C4illin/ConvertX)](https://github.com/C4illin/ConvertX/pkgs/container/convertx)
![GitHub commits since latest release](https://img.shields.io/github/commits-since/C4illin/ConvertX/latest)
![GitHub repo size](https://img.shields.io/github/repo-size/C4illin/ConvertX)
![Docker container size](https://ghcr-badge.egpl.dev/c4illin/convertx/size?color=%230375b6&tag=latest&label=image+size&trim=)
![GitHub top language](https://img.shields.io/github/languages/top/C4illin/ConvertX)
A self-hosted online file converter. Supports 831 different formats. Written with Typescript, Bun and Elysia.
A self-hosted online file converter. Supports over a thousand different formats. Written with TypeScript, Bun and Elysia.
## Features
- Convert files to different formats
- Process multiple files at once
- Password protection
- Multiple accounts
## Converters supported
| Converter | Use case | Converts from | Converts to |
|----------------|---------------|---------------|-------------|
| Vips | Images (fast) | 45 | 23 |
| PDFLaTeX | Documents | 1 | 1 |
| Pandoc | Documents | 43 | 65 |
| GraphicsMagick | Images | 166 | 133 |
| FFmpeg | Video | ~473 | ~280 |
| Converter | Use case | Converts from | Converts to |
|------------------------------------------------------------------------------|---------------|---------------|-------------|
| [libjxl](https://github.com/libjxl/libjxl) | JPEG XL | 11 | 11 |
| [resvg](https://github.com/RazrFalcon/resvg) | SVG | 1 | 1 |
| [Vips](https://github.com/libvips/libvips) | Images | 45 | 23 |
| [Assimp](https://github.com/assimp/assimp) | 3D Assets | 70 | 24 |
| [XeLaTeX](https://tug.org/xetex/) | LaTeX | 1 | 1 |
| [Pandoc](https://pandoc.org/) | Documents | 43 | 65 |
| [GraphicsMagick](http://www.graphicsmagick.org/) | Images | 166 | 133 |
| [FFmpeg](https://ffmpeg.org/) | Video | ~473 | ~280 |
<!-- many ffmpeg fileformats are duplicates -->
Any missing converter? Open an issue or pull request!
## Deployment
```yml
# docker-compose.yml
services:
convertx:
image: ghcr.io/c4illin/convertx:main
image: ghcr.io/c4illin/convertx
container_name: convertx
restart: unless-stopped
ports:
- "3000:3000"
environment: # Defaults are listed below. All are optional.
- ACCOUNT_REGISTRATION=false # true or false, doesn't matter for the first account (e.g. keep this to false if you only want one account)
- JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() by default
- HTTP_ALLOWED=false # setting this to true is unsafe, only set this to true locally
- ALLOW_UNAUTHENTICATED=false # allows anyone to use the service without logging in, only set this to true locally
- AUTO_DELETE_EVERY_N_HOURS=24 # checks every n hours for files older then n hours and deletes them, set to 0 to disable
volumes:
- convertx:/app/data
```
<!-- or
or
```bash
docker run ghcr.io/c4illin/convertx:master -p 3000:3000 -e ACCOUNT_REGISTRATION=false -v /path/you/want:/app/data
``` -->
docker run -p 3000:3000 -v ./data:/app/data ghcr.io/c4illin/convertx
```
Then visit `http://localhost:3000` in your browser and create your account. Don't leave it unconfigured and open, as anyone can register the first account.
@@ -53,13 +68,31 @@ If you get unable to open database file run `chown -R $USER:$USER path` on the p
Tutorial in french: https://belginux.com/installer-convertx-avec-docker/
## Screenshots
![ConvertX Preview](images/preview.png)
## Development
0. Install [Bun](https://bun.sh/) and Git
1. Clone the repository
2. `bun install`
3. `bun run dev`
Pull requests are welcome! See below and open issues for the list of todos.
## Todo
- [x] Add messages for errors in converters
- [x] Add searchable list of formats
- [ ] Add options for converters
- [ ] Add more converters
- [ ] Divide index.tsx into smaller components
- [ ] Add tests
- [ ] Add searchable list of formats
- [ ] Make the upload button nicer and more easy to drop files on. Support copy paste as well if possible.
- [ ] Make errors logs visible from the web ui
- [ ] Add more converters:
- [ ] [deark](https://github.com/jsummers/deark)
- [ ] LibreOffice
- [ ] [dvisvgm](https://github.com/mgieseki/dvisvgm)
## Contributors

View File

@@ -1,5 +1,5 @@
{
"$schema": "https://biomejs.dev/schemas/1.7.3/schema.json",
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
"formatter": {
"enabled": true,
"formatWithErrors": true,
@@ -9,7 +9,15 @@
"lineWidth": 80,
"attributePosition": "auto"
},
"organizeImports": { "enabled": true },
"files": {
"ignore": [
"**/node_modules/**",
"**/pico.lime.min.css"
]
},
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
@@ -22,7 +30,11 @@
"useLiteralKeys": "error",
"useOptionalChain": "error"
},
"correctness": { "noPrecisionLoss": "error", "noUnusedVariables": "off" },
"correctness": {
"noPrecisionLoss": "error",
"noUnusedVariables": "off",
"useJsxKeyInIterable": "off"
},
"style": {
"noInferrableTypes": "error",
"noNamespace": "error",
@@ -42,6 +54,9 @@
"noUnsafeDeclarationMerging": "error",
"useAwait": "error",
"useNamespaceKeyword": "error"
},
"nursery": {
"useSortedClasses": "error"
}
}
},
@@ -57,4 +72,4 @@
"attributePosition": "auto"
}
}
}
}

BIN
bun.lockb

Binary file not shown.

View File

@@ -2,10 +2,14 @@ services:
convertx:
build:
context: .
# dockerfile: Debian.Dockerfile
volumes:
- ./data:/app/data
environment:
- ACCOUNT_REGISTRATION=true
- JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234
environment: # Defaults are listed below. All are optional.
- ACCOUNT_REGISTRATION=true # true or false, doesn't matter for the first account (e.g. keep this to false if you only want one account)
- JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 # will use randomUUID() by default
- HTTP_ALLOWED=true # setting this to true is unsafe, only set this to true locally
- ALLOW_UNAUTHENTICATED=true # allows anyone to use the service without logging in, only set this to true locally
- AUTO_DELETE_EVERY_N_HOURS=1 # checks every n hours for files older then n hours and deletes them, set to 0 to disable
ports:
- 3000:3000

55
eslint.config.js Normal file
View File

@@ -0,0 +1,55 @@
import comments from "@eslint-community/eslint-plugin-eslint-comments/configs";
import { fixupPluginRules } from "@eslint/compat";
import js from "@eslint/js";
import deprecationPlugin from "eslint-plugin-deprecation";
import importPlugin from "eslint-plugin-import";
import simpleImportSortPlugin from "eslint-plugin-simple-import-sort";
import tailwind from "eslint-plugin-tailwindcss";
import globals from "globals";
import tseslint from "typescript-eslint";
export default tseslint.config(
js.configs.recommended,
importPlugin.flatConfigs.recommended,
comments.recommended,
...tseslint.configs.recommended,
...tailwind.configs["flat/recommended"],
{
plugins: {
"@typescript-eslint": tseslint.plugin,
deprecation: fixupPluginRules(deprecationPlugin),
import: fixupPluginRules(importPlugin),
"simple-import-sort": simpleImportSortPlugin,
},
ignores: ["**/node_modules/**", "**/public/**"],
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
ecmaVersion: "latest",
sourceType: "module",
project: ["./tsconfig.json"],
},
globals: {
...globals.node,
},
},
files: ["**/*.{js,mjs,cjs}"],
rules: {
"tailwindcss/no-custom-classname": [
"error",
{
config: "./tailwind.config.js",
whitelist: [
"select_container",
"convert_to_popup",
"convert_to_group",
"target",
"convert_to_target",
],
},
],
"import/no-named-as-default": "off",
},
},
);

BIN
images/preview.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@@ -1,39 +1,67 @@
{
"name": "convertx-frontend",
"version": "1.0.50",
"version": "0.8.0",
"scripts": {
"dev": "bun run --watch src/index.tsx",
"hot": "bun run --hot src/index.tsx",
"format": "biome format --write ./src",
"css": "cpy 'node_modules/@picocss/pico/css/pico.lime.min.css' 'src/public/' --flat"
"build": "postcss ./src/main.css -o ./src/public/generated.css",
"lint": "run-p 'lint:*'",
"lint:tsc": "tsc --noEmit",
"lint:knip": "knip",
"lint:biome": "biome lint --error-on-warnings ./src"
},
"dependencies": {
"@elysiajs/cookie": "^0.8.0",
"@elysiajs/html": "^1.0.2",
"@elysiajs/jwt": "^1.0.2",
"@elysiajs/static": "^1.0.3",
"elysia": "^1.0.22"
"@elysiajs/html": "1.0.2",
"@elysiajs/jwt": "^1.1.1",
"@elysiajs/static": "1.0.3",
"elysia": "^1.1.17"
},
"module": "src/index.tsx",
"type": "module",
"bun-create": {
"start": "bun run src/index.tsx"
},
"devDependencies": {
"@biomejs/biome": "1.7.3",
"@ianvs/prettier-plugin-sort-imports": "^4.2.1",
"@kitajs/ts-html-plugin": "^4.0.1",
"@biomejs/biome": "1.9.2",
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.0",
"@eslint/compat": "^1.1.1",
"@eslint/js": "^9.11.1",
"@ianvs/prettier-plugin-sort-imports": "^4.3.1",
"@kitajs/ts-html-plugin": "^4.1.0",
"@picocss/pico": "^2.0.6",
"@total-typescript/ts-reset": "^0.5.1",
"@types/bun": "^1.1.3",
"@types/eslint": "^8.56.10",
"@types/node": "^20.12.13",
"@types/ws": "^8.5.10",
"@typescript-eslint/eslint-plugin": "^7.11.0",
"@typescript-eslint/parser": "^7.11.0",
"cpy-cli": "^5.0.0",
"@total-typescript/ts-reset": "^0.6.1",
"@types/bun": "^1.1.10",
"@types/eslint": "^9.6.1",
"@types/eslint-plugin-tailwindcss": "^3.17.0",
"@types/eslint__js": "^8.42.3",
"@types/node": "^22.7.4",
"@typescript-eslint/eslint-plugin": "^8.7.0",
"@typescript-eslint/parser": "^8.7.0",
"autoprefixer": "^10.4.20",
"cssnano": "^7.0.6",
"eslint": "^9.11.1",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
"prettier": "^3.2.5",
"typescript": "^5.4.5"
}
}
"eslint-plugin-deprecation": "^3.0.0",
"eslint-plugin-import": "^2.30.0",
"eslint-plugin-isaacscript": "^4.0.0",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-tailwindcss": "^3.17.4",
"globals": "^15.9.0",
"knip": "^5.30.6",
"npm-run-all2": "^6.2.3",
"postcss": "^8.4.47",
"postcss-cli": "^11.0.0",
"postcss-lightningcss": "^1.0.1",
"prettier": "^3.3.3",
"tailwind-scrollbar": "^3.1.0",
"tailwindcss": "^3.4.13",
"typescript": "^5.6.2",
"typescript-eslint": "^8.7.0"
},
"trustedDependencies": [
"@biomejs/biome"
]
}

9
postcss.config.cjs Normal file
View File

@@ -0,0 +1,9 @@
// eslint-disable-next-line no-undef
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
// eslint-disable-next-line no-undef
...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {})
}
}

6
renovate.json Normal file
View File

@@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
]
}

View File

@@ -1,11 +1,13 @@
export const BaseHtml = ({ children, title = "ConvertX" }) => (
export const BaseHtml = ({
children,
title = "ConvertX",
}: { children: JSX.Element; title?: string }) => (
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title safe>{title}</title>
<link rel="stylesheet" href="/pico.lime.min.css" />
<link rel="stylesheet" href="/style.css" />
<link rel="stylesheet" href="/generated.css" />
<link
rel="apple-touch-icon"
sizes="180x180"
@@ -25,6 +27,6 @@ export const BaseHtml = ({ children, title = "ConvertX" }) => (
/>
<link rel="manifest" href="/site.webmanifest" />
</head>
<body>{children}</body>
<body class="w-full bg-neutral-900 text-neutral-200">{children}</body>
</html>
);

View File

@@ -5,44 +5,53 @@ export const Header = ({
let rightNav: JSX.Element;
if (loggedIn) {
rightNav = (
<ul>
<ul class="flex gap-4 ">
<li>
<a href="/history">History</a>
<a
class="text-accent-600 transition-all hover:text-accent-500 hover:underline"
href="/history">
History
</a>
</li>
<li>
<a href="/logoff">Logout</a>
<a
class="text-accent-600 transition-all hover:text-accent-500 hover:underline"
href="/logoff">
Logout
</a>
</li>
</ul>
);
} else {
rightNav = (
<ul>
<ul class="flex gap-4">
<li>
<a href="/login">Login</a>
<a
class="text-accent-600 transition-all hover:text-accent-500 hover:underline"
href="/login">
Login
</a>
</li>
{accountRegistration && (
{accountRegistration ? (
<li>
<a href="/register">Register</a>
<a
class="text-accent-600 transition-all hover:text-accent-500 hover:underline"
href="/register">
Register
</a>
</li>
)}
) : null}
</ul>
);
}
return (
<header className="container">
<nav>
<header class="w-full p-4">
<nav class="mx-auto flex max-w-4xl justify-between rounded bg-neutral-900 p-4">
<ul>
<li>
<strong>
<a
href="/"
style={{
textDecoration: "none",
color: "inherit",
}}>
ConvertX
</a>
<a href="/">ConvertX</a>
</strong>
</li>
</ul>
@@ -50,4 +59,4 @@ export const Header = ({
</nav>
</header>
);
};
};

143
src/converters/assimp.ts Normal file
View File

@@ -0,0 +1,143 @@
import { exec } from "node:child_process";
// This could be done dynamically by running `ffmpeg -formats` and parsing the output
export const properties = {
from: {
muxer: [
"3d",
"3ds",
"3mf",
"ac",
"ac3d",
"acc",
"amf",
"ase",
"ask",
"assbin",
"b3d",
"blend",
"bsp",
"bvh",
"cob",
"csm",
"dae",
"dxf",
"enff",
"fbx",
"glb",
"gltf",
"hmp",
"ifc",
"ifczip",
"iqm",
"irr",
"irrmesh",
"lwo",
"lws",
"lxo",
"md2",
"md3",
"md5anim",
"md5camera",
"md5mesh",
"mdc",
"mdl",
"mesh.xml",
"mesh",
"mot",
"ms3d",
"ndo",
"nff",
"obj",
"off",
"ogex",
"pk3",
"ply",
"pmx",
"prj",
"q3o",
"q3s",
"raw",
"scn",
"sib",
"smd",
"step",
"stl",
"stp",
"ter",
"uc",
"usd",
"usda",
"usdc",
"usdz",
"vta",
"x",
"x3d",
"x3db",
"xgl",
"xml",
"zae",
"zgl",
],
},
to: {
muxer: [
"3ds",
"3mf",
"assbin",
"assjson",
"assxml",
"collada",
"dae",
"fbx",
"fbxa",
"glb",
"glb2",
"gltf",
"gltf2",
"m3d",
"m3da",
"obj",
"objnomtl",
"pbrt",
"ply",
"plyb",
"stl",
"stlb",
"stp",
"x",
"x3d",
],
},
};
export async function convert(
filePath: string,
fileType: string,
convertTo: string,
targetPath: string,
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
options?: any,
): Promise<string> {
// let command = "ffmpeg";
const command = `assimp export "${filePath}" "${targetPath}"`;
return new Promise((resolve, reject) => {
exec(command, (error, stdout, stderr) => {
if (error) {
reject(`error: ${error}`);
}
if (stdout) {
console.log(`stdout: ${stdout}`);
}
if (stderr) {
console.error(`stderr: ${stderr}`);
}
resolve("success");
});
});
}

View File

@@ -1,11 +1,13 @@
import { exec } from "node:child_process";
// This could be done dynamically by running `ffmpeg -formats` and parsing the output
export const properties = {
from: {
muxer: [
"264",
"265",
"266",
"302",
"3dostr",
"3g2",
@@ -18,6 +20,7 @@ export const properties = {
"aac",
"aax",
"ac3",
"ac4",
"ace",
"acm",
"act",
@@ -48,7 +51,6 @@ export const properties = {
"apng",
"aptx",
"aptxhd",
"aptx_hd",
"aqt",
"aqtitle",
"argo_asf",
@@ -63,10 +65,12 @@ export const properties = {
"av1",
"avc",
"avi",
"avif",
"avr",
"avs",
"avs2",
"avs3",
"awb",
"bcstm",
"bethsoftvid",
"bfi",
@@ -75,8 +79,10 @@ export const properties = {
"bink",
"binka",
"bit",
"bmp_pipe",
"bitpacked",
"bmv",
"bmp",
"bonk",
"boa",
"brender_pix",
"brstm",
@@ -93,7 +99,7 @@ export const properties = {
"codec2",
"codec2raw",
"concat",
"cri_pipe",
"cri",
"dash",
"dat",
"data",
@@ -101,8 +107,9 @@ export const properties = {
"dav",
"dbm",
"dcstr",
"dds_pipe",
"dds",
"derf",
"dfpwm",
"dfa",
"dhav",
"dif",
@@ -131,6 +138,8 @@ export const properties = {
"exr_pipe",
"f32be",
"f32le",
"ec3",
"evc",
"f4v",
"f64be",
"f64le",
@@ -157,13 +166,13 @@ export const properties = {
"gdv",
"genh",
"gif",
"gif_pipe",
"gsm",
"gxf",
"h261",
"h263",
"h264",
"h265",
"h266",
"h26l",
"hca",
"hcom",
@@ -180,7 +189,6 @@ export const properties = {
"ifv",
"ilbc",
"image2",
"image2pipe",
"imf",
"imx",
"ingenient",
@@ -197,21 +205,17 @@ export const properties = {
"ivr",
"j2b",
"j2k",
"j2k_pipe",
"jack",
"jacosub",
"jpegls_pipe",
"jpeg_pipe",
"jv",
"jpegls",
"jpeg",
"jxl",
"kmsgrab",
"kux",
"kvag",
"lavfi",
"libcdio",
"libdc1394",
"libgme",
"libopenmpt",
"live_flv",
"laf",
"lmlm4",
"loas",
"lrc",
@@ -224,16 +228,13 @@ export const properties = {
"m4b",
"m4v",
"mac",
"matroska",
"mca",
"mcc",
"mdl",
"med",
"mgsts",
"microdvd",
"mj2",
"mjpeg",
"mjpeg_2000",
"mjpg",
"mk3d",
"mka",
@@ -257,9 +258,7 @@ export const properties = {
"mpc",
"mpc8",
"mpeg",
"mpegts",
"mpegtsraw",
"mpegvideo",
"mpg",
"mpjpeg",
"mpl2",
"mpo",
@@ -293,25 +292,27 @@ export const properties = {
"okt",
"oma",
"omg",
"opus",
"openal",
"oss",
"osq",
"paf",
"pam_pipe",
"pbm_pipe",
"pcx_pipe",
"pgmyuv_pipe",
"pgm_pipe",
"pgx_pipe",
"photocd_pipe",
"pictor_pipe",
"pdv",
"pam",
"pbm",
"pcx",
"pgmyuv",
"pgm",
"pgx",
"photocd",
"pictor",
"pjs",
"plm",
"pmp",
"png_pipe",
"png",
"ppm",
"ppm_pipe",
"pp_bnk",
"psd_pipe",
"pp",
"psd",
"psm",
"psp",
"psxstr",
@@ -322,7 +323,7 @@ export const properties = {
"pvf",
"qcif",
"qcp",
"qdraw_pipe",
"qdraw",
"r3d",
"rawvideo",
"rco",
@@ -334,6 +335,7 @@ export const properties = {
"rm",
"roq",
"rpl",
"rka",
"rsd",
"rso",
"rt",
@@ -354,6 +356,7 @@ export const properties = {
"sbc",
"sbg",
"scc",
"sdns",
"sdp",
"sdr2",
"sds",
@@ -363,10 +366,9 @@ export const properties = {
"sfx",
"sfx2",
"sga",
"sgi_pipe",
"sgi",
"shn",
"siff",
"simbiosis_imx",
"sln",
"smi",
"smjpeg",
@@ -388,12 +390,9 @@ export const properties = {
"stp",
"str",
"sub",
"subviewer",
"subviewer1",
"sunrast_pipe",
"sup",
"svag",
"svg_pipe",
"svg",
"svs",
"sw",
"swf",
@@ -403,7 +402,8 @@ export const properties = {
"thd",
"thp",
"tiertexseq",
"tiff_pipe",
"tif",
"tiff",
"tmv",
"truehd",
"tta",
@@ -423,6 +423,7 @@ export const properties = {
"ul",
"ult",
"umx",
"usm",
"uw",
"v",
"v210",
@@ -446,12 +447,14 @@ export const properties = {
"vql",
"vt",
"vtt",
"vvc",
"w64",
"wa",
"wav",
"way",
"wc3movie",
"webm",
"webm_dash_manifest",
"webp_pipe",
"webp",
"webvtt",
"wow",
"wsaud",
@@ -463,32 +466,31 @@ export const properties = {
"x11grab",
"xa",
"xbin",
"xbm_pipe",
"xl",
"xm",
"xmd",
"xmv",
"xpk",
"xpm_pipe",
"xvag",
"xwd_pipe",
"xwma",
"y4m",
"yop",
"yuv",
"yuv10",
"yuv4mpegpipe",
],
},
to: {
muxer: [
"264",
"265",
"266",
"302",
"3g2",
"3gp",
"a64",
"aac",
"ac3",
"ac4",
"adts",
"adx",
"afc",
@@ -496,43 +498,32 @@ export const properties = {
"aifc",
"aiff",
"al",
"alaw",
"alp",
"alsa",
"amr",
"amv",
"apm",
"apng",
"aptx",
"aptxhd",
"aptx_hd",
"argo_asf",
"asf",
"asf_stream",
"ass",
"ast",
"au",
"aud",
"av1",
"avi",
"avm2",
"avif",
"avs",
"avs2",
"avs3",
"bit",
"bmp",
"c2",
"caca",
"caf",
"cavs",
"cavsvideo",
"chk",
"chromaprint",
"codec2",
"codec2raw",
"cpk",
"crc",
"dash",
"data",
"daud",
"dirac",
"cvg",
"dfpwm",
"dnxhd",
"dnxhr",
"dpx",
@@ -541,30 +532,16 @@ export const properties = {
"dv",
"dvd",
"eac3",
"ec3",
"evc",
"exr",
"f32be",
"f32le",
"f4v",
"f64be",
"f64le",
"fbdev",
"ffmeta",
"ffmetadata",
"fifo",
"fifo_test",
"filmstrip",
"film_cpk",
"fits",
"flac",
"flm",
"flv",
"framecrc",
"framehash",
"framemd5",
"g722",
"g723_1",
"g726",
"g726le",
"gif",
"gsm",
"gxf",
@@ -572,32 +549,26 @@ export const properties = {
"h263",
"h264",
"h265",
"hash",
"hds",
"h266",
"hdr",
"hevc",
"hls",
"ico",
"ilbc",
"im1",
"im24",
"im8",
"image2",
"image2pipe",
"ipod",
"ircam",
"isma",
"ismv",
"ivf",
"j2c",
"j2k",
"jacosub",
"jls",
"jp2",
"jpeg",
"jpg",
"js",
"jss",
"kvag",
"jxl",
"latm",
"lbc",
"ljpg",
@@ -612,13 +583,9 @@ export const properties = {
"m4a",
"m4b",
"m4v",
"matroska",
"md5",
"microdvd",
"mjpeg",
"mjpg",
"mkv",
"mkvtimestamp_v2",
"mlp",
"mmf",
"mov",
@@ -628,26 +595,17 @@ export const properties = {
"mpa",
"mpd",
"mpeg",
"mpeg1video",
"mpeg2video",
"mpegts",
"mpg",
"mpjpeg",
"msbc",
"mts",
"mulaw",
"mxf",
"mxf_d10",
"mxf_opatom",
"null",
"nut",
"obu",
"oga",
"ogg",
"ogv",
"oma",
"opengl",
"opus",
"oss",
"pam",
"pbm",
"pcm",
@@ -655,14 +613,14 @@ export const properties = {
"pfm",
"pgm",
"pgmyuv",
"phm",
"pix",
"png",
"ppm",
"psp",
"pulse",
"qoi",
"ra",
"ras",
"rawvideo",
"rco",
"rcv",
"rgb",
@@ -670,84 +628,47 @@ export const properties = {
"roq",
"rs",
"rso",
"rtp",
"rtp_mpegts",
"rtsp",
"s16be",
"s16le",
"s24be",
"s24le",
"s32be",
"s32le",
"s8",
"sap",
"sb",
"sbc",
"scc",
"sdl",
"sdl2",
"segment",
"sf",
"sgi",
"singlejpeg",
"smjpeg",
"smoothstreaming",
"sndio",
"sox",
"spdif",
"spx",
"srt",
"ssa",
"ssegment",
"streamhash",
"stream_segment",
"sub",
"sun",
"sunras",
"sup",
"svcd",
"sw",
"swf",
"tco",
"tee",
"tga",
"thd",
"tif",
"tiff",
"truehd",
"ts",
"tta",
"ttml",
"tun",
"u16be",
"u16le",
"u24be",
"u24le",
"u32be",
"u32le",
"u8",
"ub",
"ul",
"uncodedframecrc",
"uw",
"v4l2",
"vag",
"vbn",
"vc1",
"vc1test",
"vc2",
"vcd",
"vidc",
"video4linux2",
"vob",
"voc",
"vtt",
"vvc",
"w64",
"wav",
"wbmp",
"webm",
"webm_chunk",
"webm_dash_manifest",
"webp",
"webvtt",
"wma",
"wmv",
"wtv",
@@ -755,12 +676,10 @@ export const properties = {
"xbm",
"xface",
"xml",
"xv",
"xwd",
"y",
"y4m",
"yuv",
"yuv4mpegpipe",
],
},
};
@@ -773,38 +692,6 @@ export async function convert(
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
options?: any,
): Promise<string> {
// let command = "ffmpeg";
// these are containers that can contain multiple formats
// const autoDetect = [
// "mp4",
// "mkv",
// "avi",
// "mov",
// "m4a",
// "3gp",
// "3g2",
// "mj2",
// "psp",
// "m4b",
// "ism",
// "ismv",
// "isma",
// "f4v",
// ];
// if (!(fileType in autoDetect)) {
// command += ` -f "${fileType}"`;
// }
// command += ` -i "${filePath}"`;
// if (!(convertTo in autoDetect)) {
// command += ` -f "${convertTo}"`;
// }
// command += ` "${targetPath}"`;
const command = `ffmpeg -i "${filePath}" "${targetPath}"`;
return new Promise((resolve, reject) => {
@@ -824,4 +711,4 @@ export async function convert(
resolve("success");
});
});
}
}

View File

@@ -143,6 +143,7 @@ export const properties = {
"svgz",
"text",
"tga",
"tif",
"tiff",
"tile",
"tim",
@@ -227,7 +228,6 @@ export const properties = {
"jbig",
"jng",
"jpeg",
"jpg",
"k",
"m",
"m2v",

71
src/converters/libjxl.ts Normal file
View File

@@ -0,0 +1,71 @@
import { exec } from "node:child_process";
// declare possible conversions
export const properties = {
from: {
jxl: ["jxl"],
images: [
"apng",
"exr",
"gif",
"jpeg",
"pam",
"pfm",
"pgm",
"pgx",
"png",
"ppm",
],
},
to: {
jxl: [
"apng",
"exr",
"gif",
"jpeg",
"pam",
"pfm",
"pgm",
"pgx",
"png",
"ppm",
],
images: ["jxl"],
},
};
export function convert(
filePath: string,
fileType: string,
convertTo: string,
targetPath: string,
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
options?: any,
): Promise<string> {
let tool = "";
if (fileType === "jxl") {
tool = "djxl";
}
if (convertTo === "jxl") {
tool = "cjxl";
}
return new Promise((resolve, reject) => {
exec(`${tool} "${filePath}" "${targetPath}"`, (error, stdout, stderr) => {
if (error) {
reject(`error: ${error}`);
}
if (stdout) {
console.log(`stdout: ${stdout}`);
}
if (stderr) {
console.error(`stderr: ${stderr}`);
}
resolve("success");
});
});
}

View File

@@ -1,4 +1,7 @@
import { convert as convertImage, properties as propertiesImage } from "./vips";
import {
convert as convertImage,
properties as propertiesImage
} from "./vips";
import {
convert as convertPandoc,
@@ -16,28 +19,38 @@ import {
} from "./graphicsmagick";
import {
convert as convertPdflatex,
properties as propertiesPdflatex,
} from "./pdflatex";
convert as convertxelatex,
properties as propertiesxelatex,
} from "./xelatex";
import {
convert as convertLibjxl,
properties as propertiesLibjxl,
} from "./libjxl";
import {
convert as convertresvg,
properties as propertiesresvg,
} from "./resvg";
import {
convert as convertassimp,
properties as propertiesassimp,
} from "./assimp";
import { normalizeFiletype } from "../helpers/normalizeFiletype";
// This should probably be reconstructed so that the functions are not imported instead the functions hook into this to make the converters more modular
const properties: {
[key: string]: {
const properties: Record<string, {
properties: {
from: { [key: string]: string[] };
to: { [key: string]: string[] };
options?: {
[key: string]: {
[key: string]: {
from: Record<string, string[]>;
to: Record<string, string[]>;
options?: Record<string, Record<string, {
description: string;
type: string;
default: number;
};
};
};
}>>;
};
converter: (
filePath: string,
@@ -48,15 +61,22 @@ const properties: {
options?: any,
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
) => any;
};
} = {
}> = {
libjxl: {
properties: propertiesLibjxl,
converter: convertLibjxl,
},
resvg: {
properties: propertiesresvg,
converter: convertresvg,
},
vips: {
properties: propertiesImage,
converter: convertImage,
},
pdflatex: {
properties: propertiesPdflatex,
converter: convertPdflatex,
xelatex: {
properties: propertiesxelatex,
converter: convertxelatex,
},
pandoc: {
properties: propertiesPandoc,
@@ -66,6 +86,10 @@ const properties: {
properties: propertiesGraphicsmagick,
converter: convertGraphicsmagick,
},
assimp: {
properties: propertiesassimp,
converter: convertassimp,
},
ffmpeg: {
properties: propertiesFFmpeg,
converter: convertFFmpeg,
@@ -102,9 +126,8 @@ export async function mainConverter(
for (const key in converterObj.properties.from) {
if (
// HOW??
converterObj.properties.from[key].includes(fileType) &&
converterObj.properties.to[key].includes(convertTo)
converterObj?.properties?.from[key]?.includes(fileType) &&
converterObj?.properties?.to[key]?.includes(convertTo)
) {
converterFunc = converterObj.converter;
break;
@@ -142,7 +165,7 @@ export async function mainConverter(
}
}
const possibleTargets: { [key: string]: { [key: string]: string[] } } = {};
const possibleTargets: Record<string, Record<string, string[]>> = {};
for (const converterName in properties) {
const converterProperties = properties[converterName]?.properties;
@@ -169,7 +192,7 @@ for (const converterName in properties) {
export const getPossibleTargets = (
from: string,
): { [key: string]: string[] } => {
): Record<string, string[]> => {
const fromClean = normalizeFiletype(from);
return possibleTargets[fromClean] || {};
@@ -193,11 +216,11 @@ for (const converterName in properties) {
}
possibleInputs.sort();
export const getPossibleInputs = () => {
const getPossibleInputs = () => {
return possibleInputs;
};
const allTargets: { [key: string]: string[] } = {};
const allTargets: Record<string, string[]> = {};
for (const converterName in properties) {
const converterProperties = properties[converterName]?.properties;
@@ -208,9 +231,9 @@ for (const converterName in properties) {
for (const key in converterProperties.to) {
if (allTargets[converterName]) {
allTargets[converterName].push(...converterProperties.to[key]);
allTargets[converterName].push(...(converterProperties.to[key] || []));
} else {
allTargets[converterName] = converterProperties.to[key];
allTargets[converterName] = converterProperties.to[key] || [];
}
}
}
@@ -219,7 +242,7 @@ export const getAllTargets = () => {
return allTargets;
};
const allInputs: { [key: string]: string[] } = {};
const allInputs: Record<string, string[]> = {};
for (const converterName in properties) {
const converterProperties = properties[converterName]?.properties;
@@ -229,9 +252,9 @@ for (const converterName in properties) {
for (const key in converterProperties.from) {
if (allInputs[converterName]) {
allInputs[converterName].push(...converterProperties.from[key]);
allInputs[converterName].push(...(converterProperties.from[key] || []));
} else {
allInputs[converterName] = converterProperties.from[key];
allInputs[converterName] = converterProperties.from[key] || [];
}
}
}

View File

@@ -1,119 +0,0 @@
import sharp from "sharp";
import type { FormatEnum } from "sharp";
// declare possible conversions
export const properties = {
from: {
images: [
"avif",
"bif",
"csv",
"exr",
"fits",
"gif",
"hdr.gz",
"hdr",
"heic",
"heif",
"img.gz",
"img",
"j2c",
"j2k",
"jp2",
"jpeg",
"jpx",
"jxl",
"mat",
"mrxs",
"ndpi",
"nia.gz",
"nia",
"nii.gz",
"nii",
"pdf",
"pfm",
"pgm",
"pic",
"png",
"ppm",
"raw",
"scn",
"svg",
"svs",
"svslide",
"szi",
"tif",
"tiff",
"v",
"vips",
"vms",
"vmu",
"webp",
"zip",
],
},
to: {
images: [
"avif",
"dzi",
"fits",
"gif",
"hdr.gz",
"heic",
"heif",
"img.gz",
"j2c",
"j2k",
"jp2",
"jpeg",
"jpx",
"jxl",
"mat",
"nia.gz",
"nia",
"nii.gz",
"nii",
"png",
"tiff",
"vips",
"webp",
],
},
options: {
svg: {
scale: {
description: "Scale the image up or down",
type: "number",
default: 1,
},
},
},
};
export async function convert(
filePath: string,
fileType: string,
convertTo: keyof FormatEnum,
targetPath: string,
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
options?: any,
) {
if (fileType === "svg") {
const scale = options.scale || 1;
const metadata = await sharp(filePath).metadata();
if (!metadata || !metadata.width || !metadata.height) {
throw new Error("Could not get metadata from image");
}
const newWidth = Math.round(metadata.width * scale);
const newHeight = Math.round(metadata.height * scale);
return await sharp(filePath)
.resize(newWidth, newHeight)
.toFormat(convertTo)
.toFile(targetPath);
}
return await sharp(filePath).toFormat(convertTo).toFile(targetPath);
}

View File

@@ -127,9 +127,15 @@ export function convert(
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
options?: any,
): Promise<string> {
// set xelatex here
const xelatex = ["pdf", "latex"];
let option = "";
if (xelatex.includes(convertTo)) {
option = "--pdf-engine=xelatex";
}
return new Promise((resolve, reject) => {
exec(
`pandoc "${filePath}" -f ${fileType} -t ${convertTo} -o "${targetPath}"`,
`pandoc ${option} "${filePath}" -f ${fileType} -t ${convertTo} -o "${targetPath}"`,
(error, stdout, stderr) => {
if (error) {
reject(`error: ${error}`);

37
src/converters/resvg.ts Normal file
View File

@@ -0,0 +1,37 @@
import { exec } from "node:child_process";
export const properties = {
from: {
images: ["svg"],
},
to: {
images: ["png"],
},
};
export function convert(
filePath: string,
fileType: string,
convertTo: string,
targetPath: string,
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
options?: any,
): Promise<string> {
return new Promise((resolve, reject) => {
exec(`resvg "${filePath}" "${targetPath}"`, (error, stdout, stderr) => {
if (error) {
reject(`error: ${error}`);
}
if (stdout) {
console.log(`stdout: ${stdout}`);
}
if (stderr) {
console.error(`stderr: ${stderr}`);
}
resolve("success");
});
});
}

View File

@@ -113,22 +113,29 @@ export function convert(
// .toFormat(convertTo)
// .toFile(targetPath);
// }
let action = "copy";
if (fileType === "pdf") {
action = "pdfload";
}
return new Promise((resolve, reject) => {
exec(`vips copy "${filePath}" "${targetPath}"`, (error, stdout, stderr) => {
if (error) {
reject(`error: ${error}`);
}
exec(
`vips ${action} "${filePath}" "${targetPath}"`,
(error, stdout, stderr) => {
if (error) {
reject(`error: ${error}`);
}
if (stdout) {
console.log(`stdout: ${stdout}`);
}
if (stdout) {
console.log(`stdout: ${stdout}`);
}
if (stderr) {
console.error(`stderr: ${stderr}`);
}
if (stderr) {
console.error(`stderr: ${stderr}`);
}
resolve("success");
});
resolve("success");
},
);
});
}

View File

@@ -19,9 +19,13 @@ export function convert(
): Promise<string> {
return new Promise((resolve, reject) => {
// const fileName: string = (targetPath.split("/").pop() as string).replace(".pdf", "")
const outputPath = targetPath.split("/").slice(0, -1).join("/").replace("./", "")
const outputPath = targetPath
.split("/")
.slice(0, -1)
.join("/")
.replace("./", "");
exec(
`pdflatex -interaction=nonstopmode -output-directory="${outputPath}" "${filePath}"`,
`latexmk -xelatex -interaction=nonstopmode -output-directory="${outputPath}" "${filePath}"`,
(error, stdout, stderr) => {
if (error) {
reject(`error: ${error}`);

View File

@@ -23,6 +23,9 @@ export const normalizeOutputFiletype = (filetype: string): string => {
return "jpg";
case "latex":
return "tex";
case "markdown_phpextra":
case "markdown_strict":
case "markdown_mmd":
case "markdown":
return "md";
default:

View File

@@ -0,0 +1,105 @@
import { exec } from "node:child_process";
import { version } from "../../package.json";
console.log(`ConvertX v${version}`);
if (process.env.NODE_ENV === "production") {
exec("cat /etc/os-release", (error, stdout) => {
if (error) {
console.error("Not running on docker, this is not supported.");
}
if (stdout) {
console.log(stdout.split('PRETTY_NAME="')[1]?.split('"')[0]);
}
});
exec("pandoc -v", (error, stdout) => {
if (error) {
console.error("Pandoc is not installed.");
}
if (stdout) {
console.log(stdout.split("\n")[0]);
}
});
exec("ffmpeg -version", (error, stdout) => {
if (error) {
console.error("FFmpeg is not installed.");
}
if (stdout) {
console.log(stdout.split("\n")[0]);
}
});
exec("vips -v", (error, stdout) => {
if (error) {
console.error("Vips is not installed.");
}
if (stdout) {
console.log(stdout.split("\n")[0]);
}
});
exec("gm version", (error, stdout) => {
if (error) {
console.error("GraphicsMagick is not installed.");
}
if (stdout) {
console.log(stdout.split("\n")[0]);
}
});
exec("djxl --version", (error, stdout) => {
if (error) {
console.error("libjxl-tools is not installed.");
}
if (stdout) {
console.log(stdout.split("\n")[0]);
}
});
exec("xelatex -version", (error, stdout) => {
if (error) {
console.error("Tex Live with XeTeX is not installed.");
}
if (stdout) {
console.log(stdout.split("\n")[0]);
}
});
exec("resvg -V", (error, stdout) => {
if (error) {
console.error("resvg is not installed");
}
if (stdout) {
console.log(`resvg v${stdout.split("\n")[0]}`);
}
});
exec("assimp version", (error, stdout) => {
if (error) {
console.error("assimp is not installed");
}
if (stdout) {
console.log(`assimp v${stdout.split("\n")[5]}`);
}
});
exec("bun -v", (error, stdout) => {
if (error) {
console.error("Bun is not installed. wait what");
}
if (stdout) {
console.log(`Bun v${stdout.split("\n")[0]}`);
}
});
}

17
src/helpers/tailwind.ts Normal file
View File

@@ -0,0 +1,17 @@
import tw from "tailwindcss";
import postcss from "postcss";
export const generateTailwind = async () => {
const result = await Bun.file("./src/main.css")
.text()
.then((sourceText) => {
const config = "./tailwind.config.js";
return postcss([tw(config)]).process(sourceText, {
from: "./src/main.css",
to: "./public/generated.css",
});
});
return result;
};

File diff suppressed because it is too large Load Diff

45
src/main.css Normal file
View File

@@ -0,0 +1,45 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer components {
.article {
@apply p-4 mb-4 bg-neutral-800/40 w-full mx-auto max-w-4xl rounded;
}
.btn-primary {
@apply bg-accent-500 text-contrast rounded p-4 hover:bg-accent-400 cursor-pointer transition-colors;
}
}
:root {
--contrast: 255, 255, 255;
--neutral-900: 243, 244, 246;
--neutral-800: 229, 231, 235;
--neutral-700: 209, 213, 219;
--neutral-600: 156, 163, 175;
--neutral-500: 180, 180, 180;
--neutral-400: 75, 85, 99;
--neutral-300: 55, 65, 81;
--neutral-200: 31, 41, 55;
--neutral-100: 17, 24, 39;
--accent-400: 132, 204, 22;
--accent-500: 101, 163, 13;
--accent-600: 77, 124, 15;
}
@media (prefers-color-scheme: dark) {
:root {
--contrast: 0, 0, 0;
--neutral-900: 17, 24, 39;
--neutral-800: 31, 41, 55;
--neutral-700: 55, 65, 81;
--neutral-600: 75, 85, 99;
--neutral-500: 107, 114, 128;
--neutral-300: 209, 213, 219;
--neutral-400: 156, 163, 175;
--neutral-200: 229, 231, 235;
--accent-600: 101, 163, 13;
--accent-500: 132, 204, 22;
--accent-400: 163, 230, 53;
}
}

File diff suppressed because one or more lines are too long

2
src/public/robots.txt Normal file
View File

@@ -0,0 +1,2 @@
User-agent: *
Disallow: /

View File

@@ -1,9 +1,91 @@
// Select the file input element
const fileInput = document.querySelector('input[type="file"]');
const dropZone = document.getElementById("dropzone");
const fileNames = [];
let fileType;
const selectContainer = document.querySelector("form > article");
dropZone.addEventListener("dragover", (e) => {
dropZone.classList.add("dragover");
});
dropZone.addEventListener("dragleave", (e) => {
dropZone.classList.remove("dragover");
});
const selectContainer = document.querySelector("form .select_container");
const updateSearchBar = () => {
const convertToInput = document.querySelector(
"input[name='convert_to_search']",
);
const convertToPopup = document.querySelector(".convert_to_popup");
const convertToGroupElements = document.querySelectorAll(".convert_to_group");
const convertToGroups = {};
const convertToElement = document.querySelector("select[name='convert_to']");
const showMatching = (search) => {
for (const [targets, groupElement] of Object.values(convertToGroups)) {
let matchingTargetsFound = 0;
for (const target of targets) {
if (target.dataset.target.includes(search)) {
matchingTargetsFound++;
target.classList.remove("hidden");
target.classList.add("flex");
} else {
target.classList.add("hidden");
target.classList.remove("flex");
}
}
if (matchingTargetsFound === 0) {
groupElement.classList.add("hidden");
groupElement.classList.remove("flex");
} else {
groupElement.classList.remove("hidden");
groupElement.classList.add("flex");
}
}
};
for (const groupElement of convertToGroupElements) {
const groupName = groupElement.dataset.converter;
const targetElements = groupElement.querySelectorAll(".target");
const targets = Array.from(targetElements);
for (const target of targets) {
target.onmousedown = () => {
convertToElement.value = target.dataset.value;
convertToInput.value = `${target.dataset.target} using ${target.dataset.converter}`;
showMatching("");
};
}
convertToGroups[groupName] = [targets, groupElement];
}
convertToInput.addEventListener("input", (e) => {
showMatching(e.target.value.toLowerCase());
});
convertToInput.addEventListener("blur", (e) => {
// Keep the popup open even when clicking on a target button
// for a split second to allow the click to go through
if (e?.relatedTarget?.classList?.contains("target")) {
convertToPopup.classList.add("hidden");
convertToPopup.classList.remove("flex");
return;
}
convertToPopup.classList.add("hidden");
convertToPopup.classList.remove("flex");
});
convertToInput.addEventListener("focus", () => {
convertToPopup.classList.remove("hidden");
convertToPopup.classList.add("flex");
});
};
// const convertFromSelect = document.querySelector("select[name='convert_from']");
@@ -28,6 +110,7 @@ fileInput.addEventListener("change", (e) => {
if (!fileType) {
fileType = file.name.split(".").pop();
console.log("fileType", fileType);
fileInput.setAttribute("accept", `.${fileType}`);
setTitle();
@@ -49,6 +132,7 @@ fileInput.addEventListener("change", (e) => {
.then((res) => res.text())
.then((html) => {
selectContainer.innerHTML = html;
updateSearchBar();
})
.catch((err) => console.log(err));
}
@@ -123,3 +207,5 @@ formConvert.addEventListener("submit", (e) => {
const hiddenInput = document.querySelector("input[name='file_names']");
hiddenInput.value = JSON.stringify(fileNames);
});
updateSearchBar();

View File

@@ -1,21 +0,0 @@
article {
/* height: 300px; */
/* width: 300px; */
}
div.icon {
height: 100px;
width: 100px;
}
button[type="submit"] {
width: 50%
}
div.center {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
}

25
tailwind.config.js Normal file
View File

@@ -0,0 +1,25 @@
/** @type {import('tailwindcss').Config} */
// eslint-disable-next-line no-undef
module.exports = {
content: ["./src/**/*.{html,js,tsx,jsx,cjs,mjs}"],
theme: {
extend: {
colors: {
contrast: "rgba(var(--contrast))",
"neutral-900": "rgba(var(--neutral-900))",
"neutral-800": "rgba(var(--neutral-800))",
"neutral-700": "rgba(var(--neutral-700))",
"neutral-600": "rgba(var(--neutral-600))",
"neutral-500": "rgba(var(--neutral-500))",
"neutral-400": "rgba(var(--neutral-400))",
"neutral-300": "rgba(var(--neutral-300))",
"neutral-200": "rgba(var(--neutral-200))",
"neutral-100": "rgba(var(--neutral-100))",
"accent-600": "rgba(var(--accent-600))",
"accent-500": "rgba(var(--accent-500))",
"accent-400": "rgba(var(--accent-400))",
},
},
},
plugins: [require("tailwind-scrollbar")],
};

View File

@@ -1,8 +1,8 @@
{
"compilerOptions": {
"lib": ["ESNext"],
"module": "esnext",
"target": "esnext",
"module": "ESNext",
"target": "ES2021",
"moduleResolution": "bundler",
"moduleDetection": "force",
"allowImportingTsExtensions": true,
@@ -17,9 +17,6 @@
"allowSyntheticDefaultImports": true,
"forceConsistentCasingInFileNames": true,
"allowJs": true,
"types": [
"bun-types" // add Bun global
],
// non bun init
"plugins": [{ "name": "@kitajs/ts-html-plugin" }],
"noUncheckedIndexedAccess": true,