diff --git a/package.json b/package.json
index 06e69693..29042f83 100644
--- a/package.json
+++ b/package.json
@@ -14,9 +14,9 @@
"license": "GPL-3.0-or-later",
"author": "Equicord",
"scripts": {
- "build": "tsx scripts/build/build.mts",
+ "build": "node --require=./scripts/suppressExperimentalWarnings.js scripts/build/build.mjs",
"buildStandalone": "pnpm build --standalone",
- "buildWeb": "tsx scripts/build/buildWeb.mts",
+ "buildWeb": "node --require=./scripts/suppressExperimentalWarnings.js scripts/build/buildWeb.mjs",
"buildWebStandalone": "pnpm buildWeb --standalone",
"buildReporter": "pnpm buildWebStandalone --reporter --skip-extension",
"buildReporterDesktop": "pnpm build --reporter",
@@ -63,7 +63,7 @@
"@types/yazl": "^2.4.5",
"diff": "^5.2.0",
"discord-types": "^1.3.26",
- "esbuild": "^0.23.0",
+ "esbuild": "^0.15.18",
"eslint": "^9.8.0",
"eslint-import-resolver-alias": "^1.1.2",
"eslint-plugin-simple-header": "^1.1.1",
@@ -78,7 +78,7 @@
"stylelint-config-standard": "^36.0.1",
"ts-patch": "^3.2.1",
"ts-pattern": "^5.3.1",
- "tsx": "^4.16.5",
+ "tsx": "^3.12.7",
"type-fest": "^4.23.0",
"typed-emitter": "^2.1.0",
"typescript": "^5.5.4",
@@ -114,7 +114,7 @@
"sourceDir": "./dist/firefox-unpacked"
},
"engines": {
- "node": ">=20",
+ "node": ">=18",
"pnpm": ">=9"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 7e346c39..5f2c3b19 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -93,8 +93,8 @@ importers:
specifier: ^1.3.26
version: 1.3.26
esbuild:
- specifier: ^0.23.0
- version: 0.23.0
+ specifier: ^0.15.18
+ version: 0.15.18
eslint:
specifier: ^9.8.0
version: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
@@ -138,8 +138,8 @@ importers:
specifier: ^5.3.1
version: 5.3.1
tsx:
- specifier: ^4.16.5
- version: 4.16.5
+ specifier: ^3.12.7
+ version: 3.12.7
type-fest:
specifier: ^4.23.0
version: 4.23.0
@@ -250,34 +250,16 @@ packages:
'@esbuild-kit/esm-loader@2.5.5':
resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==}
- '@esbuild/aix-ppc64@0.21.5':
- resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/aix-ppc64@0.23.0':
- resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [aix]
-
'@esbuild/android-arm64@0.17.18':
resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm64@0.21.5':
- resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
+ '@esbuild/android-arm@0.15.18':
+ resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==}
engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm64@0.23.0':
- resolution: {integrity: sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
+ cpu: [arm]
os: [android]
'@esbuild/android-arm@0.17.18':
@@ -286,160 +268,58 @@ packages:
cpu: [arm]
os: [android]
- '@esbuild/android-arm@0.21.5':
- resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-arm@0.23.0':
- resolution: {integrity: sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [android]
-
'@esbuild/android-x64@0.17.18':
resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
- '@esbuild/android-x64@0.21.5':
- resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/android-x64@0.23.0':
- resolution: {integrity: sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [android]
-
'@esbuild/darwin-arm64@0.17.18':
resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-arm64@0.21.5':
- resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-arm64@0.23.0':
- resolution: {integrity: sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [darwin]
-
'@esbuild/darwin-x64@0.17.18':
resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
- '@esbuild/darwin-x64@0.21.5':
- resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.23.0':
- resolution: {integrity: sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [darwin]
-
'@esbuild/freebsd-arm64@0.17.18':
resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-arm64@0.21.5':
- resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-arm64@0.23.0':
- resolution: {integrity: sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [freebsd]
-
'@esbuild/freebsd-x64@0.17.18':
resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.21.5':
- resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.23.0':
- resolution: {integrity: sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [freebsd]
-
'@esbuild/linux-arm64@0.17.18':
resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm64@0.21.5':
- resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm64@0.23.0':
- resolution: {integrity: sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [linux]
-
'@esbuild/linux-arm@0.17.18':
resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-arm@0.21.5':
- resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-arm@0.23.0':
- resolution: {integrity: sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [linux]
-
'@esbuild/linux-ia32@0.17.18':
resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-ia32@0.21.5':
- resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
+ '@esbuild/linux-loong64@0.15.18':
+ resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==}
engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-ia32@0.23.0':
- resolution: {integrity: sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==}
- engines: {node: '>=18'}
- cpu: [ia32]
+ cpu: [loong64]
os: [linux]
'@esbuild/linux-loong64@0.17.18':
@@ -448,222 +328,72 @@ packages:
cpu: [loong64]
os: [linux]
- '@esbuild/linux-loong64@0.21.5':
- resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-loong64@0.23.0':
- resolution: {integrity: sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==}
- engines: {node: '>=18'}
- cpu: [loong64]
- os: [linux]
-
'@esbuild/linux-mips64el@0.17.18':
resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-mips64el@0.21.5':
- resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.23.0':
- resolution: {integrity: sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==}
- engines: {node: '>=18'}
- cpu: [mips64el]
- os: [linux]
-
'@esbuild/linux-ppc64@0.17.18':
resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-ppc64@0.21.5':
- resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.23.0':
- resolution: {integrity: sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [linux]
-
'@esbuild/linux-riscv64@0.17.18':
resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-riscv64@0.21.5':
- resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.23.0':
- resolution: {integrity: sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==}
- engines: {node: '>=18'}
- cpu: [riscv64]
- os: [linux]
-
'@esbuild/linux-s390x@0.17.18':
resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-s390x@0.21.5':
- resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-s390x@0.23.0':
- resolution: {integrity: sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==}
- engines: {node: '>=18'}
- cpu: [s390x]
- os: [linux]
-
'@esbuild/linux-x64@0.17.18':
resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
- '@esbuild/linux-x64@0.21.5':
- resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/linux-x64@0.23.0':
- resolution: {integrity: sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [linux]
-
'@esbuild/netbsd-x64@0.17.18':
resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.21.5':
- resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/netbsd-x64@0.23.0':
- resolution: {integrity: sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/openbsd-arm64@0.23.0':
- resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openbsd]
-
'@esbuild/openbsd-x64@0.17.18':
resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.21.5':
- resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/openbsd-x64@0.23.0':
- resolution: {integrity: sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [openbsd]
-
'@esbuild/sunos-x64@0.17.18':
resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
- '@esbuild/sunos-x64@0.21.5':
- resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/sunos-x64@0.23.0':
- resolution: {integrity: sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [sunos]
-
'@esbuild/win32-arm64@0.17.18':
resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-arm64@0.21.5':
- resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-arm64@0.23.0':
- resolution: {integrity: sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [win32]
-
'@esbuild/win32-ia32@0.17.18':
resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-ia32@0.21.5':
- resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-ia32@0.23.0':
- resolution: {integrity: sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [win32]
-
'@esbuild/win32-x64@0.17.18':
resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
- '@esbuild/win32-x64@0.21.5':
- resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
-
- '@esbuild/win32-x64@0.23.0':
- resolution: {integrity: sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [win32]
-
'@eslint-community/eslint-utils@4.4.0':
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1296,21 +1026,136 @@ packages:
resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
engines: {node: '>= 0.4'}
+ esbuild-android-64@0.15.18:
+ resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
+ esbuild-android-arm64@0.15.18:
+ resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
+ esbuild-darwin-64@0.15.18:
+ resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
+ esbuild-darwin-arm64@0.15.18:
+ resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
+ esbuild-freebsd-64@0.15.18:
+ resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
+ esbuild-freebsd-arm64@0.15.18:
+ resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ esbuild-linux-32@0.15.18:
+ resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+
+ esbuild-linux-64@0.15.18:
+ resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
+ esbuild-linux-arm64@0.15.18:
+ resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
+ esbuild-linux-arm@0.15.18:
+ resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+
+ esbuild-linux-mips64le@0.15.18:
+ resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
+ esbuild-linux-ppc64le@0.15.18:
+ resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+
+ esbuild-linux-riscv64@0.15.18:
+ resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
+ esbuild-linux-s390x@0.15.18:
+ resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
+ esbuild-netbsd-64@0.15.18:
+ resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
+ esbuild-openbsd-64@0.15.18:
+ resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
+ esbuild-sunos-64@0.15.18:
+ resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
+ esbuild-windows-32@0.15.18:
+ resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
+ esbuild-windows-64@0.15.18:
+ resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
+ esbuild-windows-arm64@0.15.18:
+ resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
+ esbuild@0.15.18:
+ resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==}
+ engines: {node: '>=12'}
+ hasBin: true
+
esbuild@0.17.18:
resolution: {integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==}
engines: {node: '>=12'}
hasBin: true
- esbuild@0.21.5:
- resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
- engines: {node: '>=12'}
- hasBin: true
-
- esbuild@0.23.0:
- resolution: {integrity: sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==}
- engines: {node: '>=18'}
- hasBin: true
-
escalade@3.1.2:
resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
engines: {node: '>=6'}
@@ -1541,11 +1386,6 @@ packages:
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
- fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
@@ -1575,9 +1415,6 @@ packages:
get-tsconfig@4.5.0:
resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==}
- get-tsconfig@4.7.6:
- resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==}
-
get-uri@6.0.3:
resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==}
engines: {node: '>= 14'}
@@ -2171,9 +2008,6 @@ packages:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
- resolve-pkg-maps@1.0.0:
- resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
-
resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
@@ -2393,11 +2227,6 @@ packages:
resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==}
hasBin: true
- tsx@4.16.5:
- resolution: {integrity: sha512-ArsiAQHEW2iGaqZ8fTA1nX0a+lN5mNTyuGRRO6OW3H/Yno1y9/t1f9YOI1Cfoqz63VAthn++ZYcbDP7jPflc+A==}
- engines: {node: '>=18.0.0'}
- hasBin: true
-
type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
@@ -2631,213 +2460,78 @@ snapshots:
'@esbuild-kit/core-utils': 3.1.0
get-tsconfig: 4.5.0
- '@esbuild/aix-ppc64@0.21.5':
- optional: true
-
- '@esbuild/aix-ppc64@0.23.0':
- optional: true
-
'@esbuild/android-arm64@0.17.18':
optional: true
- '@esbuild/android-arm64@0.21.5':
- optional: true
-
- '@esbuild/android-arm64@0.23.0':
+ '@esbuild/android-arm@0.15.18':
optional: true
'@esbuild/android-arm@0.17.18':
optional: true
- '@esbuild/android-arm@0.21.5':
- optional: true
-
- '@esbuild/android-arm@0.23.0':
- optional: true
-
'@esbuild/android-x64@0.17.18':
optional: true
- '@esbuild/android-x64@0.21.5':
- optional: true
-
- '@esbuild/android-x64@0.23.0':
- optional: true
-
'@esbuild/darwin-arm64@0.17.18':
optional: true
- '@esbuild/darwin-arm64@0.21.5':
- optional: true
-
- '@esbuild/darwin-arm64@0.23.0':
- optional: true
-
'@esbuild/darwin-x64@0.17.18':
optional: true
- '@esbuild/darwin-x64@0.21.5':
- optional: true
-
- '@esbuild/darwin-x64@0.23.0':
- optional: true
-
'@esbuild/freebsd-arm64@0.17.18':
optional: true
- '@esbuild/freebsd-arm64@0.21.5':
- optional: true
-
- '@esbuild/freebsd-arm64@0.23.0':
- optional: true
-
'@esbuild/freebsd-x64@0.17.18':
optional: true
- '@esbuild/freebsd-x64@0.21.5':
- optional: true
-
- '@esbuild/freebsd-x64@0.23.0':
- optional: true
-
'@esbuild/linux-arm64@0.17.18':
optional: true
- '@esbuild/linux-arm64@0.21.5':
- optional: true
-
- '@esbuild/linux-arm64@0.23.0':
- optional: true
-
'@esbuild/linux-arm@0.17.18':
optional: true
- '@esbuild/linux-arm@0.21.5':
- optional: true
-
- '@esbuild/linux-arm@0.23.0':
- optional: true
-
'@esbuild/linux-ia32@0.17.18':
optional: true
- '@esbuild/linux-ia32@0.21.5':
- optional: true
-
- '@esbuild/linux-ia32@0.23.0':
+ '@esbuild/linux-loong64@0.15.18':
optional: true
'@esbuild/linux-loong64@0.17.18':
optional: true
- '@esbuild/linux-loong64@0.21.5':
- optional: true
-
- '@esbuild/linux-loong64@0.23.0':
- optional: true
-
'@esbuild/linux-mips64el@0.17.18':
optional: true
- '@esbuild/linux-mips64el@0.21.5':
- optional: true
-
- '@esbuild/linux-mips64el@0.23.0':
- optional: true
-
'@esbuild/linux-ppc64@0.17.18':
optional: true
- '@esbuild/linux-ppc64@0.21.5':
- optional: true
-
- '@esbuild/linux-ppc64@0.23.0':
- optional: true
-
'@esbuild/linux-riscv64@0.17.18':
optional: true
- '@esbuild/linux-riscv64@0.21.5':
- optional: true
-
- '@esbuild/linux-riscv64@0.23.0':
- optional: true
-
'@esbuild/linux-s390x@0.17.18':
optional: true
- '@esbuild/linux-s390x@0.21.5':
- optional: true
-
- '@esbuild/linux-s390x@0.23.0':
- optional: true
-
'@esbuild/linux-x64@0.17.18':
optional: true
- '@esbuild/linux-x64@0.21.5':
- optional: true
-
- '@esbuild/linux-x64@0.23.0':
- optional: true
-
'@esbuild/netbsd-x64@0.17.18':
optional: true
- '@esbuild/netbsd-x64@0.21.5':
- optional: true
-
- '@esbuild/netbsd-x64@0.23.0':
- optional: true
-
- '@esbuild/openbsd-arm64@0.23.0':
- optional: true
-
'@esbuild/openbsd-x64@0.17.18':
optional: true
- '@esbuild/openbsd-x64@0.21.5':
- optional: true
-
- '@esbuild/openbsd-x64@0.23.0':
- optional: true
-
'@esbuild/sunos-x64@0.17.18':
optional: true
- '@esbuild/sunos-x64@0.21.5':
- optional: true
-
- '@esbuild/sunos-x64@0.23.0':
- optional: true
-
'@esbuild/win32-arm64@0.17.18':
optional: true
- '@esbuild/win32-arm64@0.21.5':
- optional: true
-
- '@esbuild/win32-arm64@0.23.0':
- optional: true
-
'@esbuild/win32-ia32@0.17.18':
optional: true
- '@esbuild/win32-ia32@0.21.5':
- optional: true
-
- '@esbuild/win32-ia32@0.23.0':
- optional: true
-
'@esbuild/win32-x64@0.17.18':
optional: true
- '@esbuild/win32-x64@0.21.5':
- optional: true
-
- '@esbuild/win32-x64@0.23.0':
- optional: true
-
'@eslint-community/eslint-utils@4.4.0(eslint@9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4))':
dependencies:
eslint: 9.8.0(patch_hash=xm46kqcmdgzlmm4aifkfpxaho4)
@@ -3598,6 +3292,91 @@ snapshots:
is-date-object: 1.0.5
is-symbol: 1.0.4
+ esbuild-android-64@0.15.18:
+ optional: true
+
+ esbuild-android-arm64@0.15.18:
+ optional: true
+
+ esbuild-darwin-64@0.15.18:
+ optional: true
+
+ esbuild-darwin-arm64@0.15.18:
+ optional: true
+
+ esbuild-freebsd-64@0.15.18:
+ optional: true
+
+ esbuild-freebsd-arm64@0.15.18:
+ optional: true
+
+ esbuild-linux-32@0.15.18:
+ optional: true
+
+ esbuild-linux-64@0.15.18:
+ optional: true
+
+ esbuild-linux-arm64@0.15.18:
+ optional: true
+
+ esbuild-linux-arm@0.15.18:
+ optional: true
+
+ esbuild-linux-mips64le@0.15.18:
+ optional: true
+
+ esbuild-linux-ppc64le@0.15.18:
+ optional: true
+
+ esbuild-linux-riscv64@0.15.18:
+ optional: true
+
+ esbuild-linux-s390x@0.15.18:
+ optional: true
+
+ esbuild-netbsd-64@0.15.18:
+ optional: true
+
+ esbuild-openbsd-64@0.15.18:
+ optional: true
+
+ esbuild-sunos-64@0.15.18:
+ optional: true
+
+ esbuild-windows-32@0.15.18:
+ optional: true
+
+ esbuild-windows-64@0.15.18:
+ optional: true
+
+ esbuild-windows-arm64@0.15.18:
+ optional: true
+
+ esbuild@0.15.18:
+ optionalDependencies:
+ '@esbuild/android-arm': 0.15.18
+ '@esbuild/linux-loong64': 0.15.18
+ esbuild-android-64: 0.15.18
+ esbuild-android-arm64: 0.15.18
+ esbuild-darwin-64: 0.15.18
+ esbuild-darwin-arm64: 0.15.18
+ esbuild-freebsd-64: 0.15.18
+ esbuild-freebsd-arm64: 0.15.18
+ esbuild-linux-32: 0.15.18
+ esbuild-linux-64: 0.15.18
+ esbuild-linux-arm: 0.15.18
+ esbuild-linux-arm64: 0.15.18
+ esbuild-linux-mips64le: 0.15.18
+ esbuild-linux-ppc64le: 0.15.18
+ esbuild-linux-riscv64: 0.15.18
+ esbuild-linux-s390x: 0.15.18
+ esbuild-netbsd-64: 0.15.18
+ esbuild-openbsd-64: 0.15.18
+ esbuild-sunos-64: 0.15.18
+ esbuild-windows-32: 0.15.18
+ esbuild-windows-64: 0.15.18
+ esbuild-windows-arm64: 0.15.18
+
esbuild@0.17.18:
optionalDependencies:
'@esbuild/android-arm': 0.17.18
@@ -3623,59 +3402,6 @@ snapshots:
'@esbuild/win32-ia32': 0.17.18
'@esbuild/win32-x64': 0.17.18
- esbuild@0.21.5:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.21.5
- '@esbuild/android-arm': 0.21.5
- '@esbuild/android-arm64': 0.21.5
- '@esbuild/android-x64': 0.21.5
- '@esbuild/darwin-arm64': 0.21.5
- '@esbuild/darwin-x64': 0.21.5
- '@esbuild/freebsd-arm64': 0.21.5
- '@esbuild/freebsd-x64': 0.21.5
- '@esbuild/linux-arm': 0.21.5
- '@esbuild/linux-arm64': 0.21.5
- '@esbuild/linux-ia32': 0.21.5
- '@esbuild/linux-loong64': 0.21.5
- '@esbuild/linux-mips64el': 0.21.5
- '@esbuild/linux-ppc64': 0.21.5
- '@esbuild/linux-riscv64': 0.21.5
- '@esbuild/linux-s390x': 0.21.5
- '@esbuild/linux-x64': 0.21.5
- '@esbuild/netbsd-x64': 0.21.5
- '@esbuild/openbsd-x64': 0.21.5
- '@esbuild/sunos-x64': 0.21.5
- '@esbuild/win32-arm64': 0.21.5
- '@esbuild/win32-ia32': 0.21.5
- '@esbuild/win32-x64': 0.21.5
-
- esbuild@0.23.0:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.23.0
- '@esbuild/android-arm': 0.23.0
- '@esbuild/android-arm64': 0.23.0
- '@esbuild/android-x64': 0.23.0
- '@esbuild/darwin-arm64': 0.23.0
- '@esbuild/darwin-x64': 0.23.0
- '@esbuild/freebsd-arm64': 0.23.0
- '@esbuild/freebsd-x64': 0.23.0
- '@esbuild/linux-arm': 0.23.0
- '@esbuild/linux-arm64': 0.23.0
- '@esbuild/linux-ia32': 0.23.0
- '@esbuild/linux-loong64': 0.23.0
- '@esbuild/linux-mips64el': 0.23.0
- '@esbuild/linux-ppc64': 0.23.0
- '@esbuild/linux-riscv64': 0.23.0
- '@esbuild/linux-s390x': 0.23.0
- '@esbuild/linux-x64': 0.23.0
- '@esbuild/netbsd-x64': 0.23.0
- '@esbuild/openbsd-arm64': 0.23.0
- '@esbuild/openbsd-x64': 0.23.0
- '@esbuild/sunos-x64': 0.23.0
- '@esbuild/win32-arm64': 0.23.0
- '@esbuild/win32-ia32': 0.23.0
- '@esbuild/win32-x64': 0.23.0
-
escalade@3.1.2: {}
escape-string-regexp@1.0.5: {}
@@ -3937,9 +3663,6 @@ snapshots:
fsevents@2.3.2:
optional: true
- fsevents@2.3.3:
- optional: true
-
function-bind@1.1.2: {}
function.prototype.name@1.1.6:
@@ -3973,10 +3696,6 @@ snapshots:
get-tsconfig@4.5.0: {}
- get-tsconfig@4.7.6:
- dependencies:
- resolve-pkg-maps: 1.0.0
-
get-uri@6.0.3:
dependencies:
basic-ftp: 5.0.5
@@ -4552,8 +4271,6 @@ snapshots:
resolve-from@5.0.0: {}
- resolve-pkg-maps@1.0.0: {}
-
resolve@1.22.8:
dependencies:
is-core-module: 2.15.0
@@ -4850,13 +4567,6 @@ snapshots:
optionalDependencies:
fsevents: 2.3.2
- tsx@4.16.5:
- dependencies:
- esbuild: 0.21.5
- get-tsconfig: 4.7.6
- optionalDependencies:
- fsevents: 2.3.3
-
type-check@0.4.0:
dependencies:
prelude-ls: 1.2.1
diff --git a/scripts/build/build.mts b/scripts/build/build.mjs
similarity index 81%
rename from scripts/build/build.mts
rename to scripts/build/build.mjs
index cc74f0e7..0258604e 100644
--- a/scripts/build/build.mts
+++ b/scripts/build/build.mjs
@@ -17,13 +17,13 @@
* along with this program. If not, see .
*/
+import esbuild from "esbuild";
import { createPackage } from "@electron/asar";
-import { BuildOptions, Plugin } from "esbuild";
-import { existsSync, readdirSync } from "fs";
-import { readdir, rm, writeFile } from "fs/promises";
-import { join } from "path";
+import { readdir, writeFile } from "fs/promises";
+import { dirname, join } from "path";
+import { fileURLToPath } from "url";
-import { addBuild, BUILD_TIMESTAMP, buildOrWatchAll, commonOpts, exists, globPlugins, IS_DEV, IS_REPORTER, IS_STANDALONE, IS_UPDATER_DISABLED, resolvePluginName, VERSION, watch } from "./common.mjs";
+import { BUILD_TIMESTAMP, commonOpts, exists, globPlugins, IS_DEV, IS_REPORTER, IS_STANDALONE, IS_UPDATER_DISABLED, resolvePluginName, VERSION, watch } from "./common.mjs";
const defines = {
IS_STANDALONE: String(IS_STANDALONE),
@@ -41,6 +41,9 @@ if (defines.IS_STANDALONE === "false")
// for the specific platform we're on
defines["process.platform"] = JSON.stringify(process.platform);
+/**
+ * @type {esbuild.BuildOptions}
+ */
const nodeCommonOpts = {
...commonOpts,
format: "cjs",
@@ -48,12 +51,15 @@ const nodeCommonOpts = {
target: ["esnext"],
external: ["electron", "original-fs", "~pluginNatives", ...commonOpts.external],
define: defines
-} satisfies BuildOptions;
+};
-const sourceMapFooter = (s: string) => watch ? "" : `//# sourceMappingURL=vencord://${s}.js.map`;
+const sourceMapFooter = s => watch ? "" : `//# sourceMappingURL=vencord://${s}.js.map`;
const sourcemap = watch ? "inline" : "external";
-const globNativesPlugin: Plugin = {
+/**
+ * @type {import("esbuild").Plugin}
+ */
+const globNativesPlugin = {
name: "glob-natives-plugin",
setup: build => {
const filter = /^~pluginNatives$/;
@@ -100,9 +106,9 @@ const globNativesPlugin: Plugin = {
await Promise.all([
// Discord Desktop main & renderer & preload
- addBuild({
+ esbuild.build({
...nodeCommonOpts,
- entryPoints: ["src/main/index.ts"],
+ entryPoints: [join(dirname(fileURLToPath(import.meta.url)), "../../src/main/index.ts")],
outfile: "dist/desktop/patcher.js",
footer: { js: "//# sourceURL=VencordPatcher\n" + sourceMapFooter("patcher") },
sourcemap,
@@ -117,9 +123,9 @@ await Promise.all([
globNativesPlugin
]
}),
- addBuild({
+ esbuild.build({
...commonOpts,
- entryPoints: ["src/Vencord.ts"],
+ entryPoints: [join(dirname(fileURLToPath(import.meta.url)), "../../src/Vencord.ts")],
outfile: "dist/desktop/renderer.js",
format: "iife",
target: ["esnext"],
@@ -137,9 +143,9 @@ await Promise.all([
IS_EQUIBOP: "false"
}
}),
- addBuild({
+ esbuild.build({
...nodeCommonOpts,
- entryPoints: ["src/preload.ts"],
+ entryPoints: [join(dirname(fileURLToPath(import.meta.url)), "../../src/preload.ts")],
outfile: "dist/desktop/preload.js",
footer: { js: "//# sourceURL=VencordPreload\n" + sourceMapFooter("preload") },
sourcemap,
@@ -152,9 +158,9 @@ await Promise.all([
}),
// Vencord Desktop main & renderer & preload
- addBuild({
+ esbuild.build({
...nodeCommonOpts,
- entryPoints: ["src/main/index.ts"],
+ entryPoints: [join(dirname(fileURLToPath(import.meta.url)), "../../src/main/index.ts")],
outfile: "dist/vesktop/main.js",
footer: { js: "//# sourceURL=VencordMain\n" + sourceMapFooter("main") },
sourcemap,
@@ -169,10 +175,10 @@ await Promise.all([
globNativesPlugin
]
}),
- addBuild({
+ esbuild.build({
...commonOpts,
- entryPoints: ["src/Vencord.ts"],
- outfile: "dist/vesktop/renderer.js",
+ entryPoints: [join(dirname(fileURLToPath(import.meta.url)), "../../src/Vencord.ts")],
+ outfile: "dist/vencordDesktopRenderer.js",
format: "iife",
target: ["esnext"],
footer: { js: "//# sourceURL=VencordRenderer\n" + sourceMapFooter("renderer") },
@@ -189,9 +195,9 @@ await Promise.all([
IS_EQUIBOP: "false"
}
}),
- addBuild({
+ esbuild.build({
...nodeCommonOpts,
- entryPoints: ["src/preload.ts"],
+ entryPoints: [join(dirname(fileURLToPath(import.meta.url)), "../../src/preload.ts")],
outfile: "dist/vesktop/preload.js",
footer: { js: "//# sourceURL=VencordPreload\n" + sourceMapFooter("preload") },
sourcemap,
@@ -204,9 +210,9 @@ await Promise.all([
}),
// Equicord Desktop main & renderer & preload
- addBuild({
+ esbuild.build({
...nodeCommonOpts,
- entryPoints: ["src/main/index.ts"],
+ entryPoints: [join(dirname(fileURLToPath(import.meta.url)), "../../src/main/index.ts")],
outfile: "dist/equibop/main.js",
footer: { js: "//# sourceURL=EquicordMain\n" + sourceMapFooter("main") },
sourcemap,
@@ -221,9 +227,9 @@ await Promise.all([
globNativesPlugin
]
}),
- addBuild({
+ esbuild.build({
...commonOpts,
- entryPoints: ["src/Vencord.ts"],
+ entryPoints: [join(dirname(fileURLToPath(import.meta.url)), "../../src/Vencord.ts")],
outfile: "dist/equibop/renderer.js",
format: "iife",
target: ["esnext"],
@@ -241,9 +247,9 @@ await Promise.all([
IS_EQUIBOP: "true"
}
}),
- addBuild({
+ esbuild.build({
...nodeCommonOpts,
- entryPoints: ["src/preload.ts"],
+ entryPoints: [join(dirname(fileURLToPath(import.meta.url)), "../../src/preload.ts")],
outfile: "dist/equibop/preload.js",
footer: { js: "//# sourceURL=EquicordPreload\n" + sourceMapFooter("preload") },
sourcemap,
@@ -254,9 +260,13 @@ await Promise.all([
IS_EQUIBOP: "true"
}
}),
-]);
-
-await buildOrWatchAll();
+]).catch(err => {
+ console.error("Build failed");
+ console.error(err.message);
+ // make ci fail
+ if (!commonOpts.watch)
+ process.exitCode = 1;
+});
await Promise.all([
writeFile("dist/desktop/package.json", JSON.stringify({
@@ -278,24 +288,3 @@ await Promise.all([
createPackage("dist/equibop", "dist/equibop.asar"),
createPackage("dist/vesktop", "dist/vesktop.asar")
]);
-
-
-if (existsSync("dist/renderer.js")) {
- console.warn("Legacy dist folder. Cleaning up and adding shims.");
-
- await Promise.all(
- readdirSync("dist")
- .filter(f =>
- f.endsWith(".map") ||
- f.endsWith(".LEGAL.txt") ||
- ["patcher", "preload", "renderer"].some(name => f.startsWith(name))
- )
- .map(file => rm(join("dist", file)))
- );
-
- await Promise.all([
- writeFile("dist/patcher.js", 'require("./desktop")'),
- writeFile("dist/equicordDesktopMain.js", 'require("./equibop")'),
- writeFile("dist/vencordDesktopMain.js", 'require("./vesktop")')
- ]);
-}
diff --git a/scripts/build/buildWeb.mts b/scripts/build/buildWeb.mjs
similarity index 87%
rename from scripts/build/buildWeb.mts
rename to scripts/build/buildWeb.mjs
index 8f1b33ef..ede910a6 100644
--- a/scripts/build/buildWeb.mts
+++ b/scripts/build/buildWeb.mjs
@@ -23,12 +23,12 @@ import { appendFile, mkdir, readdir, readFile, rm, writeFile } from "fs/promises
import { join } from "path";
import Zip from "zip-local";
-import { addBuild, BUILD_TIMESTAMP, buildOrWatchAll, commonOpts, globPlugins, IS_DEV, IS_REPORTER, VERSION } from "./common.mjs";
+import { BUILD_TIMESTAMP, commonOpts, globPlugins, IS_DEV, IS_REPORTER, VERSION } from "./common.mjs";
/**
* @type {esbuild.BuildOptions}
*/
-const commonOptions: esbuild.BuildOptions = {
+const commonOptions = {
...commonOpts,
entryPoints: ["browser/Vencord.ts"],
globalName: "Vencord",
@@ -68,7 +68,7 @@ const RnNoiseFiles = [
await Promise.all(
[
- addBuild({
+ esbuild.build({
entryPoints: MonacoWorkerEntryPoints.map(entry => `node_modules/monaco-editor/esm/${entry}`),
bundle: true,
minify: true,
@@ -76,7 +76,7 @@ await Promise.all(
outbase: "node_modules/monaco-editor/esm/",
outdir: "dist/browser/monaco"
}),
- addBuild({
+ esbuild.build({
entryPoints: ["browser/monaco.ts"],
bundle: true,
minify: true,
@@ -86,12 +86,12 @@ await Promise.all(
".ttf": "file"
}
}),
- addBuild({
+ esbuild.build({
...commonOptions,
outfile: "dist/browser/browser.js",
footer: { js: "//# sourceURL=VencordWeb" }
}),
- addBuild({
+ esbuild.build({
...commonOptions,
outfile: "dist/browser/extension.js",
define: {
@@ -100,7 +100,7 @@ await Promise.all(
},
footer: { js: "//# sourceURL=VencordWeb" }
}),
- addBuild({
+ esbuild.build({
...commonOptions,
inject: ["browser/GMPolyfill.js", ...(commonOptions?.inject || [])],
define: {
@@ -119,10 +119,11 @@ await Promise.all(
]
);
-await buildOrWatchAll();
-
-async function globDir(dir: string): Promise {
- const files = [] as string[];
+/**
+ * @type {(dir: string) => Promise}
+ */
+async function globDir(dir) {
+ const files = [];
for (const child of await readdir(dir, { withFileTypes: true })) {
const p = join(dir, child.name);
@@ -135,23 +136,34 @@ async function globDir(dir: string): Promise {
return files;
}
-async function loadDir(dir: string, basePath = "") {
+/**
+ * @type {(dir: string, basePath?: string) => Promise>}
+ */
+async function loadDir(dir, basePath = "") {
const files = await globDir(dir);
- return Object.fromEntries(await Promise.all(files.map(async f =>
- [f.slice(basePath.length), await readFile(f)] as const
- )));
+ return Object.fromEntries(
+ await Promise.all(
+ files.map(
+ async f =>
+ [f.slice(basePath.length), await readFile(f)]
+ )
+ )
+ );
}
-async function buildExtension(target: string, files: string[]): Promise {
- const entries: Record = {
+/**
+ * @type {(target: string, files: string[]) => Promise}
+ */
+async function buildExtension(target, files) {
+ const entries = {
"dist/Vencord.js": await readFile("dist/browser/extension.js"),
"dist/Vencord.css": await readFile("dist/browser/extension.css"),
...await loadDir("dist/browser/monaco"),
...Object.fromEntries(await Promise.all(RnNoiseFiles.map(async file =>
- [`third-party/rnnoise/${file.replace(/^dist\//, "")}`, await readFile(`node_modules/@sapphi-red/web-noise-suppressor/${file}`)] as const
+ [`third-party/rnnoise/${file.replace(/^dist\//, "")}`, await readFile(`node_modules/@sapphi-red/web-noise-suppressor/${file}`)]
))),
...Object.fromEntries(await Promise.all(files.map(async f => {
- let content: Uint8Array | Buffer = await readFile(join("browser", f));
+ let content = await readFile(join("browser", f));
if (f.startsWith("manifest")) {
const json = JSON.parse(content.toString("utf-8"));
json.version = VERSION;
@@ -161,7 +173,7 @@ async function buildExtension(target: string, files: string[]): Promise {
return [
f.startsWith("manifest") ? "manifest.json" : f,
content
- ] as const;
+ ];
})))
};
diff --git a/scripts/build/common.mts b/scripts/build/common.mjs
similarity index 85%
rename from scripts/build/common.mts
rename to scripts/build/common.mjs
index 334b356a..4df03885 100644
--- a/scripts/build/common.mts
+++ b/scripts/build/common.mjs
@@ -20,16 +20,17 @@ import "../suppressExperimentalWarnings.js";
import "../checkNodeVersion.js";
import { exec, execSync } from "child_process";
-import esbuild, { build, BuildOptions, context, Plugin } from "esbuild";
+import esbuild from "esbuild";
import { constants as FsConstants, readFileSync } from "fs";
import { access, readdir, readFile } from "fs/promises";
import { minify as minifyHtml } from "html-minifier-terser";
-import { join, relative } from "path";
+import { dirname, join, relative } from "path";
+import { fileURLToPath } from "url";
import { promisify } from "util";
import { getPluginTarget } from "../utils.mjs";
-const PackageJSON: typeof import("../../package.json") = JSON.parse(readFileSync("package.json", "utf-8"));
+const PackageJSON = JSON.parse(readFileSync(join(dirname(fileURLToPath(import.meta.url)), "../../package.json")));
export const VERSION = PackageJSON.version;
// https://reproducible-builds.org/docs/source-date-epoch/
@@ -53,8 +54,11 @@ export const banner = {
};
const PluginDefinitionNameMatcher = /definePlugin\(\{\s*(["'])?name\1:\s*(["'`])(.+?)\2/;
-
-export async function resolvePluginName(base: string, dirent: import("fs").Dirent) {
+/**
+ * @param {string} base
+ * @param {import("fs").Dirent} dirent
+ */
+export async function resolvePluginName(base, dirent) {
const fullPath = join(base, dirent.name);
const content = dirent.isFile()
? await readFile(fullPath, "utf-8")
@@ -75,13 +79,28 @@ export async function resolvePluginName(base: string, dirent: import("fs").Diren
})();
}
-export async function exists(path: string) {
+export async function exists(path) {
return await access(path, FsConstants.F_OK)
.then(() => true)
.catch(() => false);
}
-export const globPlugins: (kind: "web" | "discordDesktop" | "vencordDesktop" | "equicordDesktop") => Plugin = kind => ({
+// https://github.com/evanw/esbuild/issues/619#issuecomment-751995294
+/**
+ * @type {import("esbuild").Plugin}
+ */
+export const makeAllPackagesExternalPlugin = {
+ name: "make-all-packages-external",
+ setup(build) {
+ const filter = /^[^./]|^\.[^./]|^\.\.[^/]/; // Must not start with "/" or "./" or "../"
+ build.onResolve({ filter }, args => ({ path: args.path, external: true }));
+ }
+};
+
+/**
+ * @type {(kind: "web" | "discordDesktop" | "vencordDesktop" | "equicordDesktop") => import("esbuild").Plugin}
+ */
+export const globPlugins = kind => ({
name: "glob-plugins",
setup: build => {
const filter = /^~plugins$/;
@@ -146,7 +165,10 @@ export const globPlugins: (kind: "web" | "discordDesktop" | "vencordDesktop" | "
}
});
-export const gitHashPlugin: Plugin = {
+/**
+ * @type {import("esbuild").Plugin}
+ */
+export const gitHashPlugin = {
name: "git-hash-plugin",
setup: build => {
const filter = /^~git-hash$/;
@@ -159,7 +181,10 @@ export const gitHashPlugin: Plugin = {
}
};
-export const gitRemotePlugin: Plugin = {
+/**
+ * @type {import("esbuild").Plugin}
+ */
+export const gitRemotePlugin = {
name: "git-remote-plugin",
setup: build => {
const filter = /^~git-remote$/;
@@ -181,7 +206,10 @@ export const gitRemotePlugin: Plugin = {
}
};
-export const fileUrlPlugin: Plugin = {
+/**
+ * @type {import("esbuild").Plugin}
+ */
+export const fileUrlPlugin = {
name: "file-uri-plugin",
setup: build => {
const filter = /^file:\/\/.+$/;
@@ -201,7 +229,7 @@ export const fileUrlPlugin: Plugin = {
const encoding = base64 ? "base64" : "utf-8";
- let content: string;
+ let content;
if (!minify) {
content = await readFile(path, encoding);
if (!noTrim) content = content.trimEnd();
@@ -240,8 +268,12 @@ export const fileUrlPlugin: Plugin = {
}
};
-const styleModule = readFileSync("./scripts/build/module/style.js", "utf-8");
-export const stylePlugin: Plugin = {
+const styleModule = readFileSync(join(dirname(fileURLToPath(import.meta.url)), "module/style.js"), "utf-8");
+
+/**
+ * @type {import("esbuild").Plugin}
+ */
+export const stylePlugin = {
name: "style-plugin",
setup: ({ onResolve, onLoad }) => {
onResolve({ filter: /\.css\?managed$/, namespace: "file" }, ({ path, resolveDir }) => ({
@@ -262,43 +294,23 @@ export const stylePlugin: Plugin = {
}
};
+/**
+ * @type {import("esbuild").BuildOptions}
+ */
export const commonOpts = {
logLevel: "info",
bundle: true,
+ watch,
minify: !watch,
- sourcemap: watch ? "inline" : "external",
+ sourcemap: watch ? "inline" : "",
legalComments: "linked",
banner,
plugins: [fileUrlPlugin, gitHashPlugin, gitRemotePlugin, stylePlugin],
external: ["~plugins", "~git-hash", "~git-remote", "/assets/*"],
- inject: ["./scripts/build/inject/react.mjs"],
+ inject: [join(dirname(fileURLToPath(import.meta.url)), "inject/react.mjs")],
jsxFactory: "VencordCreateElement",
jsxFragment: "VencordFragment",
- jsx: "transform"
-} satisfies BuildOptions;
-
-
-const builds = [] as BuildOptions[];
-export function addBuild(options: BuildOptions) {
- builds.push(options);
-}
-
-export async function buildOrWatchAll() {
- if (watch) {
- const contexts = await Promise.all(builds.map(context));
- await Promise.all(contexts.map(ctx => ctx.watch()));
- } else {
- try {
- await Promise.all(builds.map(build));
- } catch (err) {
- const reason = err instanceof Error
- ? err.message
- : err;
-
- console.error("Build failed");
- console.error(reason);
- // make ci fail
- process.exitCode = 1;
- }
- }
-}
+ jsx: "transform",
+ // Work around https://github.com/evanw/esbuild/issues/2460
+ tsconfig: join(dirname(fileURLToPath(import.meta.url)), "tsconfig.esbuild.json")
+};
diff --git a/scripts/build/tsconfig.esbuild.json b/scripts/build/tsconfig.esbuild.json
new file mode 100644
index 00000000..e3e28a14
--- /dev/null
+++ b/scripts/build/tsconfig.esbuild.json
@@ -0,0 +1,7 @@
+// Work around https://github.com/evanw/esbuild/issues/2460
+{
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "jsx": "react"
+ }
+}
diff --git a/scripts/utils.mts b/scripts/utils.mjs
similarity index 79%
rename from scripts/utils.mts
rename to scripts/utils.mjs
index 2027bed2..5b84c987 100644
--- a/scripts/utils.mts
+++ b/scripts/utils.mjs
@@ -16,11 +16,15 @@
* along with this program. If not, see .
*/
-export function getPluginTarget(filePath: string) {
+/**
+ * @param {string} filePath
+ * @returns {string | null}
+ */
+export function getPluginTarget(filePath) {
const pathParts = filePath.split(/[/\\]/);
- if (/^index\.tsx?$/.test(pathParts.at(-1)!)) pathParts.pop();
+ if (/^index\.tsx?$/.test(pathParts.at(-1))) pathParts.pop();
- const identifier = pathParts.at(-1)!.replace(/\.tsx?$/, "");
+ const identifier = pathParts.at(-1).replace(/\.tsx?$/, "");
const identiferBits = identifier.split(".");
return identiferBits.length === 1 ? null : identiferBits.at(-1);
}
diff --git a/src/api/Commands/index.ts b/src/api/Commands/index.ts
index 147f720a..d069b5f0 100644
--- a/src/api/Commands/index.ts
+++ b/src/api/Commands/index.ts
@@ -138,6 +138,8 @@ export function registerCommand(command: C, plugin: string) {
throw new Error(`Command '${command.name}' already exists.`);
command.isVencordCommand = true;
+ command.untranslatedName ??= command.name;
+ command.untranslatedDescription ??= command.description;
command.id ??= `-${BUILT_IN.length + 1}`;
command.applicationId ??= "-1"; // BUILT_IN;
command.type ??= ApplicationCommandType.CHAT_INPUT;
diff --git a/src/api/Commands/types.ts b/src/api/Commands/types.ts
index bd349e25..70b73775 100644
--- a/src/api/Commands/types.ts
+++ b/src/api/Commands/types.ts
@@ -93,8 +93,10 @@ export interface Command {
isVencordCommand?: boolean;
name: string;
+ untranslatedName?: string;
displayName?: string;
description: string;
+ untranslatedDescription?: string;
displayDescription?: string;
options?: Option[];
diff --git a/src/equicordplugins/allCallTimers/index.tsx b/src/equicordplugins/allCallTimers/index.tsx
index d78b1242..88d83b4e 100644
--- a/src/equicordplugins/allCallTimers/index.tsx
+++ b/src/equicordplugins/allCallTimers/index.tsx
@@ -103,7 +103,6 @@ export default definePlugin({
description: "Add call timer to all users in a server voice channel.",
authors: [EquicordDevs.MaxHerbold, Devs.D3SOX],
settings,
-
patches: [
{
find: "renderPrioritySpeaker",
diff --git a/src/equicordplugins/questCompleter/index.tsx b/src/equicordplugins/questCompleter/index.tsx
index 24f08ba2..2c167bfb 100644
--- a/src/equicordplugins/questCompleter/index.tsx
+++ b/src/equicordplugins/questCompleter/index.tsx
@@ -76,7 +76,6 @@ function ToolBarHeader() {
}
async function openCompleteQuestUI() {
- // check if user is sharing screen and there is someone that is watching the stream
const ApplicationStreamingStore = findByProps("getStreamerActiveStreamMetadata");
const RunningGameStore = findByProps("getRunningGames");
const ExperimentStore = findByProps("getGuildExperiments");
diff --git a/src/main/updater/git.ts b/src/main/updater/git.ts
index 909abe0e..909f2b9d 100644
--- a/src/main/updater/git.ts
+++ b/src/main/updater/git.ts
@@ -25,6 +25,7 @@ import { promisify } from "util";
import { serializeErrors } from "./common";
const VENCORD_SRC_DIR = join(__dirname, "..");
+const EQUICORD_DIR = join(__dirname, "../../");
const execFile = promisify(cpExecFile);
@@ -72,14 +73,16 @@ async function pull() {
}
async function build() {
- const opts = { cwd: VENCORD_SRC_DIR };
+ const opts = { cwd: EQUICORD_DIR };
const command = isFlatpak ? "flatpak-spawn" : "node";
- const args = isFlatpak ? ["--host", "node", "../scripts/build/build.mts"] : ["../scripts/build/build.mts"];
+ const args = isFlatpak ? ["--host", "node", "scripts/build/build.mjs"] : ["scripts/build/build.mjs"];
if (IS_DEV) args.push("--dev");
const res = await execFile(command, args, opts);
+ console.log(res);
+ console.log(`\n\n\n\n\n${res.stderr}`);
return !res.stderr.includes("Build failed");
}