diff --git a/package.json b/package.json index cf36254..dbd8b68 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@stitches/react": "^1.3.1-1", "autobind-decorator": "^2.4.0", "color": "^4.2.3", - "discord-api-types": "^0.37.52", + "discord-api-types": "^0.37.101", "filesize": "^10.0.6", "highlight.js": "^11.7.0", "i18next": "^23.4.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73c1141..c8f1b80 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ dependencies: specifier: ^4.2.3 version: 4.2.3 discord-api-types: - specifier: ^0.37.52 - version: 0.37.52 + specifier: ^0.37.101 + version: 0.37.101 filesize: specifier: ^10.0.6 version: 10.0.6 @@ -75,7 +75,7 @@ devDependencies: version: 7.4.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-info': specifier: ^5.3.21 - version: 5.3.21(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0)(regenerator-runtime@0.14.0) + version: 5.3.21(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0)(regenerator-runtime@0.14.1) '@storybook/addon-interactions': specifier: ^7.4.3 version: 7.4.3(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) @@ -129,7 +129,7 @@ devDependencies: version: 5.2.1(typescript@4.9.4) babel-loader: specifier: ^8.3.0 - version: 8.3.0(@babel/core@7.20.7)(webpack@4.46.0) + version: 8.3.0(@babel/core@7.20.7)(webpack@4.47.0) copyfiles: specifier: ^2.4.1 version: 2.4.1 @@ -153,7 +153,7 @@ devDependencies: version: 2.8.1 react-docgen-typescript-loader: specifier: ^3.7.2 - version: 3.7.2(typescript@4.9.4)(webpack@4.46.0) + version: 3.7.2(typescript@4.9.4)(webpack@4.47.0) storybook: specifier: ^7.4.3 version: 7.4.3 @@ -3660,7 +3660,7 @@ packages: react-lifecycles-compat: 3.0.4 dev: true - /@rollup/pluginutils@5.0.2(rollup@3.25.3): + /@rollup/pluginutils@5.0.2(rollup@4.24.0): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3672,8 +3672,136 @@ packages: '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.25.3 + rollup: 4.24.0 + dev: true + + /@rollup/rollup-android-arm-eabi@4.24.0: + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-android-arm64@4.24.0: + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.24.0: + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.24.0: + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.24.0: + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.24.0: + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.24.0: + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + cpu: [arm64] + os: [linux] + requiresBuild: true dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.24.0: + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-powerpc64le-gnu@4.24.0: + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.24.0: + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-s390x-gnu@4.24.0: + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.24.0: + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.24.0: + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.24.0: + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.24.0: + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.24.0: + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true /@rushstack/node-core-library@3.59.4(@types/node@20.3.2): resolution: {integrity: sha512-YAKJDC6Mz/KA1D7bvB88WaRX3knt/ZuLzkRu5G9QADGSjLtvTWzCNCytRF2PCSaaHOZaZsWul4F1KQdgFgUDqA==} @@ -3886,12 +4014,12 @@ packages: '@storybook/preview-api': 7.4.3 dev: true - /@storybook/addon-info@5.3.21(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0)(regenerator-runtime@0.14.0): + /@storybook/addon-info@5.3.21(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0)(regenerator-runtime@0.14.1): resolution: {integrity: sha512-A/K9HzmoXMuOUxH3AozTvjNZwTlYVHob2OaDRfMza0gYMzG0tOrxqcdNTigeAWAjS//Z0G3enue6rHulQZK/+g==} peerDependencies: react: '*' dependencies: - '@storybook/addons': 5.3.21(react-dom@18.2.0)(regenerator-runtime@0.14.0) + '@storybook/addons': 5.3.21(react-dom@18.2.0)(regenerator-runtime@0.14.1) '@storybook/client-logger': 5.3.21 '@storybook/components': 5.3.21(@types/react@18.0.26)(react-dom@18.2.0)(react@18.2.0) '@storybook/theming': 5.3.21(react-dom@18.2.0)(react@18.2.0) @@ -4072,10 +4200,10 @@ packages: - '@types/react-dom' dev: true - /@storybook/addons@5.3.21(react-dom@18.2.0)(regenerator-runtime@0.14.0): + /@storybook/addons@5.3.21(react-dom@18.2.0)(regenerator-runtime@0.14.1): resolution: {integrity: sha512-Ji/21WADTLVbTbiKcZ64BcL0Es+h1Afxx3kNmGJqPSTUYroCwIFCT9mUzCqU6G+YyWaISAmTii5UJkTwMkChwA==} dependencies: - '@storybook/api': 5.3.21(react-dom@18.2.0)(regenerator-runtime@0.14.0) + '@storybook/api': 5.3.21(react-dom@18.2.0)(regenerator-runtime@0.14.1) '@storybook/channels': 5.3.21 '@storybook/client-logger': 5.3.21 '@storybook/core-events': 5.3.21 @@ -4100,7 +4228,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/api@5.3.21(react-dom@18.2.0)(regenerator-runtime@0.14.0): + /@storybook/api@5.3.21(react-dom@18.2.0)(regenerator-runtime@0.14.1): resolution: {integrity: sha512-K1o4an/Rx8daKRDooks6qzN6ZGyqizeacZZbair3F8CsSfTgrr2zCcf9pgKojLQa9koEmMHlcdb2KnS+GwPEgA==} peerDependencies: regenerator-runtime: '*' @@ -4120,7 +4248,7 @@ packages: memoizerific: 1.11.3 prop-types: 15.8.1 react: 16.14.0 - regenerator-runtime: 0.14.0 + regenerator-runtime: 0.14.1 semver: 6.3.0 shallow-equal: 1.2.1 store2: 2.14.2 @@ -4643,7 +4771,7 @@ packages: vite: ^3.0.0 || ^4.0.0 dependencies: '@joshwooding/vite-plugin-react-docgen-typescript': 0.2.1(typescript@4.9.4)(vite@4.3.9) - '@rollup/pluginutils': 5.0.2(rollup@3.25.3) + '@rollup/pluginutils': 5.0.2(rollup@4.24.0) '@storybook/builder-vite': 7.4.3(typescript@4.9.4)(vite@4.3.9) '@storybook/react': 7.4.3(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.4) '@vitejs/plugin-react': 3.1.0(vite@4.3.9) @@ -4932,6 +5060,11 @@ packages: resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} dev: true + /@types/estree@1.0.6: + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + requiresBuild: true + dev: true + /@types/express-serve-static-core@4.17.35: resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: @@ -5516,7 +5649,7 @@ packages: '@xtuc/long': 4.2.2 dev: true - /@webpack-contrib/schema-utils@1.0.0-beta.0(webpack@4.46.0): + /@webpack-contrib/schema-utils@1.0.0-beta.0(webpack@4.47.0): resolution: {integrity: sha512-LonryJP+FxQQHsjGBi6W786TQB1Oym+agTpY0c+Kj8alnIw+DLUJb6SI8Y1GHGhLCH1yPRrucjObUmxNICQ1pg==} engines: {node: '>= 6.9.0 || >= 8.9.0'} peerDependencies: @@ -5527,7 +5660,7 @@ packages: chalk: 2.4.2 strip-ansi: 4.0.0 text-table: 0.2.0 - webpack: 4.46.0 + webpack: 4.47.0 webpack-log: 1.2.0 dev: true @@ -5612,6 +5745,12 @@ packages: hasBin: true dev: true + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} @@ -5717,6 +5856,7 @@ packages: /anymatch@2.0.0: resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + requiresBuild: true dependencies: micromatch: 3.1.10 normalize-path: 2.1.1 @@ -5854,20 +5994,19 @@ packages: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} dev: true - /asn1.js@5.4.1: - resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} + /asn1.js@4.10.1: + resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} dependencies: bn.js: 4.12.0 inherits: 2.0.4 minimalistic-assert: 1.0.1 - safer-buffer: 2.1.2 dev: true - /assert@1.5.0: - resolution: {integrity: sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==} + /assert@1.5.1: + resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==} dependencies: - object-assign: 4.1.1 - util: 0.10.3 + object.assign: 4.1.5 + util: 0.10.4 dev: true /assert@2.0.0: @@ -5907,6 +6046,7 @@ packages: /async-each@1.0.6: resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} + requiresBuild: true dev: true optional: true @@ -5964,7 +6104,7 @@ packages: '@babel/core': 7.22.10 dev: true - /babel-loader@8.3.0(@babel/core@7.20.7)(webpack@4.46.0): + /babel-loader@8.3.0(@babel/core@7.20.7)(webpack@4.47.0): resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: @@ -5976,7 +6116,7 @@ packages: loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 4.46.0 + webpack: 4.47.0 dev: true /babel-plugin-emotion@10.2.2: @@ -6102,6 +6242,7 @@ packages: /binary-extensions@1.13.1: resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} engines: {node: '>=0.10.0'} + requiresBuild: true dev: true optional: true @@ -6207,6 +6348,15 @@ packages: fill-range: 7.0.1 dev: true + /braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + fill-range: 7.1.1 + dev: true + optional: true + /broccoli-node-api@1.7.0: resolution: {integrity: sha512-QIqLSVJWJUVOhclmkmypJJH9u9s/aWH4+FH6Q6Ju5l+Io4dtwqdPUNmDfw40o6sxhbZHhqGujDJuHTML1wG8Yw==} dev: true @@ -6278,24 +6428,28 @@ packages: safe-buffer: 5.2.1 dev: true - /browserify-rsa@4.1.0: - resolution: {integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==} + /browserify-rsa@4.1.1: + resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==} + engines: {node: '>= 0.10'} dependencies: bn.js: 5.2.1 randombytes: 2.1.0 + safe-buffer: 5.2.1 dev: true - /browserify-sign@4.2.1: - resolution: {integrity: sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==} + /browserify-sign@4.2.3: + resolution: {integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==} + engines: {node: '>= 0.12'} dependencies: bn.js: 5.2.1 - browserify-rsa: 4.1.0 + browserify-rsa: 4.1.1 create-hash: 1.2.0 create-hmac: 1.1.7 - elliptic: 6.5.4 + elliptic: 6.5.7 + hash-base: 3.0.4 inherits: 2.0.4 - parse-asn1: 5.1.6 - readable-stream: 3.6.2 + parse-asn1: 5.1.7 + readable-stream: 2.3.8 safe-buffer: 5.2.1 dev: true @@ -6446,6 +6600,17 @@ packages: get-intrinsic: 1.2.1 dev: true + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: true + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -6523,7 +6688,7 @@ packages: /chokidar@2.1.8: resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} - deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies + requiresBuild: true dependencies: anymatch: 2.0.0 async-each: 1.0.6 @@ -6555,8 +6720,25 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 + dev: true + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + requiresBuild: true + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + 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 + optional: true /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -6567,8 +6749,8 @@ packages: engines: {node: '>=10'} dev: true - /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + /chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} dev: true @@ -6859,6 +7041,7 @@ packages: /copy-concurrently@1.0.5: resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==} + deprecated: This package is no longer supported. dependencies: aproba: 1.2.0 fs-write-stream-atomic: 1.0.10 @@ -6927,7 +7110,7 @@ packages: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} dependencies: bn.js: 4.12.0 - elliptic: 6.5.4 + elliptic: 6.5.7 dev: true /create-hash@1.2.0: @@ -6976,7 +7159,7 @@ packages: resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} dependencies: browserify-cipher: 1.0.1 - browserify-sign: 4.2.1 + browserify-sign: 4.2.3 create-ecdh: 4.0.4 create-hash: 1.2.0 create-hmac: 1.1.7 @@ -7120,6 +7303,15 @@ packages: clone: 1.0.4 dev: true + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: true + /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} @@ -7133,6 +7325,15 @@ packages: object-keys: 1.1.1 dev: true + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + dev: true + /define-property@0.2.5: resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} engines: {node: '>=0.10.0'} @@ -7180,6 +7381,7 @@ packages: /delegate@3.2.0: resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==} + requiresBuild: true dev: true optional: true @@ -7246,8 +7448,8 @@ packages: path-type: 4.0.0 dev: true - /discord-api-types@0.37.52: - resolution: {integrity: sha512-TP99aMgY6rHuDIy056GDm1j2nGOcaLbFpjVbvAmv6N6vhkjHNqHXCHVqKtGisaQ8D15slbxTHNl/SSkPdx2syg==} + /discord-api-types@0.37.101: + resolution: {integrity: sha512-2wizd94t7G3A8U5Phr3AiuL4gSvhqistDwWnlk1VLTit8BI1jWUncFqFQNdPbHqS3661+Nx/iEyIwtVjPuBP3w==} dev: false /doctrine@2.1.0: @@ -7351,8 +7553,8 @@ packages: resolution: {integrity: sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==} dev: true - /elliptic@6.5.4: - resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + /elliptic@6.5.7: + resolution: {integrity: sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==} dependencies: bn.js: 4.12.0 brorand: 1.1.0 @@ -7504,6 +7706,18 @@ packages: which-typed-array: 1.1.9 dev: true + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true + /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: @@ -8111,6 +8325,7 @@ packages: /figgy-pudding@3.5.2: resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} + deprecated: This module is no longer supported. dev: true /file-entry-cache@6.0.1: @@ -8175,6 +8390,15 @@ packages: to-regex-range: 5.0.1 dev: true + /fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + to-regex-range: 5.0.1 + dev: true + optional: true + /finalhandler@1.2.0: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} @@ -8404,6 +8628,7 @@ packages: /fs-write-stream-atomic@1.0.10: resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==} + deprecated: This package is no longer supported. dependencies: graceful-fs: 4.2.11 iferr: 0.1.5 @@ -8419,16 +8644,16 @@ packages: resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} engines: {node: '>= 4.0'} os: [darwin] - deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 + deprecated: Upgrade to fsevents v2 to mitigate potential security issues requiresBuild: true dependencies: bindings: 1.5.0 - nan: 2.17.0 + nan: 2.21.0 dev: true optional: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /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 @@ -8439,6 +8664,10 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + /function.prototype.name@1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} @@ -8472,6 +8701,17 @@ packages: has-symbols: 1.0.3 dev: true + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: true + /get-nonce@1.0.1: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} @@ -8672,6 +8912,7 @@ packages: /good-listener@1.2.2: resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==} + requiresBuild: true dependencies: delegate: 3.2.0 dev: true @@ -8727,7 +8968,7 @@ packages: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.4 + uglify-js: 3.19.3 dev: true /has-bigints@1.0.2: @@ -8750,11 +8991,22 @@ packages: get-intrinsic: 1.2.1 dev: true + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: true + /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} dev: true + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true + /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} @@ -8805,6 +9057,14 @@ packages: function-bind: 1.1.1 dev: true + /hash-base@3.0.4: + resolution: {integrity: sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==} + engines: {node: '>=4'} + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + /hash-base@3.1.0: resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} engines: {node: '>=4'} @@ -8821,6 +9081,13 @@ packages: minimalistic-assert: 1.0.1 dev: true + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /hast-util-parse-selector@2.2.5: resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} dev: true @@ -9051,10 +9318,6 @@ packages: wrappy: 1.0.2 dev: true - /inherits@2.0.1: - resolution: {integrity: sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==} - dev: true - /inherits@2.0.3: resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} dev: true @@ -9158,6 +9421,7 @@ packages: /is-binary-path@1.0.1: resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} engines: {node: '>=0.10.0'} + requiresBuild: true dependencies: binary-extensions: 1.13.1 dev: true @@ -9605,7 +9869,7 @@ packages: micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /jest-mock@27.5.1: @@ -10281,7 +10545,7 @@ packages: flush-write-stream: 1.1.1 from2: 2.3.0 parallel-transform: 1.2.0 - pump: 3.0.0 + pump: 3.0.2 pumpify: 1.5.1 stream-each: 1.2.3 through2: 2.0.5 @@ -10323,6 +10587,7 @@ packages: /move-concurrently@1.0.1: resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==} + deprecated: This package is no longer supported. dependencies: aproba: 1.2.0 copy-concurrently: 1.0.5 @@ -10357,8 +10622,8 @@ packages: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true - /nan@2.17.0: - resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} + /nan@2.21.0: + resolution: {integrity: sha512-MCpOGmdWvAOMi4RWnpxS5G24l7dVMtdSHtV87I3ltjaLdFOTO74HVJ+DfYiAXjxGKsYR/UCmm1rBwhMN7KqS1A==} requiresBuild: true dev: true optional: true @@ -10449,7 +10714,7 @@ packages: /node-libs-browser@2.2.1: resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==} dependencies: - assert: 1.5.0 + assert: 1.5.1 browserify-zlib: 0.2.0 buffer: 4.9.2 console-browserify: 1.2.0 @@ -10469,7 +10734,7 @@ packages: string_decoder: 1.3.0 timers-browserify: 2.0.12 tty-browserify: 0.0.0 - url: 0.11.0 + url: 0.11.4 util: 0.11.1 vm-browserify: 1.1.2 dev: true @@ -10547,6 +10812,11 @@ packages: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: true + /object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + dev: true + /object-is@1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} @@ -10577,6 +10847,16 @@ packages: object-keys: 1.1.1 dev: true + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + /object.entries@1.1.6: resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} engines: {node: '>= 0.4'} @@ -10759,12 +11039,14 @@ packages: callsites: 3.1.0 dev: true - /parse-asn1@5.1.6: - resolution: {integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==} + /parse-asn1@5.1.7: + resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} + engines: {node: '>= 0.10'} dependencies: - asn1.js: 5.4.1 + asn1.js: 4.10.1 browserify-aes: 1.2.0 evp_bytestokey: 1.0.3 + hash-base: 3.0.4 pbkdf2: 3.1.2 safe-buffer: 5.2.1 dev: true @@ -11100,9 +11382,9 @@ packages: resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} dependencies: bn.js: 4.12.0 - browserify-rsa: 4.1.0 + browserify-rsa: 4.1.1 create-hash: 1.2.0 - parse-asn1: 5.1.6 + parse-asn1: 5.1.7 randombytes: 2.1.0 safe-buffer: 5.2.1 dev: true @@ -11121,6 +11403,13 @@ packages: once: 1.4.0 dev: true + /pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + /pumpify@1.5.1: resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} dependencies: @@ -11129,10 +11418,6 @@ packages: pump: 2.0.1 dev: true - /punycode@1.3.2: - resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} - dev: true - /punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} dev: true @@ -11176,15 +11461,16 @@ packages: side-channel: 1.0.4 dev: true - /querystring-es3@0.2.1: - resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} - engines: {node: '>=0.4.x'} + /qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 dev: true - /querystring@0.2.0: - resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==} + /querystring-es3@0.2.1: + resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} engines: {node: '>=0.4.x'} - deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. dev: true /queue-microtask@1.2.3: @@ -11334,12 +11620,12 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /react-docgen-typescript-loader@3.7.2(typescript@4.9.4)(webpack@4.46.0): + /react-docgen-typescript-loader@3.7.2(typescript@4.9.4)(webpack@4.47.0): resolution: {integrity: sha512-fNzUayyUGzSyoOl7E89VaPKJk9dpvdSgyXg81cUkwy0u+NBvkzQG3FC5WBIlXda0k/iaxS+PWi+OC+tUiGxzPA==} peerDependencies: typescript: '*' dependencies: - '@webpack-contrib/schema-utils': 1.0.0-beta.0(webpack@4.46.0) + '@webpack-contrib/schema-utils': 1.0.0-beta.0(webpack@4.47.0) loader-utils: 1.4.2 react-docgen-typescript: 1.22.0(typescript@4.9.4) typescript: 4.9.4 @@ -11638,6 +11924,7 @@ packages: object-assign: 4.1.1 prop-types: 15.8.1 dev: true + bundledDependencies: false /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} @@ -11697,6 +11984,7 @@ packages: /readdirp@2.2.1: resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} engines: {node: '>=0.10'} + requiresBuild: true dependencies: graceful-fs: 4.2.11 micromatch: 3.1.10 @@ -11764,6 +12052,10 @@ packages: /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: true + /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: @@ -11977,7 +12269,34 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 + dev: true + + /rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + requiresBuild: true + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 + fsevents: 2.3.3 dev: true /rsvp@3.2.1: @@ -12056,6 +12375,7 @@ packages: /select@1.1.2: resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==} + requiresBuild: true dev: true optional: true @@ -12148,6 +12468,18 @@ packages: - supports-color dev: true + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: true + /set-value@2.0.1: resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} engines: {node: '>=0.10.0'} @@ -12208,6 +12540,16 @@ packages: object-inspect: 1.12.3 dev: true + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true @@ -12443,7 +12785,7 @@ packages: resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==} dependencies: end-of-stream: 1.4.4 - stream-shift: 1.0.1 + stream-shift: 1.0.3 dev: true /stream-http@2.8.3: @@ -12460,6 +12802,10 @@ packages: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} dev: true + /stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + dev: true + /streamx@2.15.1: resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==} dependencies: @@ -12712,8 +13058,8 @@ packages: unique-string: 2.0.0 dev: true - /terser-webpack-plugin@1.4.5(webpack@4.46.0): - resolution: {integrity: sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==} + /terser-webpack-plugin@1.4.6(webpack@4.47.0): + resolution: {integrity: sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==} engines: {node: '>= 6.9.0'} peerDependencies: webpack: ^4.0.0 @@ -12725,7 +13071,7 @@ packages: serialize-javascript: 4.0.0 source-map: 0.6.1 terser: 4.8.1 - webpack: 4.46.0 + webpack: 4.47.0 webpack-sources: 1.4.3 worker-farm: 1.7.0 dev: true @@ -12735,7 +13081,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - acorn: 8.10.0 + acorn: 8.12.1 commander: 2.20.3 source-map: 0.6.1 source-map-support: 0.5.21 @@ -12784,6 +13130,7 @@ packages: /tiny-emitter@2.1.0: resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} + requiresBuild: true dev: true optional: true @@ -12994,8 +13341,8 @@ packages: resolution: {integrity: sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==} dev: true - /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + /uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true requiresBuild: true @@ -13145,6 +13492,7 @@ packages: /upath@1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} + requiresBuild: true dev: true optional: true @@ -13181,11 +13529,12 @@ packages: deprecated: Please see https://github.com/lydell/urix#deprecated dev: true - /url@0.11.0: - resolution: {integrity: sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==} + /url@0.11.4: + resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} + engines: {node: '>= 0.4'} dependencies: - punycode: 1.3.2 - querystring: 0.2.0 + punycode: 1.4.1 + qs: 6.13.0 dev: true /use-callback-ref@1.3.0(@types/react@18.0.26)(react@18.2.0): @@ -13239,10 +13588,10 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /util@0.10.3: - resolution: {integrity: sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==} + /util@0.10.4: + resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} dependencies: - inherits: 2.0.1 + inherits: 2.0.3 dev: true /util@0.11.1: @@ -13374,7 +13723,7 @@ packages: typescript: '*' dependencies: '@microsoft/api-extractor': 7.36.0(@types/node@20.3.2) - '@rollup/pluginutils': 5.0.2(rollup@3.25.3) + '@rollup/pluginutils': 5.0.2(rollup@4.24.0) '@rushstack/node-core-library': 3.59.4(@types/node@20.3.2) '@vue/language-core': 1.8.2(typescript@4.9.4) debug: 4.3.4 @@ -13382,7 +13731,7 @@ packages: typescript: 4.9.4 vue-tsc: 1.8.2(typescript@4.9.4) optionalDependencies: - rollup: 3.25.3 + rollup: 4.24.0 vite: 4.3.9(@types/node@20.3.2) transitivePeerDependencies: - '@types/node' @@ -13441,7 +13790,7 @@ packages: postcss: 8.4.24 rollup: 3.25.3 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /vm-browserify@1.1.2: @@ -13510,7 +13859,7 @@ packages: graceful-fs: 4.2.11 neo-async: 2.6.2 optionalDependencies: - chokidar: 3.5.3 + chokidar: 3.6.0 watchpack-chokidar2: 2.0.1 transitivePeerDependencies: - supports-color @@ -13560,8 +13909,8 @@ packages: resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} dev: true - /webpack@4.46.0: - resolution: {integrity: sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==} + /webpack@4.47.0: + resolution: {integrity: sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==} engines: {node: '>=6.11.5'} hasBin: true peerDependencies: @@ -13580,7 +13929,7 @@ packages: acorn: 6.4.2 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - chrome-trace-event: 1.0.3 + chrome-trace-event: 1.0.4 enhanced-resolve: 4.5.0 eslint-scope: 4.0.3 json-parse-better-errors: 1.0.2 @@ -13593,7 +13942,7 @@ packages: node-libs-browser: 2.2.1 schema-utils: 1.0.0 tapable: 1.1.3 - terser-webpack-plugin: 1.4.5(webpack@4.46.0) + terser-webpack-plugin: 1.4.6(webpack@4.47.0) watchpack: 1.7.5 webpack-sources: 1.4.3 transitivePeerDependencies: diff --git a/src/Content/Attachment/style.ts b/src/Content/Attachment/style.ts index ec54bb3..5eb110c 100644 --- a/src/Content/Attachment/style.ts +++ b/src/Content/Attachment/style.ts @@ -42,7 +42,7 @@ export const VideoAttachmentContainer = styled.withConfig({ })("div", { borderRadius: 3, overflow: "hidden", - maxWidth: "min(400px, 100%)", + maxWidth: "100%", backgroundColor: theme.colors.backgroundTertiary, cursor: "pointer", position: "relative", @@ -57,7 +57,8 @@ export const VideoAttachment = styled.withConfig({ cursor: "pointer", "&[width]": { - maxWidth: "min(400px, 100%)", + maxWidth: "100%", + height: "auto", }, "&:not([width])": { diff --git a/src/Content/index.tsx b/src/Content/index.tsx index 0300576..3d44a7b 100644 --- a/src/Content/index.tsx +++ b/src/Content/index.tsx @@ -3,7 +3,10 @@ import React, { Children, memo, useMemo } from "react"; import Moment from "moment/moment"; import Message from "../Message"; import * as Styles from "./style"; -import type { APIEmbedImage } from "discord-api-types/v10"; +import type { + APIEmbedImage, + APIMessageSnapshotFields, +} from "discord-api-types/v10"; import { MessageFlags } from "discord-api-types/v10"; import Tooltip from "../Tooltip"; import SvgFromUrl from "../SvgFromUrl"; @@ -98,7 +101,7 @@ function ContentCore(props: ContentCoreProps) { } interface ContentProps { - message: ChatMessage; + message: ChatMessage | APIMessageSnapshotFields; isReplyContent?: boolean; noThreadButton?: boolean; } @@ -109,7 +112,7 @@ function Content(props: ContentProps) { const dominantAccessoryText = useMemo(() => { if (!props.isReplyContent) return null; - if (props.message.interaction) + if ("interaction" in props.message && props.message.interaction) return t("messageGeneric.slash_command_click"); if (props.message.sticker_items && props.message.sticker_items?.length > 0) @@ -194,7 +197,10 @@ function Content(props: ContentProps) { /> - {getDisplayName(props.message.author)} is thinking... + + {"author" in props.message + ? `${getDisplayName(props.message.author)} is thinking...` + : null} ); } @@ -203,7 +209,9 @@ function Content(props: ContentProps) { <> {props.message.content.length > 0 ? ( <> - {props.message.webhook_id !== undefined ? ( + {"webhook_id" in props.message && + props.message.webhook_id !== undefined ? ( {props.message.content} @@ -240,10 +251,10 @@ function Content(props: ContentProps) { {!props.isReplyContent && ( 0 || + (props.message?.reactions?.length ?? 0) > 0 || props.message.attachments.length > 0 || (props.message.sticker_items?.length ?? 0) > 0 || - props.message.thread !== undefined || + props.message?.thread !== undefined || props.message.embeds?.length > 0 || (props.message.components?.length ?? 0) > 0 } @@ -265,24 +276,28 @@ function Content(props: ContentProps) { )) )} - {props.message.reactions && props.message.reactions?.length > 0 && ( - - )} + {"reactions" in props.message && + props.message?.reactions && + props.message.reactions?.length > 0 && ( + + )} {(props.message.components?.length ?? 0) > 0 && ( )} - {!props.noThreadButton && props.message.thread && ( - - )} + {!props.noThreadButton && + "thread" in props.message && + props.message.thread && ( + + )} )} diff --git a/src/Message/style/message.ts b/src/Message/style/message.ts index 53ca466..382c3dc 100644 --- a/src/Message/style/message.ts +++ b/src/Message/style/message.ts @@ -5,6 +5,7 @@ import { } from "../../Stitches/stitches.config"; import { Link } from "../../markdown/render/elements"; import SvgFromUrl from "../../SvgFromUrl"; +import { Embed, Footer } from "src/Content/Embed/style"; export const SmallTimestamp = styled.withConfig({ displayName: "small-timestamp", @@ -219,6 +220,76 @@ export namespace MessageContainerStyle { }); } +export const ForwardInfo = styled.withConfig({ + displayName: "forward-info", + componentId: commonComponentId, +})("div", { + display: "flex", + paddingTop: "0.125rem", + paddingBottom: "0.125rem", +}); + +export const ForwardBody = styled.withConfig({ + displayName: "forward-body", + componentId: commonComponentId, +})("div", { + display: "flex", + width: "100%", + flexDirection: "column", +}); + +export const ForwardSpine = styled.withConfig({ + displayName: "forward-spine", + componentId: commonComponentId, +})("div", { + width: 4, + borderRadius: 2, + marginRight: theme.space.xl, + flexShrink: 0, + backgroundColor: theme.colors.primaryOpacity20, +}); + +export const ForwardHeader = styled.withConfig({ + displayName: "forward-header", + componentId: commonComponentId, +})("div", { + marginTop: 2, + marginBottom: 4, + display: "flex", + gap: 4, + color: theme.colors.primaryOpacity50, + alignSelf: "flex-start", + alignItems: "center", + fontWeight: 600, +}); + +export const Forwarded = styled.withConfig({ + displayName: "forwarded", + componentId: commonComponentId, +})("span", { + color: theme.colors.primaryOpacity50, + fontSize: theme.fontSizes.m, + userSelect: "none", + fontStyle: "italic", +}); + +export const ForwardFooter = styled.withConfig({ + displayName: "forward-footer", + componentId: commonComponentId, +})(Footer, { + marginTop: 4, + display: "flex", + gap: 4, + alignSelf: "flex-start", + color: theme.colors.primaryOpacity50, + fontSize: theme.fontSizes.m, + cursor: "pointer", + + "&:hover": { + color: theme.colors.primaryOpacity60, + }, +}); + export const ReplyInfo = styled.withConfig({ displayName: "reply-info", componentId: commonComponentId, @@ -226,6 +297,7 @@ export const ReplyInfo = styled.withConfig({ display: "flex", flexDirection: "row", marginBottom: theme.space.small, + color: theme.colors.textMuted, }); export const ReplyUser = styled.withConfig({ @@ -382,7 +454,7 @@ export const UnknownReply = styled.withConfig({ displayName: "unknown-reply", componentId: commonComponentId, })("span", { - color: theme.colors.primaryOpacity60, + color: theme.colors.primaryOpacity50, fontSize: theme.fontSizes.m, userSelect: "none", fontStyle: "italic", @@ -398,6 +470,13 @@ export const UnknownReplyIcon = styled.withConfig({ padding: 4, // 16 - size of svg (12), aka do not tie up to theme }); +export const ForwardIcon = styled.withConfig({ + displayName: "forward-icon", + componentId: commonComponentId, +})(SvgFromUrl, { + color: theme.colors.textMuted, +}); + export const SlashCommandText = styled.withConfig({ displayName: "slash-command-text", componentId: commonComponentId, diff --git a/src/Message/variants/ForwardInfo.tsx b/src/Message/variants/ForwardInfo.tsx new file mode 100644 index 0000000..c5df7c9 --- /dev/null +++ b/src/Message/variants/ForwardInfo.tsx @@ -0,0 +1,64 @@ +import React, { memo } from "react"; +import Content from "../../Content"; +import * as Styles from "../style/message"; +import type { + APIMessageInteraction, + APIMessageSnapshot, + Snowflake, +} from "discord-api-types/v10"; +import { useConfig } from "../../core/ConfigContext"; +import moment from "moment"; + +interface ForwardInfoProps { + channelId: Snowflake; + messageId?: Snowflake; + messageSnapshot: APIMessageSnapshot["message"]; + mentioned?: boolean; + interaction: APIMessageInteraction | undefined; + isContextMenuInteraction?: boolean; +} + +export const ForwardInfo = memo((props: ForwardInfoProps) => { + const { resolveChannel, forwardedMessageChannelOnClick } = useConfig(); + + const channel = resolveChannel(props.channelId); + + return ( + + + + + + + + Forwarded + + + + + {channel ? ( + { + forwardedMessageChannelOnClick?.( + channel.id, + props.messageId + ); + }} + > + #{channel.name} + + {props.messageSnapshot.timestamp ? ( + <> + {" • "} + + {moment(props.messageSnapshot.timestamp).calendar()} + + ) : null} + + ) : null} + + + ); +}); + +ForwardInfo.displayName = "ForwardInfo"; diff --git a/src/Message/variants/NormalMessage.tsx b/src/Message/variants/NormalMessage.tsx index d169d2a..227de45 100644 --- a/src/Message/variants/NormalMessage.tsx +++ b/src/Message/variants/NormalMessage.tsx @@ -14,10 +14,11 @@ import type { APIUser, Snowflake, } from "discord-api-types/v10"; -import { MessageType } from "discord-api-types/v10"; +import { MessageReferenceType, MessageType } from "discord-api-types/v10"; import { useConfig } from "../../core/ConfigContext"; import getDisplayName from "../../utils/getDisplayName"; import type { ChatMessage } from "../../types"; +import { ForwardInfo } from "src/Message/variants/ForwardInfo"; interface ReplyInfoProps { channelId: Snowflake; @@ -178,9 +179,16 @@ interface MessageProps { } function NormalMessage(props: MessageProps) { + const shouldShowFoward = Boolean( + props.message?.message_reference !== undefined && + props.message.message_reference.type === MessageReferenceType.Forward + ); + const shouldShowReply = - props.message.type === MessageType.Reply || - Boolean(props.message.interaction); + (props.message.type === MessageType.Reply || + Boolean(props.message.interaction)) && + !shouldShowFoward; + const { currentUser, resolveChannel } = useConfig(); const channel = resolveChannel(props.message.channel_id); const guildId = @@ -220,6 +228,7 @@ function NormalMessage(props: MessageProps) { isContextMenuInteraction={props.isContextMenuInteraction} /> )} + )} + + {shouldShowFoward && "message_snapshots" in props.message ? ( + + ) : null} + + \ No newline at end of file diff --git a/src/core/ConfigContext.ts b/src/core/ConfigContext.ts index 076f1de..6d2ce37 100644 --- a/src/core/ConfigContext.ts +++ b/src/core/ConfigContext.ts @@ -56,6 +56,7 @@ export type Config = { seeThreadOnClick?(messageId: Snowflake, thread: APIChannel): void; userOnClick?(user: APIUser, element: EventTarget & HTMLSpanElement): void; roleMentionOnClick?(role: APIRole): void; + forwardedMessageChannelOnClick?(channelId:string, messageId?:string): void; channelMentionOnClick?(channel: APIChannel): void; openPinnedMessagesOnClick?(channel: APIChannel): void; messageComponentButtonOnClick?(message: ChatMessage, customId: string): void; diff --git a/src/core/svgs.ts b/src/core/svgs.ts index d41e892..9daa1e1 100644 --- a/src/core/svgs.ts +++ b/src/core/svgs.ts @@ -36,6 +36,7 @@ export type Svg = | "IconFullscreen" | "IconPlay" | "IconCross" + | "IconForward" | "IconUnknownReply" | "IconTextChannel" | "IconVoiceChannel" @@ -78,6 +79,7 @@ const defaultSvgUrls: Record = { IconPlay: SvgMissingAsset, IconTextChannel: SvgMissingAsset, IconVoiceChannel: SvgMissingAsset, + IconForward: SvgMissingAsset, IconUnknownReply: SvgMissingAsset, IconStageChannel: SvgMissingAsset, IconForumChannel: SvgMissingAsset, diff --git a/src/stories/Normal.stories.tsx b/src/stories/Normal.stories.tsx index a39a6c5..3a0673d 100644 --- a/src/stories/Normal.stories.tsx +++ b/src/stories/Normal.stories.tsx @@ -3,7 +3,7 @@ import type { Meta, StoryFn } from "@storybook/react"; import { MessageGroup } from "../index"; import { testUser } from "./commonTestData"; import Wrapper from "./Wrapper"; -import { EmbedType } from "discord-api-types/v10"; +import { EmbedType, MessageReferenceType } from "discord-api-types/v10"; const meta: Meta = { title: "Message Types/Normal", @@ -1006,6 +1006,73 @@ VideoAttachment.args = { ], }; +export const Forward: StoryFn = Template.bind({}); +Forward.args = { + messages: [ + { + id: "1101275906716213339", + type: 19, + content: "", + author: { + id: "933123872641921044", + username: "therealjethro", + global_name: "Jeff", + avatar: "e4d8c186d8900eed2ace6aed5cefe1c0", + discriminator: "0", + public_flags: 4604871, + }, + attachments: [], + embeds: [], + mentions: [], + mention_roles: [], + pinned: false, + mention_everyone: false, + tts: false, + timestamp: "2023-04-27T22:37:16.878000+00:00", + edited_timestamp: "2023-04-28T21:00:43.827000+00:00", + flags: 0, + message_snapshots: [ + { + message: { + id: "1101275906716213339", + type: 0, + content: + "# Hey DDevs! <:KermitSmile:798808491590156349> \n\nToday we are launching 🚀 **expanded markdown** (lists, headers, and masked links) to 100% of all guilds and users.\n\nYou can read more about it here [Support Article](https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline-)\n\nNot just users but also Apps/Bots/Webhooks 🤖 can take advantage of this new functionality!\n\nAs always, everything we do is a work in progress. We are still open to feedback and bug info, and we welcome you to provide both. <:KermitDab:803138503935524864>", + + attachments: [ + { + id: "1069243404585799680", + filename: "bgb64_SkdwI3got6.mp4", + size: 772258, + url: "https://cdn.discordapp.com/attachments/993210446096105522/1069243404585799680/bgb64_SkdwI3got6.mp4", + proxy_url: + "https://media.discordapp.net/attachments/993210446096105522/1069243404585799680/bgb64_SkdwI3got6.mp4", + width: 960, + height: 864, + content_type: "video/mp4", + }, + ], + embeds: [], + mentions: [], + mention_roles: [], + timestamp: "2023-04-27T16:48:25.784000+00:00", + edited_timestamp: null, + flags: 5, + components: [], + }, + }, + ], + message_reference: { + type: MessageReferenceType.Forward, + channel_id: "697138785317814292", + message_id: "1101275906716213339", + }, + components: [], + reactions: [], + }, + ], +}; + export const Reply: StoryFn = Template.bind({}); Reply.args = { messages: [ diff --git a/src/stories/Wrapper.tsx b/src/stories/Wrapper.tsx index f7fce22..8d82e57 100644 --- a/src/stories/Wrapper.tsx +++ b/src/stories/Wrapper.tsx @@ -37,6 +37,7 @@ import SvgIconVoiceChannel from "../assets/storybookOnlyAssets/icon-voice-channe import SvgIconStageChannel from "../assets/storybookOnlyAssets/icon-stage-channel.svg"; import SvgIconLinkExternal from "../assets/storybookOnlyAssets/icon-link-external.svg"; import SvgIconUnknownReply from "../assets/storybookOnlyAssets/icon-unknown-reply.svg"; +import SvgIconForward from "../assets/storybookOnlyAssets/icon-forward.svg"; import ggSansNormal400 from "../assets/storybookOnlyAssets/gg-sans-normal-400.woff2"; import ggSansNormal500 from "../assets/storybookOnlyAssets/gg-sans-normal-500.woff2"; @@ -110,6 +111,7 @@ const svgUrls = { IconVoiceChannel: SvgIconVoiceChannel, IconStageChannel: SvgIconStageChannel, IconLinkExternal: SvgIconLinkExternal, + IconForward: SvgIconForward, MiscDiscordImageFailure: SvgMiscDiscordImageFailure, }; @@ -426,6 +428,11 @@ const Wrapper: Decorator = (Story) => { attachmentImageOnClick={(image) => { alert(`Image attachment ${image.filename} clicked!`); }} + forwardedMessageChannelOnClick={(channelId, messageId) => { + alert( + `Forwarded message id is ${messageId} and was sent in ${channelId}.` + ); + }} embedImageOnClick={(embed) => { alert(`Embed image ${embed.url} clicked!`); }}