From 1b1067a03f470032cf5fe204a526621ff519c73e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Aug 2024 08:44:22 +0000 Subject: [PATCH 001/455] 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] --- bun.lockb | Bin 163236 -> 163604 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 39e5117c75501451158e73c6dc6b1ab22de3dd42..63e00e8b577267c95e5c96417dee1ac2e0be4618 100755 GIT binary patch delta 4929 zcmeHLdsJ0b8bABMZ8(>Z=jC;IBNmeo^6;tzS5up`sIhX1)2I?qgK=82u#E;t&T2xkA06>k6YrIHi~`yJQ; z;J`|Et1|rJVRxY(=;^i+%REaVLJO*rqzGi}19L^&!C~M56l6ZINRkZTU24INVb
  • E`1v~3ie{?+}xhU?&j+XN=u6^)lvs+?smr#NeTtGf&IV^a0vKm zFy}uHzZkF`%)?WF`VhrL8~WyI_=~0P{=X0Aus4Il!E3-=aRZpUH4hvH&hzA(mTn#A z_l4f4`PSbxjo6+uc58U}wtU?fc!a8f(I(|oktAiqQq(}BNlC$+u_e^zIFqsfR+h^; zG{PiaR_#@0@vYibWtL-#RsEt|WkIndjfI1(2Bw;n7hv5D%iC3P4=irRTb&kVl9NhQ zy(L$ff!RQV?2==WV-~6_A^r(VfXktlTTHr(u;!~xmTWOoolzEl*MLUHx|Y1?4d+rcE`CJzQrUSP?aTS zT?aIGZYI`1x+{X_Q6@28?OI|M->6EhSs91bFcmpo>LH^^Jf_-f&AKn4-Jv!O&(;V2zA+#lTiBtO>BZ)k8HV(XA>CW;vx+o!XEqDph-fS-huqK~m~e zePgaDQl~VUmG(MBj54y?9B&d=)viXfZU75prn*@)k9{MUA7&0H z0L)UbM-R4YiGRZ!ivjsOq|qL~|CUh&Z!|7&pj!iM`}F@`1pjM`V9uEL2a9nwGY=aQ3E2dtWnUj1RJ&$~}DjndW!5n;)>+ygpD*jh_3K@#M%C zKPxYbUvs%9Xu@Wb>5zK)bR$Ivif}p>Anp>gC^=BfpicvZA2kI+m_tWcSP=vvCkR3T z*@GaA35L+aLLrR}hH#pNb-@tk(HRyTArSIHAQVw+2!uNg5U#OMOj8UH`dDZ;Kv+oq zEW8p5VOA)FGTIahAwLX)Ul@c6ni&ScCmh1tEL4#a4q+z?W#JGk)WO1n2nf*;5NfD6 z0z!Bsg#9cmp@>KbAF|LG389XA&R{1PCnqL~R|hFDEon3_pR1U*XyOe%FSwNT)2 z&>AXcT1%ZwL=j0KhqEe4TsEo!ks)MD7T#1kL42s|z!`6#_%yK!8JTqTcHyJD1!uHE zooVR#)f^E(j)`KY=%8tnM6i$cc13AsVN=IPdegZ{C~^_Up5m&84kn37&V!T1nLN~( zrtfQUFW$FW={;5CkavrCT69u#iwHJoXVZMRuovE8C8x8aMHC5fmg3inn+$xc@$-ns z1#fOrhjZ3i;U&Z|Dj<<9-k^0Pwu<94%^@uM)2;6IY#Zr-Lp(wGts-h%6n0`h=-va~ z2X+H{fDZr;;w|89U>Cp#D<85ufNiq#&#mHNk;i9E4{#PZ2b>2k0+)b3pda`OI0bwS z900n3gTNu+6M#?Hy}(B_^Lde|m8y(m=l$e9T94eDPn%ov}s8^pc(*EYJx zXLvi0&xn}SFnRn7fro(tU^ei3;6dR$yg|IKx4wvKW(>(pGS_$L5CXfm&b*uoS2R8a&MUDnJY3ain>t^0_N({7KaSEt zx;7E3&u>Q>&(uLmZxbUh%@WOM6Wt=+c~iTnn@o2f6p?b=0($X+NH=Pi!}{-w_OA%~ zEf4A<6O#i90hwyhB?qi3}V`r$BOGB}HBq=~|rwlyX%>$U#*U z(2sd?w-|EpTjjBuBhuLLub_P&Y2BOjtdR1f8ibxo?oI37-FM# z`Totx(#gN>bauEMGPT}@d253b63YwZmzIMzuwpl5_lwEmFfH#F*|K{)|Ffe1oM!Fb zKl{kJ)O$8Y+O?1}q;Jl8 zhc-xA*jW7sP-+h)4~RUY_CX=z*}|or>ozvZ!io!{9~QrZn%S?7HZyh59(LEhPgFR% z{g&W8j2=qA3vtA8vn?v zQ%@!iIXFCTp|z4s+1JEGr|p_JF7&UsE^D}NFLRb$7rjN4>?iw)bSj9H6KP|StT+pb zxrfOOM delta 4762 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 Pliaw2M$4)SL*2gtLry Date: Thu, 1 Aug 2024 09:12:32 +0000 Subject: [PATCH 002/455] 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] --- bun.lockb | Bin 163604 -> 165556 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 63e00e8b577267c95e5c96417dee1ac2e0be4618..c04a4dad07b73874bc34d1d81d16e4437a181cdc 100755 GIT binary patch delta 7907 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 aj!u(xo=yRa>=njgHD6wjm9?}~Uh_|W%7xJY delta 6694 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 Date: Fri, 2 Aug 2024 08:57:55 +0000 Subject: [PATCH 003/455] 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] --- bun.lockb | Bin 165556 -> 165780 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index c04a4dad07b73874bc34d1d81d16e4437a181cdc..27b66116be9f1c713ecd5a2259cef84a11c92b0e 100755 GIT binary patch delta 6684 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 delta 6977 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 D$v7L^ diff --git a/package.json b/package.json index 9032c1d..157c302 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@types/eslint": "^9.6.0", "@types/node": "^22.0.2", "@typescript-eslint/eslint-plugin": "^8.0.0", - "@typescript-eslint/parser": "^7.18.0", + "@typescript-eslint/parser": "^8.0.0", "cpy-cli": "^5.0.0", "eslint": "^9.8.0", "eslint-config-prettier": "^9.1.0", From 0e53a99d431830982aa6042001628324db76be33 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 10:43:34 +0000 Subject: [PATCH 004/455] 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] --- bun.lockb | Bin 165780 -> 165780 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 27b66116be9f1c713ecd5a2259cef84a11c92b0e..814379096d1b52f77b9e58e456d6661534c6c02e 100755 GIT binary patch delta 149 zcmV;G0BZk~j|!BJ3Xm=!pqzWxs$0j7*KsxQdY%(%LOrOy9ds&x+gYW`ZBdPXu}&&- zllU7jv#4?{qCoxa4QA4|g3gtbVCc%V(q*0im8q&uOmqptvD6B@{Qd||RA5untyTVC zm*UrvWr=a^O!L}gN>Tchl0=-Y+d#J!6#*%p0W-HhvjNb(m!(buAeT^O0tdG?aROcz D0s=^Z delta 149 zcmV;G0BZk~j|!BJ3Xm=!KJ&np^_s=q%bxX!M&t6<4!e+{x2`W~|3A3MTe#9}u}&&- zlXx94v#4?{qCm*<`VS#+W0T@BQ83D5Ua3UNus1V65`X1B*8h%?z_mYAe}DtVljSyK zyc^;yqT6n5A(i*-5<#msH_?;#=zX^p6#*%p0W!BgvjNb(mxLSwAeT^O0tdG?aROcz D$2dqh diff --git a/package.json b/package.json index 157c302..5421412 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@total-typescript/ts-reset": "^0.5.1", "@types/bun": "^1.1.6", "@types/eslint": "^9.6.0", - "@types/node": "^22.0.2", + "@types/node": "^22.0.3", "@typescript-eslint/eslint-plugin": "^8.0.0", "@typescript-eslint/parser": "^8.0.0", "cpy-cli": "^5.0.0", From 4074647b67aee952e0bea8b4fd74150302e442fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 08:54:54 +0000 Subject: [PATCH 005/455] 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] --- bun.lockb | Bin 165780 -> 166108 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 814379096d1b52f77b9e58e456d6661534c6c02e..48bbed2e2b4da6c7c7e396f5915a1da125777b1c 100755 GIT binary patch delta 3638 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 diff --git a/package.json b/package.json index 5421412..d9ca354 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@total-typescript/ts-reset": "^0.5.1", "@types/bun": "^1.1.6", "@types/eslint": "^9.6.0", - "@types/node": "^22.0.3", + "@types/node": "^22.1.0", "@typescript-eslint/eslint-plugin": "^8.0.0", "@typescript-eslint/parser": "^8.0.0", "cpy-cli": "^5.0.0", From 8a2237fbd97da3c86c7987ad6ae523f0c4449867 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:50:10 +0000 Subject: [PATCH 006/455] 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] --- bun.lockb | Bin 166108 -> 166564 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 48bbed2e2b4da6c7c7e396f5915a1da125777b1c..8eaa3d019aa6320e5cd8020305fa3e60e7d855db 100755 GIT binary patch delta 29917 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

    8JIXgr`?lBqF6V=8Q!=fXnRVXA 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 Date: Mon, 5 Aug 2024 18:34:31 +0000 Subject: [PATCH 007/455] Add renovate.json --- renovate.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 renovate.json diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..5db72dd --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended" + ] +} From d310341fca610e4727c10c2f86db0753cdee9dc1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 19:24:04 +0000 Subject: [PATCH 008/455] chore(deps): replace dependency npm-run-all with npm-run-all2 ^5.0.0 --- bun.lockb | Bin 166564 -> 164092 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 8eaa3d019aa6320e5cd8020305fa3e60e7d855db..beedc0039ac67a7c4c22a4f8487615c5516610b2 100755 GIT binary patch delta 32438 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 XaLL(Vmts|>dzzKso`9-`i4y;Ra-bU8 delta 34030 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 Date: Mon, 5 Aug 2024 21:25:18 +0200 Subject: [PATCH 009/455] chore: use renovate instead --- .github/workflows/bun-dependabot.yml | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 .github/workflows/bun-dependabot.yml diff --git a/.github/workflows/bun-dependabot.yml b/.github/workflows/bun-dependabot.yml deleted file mode 100644 index 2bddec7..0000000 --- a/.github/workflows/bun-dependabot.yml +++ /dev/null @@ -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@v2 - - 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 From 3f79ccaa2ad3a0088e9774de88cff8265c881827 Mon Sep 17 00:00:00 2001 From: C4illin Date: Mon, 5 Aug 2024 21:25:35 +0200 Subject: [PATCH 010/455] chore: Update eslint configuration and dependencies --- .eslintrc.cjs | 46 ---------------------------------------------- biome.json | 5 ++++- bun.lockb | Bin 166108 -> 169196 bytes eslint.config.mjs | 36 ++++++++++++++++++++++++++++++++++++ package.json | 21 +++++++++++++-------- tsconfig.json | 4 ++-- 6 files changed, 55 insertions(+), 57 deletions(-) delete mode 100644 .eslintrc.cjs create mode 100644 eslint.config.mjs diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 38e07b3..0000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,46 +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"], - }, - overrides: [ - // Template files don't have reliable type information - { - 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", - }, -}; - -module.exports = config; diff --git a/biome.json b/biome.json index a8829cb..3ab38fb 100644 --- a/biome.json +++ b/biome.json @@ -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,6 +9,9 @@ "lineWidth": 80, "attributePosition": "auto" }, + "files": { + "ignore": ["node_modules"] + }, "organizeImports": { "enabled": true }, "linter": { "enabled": true, diff --git a/bun.lockb b/bun.lockb index 48bbed2e2b4da6c7c7e396f5915a1da125777b1c..fedca7f797f46a4740ae0a2dc75e38658b4cbb58 100755 GIT binary patch delta 37437 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 z�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 BgTnv- delta 35754 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 D7*!x? diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..f43d771 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,36 @@ +import { fixupPluginRules } from "@eslint/compat"; +import tseslint from "typescript-eslint"; +import eslint from "@eslint/js"; +import deprecationPlugin from "eslint-plugin-deprecation"; +import eslintCommentsPlugin from "eslint-plugin-eslint-comments"; +import importPlugin from "eslint-plugin-import"; +import simpleImportSortPlugin from "eslint-plugin-simple-import-sort"; + +export default tseslint.config( + { + plugins: { + "@typescript-eslint": tseslint.plugin, + deprecation: fixupPluginRules(deprecationPlugin), + "eslint-comments": eslintCommentsPlugin, + import: fixupPluginRules(importPlugin), + "simple-import-sort": simpleImportSortPlugin, + }, + }, + { + ignores: ["**/node_modules/**", "**/public/**"], + }, + eslint.configs.recommended, + ...tseslint.configs.recommendedTypeChecked, + ...tseslint.configs.stylisticTypeChecked, + { + languageOptions: { + parserOptions: { + projectService: true, + tsconfigRootDir: import.meta.dirname, + ecmaVersion: "latest", + sourceType: "module", + project: ["./tsconfig.json"], + }, + }, + }, +); diff --git a/package.json b/package.json index d9ca354..934da9b 100644 --- a/package.json +++ b/package.json @@ -8,14 +8,15 @@ "css": "cpy 'node_modules/@picocss/pico/css/pico.lime.min.css' 'src/public/' --flat", "lint": "run-p 'lint:*'", "lint:tsc": "tsc --noEmit", - "lint:knip": "knip" + "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.1.0", "@elysiajs/static": "1.0.3", - "elysia": "^1.1.4" + "elysia": "^1.1.5" }, "module": "src/index.tsx", "type": "module", @@ -24,6 +25,8 @@ }, "devDependencies": { "@biomejs/biome": "1.8.3", + "@eslint/compat": "^1.1.1", + "@eslint/js": "^9.8.0", "@ianvs/prettier-plugin-sort-imports": "^4.3.1", "@kitajs/ts-html-plugin": "^4.0.2", "@picocss/pico": "^2.0.6", @@ -31,20 +34,22 @@ "@types/bun": "^1.1.6", "@types/eslint": "^9.6.0", "@types/node": "^22.1.0", - "@typescript-eslint/eslint-plugin": "^8.0.0", - "@typescript-eslint/parser": "^8.0.0", + "@typescript-eslint/eslint-plugin": "^8.0.1", + "@typescript-eslint/parser": "^8.0.1", "cpy-cli": "^5.0.0", "eslint": "^9.8.0", "eslint-config-prettier": "^9.1.0", + "eslint-plugin-deprecation": "^3.0.0", + "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-isaacscript": "^3.12.2", "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-simple-import-sort": "^12.1.1", "knip": "^5.27.0", "npm-run-all": "^4.1.5", "prettier": "^3.3.3", - "typescript": "^5.5.4" + "typescript": "^5.5.4", + "typescript-eslint": "^8.0.1" }, - "trustedDependencies": [ - "@biomejs/biome" - ] + "trustedDependencies": ["@biomejs/biome"] } diff --git a/tsconfig.json b/tsconfig.json index 6547452..e88c4a9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,8 @@ { "compilerOptions": { "lib": ["ESNext"], - "module": "esnext", - "target": "esnext", + "module": "ESNext", + "target": "ES2021", "moduleResolution": "bundler", "moduleDetection": "force", "allowImportingTsExtensions": true, From 049e9163ceda01d7e92e904d321cce70efec9fe2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 19:31:50 +0000 Subject: [PATCH 011/455] chore(deps): update dependency npm-run-all2 to v6 --- bun.lockb | Bin 166716 -> 161868 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 355814c607d95cbf72c6d901dcea184d4d0d057b..9ec40730a2e6757aac02c2c064ecfa98af8ddeb0 100755 GIT binary patch delta 20046 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 Date: Mon, 5 Aug 2024 21:57:40 +0200 Subject: [PATCH 012/455] chore: fix type errors --- biome.json | 2 +- src/index.tsx | 35 ++++++++++++++--------------------- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/biome.json b/biome.json index 3ab38fb..684e3d3 100644 --- a/biome.json +++ b/biome.json @@ -10,7 +10,7 @@ "attributePosition": "auto" }, "files": { - "ignore": ["node_modules"] + "ignore": ["**/node_modules/**"] }, "organizeImports": { "enabled": true }, "linter": { diff --git a/src/index.tsx b/src/index.tsx index 58c0c93..d0ca44c 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -115,7 +115,7 @@ const app = new Elysia({ schema: t.Object({ id: t.String(), }), - secret: process.env.JWT_SECRET || randomUUID(), + secret: process.env.JWT_SECRET ?? randomUUID(), exp: "7d", }), ) @@ -336,7 +336,7 @@ const app = new Elysia({ .post( "/login", async function handler({ body, set, redirect, jwt, cookie: { auth } }) { - const existingUser = await db + const existingUser = db .query("SELECT * FROM users WHERE email = ?") .as(User) .get(body.email); @@ -413,7 +413,7 @@ const app = new Elysia({ } // make sure user exists in db - const existingUser = await db + const existingUser = db .query("SELECT * FROM users WHERE id = ?") .as(User) .get(user.id); @@ -561,13 +561,8 @@ const app = new Elysia({ await Bun.write(`${userUploadsDir}${file.name}`, file); } } else { - await Bun.write( - `${userUploadsDir}${ - // biome-ignore lint/complexity/useLiteralKeys: ts bug - body.file["name"] - }`, - body.file, - ); + // biome-ignore lint/complexity/useLiteralKeys: weird error + await Bun.write(`${userUploadsDir}${body.file["name"]}`, body.file); } } @@ -623,7 +618,7 @@ const app = new Elysia({ return redirect("/", 302); } - const existingJob = await db + const existingJob = db .query("SELECT * FROM jobs WHERE id = ? AND user_id = ?") .as(Jobs) .get(jobId.value, user.id); @@ -645,9 +640,7 @@ const app = new Elysia({ ); } - const convertTo = normalizeFiletype( - body.convert_to.split(",")[0] as string, - ); + const convertTo = normalizeFiletype(body.convert_to.split(",")[0] ?? ""); const converterName = body.convert_to.split(",")[1]; const fileNames = JSON.parse(body.file_names) as string[]; @@ -667,7 +660,7 @@ const app = new Elysia({ Promise.all( fileNames.map(async (fileName) => { const filePath = `${userUploadsDir}${fileName}`; - const fileTypeOrig = fileName.split(".").pop() as string; + const fileTypeOrig = fileName.split(".").pop() ?? ""; const fileType = normalizeFiletype(fileTypeOrig); const newFileExt = normalizeOutputFiletype(convertTo); const newFileName = fileName.replace(fileTypeOrig, newFileExt); @@ -793,7 +786,7 @@ const app = new Elysia({ return redirect("/login", 302); } - const job = await db + const job = db .query("SELECT * FROM jobs WHERE user_id = ? AND id = ?") .as(Jobs) .get(user.id, params.jobId); @@ -892,7 +885,7 @@ const app = new Elysia({ return redirect("/login", 302); } - const job = await db + const job = db .query("SELECT * FROM jobs WHERE user_id = ? AND id = ?") .as(Jobs) .get(user.id, params.jobId); @@ -1077,14 +1070,14 @@ const app = new Elysia({ return redirect("/results", 302); } - const userId = decodeURIComponent(params.userId); - const jobId = decodeURIComponent(params.jobId); - const outputPath = `${outputDir}${userId}/${jobId}/`; + // const userId = decodeURIComponent(params.userId); + // const jobId = decodeURIComponent(params.jobId); + // const outputPath = `${outputDir}${userId}/${jobId}/`; // return Bun.zip(outputPath); }, ) - .onError(({ code, error, request }) => { + .onError(({ error }) => { // log.error(` ${request.method} ${request.url}`, code, error); console.error(error); }) From 20bd11176581a9fe57e54689eabff4de599bef34 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 08:12:26 +0000 Subject: [PATCH 013/455] 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] --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 75cfa1e..f06e408 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-simple-import-sort": "^12.1.1", "knip": "^5.27.0", - "npm-run-all2": "^6.0.0", + "npm-run-all2": "^6.2.2", "prettier": "^3.3.3", "typescript": "^5.5.4", "typescript-eslint": "^8.0.1" From f7abb9389ccf3825ad2a02ae819f3fede429231a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emrik=20=C3=96stling?= Date: Tue, 6 Aug 2024 22:06:45 +0200 Subject: [PATCH 014/455] chore: move to renovate --- .github/dependabot.yml | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 4506f6e..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -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: -- package-ecosystem: npm - versioning-strategy: increase - directory: "/" - schedule: - interval: daily - commit-message: - prefix: "build" - include: "scope" - open-pull-requests-limit: 10 -- package-ecosystem: github-actions - directory: "/" - schedule: - interval: weekly - commit-message: - prefix: "build" - include: "scope" \ No newline at end of file From c295e546bd1ea56e6ead4446bc7fa0be73a9c9ab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 01:44:24 +0000 Subject: [PATCH 015/455] chore(deps): update oven/bun docker tag to v1.1.22 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d866077..cf9b425 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.21-alpine as base +FROM oven/bun:1.1.22-alpine as base WORKDIR /app # install dependencies into temp directory From 57e29998669c852b10694190cf6681080d3fdda5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 01:52:09 +0000 Subject: [PATCH 016/455] chore(deps): update oven/bun docker tag to v1.1.23 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index cf9b425..fe552ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.22-alpine as base +FROM oven/bun:1.1.23-alpine as base WORKDIR /app # install dependencies into temp directory From 96fa7e2f555ac0e8ea15ad9568e25718def5a2e0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 12:53:14 +0000 Subject: [PATCH 017/455] chore(deps): update oven/bun docker tag to v1.1.24 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index fe552ee..cfba78b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.23-alpine as base +FROM oven/bun:1.1.24-alpine as base WORKDIR /app # install dependencies into temp directory From 2078cb0ee0be877647c7a8b7fc53e200fd6add46 Mon Sep 17 00:00:00 2001 From: A3 <59868436+101br03k@users.noreply.github.com> Date: Sat, 17 Aug 2024 21:31:21 +0200 Subject: [PATCH 018/455] added container name and restart policy --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0f79e98..92e8efd 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,8 @@ Any missing converter? Open an issue or pull request! services: convertx: image: ghcr.io/c4illin/convertx + container_name: convertx + restart: unless-stopped ports: - "3000:3000" environment: # Defaults are listed below. All are optional. From 53fff594fc4d69306abcb2a5cad890fcd0953a58 Mon Sep 17 00:00:00 2001 From: Luis Canada Date: Tue, 20 Aug 2024 14:59:25 -0400 Subject: [PATCH 019/455] feat: Add search bar for formats --- bun.lockb | Bin 161868 -> 161868 bytes src/index.tsx | 214 ++++++++++++++++++++++++++++++++++--------- src/public/script.js | 73 ++++++++++++++- src/public/style.css | 46 +++++++++- 4 files changed, 290 insertions(+), 43 deletions(-) diff --git a/bun.lockb b/bun.lockb index 9ec40730a2e6757aac02c2c064ecfa98af8ddeb0..03d665265239455985d27407472195995c37c6d0 100755 GIT binary patch delta 21 dcmX@}f%D7<&W0_FJ6A9p=^1U`vx0HLc>r~j3NZix delta 21 dcmX@}f%D7<&W0_FJ6A9p=oxI^vx0HLc>r~D3M~Kt diff --git a/src/index.tsx b/src/index.tsx index d0ca44c..f4b4d8b 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,12 +1,12 @@ -import { Database } from "bun:sqlite"; -import { randomUUID } from "node:crypto"; -import { rmSync } from "node:fs"; -import { mkdir, unlink } from "node:fs/promises"; import cookie from "@elysiajs/cookie"; import { html } from "@elysiajs/html"; import { jwt } from "@elysiajs/jwt"; import { staticPlugin } from "@elysiajs/static"; +import { Database } from "bun:sqlite"; import { Elysia, t } from "elysia"; +import { randomUUID } from "node:crypto"; +import { rmSync } from "node:fs"; +import { mkdir, unlink } from "node:fs/promises"; import { BaseHtml } from "./components/base"; import { Header } from "./components/header"; import { @@ -473,27 +473,101 @@ const app = new Elysia({ ))} */} -

    +
    - + + +
    + + + {/* Hidden element which determines the format to convert the file too and the converter to use */} + +
    @@ -507,24 +581,82 @@ const app = new Elysia({ "/conversions", ({ body }) => { return ( - + <> + + + + ); }, { body: t.Object({ fileType: t.String() }) }, diff --git a/src/public/script.js b/src/public/script.js index 0838f65..0a04630 100644 --- a/src/public/script.js +++ b/src/public/script.js @@ -3,7 +3,75 @@ const fileInput = document.querySelector('input[type="file"]'); const fileNames = []; let fileType; -const selectContainer = document.querySelector("form > article"); +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.hidden = false; + } else { + target.hidden = true; + } + } + + if (matchingTargetsFound === 0) { + groupElement.hidden = true; + } else { + groupElement.hidden = false; + } + } + }; + + 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.onclick = () => { + 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")) { + setTimeout(() => { + convertToPopup.hidden = true; + }, 100); + return; + } + + convertToPopup.hidden = true; + }); + + convertToInput.addEventListener("focus", () => { + convertToPopup.hidden = false; + }); +}; // const convertFromSelect = document.querySelector("select[name='convert_from']"); @@ -49,6 +117,7 @@ fileInput.addEventListener("change", (e) => { .then((res) => res.text()) .then((html) => { selectContainer.innerHTML = html; + updateSearchBar(); }) .catch((err) => console.log(err)); } @@ -123,3 +192,5 @@ formConvert.addEventListener("submit", (e) => { const hiddenInput = document.querySelector("input[name='file_names']"); hiddenInput.value = JSON.stringify(fileNames); }); + +updateSearchBar(); diff --git a/src/public/style.css b/src/public/style.css index 41c1065..cff90bd 100644 --- a/src/public/style.css +++ b/src/public/style.css @@ -12,4 +12,48 @@ div.center { display: flex; justify-content: center; align-items: center; -} \ No newline at end of file +} + +@media (max-width: 99999999999px) { + .convert_to_popup { + width: 50vw !important; + height: 50vh; + } +} + +@media (max-width: 850px) { + .convert_to_popup { + width: 60vw !important; + height: 60vh; + } +} + +@media (max-width: 575px) { + .convert_to_popup { + width: 80vw !important; + height: 75vh; + } +} + +@media (max-height: 1000px) { + .convert_to_popup { + height: 40vh; + } +} +@media (max-height: 650px) { + .convert_to_popup { + height: 30vh; + } +} + +@media (max-height: 500px) { + .convert_to_popup { + height: 25vh; + } +} + +@media (max-height: 400px) { + .convert_to_popup { + height: 15vh; + } +} From 4d9c4d64aa0266f3928935ada68d91ac81f638aa Mon Sep 17 00:00:00 2001 From: Luis Canada Date: Tue, 20 Aug 2024 18:10:34 -0400 Subject: [PATCH 020/455] fix: Slow click on conversion popup does not work --- src/public/script.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/public/script.js b/src/public/script.js index 0a04630..cc14108 100644 --- a/src/public/script.js +++ b/src/public/script.js @@ -41,7 +41,7 @@ const updateSearchBar = () => { const targets = Array.from(targetElements); for (const target of targets) { - target.onclick = () => { + target.onmousedown = () => { convertToElement.value = target.dataset.value; convertToInput.value = `${target.dataset.target} using ${target.dataset.converter}`; showMatching(""); @@ -59,9 +59,7 @@ const updateSearchBar = () => { // 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")) { - setTimeout(() => { - convertToPopup.hidden = true; - }, 100); + convertToPopup.hidden = true; return; } From 83bf78fd57e115cbe1b056d065ae984ab9d6d320 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 Aug 2024 06:35:24 +0000 Subject: [PATCH 021/455] chore(deps): update oven/bun docker tag to v1.1.25 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index cfba78b..8018a55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.24-alpine as base +FROM oven/bun:1.1.25-alpine as base WORKDIR /app # install dependencies into temp directory From 8ca4f1587df7f358893941c656d78d75f04dac93 Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 23 Aug 2024 14:30:02 +0200 Subject: [PATCH 022/455] fix: pdf support in vips --- Dockerfile | 4 +++- src/converters/vips.ts | 31 +++++++++++++++++++------------ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8018a55..db620cf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.25-alpine as base +FROM oven/bun:1.1.25-alpine AS base WORKDIR /app # install dependencies into temp directory @@ -40,6 +40,8 @@ RUN apk --no-cache add \ graphicsmagick \ ghostscript \ vips-tools \ + vips-poppler \ + vips-jxl \ libjxl-tools # this might be needed for some latex use cases, will add it if needed. diff --git a/src/converters/vips.ts b/src/converters/vips.ts index 5522d44..09f3d68 100644 --- a/src/converters/vips.ts +++ b/src/converters/vips.ts @@ -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"); + }, + ); }); } From f0d0e4392983c3e4c530304ea88e023fda9bcac0 Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 23 Aug 2024 15:09:49 +0200 Subject: [PATCH 023/455] feat: add option for unauthenticated file conversions #114 --- README.md | 1 + compose.yaml | 1 + src/index.tsx | 62 ++++++++++++++++++++++++++++++++++++++------------- 3 files changed, 48 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 92e8efd..8c83d0c 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ services: - 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 volumes: - convertx:/app/data ``` diff --git a/compose.yaml b/compose.yaml index 5b870f5..ef4cf7c 100644 --- a/compose.yaml +++ b/compose.yaml @@ -8,5 +8,6 @@ services: environment: - ACCOUNT_REGISTRATION=true - JWT_SECRET=aLongAndSecretStringUsedToSignTheJSONWebToken1234 + - ALLOW_UNAUTHENTICATED=true ports: - 3000:3000 diff --git a/src/index.tsx b/src/index.tsx index d0ca44c..864adae 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,10 +1,10 @@ import { Database } from "bun:sqlite"; -import { randomUUID } from "node:crypto"; +import { randomUUID, randomInt } from "node:crypto"; import { rmSync } from "node:fs"; import { mkdir, unlink } from "node:fs/promises"; import cookie from "@elysiajs/cookie"; import { html } from "@elysiajs/html"; -import { jwt } from "@elysiajs/jwt"; +import { jwt, type JWTPayloadSpec } from "@elysiajs/jwt"; import { staticPlugin } from "@elysiajs/static"; import { Elysia, t } from "elysia"; import { BaseHtml } from "./components/base"; @@ -30,6 +30,8 @@ const ACCOUNT_REGISTRATION = process.env.ACCOUNT_REGISTRATION === "true" || false; const HTTP_ALLOWED = process.env.HTTP_ALLOWED === "true" || false; +const ALLOW_UNAUTHENTICATED = + process.env.ALLOW_UNAUTHENTICATED === "true" || false; // fileNames: fileNames, // filesToConvert: fileNames.length, @@ -403,25 +405,53 @@ const app = new Elysia({ return redirect("/setup", 302); } - if (!auth?.value) { + if (!auth?.value && !ALLOW_UNAUTHENTICATED) { return redirect("/login", 302); } + // validate jwt - const user = await jwt.verify(auth.value); - if (!user) { - return redirect("/login", 302); + let user: ({ id: string } & JWTPayloadSpec) | false = false; + if (auth?.value) { + user = await jwt.verify(auth.value); + + if (user !== false && user.id) { + // make sure user exists in db + const existingUser = db + .query("SELECT * FROM users WHERE id = ?") + .as(User) + .get(user.id); + + if (!existingUser) { + if (auth?.value) { + auth.remove(); + } + return redirect("/login", 302); + } + } + } else if (ALLOW_UNAUTHENTICATED) { + const newUserId = String(randomInt(2 ^ 24, Number.MAX_SAFE_INTEGER)); + const accessToken = await jwt.sign({ + id: newUserId, + }); + + user = { id: newUserId }; + if (!auth) { + return { + message: "No auth cookie, perhaps your browser is blocking cookies.", + }; + } + + // set cookie + auth.set({ + value: accessToken, + httpOnly: true, + secure: !HTTP_ALLOWED, + maxAge: 60 * 60 * 24 * 1, + sameSite: "strict", + }); } - // make sure user exists in db - const existingUser = db - .query("SELECT * FROM users WHERE id = ?") - .as(User) - .get(user.id); - - if (!existingUser) { - if (auth?.value) { - auth.remove(); - } + if (!user) { return redirect("/login", 302); } From bc4ad492852fad8cb832a0c03485cccdd7f7b117 Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 23 Aug 2024 15:18:43 +0200 Subject: [PATCH 024/455] fix: keep unauthenticated user logged in if allowed #114 --- src/index.tsx | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 864adae..ad11869 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -415,21 +415,23 @@ const app = new Elysia({ user = await jwt.verify(auth.value); if (user !== false && user.id) { - // make sure user exists in db - const existingUser = db - .query("SELECT * FROM users WHERE id = ?") - .as(User) - .get(user.id); + if (Number.parseInt(user.id) < 2 ** 24 || !ALLOW_UNAUTHENTICATED) { + // make sure user exists in db + const existingUser = db + .query("SELECT * FROM users WHERE id = ?") + .as(User) + .get(user.id); - if (!existingUser) { - if (auth?.value) { - auth.remove(); + if (!existingUser) { + if (auth?.value) { + auth.remove(); + } + return redirect("/login", 302); } - return redirect("/login", 302); } } } else if (ALLOW_UNAUTHENTICATED) { - const newUserId = String(randomInt(2 ^ 24, Number.MAX_SAFE_INTEGER)); + const newUserId = String(randomInt(2 ** 24, Number.MAX_SAFE_INTEGER)); const accessToken = await jwt.sign({ id: newUserId, }); From 74561740227d973e54eb196d3a6dabbd008dba74 Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 23 Aug 2024 19:16:25 +0200 Subject: [PATCH 025/455] chore(deps): update dependencies --- bun.lockb | Bin 161868 -> 164052 bytes package.json | 16 ++++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bun.lockb b/bun.lockb index 9ec40730a2e6757aac02c2c064ecfa98af8ddeb0..362a8799c646f28527f8f3ccf44ed64d0993c3d2 100755 GIT binary patch delta 33071 zcmeIbcU)A*_dmRIVU<-85Tzp^b}0f<6xmg=pey!XL0lC?kfvBc6Qf3rn$e6Jdu-TS zg1wtqqGF9E*2F|nQL)4p^?9FLl;oqI@Avn-e$Vq)?#nl4&Y5=R%$YNDcdvVYd}uf~ zuFQ;pTDnfnKkHzM3GU~o&GS3Z=XKkM6~>2jjO;zGX|ANBYxc~pUef*< zGqba8EXgA>661BcnGYj!a!c!U<#f8-5kV0tR4h~F``YMqWguU!(il)@@KK;;K@(8U z0kjjS9jGNEAwD_2za=3#F)I=6j6h`rXSSQst~^f6!mg)ITGa|@I%L>Rs<;Vi5dO_lT-WYes@tis02BwpExijH66n$ zqw)h1Q~LX74b^$LDftd69qON)nh>7}Es_(5BxdRy+?D(+)FbmO1z$!tSeHB4GGZ7^ zqjT|43Jge&&&;&+*EL5$WxBF56O%J^mW;G4OZo_1OHV~1OUBT23ly1vaxh}HvWEyYCX+U>jR+8`IGp(GfyoDWT7{do8CJaKU#0*O|8qv9VE4>wY^J7-k9d`TZ zbQMwT8&C`=*TR{#b52cPrK=a9)O53|N~J>ZG^Vxal4>o$9}F)y2{VgP<@%!onxxLi zr*d7ZEA1p@_>YJmlB|nQA2>8VJ;P##oZ1~%L!p_Vv2}7GI=9Y`%|_qBWuWzc=($(SyPZtI*eCnlU#Yq{D)*{gU?0= z&GL}M6nK0_W>R8iA~iG!a_FC%89y|>U$RAKRbT124$n@%J8r1g=~RB?+ZpqQGR+`CB7 z;F2;@Q(zBWhGobwOS(=M4>>i^sJUX4*`QP|5EQPO+opwLoG?)GlLw&GacqoIZ%}+j z>hKhuZobNI1|?(Wfl@nFP`;urN0&P=b!dO|tE;YdU}>eS(2h``JPMXED;1Zbnu!XeND_FO#*Qj&tmfAMr9fo|N|tzu^3>s7P*N1(Jl!(TlKnGy>L)QH zK0Q5tgzgad9MbqoXC)(|i!w*~$gqVx50pAy1WMkW4ocbsEe4R=cfKo@vpcGU)fzk*YV``{; zh&n~yptKM4xAe;zh^f?rr}F8RjMU^|7F}2$CC2%Il0yAc6Ef2iQ!MwRO^QYn`YH|l z9IaSjHz)<64WOi;54@N7edv|E*hX1Fxes{zGNvjYUAJoK-~_(8Oh8b}0m{U~`iTQZ z=yXefAAP3pSYnAoNaZ6N;xdW8OJO{K2=onBMV_8r#rnW!48Kkt9 zI~Xnvc>*Y@9s^3{+YeF7JAo%}xCx$Y9G0T=`tGDtRvvmzE*6qMHs*m^5dG&FsRkPI zK?C>EF*THwfm0TSvSg?djC-aj9XAD~+5a4JqP^3V$^H%X(AT>FFwl}hflSvCn@I&) zpv{n=NvIA=JJqdBrNQH%w8iQnCj~kUQ${c%J~759q-B|FyurAc%L zrTp3`hl4_{3n*Fmp{f}A(v@!p0n8*TkT+5>6}+4Ce(s%c4?$N8^XNB1lA z5Bu$Ii>5jI!z0-49#@A&v|V?4c+pR;p}eM}cioK1F>kgmuR40}m091l|Ll*tljmRP zYTc#WzCjPRKIl*{v(}Lp^~%ojKYJ*m)v^1*U%O><8%J-xtwLRw9px&$ZuexG$M#OS zqc+&DdakLnWsai@vyU-NF-&fCz2NJ)$K29}Y%9BEW5ohy^G(vQtPyW|dh%Q+7nhnr z%TKxA&U*IOzVH{vE$#b%ve9y?cKx>7`5dR~HuZ;B*zY_kZ`PJM&T$ee&6l{=;MZMk zzNzVECAHD>JFZ6dHLvAqGThSZbP<>bE56A++~8G8r$ZphwdTbh;cPfBM2RhsQ3-1v zqdYKG~HacBH6f4Ek+` znnc)u=_0p~<{i!&^F(ixA;+N8wSr9I#g)U^QC^GiQ z%_P;b<9DhV4M_+*k;u~VV$X2Ha&RfDq{^{!&Nxj_2BA(gJpCE z%wHXvKYgg9PM6MyxJBw$BGs8vhQE;NfRffct!B6(5zAJt$BTW!4coxcJm{!D=}ASt zx`t8eU5VcTSzd|Pu4$CcSK>)Ejd};H&W60GYNQnF#P8HJ8YV(OGp*xk@QmHynuB9< zCstUxWPjOfq}I;-PA#Kh4TMTxGy%83HRVMfky0HOzPh&2FxUkGxlRz;+W?MQhgX4n z0FJ84^KYnw0D)te(zBH4%4_=>4GUCZDRNE2FW{&;X2d((P{U2B01JS#s2qF`+&AE8 zj+K(XfTMa=vNL-iLMa`=we>x~#qc5Ck%qNMkveEEIl=}^U74W?^z~4xSjm1E4^C~) zFWex&k&Vzeoc@ZMC&?pp#Qs7h84s!!Zs-WEAvnD}Nz=iFf-57pc>-J;aPnXz_saZE zU89s;nb!`2i4lVvAx~Zf`X}HT@FJf`LjdA%JFSjkEI7s2gP`$7aDK>>WLLfnj)q)X z)+*XtDG9s7s9EngGTcgVG#W`Z<4bU~1Tb#oHN;**M#cQMiC{iFsh-hr8ZvS`%qZMY zUqvZ_(fft#qrkP}{xu^F(~#;Vw+fR>g;n_KP@@#-%kO}s`10CeM#C~+osPB?DCLTV zswzW<;jm&lfm7YkD_lPhoQW4<#x5b%7{cxknnVBBl5z)$zjerBX_G=njrn0LFsW1-SPi_#U{n$W!bR8C23r zx!|Z3IRdg{yfE6tTJl;=P3$|K*wkcrf^m03zM}Qm5S^~yJMKET9x?}g^f4G*7+;6b zJr*glJi;^L#~yH`8A4pua9bx#D7wtmW2W8V)^+&eY=aGiG%zO$BevJUk=K_(5l6ns zSKcEGKJeXkkU|lxg|slfI>u;N3?ccnGU^LRwgIPDu`0Y%85#L>AC<$*!#;DsQHP4{ z3e-ILe4sCb4D7MkjG7}A!PkXGN|PgaQmoOi0|Ihr1UNW!`TAPt7?{+wKEIP}G<*Uf z#Xxys>-SO-xvi&2MR5PHNWDLl3YJqtkwX0Nh%_7}**ks8M81o-&~*^FChziAgHz`j zf#Wtf8Y48v3a^5W6Ty{}xhddadieS#l-&C_?lHJd$iqOYhO<7rRvVLHVU!j%X#o^~ zBg2!Vgy0($}#YlCMQ%{g; zE~gs6ExJ&O&ESRYOnN=$xeqUD7pYG`suQK8{KouFJEP$>1k?#8%spHm4hwXlY&MN2 zb}&h2oAA{gjQaApOKT^KF@}yN!-}SgZzF=Y4re-^2U!Dz1ZqfLy!x@=f@uRcY($Fe zQ%d&Io8ZXGN$ z2T$x`GVF$odQxj%3vh=Pr)f= z_aJ4I`~M3m#Tvym!dVPY>}AqV>mW}jTK`Q>(Q2!YK;BxeF##z>ry#Fz!wqoVl;L`X zv--TSw@E(*&f8oz)oG+6$W#Uc0^WN~I)V$MO_WXMwfdS2_tjj*{;lE66ihI`=wUuM zWrbmDW>JK>Ml(`yb&p84i0Ab)>7Rm!(cw@ndnnrgYG9d714o9FyE9w@ z2V0TK-r@Q>J!yK#Y-5nZR3LR2sXnrzzObHRvQ1tQHel3dyuzg)dhyk*jfQgAL&=A* z88;0#^Z-ZU2TP=TIPQD$EGFq`Z+^#YG<5Ex(+$wNm3H>wNvQn{!U(xG1=GO3T5!M) zsGkF_jXaHiAf*_YTp77!GjKFOXhgS{)JUbpY2u?tw--6&ytnMeBXwBEccLqomD1g_9je9}O;) zuj>~njT^{Urx@8`UYKHHFLU5+2$q;#Mq(&M{DazPnD@Y?!cv1##1R!jx3>Z`K0Nnd&s*$P~ANxOc zTT3cW$}}2QLf8-$5DIY%`x`IJH0fi8YJD6;iY$!<)Hj?x<#|~qX;>P+lV#K&O`{<0 z@6(W_^Q2)$eR{gO2KC#JilA{A(lfN`2oln=44yRHXt)94djt7r%25u(ABdJoeklN>~Vqlw07z?}ex?T%(5JzVNDoZlH?WcUzpq=~)d zi6c!?`)s~?q*0oa&F_pfvOjsPQ6@vf5sIfGqTzfq9-LwcG)SKvj56uJAF0!I=S8C; z^aBW3PDOm@PSaogB<`5@-{Ecx-s` zMU(-Ejq*jbG=MEczDiOnNIC#i9)VrH{ueaoT|sJ~3qTZsQ*H>MLZ&@I=_*M{VT3n1 zA7M+rh|&PC)@4QE)p9>YoZ00A#w;0A2r$Qn@n#)jJ2!_1`F!KQEX1Pg;#K zsK5n)8oUV5MU>>1h;q;I&N;+g2B_3kk^Dc@e@iQ0g70i|+os+=e#-Bq3_C38H~gr}N8lziD&VHG2>mF+Pl9c4VAg8R}D($0|BTADMugd#@Qu+Rj z{7^~!2c^0e{HX#ukrU)W1gq2n z8&$eZmG1zhizp>`s`A~cyd3!~UQU=>k+5 zNOr?Tl;m|)o+yp99w^nTujV&UX{1UUg5safsPH*D6LGkRk|NEN3|(`TZw*Qfwg)8z zJE^p*N_&7($9+^j9u)s{395V`F}R3Qxxp$;mF1X!N>E0IEKn$oEE7D@ELBdF_+g+V z%Elj3XcQ>b&r#*$RQac>e3Hsf0j2s=Rem~A^1m-t!EBYz0VOY842plcrT9Y~tN^73 zR;qNBO7lQTk+mw_07_R$O7%8EPVH<3CH`B`_9WPj1et!XN)LllgGWH=B1%(mLZxRw zse!Yg_@_Hhe^hG2D^0E;uc{krsbAIH4^e9MmYPqLdcC98yQ|7eQW6!Za-yWgeNYlT zRQX~_jVegU7g4h33sCCdFID~_S_b*0sL($sbyOO1qBfw^L>W*jYOC^gpkz)*D_{JT z6G{OmWKczCP`ZdRZu_~jY$sQ6RLxV(B}&bEseDOFqAIGKs2%tqmH!Z>ta|uEv)cfa zw1`w`Lo3*cCZMq@XaY(XQBtTmD2ZCC^8XDb#m#DYqGb1uD*vC<8@agtGeeVex3S~@ zJ=DwA`1er%@1b6H1Ulr?GW+*X|L>vx-$Okfpv0#3@1dS{_J0rcbe5+NSN=WJ|9hw> zPf!l~{~qf9|2))tDTe>(p`OmlCC^vsV#pE&WE>L z+Lb>Cw{EGK`SKUwR()g3dw*kQ)p*`FU3s@qsFR)=o~H)w?|_grCS{ycF-SMIXXmY)C@$X!=reBj2cG_xRn6kPTyjBk~hh42xp zFupw7obrix20bem*t*;P*4IO~g!W!4mNkE+uh}gp;punHs?R+-dSZ>w?md6RR2`P;qUW_5kmsKBPT zU)SJWe9USWZo9#ZFYG7p!~Czo>>M_;NN)HZ^A9d+wV6fn$*VE{YvCKO$0 z#u_sop)CaW99-;LGmGYP*JA$H!#BV+<1N=={x`rk)|pug{sNrMM)<~hGag>bTaWn% zXF=~~zG(yIf0He*w9(9BdHhDq|7Kf$7+hQKunF@IE^CvSwdec6WpA&CD$P#Wsv@2S&8r z%m(tj?HJ!qc>4}BOXS^mV0_?qgB#2ZJ2Adp@b;Z%HiT~n=dv5#zRS!~dEzdN58MfG zY20-;#@@1LDsJoj3eOTKYmI(C@yyT^#{Z|(25aoL-j#{%z{-4k7-dz%Qy{O>nz zn_k;@YkYV@g}Duf-~6ri^&Q;yhznnUnV8OtF%w6Q*yeocv&}x#@y40zD>|-CsT^6l zQ;jgonI)~hm=^cIX1?j01J_4K1#j3Mwlg5xZuW{ZM*j!x7oNKmJbzGP_j6k_o9Nn= zSWPoas=8^LU&F(@kL)~iZ&H&f2Wo9wH>lL$p53F{zO?Uspzo1CN8jmkJj5-dx$AcU zgP)%Fcb;Yby!c$j4xY^){o3Z>jT3&8ukay9U0N4zXcx2Yb>ZhLCRLa|z`kp8J)~=>c(zUhD z`G}*K{$rT%qh>an*E)vj2RH4QnF)Rg+@#}}@Z)ASmrp*9>HiT+6x`Rm{*Rb`a0`Ak zvjw~m+?*3wq9@FFm}Tw>O#ewNQE*Fm%afRXaO+N***E+JxK*d%(5K97InO(V=`XO& ziRk`Uf#+XGj9(p?SGr^W$FH9}zE@MfYVz;1+@vcBZ{7s|61&IS<;kNbLp!wj{$P)2 z&+vs^XLqhQXWvEXV&H6Zt&+iYWl4j7(r!_&_|}cjy)YNq#T0q%vYbn*x=idocOl2z zdVPI?N4ce3%b*syx&e4mHl=X`}8h*{y^2+xte_i0xI`WH!iQ_++ z-TUk=eRSwCs}omaZ!PecS!0*`=kZ@o-xE=F{P_zusb|h+q#bmf*d?!@uI;=}+O3X{ zT;uuFtdnYot`$cHGDg`L1(av&Y0Oco_GeU_AJ&ZxDDL(EW8oi zn6qZKi5~@*eGcpNoH=$&$uahAeQ}HV*L~5QzFRb*f9#}B))ZK#9E&tL?zvgDd$pq4)^+G_uLeN{+uja^vn#+IMryIs9mhxqCy~Lp~wH zmwM$jtmxYKVAovpfVt&AneBGqg4>z3t_S+RtlE6z57YUH^H`lfnOQzB{0Z)O0TKMN znQiBdFTx#vf+PKGW;=P_&u~X@w!fI!Zr=SDxZ_0&-~Ef3$6SI1ubN}`msHDd|L<4M z--!L;!6U1P8Lf}Bzgh4qzcACb+Rx{`uI2X5%D8zduKuBg=D(i#44+}XlizFTsdjF! zwr(1bQKw5*{?xk1c+n-7SeMHMyRA=pznOV7{LrOxJ&R{s!jkJPIu*FGXUP8k{pP$5 zo0oa-hpcsr=FJ?oBI=;!%C?T3#y{Tp>7|0r4W*TZwG&I&?4V8@Ft9Fs)z4Tp7tMH3 zr{yKAj9;*7E}8KZ#|v;am$5F-oALigE}e%9fs49eX2<#D3vi(;SeM{V@cJ;4%T;Vw zSIz7czmx|T0#~%pyv6%krE>hl6*C@yalMLVei!@JT{C;e$K8cp?_u8p_ksuAgI$ZT zZ{0KFk&heTZi8!9WXAt}nOOw8-bY*q_m(%lk7fP z7`o&o#`g;2dqv04_OCF$zc4;jIDhW& z2IG5+@x7sA=zefVh{GfWao4w9XJ^9(W8Ts+^yu5Jq9y}7I9TLFSZ(Y*o$+eomR1cQaa5rRP#AsFHa!4R>X1TK{z@T>?ysz|H| z!4VRiAVHdNtpq`~69i)_L69MilAxwD1pZDCWQh?@5L_g|6%q^=wVWZCC0!3k0`GP(*?;qP{BxbKD?U;0i&GC?r9QI|Q+A5R4OZ-5_{Qg4ZPY zM6`5=V3h|1>)aujAYPE5nJ9RxNF&0-?!zSWPSa z5(j*HD1z$XrsBG*wOCt?*}Rus6OH`X+V_7@8UNW5#eS@bVyTt!e^99ED3aOM@>c$D zZV0G7iIv)@Q?E>t`cn?us*8X+>{n{B;RhP(C~GDj`mv_^tA46tax+t@v_buWgY+F@ zQve$-HK<3e1t^tz1+oZPQ*`Jdx4k$BN{)@d6Fj8Nbh(ATcuW){&K)n71mYb2--etk z=k5w&Hm;e?l%df_d)j}#|GR!AjP%}I?^Aq+dqrFAzgpkHQ+BdS*Jv{2UhEq%8_C!& z->m`rOp>2qx|)BZA#1_(JMe_udm{@{M=z^GW6Gz>PTGIs#V@u5B;lz`(lTba_}s)+ zus!)fjo92+(u9|>nTZ`0*S6W>+%(pxvhK}WCMN#0kL z(NkSblw!I#RYsqmY2UhQ&+yQ5gTvKw^gIu>R}PTB(gsaXWI6Odn&k%tKx^V(^uJx0lEgM`;Rp$EC9CDg4o6kl5LM;~*%|Hmo)lGB z5kh(>h>Vx2$|@oKr79Z=O4cGHPC}ZlbhVr_(oI!ahAMM`tc5DeRAsJ^MIlX-kwwq< zP`(?`7ocmHDsxA=8Vw28a8>4kG(FHjSGFqiMEU__Gz}wE8BJwHq{-wXRT+Ko_7lpH z#Yd^K9B(j})CNbZLLbO}QDtLPSry1$12i?tErIeZ=qZ$=Y0w5z73l(1mW#U7Of_I1 z(q!H7s;oNF>*)C|GViBqCpC~>k2J|9s0C{xP2X*kh3Gji{L|F}=&1_2Xc|aX8|X{| zT$5E<9i-{853<_lstl1!cLg#Z&?z+kRM{U`iG(lcRJ9;I<+K=S8WBBEhJW-dzU~`U z_Jt~|3)xnrX_WM!8UE1|{JMNqM*c*yU|<&#G;&(&BnzSCK$U6aY>(+;?5@bedS5fE)&QCh5-~?vH?7s9H7Hf-g01} z2ae7G_b6|?_pT(T9|2Ce*9OLIeG8dQ!d=1P8761!@#lR9^DL@bG z9Rv;mhk+jeiZT>cjseGklfWsU05}7Xw@woK(OXVSBwGPypfwN+v;o=z?SS?`2cQAa z5HJEJpb^jq-BW0Y1L6UiTJlL+&OSgD0<7!{P`IcL)BtJ$en0>{#}kNz8{iIj0B>NW zw*WZ}1M~nr|MU`g1@uBz4A2s21(<=>KrGM(XaP_hx&`V0CFv2b3&2Hy!pYA7g^v|4e1NOPry0gG;kC+2Alvo0Jnic;0{n0b!e450(lJl0@#43 zXVdlp`+)<%LEsRu3)qu`KWl(nD0l(*3CIIzxzf_64X-Ca`($^(7pM+c16_f}KofxC z3B?^e8l{T@jDQIU1;PM&6w4c+N3^=5EY1>gOv-7CL_5F}jZ_Az0EJMfCTKC_7lAXt zS>PUU7tkZG6!0g~Pk_t76@b3QeF$6ut^(J9m%uCFFW?RE7NE6n4e054w^B&h00y88 zP!6yK>;QYf0jK~t0u_NufHU9%xB~8g2jB@*2D|`ozz3)T_ySddYCv_M20)K?t^?Lf zn14DKPylm)Y3Kp6XrL+344?{I*ptKRb0j$6;13dv5ZG^P((bJYIfpf^)2do2f*5l6?KpapFa0dpXVk2}w z8&opVB>MyDTA;K+U59KX(u;v_0NN&KTi8`1P4#FC=mJV<3jNEFPi+z10c>MB6aCQ` z`SEMo4=Mt*2VA4h01ET;C?Y+W=>j@qJ}Tk5oJV24dJb)jQ-EoZ^#pYQ?Ey+FhEAQG zfUS_xUKIw=ilME9Ru2U;vhE+?X{pmPr%5u!fqam z&9Mh#2b5QY@<|Q4lC$gRyiB`mHJ}ne4O01v04ZBC&k;Q3Q=T_K(X=w)3Ag~xfD_;W zxC5?$8|^ZbNsJFr1<-h3q$wiea(nUpEzK3A6%eb&x`1fefGv5C?n?j07wIDcS(24@3YoO_M+) z0g_JysQwsW6hP&uF11HWlft9`DV;+NCIE3jUqI8I6rs*(6r?GQEEb>;Sd{+sJVFNPGuu1u6jF z0wmi790U#kZopySd*BD)1VE!d3LFD|1daoz08*Y-2(6g0Kmkx67zvP)DL{3A1~h;s z&Vs~LAP)Ef_`kIR&ZDg}04-0tB9UGVoCD4R7l7YI)FNh=LweKL2LQhSKLeM6O8`|P z`5fS%o}!hVggi=XJe9i%{03YH$R@u6R{`qlAMNGnZa_$0a2>b?P=k~vwdNInDp1gL%D9|2V41@O28PkF?@0-gg@Mw3z5VnFNWHPUoq@&_b< zDw?gKEu8}I@u0d#PsBN-jt=^*O? zJVaY`*r3yq6F?^ zhu|`R0ia_(^{*X@sUCsK6Qw$o*4m{pk*;Vn=Yt(<1wK@XWMqA6fYRE;eke^dL6ff4 zA!AWmQ|>V>TN;gXiN>gLSMb_2yCGe2dZ|2Fml`5yiqPy)U2-K~wLRiVPBTJ^l2tWj zNd6N2%Ne98bwsA7dk-=tX-S2MQlnZ$n);8W$?qtSI-@o<1;}m4O(>7jTA3WpMAQK- zx`8UC#a0g>8U};{y^yC>qBw5KaqySC9KjkFD;BsWgF``l%2u=Zwkgf*G zRi45bg`)<57RsnxB+wLPqk)bx=+Vt`7iqFe}c5U>a3sL>=KQRRn#lJy1y$v_H_3Q$|afD9lV$O1Bf z;VLEh=Rl68T`rh0z-WLvB_*_xjUpbMj|3e7P{1vjPa~s&j0I?9q$F8L8_;B=Cjp-T z;{d8Z9&{qZVeK;{CIFuTUdW(PQbA4oSx9r>OJF821E7xwz5u2H_N(y+*I1n-qF1nL zR!HX$T){d>R>1+m`MXx(`x?=7HNHuT-@_`34QrW4ex~^;C0N^UHd8bn^)TZ zkXYo|M`C?~1A+oD&6#4+Iu_!dTUz-!&!~X~{YOtss!9crj}lR$h+5Eo9DZ$T(AMPp z2@6pmB%p3UUHF0USLubgVO$n*;}A%iu>B6If23)&mMdoNW)<57k(srhf}WXw@L*zV>#hYBErw*dmcg#h4>mWw&VJ`04PpdEdY-jYU*X38hF~ZAk7jFwt`F$LqOcM zpPScyfmU|Lpm4azTCrdY%Iy;ysFvaYB5(`ShiNZ3(0=L`b?T7|;;aP)D?>r;$8eDY zYmvX%I|>gB-Cg@db?rB3E3(=!7hMxX^lnziw@pR)gNAo+QTWeJWK~?%Vfoo$?W6XB zisJfiwEuAp)bYqxh*fPKtPbyEmWAT7odQLLy(~hrt8Bp#Rz}R-i`6R6O^9lGNf~D_ zQzk_732iDq;sA9kiDBQdU=Quh5BtjB%4@Nuf3a-7;DAtUyOqQtlnB$_9g)5LX}G>Y z%QYxL(I*Tihf0dqZ8@6rWs`wxtEqJ{0@U@(hhKiYM3l3LLy0i$MG{@xpNsAN=qR2h zk*5##UE-{?estRC^3KxvY>6Qf(7fX15@LNmbk|-Q(WU+IHu3gbe?VPwUext)6MyBi z)*jmHBLY_%_x&-U-x!oY6I5cUyXe0SCA9ZP45?MQ-|AWY+DeQ9JN44iQ~bD%1(XU3 z2+DNB(@82IP>w!kZ$t}!7r0isaBy)9faVHDbyi4j@T~yx%@6cX0 zvBsy{(w7t7($-1K4~mY%y&6T1d(Zn_>Fa1y4>{@vXIE2vfv6>It|k6N8}Hgw4e9h@ zLyGI$SY_$&Ga*OFoc*jb+W6{wR>`^^PGIu>68irpeoqi>PcT>4k5&~yYnfviW0Vql z;KEZ6VEupGg*%D82e4fGipK}Axfc40UI$U$f?2nRVfOlc{c~hzmsYaLg5hPlGGh8c z79!aMh`RT%$S)map6=RvB09(2d;4-mJa!Ivg1ny|77o}*rLuv-?+~1`w`g{Vg|yaQ zjTmoKm2&V=PC&AlguUPBU?4< zexy}Fo47&SH+P9mhhYfpX+IvuI@Dg>Q7zvfF zuoDGn(Ff!6a1r}Gb|~#-AhC6Vzx>nZv9($NP8~1CQGx%Q!XT{l2q@e__#DCB)kiG) zfw_igFY(ZR_8bl2)J0pJ_AZnl)3R!#KXIUG3W1WrIr*kfAtZ=>qlGhoP=)1ifsc;g|Y40;x z?9s$+jKzsI5OtYbA<|GE+HbteIl-i<_D&P+SKyI@lRO0t`5Zk^+SfpQegwfydp&|4 z&+%q14b4>tfP&f!PHZMem%jGR(kQtJIqvj~6y=V>4E=v(6?~0Rp>j0(`1zs4DZ}IA zCllpB6a0U9uZPFUTgt%yueNzSTiN><`&yb6C0-uGxxSb1KMwc(&*L;UPPk=V1kZRB zU=PHo<7^xj{cGaB6AKU)*?AH4BghzG{t-?7GvNNCuo6l&VabLD_V^Y?*ADd!UAxEh6-aujRICjdfG_jo@6PslRQK~ zQKD7FQu0P_5!4n2v6qOfmyY++y*uy4}+mtfHn4Ww3vYs(*0<$x`4HI*Edy;nU<-JkzXF)(hnsm zE@72;3y0H)`yow5^V9G5LwD_6C0k~0l5A(3#HV-iAs`$dhlq8jp;El~0rgmlcy*f9 z(T_&^wFP_1oJ8X@%*R7}Jf}KP$48W2_*$W^O z#e$#T6%Ey1D|2ksM7xXn7FXU|MSJl~LD)Uk=6EG#SC{Q|KukkJ|4?1Ew!8NJn(~dl zy5l~oV>dKN=Qp@dp|FFF?%JDg`n0*;v9Nv3#&VBAbo^EZB-ynVeSU)4)x_|h;0)@} zWGlN$iiv~WwfF1P>9BoKyXqrbs(Qnf8Vdi5=tg@LQQ1pRW_SCpY?@pkH~MS8wlIqJf}&NAvL|+%>yxjl zi8W*wD^6a*=}LR0kxTVkK38YV^Hu9&Z)+?V&16U64&tu85^3DBgB5i*^%qTpv%kG&CTm*L%LMlroh=m#xJHx)YV zbx%99@3ge!C8*Gg49H#K_CisMCU4(=hc#LSx* z4Rlp{t7Hw8K{a%5qcer1+=mK<*#6gly}7tilhppf2T)=cr*# z^Vq+wd@b_*&q6guI9b)zsnJrIDQhf8HDtBEj`*TV-y2J9T3xa*X2EqW{yI@*H3Tbd zuq&cH1+c%xG2HDhB4NqUU+&(UF4lm)%?P*(EOk% zrWLJLQuR^P{x9oW(Lqf8?fuxH+23lH&?rzWxs8CR#M_FZ;5M_?MrRhiZ^D`JdN294 zNgmC|4ZD3&@_O&gvPZsiK1DHg(TS%wnWxsxy9r@x{QCQdN($u(P<2)1>K33H>%EaR zmE-<^%5s&8rSMU*8jGE*u~3wFs>DfoS-fvV%~CZ{=S|yn6n_%ZIp!>8?!g|u;T9_` z#@}M~=v=Vv7C!IL-dU!-?+8{w=k#HeUmtN9XI>ZWZDrcak5s$W6#;vhhh`dh2W@q$hlzKascKhcbRVmYzW$q0w1b4Y z>Fg6V?yy*#QM2w~LsD+{>9k)-{B(yo8*axdaZWjNYG=s5onAvk_FeX!dY|ng1t*AB z_t*fB58Q32w=(S_#gF%}xoEFf%=foiZg=Y7BaB|TztHUyZ|^~yz9OUuxB6D~#rz^1 z{gjs7L;)Cg?Imuju06h0yzOC-S{Z|XB|PsVLjQ)NWd+#wNMXITSsSn7Q+n-#O6|RF zqwWnnF{#4cDiWi6z98(*yTsu8EY|%uJflGOT3cUK{&`03!fj|fJRlg_>+Xx<2dt7l z1Sf_!qU{rWU|(0Kz4*=T`H-SKbCu8Emv&1O#y@fM)ZhVgs~C(2VjR%ux+P7+;>TQ{ zQ;}6q6oVcxZx8Jaa@7v6=vc!&iEfbP?t*l462-%(IF0NOyB}bUI}H{mAA^;(aFuEd z7Udq|(5$^t?wHfdN@eVdX|qCo^5lfUq7h2C=MIKXpl`c1Z`Nkbt6E;`AygTKs{~EI zcu1eA$<)O|d)b|n;~%YSPKw#DRG?2X+Yb@;#mpu2!zHLw?S*!&zI}WBYOm{^HFea^ zobiQ@Y8dRcGwGgOxiy#6(Tc0Z%*|bU4c_flpW9uyP>Mc9Q{6|sk>4f!A0fEy!yH${ z(7sr*x%2BWr>HmDh!JJpi1ZfJ@#e((n)Phw z$oj}pO)29dDXmdi?FDzb0ecP=%}Be9vg)1t-)GuGd$V4>(bMKU8ol`{3d%DarmLPI zJf2{Nn`J05zQwP}&1&z@->#IX2km7)b(NHPtLRN${4tLWrHO$bxJVr{#I`4_sbt9z zZ=SFQ|A)0z$7ILFlBby7TVf}O$H$#eop_Ibt~-1#qJF=p>7_bOnD&am?>!vfEGV>d z(F_u*(_SKYca3HF!ZVA$d!G|COiaaUlsXL)EB?fX)!J(ZL%vKHxqrc8e4Jf=xN<99 zW4I{)3=2zpQDMHz;mZXDZ*HP3x}6BBNB{Gw$ukz*PJ7?1_J%%`An(H-ru~1Z)H$c@ z#!hN2?AaEyZh)u$Pk!cv&t0XF;wm%<)81ToI&4dmy(b^_u|}whpwq5Sd$*z8WAT-j z@zmn?IW0yCzvs|CZlrQ!@cWC9!8d)ar1vF;jTCVxVbb28xMQBhrNykIgYQddZ&>U+ zz0vsft$y`=pL0Zh$P>q0NfPO97cE~fFML3k_=1`6pEL6mQV5|W1&cB-S>-Af5$5ICzWU*- zF}9OtR0mH1dt^Z5%bN~cZUqI4RwyTdCV{fQ#N?OE%dIrlviuE!O?}T#JD3x(jENdwB@oAJ70Q5h+T68YuIN~M@4!WS=P zC2LW)oYc28f(lg;KiW#3ISJ{hWSF7x!&B&up#Jz|&ytdvI3z0_|L`i$LCVX6VY<|z zmgLm_kOT~|qz|;~!K;l4u`L(l+24xM2PZ>Ta zH33az1mdmE=_Ba1>_aX78T3-tfy&Ejhl&Vasj?{Rg+GfuBqwpgL9!zQxr+b~sg&65 zASH{%RUvcpl46C)SNb;Jy1cZ-D!*0*DO_)l#Xv@p-*)Yvl#wmQxky#SDrc#jSm-Pr z7xoRL(&81m$lvcGbuT4O_#&rmRq0Cp*Iv?aNyK>}AFY-Z;nk$i#KS65ThXS9wB%hy zSJA1v@g@_!ZiKB z_-E29r!6Ui;!_eV{b5!4UARLN6JYt|)O31Pbyu>y$zC)zz+?q+k{1SuPquu-H^EY_SQ#q033DCET|D-ZYKzt(QdKdjp7e(p8X`3m zZS5t!$Ox5O#IkUyTlhbE5A+ZGr$YY9XX&K-KzfDvfUIQy0fP0HJS!?M%|;#dqh^2X zQeW9Yk7{v}NvsW#_U9k2D_vzYC*_4-1Z?Xbfq7a(b2+^nCS!z`4==SBH>0uSP2q4mvl|AQ(@C-s z6T&4g(XutzMv0PjzH?J)hNE~ECN)!BVtrR>m)IXFH4zSB(jWN~u&hf9*HFnrtm`Xf ni~ey^WWGzhl<8EqQLeK5o90U5_?N7P_0svtt3;3=oALhuCxr24 delta 31617 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 Im%jS{0DgpQxBvhE diff --git a/package.json b/package.json index f06e408..c472147 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@elysiajs/html": "1.0.2", "@elysiajs/jwt": "^1.1.0", "@elysiajs/static": "1.0.3", - "elysia": "^1.1.5" + "elysia": "^1.1.7" }, "module": "src/index.tsx", "type": "module", @@ -26,18 +26,18 @@ "devDependencies": { "@biomejs/biome": "1.8.3", "@eslint/compat": "^1.1.1", - "@eslint/js": "^9.8.0", + "@eslint/js": "^9.9.0", "@ianvs/prettier-plugin-sort-imports": "^4.3.1", "@kitajs/ts-html-plugin": "^4.0.2", "@picocss/pico": "^2.0.6", "@total-typescript/ts-reset": "^0.5.1", "@types/bun": "^1.1.6", "@types/eslint": "^9.6.0", - "@types/node": "^22.1.0", - "@typescript-eslint/eslint-plugin": "^8.0.1", - "@typescript-eslint/parser": "^8.0.1", + "@types/node": "^22.5.0", + "@typescript-eslint/eslint-plugin": "^8.2.0", + "@typescript-eslint/parser": "^8.2.0", "cpy-cli": "^5.0.0", - "eslint": "^9.8.0", + "eslint": "^9.9.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-eslint-comments": "^3.2.0", @@ -45,11 +45,11 @@ "eslint-plugin-isaacscript": "^3.12.2", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-simple-import-sort": "^12.1.1", - "knip": "^5.27.0", + "knip": "^5.27.3", "npm-run-all2": "^6.2.2", "prettier": "^3.3.3", "typescript": "^5.5.4", - "typescript-eslint": "^8.0.1" + "typescript-eslint": "^8.2.0" }, "trustedDependencies": ["@biomejs/biome"] } From d5eeef9f6884b2bb878508bed97ea9ceaa662995 Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 23 Aug 2024 19:14:06 +0200 Subject: [PATCH 026/455] feat: add resvg converter --- Dockerfile | 8 +++++++ README.md | 3 ++- src/converters/main.ts | 9 ++++++++ src/converters/resvg.ts | 41 ++++++++++++++++++++++++++++++++++++ src/helpers/printVersions.ts | 10 +++++++++ 5 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 src/converters/resvg.ts diff --git a/Dockerfile b/Dockerfile index db620cf..b920f7b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ FROM oven/bun:1.1.25-alpine AS base +LABEL org.opencontainers.image.source="https://github.com/C4illin/ConvertX" WORKDIR /app # install dependencies into temp directory @@ -13,6 +14,12 @@ 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 @@ -48,6 +55,7 @@ RUN apk --no-cache add \ # 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/index.tsx /app/src/ # COPY --from=prerelease /app/package.json . COPY . . diff --git a/README.md b/README.md index 8c83d0c..f95ae4e 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,9 @@ A self-hosted online file converter. Supports 831 different formats. Written wit | 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 | -| [XeLaTeX](https://tug.org/xetex/) | Documents | 1 | 1 | +| [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 | diff --git a/src/converters/main.ts b/src/converters/main.ts index 076c03e..6b86fea 100644 --- a/src/converters/main.ts +++ b/src/converters/main.ts @@ -25,6 +25,11 @@ import { properties as propertiesLibjxl, } from "./libjxl"; +import { + convert as convertresvg, + properties as propertiesresvg, +} from "./resvg"; + 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 @@ -59,6 +64,10 @@ const properties: { properties: propertiesLibjxl, converter: convertLibjxl, }, + resvg: { + properties: propertiesresvg, + converter: convertresvg, + }, vips: { properties: propertiesImage, converter: convertImage, diff --git a/src/converters/resvg.ts b/src/converters/resvg.ts new file mode 100644 index 0000000..e971378 --- /dev/null +++ b/src/converters/resvg.ts @@ -0,0 +1,41 @@ +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: + options?: any, +): Promise { + 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"); + }, + ); + }); +} \ No newline at end of file diff --git a/src/helpers/printVersions.ts b/src/helpers/printVersions.ts index a36da86..51f7433 100644 --- a/src/helpers/printVersions.ts +++ b/src/helpers/printVersions.ts @@ -73,6 +73,16 @@ if (process.env.NODE_ENV === "production") { } }); + exec("resvg -V", (error, stdout) => { + if (error) { + console.error("resvg is not installed"); + } + + if (stdout) { + console.log(`resvg v${stdout.split("\n")[0]}`); + } + }); + exec("bun -v", (error, stdout) => { if (error) { console.error("Bun is not installed. wait what"); From 6597c1d7caeb4dfb6bc47b442e4dfc9840ad12b7 Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 23 Aug 2024 20:14:34 +0200 Subject: [PATCH 027/455] feat: add robots.txt --- src/public/robots.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/public/robots.txt diff --git a/src/public/robots.txt b/src/public/robots.txt new file mode 100644 index 0000000..77470cb --- /dev/null +++ b/src/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file From cf3da08c737a35111f983fb6786c34b557b85a5f Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 23 Aug 2024 22:07:11 +0200 Subject: [PATCH 028/455] docs: add dev instructions --- README.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f95ae4e..1c0278b 100644 --- a/README.md +++ b/README.md @@ -51,11 +51,11 @@ services: - convertx:/app/data ``` - +docker run ghcr.io/c4illin/convertx -p 3000:3000 -v ./data:/app/data +``` 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. @@ -65,6 +65,15 @@ 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/ +## 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 - [ ] Add options for converters @@ -73,6 +82,10 @@ Tutorial in french: https://belginux.com/installer-convertx-avec-docker/ - [ ] 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. +- [ ] Add more converters: + - [ ] [deark](https://github.com/jsummers/deark) + - [ ] LibreOffice + - [ ] [dvisvgm](https://github.com/mgieseki/dvisvgm) ## Contributors From 081634b61028b7c4a81a1142303dd6a66a6b5023 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Aug 2024 11:41:24 +0000 Subject: [PATCH 029/455] chore(deps): update oven/bun docker tag to v1.1.26 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b920f7b..a7a448d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.25-alpine AS base +FROM oven/bun:1.1.26-alpine AS base LABEL org.opencontainers.image.source="https://github.com/C4illin/ConvertX" WORKDIR /app From 3f063644f2f22c633fbeeb943a5c9dc91e828126 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Aug 2024 12:11:04 +0000 Subject: [PATCH 030/455] chore(deps): update dependency @total-typescript/ts-reset to ^0.6.0 --- bun.lockb | Bin 164052 -> 164076 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 362a8799c646f28527f8f3ccf44ed64d0993c3d2..5441947af44c57a1e56830d1142bea3618481044 100755 GIT binary patch delta 307 zcmcc8$n~a?Yl5Dl_v`)nUZ*+tt&P?GFS9u9ZKGG^nfV@)1&K@RzWCLZHOFl9znVY! ziImCah=Q&29AwkdC!F7TzKEC6&1aEl_}+T^efc?k>CeKG1DVd~@1MFRICG!nY<9-5 zlDc@q`V{tWKK+w4AGC(yDvW@&um7^=~1f~)0xfm45lAh#puImI$dxz zqlB!Ho&f{HO$G)ANd|_7w43&uLUk>kaxlhO=mBM>yRBw41nR6<&3K8?c)Ir*#uR3d z@TN74jm+i@4AbANWo+8MV=d#25GKin?UR_8k}{@$U}aL?E}qTwT*NFdKP6S6IJqdZ zprly8AiuaIGq1QLF(*eas~Bh_7?cE+2A8-F9!r{~b13ew{|BKa<6!I9MwgBLSMwQJ zCnw5iPZp5k*c?%?b)Ey$%548*4A=UO*3aRuIoy3|_UYfD|2Fe&F}c@N@L<*Ebv0E9 zzg&MzZ;3m$`-)7>0{1sgH*OWF>j_QbOwBOa_r-9#FFzyCY(|UeQL7l!nN9T!ryp6x z=)-6@U2rv{gsg#{Ap^rr1_lO628M>ToA#SRbuFH9FveNv0cEDUt!6X?>a1AJc!|+q zy7wB!6lRd{rZtR>%%%(s)8DLRY}&qKE#r+4rhoO@CowT4WiXmfS5RY8+%A^Q^g=`$ pXfPO*1eFGtxVoe`G%$hrE)7i6v*$3XvN13$nv=6)x}qcF1ORpoY%~A> diff --git a/package.json b/package.json index c472147..e9c3e66 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "@ianvs/prettier-plugin-sort-imports": "^4.3.1", "@kitajs/ts-html-plugin": "^4.0.2", "@picocss/pico": "^2.0.6", - "@total-typescript/ts-reset": "^0.5.1", + "@total-typescript/ts-reset": "^0.6.0", "@types/bun": "^1.1.6", "@types/eslint": "^9.6.0", "@types/node": "^22.5.0", From a1f8cbae661eb0f336da0d5f858ca46301e26ce0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emrik=20=C3=96stling?= Date: Mon, 26 Aug 2024 16:01:20 +0200 Subject: [PATCH 031/455] chore(main): release 0.4.0 --- CHANGELOG.md | 17 +++++++++++++++++ package.json | 6 ++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b5766a..efd45f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [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) diff --git a/package.json b/package.json index e9c3e66..c74af29 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "convertx-frontend", - "version": "0.3.3", + "version": "0.4.0", "scripts": { "dev": "bun run --watch src/index.tsx", "hot": "bun run --hot src/index.tsx", @@ -51,5 +51,7 @@ "typescript": "^5.5.4", "typescript-eslint": "^8.2.0" }, - "trustedDependencies": ["@biomejs/biome"] + "trustedDependencies": [ + "@biomejs/biome" + ] } From ad6eedea69f3cc74bc6d46e02abf995db3be6a8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emrik=20=C3=96stling?= Date: Tue, 27 Aug 2024 18:19:07 +0200 Subject: [PATCH 032/455] chore: Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1c0278b..ee79668 100644 --- a/README.md +++ b/README.md @@ -76,12 +76,12 @@ 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 From ccfb574d5d2ff187aedc4d1bbf6c1ad6c8389941 Mon Sep 17 00:00:00 2001 From: C4illin Date: Thu, 5 Sep 2024 12:22:27 +0200 Subject: [PATCH 033/455] chore: Update dependencies --- bun.lockb | Bin 164460 -> 164772 bytes package.json | 26 +++++++++++++------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/bun.lockb b/bun.lockb index 2359ce20047a3bd80abf5c2cc575973c364ec6d2..1bb0c6c7de382fd973771cd05b70083f2968655b 100755 GIT binary patch delta 32295 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 Pdf}Y-<)T%2HsyZ+bKp(d delta 32218 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

    mf8`&> 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

    3+|uWKB2 zoY6*>Ag~olVlnD^8>h%hD!UCI`fFLzQ;V;X!~wGSj}tfMJWEvTbrCJDV+7=odOvfl zw6)!~t5}X5LvCQTeGrIo98HP1Gk#@-L{f4x_$QUR3 zDlMM9x4~=YS3YeQ9o`A=)NzgKE4a1^-H|Hq=X499!C1?hu@L0cRE^x|d9PD1**T2P!fRVb58NSOLcINbiKH<1ZdoedPSc6fH;=Cy~M@^V=9HeW7as zRv2V=)!2gn-sKAVXWGlVCUvahfP_7-SHZY#<35EOdZQ%2<=;dfuc`N!ZuNSMwSBN~ zpMMw8?hV?|PTRgyqw>ym~kFZ+oEbYGOYzf@sfv;*Fcw67~Ap zJo)cKb-BNYxs7l7)?2LZ|5HtxcF&90m_)_`)f;;{J)hA-?YpEg=JF;gZr)};sjm(c zJMXY*V&zY)hDf;2cCx)K_!0FDdiI&Bx5GZh*3C7`_%^s(3yad2NlY{@c1q2);*uB2F>YLmV$-o;CNv zsyeLJuZRmvpK^MBEw)RTA2L5YeZBAyk1RoAHf&iB(VwJEBJ1&UTMxlkf!$&~>_Ux` zvOm@-tL;+tCf%5{@B$R$EN$!U@APd@ zMQr{PW?DgQar#f@s7HlwJSf$B?_l(iy&{6kS+MMd$S-G}?0{HQ&h{Ig8w#5P`WGpd zJz~LL#_8Juod&tqe=GGUqQf^Jdi1y}{3xv1hmo_8?Lkjq|%9lV{AoHTh$@<;&sSCBC2$Fb)8BC>{~t ze0Sk?-GHjf{Ap>bUEr%adOdF(3mdK{{JGalb6 zFhj4b%~-Yc*JYnREh!c)RXDmXI;d)rmvMGEc+Q}_-Ak6^;b8Ry{guFOu@QD&#$o3| z_iv9MIPi$R`_dC>V2DyI&X9*5 z3Fe4iH5FbU4UN;*sqeP*)flexma-?@U zf(=&v#DD~~fp~R@+DPPwsWrvuK(%q<#Z0x4Dy9!ny-4Y2)n7sQ=M2e<$;lm^k=;uF zpCY6{|9wQu>_I~_My6vX;t|?+@?>AUcM1?=+|&TgqXRsMO+(dC;X6e2ek!3glkg8x z&H7uFA|C`);-%KXpUPwfs13!YOtpr%5vtZRsx%cYqtp(y_4Zq}l!3IQw>jY=JxmRv z<{U-GFtt_%mj_~1CowWsbrz#Ls7{6bJE);Pg_dFJkB*|7i{446!sJnE-8x=cn(&d+ eZCv-9__)E<=tK;zTCb_%#rdp}*z+%S?*9QBTpI%b diff --git a/package.json b/package.json index 3169c23..fee3040 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.30.0", - "eslint-plugin-isaacscript": "^3.12.2", + "eslint-plugin-isaacscript": "^4.0.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-simple-import-sort": "^12.1.1", "knip": "^5.29.2", From bef1710e3376baa7e25c107ded20a40d18b8c6b0 Mon Sep 17 00:00:00 2001 From: C4illin Date: Thu, 12 Sep 2024 12:58:28 +0200 Subject: [PATCH 037/455] fix: allow non lowercase true and false values, fixes #122 --- src/index.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index a48c854..a69d85d 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -27,11 +27,12 @@ const uploadsDir = "./data/uploads/"; const outputDir = "./data/output/"; const ACCOUNT_REGISTRATION = - process.env.ACCOUNT_REGISTRATION === "true" || false; + process.env.ACCOUNT_REGISTRATION?.toLowerCase() === "true" || false; -const HTTP_ALLOWED = process.env.HTTP_ALLOWED === "true" || false; +const HTTP_ALLOWED = + process.env.HTTP_ALLOWED?.toLowerCase() === "true" || false; const ALLOW_UNAUTHENTICATED = - process.env.ALLOW_UNAUTHENTICATED === "true" || false; + process.env.ALLOW_UNAUTHENTICATED?.toLowerCase() === "true" || false; // fileNames: fileNames, // filesToConvert: fileNames.length, From e6a94fb21d657cfb3af56891b1a2d0f7b83b0182 Mon Sep 17 00:00:00 2001 From: C4illin Date: Thu, 12 Sep 2024 12:59:59 +0200 Subject: [PATCH 038/455] chore: format --- src/converters/resvg.ts | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/src/converters/resvg.ts b/src/converters/resvg.ts index e971378..a93ea7d 100644 --- a/src/converters/resvg.ts +++ b/src/converters/resvg.ts @@ -9,7 +9,6 @@ export const properties = { }, }; - export function convert( filePath: string, fileType: string, @@ -19,23 +18,20 @@ export function convert( options?: any, ): Promise { return new Promise((resolve, reject) => { - exec( - `resvg "${filePath}" "${targetPath}"`, - (error, stdout, stderr) => { - if (error) { - reject(`error: ${error}`); - } + exec(`resvg "${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"); + }); }); -} \ No newline at end of file +} From b30e5800c38396f7221ce56d0ba7ac2c7357803a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 12 Sep 2024 15:03:57 +0000 Subject: [PATCH 039/455] chore(deps): update dependency @biomejs/biome to v1.9.0 --- bun.lockb | Bin 165212 -> 165180 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 26c02cf2ffef9ee58ffb35f0cb7da63f17ee0532..055e4ab370085970a76dc8637c7f9a980a4318c4 100755 GIT binary patch delta 1189 zcmcc9#kHr4Yl5C)cDv4*w^cvNp4e|*F8RuRLcX(4h2QjsBxWU}aGfNB$~7DPO=~9~ zNj90hqm~Cu|A5jKbr609l->cQe?V!AdZ;{@)|n*5vUy8=;G%l7(1kZ*3-SfZt^ct6 zT%{iQNl=jj*Cik+FP;F#Q0dtXa2VE>-VrI~sOr#DWY zcy%euk_pe38A=M4TzP(&-FI8*i#?o9leQ_n%yLoKziw$a%k;TQj1u+c<;xdDajbKw zS}}D~;+IEBiLvY<^+r1uU%g&>MDW#dfv(hkH#bL}gQDNXL$%KJ1^>RJ_o+Z&;f7br ze-?BeGx`g363lrMk)1dFsM*w0Yo_1nviTPlcu8BM{y%qA*om`qJl*g3NdA)4zCP>7 zVwQ`tl9K8^57VDl@B3}}{;$Qg<|}DC@A|e+I(S@vy00?Od7li7`*xl5vn#zcN9*Cz zoVSyfSba3QV!!-cytCG?^X)C?PWo6XzTYBXBQD`Pk;$P;&au~$A@cpvwTibH{CIwD zfI5!_7;2M|op+l*|Id}&M9mfDasiQiwif9|5=&Y*uXg2|ThE{SO=(>Yn$rykaoN-V zmv<{{5k1oO@|v6T<1)Qz|5LVZY`k!tY59Xki(HuI%babhPxQ6k5wN#!YYEhO4M68j zMRp!T#|Krz`K5_HZqbvRZ#lE)r=LB(<^A?}Iazy|Q=89S+T39KX1VqXiJS7F3m0bQ z$|~v+&2AcP+;6u zjS9!d@t5vbUa2&%+K_JNRktN%j(S;LT=dMMt=!C78j>2~YmRg@Zm%3+U$URSXOg3=9ny%{DvjKldq)h0#zCC^LOMGn2SEM9DLt z5=o$vy=y$|Wx_4yLzMtE{|Cy50cD>4G|qma%*+JS{1>PhYQAnY1A{bB$*x(c67Ey7 z4#SifvM`B*9plZyB+A5?yFHPO>0lLDM75DgijmQB`oR(=<>?=qnYgFtH8H873$RV! z(8$C({ah21D7qBqbm?X$VHDAI%}ngmQ<|Bi(M9Eu1hkRZg3|+9n8Xx-A)r^14)i7j jlmwLqm$(Qn+LH~WI419?u#7WnrIoj=!&IJAAiChci!*ZkAK|c**Sf# z5~D{PV)`{w)I@CX{Kx)J6+l@ z>^7Sl)CL%kp_IX*KzRr*SXP;h$Ej4n>s#>J(^?XWk z*B$f1&8pt1{7h5(R_Q&yBl+$5LQX-(&M%&N@sHG1G-X=yYBtB-R-@v<)wcvHML&3{lXf%37`2rR@`b{!WLA&Ce~i`XK6>e zpetL;VF9zS8;cL~L!HM047JI~&ii7<*L%`+$*SZ3a{bQl3-a&@{1~*}RAr4`smIEj zr>Z4>nR6~O3R)uhy>-?#H2LCy<&y5qtA16z0Y ziEo;&qs8<4@}-7fCJN?8g6=04JiSrD9A#R1|69_PgRyQEv3*fCi;CwwexZ3l{r2X` zNtf^a|G*4&UIWm1Q<0sg{_x$`?ANTX@1ORY7aSaQDJtgOliF=+&%UL#pDH@Bfa7%9 z6p=fv`y?zDUfHhnXZiZ?OKm%M&#tUWiK}SY=E0LVeT@pEq~o7YmES&?E-R7KToE^O ziTr~*i{CU&*^?qvTo!lj5nK1u_3L9?-)&rxt95`O*VO-q2v6?TeGYF@n@#RqP_t7_ zS;e?rP?eFNagr4Gb_F#?mUd%`_YZkG+Z>>?6m*fr#Kcy zLp`9(^!3b4;^q(~&wxrKflBtS@vxT(x0nxA0@VB;C?f`xdHT~h`-w6$6HN18pk}D~ zy44H}(m*AXLGz b1(@A|;7kkC^ynFksw|7< Date: Sun, 15 Sep 2024 20:09:54 +0000 Subject: [PATCH 040/455] chore(deps): update dependency @biomejs/biome to v1.9.1 --- bun.lockb | Bin 165180 -> 165180 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 055e4ab370085970a76dc8637c7f9a980a4318c4..3fa76f9ac57a8475f2f4e8273822691f786f37f0 100755 GIT binary patch delta 1114 zcmdnf#kHr4Yl5D_??CrYk()L$y7!p|9~WVg*~J+tsjySZm`D1X;Qi+tWH$O))lTkE zH<-MmRsc-@fYKIq5Pk)e-T|e5KxvD5s63d~m?Xurc}soZqI$ctg3Ue;?#LD|m*4DA zZ2WYu`h^d^9Bk9KT|B~Tnyq3N5i2*PzvN%$mcxxtwjVmZ!(D_2cSWUmZ5tdd8nCnM*I}6qGl8UAD-5 z@3g*x1XcYC$(d_ZzlbiAki8WlZnAon5O3x|?|oa}IP=VyK39oRqQ0?zp2#MK=)U~B z8FL&e=Ik?xXZCz+IPv2<`SQ10Kd>D16>D0?zUoZ(`uUoC``c7@^}Wau7mH2l`F1I{ za&y1u3!sx=&YOtrJSU!ly25?y)8?(8;wve)TUfu;@88GRe3q~6DsnP$ zx+JN#BUJj|x_nR3y(YaAo7egO``>f8mF=mt%XD95p!39?cu#Q`D<^%MpHixIja_Q* zjR@=7pt;3sJ@XE}oNfG~^Xk>J_trf1+;_JkRL5iH4$(#Y>$KLqEZh0&rL1G#luD@c zSb(868QFP#XQkIv8?642QL#ea!<94P#TBby?pO16ny!4iO}~Fri`BLFb%}u;lIeTD zJ=wIo)5}@@&{S3X#^al|<^P-T|La!!>3>1ayKP$3>tVU(uFA)%Pusj_J0{&;p7ozm zufR_9&7&WpeZOYw)x5Z$$QFO9>Kf1M1+jDGFB}R`e>3scqXxxQrWd7`L7mqCbly~C z=e?P>@aU@V7V@)vJ}-#V=21)LGCFZb`>9%4;P!y#3H`?PDSF zP{H0c9`-Wf7W1JBfHMDqGGaiPr$3FepC~gk!Lw?#H4}BWt+aCk%@Ksxh5uYR0+=M s(#=ewa4|zTOJw@iW+q8Emv_2PBNO*@wiXlvyjqy#7!9XqwlG}=0GMj3_y7O^ delta 1114 zcmdnf#kHr4Yl5CacDv4*w^cvNp4e|*F8RuRLcX(4h2QjsBxWU}aGfNB%8hRyrn*HQN3B{!W*##`2ywEe^`F5 zQk2-scuwWg%lEr}-f7)8J#NKrX~${SLMN6?3Huv8_08i@i#?t*-Y_SW+^Sm`@Th;a zKnW8A10w?qg8%~qLq8*sfC3hEeT$j%^owT2&P-NtOm3>Zuca8Ue^2GoOudBD8>dga zx|C(fgy+i)B?U{aJU`6tyRG!a9!{r8+mv2rxhU*kx3rsO`dlSOiF)($kSoV;5qaBN{UN1c&`0BVoS8BhTo1@M_(eL7+TIc$Le_zu3R3NZ$!z<-K z3p$S({RKJ+=Ddl>&YOPJZ0e~s)9-ZI{0j@bq^(i^pF1k-#MwEX?st47e@SXzpLJw0 z%SBm9Np+ux>Cdb8{kDAn*Wz09m9(9AecLA;Jgz_8R~hKMPX@+)yH5Jqm0p^o^>As< z+eu5TJ{n!IUw$s$S?kyN_Lg%eeJmBIFpX(QuO1WRho^`vp?CJl@ zyA`&G9%*}d&CU67nclSjDO)!-UbxP*{K2C|E===f&NkI2`daS@*xR?Y1nRs7p!238 zJCC8`gR0^D(!?IO=t<7EoZ0i!&mQ0MetW!}ti8;s&F3y{Zm@l`TziG&P5ID;3o~+&2AcP+;6u zjS9!d@t5vbUa2&%+K_JNRktN%j(S;LT=dMMt=!C78j>2~YmRgFb%9BuzmIo&gm| z0u}6C<6$ooZZRLK04VbxC?f`xdHT~h`-w6$6HM!0pjNQiy44H}(m(~fW~EBFPsutA zQ((x#BnfncHw)9v8X&FO$Rxu!{ZI*$()16_Ox)A+nwT_Dxop!nG%~SHKi9-0jw-=9 pUAmb`6iIAdGZXvtlx8MbR51lOR~OC_oF34^B*ADfJ+p=BG5~1#xd{LO diff --git a/package.json b/package.json index 49b8b26..683dea6 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "start": "bun run src/index.tsx" }, "devDependencies": { - "@biomejs/biome": "1.9.0", + "@biomejs/biome": "1.9.1", "@eslint/compat": "^1.1.1", "@eslint/js": "^9.9.1", "@ianvs/prettier-plugin-sort-imports": "^4.3.1", From 52ed7274e9e9a5a74b2039e82fe07c75863d1fce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emrik=20=C3=96stling?= Date: Sun, 15 Sep 2024 23:24:06 +0200 Subject: [PATCH 041/455] chore(main): release 0.4.1 --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efd45f7..d56f73f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [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) diff --git a/package.json b/package.json index 683dea6..23bce09 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "convertx-frontend", - "version": "0.4.0", + "version": "0.4.1", "scripts": { "dev": "bun run --watch src/index.tsx", "hot": "bun run --hot src/index.tsx", From 267ef1478948de3df32c10b2f11f27cb92c28752 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 20:12:09 +0000 Subject: [PATCH 042/455] chore(deps): update oven/bun docker tag to v1.1.28 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d963c53..4f77e10 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.27-alpine AS base +FROM oven/bun:1.1.28-alpine AS base LABEL org.opencontainers.image.source="https://github.com/C4illin/ConvertX" WORKDIR /app From b97b12b449f8f5bb61e9a730eb1aeaa78dca331a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 14:43:48 +0000 Subject: [PATCH 043/455] chore(deps): update dependency @biomejs/biome to v1.9.2 --- bun.lockb | Bin 165180 -> 165180 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 3fa76f9ac57a8475f2f4e8273822691f786f37f0..977bbcd8fa226eb9b17f5971fa6ac9d043e4dec9 100755 GIT binary patch delta 1139 zcmdnf#kHr4Yl5Caf9=m3#UD@cRzJ^~6Cm-q@6p3KOWU3a9GkwvZN|CR0c$q;S=CN% zQP!AjAjL6xN38&y{R75!c`lQ{7^A&E(s!!<5+&H1;@xjS_@7BNjpZ@)e z?98T=RkMx0RPQytkjTWqz{tSDAi%)D(9Z}YpnxTX<$bQ}LUZv29!yu}C{0`WIyi0B zsrOmm+zvWlzufiA^l<;b7uRG?NM2cU*d*_dUXg>lkmb@-j^8z{v=Ddl>&htNVa;Huni}?gjo{wp7SKN7OQLXfDrj>k) zPNC@Ce;Kt6f~h`p>TXK@J$u1E(p`Bq;BTaDzPqKLVl7F#Ao}cck40N8qJOAW@ z?P_~hhDGZ+h8$ewyUNbw*~eotKK7aaIVXNOK6TZLt=xZtLqB&My!)(ExLM@X$;=QN z!#iGJuO&Lv_10%h{|j;+Tlf{76^l(5D>d@F z$zOk^8eMm1%3({5nU%>Cw&Z{Hj+XkctK{(_cj+2I)!_A2F6Z@c?dP}{cIB$uhq;{Q zkG@(!o!0<#-c)4g-Ijacb!Yd}%^nrD+f#+FpX#Yf|5{?a*Dv=`?p}t(?(hfeKHuHu zs3&=N|Ca-f4_@x><$CtnBD(i$8t3eVUJD)Xw@qKG!YJXWqI-SsHJQHbtzrpstudnE zF7tAB#hF^3yE(0=Bw>=}mEHA+_lm8p@K65QXt>omKj4FPskiULb|=}eNs_0WyFW2* z7gS~BXPhL(yzSD(O+gBt0ToCB73^K(VJ{PIF(0Y`DDxjEBLM zKn1&IrAoL@$vO;EV93HG33P-v3)9USAg$WSB*QqJDTPU4dO$N1@ASMTCJj_B+w={M zOsvz-H8F{!N^nk>Ze|jNiy6XMBGb1vGfBd^ywiOenYgF3wV)W_)xsplXf!>uh3PT? D`fazI delta 1114 zcmdnf#kHr4Yl5D_??CrYk()L$y7!p|9~WVg*~J+tsjySZm`D1X;Qi+tWH$O))lTkE zH<-MmRsc-@fYKIq5Pk)e-T|e5KxvD5s63d~m?Xurc}soZqI$ctg3Ue;?#LD|m*4DA zZ2WYu`h^d^9Bk9KT|B~Tnyq3N5i2*PzvN%$mcxxtwjVmZ!(D_2cSWUmZ5tdd8nCnM*I}6qGl8UAD-5 z@3g*x1XcYC$(d_ZzlbiAki8WlZnAon5O3x|?|oa}IP=VyK39oRqQ0?zp2#MK=)U~B z8FL&e=Ik?xXZCz+IPv2<`SQ10Kd>D16>D0?zUoZ(`uUoC``c7@^}Wau7mH2l`F1I{ za&y1u3!sx=&YOtrJSU!ly25?y)8?(8;wve)TUfu;@88GRe3q~6DsnP$ zx+JN#BUJj|x_nR3y(YaAo7egO``>f8mF=mt%XD95p!39?cu#Q`D<^%MpHixIja_Q* zjR@=7pt;3sJ@XE}oNfG~^Xk>J_trf1+;_JkRL5iH4$(#Y>$KLqEZh0&rL1G#luD@c zSb(868QFP#XQkIv8?642QL#ea!<94P#TBby?pO16ny!4iO}~Fri`BLFb%}u;lIeTD zJ=wIo)5}@@&{S3X#^al|<^P-T|La!!>3>1ayKP$3>tVU(uFA)%Pusj_J0{&;p7ozm zufR_9&7&WpeZOYw)x5Z$$QFO9>Kf1M1+jDGFB}R`e>3scqXxxQrWd7`L7mqCbly~C z=e?P>@aU@V7V@)vJ}-#V=21)LGCFZb`>9%4;P!y#3H`?PDSF zP{H0c9`-Wf7W1JBfHMDqGGaiPr$3FepC~gk!Lw?#H4}BWt+aCk%@Ksxh5uYR0+=M s(#=ewa4|zTOJw@iW+q8Emv_2PBNO*@wiXlvyjqy#7!9XqwlG}=0GMj3_y7O^ diff --git a/package.json b/package.json index 23bce09..4d4217e 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "start": "bun run src/index.tsx" }, "devDependencies": { - "@biomejs/biome": "1.9.1", + "@biomejs/biome": "1.9.2", "@eslint/compat": "^1.1.1", "@eslint/js": "^9.9.1", "@ianvs/prettier-plugin-sort-imports": "^4.3.1", From aee19626071ee756d03c845b3585752f8f7e763c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 09:09:55 +0000 Subject: [PATCH 044/455] chore(deps): update oven/bun docker tag to v1.1.29 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4f77e10..b227c8b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.28-alpine AS base +FROM oven/bun:1.1.29-alpine AS base LABEL org.opencontainers.image.source="https://github.com/C4illin/ConvertX" WORKDIR /app From 22227130dd6bdbcbe622a451a9f5734c08d2aab7 Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 20 Sep 2024 12:42:58 +0200 Subject: [PATCH 045/455] chore: add screenshot, fixes #110 --- README.md | 4 ++++ images/preview.png | Bin 0 -> 53619 bytes 2 files changed, 4 insertions(+) create mode 100644 images/preview.png diff --git a/README.md b/README.md index f6288fd..e7435f1 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,10 @@ 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 diff --git a/images/preview.png b/images/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..e2754f87e914b3d358815002b7ca597cc994bc07 GIT binary patch literal 53619 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 Date: Fri, 20 Sep 2024 12:49:19 +0200 Subject: [PATCH 046/455] fix: improve file name replacement logic --- src/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.tsx b/src/index.tsx index a69d85d..24c3619 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -828,7 +828,7 @@ const app = new Elysia({ const fileTypeOrig = fileName.split(".").pop() ?? ""; const fileType = normalizeFiletype(fileTypeOrig); const newFileExt = normalizeOutputFiletype(convertTo); - const newFileName = fileName.replace(fileTypeOrig, newFileExt); + const newFileName = fileName.replace(new RegExp(`${fileTypeOrig}(?!.*${fileTypeOrig})`), newFileExt); const targetPath = `${userOutputDir}${newFileName}`; const result = await mainConverter( From 5b1703db680d164afca3b752380615aad5570b62 Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 20 Sep 2024 12:55:00 +0200 Subject: [PATCH 047/455] chore: add safe attribute to input element --- src/index.tsx | 24 +++++++++++++++++------- src/public/style.css | 2 +- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 24c3619..094c487 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -543,9 +543,11 @@ const app = new Elysia({ style={{ borderColor: "gray", padding: "2px", - }}> + }} + >

    + style={{ fontSize: "20px", fontWeight: "bold" }} + safe> {converter}
    @@ -567,7 +569,9 @@ const app = new Elysia({ data-target={target} data-converter={converter} style={{ fontSize: "15px", padding: "5px" }} - type="button"> + type="button" + safe + > {target} ))} @@ -638,8 +642,9 @@ const app = new Elysia({ style={{ borderColor: "gray", padding: "2px", - }}> -
    + }} + > +
    {converter}
    @@ -661,7 +666,9 @@ const app = new Elysia({ data-target={target} data-converter={converter} style={{ fontSize: "15px", padding: "5px" }} - type="button"> + type="button" + safe + > {target} ))} @@ -828,7 +835,10 @@ const app = new Elysia({ const fileTypeOrig = fileName.split(".").pop() ?? ""; const fileType = normalizeFiletype(fileTypeOrig); const newFileExt = normalizeOutputFiletype(convertTo); - const newFileName = fileName.replace(new RegExp(`${fileTypeOrig}(?!.*${fileTypeOrig})`), newFileExt); + const newFileName = fileName.replace( + new RegExp(`${fileTypeOrig}(?!.*${fileTypeOrig})`), + newFileExt, + ); const targetPath = `${userOutputDir}${newFileName}`; const result = await mainConverter( diff --git a/src/public/style.css b/src/public/style.css index cff90bd..2ed0bed 100644 --- a/src/public/style.css +++ b/src/public/style.css @@ -4,7 +4,7 @@ div.icon { } button[type="submit"] { - width: 50% + width: 50%; } div.center { From 317c932c2a26280bf37ed3d3bf9b879413590f5a Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 20 Sep 2024 13:24:18 +0200 Subject: [PATCH 048/455] feat: add option to customize how often files are automatically deleted --- README.md | 1 + src/index.tsx | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e7435f1..32fd94a 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ services: - 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 ``` diff --git a/src/index.tsx b/src/index.tsx index 094c487..3538941 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -33,6 +33,7 @@ const HTTP_ALLOWED = process.env.HTTP_ALLOWED?.toLowerCase() === "true" || false; const ALLOW_UNAUTHENTICATED = process.env.ALLOW_UNAUTHENTICATED?.toLowerCase() === "true" || false; +const AUTO_DELETE_EVERY_N_HOURS = process.env.AUTO_DELETE_EVERY_N_HOURS ? Number(process.env.AUTO_DELETE_EVERY_N_HOURS) : 24; // fileNames: fileNames, // filesToConvert: fileNames.length, @@ -1263,12 +1264,10 @@ console.log( ); const clearJobs = () => { - // clear all jobs older than 24 hours - // get all files older than 24 hours const jobs = db .query("SELECT * FROM jobs WHERE date_created < ?") .as(Jobs) - .all(new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString()); + .all(new Date(Date.now() - AUTO_DELETE_EVERY_N_HOURS * 60 * 60 * 1000).toISOString()); for (const job of jobs) { // delete the directories @@ -1279,7 +1278,9 @@ const clearJobs = () => { db.query("DELETE FROM jobs WHERE id = ?").run(job.id); } - // run every 24 hours - setTimeout(clearJobs, 24 * 60 * 60 * 1000); + setTimeout(clearJobs, AUTO_DELETE_EVERY_N_HOURS * 60 * 60 * 1000); }; -clearJobs(); + +if (AUTO_DELETE_EVERY_N_HOURS > 0) { + clearJobs(); +} From ea9250543e81b2a2da99504cc243eb708ceeefe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emrik=20=C3=96stling?= Date: Fri, 20 Sep 2024 13:24:55 +0200 Subject: [PATCH 049/455] chore(main): release 0.5.0 --- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d56f73f..0c56001 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [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) diff --git a/package.json b/package.json index 4d4217e..4292374 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "convertx-frontend", - "version": "0.4.1", + "version": "0.5.0", "scripts": { "dev": "bun run --watch src/index.tsx", "hot": "bun run --hot src/index.tsx", From a17eca0a099378d885af97702031e721da39d0c9 Mon Sep 17 00:00:00 2001 From: C4illin Date: Fri, 20 Sep 2024 13:27:54 +0200 Subject: [PATCH 050/455] chore: format --- biome.json | 2 +- src/index.tsx | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/biome.json b/biome.json index 684e3d3..c751d74 100644 --- a/biome.json +++ b/biome.json @@ -10,7 +10,7 @@ "attributePosition": "auto" }, "files": { - "ignore": ["**/node_modules/**"] + "ignore": ["**/node_modules/**", "**/pico.lime.min.css"] }, "organizeImports": { "enabled": true }, "linter": { diff --git a/src/index.tsx b/src/index.tsx index 3538941..19bfdff 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -33,7 +33,9 @@ const HTTP_ALLOWED = process.env.HTTP_ALLOWED?.toLowerCase() === "true" || false; const ALLOW_UNAUTHENTICATED = process.env.ALLOW_UNAUTHENTICATED?.toLowerCase() === "true" || false; -const AUTO_DELETE_EVERY_N_HOURS = process.env.AUTO_DELETE_EVERY_N_HOURS ? Number(process.env.AUTO_DELETE_EVERY_N_HOURS) : 24; +const AUTO_DELETE_EVERY_N_HOURS = process.env.AUTO_DELETE_EVERY_N_HOURS + ? Number(process.env.AUTO_DELETE_EVERY_N_HOURS) + : 24; // fileNames: fileNames, // filesToConvert: fileNames.length, @@ -1267,7 +1269,11 @@ const clearJobs = () => { const jobs = db .query("SELECT * FROM jobs WHERE date_created < ?") .as(Jobs) - .all(new Date(Date.now() - AUTO_DELETE_EVERY_N_HOURS * 60 * 60 * 1000).toISOString()); + .all( + new Date( + Date.now() - AUTO_DELETE_EVERY_N_HOURS * 60 * 60 * 1000, + ).toISOString(), + ); for (const job of jobs) { // delete the directories From a47bb682a5db7e678417abee70512d929e82bb22 Mon Sep 17 00:00:00 2001 From: "deepsource-io[bot]" <42547082+deepsource-io[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2024 14:28:59 +0000 Subject: [PATCH 051/455] ci: add .deepsource.toml --- .deepsource.toml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .deepsource.toml diff --git a/.deepsource.toml b/.deepsource.toml new file mode 100644 index 0000000..e5ec308 --- /dev/null +++ b/.deepsource.toml @@ -0,0 +1,7 @@ +version = 1 + +[[analyzers]] +name = "javascript" + + [analyzers.meta] + environment = ["nodejs"] \ No newline at end of file From ed59cd7aa4c8725bd1062d5c1a56013756b4e073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emrik=20=C3=96stling?= Date: Sun, 22 Sep 2024 23:53:37 +0200 Subject: [PATCH 052/455] chore: clarify that batch processing is possible --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 32fd94a..b93cac2 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ A self-hosted online file converter. Supports 831 different formats. Written wit ## Features - Convert files to different formats +- Process multiple files at once - Password protection - Multiple accounts From 22f823c535b20382981f86a13616b830a1f3392f Mon Sep 17 00:00:00 2001 From: C4illin Date: Mon, 9 Sep 2024 17:38:03 +0200 Subject: [PATCH 053/455] feat: ui remake with tailwind --- .gitignore | 3 +- Debian.Dockerfile | 63 ------- Dockerfile | 11 +- biome.json | 20 +- bun.lockb | Bin 165180 -> 217660 bytes package.json | 10 +- postcss.config.cjs | 9 + src/components/base.tsx | 3 +- src/components/header.tsx | 45 +++-- src/helpers/tailwind.ts | 17 ++ src/index.tsx | 344 +++++++++++++++++------------------ src/main.css | 12 ++ src/public/pico.lime.min.css | 4 - src/public/script.js | 31 +++- src/public/style.css | 59 ------ tailwind.config.js | 9 + 16 files changed, 296 insertions(+), 344 deletions(-) delete mode 100644 Debian.Dockerfile create mode 100644 postcss.config.cjs create mode 100644 src/helpers/tailwind.ts create mode 100644 src/main.css delete mode 100644 src/public/pico.lime.min.css delete mode 100644 src/public/style.css create mode 100644 tailwind.config.js diff --git a/.gitignore b/.gitignore index ab13b2a..b9eeb2c 100644 --- a/.gitignore +++ b/.gitignore @@ -47,4 +47,5 @@ package-lock.json /db /data /Bruno -/tsconfig.tsbuildinfo \ No newline at end of file +/tsconfig.tsbuildinfo +/src/public/style.css \ No newline at end of file diff --git a/Debian.Dockerfile b/Debian.Dockerfile deleted file mode 100644 index 60e8d88..0000000 --- a/Debian.Dockerfile +++ /dev/null @@ -1,63 +0,0 @@ -FROM oven/bun:1-debian as base -WORKDIR /app - -# install dependencies into temp directory -# this will cache them and speed up future builds -FROM base AS install -RUN mkdir -p /temp/dev -COPY package.json bun.lockb /temp/dev/ -RUN cd /temp/dev && bun install --frozen-lockfile - -# install with --production (exclude devDependencies) -RUN mkdir -p /temp/prod -COPY package.json bun.lockb /temp/prod/ -RUN cd /temp/prod && bun install --frozen-lockfile --production - -# FROM base AS install-libjxl-tools -# download - - - -# 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 . . - -# # [optional] tests & build -# ENV NODE_ENV=production -# RUN bun test -# RUN bun run build - -# copy production dependencies and source code into final image -FROM base AS release -LABEL maintainer="Emrik Östling (C4illin)" -LABEL description="ConvertX: self-hosted online file converter supporting 700+ file formats." -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 \ - pandoc \ - texlive-latex-recommended \ - texlive-fonts-recommended \ - texlive-latex-extra \ - ffmpeg \ - graphicsmagick \ - ghostscript \ - libvips-tools - -# # libjxl is not available in the official debian repositories -# RUN wget https://github.com/libjxl/libjxl/releases/download/v0.10.2/jxl-debs-amd64-debian-bullseye-v0.10.2.tar.gz -O /tmp/jxl-debs-amd64-debian-bullseye-v0.10.2.tar.gz \ -# && mkdir -p /tmp/libjxl \ -# && tar -xvf /tmp/jxl-debs-amd64-debian-bullseye-v0.10.2.tar.gz -C /tmp/libjxl \ -# && dpkg -i /tmp/libjxl/libjxl_0.10.2_amd64.deb /tmp/libjxl/jxl_0.10.2_amd64.deb \ -# && rm -rf /tmp/jxl-debs-amd64-debian-bullseye-v0.10.2.tar.gz /tmp/libjxl - -COPY --from=install /temp/prod/node_modules node_modules -# COPY --from=prerelease /app/src/index.tsx /app/src/ -# COPY --from=prerelease /app/package.json . -COPY . . - -EXPOSE 3000/tcp -ENTRYPOINT [ "bun", "run", "./src/index.tsx" ] \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index b227c8b..803d382 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,14 +22,14 @@ 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 @@ -56,6 +56,7 @@ RUN apk --no-cache add \ 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/style.css /app/src/public/ # COPY --from=prerelease /app/src/index.tsx /app/src/ # COPY --from=prerelease /app/package.json . COPY . . diff --git a/biome.json b/biome.json index c751d74..e14b242 100644 --- a/biome.json +++ b/biome.json @@ -10,9 +10,14 @@ "attributePosition": "auto" }, "files": { - "ignore": ["**/node_modules/**", "**/pico.lime.min.css"] + "ignore": [ + "**/node_modules/**", + "**/pico.lime.min.css" + ] + }, + "organizeImports": { + "enabled": true }, - "organizeImports": { "enabled": true }, "linter": { "enabled": true, "rules": { @@ -25,7 +30,11 @@ "useLiteralKeys": "error", "useOptionalChain": "error" }, - "correctness": { "noPrecisionLoss": "error", "noUnusedVariables": "off" }, + "correctness": { + "noPrecisionLoss": "error", + "noUnusedVariables": "off", + "useJsxKeyInIterable": "off" + }, "style": { "noInferrableTypes": "error", "noNamespace": "error", @@ -45,6 +54,9 @@ "noUnsafeDeclarationMerging": "error", "useAwait": "error", "useNamespaceKeyword": "error" + }, + "nursery": { + "useSortedClasses": "error" } } }, @@ -60,4 +72,4 @@ "attributePosition": "auto" } } -} +} \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index 977bbcd8fa226eb9b17f5971fa6ac9d043e4dec9..336c19ee2fa007ae5aeb31f7e3f485d54fe8aa71 100755 GIT binary patch delta 65964 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 delta 32768 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 {title} - - {children} + {children} ); diff --git a/src/components/header.tsx b/src/components/header.tsx index 1c255db..6850027 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -5,44 +5,53 @@ export const Header = ({ let rightNav: JSX.Element; if (loggedIn) { rightNav = ( -
      + ); } else { rightNav = ( -
        + ); } return ( -
        -

    nmG}aDvbwdC!`6? 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 N9V^uo<;F>~{uf!ZXYv35 diff --git a/package.json b/package.json index c74af29..3169c23 100644 --- a/package.json +++ b/package.json @@ -14,9 +14,9 @@ "dependencies": { "@elysiajs/cookie": "^0.8.0", "@elysiajs/html": "1.0.2", - "@elysiajs/jwt": "^1.1.0", + "@elysiajs/jwt": "^1.1.1", "@elysiajs/static": "1.0.3", - "elysia": "^1.1.7" + "elysia": "^1.1.12" }, "module": "src/index.tsx", "type": "module", @@ -26,30 +26,30 @@ "devDependencies": { "@biomejs/biome": "1.8.3", "@eslint/compat": "^1.1.1", - "@eslint/js": "^9.9.0", + "@eslint/js": "^9.9.1", "@ianvs/prettier-plugin-sort-imports": "^4.3.1", "@kitajs/ts-html-plugin": "^4.0.2", "@picocss/pico": "^2.0.6", - "@total-typescript/ts-reset": "^0.6.0", - "@types/bun": "^1.1.6", - "@types/eslint": "^9.6.0", - "@types/node": "^22.5.0", - "@typescript-eslint/eslint-plugin": "^8.2.0", - "@typescript-eslint/parser": "^8.2.0", + "@total-typescript/ts-reset": "^0.6.1", + "@types/bun": "^1.1.8", + "@types/eslint": "^9.6.1", + "@types/node": "^22.5.4", + "@typescript-eslint/eslint-plugin": "^8.4.0", + "@typescript-eslint/parser": "^8.4.0", "cpy-cli": "^5.0.0", - "eslint": "^9.9.0", + "eslint": "^9.9.1", "eslint-config-prettier": "^9.1.0", "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-eslint-comments": "^3.2.0", - "eslint-plugin-import": "^2.29.1", + "eslint-plugin-import": "^2.30.0", "eslint-plugin-isaacscript": "^3.12.2", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-simple-import-sort": "^12.1.1", - "knip": "^5.27.3", + "knip": "^5.29.2", "npm-run-all2": "^6.2.2", "prettier": "^3.3.3", "typescript": "^5.5.4", - "typescript-eslint": "^8.2.0" + "typescript-eslint": "^8.4.0" }, "trustedDependencies": [ "@biomejs/biome" From 136a8b2d74c29714b21e38517d852caef1e65039 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 7 Sep 2024 13:48:15 +0000 Subject: [PATCH 034/455] chore(deps): update oven/bun docker tag to v1.1.27 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a7a448d..d963c53 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM oven/bun:1.1.26-alpine AS base +FROM oven/bun:1.1.27-alpine AS base LABEL org.opencontainers.image.source="https://github.com/C4illin/ConvertX" WORKDIR /app From 5988fe8212d74ad673da701df04611bc5a91fcf6 Mon Sep 17 00:00:00 2001 From: C4illin Date: Mon, 9 Sep 2024 13:17:37 +0200 Subject: [PATCH 035/455] chore: fix docker run command fixes #127 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ee79668..f6288fd 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ services: or ```bash -docker run ghcr.io/c4illin/convertx -p 3000:3000 -v ./data:/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. From 9bf64e42d5d0940d6068ad67e66449227f83f747 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 21:56:10 +0000 Subject: [PATCH 036/455] chore(deps): update dependency eslint-plugin-isaacscript to v4 --- bun.lockb | Bin 164772 -> 165212 bytes package.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bun.lockb b/bun.lockb index 1bb0c6c7de382fd973771cd05b70083f2968655b..26c02cf2ffef9ee58ffb35f0cb7da63f17ee0532 100755 GIT binary patch delta 17361 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