From dcd94db325e84a411a7a50959f7e099dfbc30b66 Mon Sep 17 00:00:00 2001 From: Louis Hollingworth Date: Tue, 19 Sep 2023 17:55:01 +0100 Subject: [PATCH] (#8) Removed all node stuff. Init Cargo Signed-off-by: Louis Hollingworth --- .gitea/workflows/db-migrate.yml | 65 -- .gitignore | 5 + Cargo.toml | 8 + bun.lockb | Bin 46792 -> 0 bytes package.json | 35 - pnpm-lock.yaml | 1239 ------------------------------- src/commands/admin.ts | 166 ----- src/commands/perks.ts | 69 -- src/commands/report.ts | 55 -- src/commands/threads.ts | 35 - src/events/guild_join.ts | 15 - src/events/member_event.ts | 107 --- src/main.rs | 3 + src/main.ts | 77 -- src/menus/report.ts | 103 --- tsconfig.json | 18 - 16 files changed, 16 insertions(+), 1984 deletions(-) delete mode 100644 .gitea/workflows/db-migrate.yml create mode 100644 Cargo.toml delete mode 100755 bun.lockb delete mode 100644 package.json delete mode 100644 pnpm-lock.yaml delete mode 100644 src/commands/admin.ts delete mode 100644 src/commands/perks.ts delete mode 100644 src/commands/report.ts delete mode 100644 src/commands/threads.ts delete mode 100644 src/events/guild_join.ts delete mode 100644 src/events/member_event.ts create mode 100644 src/main.rs delete mode 100644 src/main.ts delete mode 100644 src/menus/report.ts delete mode 100644 tsconfig.json diff --git a/.gitea/workflows/db-migrate.yml b/.gitea/workflows/db-migrate.yml deleted file mode 100644 index 6800aa4..0000000 --- a/.gitea/workflows/db-migrate.yml +++ /dev/null @@ -1,65 +0,0 @@ -name: prisma-migrate - -on: - push: - branches: [main] - -jobs: - install: - runs-on: ubuntu-latest - - steps: - - uses: https://github.com/actions/checkout@v2 - - name: Setup Nodejs - uses: https://github.com/actions/setup-node@v2 - with: - node-version: 16.x - - - name: Install - run: yarn install - - name: Rerun Install - run: yarn install - - generate: - runs-on: ubuntu-latest - - needs: install - - steps: - - uses: https://github.com/actions/checkout@v2 - - - name: Setup Nodejs - uses: https://github.com/actions/setup-node@v2 - with: - node-version: 16.x - - - name: Install - run: yarn install - - - run: rm -rf node_modules/.prisma - - - name: Generate Prisma Client - run: npx prisma generate - - migrate: - runs-on: ubuntu-latest - - needs: install - - steps: - - uses: https://github.com/actions/checkout@v2 - - - name: Setup Nodejs - uses: https://github.com/actions/setup-node@v2 - with: - node-version: 16.x - - - name: Install - run: yarn install - - - run: rm -rf node_modules/.prisma - - - name: Deploy Migrations - run: npx prisma migrate deploy - env: - DATABASE_URL: ${{ secrets.PROD_DATABASE_URL }} diff --git a/.gitignore b/.gitignore index 992f45f..3cf4d59 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,8 @@ .env node_modules .DS_Store + + +# Added by cargo + +/target diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..506ae5f --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "er" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 74ff2d54575068aa8e1cadf3fdbdaf9dd01beb69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46792 zcmeIb30#cb`#(NqBw3;oMOy6Dw691>B1?$0P?@HwrfsH~X+sIwqD7Xhm2BBVW!Gja zWlteOM2d)q?EmY!XYRUrs65~A|MmaEESu8s zp8H*kwbfOrdst)#Ma|E1%yQr+2y;adP5P%eTAY@P5MR*Pe9@H`R|xgfXkHuvi_7;4 zH->B(8ZA0ZASw?D^5U>KG@56Kz>^E;C{U*>lnVs`98b6wP5ch)E7xEGBB95h{XteH-)`c{d+lb?S5F?LJ zzzF1ov-#ScXfy>#2XMWZ0$&>K1k@)7=>rfGdPeZrUZB5F5W(jJ`LId7hd?><^Y|P= zAd^Nb17)%Pc@X!880sW=d;+-GOxj9l1hylP6U5;$1%et#VEcT<@fN5I@oykTUJr48 zEHoDF6A3Z4I}{2LX9qFbSsg$aD?%FeJpyU0e>cQf-(ASZcr%b7{sqK%e_K2xUIUB) z6wN$SfDH8+14cw%GjSZ|%VB}}XdD4MoDFd?(@_YUm-VyXipHAC&YT0o}PSmDCh#^ zsE;pG!0--W`ZNIlOEJ#|}T8xqDD% zmpz7|A8y(8@5ypKe%-!zOyVZb?dOtDk6-<)%NM-?RS&Lg__F13$>Rgk*>Xm4`A^R& z?z`jjBCu(tYIsg%Sw)qGvq4y$^SUeC?~l8Uvwt&gm0aHAP>ZeR_P6HdGN<2p^z5n4 zdpG0fm(~4^0?KdN*mlmbt?jwlSUXLI)VtBoK1pp^bzX<0vkP_g-q(g6R1a~@(Ys=P zaLkwmc!f0tw(8RjLGHIQhmoCA2SsaZ zEn$1cIGcF)y!62R@`aP{CtDpFeWB~y>Q8-hBRLcOd+8>vh<+X(dMj?y3gyO&cRQOn zPuA^vUZZ?k@-z+g(+ba~)L5q7`H%mZ)}D z))@QP;{53?)hCrKWF$>GMaV?F$*#C(c{=K2PqzOzqtcCY>{wkiRyf|Rbk}n@qIDup zX_oxe$YU~xX%j806nC6Hm)cYsb#~4i%@ZK@`%T2GmSlqZ?^X1q=7OQl~TmG6# z-;>>(?-g(Mah6uLO^E4b_jG2rq=D6B?5OMR&YR-t@pJzc#m(>DTe2*in>6d1(=(;S z_{B7%N6N()c4VC^%PvnC?~@nn*4I+^Ac zy|$y`lK?d0f1rP<7*Fc+r|nk+ryonHANHi}3S@n=06&h>{y+8KbTJ+)MJ&nNmJ;NB zwSXTZt{*Pj-3KJz3MO6jU&LbgQ~kpMZwq+D!G7_N^*;-E6TpKT;(iyO#o84}{oeuJ z8t`Plllg6tkoTFuz{mPgf8-!}+KUeWJkI}kKkT2|9mx8(0Uqs-?T5>D2NHh=KsbM) z-v4F&>I$7^A+Eo@zK=?h^``+I+mHI=9)Qfpds++ReNO-ndx-yxw+Exo6XU7+4}g3v z$UmDW>lfOoZ}rc*ko6bAeb#Uv+7I*o)c^a##zi0S*!PGnHVs%T@zi7SW_dNu>4d794QhtwWDIxI#`_O1Q z;`$N)r{l)~@YsHwze&!PT7G{;-kS_~e11SYxd;3`s-=X)7Xu#WPqN=gJGR{U>njp3 z4KH1&_&;sGE#S%hGuG7JJs4U4lAr1)_p!g$x+Ryy7Xsc1+K(lFvWAj)LuDGxUW~`K z|7rb40Y6=Af3!XI83=XyT_Ee1g7-`l0FQP57ytDDycyt;58IE@o

W6Y!>DJmO$F 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.0.0", - "npm": ">=7.0.0" - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 8d7ae47..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,1239 +0,0 @@ -lockfileVersion: "6.0" - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -dependencies: - "@discordx/importer": - specifier: ^1.2.3 - version: 1.2.3 - "@prisma/client": - specifier: 5.2.0 - version: 5.2.0(prisma@5.2.0) - discord.js: - specifier: ^14.13.0 - version: 14.13.0 - discordx: - specifier: ^11.7.6 - version: 11.7.6(discord.js@14.13.0) - dotenv: - specifier: 16.3.1 - version: 16.3.1 - -devDependencies: - "@types/node": - specifier: ^20.6.0 - version: 20.6.0 - nodemon: - specifier: ^3.0.1 - version: 3.0.1 - prettier: - specifier: ^3.0.3 - version: 3.0.3 - prisma: - specifier: ^5.2.0 - version: 5.2.0 - ts-node: - specifier: ^10.9.1 - version: 10.9.1(@types/node@20.6.0)(typescript@5.2.2) - typescript: - specifier: 5.2.2 - version: 5.2.2 - -packages: - /@cspotcode/source-map-support@0.8.1: - resolution: - { - integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, - } - engines: { node: ">=12" } - dependencies: - "@jridgewell/trace-mapping": 0.3.9 - dev: true - - /@discordjs/builders@1.6.5: - resolution: - { - integrity: sha512-SdweyCs/+mHj+PNhGLLle7RrRFX9ZAhzynHahMCLqp5Zeq7np7XC6/mgzHc79QoVlQ1zZtOkTTiJpOZu5V8Ufg==, - } - engines: { node: ">=16.11.0" } - dependencies: - "@discordjs/formatters": 0.3.2 - "@discordjs/util": 1.0.1 - "@sapphire/shapeshift": 3.9.2 - discord-api-types: 0.37.50 - fast-deep-equal: 3.1.3 - ts-mixer: 6.0.3 - tslib: 2.6.2 - dev: false - - /@discordjs/collection@1.5.3: - resolution: - { - integrity: sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==, - } - engines: { node: ">=16.11.0" } - dev: false - - /@discordjs/formatters@0.3.2: - resolution: - { - integrity: sha512-lE++JZK8LSSDRM5nLjhuvWhGuKiXqu+JZ/DsOR89DVVia3z9fdCJVcHF2W/1Zxgq0re7kCzmAJlCMMX3tetKpA==, - } - engines: { node: ">=16.11.0" } - dependencies: - discord-api-types: 0.37.50 - dev: false - - /@discordjs/rest@2.0.1: - resolution: - { - integrity: sha512-/eWAdDRvwX/rIE2tuQUmKaxmWeHmGealttIzGzlYfI4+a7y9b6ZoMp8BG/jaohs8D8iEnCNYaZiOFLVFLQb8Zg==, - } - engines: { node: ">=16.11.0" } - dependencies: - "@discordjs/collection": 1.5.3 - "@discordjs/util": 1.0.1 - "@sapphire/async-queue": 1.5.0 - "@sapphire/snowflake": 3.5.1 - "@vladfrangu/async_event_emitter": 2.2.2 - discord-api-types: 0.37.50 - magic-bytes.js: 1.0.15 - tslib: 2.6.2 - undici: 5.22.1 - dev: false - - /@discordjs/util@1.0.1: - resolution: - { - integrity: sha512-d0N2yCxB8r4bn00/hvFZwM7goDcUhtViC5un4hPj73Ba4yrChLSJD8fy7Ps5jpTLg1fE9n4K0xBLc1y9WGwSsA==, - } - engines: { node: ">=16.11.0" } - dev: false - - /@discordjs/ws@1.0.1: - resolution: - { - integrity: sha512-avvAolBqN3yrSvdBPcJ/0j2g42ABzrv3PEL76e3YTp2WYMGH7cuspkjfSyNWaqYl1J+669dlLp+YFMxSVQyS5g==, - } - engines: { node: ">=16.11.0" } - dependencies: - "@discordjs/collection": 1.5.3 - "@discordjs/rest": 2.0.1 - "@discordjs/util": 1.0.1 - "@sapphire/async-queue": 1.5.0 - "@types/ws": 8.5.5 - "@vladfrangu/async_event_emitter": 2.2.2 - discord-api-types: 0.37.50 - tslib: 2.6.2 - ws: 8.14.1 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /@discordx/di@3.1.1: - resolution: - { - integrity: sha512-WqJOlMNTzBogiBke6LWNFhZ/9PDVzOl3GAkJLs6fsY3srMjOlZukmXP5l2ILx5I5VWpFkpM1aZZxSpnfR+a+fg==, - } - engines: { node: ">=16.0.0", npm: ">=7.0.0" } - dependencies: - tsyringe: 4.8.0 - typedi: 0.10.0 - dev: false - - /@discordx/importer@1.2.3: - resolution: - { - integrity: sha512-7LvdlImpCceb/eOsXiOH2LN2Lgnd9Fz5jw9k9C4yFDBWxGO5r3844yr6OiA+RpEPThuCfXjmD1aeOAuZdn8c0g==, - } - dependencies: - glob: 10.3.4 - tslib: 2.6.2 - dev: false - - /@discordx/internal@1.0.2: - resolution: - { - integrity: sha512-+vv5QS133O3TDDBvPp+ugQy5ExCFjVTxVn5AwQRgwpKNyXSplarNXA4TzACuiYBnXb6ecwtjfbDLcy/xMjYIoQ==, - } - engines: { node: ">=16.0.0", npm: ">=7.0.0" } - dependencies: - tslib: 2.6.2 - dev: false - - /@isaacs/cliui@8.0.2: - resolution: - { - integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, - } - engines: { node: ">=12" } - dependencies: - string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: false - - /@jridgewell/resolve-uri@3.1.1: - resolution: - { - integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, - } - engines: { node: ">=6.0.0" } - dev: true - - /@jridgewell/sourcemap-codec@1.4.15: - resolution: - { - integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, - } - dev: true - - /@jridgewell/trace-mapping@0.3.9: - resolution: - { - integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, - } - dependencies: - "@jridgewell/resolve-uri": 3.1.1 - "@jridgewell/sourcemap-codec": 1.4.15 - dev: true - - /@pkgjs/parseargs@0.11.0: - resolution: - { - integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, - } - engines: { node: ">=14" } - requiresBuild: true - dev: false - optional: true - - /@prisma/client@5.2.0(prisma@5.2.0): - resolution: - { - integrity: sha512-AiTjJwR4J5Rh6Z/9ZKrBBLel3/5DzUNntMohOy7yObVnVoTNVFi2kvpLZlFuKO50d7yDspOtW6XBpiAd0BVXbQ==, - } - engines: { node: ">=16.13" } - requiresBuild: true - peerDependencies: - prisma: "*" - peerDependenciesMeta: - prisma: - optional: true - dependencies: - "@prisma/engines-version": 5.2.0-25.2804dc98259d2ea960602aca6b8e7fdc03c1758f - prisma: 5.2.0 - dev: false - - /@prisma/engines-version@5.2.0-25.2804dc98259d2ea960602aca6b8e7fdc03c1758f: - resolution: - { - integrity: sha512-jsnKT5JIDIE01lAeCj2ghY9IwxkedhKNvxQeoyLs6dr4ZXynetD0vTy7u6wMJt8vVPv8I5DPy/I4CFaoXAgbtg==, - } - dev: false - - /@prisma/engines@5.2.0: - resolution: - { - integrity: sha512-dT7FOLUCdZmq+AunLqB1Iz+ZH/IIS1Fz2THmKZQ6aFONrQD/BQ5ecJ7g2wGS2OgyUFf4OaLam6/bxmgdOBDqig==, - } - requiresBuild: true - - /@sapphire/async-queue@1.5.0: - resolution: - { - integrity: sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA==, - } - engines: { node: ">=v14.0.0", npm: ">=7.0.0" } - dev: false - - /@sapphire/shapeshift@3.9.2: - resolution: - { - integrity: sha512-YRbCXWy969oGIdqR/wha62eX8GNHsvyYi0Rfd4rNW6tSVVa8p0ELiMEuOH/k8rgtvRoM+EMV7Csqz77YdwiDpA==, - } - engines: { node: ">=v14.0.0", npm: ">=7.0.0" } - dependencies: - fast-deep-equal: 3.1.3 - lodash: 4.17.21 - dev: false - - /@sapphire/snowflake@3.5.1: - resolution: - { - integrity: sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA==, - } - engines: { node: ">=v14.0.0", npm: ">=7.0.0" } - dev: false - - /@tsconfig/node10@1.0.9: - resolution: - { - integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==, - } - dev: true - - /@tsconfig/node12@1.0.11: - resolution: - { - integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, - } - dev: true - - /@tsconfig/node14@1.0.3: - resolution: - { - integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, - } - dev: true - - /@tsconfig/node16@1.0.4: - resolution: - { - integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, - } - dev: true - - /@types/node@20.6.0: - resolution: - { - integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==, - } - - /@types/ws@8.5.5: - resolution: - { - integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==, - } - dependencies: - "@types/node": 20.6.0 - dev: false - - /@vladfrangu/async_event_emitter@2.2.2: - resolution: - { - integrity: sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ==, - } - engines: { node: ">=v14.0.0", npm: ">=7.0.0" } - dev: false - - /abbrev@1.1.1: - resolution: - { - integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==, - } - dev: true - - /acorn-walk@8.2.0: - resolution: - { - integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==, - } - engines: { node: ">=0.4.0" } - dev: true - - /acorn@8.10.0: - resolution: - { - integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==, - } - engines: { node: ">=0.4.0" } - hasBin: true - dev: true - - /ansi-regex@5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, - } - engines: { node: ">=8" } - dev: false - - /ansi-regex@6.0.1: - resolution: - { - integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, - } - engines: { node: ">=12" } - dev: false - - /ansi-styles@4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, - } - engines: { node: ">=8" } - dependencies: - color-convert: 2.0.1 - dev: false - - /ansi-styles@6.2.1: - resolution: - { - integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, - } - engines: { node: ">=12" } - dev: false - - /anymatch@3.1.3: - resolution: - { - integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, - } - engines: { node: ">= 8" } - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /arg@4.1.3: - resolution: - { - integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, - } - dev: true - - /balanced-match@1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, - } - - /binary-extensions@2.2.0: - resolution: - { - integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, - } - engines: { node: ">=8" } - dev: true - - /brace-expansion@1.1.11: - resolution: - { - integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, - } - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /brace-expansion@2.0.1: - resolution: - { - integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, - } - dependencies: - balanced-match: 1.0.2 - dev: false - - /braces@3.0.2: - resolution: - { - integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, - } - engines: { node: ">=8" } - dependencies: - fill-range: 7.0.1 - dev: true - - /busboy@1.6.0: - resolution: - { - integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==, - } - engines: { node: ">=10.16.0" } - dependencies: - streamsearch: 1.1.0 - dev: false - - /chokidar@3.5.3: - resolution: - { - integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, - } - engines: { node: ">= 8.10.0" } - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /color-convert@2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, - } - engines: { node: ">=7.0.0" } - dependencies: - color-name: 1.1.4 - dev: false - - /color-name@1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, - } - dev: false - - /concat-map@0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, - } - dev: true - - /create-require@1.1.1: - resolution: - { - integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, - } - dev: true - - /cross-spawn@7.0.3: - resolution: - { - integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, - } - engines: { node: ">= 8" } - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: false - - /debug@3.2.7(supports-color@5.5.0): - resolution: - { - integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, - } - peerDependencies: - supports-color: "*" - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - supports-color: 5.5.0 - dev: true - - /diff@4.0.2: - resolution: - { - integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, - } - engines: { node: ">=0.3.1" } - dev: true - - /discord-api-types@0.37.50: - resolution: - { - integrity: sha512-X4CDiMnDbA3s3RaUXWXmgAIbY1uxab3fqe3qwzg5XutR3wjqi7M3IkgQbsIBzpqBN2YWr/Qdv7JrFRqSgb4TFg==, - } - dev: false - - /discord.js@14.13.0: - resolution: - { - integrity: sha512-Kufdvg7fpyTEwANGy9x7i4od4yu5c6gVddGi5CKm4Y5a6sF0VBODObI3o0Bh7TGCj0LfNT8Qp8z04wnLFzgnbA==, - } - engines: { node: ">=16.11.0" } - dependencies: - "@discordjs/builders": 1.6.5 - "@discordjs/collection": 1.5.3 - "@discordjs/formatters": 0.3.2 - "@discordjs/rest": 2.0.1 - "@discordjs/util": 1.0.1 - "@discordjs/ws": 1.0.1 - "@sapphire/snowflake": 3.5.1 - "@types/ws": 8.5.5 - discord-api-types: 0.37.50 - fast-deep-equal: 3.1.3 - lodash.snakecase: 4.1.1 - tslib: 2.6.2 - undici: 5.22.1 - ws: 8.14.1 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /discordx@11.7.6(discord.js@14.13.0): - resolution: - { - integrity: sha512-Vo7godHVFu6weq9orIXfOpbySSKGW+gmE0h0QXQSFh/sqG1YTp9tsnrdIH4ce6+NcGOpEeZwAdUd+KK5RPQf7w==, - } - engines: { node: ">=16.0.0", npm: ">=7.0.0" } - peerDependencies: - discord.js: ">=14 || ^14.0.0-dev" - dependencies: - "@discordx/di": 3.1.1 - "@discordx/internal": 1.0.2 - discord.js: 14.13.0 - lodash: 4.17.21 - tslib: 2.6.2 - dev: false - - /dotenv@16.3.1: - resolution: - { - integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==, - } - engines: { node: ">=12" } - dev: false - - /eastasianwidth@0.2.0: - resolution: - { - integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, - } - dev: false - - /emoji-regex@8.0.0: - resolution: - { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, - } - dev: false - - /emoji-regex@9.2.2: - resolution: - { - integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, - } - dev: false - - /fast-deep-equal@3.1.3: - resolution: - { - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, - } - dev: false - - /fill-range@7.0.1: - resolution: - { - integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, - } - engines: { node: ">=8" } - dependencies: - to-regex-range: 5.0.1 - dev: true - - /foreground-child@3.1.1: - resolution: - { - integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, - } - engines: { node: ">=14" } - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - dev: false - - /fsevents@2.3.3: - resolution: - { - integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /glob-parent@5.1.2: - resolution: - { - integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, - } - engines: { node: ">= 6" } - dependencies: - is-glob: 4.0.3 - dev: true - - /glob@10.3.4: - resolution: - { - integrity: sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==, - } - engines: { node: ">=16 || 14 >=14.17" } - hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.3 - minimatch: 9.0.3 - minipass: 7.0.3 - path-scurry: 1.10.1 - dev: false - - /has-flag@3.0.0: - resolution: - { - integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, - } - engines: { node: ">=4" } - dev: true - - /ignore-by-default@1.0.1: - resolution: - { - integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==, - } - dev: true - - /is-binary-path@2.1.0: - resolution: - { - integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, - } - engines: { node: ">=8" } - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-extglob@2.1.1: - resolution: - { - integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, - } - engines: { node: ">=0.10.0" } - dev: true - - /is-fullwidth-code-point@3.0.0: - resolution: - { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, - } - engines: { node: ">=8" } - dev: false - - /is-glob@4.0.3: - resolution: - { - integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, - } - engines: { node: ">=0.10.0" } - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-number@7.0.0: - resolution: - { - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, - } - engines: { node: ">=0.12.0" } - dev: true - - /isexe@2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, - } - dev: false - - /jackspeak@2.3.3: - resolution: - { - integrity: sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==, - } - engines: { node: ">=14" } - dependencies: - "@isaacs/cliui": 8.0.2 - optionalDependencies: - "@pkgjs/parseargs": 0.11.0 - dev: false - - /lodash.snakecase@4.1.1: - resolution: - { - integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==, - } - dev: false - - /lodash@4.17.21: - resolution: - { - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, - } - dev: false - - /lru-cache@10.0.1: - resolution: - { - integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==, - } - engines: { node: 14 || >=16.14 } - dev: false - - /lru-cache@6.0.0: - resolution: - { - integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, - } - engines: { node: ">=10" } - dependencies: - yallist: 4.0.0 - dev: true - - /magic-bytes.js@1.0.15: - resolution: - { - integrity: sha512-bpRmwbRHqongRhA+mXzbLWjVy7ylqmfMBYaQkSs6pac0z6hBTvsgrH0r4FBYd/UYVJBmS6Rp/O+oCCQVLzKV1g==, - } - dev: false - - /make-error@1.3.6: - resolution: - { - integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, - } - dev: true - - /minimatch@3.1.2: - resolution: - { - integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, - } - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimatch@9.0.3: - resolution: - { - integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, - } - engines: { node: ">=16 || 14 >=14.17" } - dependencies: - brace-expansion: 2.0.1 - dev: false - - /minipass@7.0.3: - resolution: - { - integrity: sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==, - } - engines: { node: ">=16 || 14 >=14.17" } - dev: false - - /ms@2.1.3: - resolution: - { - integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, - } - dev: true - - /nodemon@3.0.1: - resolution: - { - integrity: sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==, - } - engines: { node: ">=10" } - hasBin: true - dependencies: - chokidar: 3.5.3 - debug: 3.2.7(supports-color@5.5.0) - ignore-by-default: 1.0.1 - minimatch: 3.1.2 - pstree.remy: 1.1.8 - semver: 7.5.4 - simple-update-notifier: 2.0.0 - supports-color: 5.5.0 - touch: 3.1.0 - undefsafe: 2.0.5 - dev: true - - /nopt@1.0.10: - resolution: - { - integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==, - } - hasBin: true - dependencies: - abbrev: 1.1.1 - dev: true - - /normalize-path@3.0.0: - resolution: - { - integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, - } - engines: { node: ">=0.10.0" } - dev: true - - /path-key@3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, - } - engines: { node: ">=8" } - dev: false - - /path-scurry@1.10.1: - resolution: - { - integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==, - } - engines: { node: ">=16 || 14 >=14.17" } - dependencies: - lru-cache: 10.0.1 - minipass: 7.0.3 - dev: false - - /picomatch@2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, - } - engines: { node: ">=8.6" } - dev: true - - /prettier@3.0.3: - resolution: - { - integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==, - } - engines: { node: ">=14" } - hasBin: true - dev: true - - /prisma@5.2.0: - resolution: - { - integrity: sha512-FfFlpjVCkZwrqxDnP4smlNYSH1so+CbfjgdpioFzGGqlQAEm6VHAYSzV7jJgC3ebtY9dNOhDMS2+4/1DDSM7bQ==, - } - engines: { node: ">=16.13" } - hasBin: true - requiresBuild: true - dependencies: - "@prisma/engines": 5.2.0 - - /pstree.remy@1.1.8: - resolution: - { - integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==, - } - dev: true - - /readdirp@3.6.0: - resolution: - { - integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, - } - engines: { node: ">=8.10.0" } - dependencies: - picomatch: 2.3.1 - dev: true - - /semver@7.5.4: - resolution: - { - integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, - } - engines: { node: ">=10" } - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /shebang-command@2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, - } - engines: { node: ">=8" } - dependencies: - shebang-regex: 3.0.0 - dev: false - - /shebang-regex@3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, - } - engines: { node: ">=8" } - dev: false - - /signal-exit@4.1.0: - resolution: - { - integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, - } - engines: { node: ">=14" } - dev: false - - /simple-update-notifier@2.0.0: - resolution: - { - integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==, - } - engines: { node: ">=10" } - dependencies: - semver: 7.5.4 - dev: true - - /streamsearch@1.1.0: - resolution: - { - integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, - } - engines: { node: ">=10.0.0" } - dev: false - - /string-width@4.2.3: - resolution: - { - integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, - } - engines: { node: ">=8" } - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: false - - /string-width@5.1.2: - resolution: - { - integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, - } - engines: { node: ">=12" } - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - dev: false - - /strip-ansi@6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, - } - engines: { node: ">=8" } - dependencies: - ansi-regex: 5.0.1 - dev: false - - /strip-ansi@7.1.0: - resolution: - { - integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, - } - engines: { node: ">=12" } - dependencies: - ansi-regex: 6.0.1 - dev: false - - /supports-color@5.5.0: - resolution: - { - integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, - } - engines: { node: ">=4" } - dependencies: - has-flag: 3.0.0 - dev: true - - /to-regex-range@5.0.1: - resolution: - { - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, - } - engines: { node: ">=8.0" } - dependencies: - is-number: 7.0.0 - dev: true - - /touch@3.1.0: - resolution: - { - integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==, - } - hasBin: true - dependencies: - nopt: 1.0.10 - dev: true - - /ts-mixer@6.0.3: - resolution: - { - integrity: sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==, - } - dev: false - - /ts-node@10.9.1(@types/node@20.6.0)(typescript@5.2.2): - resolution: - { - integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==, - } - hasBin: true - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - dependencies: - "@cspotcode/source-map-support": 0.8.1 - "@tsconfig/node10": 1.0.9 - "@tsconfig/node12": 1.0.11 - "@tsconfig/node14": 1.0.3 - "@tsconfig/node16": 1.0.4 - "@types/node": 20.6.0 - acorn: 8.10.0 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.2.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - - /tslib@1.14.1: - resolution: - { - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, - } - dev: false - - /tslib@2.6.2: - resolution: - { - integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, - } - dev: false - - /tsyringe@4.8.0: - resolution: - { - integrity: sha512-YB1FG+axdxADa3ncEtRnQCFq/M0lALGLxSZeVNbTU8NqhOVc51nnv2CISTcvc1kyv6EGPtXVr0v6lWeDxiijOA==, - } - engines: { node: ">= 6.0.0" } - dependencies: - tslib: 1.14.1 - dev: false - - /typedi@0.10.0: - resolution: - { - integrity: sha512-v3UJF8xm68BBj6AF4oQML3ikrfK2c9EmZUyLOfShpJuItAqVBHWP/KtpGinkSsIiP6EZyyb6Z3NXyW9dgS9X1w==, - } - dev: false - - /typescript@5.2.2: - resolution: - { - integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==, - } - engines: { node: ">=14.17" } - hasBin: true - dev: true - - /undefsafe@2.0.5: - resolution: - { - integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==, - } - dev: true - - /undici@5.22.1: - resolution: - { - integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==, - } - engines: { node: ">=14.0" } - dependencies: - busboy: 1.6.0 - dev: false - - /v8-compile-cache-lib@3.0.1: - resolution: - { - integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, - } - dev: true - - /which@2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, - } - engines: { node: ">= 8" } - hasBin: true - dependencies: - isexe: 2.0.0 - dev: false - - /wrap-ansi@7.0.0: - resolution: - { - integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, - } - engines: { node: ">=10" } - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: false - - /wrap-ansi@8.1.0: - resolution: - { - integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, - } - engines: { node: ">=12" } - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - dev: false - - /ws@8.14.1: - resolution: - { - integrity: sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A==, - } - engines: { node: ">=10.0.0" } - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false - - /yallist@4.0.0: - resolution: - { - integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, - } - dev: true - - /yn@3.1.1: - resolution: - { - integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, - } - engines: { node: ">=6" } - dev: true diff --git a/src/commands/admin.ts b/src/commands/admin.ts deleted file mode 100644 index c130f31..0000000 --- a/src/commands/admin.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { - ApplicationCommandOptionType, - Channel, - CommandInteraction, - GuildMember, - PermissionsBitField, - Role, -} from "discord.js"; -import { Discord, Slash, SlashGroup, SlashOption } from "discordx"; -import { prisma } from "../main.js"; - -@Discord() -@SlashGroup({ name: "admin", description: "Admin commands" }) -@SlashGroup("admin") -export class AdminCmds { - @Slash({ - description: "Set or get the configured channel for reports", - defaultMemberPermissions: PermissionsBitField.Flags.Administrator, - }) - async reports( - @SlashOption({ - description: "Set where the reports should be sent", - name: "reports_channel", - required: false, - type: ApplicationCommandOptionType.Channel, - }) - channel: Channel, - interaction: CommandInteraction - ) { - if (channel) { - await prisma.guild - .findUnique({ - where: { - id: interaction.guildId!, - }, - }) - .then(async (data) => { - if (data) { - await prisma.guild.update({ - where: { - id: data.id, - }, - data: { - reports_channel_id: channel.id, - }, - }); - } else { - await prisma.guild.create({ - data: { - id: interaction.guildId!, - name: interaction.guild!.name, - reports_channel_id: channel.id, - }, - }); - } - - interaction.reply( - `<#${channel.id}> is now setup to receive reports.` - ); - }); - } else { - await prisma.guild - .findUnique({ - where: { - id: interaction.guildId!, - }, - }) - .then((data) => { - if (data) { - interaction.reply( - `<#${data.reports_channel_id}> is currently receiving reports for this guild.` - ); - } else { - interaction.reply("Reports are currently disabled for this guild"); - } - }); - } - } - - @Slash({ - description: "Link a user to their booster role", - name: "link_role", - defaultMemberPermissions: PermissionsBitField.Flags.ManageRoles, - }) - async link_role( - @SlashOption({ - description: "The user account to link", - name: "member", - required: true, - type: ApplicationCommandOptionType.User, - }) - member: GuildMember, - @SlashOption({ - description: "The role to link", - name: "role", - required: true, - type: ApplicationCommandOptionType.Role, - }) - role: Role, - interaction: CommandInteraction - ) { - let mem = await prisma.member.findUnique({ - where: { - dgid_duid: { - duid: member.id, - dgid: member.guild.id, - }, - }, - }); - - if (mem) { - await prisma.member.update({ - where: { - id: mem.id, - }, - data: { - booster_role_id: role.id, - name: member.displayName, - }, - }); - } else { - await prisma.member.create({ - data: { - duid: member.id, - dgid: interaction.guildId!, - name: member.displayName, - booster_role_id: role.id, - }, - }); - } - interaction.reply({ - content: "Member booster role updated!", - ephemeral: true, - }); - } - - @Slash({ - description: "Enable or disable auto perk roles", - defaultMemberPermissions: PermissionsBitField.Flags.Administrator, - }) - async toggle_perk_role_creation(interaction: CommandInteraction) { - if (interaction.guildId) { - const g = await prisma.guild.findUnique({ - where: { - id: interaction.guildId, - }, - }); - - await prisma.guild.update({ - where: { - id: interaction.guildId, - }, - data: { - auto_create_booster_roles: !g?.auto_create_booster_roles, - }, - }); - - interaction.reply({ - content: `Booster role creation is now ${ - g?.auto_create_booster_roles ? "disabled" : "enabled" - }`, - ephemeral: true, - }); - } - } -} diff --git a/src/commands/perks.ts b/src/commands/perks.ts deleted file mode 100644 index a7c0a85..0000000 --- a/src/commands/perks.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { - ApplicationCommandOptionType, - Channel, - CommandInteraction, -} from "discord.js"; -import { Discord, Slash, SlashGroup, SlashOption } from "discordx"; -import { prisma } from "../main.js"; - -@Discord() -@SlashGroup({ description: "Manage your booster perks", name: "perks" }) -@SlashGroup("perks") -export class Perks { - @Slash({ description: "Manage your role" }) - async role( - interaction: CommandInteraction, - @SlashOption({ - name: "name", - description: "Change the name of your role", - type: ApplicationCommandOptionType.String, - }) - name?: string, - @SlashOption({ - name: "colour", - description: "Change the colour of your role (in hex)", - type: ApplicationCommandOptionType.String, - }) - colour?: string - ) { - const m = await prisma.member.findUnique({ - where: { - dgid_duid: { - dgid: interaction.guildId!, - duid: interaction.user.id, - }, - }, - }); - - if (!m || !m.booster_role_id) { - interaction.reply({ - content: - "It appears that you may not be a booster of this guild, contact <@207603534789738496> if you think this is a mistake.", - ephemeral: true, - }); - } else { - const r = await interaction.guild?.roles.fetch(m.booster_role_id); - if (r) { - await interaction.guild?.roles.edit(r, { - name: name ?? undefined, - color: - colour != undefined - ? colour.startsWith("#") - ? parseInt(colour.replace("#", "0x"), 16) - : parseInt(`0x${colour}`) - : undefined, - }); - interaction.reply({ - content: "Role updated!", - ephemeral: true, - }); - } else { - interaction.reply({ - content: - "It appears that you may not be a booster of this guild, contact <@207603534789738496> if you think this is a mistake.", - ephemeral: true, - }); - } - } - } -} diff --git a/src/commands/report.ts b/src/commands/report.ts deleted file mode 100644 index 8aec202..0000000 --- a/src/commands/report.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { - ApplicationCommandOptionType, - Client, - CommandInteraction, - GuildMember, - TextChannel, - User, -} from "discord.js"; -import { Discord, Slash, SlashOption } from "discordx"; -import { prisma } from "../main.js"; - -@Discord() -export class Report { - @Slash({ description: "Report a user to the guild staff", name: "report" }) - async report( - @SlashOption({ - required: true, - description: "The user to report", - name: "user", - type: ApplicationCommandOptionType.User, - }) - user: GuildMember | User, - @SlashOption({ - required: true, - description: "Why you are reporting this user", - name: "reason", - type: ApplicationCommandOptionType.String, - }) - reason: string, - interaction: CommandInteraction, - client: Client - ) { - if (interaction.guild) { - const guild = await prisma.guild.findUnique({ - where: { - id: interaction.guild.id, - }, - }); - if (guild && guild.reports_channel_id) { - await client.channels - .fetch(guild!.reports_channel_id!) - .then((channel) => { - if (channel!.isTextBased()) { - const ct = channel as TextChannel; - - ct.send(`${interaction.user} reported ${user} for: ${reason}`); - } - }); - } - await interaction.reply({ content: "Report sent!", ephemeral: true }); - return; - } - await interaction.reply("You need to be in a guild to use this command"); - } -} diff --git a/src/commands/threads.ts b/src/commands/threads.ts deleted file mode 100644 index 6f61500..0000000 --- a/src/commands/threads.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { CommandInteraction } from "discord.js"; -import { Discord, Slash } from "discordx"; - -@Discord() -export class Threads { - @Slash({ description: "Display current threads", name: "threads" }) - async threads(interaction: CommandInteraction) { - if (interaction.guild) { - const threads = await fetch( - `https://discord.com/api/v10/guilds/${interaction.guildId}/threads/active`, - { - headers: { - "Content-Type": "application/json", - Authorization: `Bot ${process.env.DISCORD_TOKEN}`, - }, - } - ); - - const body = (await threads.json()).threads as Array<{ - flags: number; - guild_id: string; - id: string; - parent_id: string; - }>; - - let threadMsg = "The current active threads are:"; - - body.forEach((thread) => { - threadMsg += `\n- <#${thread.id}>`; - }); - - interaction.reply({ content: threadMsg, ephemeral: true }); - } - } -} diff --git a/src/events/guild_join.ts b/src/events/guild_join.ts deleted file mode 100644 index f6ac659..0000000 --- a/src/events/guild_join.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ArgsOf, Discord, On } from "discordx"; -import { prisma } from "../main.js"; - -@Discord() -export class GuildJoin { - @On({ event: "guildCreate" }) - fn([guild]: ArgsOf<"guildCreate">) { - prisma.guild.create({ - data: { - id: guild.id, - name: guild.name, - }, - }); - } -} diff --git a/src/events/member_event.ts b/src/events/member_event.ts deleted file mode 100644 index 8ef45f6..0000000 --- a/src/events/member_event.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { ArgsOf, Discord, On } from "discordx"; -import { prisma } from "../main.js"; - -@Discord() -export class MemberEvent { - @On({ event: "guildMemberAdd" }) - async memberJoin([member]: ArgsOf<"guildMemberAdd">) { - await prisma.member.create({ - data: { - dgid: member.guild.id, - duid: member.id, - name: member.displayName, - }, - }); - } - - @On({ event: "guildMemberRemove" }) - async memberRemove([member]: ArgsOf<"guildMemberRemove">) { - await prisma.member.delete({ - where: { - dgid_duid: { - duid: member.id, - dgid: member.guild.id, - }, - }, - }); - } - - @On({ event: "guildMemberUpdate" }) - async memberUpdate([oldM, newM]: ArgsOf<"guildMemberUpdate">) { - const g = await prisma.guild.findUnique({ - where: { - id: newM.guild.id, - }, - }); - - if (g?.auto_create_booster_roles) { - if (oldM.premiumSince !== newM.premiumSince) { - if (newM != null) { - const m = await prisma.member.findUnique({ - where: { - dgid_duid: { - dgid: newM.guild.id, - duid: newM.id, - }, - }, - }); - - if (m?.booster_role_id != null && newM.premiumSince != null) { - return; - } else if (newM.premiumSince == null) { - await prisma.member.update({ - where: { - id: m?.id, - }, - data: { - booster_role_id: null, - }, - }); - const r = await newM.guild.roles.fetch(m!.booster_role_id!); - if (r) await newM.guild.roles.delete(r); - return; - } else { - const guild = newM.guild; - - const role = await guild.roles.create({ - name: newM.nickname ?? newM.displayName, - reason: `${newM.nickname ?? newM.displayName} just boosted!`, - }); - - await newM.roles.add(role); - - const m = await prisma.member.findUnique({ - where: { - dgid_duid: { - dgid: guild.id, - duid: newM.id, - }, - }, - }); - - if (m) { - await prisma.member.update({ - where: { - id: m.id, - }, - data: { - booster_role_id: role.id, - }, - }); - } else { - await prisma.member.create({ - data: { - duid: newM.id, - dgid: guild.id, - booster_role_id: role.id, - name: newM.displayName, - }, - }); - } - return; - } - } - } - } - } -} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff --git a/src/main.ts b/src/main.ts deleted file mode 100644 index a4b9038..0000000 --- a/src/main.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { dirname, importx } from "@discordx/importer"; -import type { Interaction } from "discord.js"; -import { IntentsBitField } from "discord.js"; -import * as dotenv from "dotenv"; -import { Client } from "discordx"; -import { PrismaClient } from "@prisma/client"; - -dotenv.config(); -export const prisma = new PrismaClient(); - -export const bot = new Client({ - // To use only guild command - // botGuilds: [(client) => client.guilds.cache.map((guild) => guild.id)], - - // Discord intents - intents: [ - IntentsBitField.Flags.Guilds, - IntentsBitField.Flags.GuildMembers, - IntentsBitField.Flags.GuildMessages, - IntentsBitField.Flags.GuildMessageReactions, - IntentsBitField.Flags.GuildVoiceStates, - ], - - // Debug logs are disabled in silent mode - silent: false, -}); - -bot.once("ready", async () => { - // Make sure all guilds are cached - await bot.guilds.fetch(); - - // Synchronize applications commands with Discord - await bot.initApplicationCommands(); - - // To clear all guild commands, uncomment this line, - // This is useful when moving from guild commands to global commands - // It must only be executed once - // - // await bot.clearApplicationCommands( - // ...bot.guilds.cache.map((g) => g.id) - // ); - - console.log("Bot started"); -}); - -bot.on("interactionCreate", (interaction: Interaction) => { - bot.executeInteraction(interaction); -}); - -async function run() { - // The following syntax should be used in the commonjs environment - // - // await importx(__dirname + "/{events,commands}/**/*.{ts,js}"); - - // The following syntax should be used in the ECMAScript environment - await importx( - `${dirname(import.meta.url)}/{events,commands,menus}/**/*.{ts,js}` - ); - - // Let's start the bot - if (!process.env.DISCORD_TOKEN) { - throw Error("Could not find DISCORD_TOKEN in your environment"); - } - - // Log in with your bot token - await bot.login(process.env.DISCORD_TOKEN); -} - -run() - .then(async () => { - await prisma.$disconnect(); - }) - .catch(async (e) => { - console.error(e); - await prisma.$disconnect(); - process.exit(1); - }); diff --git a/src/menus/report.ts b/src/menus/report.ts deleted file mode 100644 index 23f711e..0000000 --- a/src/menus/report.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { - ActionRowBuilder, - ApplicationCommandType, - Client, - MessageContextMenuCommandInteraction, - ModalBuilder, - ModalSubmitInteraction, - TextChannel, - TextInputBuilder, - TextInputStyle, -} from "discord.js"; -import { ContextMenu, Discord, ModalComponent } from "discordx"; -import { prisma } from "../main.js"; - -@Discord() -export class Report { - @ContextMenu({ - name: "Report user", - type: ApplicationCommandType.User, - }) - async reportUser( - interaction: MessageContextMenuCommandInteraction, - client: Client - ) { - if (interaction.guildId) { - let data = await prisma.guild.findUnique({ - where: { - id: interaction.guildId!, - }, - }); - - if (!data) { - await prisma.guild.create({ - data: { - id: interaction.guildId!, - name: interaction.guild!.name, - }, - }); - - data = await prisma.guild.findUnique({ - where: { - id: interaction.guildId!, - }, - }); - } - - if (!data!.reports_channel_id) { - interaction.reply( - "It looks like your guild hasn't set up this feature, please speak to the staff." - ); - } else { - const modal = new ModalBuilder() - .setTitle("Report user") - .setCustomId("report_user"); - - const userId = new TextInputBuilder() - .setCustomId("user-id") - .setValue(interaction.targetId) - .setLabel("User ID") - .setStyle(TextInputStyle.Short); - - const reason = new TextInputBuilder() - .setCustomId("reason") - .setLabel("Reason") - .setStyle(TextInputStyle.Paragraph); - - modal.addComponents( - new ActionRowBuilder().addComponents(userId), - new ActionRowBuilder().addComponents(reason) - ); - - interaction.showModal(modal); - } - } else { - interaction.reply({ - content: - "It looks like you aren't in a guild, you can only report within guilds", - }); - } - } - - @ModalComponent() - async report_user(interaction: ModalSubmitInteraction, client: Client) { - const [user_id, reason] = ["user-id", "reason"].map((id) => - interaction.fields.getTextInputValue(id) - ); - const data = await prisma.guild.findUnique({ - where: { - id: interaction.guildId!, - }, - }); - client.channels.fetch(data!.reports_channel_id!).then((channel) => { - if (channel?.isTextBased()) { - let ct = channel as TextChannel; - ct.send({ - content: `<@${interaction.user.id}> reported <@${user_id}> for: ${reason}`, - }); - } - }); - - interaction.reply({ content: "Reported user.", ephemeral: true }); - } -} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 949e75a..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "module": "ESNext", - "outDir": "build", - "rootDir": "src", - "strict": true, - "moduleResolution": "Node", - "allowSyntheticDefaultImports": true, - - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "noImplicitAny": false, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true - }, - "exclude": ["build", "node_modules"] -}