From d6685cb389b63ee562034c06c558a92254f58246 Mon Sep 17 00:00:00 2001 From: Tweenty Date: Tue, 14 Jul 2026 18:51:06 +0200 Subject: [PATCH 01/10] feat: use TS7 --- package.json | 22 +- pnpm-lock.yaml | 1064 +++++++++++++++++++++++++++++++----------------- 2 files changed, 704 insertions(+), 382 deletions(-) diff --git a/package.json b/package.json index 03eaadf..f3dc3a0 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "description": "A framework for simplifying the creation of discord bots", "author": "Tweenty_", "license": "ISC", - "packageManager": "pnpm@11.8.0", + "packageManager": "pnpm@11.13.0", "engines": { "node": ">=24.0.0" }, @@ -36,24 +36,24 @@ "format": "prettier --write ./src/**/*.ts" }, "peerDependencies": { - "discord.js": "^14.26.4", - "i18next": "26.3.1" + "discord.js": "^14.26.5", + "i18next": "26.3.6" }, "dependencies": { "log-symbols": "^7.0.1" }, "devDependencies": { "@eslint/js": "^10.0.1", - "discord.js": "^14.26.4", - "eslint": "^10.5.0", + "discord.js": "^14.26.5", + "eslint": "^10.7.0", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-typescript": "^4.4.5", - "eslint-plugin-import-x": "^4.16.2", - "globals": "^17.6.0", + "eslint-plugin-import-x": "^4.17.1", + "globals": "^17.7.0", "jiti": "^2.7.0", - "prettier": "^3.8.4", - "tsdown": "^0.22.3", - "typescript": "^6.0.3", - "typescript-eslint": "^8.61.1" + "prettier": "^3.9.5", + "tsdown": "^0.22.7", + "typescript": "^7.0.2", + "typescript-eslint": "^8.64.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8df2eff..2c43d63 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,72 +9,51 @@ importers: .: dependencies: i18next: - specifier: 26.3.1 - version: 26.3.1(typescript@6.0.3) + specifier: 26.3.6 + version: 26.3.6(typescript@7.0.2) log-symbols: specifier: ^7.0.1 version: 7.0.1 devDependencies: '@eslint/js': specifier: ^10.0.1 - version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + version: 10.0.1(eslint@10.7.0(jiti@2.7.0)) discord.js: - specifier: ^14.26.4 - version: 14.26.4 + specifier: ^14.26.5 + version: 14.26.5 eslint: - specifier: ^10.5.0 - version: 10.5.0(jiti@2.7.0) + specifier: ^10.7.0 + version: 10.7.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) + version: 10.1.8(eslint@10.7.0(jiti@2.7.0)) eslint-import-resolver-typescript: specifier: ^4.4.5 - version: 4.4.5(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0)) + version: 4.4.5(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)))(eslint@10.7.0(jiti@2.7.0)) eslint-plugin-import-x: - specifier: ^4.16.2 - version: 4.16.2(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0)) + specifier: ^4.17.1 + version: 4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)) globals: - specifier: ^17.6.0 - version: 17.6.0 + specifier: ^17.7.0 + version: 17.7.0 jiti: specifier: ^2.7.0 version: 2.7.0 prettier: - specifier: ^3.8.4 - version: 3.8.4 + specifier: ^3.9.5 + version: 3.9.5 tsdown: - specifier: ^0.22.3 - version: 0.22.3(typescript@6.0.3) + specifier: ^0.22.7 + version: 0.22.7(typescript@7.0.2) typescript: - specifier: ^6.0.3 - version: 6.0.3 + specifier: ^7.0.2 + version: 7.0.2 typescript-eslint: - specifier: ^8.61.1 - version: 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + specifier: ^8.64.0 + version: 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) packages: - '@babel/generator@8.0.0': - resolution: {integrity: sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==} - engines: {node: ^22.18.0 || >=24.11.0} - - '@babel/helper-string-parser@8.0.0': - resolution: {integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==} - engines: {node: ^22.18.0 || >=24.11.0} - - '@babel/helper-validator-identifier@8.0.2': - resolution: {integrity: sha512-9Fr9QeyCAyi1BR1jKZ6uYQ24EIhQUx5ReHfQU7drOE+TPOb+w11/dsqLkMOT2U29OdCT71XajrOT8xDc1C7orA==} - engines: {node: ^22.18.0 || >=24.11.0} - - '@babel/parser@8.0.0': - resolution: {integrity: sha512-aLxAE+imI9bCcyaPrUDjBv3uSkWieifjLe0kuFOZF0zli0L6GCsTmsePnTr55adbIAgYz2zhN1vnFimCBUYcRQ==} - engines: {node: ^22.18.0 || >=24.11.0} - hasBin: true - - '@babel/types@8.0.0': - resolution: {integrity: sha512-K8ponJDxBwDHigkeFqaqT5wLGl4bTlwMafR8k7b5CPxr6Ww+UG9ls8Yx6Tcpboxu97eeGVEEyKcHmEyOwN1vSw==} - engines: {node: ^22.18.0 || >=24.11.0} - '@discordjs/builders@1.14.1': resolution: {integrity: sha512-gSKkhXLqs96TCzk66VZuHHl8z2bQMJFGwrXC0f33ngK+FLNau4hU1PYny3DNJfNdSH+gVMzE85/d5FQ2BpcNwQ==} engines: {node: '>=16.11.0'} @@ -180,125 +159,109 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - - '@napi-rs/wasm-runtime@1.1.5': - resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==} + '@napi-rs/wasm-runtime@1.1.6': + resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@oxc-project/types@0.137.0': - resolution: {integrity: sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA==} - - '@package-json/types@0.0.12': - resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} + '@oxc-project/types@0.139.0': + resolution: {integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==} '@quansync/fs@1.0.0': resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} - '@rolldown/binding-android-arm64@1.1.2': - resolution: {integrity: sha512-2cZ+7xRS+DBcuJBJKnfzsbleumJhBqSlJVpuzHC0nTqfd3QQ7Vx2/x5YR/D7cBamKSeWplwo82Fn9lqYUDEMfA==} + '@rolldown/binding-android-arm64@1.1.5': + resolution: {integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.1.2': - resolution: {integrity: sha512-RkPMJnygxsgOYdkfqgpwY0/Fzm8d0VQe6HGU2/B00Xa9eqdLbrII+DOKAodbJAn3ZL1AJxGHkZRPYazgGY6Ljw==} + '@rolldown/binding-darwin-arm64@1.1.5': + resolution: {integrity: sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.1.2': - resolution: {integrity: sha512-Uiczh6vFhwyfd7WNe7Q7mCA4KxAiLdz7jPE/WGizfRpIieoyFuNVMmM8HqZ9HwudTkY6/AeMQwlNJ9NJijguWw==} + '@rolldown/binding-darwin-x64@1.1.5': + resolution: {integrity: sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.1.2': - resolution: {integrity: sha512-+TpdtTRgHiJFjCVFbw311SuLk3KfytPOQQn+VlAEv+gBxYPtL7E6JS9e/tk+8CwxhIZvemJKo4rTKgfWNsKkkA==} + '@rolldown/binding-freebsd-x64@1.1.5': + resolution: {integrity: sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.1.2': - resolution: {integrity: sha512-4lv1/tkmi7ueIVHnyreaOeUpiZP26BH9rRy6hoYfR9310A2B9nUEVRDvBx69vx64Nr3eTPPRkyciqJJs+j9Jmw==} + '@rolldown/binding-linux-arm-gnueabihf@1.1.5': + resolution: {integrity: sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.1.2': - resolution: {integrity: sha512-gBSUVO0eaWgw1JMjK3gB8BMlX2Mk148s2lTiVT3e9vjVxbl7UDfMWWY8CfIaaqiXuM9fVTMxIpUz6CAo/B6Vlw==} + '@rolldown/binding-linux-arm64-gnu@1.1.5': + resolution: {integrity: sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.1.2': - resolution: {integrity: sha512-LjQP/iZLBu8o8PjIfk4x3At0/mT6h282pvz8Z5LAyhGbu/kDezyO7ea62rF5uoqmgnIYqbN/MqJ3Si3Aymi7xQ==} + '@rolldown/binding-linux-arm64-musl@1.1.5': + resolution: {integrity: sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.1.2': - resolution: {integrity: sha512-X/7bVLWelEsbyWDUSXt7zVsTniLLPIY2n1rH58qr78l9i7MNbbxBWD8gI2vRfBWf4NUXJCUuQnfZDsp32LqsfQ==} + '@rolldown/binding-linux-ppc64-gnu@1.1.5': + resolution: {integrity: sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.1.2': - resolution: {integrity: sha512-gb6dYKW/1KDorGXyy48glEBJs/sxVSC5pcVrox/pFGV4mvwSFeg2sK5L2tRkVsVlh7kueqOgg4GEcuipJcGuKg==} + '@rolldown/binding-linux-s390x-gnu@1.1.5': + resolution: {integrity: sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.1.2': - resolution: {integrity: sha512-JY4w85pU3iAiJVMh5nuk4/Mh9GjMsupe8MrIN53rwxAZW64GKrWeJBuN6SxQg9QTU5uB1cxyhDzW8jqRn1EABw==} + '@rolldown/binding-linux-x64-gnu@1.1.5': + resolution: {integrity: sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.1.2': - resolution: {integrity: sha512-xvpA7o5KCYLB0Rwscmuylb1/zHHSUx4g4xilm4prC5jP76pEUlzBmMbgpbh7bVDbId4NcfT96gN5i6mE6UDaiw==} + '@rolldown/binding-linux-x64-musl@1.1.5': + resolution: {integrity: sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.1.2': - resolution: {integrity: sha512-p/ts6KBLjuk49Bp21XH77poQGt02iNz7ChgHep7tudPOaLinR/De/RHdxF8w8Yj4r/bF/bqXwH6PZrB2sA+Nvw==} + '@rolldown/binding-openharmony-arm64@1.1.5': + resolution: {integrity: sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.1.2': - resolution: {integrity: sha512-VMu/wmrZ9hJzYlRhbw7jK5PODlugyKZ5mOdX78+lS8OvuFkWNQdz1pFLrI2p3P0pjXOmUZ7B48o5VnMH9QOGtg==} + '@rolldown/binding-wasm32-wasi@1.1.5': + resolution: {integrity: sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.1.2': - resolution: {integrity: sha512-xtUJqs8qEkuSviS0n1tsohaPuz3a1SPhZywOji4Oo+sgrJs8daEDMZ0QtqL0OS7dx8PoVpg2J/ZZycPY5I2+Zg==} + '@rolldown/binding-win32-arm64-msvc@1.1.5': + resolution: {integrity: sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.1.2': - resolution: {integrity: sha512-85YiLQqjUKgSO/Zjnf9e0XIn5Ymrh1fLDWBeAkZqpuBR/3R8TpfoHXuyblqyQrftSSgWO9qpcHN8mkyKsLraoA==} + '@rolldown/binding-win32-x64-msvc@1.1.5': + resolution: {integrity: sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -322,8 +285,8 @@ packages: resolution: {integrity: sha512-xzvBr1Q1c4lCe7i6sRnrofxeO1QTP/LKQ6A6qy0iB4x5yfiSfARMEQEghojzTNALDTcv8En04qYNIco9/K9eZQ==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} - '@tybys/wasm-util@0.10.2': - resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} + '@tybys/wasm-util@0.10.3': + resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} '@types/esrecurse@4.3.1': resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} @@ -331,77 +294,194 @@ packages: '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - '@types/jsesc@2.5.1': - resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@26.0.0': - resolution: {integrity: sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==} + '@types/node@26.1.1': + resolution: {integrity: sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==} '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@typescript-eslint/eslint-plugin@8.61.1': - resolution: {integrity: sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==} + '@typescript-eslint/eslint-plugin@8.64.0': + resolution: {integrity: sha512-CGvQPBxN3wZLu6Rz2kFUpZeoCm78xUic92ck39KPePkO1NPOwjCqdQnm5Q87tpWw9vcBvW8XLrDXjH9PWYtJ3Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.61.1 + '@typescript-eslint/parser': ^8.64.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.61.1': - resolution: {integrity: sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==} + '@typescript-eslint/parser@8.64.0': + resolution: {integrity: sha512-KA0OshtlcCCXmbfqyZkM5pV3/WNraJf7DkJRLpyrmwPtud57H5BDX7C3k0LPSPxpprfRL+cJDGabF10mvNCoCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.61.1': - resolution: {integrity: sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==} + '@typescript-eslint/project-service@8.64.0': + resolution: {integrity: sha512-tk4WpOJ6IEbGrVHaNmM0YRrwAD3exZlIK3iadQNAxh4YKk6jvUQ4ecq18n+v7+meh+cJ3j+D8nbk8sRKhlwLQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.61.1': - resolution: {integrity: sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==} + '@typescript-eslint/scope-manager@8.64.0': + resolution: {integrity: sha512-CXEaFdYXjSTgKhisNkwCcJwTP8Pl+fmRrEQrri4nm3vU743bALrxzLmq7fHG/7e6a5xO0lDYeURpZmBuhHk54w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.61.1': - resolution: {integrity: sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==} + '@typescript-eslint/tsconfig-utils@8.64.0': + resolution: {integrity: sha512-2yo8rRNKuzbVWQp5kslhANqZ2uDAeROQHBRZNPu8JDsHmeFNj/XJJhX/FhNUWmkHHvoNsKa6+tHJiig87EzsQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.61.1': - resolution: {integrity: sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==} + '@typescript-eslint/type-utils@8.64.0': + resolution: {integrity: sha512-XWG4Fmmv/6SvyS9nH8jWrKs6terwJvE8cyRt1CzYYqzp9OrPhCT4cMc/f7C6RZCwG+qMmiffJS1/qJP8G1URtg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.61.1': - resolution: {integrity: sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==} + '@typescript-eslint/types@8.64.0': + resolution: {integrity: sha512-qjhfuTfLXjA4IOzXvz0rTjT01BqEiIgPoUeMwiEjnaHKJMTNo8rH5pYW1a2L/0Dnux2fPC85AeyJoWaGa8WxTA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.61.1': - resolution: {integrity: sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==} + '@typescript-eslint/typescript-estree@8.64.0': + resolution: {integrity: sha512-Pztpsn1aCE1oWDvDEfUk31nngvvF7vUB5SwHFEaZIFpvw7WJtqUHHL4plBZDA9HfWJJjL13BdG0YrJInTUvoVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.61.1': - resolution: {integrity: sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==} + '@typescript-eslint/utils@8.64.0': + resolution: {integrity: sha512-aJUGVB3+U0htrrCjoA8qukw8cm8fNCGAxK/tVoS70k8aeb7DETKeFozRiVFIwEeN9WJLsjaP3ph8I60tY2XZoQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.61.1': - resolution: {integrity: sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==} + '@typescript-eslint/visitor-keys@8.64.0': + resolution: {integrity: sha512-mrtuL8Nsn6gi2H4mo5KMTp823M+3Q19Ew/i+Zlikq20tIMm99C3Ez0dCmkWWnxut20esQvTg8aUSEhMcAOXhEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + '@unrs/resolver-binding-android-arm-eabi@1.12.2': resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} cpu: [arm] @@ -526,6 +606,131 @@ packages: resolution: {integrity: sha512-Xfe6rpCTxSxfbswi/W/Pz7zp1WWSNn4A0eW4mLkQUewCrXXtMj31lCg+iQyTkh/CkusZSq9eDflu7tjEDXUY6g==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} + '@yuku-codegen/binding-darwin-arm64@0.6.1': + resolution: {integrity: sha512-LDJtpOKtcv9f3V0eDUwFmmy47t2VC+DAuN+gq80R1IA+fa0d408i6sHsVtt6n+g5rf8f86ySoPSAe94lHt6Ixw==} + cpu: [arm64] + os: [darwin] + + '@yuku-codegen/binding-darwin-x64@0.6.1': + resolution: {integrity: sha512-fBwpBOh33W7N87F94SVNExwm2KUV3ROhk51okr3Oy2ost1/JJuBWINVjcgwd2WPKZEFzUXgCzj/03UR/G+WIrQ==} + cpu: [x64] + os: [darwin] + + '@yuku-codegen/binding-freebsd-x64@0.6.1': + resolution: {integrity: sha512-UpMkskQV3a5oPnJV+GFFupIqnLwSBD4ZsZAVUZuNVkrqct433FHKqTwuG+P5JhHZbmhf+++3Ie/V2sgduyXrAQ==} + cpu: [x64] + os: [freebsd] + + '@yuku-codegen/binding-linux-arm-gnu@0.6.1': + resolution: {integrity: sha512-HICjDelfEDeD6TD8OEz/Dvt8KHxJiETR+paI/Fr7eVTQbjMfRrXJz8O1qV1qGH5SHZUGl2SAw2Rp+MLtXOjCrQ==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@yuku-codegen/binding-linux-arm-musl@0.6.1': + resolution: {integrity: sha512-pUswnwa+WOmtH2ZGOWL05kFLMNY7/TnEAryfIv1yVFzKQnmSy9TKYi3oIOxGZL3w+cdUKCZ6Q+jaD0oI10ztzA==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@yuku-codegen/binding-linux-arm64-gnu@0.6.1': + resolution: {integrity: sha512-Zro0FOu9clLCmqCnUKzEWHAu30tss0iEfhs+KDXm9Dpm1FkIHAKu43tF6FQU2hsTA7a8xd93NGddzc2EOJFKUg==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@yuku-codegen/binding-linux-arm64-musl@0.6.1': + resolution: {integrity: sha512-NZaT+mp9toqWuFEA4MYW5HMRxgIa8DCqnTTnM5SrrojZgm4QoMI/mJfifVet1ZHgl/Dly5m6H6GPpq43uXVj8g==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@yuku-codegen/binding-linux-x64-gnu@0.6.1': + resolution: {integrity: sha512-M5macseSCBPvJ4yfKNyQpMc7nBQBtj39MNfMt0r+8UkTnR5qJE00JJx06puHgPxT5hnGxMAuAWZ+3a9H2ngqAw==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@yuku-codegen/binding-linux-x64-musl@0.6.1': + resolution: {integrity: sha512-liAyBZI5AbazZGeeNfWj0jCD/TE2L84hgVYh4KkjJA/N9bNzFQCDf4BvWP76nEO89r2tIGEUjbXdM4mM26riHg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@yuku-codegen/binding-win32-arm64@0.6.1': + resolution: {integrity: sha512-qItzfH3x6MYChPeGfvh22rHD92WLgXQRSuwvspRVSnLvpnubEfZd+9REPRQVT2l9fIuETDCEkDNRqkDROQTkgA==} + cpu: [arm64] + os: [win32] + + '@yuku-codegen/binding-win32-x64@0.6.1': + resolution: {integrity: sha512-DFFkKROZ9ZAHmFMUFRtRTkosZds1KH8BOx5t3UpNULIjT3iuUmEx9V5pWR0xOi66sANY38Ap77nz1kOZraQxEg==} + cpu: [x64] + os: [win32] + + '@yuku-parser/binding-darwin-arm64@0.6.1': + resolution: {integrity: sha512-jORysyRZg5zGDgVw15LGMsjZDh7jwjpUIJRBHgFt0ir15O5pEazfvuF2dnwvrJiTF0IT1EgHAVbTAYJWwQLCjg==} + cpu: [arm64] + os: [darwin] + + '@yuku-parser/binding-darwin-x64@0.6.1': + resolution: {integrity: sha512-dTeYFkkFlbP/WCB2DtezXas3NApOPtFlXSdssB7wGtY9wpNp4HAkVo1KBwI5mcHK0e2joyUcqTSf44mFE+q7vg==} + cpu: [x64] + os: [darwin] + + '@yuku-parser/binding-freebsd-x64@0.6.1': + resolution: {integrity: sha512-GExDp3rebo28mt3EAjvKQs0ZC3gkznAErV0I9TUNDa9muuhvD35kft61Mpsc6+NWeE+BG+kUyKbm6iO5B6ZMMA==} + cpu: [x64] + os: [freebsd] + + '@yuku-parser/binding-linux-arm-gnu@0.6.1': + resolution: {integrity: sha512-a9MjABj4J0VE3Z2oROGhmeddZZrhwwrnl4ZWZOuHUhD/smDtDiNtr0LpCbKB7rEYaQ29snopOPdZ/0T3YgLglQ==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@yuku-parser/binding-linux-arm-musl@0.6.1': + resolution: {integrity: sha512-ctuvXJgDRKKlmJfHxT4RsTvcAcHEFNJHTCsGbtt4rluQpVDc+ezk9JvQ534ehoIfZ9T0eIHSBgqYAZ4xCatNmQ==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@yuku-parser/binding-linux-arm64-gnu@0.6.1': + resolution: {integrity: sha512-vRtyoTtT0Ltowuh9LWOl/ZNU9h79J89ilOz5SEGspcw0jfhoUt19i07VNitll4jjfg5p2EN00q+MqX0pAobrFw==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@yuku-parser/binding-linux-arm64-musl@0.6.1': + resolution: {integrity: sha512-vCsc3GOe1ylmRyfo/WLjIhjiCmaTtJbWNF4ZtgjNegDjpsRsFuCcP9duXB41QcfnJK38repKVFqFh0LR3l48FA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@yuku-parser/binding-linux-x64-gnu@0.6.1': + resolution: {integrity: sha512-gw3d81RdUHSYwjDW2IG6gEtm4VDoPP4ZOqpuC6Nc8+UBfos+4gTWOgzmuxIOVhkSV2fJCcUDpSJIlPzEU0FLZw==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@yuku-parser/binding-linux-x64-musl@0.6.1': + resolution: {integrity: sha512-nzU+Doq9UgZvYYvald36lZJ2Neeyheije6WE/YpoFt/oJiNmnjArRgr2CMtb/7gWBl80YSMwcHK4Ju0E+7wfWg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@yuku-parser/binding-win32-arm64@0.6.1': + resolution: {integrity: sha512-r3tXFVDliWCPe7TL6DVxUkT4rkqnXyeFVSEDf+V9My6Gztq99/gIe3POQqFbshTRuSrpEYMGMbGxeFh+m+stxA==} + cpu: [arm64] + os: [win32] + + '@yuku-parser/binding-win32-x64@0.6.1': + resolution: {integrity: sha512-FqYMOqeCS2XTdn5yvaKlOhtSQ84mVO3aTXp6LGfMd9Zq8RsV4H8qLWv+sxJsgPCXfuBV64u8/f+CTr3uIwNLWA==} + cpu: [x64] + os: [win32] + + '@yuku-toolchain/types@0.5.43': + resolution: {integrity: sha512-kSpvPntnXw5+lYjO71ffBEnQ5ycQ74KGIYknh0TS4xeyCuBkOqxyJumxZkMhLBBUCLjDAbx2+Icnr3Zh4ftjpQ==} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -543,19 +748,12 @@ packages: resolution: {integrity: sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==} engines: {node: '>=14'} - ast-kit@3.0.0: - resolution: {integrity: sha512-8OG92q3R35qjC/4i6BLBMg8IB+fClWu/1PEwg2Z9Rn+BuNaiEgJzpzn+pxWOdHJWDCAwu2JP0wCDTozAM4QirQ==} - engines: {node: ^22.18.0 || >=24.11.0} - balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - birpc@4.0.0: - resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} - - brace-expansion@5.0.6: - resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + brace-expansion@5.0.7: + resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} engines: {node: 18 || 20 || >=22} cac@7.0.0: @@ -588,8 +786,8 @@ packages: discord-api-types@0.38.49: resolution: {integrity: sha512-XnqcWmnFZFAE8ZM8SHAw9DIV8D3Or00rMQ8iQLotrEA2PmXhl+ykaf6L6q4l474hrSUH1JaYcv+iOMRWp2p6Tg==} - discord.js@14.26.4: - resolution: {integrity: sha512-4oBp8tc6Kf8IDBwAHhbsMaAqx1b5fob9SNasZT7V6yyyUydoO5i5fGuX7TmvRtR+q/WgKRnRViRoAWnG7fNyvA==} + discord.js@14.26.5: + resolution: {integrity: sha512-SGYgjiAs0o8ZzMC97XmFXKONyairJ9YzVda+LvoSKs9YYh2gPtQhY+liaV6H/w72jxYbu9ggiSqAXoF3FLOH4A==} engines: {node: '>=18'} dts-resolver@3.0.0: @@ -637,8 +835,8 @@ packages: eslint-plugin-import-x: optional: true - eslint-plugin-import-x@4.16.2: - resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==} + eslint-plugin-import-x@4.17.1: + resolution: {integrity: sha512-4cdstYkKCyjumM2Q9NSI03K8D2a9F4Ssz33K2lv2hQa4KmR9jPLwk3uWGtNvclfqBrPGfGuMBwsGMbe6dMRbfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/utils': ^8.56.0 @@ -662,8 +860,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.5.0: - resolution: {integrity: sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==} + eslint@10.7.0: + resolution: {integrity: sha512-GVTD7s1vdIl6UYvAfriOPeY1Df8LIZjfofLvHwde+erDHGGuHyuM6xoxRxmHiebhYuD2p1vN4wWh0XzPARSGDQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -688,9 +886,6 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -739,17 +934,17 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - globals@17.6.0: - resolution: {integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==} + globals@17.7.0: + resolution: {integrity: sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==} engines: {node: '>=18'} hookable@6.1.1: resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} - i18next@26.3.1: - resolution: {integrity: sha512-txQqd5EULsqEh9OJqRH15aCaOuy/nLJyhw5EHCSKLKJE1aBbb3Zve2+uQIxgWhPm1QqUQoWyQBm2kfmmIrzkcQ==} + i18next@26.3.6: + resolution: {integrity: sha512-Bu5Z2nAXgfVyM8xvW3jk9EKRIuX37PudsrBViThNFx7CR7aaYTpP01cxNB/E4c4UUzTDiAZRstEhsRfPOL/8xA==} peerDependencies: - typescript: ^5 || ^6 + typescript: ^5 || ^6 || ^7 peerDependenciesMeta: typescript: optional: true @@ -758,8 +953,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + ignore@7.0.6: + resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==} engines: {node: '>= 4'} import-without-cache@0.4.0: @@ -792,11 +987,6 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -869,19 +1059,16 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.8.4: - resolution: {integrity: sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==} + prettier@3.9.5: + resolution: {integrity: sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==} engines: {node: '>=14'} hasBin: true @@ -895,14 +1082,14 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - rolldown-plugin-dts@0.26.0: - resolution: {integrity: sha512-e+kEPtUiDES0htk5iqkSeF4EzAV7R+vugGB44iPDuw1Kw9E+WyL1VG7PaV0IIjGHLiacztMBcMTyrr8ON9CT1Q==} + rolldown-plugin-dts@0.27.9: + resolution: {integrity: sha512-d54yt65+ZF/Mk8H6P36As02PAMdaiWRSzVNtJRc1h7nCgUFjuRI4cN2DyTfJyfVpPH6pgy7/2D7YQH1/Rh75Yg==} engines: {node: ^22.18.0 || >=24.11.0} peerDependencies: '@ts-macro/tsc': ^0.3.6 - '@typescript/native-preview': '>=7.0.0-dev.20260325.1' + '@typescript/native-preview': '*' rolldown: ^1.0.0 - typescript: ^5.0.0 || ^6.0.0 + typescript: ^5.0.0 || ^6.0.0 || ~7.0.0 vue-tsc: ~3.2.0 || ~3.3.0 peerDependenciesMeta: '@ts-macro/tsc': @@ -914,8 +1101,8 @@ packages: vue-tsc: optional: true - rolldown@1.1.2: - resolution: {integrity: sha512-x0CrQQqCXWGeI8dTvFfN/Dnv3yMKT9hv5jFjlOreKAx9wqLq9wz7VvLLHyaAXC90/CpggTu9SisSbsJJTPSjNQ==} + rolldown@1.1.5: + resolution: {integrity: sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -957,18 +1144,18 @@ packages: ts-mixer@6.0.4: resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} - tsdown@0.22.3: - resolution: {integrity: sha512-louqbfA8Qf//B9jTTL0FPtXTNpjCWv1VPkbcmQMph2pTpzs+LnB1tbe4tDDRVpo2BjF5SgUXaTZe45SxB8pWHg==} + tsdown@0.22.7: + resolution: {integrity: sha512-4egbOzc9dxVv/QS+gDV75FIxDIjQQeOnXBlUuikyjmn0ozuc6FW11djJjEEo3vqkuJRygpnKHurnj+Iwftk4VA==} engines: {node: ^22.18.0 || >=24.11.0} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.22.3 - '@tsdown/exe': 0.22.3 + '@tsdown/css': 0.22.7 + '@tsdown/exe': 0.22.7 '@vitejs/devtools': '*' publint: ^0.3.8 tsx: '*' - typescript: ^5.0.0 || ^6.0.0 + typescript: ^5.0.0 || ^6.0.0 || ^7.0.0 unplugin-unused: ^0.5.0 unrun: '*' peerDependenciesMeta: @@ -998,16 +1185,16 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.61.1: - resolution: {integrity: sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw==} + typescript-eslint@8.64.0: + resolution: {integrity: sha512-0qg+pDNMnqYzqH9AnNK+39tejHvsShUOUUoRUgtnTGE7QuMZhiFDnozq8nHJVq+Wae6NMLKNWLg5WmkcC/ndyQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - typescript@6.0.3: - resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} - engines: {node: '>=14.17'} + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} hasBin: true unconfig-core@7.5.0: @@ -1055,29 +1242,16 @@ packages: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} -snapshots: + yuku-ast@0.1.7: + resolution: {integrity: sha512-2RiMEWv500TixY5rJy6OZd4fSy9WYZKWh6gGbIJ7y7vAGcuCugWOWwOLGaQcRZrXcPUfqtLtvpaJ3SdXtWlhKA==} - '@babel/generator@8.0.0': - dependencies: - '@babel/parser': 8.0.0 - '@babel/types': 8.0.0 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - '@types/jsesc': 2.5.1 - jsesc: 3.1.0 - - '@babel/helper-string-parser@8.0.0': {} + yuku-codegen@0.6.1: + resolution: {integrity: sha512-6RJqqON2xYhMEp/sZv5oOSI3uOpWwRwzAi2fc/rMcRFjcqedAC5Fyp4AD9Vn2b8SB7hf9ESqVW+YwbDs/KvyKA==} - '@babel/helper-validator-identifier@8.0.2': {} - - '@babel/parser@8.0.0': - dependencies: - '@babel/types': 8.0.0 + yuku-parser@0.6.1: + resolution: {integrity: sha512-dPE3/+H2VBw9LhjoIVeW/axKidYGd+XzNtrwGGseZ0325cQFl0Dpwyh0R74XWe/WqQn4M8CR5YApsv2KF2zN1A==} - '@babel/types@8.0.0': - dependencies: - '@babel/helper-string-parser': 8.0.0 - '@babel/helper-validator-identifier': 8.0.2 +snapshots: '@discordjs/builders@1.14.1': dependencies: @@ -1160,9 +1334,9 @@ snapshots: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.5.0(jiti@2.7.0))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.7.0(jiti@2.7.0))': dependencies: - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -1183,9 +1357,9 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/js@10.0.1(eslint@10.5.0(jiti@2.7.0))': + '@eslint/js@10.0.1(eslint@10.7.0(jiti@2.7.0))': optionalDependencies: - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) '@eslint/object-schema@3.0.5': {} @@ -1210,89 +1384,73 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.2 + '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': dependencies: '@emnapi/core': 1.11.1 '@emnapi/runtime': 1.11.1 - '@tybys/wasm-util': 0.10.2 + '@tybys/wasm-util': 0.10.3 optional: true - '@oxc-project/types@0.137.0': {} - - '@package-json/types@0.0.12': {} + '@oxc-project/types@0.139.0': {} '@quansync/fs@1.0.0': dependencies: quansync: 1.0.0 - '@rolldown/binding-android-arm64@1.1.2': + '@rolldown/binding-android-arm64@1.1.5': optional: true - '@rolldown/binding-darwin-arm64@1.1.2': + '@rolldown/binding-darwin-arm64@1.1.5': optional: true - '@rolldown/binding-darwin-x64@1.1.2': + '@rolldown/binding-darwin-x64@1.1.5': optional: true - '@rolldown/binding-freebsd-x64@1.1.2': + '@rolldown/binding-freebsd-x64@1.1.5': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.1.2': + '@rolldown/binding-linux-arm-gnueabihf@1.1.5': optional: true - '@rolldown/binding-linux-arm64-gnu@1.1.2': + '@rolldown/binding-linux-arm64-gnu@1.1.5': optional: true - '@rolldown/binding-linux-arm64-musl@1.1.2': + '@rolldown/binding-linux-arm64-musl@1.1.5': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.1.2': + '@rolldown/binding-linux-ppc64-gnu@1.1.5': optional: true - '@rolldown/binding-linux-s390x-gnu@1.1.2': + '@rolldown/binding-linux-s390x-gnu@1.1.5': optional: true - '@rolldown/binding-linux-x64-gnu@1.1.2': + '@rolldown/binding-linux-x64-gnu@1.1.5': optional: true - '@rolldown/binding-linux-x64-musl@1.1.2': + '@rolldown/binding-linux-x64-musl@1.1.5': optional: true - '@rolldown/binding-openharmony-arm64@1.1.2': + '@rolldown/binding-openharmony-arm64@1.1.5': optional: true - '@rolldown/binding-wasm32-wasi@1.1.2': + '@rolldown/binding-wasm32-wasi@1.1.5': dependencies: '@emnapi/core': 1.11.1 '@emnapi/runtime': 1.11.1 - '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) optional: true - '@rolldown/binding-win32-arm64-msvc@1.1.2': + '@rolldown/binding-win32-arm64-msvc@1.1.5': optional: true - '@rolldown/binding-win32-x64-msvc@1.1.2': + '@rolldown/binding-win32-x64-msvc@1.1.5': optional: true '@rolldown/pluginutils@1.0.1': {} @@ -1308,7 +1466,7 @@ snapshots: '@sapphire/snowflake@3.5.5': {} - '@tybys/wasm-util@0.10.2': + '@tybys/wasm-util@0.10.3': dependencies: tslib: 2.8.1 optional: true @@ -1317,109 +1475,167 @@ snapshots: '@types/estree@1.0.9': {} - '@types/jsesc@2.5.1': {} - '@types/json-schema@7.0.15': {} - '@types/node@26.0.0': + '@types/node@26.1.1': dependencies: undici-types: 8.3.0 '@types/ws@8.18.1': dependencies: - '@types/node': 26.0.0 + '@types/node': 26.1.1 - '@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.64.0(@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.61.1 - '@typescript-eslint/type-utils': 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/utils': 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.61.1 - eslint: 10.5.0(jiti@2.7.0) - ignore: 7.0.5 + '@typescript-eslint/parser': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/scope-manager': 8.64.0 + '@typescript-eslint/type-utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/visitor-keys': 8.64.0 + eslint: 10.7.0(jiti@2.7.0) + ignore: 7.0.6 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: - '@typescript-eslint/scope-manager': 8.61.1 - '@typescript-eslint/types': 8.61.1 - '@typescript-eslint/typescript-estree': 8.61.1(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.61.1 + '@typescript-eslint/scope-manager': 8.64.0 + '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/typescript-estree': 8.64.0(typescript@7.0.2) + '@typescript-eslint/visitor-keys': 8.64.0 debug: 4.4.3 - eslint: 10.5.0(jiti@2.7.0) - typescript: 6.0.3 + eslint: 10.7.0(jiti@2.7.0) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.61.1(typescript@6.0.3)': + '@typescript-eslint/project-service@8.64.0(typescript@7.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.61.1(typescript@6.0.3) - '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/tsconfig-utils': 8.64.0(typescript@7.0.2) + '@typescript-eslint/types': 8.64.0 debug: 4.4.3 - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.61.1': + '@typescript-eslint/scope-manager@8.64.0': dependencies: - '@typescript-eslint/types': 8.61.1 - '@typescript-eslint/visitor-keys': 8.61.1 + '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/visitor-keys': 8.64.0 - '@typescript-eslint/tsconfig-utils@8.61.1(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.64.0(typescript@7.0.2)': dependencies: - typescript: 6.0.3 + typescript: 7.0.2 - '@typescript-eslint/type-utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: - '@typescript-eslint/types': 8.61.1 - '@typescript-eslint/typescript-estree': 8.61.1(typescript@6.0.3) - '@typescript-eslint/utils': 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/typescript-estree': 8.64.0(typescript@7.0.2) + '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) debug: 4.4.3 - eslint: 10.5.0(jiti@2.7.0) - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + eslint: 10.7.0(jiti@2.7.0) + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.61.1': {} + '@typescript-eslint/types@8.64.0': {} - '@typescript-eslint/typescript-estree@8.61.1(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.64.0(typescript@7.0.2)': dependencies: - '@typescript-eslint/project-service': 8.61.1(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.61.1(typescript@6.0.3) - '@typescript-eslint/types': 8.61.1 - '@typescript-eslint/visitor-keys': 8.61.1 + '@typescript-eslint/project-service': 8.64.0(typescript@7.0.2) + '@typescript-eslint/tsconfig-utils': 8.64.0(typescript@7.0.2) + '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/visitor-keys': 8.64.0 debug: 4.4.3 minimatch: 10.2.5 semver: 7.8.5 tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.61.1 - '@typescript-eslint/types': 8.61.1 - '@typescript-eslint/typescript-estree': 8.61.1(typescript@6.0.3) - eslint: 10.5.0(jiti@2.7.0) - typescript: 6.0.3 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@2.7.0)) + '@typescript-eslint/scope-manager': 8.64.0 + '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/typescript-estree': 8.64.0(typescript@7.0.2) + eslint: 10.7.0(jiti@2.7.0) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.61.1': + '@typescript-eslint/visitor-keys@8.64.0': dependencies: - '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/types': 8.64.0 eslint-visitor-keys: 5.0.1 + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-sunos-x64@7.0.2': + optional: true + + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true + '@unrs/resolver-binding-android-arm-eabi@1.12.2': optional: true @@ -1478,7 +1694,7 @@ snapshots: dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': @@ -1492,6 +1708,74 @@ snapshots: '@vladfrangu/async_event_emitter@2.4.7': {} + '@yuku-codegen/binding-darwin-arm64@0.6.1': + optional: true + + '@yuku-codegen/binding-darwin-x64@0.6.1': + optional: true + + '@yuku-codegen/binding-freebsd-x64@0.6.1': + optional: true + + '@yuku-codegen/binding-linux-arm-gnu@0.6.1': + optional: true + + '@yuku-codegen/binding-linux-arm-musl@0.6.1': + optional: true + + '@yuku-codegen/binding-linux-arm64-gnu@0.6.1': + optional: true + + '@yuku-codegen/binding-linux-arm64-musl@0.6.1': + optional: true + + '@yuku-codegen/binding-linux-x64-gnu@0.6.1': + optional: true + + '@yuku-codegen/binding-linux-x64-musl@0.6.1': + optional: true + + '@yuku-codegen/binding-win32-arm64@0.6.1': + optional: true + + '@yuku-codegen/binding-win32-x64@0.6.1': + optional: true + + '@yuku-parser/binding-darwin-arm64@0.6.1': + optional: true + + '@yuku-parser/binding-darwin-x64@0.6.1': + optional: true + + '@yuku-parser/binding-freebsd-x64@0.6.1': + optional: true + + '@yuku-parser/binding-linux-arm-gnu@0.6.1': + optional: true + + '@yuku-parser/binding-linux-arm-musl@0.6.1': + optional: true + + '@yuku-parser/binding-linux-arm64-gnu@0.6.1': + optional: true + + '@yuku-parser/binding-linux-arm64-musl@0.6.1': + optional: true + + '@yuku-parser/binding-linux-x64-gnu@0.6.1': + optional: true + + '@yuku-parser/binding-linux-x64-musl@0.6.1': + optional: true + + '@yuku-parser/binding-win32-arm64@0.6.1': + optional: true + + '@yuku-parser/binding-win32-x64@0.6.1': + optional: true + + '@yuku-toolchain/types@0.5.43': {} + acorn-jsx@5.3.2(acorn@8.17.0): dependencies: acorn: 8.17.0 @@ -1507,17 +1791,9 @@ snapshots: ansis@4.3.1: {} - ast-kit@3.0.0: - dependencies: - '@babel/parser': 8.0.0 - estree-walker: 3.0.3 - pathe: 2.0.3 - balanced-match@4.0.4: {} - birpc@4.0.0: {} - - brace-expansion@5.0.6: + brace-expansion@5.0.7: dependencies: balanced-match: 4.0.4 @@ -1541,7 +1817,7 @@ snapshots: discord-api-types@0.38.49: {} - discord.js@14.26.4: + discord.js@14.26.5: dependencies: '@discordjs/builders': 1.14.1 '@discordjs/collection': 1.5.3 @@ -1566,9 +1842,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)): + eslint-config-prettier@10.1.8(eslint@10.7.0(jiti@2.7.0)): dependencies: - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) eslint-import-context@0.1.9(unrs-resolver@1.12.2): dependencies: @@ -1577,10 +1853,10 @@ snapshots: optionalDependencies: unrs-resolver: 1.12.2 - eslint-import-resolver-typescript@4.4.5(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0)): + eslint-import-resolver-typescript@4.4.5(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)))(eslint@10.7.0(jiti@2.7.0)): dependencies: debug: 4.4.3 - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) eslint-import-context: 0.1.9(unrs-resolver@1.12.2) get-tsconfig: 4.14.0 is-bun-module: 2.0.0 @@ -1588,17 +1864,16 @@ snapshots: tinyglobby: 0.2.17 unrs-resolver: 1.12.2 optionalDependencies: - eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0)): + eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)): dependencies: - '@package-json/types': 0.0.12 - '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/types': 8.64.0 comment-parser: 1.4.7 debug: 4.4.3 - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) eslint-import-context: 0.1.9(unrs-resolver@1.12.2) is-glob: 4.0.3 minimatch: 10.2.5 @@ -1606,7 +1881,7 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.12.2 optionalDependencies: - '@typescript-eslint/utils': 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) transitivePeerDependencies: - supports-color @@ -1621,9 +1896,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.5.0(jiti@2.7.0): + eslint@10.7.0(jiti@2.7.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@2.7.0)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.6.0 @@ -1674,10 +1949,6 @@ snapshots: estraverse@5.3.0: {} - estree-walker@3.0.3: - dependencies: - '@types/estree': 1.0.9 - esutils@2.0.3: {} fast-deep-equal@3.1.3: {} @@ -1686,9 +1957,9 @@ snapshots: fast-levenshtein@2.0.6: {} - fdir@6.5.0(picomatch@4.0.4): + fdir@6.5.0(picomatch@4.0.5): optionalDependencies: - picomatch: 4.0.4 + picomatch: 4.0.5 file-entry-cache@8.0.0: dependencies: @@ -1718,17 +1989,17 @@ snapshots: dependencies: is-glob: 4.0.3 - globals@17.6.0: {} + globals@17.7.0: {} hookable@6.1.1: {} - i18next@26.3.1(typescript@6.0.3): + i18next@26.3.6(typescript@7.0.2): optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 ignore@5.3.2: {} - ignore@7.0.5: {} + ignore@7.0.6: {} import-without-cache@0.4.0: {} @@ -1750,8 +2021,6 @@ snapshots: jiti@2.7.0: {} - jsesc@3.1.0: {} - json-buffer@3.0.1: {} json-schema-traverse@0.4.1: {} @@ -1784,7 +2053,7 @@ snapshots: minimatch@10.2.5: dependencies: - brace-expansion: 5.0.6 + brace-expansion: 5.0.7 ms@2.1.3: {} @@ -1815,13 +2084,11 @@ snapshots: path-key@3.1.1: {} - pathe@2.0.3: {} - - picomatch@4.0.4: {} + picomatch@4.0.5: {} prelude-ls@1.2.1: {} - prettier@3.8.4: {} + prettier@3.9.5: {} punycode@2.3.1: {} @@ -1829,42 +2096,40 @@ snapshots: resolve-pkg-maps@1.0.0: {} - rolldown-plugin-dts@0.26.0(rolldown@1.1.2)(typescript@6.0.3): + rolldown-plugin-dts@0.27.9(rolldown@1.1.5)(typescript@7.0.2): dependencies: - '@babel/generator': 8.0.0 - '@babel/helper-validator-identifier': 8.0.2 - '@babel/parser': 8.0.0 - ast-kit: 3.0.0 - birpc: 4.0.0 dts-resolver: 3.0.0 get-tsconfig: 5.0.0-beta.5 obug: 2.1.3 - rolldown: 1.1.2 + rolldown: 1.1.5 + yuku-ast: 0.1.7 + yuku-codegen: 0.6.1 + yuku-parser: 0.6.1 optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - oxc-resolver - rolldown@1.1.2: + rolldown@1.1.5: dependencies: - '@oxc-project/types': 0.137.0 + '@oxc-project/types': 0.139.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.1.2 - '@rolldown/binding-darwin-arm64': 1.1.2 - '@rolldown/binding-darwin-x64': 1.1.2 - '@rolldown/binding-freebsd-x64': 1.1.2 - '@rolldown/binding-linux-arm-gnueabihf': 1.1.2 - '@rolldown/binding-linux-arm64-gnu': 1.1.2 - '@rolldown/binding-linux-arm64-musl': 1.1.2 - '@rolldown/binding-linux-ppc64-gnu': 1.1.2 - '@rolldown/binding-linux-s390x-gnu': 1.1.2 - '@rolldown/binding-linux-x64-gnu': 1.1.2 - '@rolldown/binding-linux-x64-musl': 1.1.2 - '@rolldown/binding-openharmony-arm64': 1.1.2 - '@rolldown/binding-wasm32-wasi': 1.1.2 - '@rolldown/binding-win32-arm64-msvc': 1.1.2 - '@rolldown/binding-win32-x64-msvc': 1.1.2 + '@rolldown/binding-android-arm64': 1.1.5 + '@rolldown/binding-darwin-arm64': 1.1.5 + '@rolldown/binding-darwin-x64': 1.1.5 + '@rolldown/binding-freebsd-x64': 1.1.5 + '@rolldown/binding-linux-arm-gnueabihf': 1.1.5 + '@rolldown/binding-linux-arm64-gnu': 1.1.5 + '@rolldown/binding-linux-arm64-musl': 1.1.5 + '@rolldown/binding-linux-ppc64-gnu': 1.1.5 + '@rolldown/binding-linux-s390x-gnu': 1.1.5 + '@rolldown/binding-linux-x64-gnu': 1.1.5 + '@rolldown/binding-linux-x64-musl': 1.1.5 + '@rolldown/binding-openharmony-arm64': 1.1.5 + '@rolldown/binding-wasm32-wasi': 1.1.5 + '@rolldown/binding-win32-arm64-msvc': 1.1.5 + '@rolldown/binding-win32-x64-msvc': 1.1.5 semver@7.8.5: {} @@ -1880,18 +2145,18 @@ snapshots: tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 tree-kill@1.2.2: {} - ts-api-utils@2.5.0(typescript@6.0.3): + ts-api-utils@2.5.0(typescript@7.0.2): dependencies: - typescript: 6.0.3 + typescript: 7.0.2 ts-mixer@6.0.4: {} - tsdown@0.22.3(typescript@6.0.3): + tsdown@0.22.7(typescript@7.0.2): dependencies: ansis: 4.3.1 cac: 7.0.0 @@ -1900,16 +2165,16 @@ snapshots: hookable: 6.1.1 import-without-cache: 0.4.0 obug: 2.1.3 - picomatch: 4.0.4 - rolldown: 1.1.2 - rolldown-plugin-dts: 0.26.0(rolldown@1.1.2)(typescript@6.0.3) + picomatch: 4.0.5 + rolldown: 1.1.5 + rolldown-plugin-dts: 0.27.9(rolldown@1.1.5)(typescript@7.0.2) semver: 7.8.5 tinyexec: 1.2.4 tinyglobby: 0.2.17 tree-kill: 1.2.2 unconfig-core: 7.5.0 optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - '@ts-macro/tsc' - '@typescript/native-preview' @@ -1922,18 +2187,39 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3): + typescript-eslint@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.61.1(typescript@6.0.3) - '@typescript-eslint/utils': 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) - eslint: 10.5.0(jiti@2.7.0) - typescript: 6.0.3 + '@typescript-eslint/eslint-plugin': 8.64.0(@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/parser': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/typescript-estree': 8.64.0(typescript@7.0.2) + '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + eslint: 10.7.0(jiti@2.7.0) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - typescript@6.0.3: {} + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 unconfig-core@7.5.0: dependencies: @@ -1986,3 +2272,39 @@ snapshots: yocto-queue@0.1.0: {} yoctocolors@2.1.2: {} + + yuku-ast@0.1.7: + dependencies: + '@yuku-toolchain/types': 0.5.43 + + yuku-codegen@0.6.1: + dependencies: + '@yuku-toolchain/types': 0.5.43 + optionalDependencies: + '@yuku-codegen/binding-darwin-arm64': 0.6.1 + '@yuku-codegen/binding-darwin-x64': 0.6.1 + '@yuku-codegen/binding-freebsd-x64': 0.6.1 + '@yuku-codegen/binding-linux-arm-gnu': 0.6.1 + '@yuku-codegen/binding-linux-arm-musl': 0.6.1 + '@yuku-codegen/binding-linux-arm64-gnu': 0.6.1 + '@yuku-codegen/binding-linux-arm64-musl': 0.6.1 + '@yuku-codegen/binding-linux-x64-gnu': 0.6.1 + '@yuku-codegen/binding-linux-x64-musl': 0.6.1 + '@yuku-codegen/binding-win32-arm64': 0.6.1 + '@yuku-codegen/binding-win32-x64': 0.6.1 + + yuku-parser@0.6.1: + dependencies: + '@yuku-toolchain/types': 0.5.43 + optionalDependencies: + '@yuku-parser/binding-darwin-arm64': 0.6.1 + '@yuku-parser/binding-darwin-x64': 0.6.1 + '@yuku-parser/binding-freebsd-x64': 0.6.1 + '@yuku-parser/binding-linux-arm-gnu': 0.6.1 + '@yuku-parser/binding-linux-arm-musl': 0.6.1 + '@yuku-parser/binding-linux-arm64-gnu': 0.6.1 + '@yuku-parser/binding-linux-arm64-musl': 0.6.1 + '@yuku-parser/binding-linux-x64-gnu': 0.6.1 + '@yuku-parser/binding-linux-x64-musl': 0.6.1 + '@yuku-parser/binding-win32-arm64': 0.6.1 + '@yuku-parser/binding-win32-x64': 0.6.1 From 3221f037801e5eb77a639039fccde840b3323f7b Mon Sep 17 00:00:00 2001 From: Tweenty Date: Tue, 14 Jul 2026 18:57:26 +0200 Subject: [PATCH 02/10] bump: ci --- .github/workflows/publish-npm.yml | 4 ++-- .github/workflows/release.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index 8ad20d2..b996e13 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -18,11 +18,11 @@ jobs: id-token: write steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 with: ref: ${{ inputs.version }} - - uses: actions/setup-node@v6 + - uses: actions/setup-node@v7 with: node-version: "24.x" registry-url: "https://registry.npmjs.org" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 48d3e96..3cbdff9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: npm_tag: ${{ steps.create_tag.outputs.NPM_TAG }} steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: Create tag and define NPM environment id: create_tag From 12f109a488eaabfb3c2281899d40498ec5b3d492 Mon Sep 17 00:00:00 2001 From: Tweenty Date: Sun, 19 Jul 2026 12:55:25 +0200 Subject: [PATCH 03/10] bump: deps --- package.json | 8 +- pnpm-lock.yaml | 224 ++++++++++++++++++++++++++----------------------- 2 files changed, 124 insertions(+), 108 deletions(-) diff --git a/package.json b/package.json index f3dc3a0..c35f95d 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "description": "A framework for simplifying the creation of discord bots", "author": "Tweenty_", "license": "ISC", - "packageManager": "pnpm@11.13.0", + "packageManager": "pnpm@11.15.0", "engines": { "node": ">=24.0.0" }, @@ -36,7 +36,7 @@ "format": "prettier --write ./src/**/*.ts" }, "peerDependencies": { - "discord.js": "^14.26.5", + "discord.js": "^14.27.0", "i18next": "26.3.6" }, "dependencies": { @@ -44,7 +44,7 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "discord.js": "^14.26.5", + "discord.js": "^14.27.0", "eslint": "^10.7.0", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-typescript": "^4.4.5", @@ -52,7 +52,7 @@ "globals": "^17.7.0", "jiti": "^2.7.0", "prettier": "^3.9.5", - "tsdown": "^0.22.7", + "tsdown": "^0.22.9", "typescript": "^7.0.2", "typescript-eslint": "^8.64.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c43d63..39607a7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: ^10.0.1 version: 10.0.1(eslint@10.7.0(jiti@2.7.0)) discord.js: - specifier: ^14.26.5 - version: 14.26.5 + specifier: ^14.27.0 + version: 14.27.0 eslint: specifier: ^10.7.0 version: 10.7.0(jiti@2.7.0) @@ -43,8 +43,8 @@ importers: specifier: ^3.9.5 version: 3.9.5 tsdown: - specifier: ^0.22.7 - version: 0.22.7(typescript@7.0.2) + specifier: ^0.22.9 + version: 0.22.9(typescript@7.0.2) typescript: specifier: ^7.0.2 version: 7.0.2 @@ -74,6 +74,10 @@ packages: resolution: {integrity: sha512-wwQdgjeaoYFiaG+atbqx6aJDpqW7JHAo0HrQkBTbYzM3/PJ3GweQIpgElNcGZ26DCUOXMyawYd0YF7vtr+fZXg==} engines: {node: '>=18'} + '@discordjs/rest@2.6.2': + resolution: {integrity: sha512-c5HI3hJuRWWrnpyCZAUYfIUTAEv9weX4tE2UfDqtM3ztizdKE9RFEf3G5IWhPyO+kPldUDpGv02XJAQzdUTC9Q==} + engines: {node: '>=18'} + '@discordjs/util@1.2.0': resolution: {integrity: sha512-3LKP7F2+atl9vJFhaBjn4nOaSWahZ/yWjOvA4e5pnXkt2qyXRCHLxoBQy81GFtLGCq7K9lPm9R517M1U+/90Qg==} engines: {node: '>=18'} @@ -85,14 +89,14 @@ packages: '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/core@1.11.1': - resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + '@emnapi/core@1.11.2': + resolution: {integrity: sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==} '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.11.1': - resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + '@emnapi/runtime@1.11.2': + resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} @@ -165,103 +169,103 @@ packages: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@oxc-project/types@0.139.0': - resolution: {integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==} + '@oxc-project/types@0.140.0': + resolution: {integrity: sha512-h5LUOzGArYemnW1NMz/DuuQhBi96J6JL2Bk8zE4kvqxB5Sg3jxmCiH4uyOWHDkiKSt5vWlG4FIwCR/DbstcNRQ==} '@quansync/fs@1.0.0': resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} - '@rolldown/binding-android-arm64@1.1.5': - resolution: {integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==} + '@rolldown/binding-android-arm64@1.2.0': + resolution: {integrity: sha512-9yB1l95IrJuNGDFdOYe79vdApdz6WWBCObE+rQ2LUliYUlcyFwSYIb2xb5/Ifw7dAtMy2ZqNyd8QTSOc7duAKw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.1.5': - resolution: {integrity: sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==} + '@rolldown/binding-darwin-arm64@1.2.0': + resolution: {integrity: sha512-pexNaW9ACLUOaBITOpU6qVu4VrsOFIjTv6bzgu0YUATo4eUJx0V605PxwZfndpPOn0ilqGqvGQ0M8UW0IE24jg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.1.5': - resolution: {integrity: sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==} + '@rolldown/binding-darwin-x64@1.2.0': + resolution: {integrity: sha512-NqKYaq0355ZmNMG4QGpxtEDxsc7tGDhjhCm4PpE0cwnBW+5Il95LJyq414niEiaKLVjnVHBEjSo1wngKxJNiFw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.1.5': - resolution: {integrity: sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==} + '@rolldown/binding-freebsd-x64@1.2.0': + resolution: {integrity: sha512-3vPoHzh6eBTz9IbB0/qZdSr0Qeks2echn+I4cHu2joV74VriPDdldswksEDzrl1mBB+oPRi+67+3Ib59paxIPQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.1.5': - resolution: {integrity: sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==} + '@rolldown/binding-linux-arm-gnueabihf@1.2.0': + resolution: {integrity: sha512-E6NNefZ1bUVmKJq2tJkf45J4Zyczj7qm9rUT7NY+Xo2474Y13qWAwc2tvBt0BAVbmtXR1llkxXg0Ou1jbDf2SQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.1.5': - resolution: {integrity: sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==} + '@rolldown/binding-linux-arm64-gnu@1.2.0': + resolution: {integrity: sha512-D+TgkdgM1vu+7/Fpf8+v0ARW+RXEP9Ccazgm8zQ4JFFd9Q7SrYQ2TakU5S5ihazQDgpKyAgZDOcIFsvoHmTZ8w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.1.5': - resolution: {integrity: sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==} + '@rolldown/binding-linux-arm64-musl@1.2.0': + resolution: {integrity: sha512-wUqdwJBbAv0APN87GecstdMUtLjjNTs0hBALpxETD73mccFxdmt/XeizXDtN5RAlBwNKmI+Tg+blect2G+8IeQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.1.5': - resolution: {integrity: sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==} + '@rolldown/binding-linux-ppc64-gnu@1.2.0': + resolution: {integrity: sha512-9DtF35qR9/NrfhM4oxLplCzVVjE+KKm8Pjemi0i/sdhAWkUasjmSo8WTTubNJClhSHCfyk2yeyoXDQEDPtDAAw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.1.5': - resolution: {integrity: sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==} + '@rolldown/binding-linux-s390x-gnu@1.2.0': + resolution: {integrity: sha512-RzuHrBh8X8Hntd2N4VR02QGEciq/9JhcZoTpR/Cee6otRrlILGCf3cg2ygHuih+ZebUnWmMrDX6ITI85btO6rQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.1.5': - resolution: {integrity: sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==} + '@rolldown/binding-linux-x64-gnu@1.2.0': + resolution: {integrity: sha512-MK7L0018jjh1jR3mh21G2j1zAVcpscJBlPo2z19pRjv2XOYGRhaV4LyiD8HO6nCDdZln9IFgCMIV5yt4E3klGQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.1.5': - resolution: {integrity: sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==} + '@rolldown/binding-linux-x64-musl@1.2.0': + resolution: {integrity: sha512-gyrxLQ9NfGb/9LoVnC4kb9miUghw1mghnkfYvNHSnVIXriabnfgGPUP4RLcJm87q3KgYz4FYUG8IDiWUT+CpSw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.1.5': - resolution: {integrity: sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==} + '@rolldown/binding-openharmony-arm64@1.2.0': + resolution: {integrity: sha512-/6VFMQGRmrhP77KXDC+StIxGzcNp5JOIyYtw0CQ8gPlzhpiIRucYfoM5FaFamHd5BJYIdH86yfP46l1p3WdrFA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.1.5': - resolution: {integrity: sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==} + '@rolldown/binding-wasm32-wasi@1.2.0': + resolution: {integrity: sha512-rwdbUL465kisF24WEJLvP3JrEG6E5GRuIHt5wpMwHGERtHe4Wm2CIvtf5gTBgr2tGOHKh5NdKEAFS2VkOPE91g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.1.5': - resolution: {integrity: sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==} + '@rolldown/binding-win32-arm64-msvc@1.2.0': + resolution: {integrity: sha512-+5suHwRiKGmhwyUaNT8a5QbrBvLFh2DbO910TEmGRH1aSxwrCezodvGQnulv4uiWEIv1Kq4ypRsJ5+O+ry1DiA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.1.5': - resolution: {integrity: sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==} + '@rolldown/binding-win32-x64-msvc@1.2.0': + resolution: {integrity: sha512-WfFv6/qGufotqBSBzBYwgpCkJBk8Nj7697LL9vTz/XWc67e0r3oewu8iMRwQj3AUL45GVD7wVsPjCsAAtW66Wg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -277,10 +281,6 @@ packages: resolution: {integrity: sha512-d9dUmWVA7MMiKobL3VpLF8P2aeanRTu6ypG2OIaEv/ZHH/SUQ2iHOVyi5wAPjQ+HmnMuL0whK9ez8I/raWbtIg==} engines: {node: '>=v16'} - '@sapphire/snowflake@3.5.3': - resolution: {integrity: sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==} - engines: {node: '>=v14.0.0', npm: '>=7.0.0'} - '@sapphire/snowflake@3.5.5': resolution: {integrity: sha512-xzvBr1Q1c4lCe7i6sRnrofxeO1QTP/LKQ6A6qy0iB4x5yfiSfARMEQEghojzTNALDTcv8En04qYNIco9/K9eZQ==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} @@ -786,8 +786,8 @@ packages: discord-api-types@0.38.49: resolution: {integrity: sha512-XnqcWmnFZFAE8ZM8SHAw9DIV8D3Or00rMQ8iQLotrEA2PmXhl+ykaf6L6q4l474hrSUH1JaYcv+iOMRWp2p6Tg==} - discord.js@14.26.5: - resolution: {integrity: sha512-SGYgjiAs0o8ZzMC97XmFXKONyairJ9YzVda+LvoSKs9YYh2gPtQhY+liaV6H/w72jxYbu9ggiSqAXoF3FLOH4A==} + discord.js@14.27.0: + resolution: {integrity: sha512-qHbFlFG2N7y3LjPySYsL6A1+BnX6bkTVgo842EX0CqVPk/KTMwZkojPHEXKsQUpWZNyz5BISNHK1cPpQw0+m4A==} engines: {node: '>=18'} dts-resolver@3.0.0: @@ -1101,8 +1101,8 @@ packages: vue-tsc: optional: true - rolldown@1.1.5: - resolution: {integrity: sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==} + rolldown@1.2.0: + resolution: {integrity: sha512-u7tgm5l4Yw1iTqUL4EcYOAt7fFvCgQMLeidrnD4GALlC6aOznCjezYajgxeyKw27u0Q5N7fwgCzjVyPIWzwuBA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -1144,14 +1144,14 @@ packages: ts-mixer@6.0.4: resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} - tsdown@0.22.7: - resolution: {integrity: sha512-4egbOzc9dxVv/QS+gDV75FIxDIjQQeOnXBlUuikyjmn0ozuc6FW11djJjEEo3vqkuJRygpnKHurnj+Iwftk4VA==} + tsdown@0.22.9: + resolution: {integrity: sha512-/0QEjQEhOU1t1YxOIAGzFN7bIssd8P0pBpkOmNLCQi3c5UtrcMF5bvq3f30xHJNW9QCA9aUNcNAorMr2CTd6Lg==} engines: {node: ^22.18.0 || >=24.11.0} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.22.7 - '@tsdown/exe': 0.22.7 + '@tsdown/css': 0.22.9 + '@tsdown/exe': 0.22.9 '@vitejs/devtools': '*' publint: ^0.3.8 tsx: '*' @@ -1207,6 +1207,10 @@ packages: resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==} engines: {node: '>=18.17'} + undici@6.27.0: + resolution: {integrity: sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==} + engines: {node: '>=18.17'} + unrs-resolver@1.12.2: resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} @@ -1283,6 +1287,18 @@ snapshots: tslib: 2.8.1 undici: 6.24.1 + '@discordjs/rest@2.6.2': + dependencies: + '@discordjs/collection': 2.1.1 + '@discordjs/util': 1.2.0 + '@sapphire/async-queue': 1.5.5 + '@sapphire/snowflake': 3.5.5 + '@vladfrangu/async_event_emitter': 2.4.7 + discord-api-types: 0.38.49 + magic-bytes.js: 1.13.0 + tslib: 2.8.1 + undici: 6.27.0 + '@discordjs/util@1.2.0': dependencies: discord-api-types: 0.38.49 @@ -1308,7 +1324,7 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/core@1.11.1': + '@emnapi/core@1.11.2': dependencies: '@emnapi/wasi-threads': 1.2.2 tslib: 2.8.1 @@ -1319,7 +1335,7 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.11.1': + '@emnapi/runtime@1.11.2': dependencies: tslib: 2.8.1 optional: true @@ -1391,66 +1407,66 @@ snapshots: '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 '@tybys/wasm-util': 0.10.3 optional: true - '@oxc-project/types@0.139.0': {} + '@oxc-project/types@0.140.0': {} '@quansync/fs@1.0.0': dependencies: quansync: 1.0.0 - '@rolldown/binding-android-arm64@1.1.5': + '@rolldown/binding-android-arm64@1.2.0': optional: true - '@rolldown/binding-darwin-arm64@1.1.5': + '@rolldown/binding-darwin-arm64@1.2.0': optional: true - '@rolldown/binding-darwin-x64@1.1.5': + '@rolldown/binding-darwin-x64@1.2.0': optional: true - '@rolldown/binding-freebsd-x64@1.1.5': + '@rolldown/binding-freebsd-x64@1.2.0': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.1.5': + '@rolldown/binding-linux-arm-gnueabihf@1.2.0': optional: true - '@rolldown/binding-linux-arm64-gnu@1.1.5': + '@rolldown/binding-linux-arm64-gnu@1.2.0': optional: true - '@rolldown/binding-linux-arm64-musl@1.1.5': + '@rolldown/binding-linux-arm64-musl@1.2.0': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.1.5': + '@rolldown/binding-linux-ppc64-gnu@1.2.0': optional: true - '@rolldown/binding-linux-s390x-gnu@1.1.5': + '@rolldown/binding-linux-s390x-gnu@1.2.0': optional: true - '@rolldown/binding-linux-x64-gnu@1.1.5': + '@rolldown/binding-linux-x64-gnu@1.2.0': optional: true - '@rolldown/binding-linux-x64-musl@1.1.5': + '@rolldown/binding-linux-x64-musl@1.2.0': optional: true - '@rolldown/binding-openharmony-arm64@1.1.5': + '@rolldown/binding-openharmony-arm64@1.2.0': optional: true - '@rolldown/binding-wasm32-wasi@1.1.5': + '@rolldown/binding-wasm32-wasi@1.2.0': dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) optional: true - '@rolldown/binding-win32-arm64-msvc@1.1.5': + '@rolldown/binding-win32-arm64-msvc@1.2.0': optional: true - '@rolldown/binding-win32-x64-msvc@1.1.5': + '@rolldown/binding-win32-x64-msvc@1.2.0': optional: true '@rolldown/pluginutils@1.0.1': {} @@ -1462,8 +1478,6 @@ snapshots: fast-deep-equal: 3.1.3 lodash: 4.18.1 - '@sapphire/snowflake@3.5.3': {} - '@sapphire/snowflake@3.5.5': {} '@tybys/wasm-util@0.10.3': @@ -1817,21 +1831,21 @@ snapshots: discord-api-types@0.38.49: {} - discord.js@14.26.5: + discord.js@14.27.0: dependencies: '@discordjs/builders': 1.14.1 '@discordjs/collection': 1.5.3 '@discordjs/formatters': 0.6.2 - '@discordjs/rest': 2.6.1 + '@discordjs/rest': 2.6.2 '@discordjs/util': 1.2.0 '@discordjs/ws': 1.2.3 - '@sapphire/snowflake': 3.5.3 + '@sapphire/snowflake': 3.5.5 discord-api-types: 0.38.49 fast-deep-equal: 3.1.3 lodash.snakecase: 4.1.1 magic-bytes.js: 1.13.0 tslib: 2.8.1 - undici: 6.24.1 + undici: 6.27.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -2096,12 +2110,12 @@ snapshots: resolve-pkg-maps@1.0.0: {} - rolldown-plugin-dts@0.27.9(rolldown@1.1.5)(typescript@7.0.2): + rolldown-plugin-dts@0.27.9(rolldown@1.2.0)(typescript@7.0.2): dependencies: dts-resolver: 3.0.0 get-tsconfig: 5.0.0-beta.5 obug: 2.1.3 - rolldown: 1.1.5 + rolldown: 1.2.0 yuku-ast: 0.1.7 yuku-codegen: 0.6.1 yuku-parser: 0.6.1 @@ -2110,26 +2124,26 @@ snapshots: transitivePeerDependencies: - oxc-resolver - rolldown@1.1.5: + rolldown@1.2.0: dependencies: - '@oxc-project/types': 0.139.0 + '@oxc-project/types': 0.140.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.1.5 - '@rolldown/binding-darwin-arm64': 1.1.5 - '@rolldown/binding-darwin-x64': 1.1.5 - '@rolldown/binding-freebsd-x64': 1.1.5 - '@rolldown/binding-linux-arm-gnueabihf': 1.1.5 - '@rolldown/binding-linux-arm64-gnu': 1.1.5 - '@rolldown/binding-linux-arm64-musl': 1.1.5 - '@rolldown/binding-linux-ppc64-gnu': 1.1.5 - '@rolldown/binding-linux-s390x-gnu': 1.1.5 - '@rolldown/binding-linux-x64-gnu': 1.1.5 - '@rolldown/binding-linux-x64-musl': 1.1.5 - '@rolldown/binding-openharmony-arm64': 1.1.5 - '@rolldown/binding-wasm32-wasi': 1.1.5 - '@rolldown/binding-win32-arm64-msvc': 1.1.5 - '@rolldown/binding-win32-x64-msvc': 1.1.5 + '@rolldown/binding-android-arm64': 1.2.0 + '@rolldown/binding-darwin-arm64': 1.2.0 + '@rolldown/binding-darwin-x64': 1.2.0 + '@rolldown/binding-freebsd-x64': 1.2.0 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.0 + '@rolldown/binding-linux-arm64-gnu': 1.2.0 + '@rolldown/binding-linux-arm64-musl': 1.2.0 + '@rolldown/binding-linux-ppc64-gnu': 1.2.0 + '@rolldown/binding-linux-s390x-gnu': 1.2.0 + '@rolldown/binding-linux-x64-gnu': 1.2.0 + '@rolldown/binding-linux-x64-musl': 1.2.0 + '@rolldown/binding-openharmony-arm64': 1.2.0 + '@rolldown/binding-wasm32-wasi': 1.2.0 + '@rolldown/binding-win32-arm64-msvc': 1.2.0 + '@rolldown/binding-win32-x64-msvc': 1.2.0 semver@7.8.5: {} @@ -2156,7 +2170,7 @@ snapshots: ts-mixer@6.0.4: {} - tsdown@0.22.7(typescript@7.0.2): + tsdown@0.22.9(typescript@7.0.2): dependencies: ansis: 4.3.1 cac: 7.0.0 @@ -2166,8 +2180,8 @@ snapshots: import-without-cache: 0.4.0 obug: 2.1.3 picomatch: 4.0.5 - rolldown: 1.1.5 - rolldown-plugin-dts: 0.27.9(rolldown@1.1.5)(typescript@7.0.2) + rolldown: 1.2.0 + rolldown-plugin-dts: 0.27.9(rolldown@1.2.0)(typescript@7.0.2) semver: 7.8.5 tinyexec: 1.2.4 tinyglobby: 0.2.17 @@ -2230,6 +2244,8 @@ snapshots: undici@6.24.1: {} + undici@6.27.0: {} + unrs-resolver@1.12.2: dependencies: napi-postinstall: 0.3.4 From 3dcc611d228634c12a94b386684b47d2615ea7f1 Mon Sep 17 00:00:00 2001 From: Tweenty Date: Sun, 19 Jul 2026 13:13:57 +0200 Subject: [PATCH 04/10] release: 1.8.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c35f95d..12c6ecb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@stelliajs/framework", - "version": "1.8.0", + "version": "1.8.1", "type": "module", "description": "A framework for simplifying the creation of discord bots", "author": "Tweenty_", From 83c48c599c5ce84d2665e8890d6137556c196fb6 Mon Sep 17 00:00:00 2001 From: Tweenty Date: Sun, 19 Jul 2026 17:25:48 +0200 Subject: [PATCH 05/10] feat: custom emojis --- src/client/StelliaClient.ts | 22 ++++++++++++++----- src/client/StelliaUtils.ts | 44 +++++++++++++++++++++++++++++++++++-- src/typescript/types.ts | 6 ++++- 3 files changed, 64 insertions(+), 8 deletions(-) diff --git a/src/client/StelliaClient.ts b/src/client/StelliaClient.ts index 22c582d..41ab780 100644 --- a/src/client/StelliaClient.ts +++ b/src/client/StelliaClient.ts @@ -15,6 +15,7 @@ import { } from "@managers/index.js"; import { type ClientEnvironment, + type CustomEmojis, type GuildConfiguration, type GuildsConfiguration, type Manager, @@ -22,10 +23,12 @@ import { } from "@typescript/index.js"; import { logger } from "@utils/index.js"; -export class StelliaClient extends Client { +export class StelliaClient = Record> extends Client { private utils: StelliaUtils; public readonly managers: Managers = {}; public readonly environment?: ClientEnvironment; + public customEmojis: CustomEmojis = {} as CustomEmojis; + public readonly emojiEnum?: EmojiEnum; private constructor(clientOptions: ClientOptions, stelliaOptions?: StelliaOptions) { super(clientOptions); @@ -34,6 +37,10 @@ export class StelliaClient extends Client { logger.errorWithInformation("Unhandled promise rejection", error); }); @@ -43,8 +50,8 @@ export class StelliaClient extends Client { - const client = new StelliaClient(clientOptions, stelliaOptions); + public static async create = Record>(clientOptions: ClientOptions, stelliaOptions?: StelliaOptions): Promise> { + const client = new StelliaClient(clientOptions, stelliaOptions); await client.initializeAsyncFields(stelliaOptions); return client; @@ -68,6 +75,10 @@ export class StelliaClient extends Client => { + await this.utils.initializeCustomEmojis(); + }; + public getGuildsConfiguration = async (): Promise => { const chosenEnvironment = process.argv.find((arg) => arg.startsWith("--config"))?.split("=")[1]; if (!chosenEnvironment) { @@ -157,7 +168,7 @@ export class StelliaClient extends Client = Record> { managers?: { autoCompletes?: ManagerOptions; buttons?: ManagerOptions; @@ -168,4 +179,5 @@ interface StelliaOptions { modals?: ManagerOptions; }; environment?: ClientEnvironment; -} + emojis?: EmojiEnum; +} \ No newline at end of file diff --git a/src/client/StelliaUtils.ts b/src/client/StelliaUtils.ts index 79a7600..87a890e 100644 --- a/src/client/StelliaUtils.ts +++ b/src/client/StelliaUtils.ts @@ -30,10 +30,16 @@ import { type SelectMenuStructureWithGuildConfiguration, type SelectMenuStructureWithoutGuildConfiguration } from "@structures/index.js"; -import { type GuildConfiguration, type GuildsConfiguration, InteractionType, type StelliaLocale } from "@typescript/index.js"; +import { + type CustomEmojis, + type GuildConfiguration, + type GuildsConfiguration, + InteractionType, + type StelliaLocale +} from "@typescript/index.js"; import { logger } from "@utils/index.js"; -export class StelliaUtils { +export class StelliaUtils = Record> { public readonly client: StelliaClient; private readonly interactionHandlers: Map) => Promise>; private guildsConfiguration: GuildsConfiguration; @@ -75,6 +81,40 @@ export class StelliaUtils { } }; + public initializeCustomEmojis = async (): Promise => { + const emojiEnum = this.client.emojiEnum; + if (!emojiEnum) { + return; + } + + if (!this.client.application) { + logger.warn("Application not available, cannot resolve custom emojis"); + return; + } + + try { + const applicationEmojis = await this.client.application.emojis.fetch(); + const customEmojis = {} as CustomEmojis; + const typedEmojiEnum = emojiEnum as Record; + + for (const key of Object.keys(emojiEnum) as (keyof EmojiEnum)[]) { + const emojiName = typedEmojiEnum[key]; + const emoji = applicationEmojis.find((appEmoji) => appEmoji.name === emojiName); + if (!emoji) { + logger.warn(`Custom emoji "${emojiName}" not found on this application`); + continue; + } + + customEmojis[key] = emoji; + } + + this.client.customEmojis = customEmojis; + logger.success("Custom emojis resolved successfully"); + } catch (error: unknown) { + logger.errorWithInformation("Error while resolving custom emojis", error); + } + }; + public getGuildConfiguration = (guildId: string): CustomGuildConfiguration | null => { if (!this.client.environment?.areGuildsConfigurationEnabled || !this.guildsConfiguration) { return null; diff --git a/src/typescript/types.ts b/src/typescript/types.ts index 7772649..253e170 100644 --- a/src/typescript/types.ts +++ b/src/typescript/types.ts @@ -1,4 +1,4 @@ -import { type Snowflake } from "discord.js"; +import { type ApplicationEmoji, type Snowflake } from "discord.js"; import { type AutoCompleteManager, type ButtonManager, @@ -67,3 +67,7 @@ export interface GuildConfiguration { guild: BaseGuildConfiguration; } export type GuildConfigurationType = GuildConfiguration | null; + +export type CustomEmojis> = { + [Key in keyof EmojiEnum]: ApplicationEmoji; +}; \ No newline at end of file From 42e6146dfbc62c6b23166b3623a4dfc0f95b6b1b Mon Sep 17 00:00:00 2001 From: Tweenty Date: Sun, 19 Jul 2026 18:48:03 +0200 Subject: [PATCH 06/10] refactor: managers + events typing --- src/client/StelliaClient.ts | 24 ++++++-- src/client/StelliaUtils.ts | 2 +- src/managers/AutoCompleteManager.ts | 42 ++----------- src/managers/ButtonManager.ts | 42 ++----------- src/managers/CommandManager.ts | 42 ++----------- src/managers/ContextMenuManager.ts | 42 ++----------- src/managers/EventManager.ts | 95 +++++++++++++++++------------ src/managers/ModalManager.ts | 42 ++----------- src/managers/SelectMenuManager.ts | 42 ++----------- src/managers/SimpleManager.ts | 39 ++++++++++++ src/managers/index.ts | 1 + src/structures/Event.ts | 56 +++++++++++------ src/structures/Interaction.ts | 2 +- src/utils/ComponentUtils.ts | 18 +++--- 14 files changed, 193 insertions(+), 296 deletions(-) create mode 100644 src/managers/SimpleManager.ts diff --git a/src/client/StelliaClient.ts b/src/client/StelliaClient.ts index 41ab780..2a8a01d 100644 --- a/src/client/StelliaClient.ts +++ b/src/client/StelliaClient.ts @@ -23,7 +23,12 @@ import { } from "@typescript/index.js"; import { logger } from "@utils/index.js"; -export class StelliaClient = Record> extends Client { +export class StelliaClient< + Ready extends boolean = boolean, + EmojiEnum extends Record = Record, + TConfig extends GuildConfiguration = GuildConfiguration, + TGuildsConfig extends GuildsConfiguration = GuildsConfiguration +> extends Client { private utils: StelliaUtils; public readonly managers: Managers = {}; public readonly environment?: ClientEnvironment; @@ -50,8 +55,15 @@ export class StelliaClient = Record>(clientOptions: ClientOptions, stelliaOptions?: StelliaOptions): Promise> { - const client = new StelliaClient(clientOptions, stelliaOptions); + public static async create< + EmojiEnum extends Record = Record, + TConfig extends GuildConfiguration = GuildConfiguration, + TGuildsConfig extends GuildsConfiguration = GuildsConfiguration + >( + clientOptions: ClientOptions, + stelliaOptions?: StelliaOptions + ): Promise> { + const client = new StelliaClient(clientOptions, stelliaOptions); await client.initializeAsyncFields(stelliaOptions); return client; @@ -79,7 +91,7 @@ export class StelliaClient(): Promise => { + public getGuildsConfiguration = async (): Promise => { const chosenEnvironment = process.argv.find((arg) => arg.startsWith("--config"))?.split("=")[1]; if (!chosenEnvironment) { throw new Error("Environment not provided"); @@ -111,8 +123,8 @@ export class StelliaClient(guildId: string): CustomGuildConfiguration | null => { - return this.utils.getGuildConfiguration(guildId); + public getGuildConfiguration = (guildId: string): TConfig | null => { + return this.utils.getGuildConfiguration(guildId) as TConfig | null; }; public handleInteraction = async (interaction: Interaction<"cached">): Promise => { diff --git a/src/client/StelliaUtils.ts b/src/client/StelliaUtils.ts index 87a890e..6fe3d6c 100644 --- a/src/client/StelliaUtils.ts +++ b/src/client/StelliaUtils.ts @@ -105,7 +105,7 @@ export class StelliaUtils = Record { - private autoCompletes: Collection = new Collection(); +export class AutoCompleteManager extends SimpleManager { private constructor(client: StelliaClient, directoryPath: string) { - super(client, directoryPath); + super(client, directoryPath, "auto completes"); } - public static async create(client: StelliaClient, directory: string): Promise { - const manager = new AutoCompleteManager(client, directory); + public static async create(client: StelliaClient, directoryPath: string): Promise { + const manager = new AutoCompleteManager(client, directoryPath); await manager.loadData(); return manager; } - - public async loadData(): Promise { - this.autoCompletes = await requiredFiles(this.directoryPath); - this.setManagerLoaded(); - - logger.info(`Loaded ${this.autoCompletes.size} auto completes`); - } - - public getByCustomId(id: InteractionCustomId): AutoCompleteStructure | null { - return this.autoCompletes.get(id) ?? null; - } - - public getByRegex(id: InteractionCustomId): AutoCompleteStructure | null { - let autoComplete: AutoCompleteStructure | null = null; - for (const [customId, action] of this.autoCompletes.entries()) { - if (customId instanceof RegExp && customId.test(id)) { - autoComplete = action; - break; - } - } - - return autoComplete; - } - - public getAll(): Collection { - return this.autoCompletes; - } } diff --git a/src/managers/ButtonManager.ts b/src/managers/ButtonManager.ts index 36ef766..a4641ac 100644 --- a/src/managers/ButtonManager.ts +++ b/src/managers/ButtonManager.ts @@ -1,48 +1,16 @@ -import { Collection } from "discord.js"; import { type StelliaClient } from "@client/index.js"; -import { BaseManager } from "@managers/index.js"; +import { SimpleManager } from "@managers/index.js"; import { type ButtonStructure } from "@structures/index.js"; -import { type InteractionCustomId, type StructureCustomId } from "@typescript/index.js"; -import { logger, requiredFiles } from "@utils/index.js"; - -export class ButtonManager extends BaseManager { - public buttons: Collection = new Collection(); +export class ButtonManager extends SimpleManager { private constructor(client: StelliaClient, directoryPath: string) { - super(client, directoryPath); + super(client, directoryPath, "buttons"); } - public static async create(client: StelliaClient, directory: string): Promise { - const manager = new ButtonManager(client, directory); + public static async create(client: StelliaClient, directoryPath: string): Promise { + const manager = new ButtonManager(client, directoryPath); await manager.loadData(); return manager; } - - public async loadData(): Promise { - this.buttons = await requiredFiles(this.directoryPath); - this.setManagerLoaded(); - - logger.info(`Loaded ${this.buttons.size} buttons`); - } - - public getByCustomId(id: InteractionCustomId): ButtonStructure | null { - return this.buttons.get(id) ?? null; - } - - public getByRegex(id: InteractionCustomId): ButtonStructure | null { - let button: ButtonStructure | null = null; - for (const [customId, action] of this.buttons.entries()) { - if (customId instanceof RegExp && customId.test(id)) { - button = action; - break; - } - } - - return button; - } - - public getAll(): Collection { - return this.buttons; - } } diff --git a/src/managers/CommandManager.ts b/src/managers/CommandManager.ts index 19dff24..bcc0be0 100644 --- a/src/managers/CommandManager.ts +++ b/src/managers/CommandManager.ts @@ -1,48 +1,16 @@ -import { Collection } from "discord.js"; import { type StelliaClient } from "@client/index.js"; -import { BaseManager } from "@managers/index.js"; +import { SimpleManager } from "@managers/index.js"; import { type CommandStructure } from "@structures/index.js"; -import { type InteractionCustomId, type StructureCustomId } from "@typescript/index.js"; -import { logger, requiredFiles } from "@utils/index.js"; - -export class CommandManager extends BaseManager { - private commands: Collection = new Collection(); +export class CommandManager extends SimpleManager { private constructor(client: StelliaClient, directoryPath: string) { - super(client, directoryPath); + super(client, directoryPath, "commands"); } - public static async create(client: StelliaClient, directory: string): Promise { - const manager = new CommandManager(client, directory); + public static async create(client: StelliaClient, directoryPath: string): Promise { + const manager = new CommandManager(client, directoryPath); await manager.loadData(); return manager; } - - public async loadData(): Promise { - this.commands = await requiredFiles(this.directoryPath); - this.setManagerLoaded(); - - logger.info(`Loaded ${this.commands.size} commands`); - } - - public getByCustomId(id: InteractionCustomId): CommandStructure | null { - return this.commands.get(id) ?? null; - } - - public getByRegex(id: InteractionCustomId): CommandStructure | null { - let command: CommandStructure | null = null; - for (const [customId, action] of this.commands.entries()) { - if (customId instanceof RegExp && customId.test(id)) { - command = action; - break; - } - } - - return command; - } - - public getAll(): Collection { - return this.commands; - } } diff --git a/src/managers/ContextMenuManager.ts b/src/managers/ContextMenuManager.ts index a7a80fe..16d3961 100644 --- a/src/managers/ContextMenuManager.ts +++ b/src/managers/ContextMenuManager.ts @@ -1,48 +1,16 @@ -import { Collection } from "discord.js"; import { type StelliaClient } from "@client/index.js"; -import { BaseManager } from "@managers/index.js"; +import { SimpleManager } from "@managers/index.js"; import { type ContextMenuStructure } from "@structures/index.js"; -import { type InteractionCustomId, type StructureCustomId } from "@typescript/index.js"; -import { logger, requiredFiles } from "@utils/index.js"; - -export class ContextMenuManager extends BaseManager { - private contextMenus: Collection = new Collection(); +export class ContextMenuManager extends SimpleManager { private constructor(client: StelliaClient, directoryPath: string) { - super(client, directoryPath); + super(client, directoryPath, "context menus"); } - public static async create(client: StelliaClient, directory: string): Promise { - const manager = new ContextMenuManager(client, directory); + public static async create(client: StelliaClient, directoryPath: string): Promise { + const manager = new ContextMenuManager(client, directoryPath); await manager.loadData(); return manager; } - - public async loadData(): Promise { - this.contextMenus = await requiredFiles(this.directoryPath); - this.setManagerLoaded(); - - logger.info(`Loaded ${this.contextMenus.size} context menus`); - } - - public getByCustomId(id: InteractionCustomId): ContextMenuStructure | null { - return this.contextMenus.get(id) ?? null; - } - - public getByRegex(id: InteractionCustomId): ContextMenuStructure | null { - let contextMenu: ContextMenuStructure | null = null; - for (const [customId, action] of this.contextMenus.entries()) { - if (customId instanceof RegExp && customId.test(id)) { - contextMenu = action; - break; - } - } - - return contextMenu; - } - - public getAll(): Collection { - return this.contextMenus; - } } diff --git a/src/managers/EventManager.ts b/src/managers/EventManager.ts index 2b9778f..570123d 100644 --- a/src/managers/EventManager.ts +++ b/src/managers/EventManager.ts @@ -1,14 +1,6 @@ -import { Collection } from "discord.js"; +import { type Awaitable, Collection } from "discord.js"; import { type StelliaClient } from "@client/index.js"; import { BaseManager } from "@managers/index.js"; -import { - type ClientEventsArgs, - type EventStructure, - type EventStructureWithAllGuildsConfiguration, - type EventStructureWithConfiguration, - type EventStructureWithGuildConfiguration, - type EventStructureWithoutGuildConfiguration -} from "@structures/index.js"; import { type GuildConfigurationType, type GuildsConfiguration, @@ -16,6 +8,9 @@ import { type StructureCustomId } from "@typescript/index.js"; import { logger, requiredFiles } from "@utils/index.js"; +import { type EventStructure, type EventStructureWithGuildConfiguration } from "structures/index.js"; + +type UnsafeEventExecute = (client: StelliaClient, ...args: unknown[]) => Awaitable; export class EventManager extends BaseManager { private events: Collection = new Collection(); @@ -70,7 +65,7 @@ export class EventManager extends BaseManager { private async loadEventWithGuildConfiguration(eventStructure: EventStructure) { const { name, once } = eventStructure.data; - const event = eventStructure as EventStructureWithGuildConfiguration; + const event = eventStructure as EventStructureWithGuildConfiguration; if (once) { this.client.once(name, (...args) => this.eventHandler(event, ...args)); @@ -79,52 +74,74 @@ export class EventManager extends BaseManager { } } - private readonly eventHandler = (event: EventStructureWithConfiguration, ...args: ClientEventsArgs) => { - const mainArgument = args[0]; - const guildConfiguration = this.getGuildConfiguration(mainArgument); - if (guildConfiguration) { - const eventStructure = event as EventStructureWithGuildConfiguration; - return eventStructure.execute(this.client, guildConfiguration, ...args); - } + private readonly eventHandler = async (event: EventStructureWithGuildConfiguration, ...args: unknown[]): Promise => { + try { + const execute = event.execute as UnsafeEventExecute; + const mainArgument = args[0]; + const guildConfiguration = this.getGuildConfiguration(mainArgument); - const eventStructure = event as EventStructureWithAllGuildsConfiguration; - return eventStructure.execute(this.client, this.guildsConfiguration, ...args); + if (guildConfiguration) { + await execute(this.client, guildConfiguration, ...args); + return; + } + + await execute(this.client, this.guildsConfiguration, ...args); + } catch (error: unknown) { + logger.errorWithInformation(`Error while executing event "${String(event.data.name)}"`, error); + } }; private async loadEventWithoutGuildConfiguration(eventStructure: EventStructure): Promise { const { name, once } = eventStructure.data; - const event = eventStructure as EventStructureWithoutGuildConfiguration; + const execute = eventStructure.execute as UnsafeEventExecute; + + const handler = async (...args: unknown[]): Promise => { + try { + await execute(this.client, ...args); + } catch (error: unknown) { + logger.errorWithInformation(`Error while executing event "${String(name)}"`, error); + } + }; if (once) { - this.client.once(name, (...args) => event.execute(this.client, ...args)); + this.client.once(name, handler); } else { - this.client.on(name, (...args) => event.execute(this.client, ...args)); + this.client.on(name, handler); } } - private getGuildConfiguration(mainArgument: ClientEventsArgs[0]): GuildConfigurationType | undefined { - if (mainArgument && typeof mainArgument === "object") { - if ("guildId" in mainArgument && mainArgument.guildId) { - return this.client.getGuildConfiguration(mainArgument.guildId); - } - if ("guild" in mainArgument && mainArgument.guild) { - return this.client.getGuildConfiguration(mainArgument.guild.id); - } - if ( - "message" in mainArgument && - mainArgument.message && - typeof mainArgument.message === "object" && - "guild" in mainArgument.message && - mainArgument.message.guild && - "id" in mainArgument.message.guild - ) { - return this.client.getGuildConfiguration(mainArgument.message.guild.id); + private getGuildConfiguration(mainArgument: unknown): GuildConfigurationType | undefined { + const guildId = this.extractGuildId(mainArgument); + return guildId ? this.client.getGuildConfiguration(guildId) : undefined; + } + + private extractGuildId(mainArgument: unknown): string | undefined { + if (!mainArgument || typeof mainArgument !== "object") { + return undefined; + } + + if ("guildId" in mainArgument && typeof mainArgument.guildId === "string") { + return mainArgument.guildId; + } + + if ("guild" in mainArgument && this.isObjectWithStringId(mainArgument.guild)) { + return mainArgument.guild.id; + } + + if ("message" in mainArgument && typeof mainArgument.message === "object" && mainArgument.message !== null) { + const message = mainArgument.message as Record; + if ("guild" in message && this.isObjectWithStringId(message.guild)) { + return message.guild.id; } } return undefined; } + private isObjectWithStringId(value: unknown): value is { id: string } { + return typeof value === "object" && value !== null && "id" in value && typeof (value as Record).id === "string"; + } + private async initializeGuildsConfiguration(): Promise { if (this.client.environment?.areGuildsConfigurationEnabled) { try { diff --git a/src/managers/ModalManager.ts b/src/managers/ModalManager.ts index c4008cc..d560ddf 100644 --- a/src/managers/ModalManager.ts +++ b/src/managers/ModalManager.ts @@ -1,48 +1,16 @@ -import { Collection } from "discord.js"; import { type StelliaClient } from "@client/index.js"; -import { BaseManager } from "@managers/index.js"; +import { SimpleManager } from "@managers/index.js"; import { type ModalStructure } from "@structures/index.js"; -import { type InteractionCustomId, type StructureCustomId } from "@typescript/index.js"; -import { logger, requiredFiles } from "@utils/index.js"; - -export class ModalManager extends BaseManager { - private modals: Collection = new Collection(); +export class ModalManager extends SimpleManager { private constructor(client: StelliaClient, directoryPath: string) { - super(client, directoryPath); + super(client, directoryPath, "modals"); } - public static async create(client: StelliaClient, directory: string): Promise { - const manager = new ModalManager(client, directory); + public static async create(client: StelliaClient, directoryPath: string): Promise { + const manager = new ModalManager(client, directoryPath); await manager.loadData(); return manager; } - - public async loadData(): Promise { - this.modals = await requiredFiles(this.directoryPath); - this.setManagerLoaded(); - - logger.info(`Loaded ${this.modals.size} modals`); - } - - public getByCustomId(id: InteractionCustomId): ModalStructure | null { - return this.modals.get(id) ?? null; - } - - public getByRegex(id: InteractionCustomId): ModalStructure | null { - let modal: ModalStructure | null = null; - for (const [customId, action] of this.modals.entries()) { - if (customId instanceof RegExp && customId.test(id)) { - modal = action; - break; - } - } - - return modal; - } - - public getAll(): Collection { - return this.modals; - } } diff --git a/src/managers/SelectMenuManager.ts b/src/managers/SelectMenuManager.ts index efc7a75..ad9e22b 100644 --- a/src/managers/SelectMenuManager.ts +++ b/src/managers/SelectMenuManager.ts @@ -1,48 +1,16 @@ -import { Collection } from "discord.js"; import { type StelliaClient } from "@client/index.js"; -import { BaseManager } from "@managers/index.js"; +import { SimpleManager } from "@managers/index.js"; import { type SelectMenuStructure } from "@structures/index.js"; -import { type InteractionCustomId, type StructureCustomId } from "@typescript/index.js"; -import { logger, requiredFiles } from "@utils/index.js"; - -export class SelectMenuManager extends BaseManager { - private selectMenus: Collection = new Collection(); +export class SelectMenuManager extends SimpleManager { private constructor(client: StelliaClient, directoryPath: string) { - super(client, directoryPath); + super(client, directoryPath, "select menus"); } - public static async create(client: StelliaClient, directory: string): Promise { - const manager = new SelectMenuManager(client, directory); + public static async create(client: StelliaClient, directoryPath: string): Promise { + const manager = new SelectMenuManager(client, directoryPath); await manager.loadData(); return manager; } - - public async loadData(): Promise { - this.selectMenus = await requiredFiles(this.directoryPath); - this.setManagerLoaded(); - - logger.info(`Loaded ${this.selectMenus.size} select menus`); - } - - public getByCustomId(id: InteractionCustomId): SelectMenuStructure | null { - return this.selectMenus.get(id) ?? null; - } - - public getByRegex(id: InteractionCustomId): SelectMenuStructure | null { - let selectMenu: SelectMenuStructure | null = null; - for (const [customId, action] of this.selectMenus.entries()) { - if (customId instanceof RegExp && customId.test(id)) { - selectMenu = action; - break; - } - } - - return selectMenu; - } - - public getAll(): Collection { - return this.selectMenus; - } } diff --git a/src/managers/SimpleManager.ts b/src/managers/SimpleManager.ts new file mode 100644 index 0000000..942e4d1 --- /dev/null +++ b/src/managers/SimpleManager.ts @@ -0,0 +1,39 @@ +import { Collection } from "discord.js"; +import { type StelliaClient } from "@client/index.js"; +import { BaseManager } from "@managers/index.js"; +import { type AnyInteractionStructure } from "@structures/index.js"; +import { type InteractionCustomId, type StructureCustomId } from "@typescript/index.js"; +import { logger, requiredFiles } from "@utils/index.js"; + +export abstract class SimpleManager extends BaseManager { + protected items: Collection = new Collection(); + + protected constructor(client: StelliaClient, directoryPath: string, private readonly label: string) { + super(client, directoryPath); + } + + public async loadData(): Promise { + this.items = await requiredFiles(this.directoryPath); + this.setManagerLoaded(); + + logger.info(`Loaded ${this.items.size} ${this.label}`); + } + + public getByCustomId(id: InteractionCustomId): TStructure | null { + return this.items.get(id) ?? null; + } + + public getByRegex(id: InteractionCustomId): TStructure | null { + for (const [customId, structure] of this.items.entries()) { + if (customId instanceof RegExp && customId.test(id)) { + return structure; + } + } + + return null; + } + + public getAll(): Collection { + return this.items; + } +} diff --git a/src/managers/index.ts b/src/managers/index.ts index d339c11..7931cf8 100644 --- a/src/managers/index.ts +++ b/src/managers/index.ts @@ -1,4 +1,5 @@ export * from "@managers/BaseManager.js"; +export * from "@managers/SimpleManager.js"; export * from "@managers/AutoCompleteManager.js"; export * from "@managers/ButtonManager.js"; export * from "@managers/CommandManager.js"; diff --git a/src/structures/Event.ts b/src/structures/Event.ts index 460a816..dfa14fc 100644 --- a/src/structures/Event.ts +++ b/src/structures/Event.ts @@ -2,27 +2,47 @@ import { type Awaitable, type ClientEvents } from "discord.js"; import { type StelliaClient } from "@client/index.js"; import { type GuildConfigurationType, type GuildsConfiguration } from "@typescript/index.js"; -export interface EventStructureWithGuildConfiguration extends EventInteractionStructure { - execute(client: StelliaClient, guildConfiguration: GuildConfigurationType, ...args: ClientEventsArgs): Awaitable; +export type EventKeys = keyof ClientEvents; + +export type EventExecute = (client: StelliaClient, ...args: [...ExtraArgs, ...ClientEvents[K]]) => Awaitable; + +export interface EventDataStructure { + name: K; + once?: boolean; } -export interface EventStructureWithAllGuildsConfiguration extends EventInteractionStructure { - execute(client: StelliaClient, guildsConfiguration: GuildsConfiguration, ...args: ClientEventsArgs): Awaitable; + +export interface EventStructureWithoutGuildConfiguration { + data: EventDataStructure; + execute: EventExecute; } -export interface EventStructureWithoutGuildConfiguration extends EventInteractionStructure { - execute(client: StelliaClient, ...args: ClientEventsArgs): Awaitable; + +export interface EventStructureWithGuildConfiguration { + data: EventDataStructure; + execute: EventExecute; +} + +export interface EventStructureWithAllGuildsConfiguration { + data: EventDataStructure; + execute: EventExecute; } -export type EventStructureWithConfiguration = EventStructureWithGuildConfiguration | EventStructureWithAllGuildsConfiguration; -export type EventStructure = - | EventStructureWithGuildConfiguration - | EventStructureWithAllGuildsConfiguration - | EventStructureWithoutGuildConfiguration; -interface EventInteractionStructure { - data: EventDataStructure; +export function defineEvent(event: EventStructureWithoutGuildConfiguration) { + return event; } -interface EventDataStructure { - name: EventKeys; - once: boolean; + +export function createGuildEventFactory() { + return function (event: EventStructureWithGuildConfiguration) { + return event; + }; } -export type ClientEventsArgs = ClientEvents[keyof ClientEvents]; -export type EventKeys = keyof ClientEvents; + +export function createAllGuildsEventFactory() { + return function (event: EventStructureWithAllGuildsConfiguration) { + return event; + }; +} + +export type EventStructure = + | EventStructureWithGuildConfiguration + | EventStructureWithAllGuildsConfiguration + | EventStructureWithoutGuildConfiguration; \ No newline at end of file diff --git a/src/structures/Interaction.ts b/src/structures/Interaction.ts index d0fcf80..c635c59 100644 --- a/src/structures/Interaction.ts +++ b/src/structures/Interaction.ts @@ -12,8 +12,8 @@ import { type UserContextMenuCommandInteraction } from "discord.js"; import { type StelliaClient } from "@client/index.js"; -import { type EventStructure } from "@structures/index.js"; import { type GuildConfigurationType, type StelliaLocale } from "@typescript/index.js"; +import { type EventStructure } from "structures/Event.js"; export interface AutoCompleteStructureWithGuildConfiguration extends Omit { data: Omit; diff --git a/src/utils/ComponentUtils.ts b/src/utils/ComponentUtils.ts index 21e7084..e716d22 100644 --- a/src/utils/ComponentUtils.ts +++ b/src/utils/ComponentUtils.ts @@ -1,17 +1,17 @@ import { type APIContainerComponent, type APIEmbed, embedLength, TextDisplayComponent } from "discord.js"; export namespace ComponentUtils { - export const getEmbedContentLength = (embed: APIEmbed) => { + export const getEmbedContentLength = (embed: APIEmbed): number => { return embedLength(embed); }; - export const getContainerContentLength = (container: APIContainerComponent) => { - return container.components.map((component) => { - if (component instanceof TextDisplayComponent) { - return component.content.length; - } + export const getContainerContentLength = (container: APIContainerComponent): number => { + return container.components.reduce((total, component) => { + if (component instanceof TextDisplayComponent) { + return total + component.content.length; + } - return 0; - }).reduce((a, b) => a + b); + return total; + }, 0); }; -} \ No newline at end of file +} From ead4f11fe11bf08732bda9943118a45fa9b4c54d Mon Sep 17 00:00:00 2001 From: Tweenty Date: Sun, 19 Jul 2026 18:50:00 +0200 Subject: [PATCH 07/10] bump: deps --- package.json | 2 +- pnpm-lock.yaml | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 12c6ecb..d26f968 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "globals": "^17.7.0", "jiti": "^2.7.0", "prettier": "^3.9.5", - "tsdown": "^0.22.9", + "tsdown": "^0.22.11", "typescript": "^7.0.2", "typescript-eslint": "^8.64.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39607a7..b210c5d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,8 +43,8 @@ importers: specifier: ^3.9.5 version: 3.9.5 tsdown: - specifier: ^0.22.9 - version: 0.22.9(typescript@7.0.2) + specifier: ^0.22.11 + version: 0.22.11(typescript@7.0.2) typescript: specifier: ^7.0.2 version: 7.0.2 @@ -1039,6 +1039,10 @@ packages: resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} engines: {node: '>=12.20.0'} + obug@2.1.4: + resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} + engines: {node: '>=12.20.0'} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -1144,14 +1148,14 @@ packages: ts-mixer@6.0.4: resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} - tsdown@0.22.9: - resolution: {integrity: sha512-/0QEjQEhOU1t1YxOIAGzFN7bIssd8P0pBpkOmNLCQi3c5UtrcMF5bvq3f30xHJNW9QCA9aUNcNAorMr2CTd6Lg==} + tsdown@0.22.11: + resolution: {integrity: sha512-BERdQpqAltv3vYGC0pE4n+mRGPIN91T/on+Ud73bYRkbptknelFm27tJgBBUz4RJ5d3VNeVH90HfjBo1Ouj8yQ==} engines: {node: ^22.18.0 || >=24.11.0} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.22.9 - '@tsdown/exe': 0.22.9 + '@tsdown/css': 0.22.11 + '@tsdown/exe': 0.22.11 '@vitejs/devtools': '*' publint: ^0.3.8 tsx: '*' @@ -2077,6 +2081,8 @@ snapshots: obug@2.1.3: {} + obug@2.1.4: {} + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -2170,7 +2176,7 @@ snapshots: ts-mixer@6.0.4: {} - tsdown@0.22.9(typescript@7.0.2): + tsdown@0.22.11(typescript@7.0.2): dependencies: ansis: 4.3.1 cac: 7.0.0 @@ -2178,7 +2184,7 @@ snapshots: empathic: 2.0.1 hookable: 6.1.1 import-without-cache: 0.4.0 - obug: 2.1.3 + obug: 2.1.4 picomatch: 4.0.5 rolldown: 1.2.0 rolldown-plugin-dts: 0.27.9(rolldown@1.2.0)(typescript@7.0.2) From 9d2f936295aa36f1fccdb58bac2486683be36b8a Mon Sep 17 00:00:00 2001 From: Tweenty Date: Sun, 19 Jul 2026 18:50:15 +0200 Subject: [PATCH 08/10] release: 1.9.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d26f968..3d99585 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@stelliajs/framework", - "version": "1.8.1", + "version": "1.9.0", "type": "module", "description": "A framework for simplifying the creation of discord bots", "author": "Tweenty_", From 1a501e54e5e7bb75efe471cfd008b54761979b26 Mon Sep 17 00:00:00 2001 From: Tweenty Date: Mon, 20 Jul 2026 16:14:13 +0200 Subject: [PATCH 09/10] feat: get custom emoji --- package.json | 2 +- pnpm-lock.yaml | 30 +++++++++++++++--------------- src/client/StelliaClient.ts | 6 +++++- src/client/StelliaUtils.ts | 17 ++++++++++++++--- 4 files changed, 35 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 3d99585..648050a 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "globals": "^17.7.0", "jiti": "^2.7.0", "prettier": "^3.9.5", - "tsdown": "^0.22.11", + "tsdown": "^0.22.12", "typescript": "^7.0.2", "typescript-eslint": "^8.64.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b210c5d..c837af2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,8 +43,8 @@ importers: specifier: ^3.9.5 version: 3.9.5 tsdown: - specifier: ^0.22.11 - version: 0.22.11(typescript@7.0.2) + specifier: ^0.22.12 + version: 0.22.12(typescript@7.0.2) typescript: specifier: ^7.0.2 version: 7.0.2 @@ -1035,10 +1035,6 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - obug@2.1.3: - resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} - engines: {node: '>=12.20.0'} - obug@2.1.4: resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} engines: {node: '>=12.20.0'} @@ -1148,14 +1144,14 @@ packages: ts-mixer@6.0.4: resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} - tsdown@0.22.11: - resolution: {integrity: sha512-BERdQpqAltv3vYGC0pE4n+mRGPIN91T/on+Ud73bYRkbptknelFm27tJgBBUz4RJ5d3VNeVH90HfjBo1Ouj8yQ==} + tsdown@0.22.12: + resolution: {integrity: sha512-IzGRfGwSsufXJWOcQ0tmECKMG/dbxhUwDOySTS7JE1AM8pkB9+bpcTPs8bTxxSNrSvGocSczrBlOh97tZObq9Q==} engines: {node: ^22.18.0 || >=24.11.0} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.22.11 - '@tsdown/exe': 0.22.11 + '@tsdown/css': 0.22.12 + '@tsdown/exe': 0.22.12 '@vitejs/devtools': '*' publint: ^0.3.8 tsx: '*' @@ -1221,6 +1217,10 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + verkit@0.1.2: + resolution: {integrity: sha512-WqkT8n3hqizuCu71W3bUzf5fjBmkbXcudsehe/NbxA8PgqoKnSOY5K0Ba2ckg1qaRaSpSz7as/n9K1R9JXjQKg==} + engines: {node: '>=18.12.0'} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -2079,8 +2079,6 @@ snapshots: natural-compare@1.4.0: {} - obug@2.1.3: {} - obug@2.1.4: {} optionator@0.9.4: @@ -2120,7 +2118,7 @@ snapshots: dependencies: dts-resolver: 3.0.0 get-tsconfig: 5.0.0-beta.5 - obug: 2.1.3 + obug: 2.1.4 rolldown: 1.2.0 yuku-ast: 0.1.7 yuku-codegen: 0.6.1 @@ -2176,7 +2174,7 @@ snapshots: ts-mixer@6.0.4: {} - tsdown@0.22.11(typescript@7.0.2): + tsdown@0.22.12(typescript@7.0.2): dependencies: ansis: 4.3.1 cac: 7.0.0 @@ -2188,11 +2186,11 @@ snapshots: picomatch: 4.0.5 rolldown: 1.2.0 rolldown-plugin-dts: 0.27.9(rolldown@1.2.0)(typescript@7.0.2) - semver: 7.8.5 tinyexec: 1.2.4 tinyglobby: 0.2.17 tree-kill: 1.2.2 unconfig-core: 7.5.0 + verkit: 0.1.2 optionalDependencies: typescript: 7.0.2 transitivePeerDependencies: @@ -2283,6 +2281,8 @@ snapshots: dependencies: punycode: 2.3.1 + verkit@0.1.2: {} + which@2.0.2: dependencies: isexe: 2.0.0 diff --git a/src/client/StelliaClient.ts b/src/client/StelliaClient.ts index 2a8a01d..38c7610 100644 --- a/src/client/StelliaClient.ts +++ b/src/client/StelliaClient.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import path from "node:path"; import { pathToFileURL } from "node:url"; -import { Client, type ClientOptions, type Interaction } from "discord.js"; +import { type ApplicationEmoji, Client, type ClientOptions, type Interaction } from "discord.js"; import { StelliaUtils } from "@client/index.js"; import { AutoCompleteManager, @@ -91,6 +91,10 @@ export class StelliaClient< await this.utils.initializeCustomEmojis(); }; + public getCustomEmoji = (emojiName: keyof EmojiEnum): ApplicationEmoji | undefined => { + return this.utils.getCustomEmoji(String(emojiName)); + }; + public getGuildsConfiguration = async (): Promise => { const chosenEnvironment = process.argv.find((arg) => arg.startsWith("--config"))?.split("=")[1]; if (!chosenEnvironment) { diff --git a/src/client/StelliaUtils.ts b/src/client/StelliaUtils.ts index 6fe3d6c..5edd3f4 100644 --- a/src/client/StelliaUtils.ts +++ b/src/client/StelliaUtils.ts @@ -1,6 +1,7 @@ import { type AnySelectMenuInteraction, ApplicationCommandType, + type ApplicationEmoji, type AutocompleteInteraction, type ButtonInteraction, type ChatInputCommandInteraction, @@ -115,7 +116,13 @@ export class StelliaUtils = Record(guildId: string): CustomGuildConfiguration | null => { + public getCustomEmoji = (emojiName: string): ApplicationEmoji | undefined => { + return this.client.customEmojis[emojiName]; + }; + + public getGuildConfiguration = ( + guildId: string + ): CustomGuildConfiguration | null => { if (!this.client.environment?.areGuildsConfigurationEnabled || !this.guildsConfiguration) { return null; } @@ -297,7 +304,9 @@ export class StelliaUtils = Record = Record): Promise => { + private readonly handleMessageContextMenuInteraction = async ( + interaction: MessageContextMenuCommandInteraction<"cached"> + ): Promise => { try { const contextMenuManager = this.client.managers.contextMenus; if (!contextMenuManager) { From efba4649ce6509a5bb8f80735ed95d5a76dc8f33 Mon Sep 17 00:00:00 2001 From: Tweenty Date: Wed, 22 Jul 2026 14:56:46 +0200 Subject: [PATCH 10/10] refactor: clean code with emojis + export translation args --- package.json | 8 +- pnpm-lock.yaml | 477 +++++++++++++++++-------------------- src/client/StelliaUtils.ts | 12 +- src/utils/translation.ts | 2 +- 4 files changed, 233 insertions(+), 266 deletions(-) diff --git a/package.json b/package.json index 648050a..23fcb09 100644 --- a/package.json +++ b/package.json @@ -51,9 +51,9 @@ "eslint-plugin-import-x": "^4.17.1", "globals": "^17.7.0", "jiti": "^2.7.0", - "prettier": "^3.9.5", - "tsdown": "^0.22.12", + "prettier": "^3.9.6", + "tsdown": "^0.22.13", "typescript": "^7.0.2", - "typescript-eslint": "^8.64.0" + "typescript-eslint": "^8.65.0" } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c837af2..ad60f27 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,10 +29,10 @@ importers: version: 10.1.8(eslint@10.7.0(jiti@2.7.0)) eslint-import-resolver-typescript: specifier: ^4.4.5 - version: 4.4.5(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)))(eslint@10.7.0(jiti@2.7.0)) + version: 4.4.5(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)))(eslint@10.7.0(jiti@2.7.0)) eslint-plugin-import-x: specifier: ^4.17.1 - version: 4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)) + version: 4.17.1(@typescript-eslint/utils@8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)) globals: specifier: ^17.7.0 version: 17.7.0 @@ -40,17 +40,17 @@ importers: specifier: ^2.7.0 version: 2.7.0 prettier: - specifier: ^3.9.5 - version: 3.9.5 + specifier: ^3.9.6 + version: 3.9.6 tsdown: - specifier: ^0.22.12 - version: 0.22.12(typescript@7.0.2) + specifier: ^0.22.13 + version: 0.22.13(typescript@7.0.2) typescript: specifier: ^7.0.2 version: 7.0.2 typescript-eslint: - specifier: ^8.64.0 - version: 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + specifier: ^8.65.0 + version: 8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) packages: @@ -70,12 +70,8 @@ packages: resolution: {integrity: sha512-y4UPwWhH6vChKRkGdMB4odasUbHOUwy7KL+OVwF86PvT6QVOwElx+TiI1/6kcmcEe+g5YRXJFiXSXUdabqZOvQ==} engines: {node: '>=16.11.0'} - '@discordjs/rest@2.6.1': - resolution: {integrity: sha512-wwQdgjeaoYFiaG+atbqx6aJDpqW7JHAo0HrQkBTbYzM3/PJ3GweQIpgElNcGZ26DCUOXMyawYd0YF7vtr+fZXg==} - engines: {node: '>=18'} - - '@discordjs/rest@2.6.2': - resolution: {integrity: sha512-c5HI3hJuRWWrnpyCZAUYfIUTAEv9weX4tE2UfDqtM3ztizdKE9RFEf3G5IWhPyO+kPldUDpGv02XJAQzdUTC9Q==} + '@discordjs/rest@2.6.3': + resolution: {integrity: sha512-wvOylxNYJkwKjctS/Mn5GP1w9r3/rzyH+ThD1JlAca6zEdlHs8QWBBUQJpU5Q+W6DoIj/Ljh1IPlZs7hTU+UAg==} engines: {node: '>=18'} '@discordjs/util@1.2.0': @@ -104,9 +100,9 @@ packages: '@emnapi/wasi-threads@1.2.2': resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} - '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint-community/eslint-utils@4.10.0': + resolution: {integrity: sha512-rd6n9Sefya1R1Vd594TRwzeHq2VnmICbvh3jebyt1Hs/6OoCSYNVpjGRRsKSTwAq3SKl09w0AfRCU57hoDLmxg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -303,63 +299,63 @@ packages: '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@typescript-eslint/eslint-plugin@8.64.0': - resolution: {integrity: sha512-CGvQPBxN3wZLu6Rz2kFUpZeoCm78xUic92ck39KPePkO1NPOwjCqdQnm5Q87tpWw9vcBvW8XLrDXjH9PWYtJ3Q==} + '@typescript-eslint/eslint-plugin@8.65.0': + resolution: {integrity: sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.64.0 + '@typescript-eslint/parser': ^8.65.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.64.0': - resolution: {integrity: sha512-KA0OshtlcCCXmbfqyZkM5pV3/WNraJf7DkJRLpyrmwPtud57H5BDX7C3k0LPSPxpprfRL+cJDGabF10mvNCoCw==} + '@typescript-eslint/parser@8.65.0': + resolution: {integrity: sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.64.0': - resolution: {integrity: sha512-tk4WpOJ6IEbGrVHaNmM0YRrwAD3exZlIK3iadQNAxh4YKk6jvUQ4ecq18n+v7+meh+cJ3j+D8nbk8sRKhlwLQg==} + '@typescript-eslint/project-service@8.65.0': + resolution: {integrity: sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.64.0': - resolution: {integrity: sha512-CXEaFdYXjSTgKhisNkwCcJwTP8Pl+fmRrEQrri4nm3vU743bALrxzLmq7fHG/7e6a5xO0lDYeURpZmBuhHk54w==} + '@typescript-eslint/scope-manager@8.65.0': + resolution: {integrity: sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.64.0': - resolution: {integrity: sha512-2yo8rRNKuzbVWQp5kslhANqZ2uDAeROQHBRZNPu8JDsHmeFNj/XJJhX/FhNUWmkHHvoNsKa6+tHJiig87EzsQw==} + '@typescript-eslint/tsconfig-utils@8.65.0': + resolution: {integrity: sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.64.0': - resolution: {integrity: sha512-XWG4Fmmv/6SvyS9nH8jWrKs6terwJvE8cyRt1CzYYqzp9OrPhCT4cMc/f7C6RZCwG+qMmiffJS1/qJP8G1URtg==} + '@typescript-eslint/type-utils@8.65.0': + resolution: {integrity: sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.64.0': - resolution: {integrity: sha512-qjhfuTfLXjA4IOzXvz0rTjT01BqEiIgPoUeMwiEjnaHKJMTNo8rH5pYW1a2L/0Dnux2fPC85AeyJoWaGa8WxTA==} + '@typescript-eslint/types@8.65.0': + resolution: {integrity: sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.64.0': - resolution: {integrity: sha512-Pztpsn1aCE1oWDvDEfUk31nngvvF7vUB5SwHFEaZIFpvw7WJtqUHHL4plBZDA9HfWJJjL13BdG0YrJInTUvoVA==} + '@typescript-eslint/typescript-estree@8.65.0': + resolution: {integrity: sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.64.0': - resolution: {integrity: sha512-aJUGVB3+U0htrrCjoA8qukw8cm8fNCGAxK/tVoS70k8aeb7DETKeFozRiVFIwEeN9WJLsjaP3ph8I60tY2XZoQ==} + '@typescript-eslint/utils@8.65.0': + resolution: {integrity: sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.64.0': - resolution: {integrity: sha512-mrtuL8Nsn6gi2H4mo5KMTp823M+3Q19Ew/i+Zlikq20tIMm99C3Ez0dCmkWWnxut20esQvTg8aUSEhMcAOXhEw==} + '@typescript-eslint/visitor-keys@8.65.0': + resolution: {integrity: sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/typescript-aix-ppc64@7.0.2': @@ -606,130 +602,130 @@ packages: resolution: {integrity: sha512-Xfe6rpCTxSxfbswi/W/Pz7zp1WWSNn4A0eW4mLkQUewCrXXtMj31lCg+iQyTkh/CkusZSq9eDflu7tjEDXUY6g==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} - '@yuku-codegen/binding-darwin-arm64@0.6.1': - resolution: {integrity: sha512-LDJtpOKtcv9f3V0eDUwFmmy47t2VC+DAuN+gq80R1IA+fa0d408i6sHsVtt6n+g5rf8f86ySoPSAe94lHt6Ixw==} + '@yuku-codegen/binding-darwin-arm64@0.7.3': + resolution: {integrity: sha512-hbssEr7iLNCWWdUbEt8cuOjUQ9loI+U/BVmdhNQ4CV1wAFGvWDO3niK9JD2WwTC9iib7E498qgZ3L/xJnoSb3A==} cpu: [arm64] os: [darwin] - '@yuku-codegen/binding-darwin-x64@0.6.1': - resolution: {integrity: sha512-fBwpBOh33W7N87F94SVNExwm2KUV3ROhk51okr3Oy2ost1/JJuBWINVjcgwd2WPKZEFzUXgCzj/03UR/G+WIrQ==} + '@yuku-codegen/binding-darwin-x64@0.7.3': + resolution: {integrity: sha512-WqwST3vVcNBTd1zaT1vP6pU8NkjJlLWN37Kqomc2c6TG9eky6sbAfHIhZEjSSyqFrMqsAt3mIu0jQZAODi401g==} cpu: [x64] os: [darwin] - '@yuku-codegen/binding-freebsd-x64@0.6.1': - resolution: {integrity: sha512-UpMkskQV3a5oPnJV+GFFupIqnLwSBD4ZsZAVUZuNVkrqct433FHKqTwuG+P5JhHZbmhf+++3Ie/V2sgduyXrAQ==} + '@yuku-codegen/binding-freebsd-x64@0.7.3': + resolution: {integrity: sha512-mCci4UPkZXYflXuHnPGl5sDsotBPLaBryFylDwZcqposktmumoOBIKp2gpzEmxQL/XlGdVWksmpYw9IRY43FNQ==} cpu: [x64] os: [freebsd] - '@yuku-codegen/binding-linux-arm-gnu@0.6.1': - resolution: {integrity: sha512-HICjDelfEDeD6TD8OEz/Dvt8KHxJiETR+paI/Fr7eVTQbjMfRrXJz8O1qV1qGH5SHZUGl2SAw2Rp+MLtXOjCrQ==} + '@yuku-codegen/binding-linux-arm-gnu@0.7.3': + resolution: {integrity: sha512-F1QIaRH5SeahrYjZVrVvIb5nHCZQMF7+YWAy6yTJh0Y2r2wLgqOQuhbOWcoKk+AyBiTOO2nAsFHNpVqRq2GjGw==} cpu: [arm] os: [linux] libc: [glibc] - '@yuku-codegen/binding-linux-arm-musl@0.6.1': - resolution: {integrity: sha512-pUswnwa+WOmtH2ZGOWL05kFLMNY7/TnEAryfIv1yVFzKQnmSy9TKYi3oIOxGZL3w+cdUKCZ6Q+jaD0oI10ztzA==} + '@yuku-codegen/binding-linux-arm-musl@0.7.3': + resolution: {integrity: sha512-JvkWNmN8MFbboX/5grRsAldGaB8ArRFgAaUYfQoohsqcuJZee8SLtc6itvwuntPbN9MGStn4GzdWk2lmSURqbA==} cpu: [arm] os: [linux] libc: [musl] - '@yuku-codegen/binding-linux-arm64-gnu@0.6.1': - resolution: {integrity: sha512-Zro0FOu9clLCmqCnUKzEWHAu30tss0iEfhs+KDXm9Dpm1FkIHAKu43tF6FQU2hsTA7a8xd93NGddzc2EOJFKUg==} + '@yuku-codegen/binding-linux-arm64-gnu@0.7.3': + resolution: {integrity: sha512-DUnMTE/HCA7j1BAipWclGZCYfLZ/4SV5lldmV2kDmVMIywcw4PhtQ4Rfd/tO1K82JkjhQ+4a8XApcOIksOacnQ==} cpu: [arm64] os: [linux] libc: [glibc] - '@yuku-codegen/binding-linux-arm64-musl@0.6.1': - resolution: {integrity: sha512-NZaT+mp9toqWuFEA4MYW5HMRxgIa8DCqnTTnM5SrrojZgm4QoMI/mJfifVet1ZHgl/Dly5m6H6GPpq43uXVj8g==} + '@yuku-codegen/binding-linux-arm64-musl@0.7.3': + resolution: {integrity: sha512-pNnXMnm9dlqd3V8C7nHaXgZnMLwP/CyM8B4mSAnkqVlhj2t3b8CMjesEV85SCbFlagzJk8FapfSghfxcXKuBow==} cpu: [arm64] os: [linux] libc: [musl] - '@yuku-codegen/binding-linux-x64-gnu@0.6.1': - resolution: {integrity: sha512-M5macseSCBPvJ4yfKNyQpMc7nBQBtj39MNfMt0r+8UkTnR5qJE00JJx06puHgPxT5hnGxMAuAWZ+3a9H2ngqAw==} + '@yuku-codegen/binding-linux-x64-gnu@0.7.3': + resolution: {integrity: sha512-o5GRppYvYvPl4UJbgRSZpXXDh6rOWQzX0yLB+tDzv31T7mOuLitU6zgQZxzw5rwhPJDffCt/AVKMbtizEo+UtA==} cpu: [x64] os: [linux] libc: [glibc] - '@yuku-codegen/binding-linux-x64-musl@0.6.1': - resolution: {integrity: sha512-liAyBZI5AbazZGeeNfWj0jCD/TE2L84hgVYh4KkjJA/N9bNzFQCDf4BvWP76nEO89r2tIGEUjbXdM4mM26riHg==} + '@yuku-codegen/binding-linux-x64-musl@0.7.3': + resolution: {integrity: sha512-GdiyLD1bM3lhTUeGkA9ZZLjqU+xt5uVihgPm0e6TdBjCi6DMZORWe02oDlRbn9OZaV7AZosngXAq2jLk3TrBEw==} cpu: [x64] os: [linux] libc: [musl] - '@yuku-codegen/binding-win32-arm64@0.6.1': - resolution: {integrity: sha512-qItzfH3x6MYChPeGfvh22rHD92WLgXQRSuwvspRVSnLvpnubEfZd+9REPRQVT2l9fIuETDCEkDNRqkDROQTkgA==} + '@yuku-codegen/binding-win32-arm64@0.7.3': + resolution: {integrity: sha512-uQrxQDBQFIAUgHJIxcB/FAAUk0Wkyj3xGpHrp/C258nXnCTAH0KDaqyK5RN/TCkVYrpH+uCl+rGnwDLSGnPBkQ==} cpu: [arm64] os: [win32] - '@yuku-codegen/binding-win32-x64@0.6.1': - resolution: {integrity: sha512-DFFkKROZ9ZAHmFMUFRtRTkosZds1KH8BOx5t3UpNULIjT3iuUmEx9V5pWR0xOi66sANY38Ap77nz1kOZraQxEg==} + '@yuku-codegen/binding-win32-x64@0.7.3': + resolution: {integrity: sha512-UoF7tqMnVMUmIXPgDjFLhRezea6HaypwLDWNenCFxfJCzQNEa41lcHpxq1AN2Xl6GLzIDfAb+lQDi/O+zPCfyg==} cpu: [x64] os: [win32] - '@yuku-parser/binding-darwin-arm64@0.6.1': - resolution: {integrity: sha512-jORysyRZg5zGDgVw15LGMsjZDh7jwjpUIJRBHgFt0ir15O5pEazfvuF2dnwvrJiTF0IT1EgHAVbTAYJWwQLCjg==} + '@yuku-parser/binding-darwin-arm64@0.7.3': + resolution: {integrity: sha512-JcFQSNEnjtyHQRjXO0G5rQt5xHq5MR+9nHqh+wt5MP30XIiccUYlcMIa3s7CBmj8E8WPGZC08k7LNGrA1OISTA==} cpu: [arm64] os: [darwin] - '@yuku-parser/binding-darwin-x64@0.6.1': - resolution: {integrity: sha512-dTeYFkkFlbP/WCB2DtezXas3NApOPtFlXSdssB7wGtY9wpNp4HAkVo1KBwI5mcHK0e2joyUcqTSf44mFE+q7vg==} + '@yuku-parser/binding-darwin-x64@0.7.3': + resolution: {integrity: sha512-U0kNeI3VygP/+8sTOLTeLTjUyTYZfl9Wuq6xVKWPXHb2K7oI0sm8JXJ5xlhAbkUDQRi0N6yK5TKxS0sQT5M6UQ==} cpu: [x64] os: [darwin] - '@yuku-parser/binding-freebsd-x64@0.6.1': - resolution: {integrity: sha512-GExDp3rebo28mt3EAjvKQs0ZC3gkznAErV0I9TUNDa9muuhvD35kft61Mpsc6+NWeE+BG+kUyKbm6iO5B6ZMMA==} + '@yuku-parser/binding-freebsd-x64@0.7.3': + resolution: {integrity: sha512-Xc08FQTvxovy6pX+Co9fgv3N1H0OpLpph/ClbwnJkcdphY3kzN2GgIfir35kpPp8mOzlQgtAVQdeDyAYyjwx4w==} cpu: [x64] os: [freebsd] - '@yuku-parser/binding-linux-arm-gnu@0.6.1': - resolution: {integrity: sha512-a9MjABj4J0VE3Z2oROGhmeddZZrhwwrnl4ZWZOuHUhD/smDtDiNtr0LpCbKB7rEYaQ29snopOPdZ/0T3YgLglQ==} + '@yuku-parser/binding-linux-arm-gnu@0.7.3': + resolution: {integrity: sha512-6bHeDiUd+0bmoJJ5wZVG+PcJkXQUdjy/AzHsOVcOSUtHtRTX2H3Z5RIHyPAh5OveLtT4RHyqaO3fEQGnHGX5/Q==} cpu: [arm] os: [linux] libc: [glibc] - '@yuku-parser/binding-linux-arm-musl@0.6.1': - resolution: {integrity: sha512-ctuvXJgDRKKlmJfHxT4RsTvcAcHEFNJHTCsGbtt4rluQpVDc+ezk9JvQ534ehoIfZ9T0eIHSBgqYAZ4xCatNmQ==} + '@yuku-parser/binding-linux-arm-musl@0.7.3': + resolution: {integrity: sha512-trGERNLJGvXkkyvdWBKspTOBATd4lcmpPFPcy5HI5kC3rC3ZMHQDJ356OMSVUsR2NQnl++F0ZTZQucao9hrbeQ==} cpu: [arm] os: [linux] libc: [musl] - '@yuku-parser/binding-linux-arm64-gnu@0.6.1': - resolution: {integrity: sha512-vRtyoTtT0Ltowuh9LWOl/ZNU9h79J89ilOz5SEGspcw0jfhoUt19i07VNitll4jjfg5p2EN00q+MqX0pAobrFw==} + '@yuku-parser/binding-linux-arm64-gnu@0.7.3': + resolution: {integrity: sha512-p1ELmzhqAX7SFUvH/tR5zSb8NsWZQ8ulw7PqatfXNmJMy34bkivtL0z2jPpVoMJXf5o2+TwBN29Z31CLL0wvkA==} cpu: [arm64] os: [linux] libc: [glibc] - '@yuku-parser/binding-linux-arm64-musl@0.6.1': - resolution: {integrity: sha512-vCsc3GOe1ylmRyfo/WLjIhjiCmaTtJbWNF4ZtgjNegDjpsRsFuCcP9duXB41QcfnJK38repKVFqFh0LR3l48FA==} + '@yuku-parser/binding-linux-arm64-musl@0.7.3': + resolution: {integrity: sha512-dZ79SrJ002ZXfBDmpQ47SF+06Q5bGOjFeoSK8xO97ter/bjLBgxSO4d7i9hhf+uj4xkrTPc/OFNVaeBAF3L4dA==} cpu: [arm64] os: [linux] libc: [musl] - '@yuku-parser/binding-linux-x64-gnu@0.6.1': - resolution: {integrity: sha512-gw3d81RdUHSYwjDW2IG6gEtm4VDoPP4ZOqpuC6Nc8+UBfos+4gTWOgzmuxIOVhkSV2fJCcUDpSJIlPzEU0FLZw==} + '@yuku-parser/binding-linux-x64-gnu@0.7.3': + resolution: {integrity: sha512-LjT64hVGWWbOmOYS+Fd8qScgyRxgUbudhFJbw8aeUVnhiNR1np36KnE0VFWrJeu7rTdNxuzVyV5o9JLqhBDTVQ==} cpu: [x64] os: [linux] libc: [glibc] - '@yuku-parser/binding-linux-x64-musl@0.6.1': - resolution: {integrity: sha512-nzU+Doq9UgZvYYvald36lZJ2Neeyheije6WE/YpoFt/oJiNmnjArRgr2CMtb/7gWBl80YSMwcHK4Ju0E+7wfWg==} + '@yuku-parser/binding-linux-x64-musl@0.7.3': + resolution: {integrity: sha512-5Nw3v5BqYbOi0ZdV+SImgVYa0KDBVAY/ZNPilTsJJU4phqa2cqEW4+aMgyieE/4bqpojt/B931kM+7pipazP9g==} cpu: [x64] os: [linux] libc: [musl] - '@yuku-parser/binding-win32-arm64@0.6.1': - resolution: {integrity: sha512-r3tXFVDliWCPe7TL6DVxUkT4rkqnXyeFVSEDf+V9My6Gztq99/gIe3POQqFbshTRuSrpEYMGMbGxeFh+m+stxA==} + '@yuku-parser/binding-win32-arm64@0.7.3': + resolution: {integrity: sha512-lFYXgHiq8tJKa6/e1/q8Su+IJVV4/CjoXbIJ7/GdPXPp9Hx0gh/8HqmGSsrwlY2w8/ohBcar9wxjm1rQ8D16bg==} cpu: [arm64] os: [win32] - '@yuku-parser/binding-win32-x64@0.6.1': - resolution: {integrity: sha512-FqYMOqeCS2XTdn5yvaKlOhtSQ84mVO3aTXp6LGfMd9Zq8RsV4H8qLWv+sxJsgPCXfuBV64u8/f+CTr3uIwNLWA==} + '@yuku-parser/binding-win32-x64@0.7.3': + resolution: {integrity: sha512-wy/fs4OrHBhKW8LDyZJRMyMQ3QOfbSQDp0WtMbtzWCVui/vTQEUJMGnwvRCppjchS/qIQfbWzIw/HSjogJqZFA==} cpu: [x64] os: [win32] - '@yuku-toolchain/types@0.5.43': - resolution: {integrity: sha512-kSpvPntnXw5+lYjO71ffBEnQ5ycQ74KGIYknh0TS4xeyCuBkOqxyJumxZkMhLBBUCLjDAbx2+Icnr3Zh4ftjpQ==} + '@yuku-toolchain/types@0.7.3': + resolution: {integrity: sha512-ezarjq3dcl8Nx3iJ9VeAc7vhzvHyRoSvr7bLX76T+ljRq73IbZ11X2RFCblfK6YxW2DsjkzU6MPnr3JWDYqYYQ==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -783,8 +779,8 @@ packages: defu@6.1.7: resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} - discord-api-types@0.38.49: - resolution: {integrity: sha512-XnqcWmnFZFAE8ZM8SHAw9DIV8D3Or00rMQ8iQLotrEA2PmXhl+ykaf6L6q4l474hrSUH1JaYcv+iOMRWp2p6Tg==} + discord-api-types@0.38.50: + resolution: {integrity: sha512-J2n/bpIETX3DQ6AJ7/0xbsTLmYiJQtO/LKcXKC1YDbB56OUwtDbdXOFE8Q4g8jVGHBR2VAy1+D4ngaIgkMNV9w==} discord.js@14.27.0: resolution: {integrity: sha512-qHbFlFG2N7y3LjPySYsL6A1+BnX6bkTVgo842EX0CqVPk/KTMwZkojPHEXKsQUpWZNyz5BISNHK1cPpQw0+m4A==} @@ -852,10 +848,6 @@ packages: resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@5.0.1: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -1067,8 +1059,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.9.5: - resolution: {integrity: sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==} + prettier@3.9.6: + resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==} engines: {node: '>=14'} hasBin: true @@ -1082,20 +1074,20 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - rolldown-plugin-dts@0.27.9: - resolution: {integrity: sha512-d54yt65+ZF/Mk8H6P36As02PAMdaiWRSzVNtJRc1h7nCgUFjuRI4cN2DyTfJyfVpPH6pgy7/2D7YQH1/Rh75Yg==} + rolldown-plugin-dts@0.27.13: + resolution: {integrity: sha512-DeVZJbbB0ajp5q6vABqC8ZCJzxftlxbiV60Bk96GFdQaysGVpgTTVjQu0lUt4Lb+aRCtejfOixtQKDRol7IuVQ==} engines: {node: ^22.18.0 || >=24.11.0} peerDependencies: - '@ts-macro/tsc': ^0.3.6 '@typescript/native-preview': '*' + '@volar/typescript': ~2.4.0 rolldown: ^1.0.0 typescript: ^5.0.0 || ^6.0.0 || ~7.0.0 vue-tsc: ~3.2.0 || ~3.3.0 peerDependenciesMeta: - '@ts-macro/tsc': - optional: true '@typescript/native-preview': optional: true + '@volar/typescript': + optional: true typescript: optional: true vue-tsc: @@ -1144,14 +1136,14 @@ packages: ts-mixer@6.0.4: resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} - tsdown@0.22.12: - resolution: {integrity: sha512-IzGRfGwSsufXJWOcQ0tmECKMG/dbxhUwDOySTS7JE1AM8pkB9+bpcTPs8bTxxSNrSvGocSczrBlOh97tZObq9Q==} + tsdown@0.22.13: + resolution: {integrity: sha512-XaYFhtiKRUvTpXv/YAehsHdbEb3LN/iMlzjSINbjlaATtXN2zVPKox2STKhcyFPlh++8Zg7suNN27E679IfAUA==} engines: {node: ^22.18.0 || >=24.11.0} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.22.12 - '@tsdown/exe': 0.22.12 + '@tsdown/css': 0.22.13 + '@tsdown/exe': 0.22.13 '@vitejs/devtools': '*' publint: ^0.3.8 tsx: '*' @@ -1185,8 +1177,8 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.64.0: - resolution: {integrity: sha512-0qg+pDNMnqYzqH9AnNK+39tejHvsShUOUUoRUgtnTGE7QuMZhiFDnozq8nHJVq+Wae6NMLKNWLg5WmkcC/ndyQ==} + typescript-eslint@8.65.0: + resolution: {integrity: sha512-/ggrHAwyjENDusvyxbuqxAC2dTnZg/Z8F+fgQtYIz+L6n/9HfSlEZcFGV/NsMNa6CkGk0xUjUAFwC0vHOflvIA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -1203,10 +1195,6 @@ packages: undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} - undici@6.24.1: - resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==} - engines: {node: '>=18.17'} - undici@6.27.0: resolution: {integrity: sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==} engines: {node: '>=18.17'} @@ -1230,8 +1218,8 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - ws@8.21.0: - resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + ws@8.21.1: + resolution: {integrity: sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -1250,14 +1238,14 @@ packages: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} - yuku-ast@0.1.7: - resolution: {integrity: sha512-2RiMEWv500TixY5rJy6OZd4fSy9WYZKWh6gGbIJ7y7vAGcuCugWOWwOLGaQcRZrXcPUfqtLtvpaJ3SdXtWlhKA==} + yuku-ast@0.7.3: + resolution: {integrity: sha512-occyAXtcU4hcl5UPEclWwLqz4J1ZAV8Us4LllmTqAe1YjL5aMbh3GCpzHt6O0sOF+dwBI3BZAcFQqbyX1RiaWg==} - yuku-codegen@0.6.1: - resolution: {integrity: sha512-6RJqqON2xYhMEp/sZv5oOSI3uOpWwRwzAi2fc/rMcRFjcqedAC5Fyp4AD9Vn2b8SB7hf9ESqVW+YwbDs/KvyKA==} + yuku-codegen@0.7.3: + resolution: {integrity: sha512-hhyJW0TIEwm4kex8XVCS4CZIXHS/3TWWNUum+95Ji5/4W+iaLfUnvwSxJwyNfTzS8cxmd1np+EZ4b8ObLguKEA==} - yuku-parser@0.6.1: - resolution: {integrity: sha512-dPE3/+H2VBw9LhjoIVeW/axKidYGd+XzNtrwGGseZ0325cQFl0Dpwyh0R74XWe/WqQn4M8CR5YApsv2KF2zN1A==} + yuku-parser@0.7.3: + resolution: {integrity: sha512-5kZ7HR+W+OsNpVtZ9LHruQsgmcoJl4TETrffPq2GbliThsFiy+zHzbMLmSxQJrokzyJqfJ/TPfFkdUDOodJCgA==} snapshots: @@ -1266,7 +1254,7 @@ snapshots: '@discordjs/formatters': 0.6.2 '@discordjs/util': 1.2.0 '@sapphire/shapeshift': 4.0.0 - discord-api-types: 0.38.49 + discord-api-types: 0.38.50 fast-deep-equal: 3.1.3 ts-mixer: 6.0.4 tslib: 2.8.1 @@ -1277,47 +1265,35 @@ snapshots: '@discordjs/formatters@0.6.2': dependencies: - discord-api-types: 0.38.49 - - '@discordjs/rest@2.6.1': - dependencies: - '@discordjs/collection': 2.1.1 - '@discordjs/util': 1.2.0 - '@sapphire/async-queue': 1.5.5 - '@sapphire/snowflake': 3.5.5 - '@vladfrangu/async_event_emitter': 2.4.7 - discord-api-types: 0.38.49 - magic-bytes.js: 1.13.0 - tslib: 2.8.1 - undici: 6.24.1 + discord-api-types: 0.38.50 - '@discordjs/rest@2.6.2': + '@discordjs/rest@2.6.3': dependencies: '@discordjs/collection': 2.1.1 '@discordjs/util': 1.2.0 '@sapphire/async-queue': 1.5.5 '@sapphire/snowflake': 3.5.5 '@vladfrangu/async_event_emitter': 2.4.7 - discord-api-types: 0.38.49 + discord-api-types: 0.38.50 magic-bytes.js: 1.13.0 tslib: 2.8.1 undici: 6.27.0 '@discordjs/util@1.2.0': dependencies: - discord-api-types: 0.38.49 + discord-api-types: 0.38.50 '@discordjs/ws@1.2.3': dependencies: '@discordjs/collection': 2.1.1 - '@discordjs/rest': 2.6.1 + '@discordjs/rest': 2.6.3 '@discordjs/util': 1.2.0 '@sapphire/async-queue': 1.5.5 '@types/ws': 8.18.1 '@vladfrangu/async_event_emitter': 2.4.7 - discord-api-types: 0.38.49 + discord-api-types: 0.38.50 tslib: 2.8.1 - ws: 8.21.0 + ws: 8.21.1 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -1354,10 +1330,10 @@ snapshots: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.7.0(jiti@2.7.0))': + '@eslint-community/eslint-utils@4.10.0(eslint@10.7.0(jiti@2.7.0))': dependencies: eslint: 10.7.0(jiti@2.7.0) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 5.0.1 '@eslint-community/regexpp@4.12.2': {} @@ -1503,14 +1479,14 @@ snapshots: dependencies: '@types/node': 26.1.1 - '@typescript-eslint/eslint-plugin@8.64.0(@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': + '@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) - '@typescript-eslint/scope-manager': 8.64.0 - '@typescript-eslint/type-utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) - '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) - '@typescript-eslint/visitor-keys': 8.64.0 + '@typescript-eslint/parser': 8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/type-utils': 8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/utils': 8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/visitor-keys': 8.65.0 eslint: 10.7.0(jiti@2.7.0) ignore: 7.0.6 natural-compare: 1.4.0 @@ -1519,41 +1495,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': + '@typescript-eslint/parser@8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: - '@typescript-eslint/scope-manager': 8.64.0 - '@typescript-eslint/types': 8.64.0 - '@typescript-eslint/typescript-estree': 8.64.0(typescript@7.0.2) - '@typescript-eslint/visitor-keys': 8.64.0 + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@7.0.2) + '@typescript-eslint/visitor-keys': 8.65.0 debug: 4.4.3 eslint: 10.7.0(jiti@2.7.0) typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.64.0(typescript@7.0.2)': + '@typescript-eslint/project-service@8.65.0(typescript@7.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.64.0(typescript@7.0.2) - '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@7.0.2) + '@typescript-eslint/types': 8.65.0 debug: 4.4.3 typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.64.0': + '@typescript-eslint/scope-manager@8.65.0': dependencies: - '@typescript-eslint/types': 8.64.0 - '@typescript-eslint/visitor-keys': 8.64.0 + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/visitor-keys': 8.65.0 - '@typescript-eslint/tsconfig-utils@8.64.0(typescript@7.0.2)': + '@typescript-eslint/tsconfig-utils@8.65.0(typescript@7.0.2)': dependencies: typescript: 7.0.2 - '@typescript-eslint/type-utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': + '@typescript-eslint/type-utils@8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: - '@typescript-eslint/types': 8.64.0 - '@typescript-eslint/typescript-estree': 8.64.0(typescript@7.0.2) - '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@7.0.2) + '@typescript-eslint/utils': 8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) debug: 4.4.3 eslint: 10.7.0(jiti@2.7.0) ts-api-utils: 2.5.0(typescript@7.0.2) @@ -1561,14 +1537,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.64.0': {} + '@typescript-eslint/types@8.65.0': {} - '@typescript-eslint/typescript-estree@8.64.0(typescript@7.0.2)': + '@typescript-eslint/typescript-estree@8.65.0(typescript@7.0.2)': dependencies: - '@typescript-eslint/project-service': 8.64.0(typescript@7.0.2) - '@typescript-eslint/tsconfig-utils': 8.64.0(typescript@7.0.2) - '@typescript-eslint/types': 8.64.0 - '@typescript-eslint/visitor-keys': 8.64.0 + '@typescript-eslint/project-service': 8.65.0(typescript@7.0.2) + '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@7.0.2) + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/visitor-keys': 8.65.0 debug: 4.4.3 minimatch: 10.2.5 semver: 7.8.5 @@ -1578,20 +1554,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': + '@typescript-eslint/utils@8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.64.0 - '@typescript-eslint/types': 8.64.0 - '@typescript-eslint/typescript-estree': 8.64.0(typescript@7.0.2) + '@eslint-community/eslint-utils': 4.10.0(eslint@10.7.0(jiti@2.7.0)) + '@typescript-eslint/scope-manager': 8.65.0 + '@typescript-eslint/types': 8.65.0 + '@typescript-eslint/typescript-estree': 8.65.0(typescript@7.0.2) eslint: 10.7.0(jiti@2.7.0) typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.64.0': + '@typescript-eslint/visitor-keys@8.65.0': dependencies: - '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/types': 8.65.0 eslint-visitor-keys: 5.0.1 '@typescript/typescript-aix-ppc64@7.0.2': @@ -1726,73 +1702,73 @@ snapshots: '@vladfrangu/async_event_emitter@2.4.7': {} - '@yuku-codegen/binding-darwin-arm64@0.6.1': + '@yuku-codegen/binding-darwin-arm64@0.7.3': optional: true - '@yuku-codegen/binding-darwin-x64@0.6.1': + '@yuku-codegen/binding-darwin-x64@0.7.3': optional: true - '@yuku-codegen/binding-freebsd-x64@0.6.1': + '@yuku-codegen/binding-freebsd-x64@0.7.3': optional: true - '@yuku-codegen/binding-linux-arm-gnu@0.6.1': + '@yuku-codegen/binding-linux-arm-gnu@0.7.3': optional: true - '@yuku-codegen/binding-linux-arm-musl@0.6.1': + '@yuku-codegen/binding-linux-arm-musl@0.7.3': optional: true - '@yuku-codegen/binding-linux-arm64-gnu@0.6.1': + '@yuku-codegen/binding-linux-arm64-gnu@0.7.3': optional: true - '@yuku-codegen/binding-linux-arm64-musl@0.6.1': + '@yuku-codegen/binding-linux-arm64-musl@0.7.3': optional: true - '@yuku-codegen/binding-linux-x64-gnu@0.6.1': + '@yuku-codegen/binding-linux-x64-gnu@0.7.3': optional: true - '@yuku-codegen/binding-linux-x64-musl@0.6.1': + '@yuku-codegen/binding-linux-x64-musl@0.7.3': optional: true - '@yuku-codegen/binding-win32-arm64@0.6.1': + '@yuku-codegen/binding-win32-arm64@0.7.3': optional: true - '@yuku-codegen/binding-win32-x64@0.6.1': + '@yuku-codegen/binding-win32-x64@0.7.3': optional: true - '@yuku-parser/binding-darwin-arm64@0.6.1': + '@yuku-parser/binding-darwin-arm64@0.7.3': optional: true - '@yuku-parser/binding-darwin-x64@0.6.1': + '@yuku-parser/binding-darwin-x64@0.7.3': optional: true - '@yuku-parser/binding-freebsd-x64@0.6.1': + '@yuku-parser/binding-freebsd-x64@0.7.3': optional: true - '@yuku-parser/binding-linux-arm-gnu@0.6.1': + '@yuku-parser/binding-linux-arm-gnu@0.7.3': optional: true - '@yuku-parser/binding-linux-arm-musl@0.6.1': + '@yuku-parser/binding-linux-arm-musl@0.7.3': optional: true - '@yuku-parser/binding-linux-arm64-gnu@0.6.1': + '@yuku-parser/binding-linux-arm64-gnu@0.7.3': optional: true - '@yuku-parser/binding-linux-arm64-musl@0.6.1': + '@yuku-parser/binding-linux-arm64-musl@0.7.3': optional: true - '@yuku-parser/binding-linux-x64-gnu@0.6.1': + '@yuku-parser/binding-linux-x64-gnu@0.7.3': optional: true - '@yuku-parser/binding-linux-x64-musl@0.6.1': + '@yuku-parser/binding-linux-x64-musl@0.7.3': optional: true - '@yuku-parser/binding-win32-arm64@0.6.1': + '@yuku-parser/binding-win32-arm64@0.7.3': optional: true - '@yuku-parser/binding-win32-x64@0.6.1': + '@yuku-parser/binding-win32-x64@0.7.3': optional: true - '@yuku-toolchain/types@0.5.43': {} + '@yuku-toolchain/types@0.7.3': {} acorn-jsx@5.3.2(acorn@8.17.0): dependencies: @@ -1833,18 +1809,18 @@ snapshots: defu@6.1.7: {} - discord-api-types@0.38.49: {} + discord-api-types@0.38.50: {} discord.js@14.27.0: dependencies: '@discordjs/builders': 1.14.1 '@discordjs/collection': 1.5.3 '@discordjs/formatters': 0.6.2 - '@discordjs/rest': 2.6.2 + '@discordjs/rest': 2.6.3 '@discordjs/util': 1.2.0 '@discordjs/ws': 1.2.3 '@sapphire/snowflake': 3.5.5 - discord-api-types: 0.38.49 + discord-api-types: 0.38.50 fast-deep-equal: 3.1.3 lodash.snakecase: 4.1.1 magic-bytes.js: 1.13.0 @@ -1871,7 +1847,7 @@ snapshots: optionalDependencies: unrs-resolver: 1.12.2 - eslint-import-resolver-typescript@4.4.5(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)))(eslint@10.7.0(jiti@2.7.0)): + eslint-import-resolver-typescript@4.4.5(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)))(eslint@10.7.0(jiti@2.7.0)): dependencies: debug: 4.4.3 eslint: 10.7.0(jiti@2.7.0) @@ -1882,13 +1858,13 @@ snapshots: tinyglobby: 0.2.17 unrs-resolver: 1.12.2 optionalDependencies: - eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)) + eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)): + eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0)): dependencies: - '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/types': 8.65.0 comment-parser: 1.4.7 debug: 4.4.3 eslint: 10.7.0(jiti@2.7.0) @@ -1899,7 +1875,7 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.12.2 optionalDependencies: - '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/utils': 8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) transitivePeerDependencies: - supports-color @@ -1910,13 +1886,11 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@5.0.1: {} eslint@10.7.0(jiti@2.7.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@2.7.0)) + '@eslint-community/eslint-utils': 4.10.0(eslint@10.7.0(jiti@2.7.0)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.6.0 @@ -2106,7 +2080,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.9.5: {} + prettier@3.9.6: {} punycode@2.3.1: {} @@ -2114,15 +2088,15 @@ snapshots: resolve-pkg-maps@1.0.0: {} - rolldown-plugin-dts@0.27.9(rolldown@1.2.0)(typescript@7.0.2): + rolldown-plugin-dts@0.27.13(rolldown@1.2.0)(typescript@7.0.2): dependencies: dts-resolver: 3.0.0 get-tsconfig: 5.0.0-beta.5 obug: 2.1.4 rolldown: 1.2.0 - yuku-ast: 0.1.7 - yuku-codegen: 0.6.1 - yuku-parser: 0.6.1 + yuku-ast: 0.7.3 + yuku-codegen: 0.7.3 + yuku-parser: 0.7.3 optionalDependencies: typescript: 7.0.2 transitivePeerDependencies: @@ -2174,7 +2148,7 @@ snapshots: ts-mixer@6.0.4: {} - tsdown@0.22.12(typescript@7.0.2): + tsdown@0.22.13(typescript@7.0.2): dependencies: ansis: 4.3.1 cac: 7.0.0 @@ -2185,7 +2159,7 @@ snapshots: obug: 2.1.4 picomatch: 4.0.5 rolldown: 1.2.0 - rolldown-plugin-dts: 0.27.9(rolldown@1.2.0)(typescript@7.0.2) + rolldown-plugin-dts: 0.27.13(rolldown@1.2.0)(typescript@7.0.2) tinyexec: 1.2.4 tinyglobby: 0.2.17 tree-kill: 1.2.2 @@ -2194,8 +2168,8 @@ snapshots: optionalDependencies: typescript: 7.0.2 transitivePeerDependencies: - - '@ts-macro/tsc' - '@typescript/native-preview' + - '@volar/typescript' - oxc-resolver - vue-tsc @@ -2205,12 +2179,12 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2): + typescript-eslint@8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.64.0(@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) - '@typescript-eslint/parser': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) - '@typescript-eslint/typescript-estree': 8.64.0(typescript@7.0.2) - '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/parser': 8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/typescript-estree': 8.65.0(typescript@7.0.2) + '@typescript-eslint/utils': 8.65.0(eslint@10.7.0(jiti@2.7.0))(typescript@7.0.2) eslint: 10.7.0(jiti@2.7.0) typescript: 7.0.2 transitivePeerDependencies: @@ -2246,8 +2220,6 @@ snapshots: undici-types@8.3.0: {} - undici@6.24.1: {} - undici@6.27.0: {} unrs-resolver@1.12.2: @@ -2289,44 +2261,45 @@ snapshots: word-wrap@1.2.5: {} - ws@8.21.0: {} + ws@8.21.1: {} yocto-queue@0.1.0: {} yoctocolors@2.1.2: {} - yuku-ast@0.1.7: + yuku-ast@0.7.3: dependencies: - '@yuku-toolchain/types': 0.5.43 + '@yuku-toolchain/types': 0.7.3 - yuku-codegen@0.6.1: + yuku-codegen@0.7.3: dependencies: - '@yuku-toolchain/types': 0.5.43 + '@yuku-toolchain/types': 0.7.3 optionalDependencies: - '@yuku-codegen/binding-darwin-arm64': 0.6.1 - '@yuku-codegen/binding-darwin-x64': 0.6.1 - '@yuku-codegen/binding-freebsd-x64': 0.6.1 - '@yuku-codegen/binding-linux-arm-gnu': 0.6.1 - '@yuku-codegen/binding-linux-arm-musl': 0.6.1 - '@yuku-codegen/binding-linux-arm64-gnu': 0.6.1 - '@yuku-codegen/binding-linux-arm64-musl': 0.6.1 - '@yuku-codegen/binding-linux-x64-gnu': 0.6.1 - '@yuku-codegen/binding-linux-x64-musl': 0.6.1 - '@yuku-codegen/binding-win32-arm64': 0.6.1 - '@yuku-codegen/binding-win32-x64': 0.6.1 - - yuku-parser@0.6.1: - dependencies: - '@yuku-toolchain/types': 0.5.43 + '@yuku-codegen/binding-darwin-arm64': 0.7.3 + '@yuku-codegen/binding-darwin-x64': 0.7.3 + '@yuku-codegen/binding-freebsd-x64': 0.7.3 + '@yuku-codegen/binding-linux-arm-gnu': 0.7.3 + '@yuku-codegen/binding-linux-arm-musl': 0.7.3 + '@yuku-codegen/binding-linux-arm64-gnu': 0.7.3 + '@yuku-codegen/binding-linux-arm64-musl': 0.7.3 + '@yuku-codegen/binding-linux-x64-gnu': 0.7.3 + '@yuku-codegen/binding-linux-x64-musl': 0.7.3 + '@yuku-codegen/binding-win32-arm64': 0.7.3 + '@yuku-codegen/binding-win32-x64': 0.7.3 + + yuku-parser@0.7.3: + dependencies: + '@yuku-toolchain/types': 0.7.3 + yuku-ast: 0.7.3 optionalDependencies: - '@yuku-parser/binding-darwin-arm64': 0.6.1 - '@yuku-parser/binding-darwin-x64': 0.6.1 - '@yuku-parser/binding-freebsd-x64': 0.6.1 - '@yuku-parser/binding-linux-arm-gnu': 0.6.1 - '@yuku-parser/binding-linux-arm-musl': 0.6.1 - '@yuku-parser/binding-linux-arm64-gnu': 0.6.1 - '@yuku-parser/binding-linux-arm64-musl': 0.6.1 - '@yuku-parser/binding-linux-x64-gnu': 0.6.1 - '@yuku-parser/binding-linux-x64-musl': 0.6.1 - '@yuku-parser/binding-win32-arm64': 0.6.1 - '@yuku-parser/binding-win32-x64': 0.6.1 + '@yuku-parser/binding-darwin-arm64': 0.7.3 + '@yuku-parser/binding-darwin-x64': 0.7.3 + '@yuku-parser/binding-freebsd-x64': 0.7.3 + '@yuku-parser/binding-linux-arm-gnu': 0.7.3 + '@yuku-parser/binding-linux-arm-musl': 0.7.3 + '@yuku-parser/binding-linux-arm64-gnu': 0.7.3 + '@yuku-parser/binding-linux-arm64-musl': 0.7.3 + '@yuku-parser/binding-linux-x64-gnu': 0.7.3 + '@yuku-parser/binding-linux-x64-musl': 0.7.3 + '@yuku-parser/binding-win32-arm64': 0.7.3 + '@yuku-parser/binding-win32-x64': 0.7.3 diff --git a/src/client/StelliaUtils.ts b/src/client/StelliaUtils.ts index 5edd3f4..9c42920 100644 --- a/src/client/StelliaUtils.ts +++ b/src/client/StelliaUtils.ts @@ -120,9 +120,7 @@ export class StelliaUtils = Record( - guildId: string - ): CustomGuildConfiguration | null => { + public getGuildConfiguration = (guildId: string): CustomGuildConfiguration | null => { if (!this.client.environment?.areGuildsConfigurationEnabled || !this.guildsConfiguration) { return null; } @@ -304,9 +302,7 @@ export class StelliaUtils = Record = Record - ): Promise => { + private readonly handleMessageContextMenuInteraction = async (interaction: MessageContextMenuCommandInteraction<"cached">): Promise => { try { const contextMenuManager = this.client.managers.contextMenus; if (!contextMenuManager) { diff --git a/src/utils/translation.ts b/src/utils/translation.ts index 4dda657..08ca52a 100644 --- a/src/utils/translation.ts +++ b/src/utils/translation.ts @@ -1,7 +1,7 @@ import { type i18n } from "i18next"; import { type StelliaLocale } from "@typescript/index.js"; -type TranslateArgs = Record; +export type TranslateArgs = Record; let _instance: i18n;