diff --git a/TODO.txt b/TODO.txt index e69de29..bf8933e 100644 --- a/TODO.txt +++ b/TODO.txt @@ -0,0 +1 @@ +REDIS cleanup (scripts, async, ...) diff --git a/app/Dockerfile b/app/Dockerfile new file mode 100644 index 0000000..a01021c --- /dev/null +++ b/app/Dockerfile @@ -0,0 +1,12 @@ +FROM node:14 +EXPOSE 32340 +COPY ./build /var/www/build +COPY ./src /var/www/src +COPY ./node_modules /var/www/node_modules +COPY ./package.json /var/www/package.json +COPY ./latus.yml /var/www/latus.yml +COPY ./postcss.config.js /var/www/postcss.config.js +WORKDIR /var/www +RUN npm rebuild +RUN apt update && apt install -y rlwrap socat +ENTRYPOINT ["node", "--experimental-repl-await", "build/index.js"] diff --git a/app/package.json b/app/package.json index 5fd6fb2..fad87c8 100644 --- a/app/package.json +++ b/app/package.json @@ -5,9 +5,11 @@ "scripts": { "build": "webpack --mode production", "dev": "webpack --mode development", + "docker": "yarn run build && docker build", "forcelatus": "pkgs=$(find node_modules/@latus -maxdepth 1 -mindepth 1 -printf '@latus/%f '); yarn upgrade $pkgs", "forcereddichat": "pkgs=$(find node_modules/@reddichat -maxdepth 1 -mindepth 1 -printf '@reddichat/%f '); yarn upgrade $pkgs", "lint": "eslint --cache --format codeframe --ext mjs,jsx,js src", + "produce": "yarn run docker -t cha0s6983/reddichat . && docker tag cha0s6983/reddichat docker.i12e.cha0s.io/cha0s6983/reddichat && docker push docker.i12e.cha0s.io/cha0s6983/reddichat", "repl": "rlwrap -C qmp socat STDIO UNIX:$(ls /tmp/latus-*.sock | tail -n 1)", "start": "NODE_ENV=production node build/index.js", "test": "mocha --watch src", diff --git a/app/src/assets/favicon.png b/app/src/assets/favicon.png new file mode 100644 index 0000000..2d368b3 Binary files /dev/null and b/app/src/assets/favicon.png differ diff --git a/app/src/react/components/branding/index.scss b/app/src/react/components/branding/index.scss index 4bd12a2..15d12eb 100644 --- a/app/src/react/components/branding/index.scss +++ b/app/src/react/components/branding/index.scss @@ -26,5 +26,10 @@ button + & { left: 3em; } + @include breakpoint(desktop) { + &[class] { + left: 0; + } + } } diff --git a/app/src/react/components/chat/index.jsx b/app/src/react/components/chat/index.jsx index e799fbd..19ff642 100644 --- a/app/src/react/components/chat/index.jsx +++ b/app/src/react/components/chat/index.jsx @@ -1,7 +1,6 @@ import './index.scss'; import { - goBack, replace, } from 'connected-react-router'; import throttle from 'lodash.throttle'; @@ -11,7 +10,6 @@ import {Link} from 'react-router-dom'; import {useSocket} from '@latus/socket/client'; import {channelSelector, submitJoin} from '@reddichat/chat/client'; -import {historyLengthSelector} from '@reddichat/app/client'; import {addRecent, userSelector} from '@reddichat/user/client'; import {channelIsAnonymous, renderChannel, validateChannel} from '@reddichat/core/client'; @@ -26,7 +24,6 @@ export default function Chat() { const user = useSelector(userSelector); const channel = useChannel(); const hasChannel = !!useSelector((state) => channelSelector(state, channel)); - const historyLength = useSelector(historyLengthSelector); const renderedChannel = renderChannel(channel); const socket = useSocket(); useEffect(() => { @@ -43,10 +40,10 @@ export default function Chat() { } }; }, [channel, socket]); - const isAllowed = user.id > 0 || !!channel; + const isAllowed = user.id > 0 || channelIsAnonymous(channel); useEffect(() => { if (!isAllowed) { - dispatch(historyLength > 1 ? goBack() : replace('/')); + dispatch(replace('/')); return; } if (channel) { diff --git a/app/src/react/components/chat/messages/index.scss b/app/src/react/components/chat/messages/index.scss index 1d699ea..81be08b 100644 --- a/app/src/react/components/chat/messages/index.scss +++ b/app/src/react/components/chat/messages/index.scss @@ -17,6 +17,7 @@ .chat--messagesList { overflow-y: auto; + scrollbar-width: none; } .chat--messagesTextarea { diff --git a/app/src/react/components/dispatcher.jsx b/app/src/react/components/dispatcher.jsx index cec58d9..d93e4ed 100644 --- a/app/src/react/components/dispatcher.jsx +++ b/app/src/react/components/dispatcher.jsx @@ -1,6 +1,10 @@ +import {useEffect} from 'react'; import {useDispatch, useSelector} from 'react-redux'; -import {useSocketPacket} from '@latus/socket/client'; +import {useSocket, useSocketPacket} from '@latus/socket/client'; +import { + reconnect, +} from '@reddichat/app/client'; import { addMessage, editMessage, @@ -22,6 +26,17 @@ import { export default function Dispatcher() { const dispatch = useDispatch(); const id = useSelector(idSelector); + const socket = useSocket(); + useEffect(() => { + const onReconnect = async () => { + dispatch(reconnect(await socket.send(['ChatReconnect']))); + }; + socket.on('reconnect', onReconnect); + return () => { + socket.off('reconnect', onReconnect); + }; + }, [dispatch, socket]); + useSocketPacket((packet) => { switch (packet.constructor.name) { case 'AddFriend': { diff --git a/app/src/react/components/home/index.jsx b/app/src/react/components/home/index.jsx index 2cb1942..c43d27e 100644 --- a/app/src/react/components/home/index.jsx +++ b/app/src/react/components/home/index.jsx @@ -1,9 +1,15 @@ import './index.scss'; +import {isAnonymousSelector} from '@reddichat/user/client'; import React, {useEffect} from 'react'; +import {useSelector} from 'react-redux'; import {Link} from 'react-router-dom'; +import useBreakpoints from 'hooks/useBreakpoints'; + export default function Home() { + const isAnonymous = useSelector(isAnonymousSelector); + const {desktop} = useBreakpoints(); useEffect(() => { window.document.title = 'reddichat'; }); @@ -12,14 +18,47 @@ export default function Home() {

Reddi? Chat!

-
- Touch to start -
-

- You will be sent to reddit to log in. - reddit will simply confirm your reddichat login and send you back here. - Then you can chat! -

+ {isAnonymous && ( +
+ Touch to start +

+ You will be sent to reddit to log in. + reddit will simply confirm your reddichat login and send you back here. + Then you can chat! +

+ +
+ )} + {!isAnonymous && ( +
+

+ Those are some pretty + {' '} + choice + {' '} + logging in skills. Nice. +

+ {desktop && ( +

+ Now that you're logged in you can see chats and friends on the left. On the + right are some links and a list of whoever is in a chat with you. +

+ )} + {!desktop && ( +

+ Now that you're logged in you can swipe right to see chats and friends. + Swipe left for some links and a list of whoever is in a chat with you. There are + also those little buttons in the corners if you like that kind of thing. +

+ )} +

+ Now, go + {' '} + find a chat + ! +

+
+ )}

If you are exceptionally brave (or particularly toxic), you may choose to {' '} diff --git a/app/src/react/components/home/index.scss b/app/src/react/components/home/index.scss index 2dd02dd..bf27f1c 100644 --- a/app/src/react/components/home/index.scss +++ b/app/src/react/components/home/index.scss @@ -41,9 +41,12 @@ padding-top: 1em; text-align: center; width: 100%; - @include breakpoint(desktop) { - padding-top: 2em; - } +} + +.home p { + font-family: var(--title-font-family); + margin: 1em auto 0 auto; + text-align: center; } .home__login { @@ -59,15 +62,17 @@ } } -.home__instructions { +p.home__instructions { font-family: var(--message-font-family); font-size: 1.5em; line-height: 1.5em; - padding: 2em 0; + margin-top: 0.5em; + padding: 1.5em 0; text-align: center; width: 100%; @include breakpoint(desktop) { font-size: 2em; + padding: 1em 0; } } diff --git a/app/yarn.lock b/app/yarn.lock index 9c8420b..06ca51d 100644 --- a/app/yarn.lock +++ b/app/yarn.lock @@ -904,8 +904,8 @@ "@latus/core@1.0.0", "@latus/core@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@latus%2fcore/-/core-1.0.0.tgz#97189f74a47f61d7c1b83b2fffb966582aa98602" - integrity sha512-O44MYdcltXBN5dVSQDOjUt2b4YZiNFnmtEv7ypjk0P8Qfz04zqdSdSKU9uhrBw2+7E4VGwDFuL4LWRktdYMf0Q== + resolved "https://npm.i12e.cha0s.io/@latus%2fcore/-/core-1.0.0.tgz#e2a29fa134373b453c8bd999b8eec7fad6e242a9" + integrity sha512-Gvq1bCQrAnK5Naln6/Yehn5aoB6Y4xVMKV7fpq82AtefZ1FcwPJ4LV5haYG5cfygHvT4/uxYehIUb2cYDYJtag== dependencies: debug "4.3.1" js-yaml "3.14.0" @@ -913,8 +913,8 @@ "@latus/db@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@latus%2fdb/-/db-1.0.0.tgz#032124c98840e9b0015a10a5bde32807d083d996" - integrity sha512-pf2PSB9/szAd7ELj0DsVWzA4HDEU1BC9DMsAs+u83VaIC6S4VvBKNrSP2jhtPSCG/ldiYhwA3lEhro80acH8iw== + resolved "https://npm.i12e.cha0s.io/@latus%2fdb/-/db-1.0.0.tgz#4d15ca38eedd65951c4e278b023f22d5c3841f52" + integrity sha512-IwiwXdBkbPDYpWhTf0yk7W+goNkvIgAvWplELt7TN6du/x2ZoZTnqgpGi5bEnEQt7dAHI184sT98aslfLxkKMw== dependencies: "@latus/core" "^1.0.0" debug "4.3.1" @@ -924,8 +924,8 @@ "@latus/governor@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@latus%2fgovernor/-/governor-1.0.0.tgz#48b38131f287604d14b5be81a1f83a66d5a005ce" - integrity sha512-tzQ3kmrw3Vj7fXR8C36xqMVBQYCcnLqKOV6kR+oCryifiCcL0i7RAtGWg6VyN1zXfLQHatLI8yOY3bBBEiVZRQ== + resolved "https://npm.i12e.cha0s.io/@latus%2fgovernor/-/governor-1.0.0.tgz#4a30faa98fea64b371e0b2e3722f098b3eead09e" + integrity sha512-gDH3xpuwGPsyqAIsR7CBHZUfYDZ8jQP/2PmLnJ8N7v/GyZI8M12XNLxmQp7MFygxOGscFkj+4rYNAo/YLzeNCg== dependencies: "@latus/db" "^1.0.0" "@latus/redis" "^1.0.0" @@ -935,8 +935,8 @@ "@latus/http@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@latus%2fhttp/-/http-1.0.0.tgz#74eab385182f6af4a1bdc266c35a4c18207aafb6" - integrity sha512-OyVuXnkyEP6UOpIfNLo5XMWrzEc/VDOZWdf9wYDXEkSNfw3OMwp5xyC47KtLT+ZS0vUetCFbI5xvSgiMzthk6g== + resolved "https://npm.i12e.cha0s.io/@latus%2fhttp/-/http-1.0.0.tgz#cb53f6be8905979e4549d347311b601dd9d162c4" + integrity sha512-cQN+co1MIsctxgVUh4ffhii25dcNyqcHNdeIXhyzevavgQJJ4vstolr8nbq9NmNBZBguFK6KMuUDJC9YkT1+vg== dependencies: "@latus/core" "1.0.0" "@neutrinojs/web" "^9.1.0" @@ -952,8 +952,8 @@ "@latus/react@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@latus%2freact/-/react-1.0.0.tgz#4074b37bf9f149689c93e8a6a41f2f3fe8545894" - integrity sha512-vktm5f4DU1/ffTBijkq8ZlPp2S1aahlcyBu6H66rdW3K9uTSGLke+a4pd4YWJ54aIJFsNNaL1mAJYbu8laeCuQ== + resolved "https://npm.i12e.cha0s.io/@latus%2freact/-/react-1.0.0.tgz#47e7fc2d3c1f7ca75a473f33c44d89fd87f71e13" + integrity sha512-cpCsNKEEAcD3Rttn4cDnQ50qSuNMikyP+vYwiF4mf3+4DaLeI1VTVzqEWvngcAc0eu42HG2z8h0lxU4MALH74A== dependencies: "@neutrinojs/react" "^9.4.0" debug "4.3.1" @@ -966,8 +966,8 @@ "@latus/redis@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@latus%2fredis/-/redis-1.0.0.tgz#c029ffeac5e349f00cdb9a4f7a62e096164fbca5" - integrity sha512-0c9Ap1GO3WhGGPpOYsPzgoCyGMmlu0GFk+4vfSZ+L414FyY4RvjgcWXQjATVPfOHBPG2Vm+zKxHyyZt0no6E4w== + resolved "https://npm.i12e.cha0s.io/@latus%2fredis/-/redis-1.0.0.tgz#09ab3b73264dce6877c8b27c367b3f0870a8130b" + integrity sha512-1qHUXoBsiaGcLkEFjKi1M25fOvcV4A9uHkBgqnhuYSVJtr+EfcGTnkJU8/5tpoV7GxuCleml8uehaGpc7tp9vQ== dependencies: connect-redis "^5.0.0" debug "4.3.1" @@ -978,15 +978,15 @@ "@latus/repl@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@latus%2frepl/-/repl-1.0.0.tgz#493b075991d8370cf9592a4f75bcd4db1cf259e7" - integrity sha512-hfqcepLf7RKgprE/gK0klOkgZk8xFb5TNS5dZX1iBlKjxO6ynMzxLdmSmGu50BnaF2FgWgAWSUZQbpxEWcdUgg== + resolved "https://npm.i12e.cha0s.io/@latus%2frepl/-/repl-1.0.0.tgz#3a1c84af5980e4b6ac863eee3cd8ea467aade742" + integrity sha512-cpi0hCYq2MNQ3gbxt7hbHuxeBbaeZItr5LS/EuVv+dUt/cZ3poJekxX5VGvT1hhfAfb03vCku9X1mAhhd0VVyQ== dependencies: debug "4.3.1" "@latus/socket@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@latus%2fsocket/-/socket-1.0.0.tgz#485f1689c72aed2267b71a85d00240f6e532e9bf" - integrity sha512-7tEUVmYXhFnvRiPMlJqYitkHVqaqCKS0iPWGdSvm97VT4x5oQzxovz0szDUpWMR5DtmtODvf1ahHmXkfeLoWeQ== + resolved "https://npm.i12e.cha0s.io/@latus%2fsocket/-/socket-1.0.0.tgz#cd34d9855db01be00e3a3205c528e4c09cfb1b4e" + integrity sha512-iMTJPo2PZBhlOZnAgQ9hfUbIrjJfOwo9ugFRe0P9hB+oFnla1jtD0dCoxI9hh87iERRRG1+S4fXMyT+CTvQSmQ== dependencies: "@latus/core" "^1.0.0" "@latus/http" "^1.0.0" @@ -1000,8 +1000,8 @@ "@latus/user@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@latus%2fuser/-/user-1.0.0.tgz#354210687e52a2d52dc88f216035f3c8ec240376" - integrity sha512-zyCKsyE9eP6WHf0TmuKNwFPUX48Gn0AdzcPJVg3YO85h9VHKKV8zZ/hoYzGzJ7G7WDfxr3GfrGvqC/i2jM08PQ== + resolved "https://npm.i12e.cha0s.io/@latus%2fuser/-/user-1.0.0.tgz#f50d92426bc416c95a5058ba2552574d50db3e74" + integrity sha512-RttfD3om7iRPunYAKbHg35ICVzw+Lhj2d1n/MHrmZGKOoodkwSpSa85tkwgU6NJ3QXuLFnfk/TSY1x5Dcy0FJQ== dependencies: "@latus/db" "^1.0.0" "@latus/socket" "^1.0.0" @@ -1174,322 +1174,322 @@ babel-merge "^3.0.0" deepmerge "^1.5.2" -"@pixi/accessibility@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2faccessibility/-/accessibility-5.3.3.tgz#b7bab17e3cf5eb5f511471df943155a4eadf0c6e" - integrity sha512-wC/enJtw5CrdWnu6l5u3VN9UIZPumNSNXlGez2BULY0osiLTywHJPdHpmXMz2YPXw75GsEBzkEvK4LTtnTp21A== +"@pixi/accessibility@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2faccessibility/-/accessibility-5.3.4.tgz#248f2ff0fd24056f0254470a91187728f60b5e8d" + integrity sha512-g8hQnnVSYJ+gLrdQyCsDDSu+VehhVL9Pcr2fkQSC9VBhxiMIN+Paky8kOxC2LL5nsKRIUGGaTa6iHtiopPQQMw== dependencies: - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/app@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fapp/-/app-5.3.3.tgz#6357e2e5acc1ed118b7f94c1179cef55ce6ed59c" - integrity sha512-OkO7Kq3N+FPRshVmApuiHKBpobic56VYbLVCMYPy6rjV0hc5ctkchKGFyouJuPt/rHeI6FrqZ0TaON1TShnKiA== +"@pixi/app@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fapp/-/app-5.3.4.tgz#a2f51c1ea0607db64eee8b7667dbb908f0ecc8ae" + integrity sha512-XT/EFyGslFdvdHY9ZS7yDAdLOj0U1UHeLxFr1kwiawuwIt/WsxNeH4jq2IijvZuQ3L5ON7Y7zQf54JEPv5fK0Q== dependencies: - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" -"@pixi/constants@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fconstants/-/constants-5.3.3.tgz#faaed2d0ce364d67fe3e69ac97e9db1f6ad6c041" - integrity sha512-IybgxzLlEPm7ihp70cLNKc3IPyqkFuW+idk9Zw2St+OayJTw5ctCnLAg9cducwIVHjPYTvN46BYDa+n0KRWZYw== +"@pixi/constants@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fconstants/-/constants-5.3.4.tgz#87630db2c3e2c9b20fddf38096087f2850b06628" + integrity sha512-YsWjdMVMoJA8kG/0D4s9/DWWa2lPlexk0qNZOcV3tICaPG0IYfIhepfveMeMhIb0QrdSAsPbhYdcaxxgoaNF1A== -"@pixi/core@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fcore/-/core-5.3.3.tgz#4b973ee3d18f6324d63311e8a00a68ecb1996532" - integrity sha512-taw50LnzV+TQVMx5HQA2ZJgF9wuhZ6DeoXHW2KkevYB0ekKYnEO2VMMiRDMcmchtyvHclJebzjeHZLGqDtKDgw== +"@pixi/core@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fcore/-/core-5.3.4.tgz#ebc2151f8bf11ccc9010aeb24a96ebab5e0bbdbc" + integrity sha512-k6SRniy4pH7ZKAKC2HkbLSKPm+j7bF17fTO5+6xLSiVqLnfa7ChV51wNuoa30olVF3/d8ME2uraf7dsvXwomzw== dependencies: - "@pixi/constants" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/runner" "5.3.3" - "@pixi/settings" "5.3.3" - "@pixi/ticker" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/constants" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/runner" "5.3.4" + "@pixi/settings" "5.3.4" + "@pixi/ticker" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/display@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fdisplay/-/display-5.3.3.tgz#14646b35b80b8586316be3495e3c0e7fa610f499" - integrity sha512-dPm7Vk2BH9byu6RHBYsI9MtjUU8x1HNm/PIi6lIlxANhTjWnhxwfvmrGE7ZcRLThTenNdDVlZ2ke2XAXP98UgA== +"@pixi/display@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fdisplay/-/display-5.3.4.tgz#6a0e00a4b448f4cd3c68256dc2f4bf2689d77655" + integrity sha512-RCi39Qi1L8mlIu1YvWvPI45WpKHRbpYlvSIT/414wmoaAoFZnaJ+qoVuqDCfzfNhWWirGAWpXniQjNRzkUZjcA== dependencies: - "@pixi/math" "5.3.3" - "@pixi/settings" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/math" "5.3.4" + "@pixi/settings" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/extract@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fextract/-/extract-5.3.3.tgz#5ab8e2977823d0ea75db003e45d6c6d72bc2b642" - integrity sha512-CE0GA+tEBPurpaXER2B1aq1sdumKLtCqE/Mms6fYUkIKF9D0Ogw9rqo79QCL9XkLMexa7xVeC3KPPiXW5wrOaA== +"@pixi/extract@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fextract/-/extract-5.3.4.tgz#8c11704b1152dd6470c21d7d0ed6064820d49d47" + integrity sha512-HTGF5WKts4kF0v1rOU4YcLMUpb18FzcxKhaCwjXpqm3vANgjuGAUL9PxpmC4ecS03mkRa0+9vAXEUkJLQeNLPg== dependencies: - "@pixi/core" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/filter-alpha@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-alpha/-/filter-alpha-5.3.3.tgz#2d3e10e8f42f787a5115e81b13265839b2162797" - integrity sha512-AxyHLnvO892va9raZbMMtMtEGDVqO8SvEHHNnCjTBEZ67kVKy0HEYXFOBA6nJZ6BiTgGp9js+7kevi11tfqnJQ== +"@pixi/filter-alpha@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-alpha/-/filter-alpha-5.3.4.tgz#1503c11f123f3a0994d6a626741197267d6093e0" + integrity sha512-lgRCN8bDeHlMpRtQv/P5gCJ+9e3AufJVC2H0TdkCRmJqm1dB+rhKwxIeNINsjjz+kiuumOe88CxRbRd3CpEydg== dependencies: - "@pixi/core" "5.3.3" + "@pixi/core" "5.3.4" -"@pixi/filter-blur@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-blur/-/filter-blur-5.3.3.tgz#c530e40038dec1725a399753ac97faa3418559cf" - integrity sha512-vLN1DL6PQXo4p7j/32PZIf+lhcBVfb9hdphSmtbxlAlpbhMWI52n3YUkeInwHs7Ev08NyhI/UhNWHqjN/lAM3w== +"@pixi/filter-blur@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-blur/-/filter-blur-5.3.4.tgz#78377b3dd20d34545087b152be1c5f0948128720" + integrity sha512-PYPHc8MEsZWfmVQkm0UKO70dmZpcWyu/Bs0xJa5apsmCm6zXNzXfMh02lsXu82HrNQ+9iJT/mAKrrDABGn9vtg== dependencies: - "@pixi/core" "5.3.3" - "@pixi/settings" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/settings" "5.3.4" -"@pixi/filter-color-matrix@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-color-matrix/-/filter-color-matrix-5.3.3.tgz#c1ecf83a44f68d78b5436b920b459c5222f373a5" - integrity sha512-HFr+vth5ZHHEFJYcjtWZ+O0s7Z2YWJyDyxr+nTd5Q8AT7gMDTVehpNVrm7ByaCKeEovOZzZI6A347+WmHcNpGg== +"@pixi/filter-color-matrix@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-color-matrix/-/filter-color-matrix-5.3.4.tgz#d558413af89ca0435031c5f021430cbafb1ae5ca" + integrity sha512-9Iflvr1moc7ns5A/73lWVwLUbe+wb678NLA4X9SYXAJTiij4M1isDrULhk95TGUaWo4bbSBaov1vm8XbUZNG8w== dependencies: - "@pixi/core" "5.3.3" + "@pixi/core" "5.3.4" -"@pixi/filter-displacement@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-displacement/-/filter-displacement-5.3.3.tgz#f25193f738b90cc75cd04bbbcd0aefe9ea037af1" - integrity sha512-kvrKMgqW4ELg+yT2p5vmu6h/IER/L8GD1PWyXovnzpI8RG7k8l136F9VvA3wkB6sYuNcXiDtqMtRQy5e6O4+rw== +"@pixi/filter-displacement@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-displacement/-/filter-displacement-5.3.4.tgz#1132d54e1ec9fb3a05e86e6dd2f4251587fb128d" + integrity sha512-CldemXpcKr1GRT1Ll33TTFWtU6KDl4sYTvAwWTAEu8OhKedobBB/mRCIK9p1h7iZYtaj5MRYQjewmFKRrqyXrQ== dependencies: - "@pixi/core" "5.3.3" - "@pixi/math" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/math" "5.3.4" -"@pixi/filter-fxaa@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-fxaa/-/filter-fxaa-5.3.3.tgz#c7701631d60f485b6ec1052f71afb0637ca5f0b8" - integrity sha512-p4vKdBwaoGRNZcoHz2ET8hBF1SoWvy9xU2B3Ci32+c0dg89ZUdGTEW0zimUHi2gMdU+2v/T0lqZ9NC9B6WVYAg== +"@pixi/filter-fxaa@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-fxaa/-/filter-fxaa-5.3.4.tgz#57518b9b82037af588e9a857998d2526fd96bc71" + integrity sha512-GtIfaOsqQlsK+F1795V/JJIq5Uu15nasiCwGr+wVwHNGMBanAXt7AnSy8JHcgup3Eqx8FXRuM/AyD/4IYUquuA== dependencies: - "@pixi/core" "5.3.3" + "@pixi/core" "5.3.4" -"@pixi/filter-noise@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-noise/-/filter-noise-5.3.3.tgz#5d821d9f83f97d83d4be52f3ecc7e2d06ff1c084" - integrity sha512-HCky3XPk6BYGXTS7d9/FnAHnqq7Rwm5Rlj2XtWW3JItXGCScEBII227xYwrJu5Ke84tpVlDXK4W1/BevZ1AwlQ== +"@pixi/filter-noise@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2ffilter-noise/-/filter-noise-5.3.4.tgz#15e3a4f77eb24741f99bb0dad197d375e77cecb4" + integrity sha512-pNq4T4LC2naWz0pZXF3RT9aA7XdLL4TuBjJsYrrBaJZraupbOo6Mp8VwxVJs8GThmMl7/U13GalOzVSb/HjzDg== dependencies: - "@pixi/core" "5.3.3" + "@pixi/core" "5.3.4" -"@pixi/graphics@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fgraphics/-/graphics-5.3.3.tgz#cfaf5a0a94a811f7359c20875547c14095f1ecec" - integrity sha512-1bn9Jptg3JXgVOw0SrEMdmjSwkTBYDm6fPnPnh4goF3yDozh0xEqmXobVtCgy2fulMfHRzIfbgtRxrBf2mkCAg== +"@pixi/graphics@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fgraphics/-/graphics-5.3.4.tgz#e0944e1310509bcb23f4067c83a6ac55945cb1e2" + integrity sha512-W6cuFfzwgfx3zVFICu98cENgwjy+d2e6xNJ/yJI0q8QiwlZmpuSXHBCfZrtIWpp9VSJZe2KDIo1LUnLhCpp3Yg== dependencies: - "@pixi/constants" "5.3.3" - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/sprite" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/constants" "5.3.4" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/sprite" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/interaction@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2finteraction/-/interaction-5.3.3.tgz#07348e7d25b8e67473ed54f679ebe84ab9ee0400" - integrity sha512-Tjuw4XwmrG1fhGzfn5oGspRJT2OtlH+6V7AHscH0v5Ht1Kvk6aKjNncZuSCXllhGGlIuMu3Nn9WPvDEIvW3JNw== +"@pixi/interaction@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2finteraction/-/interaction-5.3.4.tgz#9d382206444c0c75a684c7ae1fc9c1d38ac59632" + integrity sha512-7/JN7AtCuYmmWczrQROKSI9Z42p6C6p7B2wDVqNYYgROSaeGbGsZ8H0sa6nYLnIj4F3CaGSRoRnAMPz+CO70bw== dependencies: - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/ticker" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/ticker" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/loaders@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2floaders/-/loaders-5.3.3.tgz#d415f25f9af64d97810e459caa2c0aca4b6a1b7c" - integrity sha512-wj0DzniApfDoZA/buMmO/CgCB7Q7SsESForHh7wSd7UC8rrCmz5prUTEICmJGhdHpBuVB7KDPtwaaLtr9Q/kQg== +"@pixi/loaders@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2floaders/-/loaders-5.3.4.tgz#22e872a965f0f7ab43a6e4766f656b07e569752f" + integrity sha512-/dFznZnsivzq/MW7n/PPhMeznWFMMDYrac958OlxzSwrEAgtq6ZVLZbz7pCf9uhiifMnqwBGefphOFubj3Qorw== dependencies: - "@pixi/core" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/utils" "5.3.4" resource-loader "^3.0.1" -"@pixi/math@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fmath/-/math-5.3.3.tgz#5d40d36fa1701e195083adb84bddf2f6420c2f4c" - integrity sha512-k5C3kQpxlGm2AdBJEUjjW2l2YlSvTKf+54vNOjD4UcEfRoDevC5p4Zg49q3UAu855lrs5qw49AbkrFKsQvPIRA== +"@pixi/math@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fmath/-/math-5.3.4.tgz#cd2163a2184a46a7c87e9b10c7948c6a075cec4f" + integrity sha512-UQ2jhdlCHIvAVf8EcHB3QuR5GhB49VdTccWmer96RZCeGkcZsPSUk1ldO1GZnIctcf0Iuvmq74G02dYbtC7JxQ== -"@pixi/mesh-extras@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fmesh-extras/-/mesh-extras-5.3.3.tgz#99c712fdb1b0a9db66fd95a76de26361a7055ab4" - integrity sha512-V2hARC7nUPaTEFxd+B8GDkSMrMZ38S8/IInqtYzGUy6FtFs7IYKty9Rz/G665eN7ThIq8tZrOVZOl6JRBtEC8A== +"@pixi/mesh-extras@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fmesh-extras/-/mesh-extras-5.3.4.tgz#2370e458611d82c8ce4d68adaf6383f01f8f5720" + integrity sha512-mjc3RlgLGYUv2FUKrVv/Dfaj2KW5qhX9c6Ev+yJ4lg/sMblet5gtYuyKsmJMS/K6B8V8+oMlTfX9ozFCzq1oJQ== dependencies: - "@pixi/constants" "5.3.3" - "@pixi/core" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/mesh" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/constants" "5.3.4" + "@pixi/core" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/mesh" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/mesh@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fmesh/-/mesh-5.3.3.tgz#f0adf0362c18e6e7646b7abaccec47d304cbb405" - integrity sha512-q8w70oAFNdArzOHVnsn7ban68NmO5S5TMg6qSez4A8te6cebMRQsNrT/0dQ/nZcG7ACFK4jiYfbXRQivO+jgVA== +"@pixi/mesh@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fmesh/-/mesh-5.3.4.tgz#3b1ce4c6686e6524bf0fd920d568a3175826c82b" + integrity sha512-y0Y52cwsqETc/35DMGVCzQmhPCrQ3ZhjWcW9JwQoHMy3PoNSN9QUqYjVjF2oEj5hxcJnGNo3GAXFZz2Uh/UReQ== dependencies: - "@pixi/constants" "5.3.3" - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/settings" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/constants" "5.3.4" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/settings" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/mixin-cache-as-bitmap@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fmixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.3.tgz#cac6a2ecf3b72fbae58ab3657998360ddbda7382" - integrity sha512-P1mo3HKDWS8IZLgaP8gujiy4We4vRcxJH6EvQAevf+GsBzdjKfcGgkKzVb9HlyQvsXML5gpTOJuw5eKgRTxSQA== +"@pixi/mixin-cache-as-bitmap@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fmixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.3.4.tgz#5cdbc578e69d43cfc6677ca12b945789b50168a5" + integrity sha512-8ZAmzDK1fHXIzYFHFH72LUMRZerY1Pt71XI3UgsWExABS1aREe20oPLuVByLP94W7X/kTXz+zK+nt51O5MGKsA== dependencies: - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/settings" "5.3.3" - "@pixi/sprite" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/settings" "5.3.4" + "@pixi/sprite" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/mixin-get-child-by-name@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fmixin-get-child-by-name/-/mixin-get-child-by-name-5.3.3.tgz#828dc9a7beae603648ebe2ccb67517c7137bff19" - integrity sha512-CksDZ5ZG4/tHZfDOwSuznANduasJg5JR89X3D6E9DVYx4CLVE3G2K1sbeiOJNXfGIKy30UoSD7Y7IFmUzLxp/g== +"@pixi/mixin-get-child-by-name@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fmixin-get-child-by-name/-/mixin-get-child-by-name-5.3.4.tgz#ab64fb820adb76a287ea70c3b26f8353dc48d2f0" + integrity sha512-PY1Qe6CKYu+UNSRAFIfRyhRfkrpsTMwh9sI6iXVVi712bM3JkZIwDfDF31TA4nYX8z7H49w+KCWY4PejZ8l2WA== dependencies: - "@pixi/display" "5.3.3" + "@pixi/display" "5.3.4" -"@pixi/mixin-get-global-position@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fmixin-get-global-position/-/mixin-get-global-position-5.3.3.tgz#5700b03794e5b21f61c015aeda733c3cb625fc75" - integrity sha512-M3faQYDW/ISa1+lhVkjHXRALJ33BMzLN+7x9ucx8VeCmUWvcaLlRo3CaxZsgiR+52Fii5WHl/PF/cMzdkRMF9g== +"@pixi/mixin-get-global-position@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fmixin-get-global-position/-/mixin-get-global-position-5.3.4.tgz#632a7249132b466b32c274252452f4565e0ee80c" + integrity sha512-yv+huwUAOfyXDEHbQp6W5/3RjQpwG6AhpgMY4b3XBMtvrp9R/5Wgw/YC/nea9kZ3Gb2u4Aqeco8U+tPIRNjeIA== dependencies: - "@pixi/display" "5.3.3" - "@pixi/math" "5.3.3" + "@pixi/display" "5.3.4" + "@pixi/math" "5.3.4" -"@pixi/particles@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fparticles/-/particles-5.3.3.tgz#3e9d2d317d6cd11a3736830dfbd4cc0c3a1082c8" - integrity sha512-t+lG8iGNYyS6ujKvC9qQjKzyxvjxqbFxvB6hkXcOKR98JWM2726ZguHouFlIbOzOxYAGoeuHIWSDlnQNvnVE2g== +"@pixi/particles@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fparticles/-/particles-5.3.4.tgz#587159fe8fcda63687d34868f7e6aaa08fe447bd" + integrity sha512-sX0BGGbS7yCwlam1mC5awW2BjU7QFmZv82E8ON/r9aAZS6InT25zOpMdvy0ImIIqBvF0Z1Qz1IT6pKEBxqMo9Q== dependencies: - "@pixi/constants" "5.3.3" - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/constants" "5.3.4" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/polyfill@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fpolyfill/-/polyfill-5.3.3.tgz#4d0050b0bb75a7b51841f7bfec4c29243a605be7" - integrity sha512-gmx67A6VmwKllxfIMQWzMUNJ8wJfWPT5FlUR0SoPastdTB/SfbgbyQBgKLZHqgmc6LOh2CrOLhN423lNiAroeA== +"@pixi/polyfill@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fpolyfill/-/polyfill-5.3.4.tgz#e3fc385f06f2a488c616ab6c1c764368c2f8cdb6" + integrity sha512-bxk8bhrfQ9Y2rU/L0ss2gIeXwmMlOciw+B5yVUDVLqzjE4y8Fm2619L4qu9v51Z9a+8JbyVE5c1eT7HJgx0g0w== dependencies: es6-promise-polyfill "^1.2.0" object-assign "^4.1.1" -"@pixi/prepare@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fprepare/-/prepare-5.3.3.tgz#a3466ecf5256a5c3fb9b86a555db17cc72d54c87" - integrity sha512-DPsKWfYJ97J67YCjPU6uvU+LBdw+64O9LG9vmzfChmYXom5VMQF9yUC6ZoYTHUPmH31iilqzGeMlPUTobnqSog== +"@pixi/prepare@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fprepare/-/prepare-5.3.4.tgz#1a96c8dad399c0a0d12c9d7ee5dee44413a0d3dc" + integrity sha512-MVMvNTrNYQidWXd4LSkgv+eqTzHtSViADA+Tvnemy9QMuWqbTfxFn4UMhrBjQIfG9+hwdIFS14pfFKt/BLHNrw== dependencies: - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" - "@pixi/graphics" "5.3.3" - "@pixi/settings" "5.3.3" - "@pixi/text" "5.3.3" - "@pixi/ticker" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" + "@pixi/graphics" "5.3.4" + "@pixi/settings" "5.3.4" + "@pixi/text" "5.3.4" + "@pixi/ticker" "5.3.4" -"@pixi/runner@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2frunner/-/runner-5.3.3.tgz#79fb35b12620d7724c65f4a7aa507190ea825ac0" - integrity sha512-7eLZxxT+PwxuwzcRL1egrnEdLHwD41yFb24pMSo6XM86ppP1tdBjrv5+pLDnUuDEfNjZQxx07FAlZY+sMKANmw== +"@pixi/runner@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2frunner/-/runner-5.3.4.tgz#e08040b1fc983357b57ab314590880d80369a916" + integrity sha512-iPWHVhv2js+NhDQNmePkHfic8SilBT7H/pzRjMqHqvafTdl8Y+4g+hdQDalZJNr3Ixl77QPAYlOKhegBujn2mQ== -"@pixi/settings@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fsettings/-/settings-5.3.3.tgz#3ff5f8afc8376d12c7627be043ec317eba139dcd" - integrity sha512-1MYJokqpPUtvYEX0BVi0Pq2Xi6KGmWDV5hlQnTXY9NGv6tmqrPYvIb/uHFaDyVUWmrqsFL3xZ4W5zMo+c/dwVA== +"@pixi/settings@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fsettings/-/settings-5.3.4.tgz#55b659591f98e6d7f4e436ad923c2355a23ef6d8" + integrity sha512-Jqj1NLtYODCqK8ZKVccUBAaBDkn7SQ6b7N15FwxbiSgfbvwpynSKr6WQTxqMq29h42MKsic6BJcQrlGEbDNz5w== dependencies: ismobilejs "^1.1.0" -"@pixi/sprite-animated@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fsprite-animated/-/sprite-animated-5.3.3.tgz#f24949ae04aeff9ff44e22544bc8b7f336d5209e" - integrity sha512-nG5j8veJ/cFXQTgzafPLkZqaHKbuaHcIj+ZYN1I2f31Y85/pfr2PQQLHbGr+3441wOYkEHht9nHhmZHWlOOZ0Q== +"@pixi/sprite-animated@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fsprite-animated/-/sprite-animated-5.3.4.tgz#253cadc4faae59a01fcd7f98e4e1143a3c288b67" + integrity sha512-HaTelbvm2xekw9b9GdYbupM2RZ/muRZvstkmSqMZhiIViZekzKPa5WQJwnqZzVBjCg735j09G8aF4H2NpNqF9g== dependencies: - "@pixi/core" "5.3.3" - "@pixi/sprite" "5.3.3" - "@pixi/ticker" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/sprite" "5.3.4" + "@pixi/ticker" "5.3.4" -"@pixi/sprite-tiling@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fsprite-tiling/-/sprite-tiling-5.3.3.tgz#d7306256b7bf6f13c181ea4a2d95905f5ae69b9d" - integrity sha512-+Xk9AUh82rpArtrnZkw+9aJchrmHZ8QkpjsPRJcgPFHx3WEfABIkT6QEoYbRKiYH34OgO7ZOUXy9hcGPHnxjvw== +"@pixi/sprite-tiling@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fsprite-tiling/-/sprite-tiling-5.3.4.tgz#ca71f24d0f62b752145051b534a4c1060b40c516" + integrity sha512-NMqpNuWEIic2n5EL/TrGmn1+bab4TwxcILnco4myvw9Sd/wLsaJx3XboegY7YCWCKhnl+Ax6cl8DMkk7OJkpJQ== dependencies: - "@pixi/constants" "5.3.3" - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/sprite" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/constants" "5.3.4" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/sprite" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/sprite@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fsprite/-/sprite-5.3.3.tgz#1681d5fd0a725581bfee3c9c2c490537bf8d21ea" - integrity sha512-qo7DG0oWS1uIBqfxw2jZPn34RCR6gQ+IjZRBpFxZPKPB1cL359scZmDBqBbQ4bd4rJ/6QXQfzUdGhXfQJtc9oQ== +"@pixi/sprite@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fsprite/-/sprite-5.3.4.tgz#c2f128b304b0dfa25bf34f613985c8ce570ca674" + integrity sha512-vO+GMJWnumnVzc2R7jGcLlUeIXIek+SDqVQyPDPJ5T8sWTgFhanHCrgpKfplZIu08X/zvIZQxPfd332R0waeog== dependencies: - "@pixi/constants" "5.3.3" - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/settings" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/constants" "5.3.4" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/settings" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/spritesheet@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fspritesheet/-/spritesheet-5.3.3.tgz#e307400d0afe4aa6e1d8d756a519e391706b5f35" - integrity sha512-pTkOCTL8jsmyAguCgcbz03UPYu+3buRkgua1g/vGyeoZBN2eJ04iSXdB0pfPrsPisxkvThGHyU23UqEDYVtXRQ== +"@pixi/spritesheet@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fspritesheet/-/spritesheet-5.3.4.tgz#23b059c154be61aaab1259628693038c7faff8e2" + integrity sha512-gfCqOMD2XJHw1bMXxXbuYPnBbCBUvbzMN7Pw2po7U5R6bsk7WEoG7Hp3HjAPyPQvg36v2Db6dcz0//ZNNqm+EQ== dependencies: - "@pixi/core" "5.3.3" - "@pixi/loaders" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/loaders" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/text-bitmap@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2ftext-bitmap/-/text-bitmap-5.3.3.tgz#0d658473d6e02ce598f779c207c42333741e15bd" - integrity sha512-QRRdEAFBwmRctp8PCPii5WUPM57T1I3r/EwyTvFCCDubOYOZu4aX/iFpCKZMl5GIphDFaGp8mNvbl+BwjUmBCA== +"@pixi/text-bitmap@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2ftext-bitmap/-/text-bitmap-5.3.4.tgz#f7ec6704df85ba912001e79714581c10bbfb4982" + integrity sha512-uNJOYvy3sn0S5Bp6H113ZAmaQm68ojCXSuOBJzIMEV2cUuYLngW+7DqKOsHMMhNmcONs/OBq57SRrzDcr8WYdw== dependencies: - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" - "@pixi/loaders" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/mesh" "5.3.3" - "@pixi/settings" "5.3.3" - "@pixi/text" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" + "@pixi/loaders" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/mesh" "5.3.4" + "@pixi/settings" "5.3.4" + "@pixi/text" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/text@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2ftext/-/text-5.3.3.tgz#d6fc00c52bc054450ae43e2d5c6f7cedcee9ecd2" - integrity sha512-juinZC2yFXnzucWWxSdty9nfIIOAq2WA8DD2k40YL+7Y5L52/ggkgnokeQ2lrTb1BvTfx6YVNlvAsKonUek0Og== +"@pixi/text@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2ftext/-/text-5.3.4.tgz#c620faaf0b9fe3cded5cb33a17115bd90d2efd00" + integrity sha512-kmdK1KLrWY8PHGIIXKVRQmik3gWquiYz6DB0jqabi3j0gVp6h+CVDje01N6Nl75ZCQ/PjaWafzQvURypfX73ng== dependencies: - "@pixi/core" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/settings" "5.3.3" - "@pixi/sprite" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/core" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/settings" "5.3.4" + "@pixi/sprite" "5.3.4" + "@pixi/utils" "5.3.4" -"@pixi/ticker@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2fticker/-/ticker-5.3.3.tgz#a8766d8417879fffd7507175de869805aee25eb2" - integrity sha512-p5F/dwJGwfZWUg5cCPqOnEx5iYGW+huQlZZtrTKKd1KoVehFsrzHeRBOEp4d584jsOmBf7fjJaUTyzsFn0YtOQ== +"@pixi/ticker@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2fticker/-/ticker-5.3.4.tgz#24600d6f9c721c48554812aa187b968bb0c2a3b9" + integrity sha512-PmCAstgyI6vLPXKZVFlo4Zornry21BwFiTOp1dBUW3sIMky9Wx2fajjyVHIridCY6yaazt6Xu37khZf5qRgASw== dependencies: - "@pixi/settings" "5.3.3" + "@pixi/settings" "5.3.4" -"@pixi/utils@5.3.3": - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/@pixi%2futils/-/utils-5.3.3.tgz#525321f3bb00e3e001e341020a3edee94cc0d00a" - integrity sha512-GDP2h1Mph9Uei4zmJjzDK6GZ5S9O2A09VySVfWyKgWwP3SQ/Ss0bGYm4sE6+u1NMSz1WCrLgu66H82XuXs2Cbg== +"@pixi/utils@5.3.4": + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/@pixi%2futils/-/utils-5.3.4.tgz#62e9a7ea59de7e4a4b108568de92a1c64026e816" + integrity sha512-HjUWFfAmPPKX0BSq20GWY//Vm+gC9O+wcn9sXMqOItCuf0DDFwxoBrUVaHNNnEVhM1Djpz/+YijCijmGdZeddA== dependencies: - "@pixi/constants" "5.3.3" - "@pixi/settings" "5.3.3" + "@pixi/constants" "5.3.4" + "@pixi/settings" "5.3.4" earcut "^2.1.5" eventemitter3 "^3.1.0" url "^0.11.0" "@reddichat/app@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@reddichat%2fapp/-/app-1.0.0.tgz#2ab024c5232685dc5f1725742e267b9fb1a7359f" - integrity sha512-cNhB1+cLBDHSbzi6v3TWJx3i0lkgOpQNfj17dKh5i3TmhqLVRDRq1wQqcbUaVm1wnYpMp+QxAs1yB88tL6+lWg== + resolved "https://npm.i12e.cha0s.io/@reddichat%2fapp/-/app-1.0.0.tgz#61b7b4bcaa7909e27061a1d2d4491a16048b812c" + integrity sha512-kjG70MD2DalgrtV7uzli1qeLkJLQ1wQLO46d7mMT2NN1/IS5sBOVl5speHKpBP4DgAsrc88aadyBmkDDFlpJ1Q== dependencies: "@reddichat/state" "^1.0.0" "@reduxjs/toolkit" "^1.5.0" @@ -1498,8 +1498,8 @@ "@reddichat/chat@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@reddichat%2fchat/-/chat-1.0.0.tgz#18f61bcbd6d93184fed6e7b20e4710b754a6949c" - integrity sha512-0Q3Rq+HX+mPslAaJeMMPcvwADU/CewE14pwzXjLtwZfyGTcE1G02sxypXWQCcIc2kJ9RA9LdU8U7kikPOo7YPA== + resolved "https://npm.i12e.cha0s.io/@reddichat%2fchat/-/chat-1.0.0.tgz#0dbb29bd25416e101f293bf85a3b51386aec2b03" + integrity sha512-uS+zKN5MU5QlAcgisx3xhEqKuf2PNk+zXqlwCeqUgSOEQz2EgeSD/VRS/qoQZNvhXXTilRN8b4izMrhyZE1bYA== dependencies: "@latus/core" "^1.0.0" "@latus/db" "^1.0.0" @@ -1512,28 +1512,30 @@ "@reduxjs/toolkit" "^1.5.0" connected-react-router "^6.8.0" debug "4.3.1" + deepmerge "^4.2.2" + msgpack-lite "^0.1.26" node-fetch "^2.6.1" uuid "^8.3.2" "@reddichat/core@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@reddichat%2fcore/-/core-1.0.0.tgz#dd398b01525f529af0bb9918d34d7be82e65b882" - integrity sha512-GsO4dCx0Gn+xKpu04Y1rdmTAj1PdoAyte9+U50wJzvCfOB4LsvnpuNwHM9XKbolWbMehKk26bHC+3xqulf/qIg== + resolved "https://npm.i12e.cha0s.io/@reddichat%2fcore/-/core-1.0.0.tgz#ee5ea79c2b6e6ac078ca6fab43f0d6929b2cc73e" + integrity sha512-pK87zIuwFLOBGNE1ZkvsPZTwbQjxbkbwnX3rx1+zCq32EaHiitXu+UBuBZypPhHcmNkcZgPeTrnh0vQXrgGLsw== dependencies: debug "4.3.1" "@reddichat/fun@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@reddichat%2ffun/-/fun-1.0.0.tgz#5eb02712148bd5f39073e33743f4d7113c216df1" - integrity sha512-mV7xbBDj46rLLBhqstDJPi03B513Sc4ZNe6HjkRL893caPgn4M2HGG3n+zMX3OT4c+WRhpocWGsQfgc4Nuv2NA== + resolved "https://npm.i12e.cha0s.io/@reddichat%2ffun/-/fun-1.0.0.tgz#2ee28aa690f4edd798f5c451515b3507894ac9ae" + integrity sha512-t/Q3wEig0J23Vr+ow+3v9D9DD5blbexWjhQbkhktOiweZLNlUnt228AAECkBl3S840gP1N8lkzBPKBOl1DAHHQ== dependencies: debug "4.3.1" pixi.js "^5.3.3" "@reddichat/state@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@reddichat%2fstate/-/state-1.0.0.tgz#5af14ce8e4c35b2c5c09861fac81e4d2932b0452" - integrity sha512-IXQujStJ8HaqHSEbjTxYvnC53y7zuIyDw096MJQ9QPzXmUnWywnoiCjlcPTiIEX84s9tAyb2CimSbiWN5G2BSw== + resolved "https://npm.i12e.cha0s.io/@reddichat%2fstate/-/state-1.0.0.tgz#54ca84fd75929224def3af2c30f0ca2ff1be6fb9" + integrity sha512-sIF3Q7nSPzxCr+XHNsw2X/NA4iZn6DpXXkpH0ne+hCYSfz9yMlpDCVbn/y4VERGfJzCi2TCkITrg1CotUMQZXw== dependencies: "@latus/core" "^1.0.0" "@latus/db" "^1.0.0" @@ -1548,8 +1550,8 @@ "@reddichat/user@^1.0.0": version "1.0.0" - resolved "https://npm.i12e.cha0s.io/@reddichat%2fuser/-/user-1.0.0.tgz#4fae0dbe063bdd0fba36cca79016e90810b1c100" - integrity sha512-PTjsWZ3fcdSz9w7yINpwsQGEJl1Izsn4n3WGjdjeEbkQZSyg4j7srHARzzD2eO+QxO/j1f2BiSAkE7WTcFHa+A== + resolved "https://npm.i12e.cha0s.io/@reddichat%2fuser/-/user-1.0.0.tgz#99f75135e46e339f16f147bb7ebcdc5028f38d5e" + integrity sha512-rqhBR7/c1jR553TiOr1HoA8TpMY9Dlkpj8O2fgOfxP57ooaBohtXWmw4cHnldepszeTYycYW+fCkGOZi/fqvsA== dependencies: "@latus/db" "^1.0.0" "@latus/socket" "^1.0.0" @@ -3605,9 +3607,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.621: - version "1.3.625" - resolved "https://npm.i12e.cha0s.io/electron-to-chromium/-/electron-to-chromium-1.3.625.tgz#a7bd18da4dc732c180b2e95e0e296c0bf22f3bd6" - integrity sha512-CsLk/r0C9dAzVPa9QF74HIXduxaucsaRfqiOYvIv2PRhvyC6EOqc/KbpgToQuDVgPf3sNAFZi3iBu4vpGOwGag== + version "1.3.626" + resolved "https://npm.i12e.cha0s.io/electron-to-chromium/-/electron-to-chromium-1.3.626.tgz#48acdf322be07feb2c1330ba05e4bf6327f721a3" + integrity sha512-7CanEvJx74EnvjHu1X8gf93KieyxvFLnqOXAH/ddjWD4RrUZYqdg3pykrQ/7t6SLI7DTsp4tfQXEfzeK5t6oAw== elliptic@^6.5.3: version "6.5.3" @@ -4068,6 +4070,11 @@ etag@~1.8.1: resolved "https://npm.i12e.cha0s.io/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-lite@^0.1.1: + version "0.1.2" + resolved "https://npm.i12e.cha0s.io/event-lite/-/event-lite-0.1.2.tgz#838a3e0fdddef8cc90f128006c8e55a4e4e4c11b" + integrity sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g== + eventemitter3@^3.1.0: version "3.1.2" resolved "https://npm.i12e.cha0s.io/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" @@ -5073,7 +5080,7 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" -ieee754@^1.1.4, ieee754@^1.2.1: +ieee754@^1.1.4, ieee754@^1.1.8, ieee754@^1.2.1: version "1.2.1" resolved "https://npm.i12e.cha0s.io/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -5222,6 +5229,11 @@ inquirer@^7.0.0: strip-ansi "^6.0.0" through "^2.3.6" +int64-buffer@^0.1.9: + version "0.1.10" + resolved "https://npm.i12e.cha0s.io/int64-buffer/-/int64-buffer-0.1.10.tgz#277b228a87d95ad777d07c13832022406a473423" + integrity sha1-J3siiofZWtd30HwTgyAiQGpHNCM= + internal-ip@^4.3.0: version "4.3.0" resolved "https://npm.i12e.cha0s.io/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" @@ -6286,6 +6298,16 @@ ms@^2.1.1: resolved "https://npm.i12e.cha0s.io/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +msgpack-lite@^0.1.26: + version "0.1.26" + resolved "https://npm.i12e.cha0s.io/msgpack-lite/-/msgpack-lite-0.1.26.tgz#dd3c50b26f059f25e7edee3644418358e2a9ad89" + integrity sha1-3TxQsm8FnyXn7e42REGDWOKprYk= + dependencies: + event-lite "^0.1.1" + ieee754 "^1.1.8" + int64-buffer "^0.1.9" + isarray "^1.0.0" + multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://npm.i12e.cha0s.io/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" @@ -7210,44 +7232,44 @@ pirates@^4.0.0: node-modules-regexp "^1.0.0" pixi.js@^5.3.3: - version "5.3.3" - resolved "https://npm.i12e.cha0s.io/pixi.js/-/pixi.js-5.3.3.tgz#6e326a52542f4acd97ea3f8593cb0aeae502df9a" - integrity sha512-uFQOXXyPMAVVayDebSFBS1AFfPT6QYNuz9Vu11yI2/k1DAef/rbYoJpSMM6SeB6dezDJPtIAaXXNxdaYzbe+kg== + version "5.3.4" + resolved "https://npm.i12e.cha0s.io/pixi.js/-/pixi.js-5.3.4.tgz#ec36ce65d05919fa89a29f984aae249230c09e15" + integrity sha512-CrAaQQRw+iTA75IEu57CEk6stFs587iWE3HwQG0rZL2ESW2uJvdsF/ieeS/hFk35QmlEsPRqmH1sf7t7FGtsyw== dependencies: - "@pixi/accessibility" "5.3.3" - "@pixi/app" "5.3.3" - "@pixi/constants" "5.3.3" - "@pixi/core" "5.3.3" - "@pixi/display" "5.3.3" - "@pixi/extract" "5.3.3" - "@pixi/filter-alpha" "5.3.3" - "@pixi/filter-blur" "5.3.3" - "@pixi/filter-color-matrix" "5.3.3" - "@pixi/filter-displacement" "5.3.3" - "@pixi/filter-fxaa" "5.3.3" - "@pixi/filter-noise" "5.3.3" - "@pixi/graphics" "5.3.3" - "@pixi/interaction" "5.3.3" - "@pixi/loaders" "5.3.3" - "@pixi/math" "5.3.3" - "@pixi/mesh" "5.3.3" - "@pixi/mesh-extras" "5.3.3" - "@pixi/mixin-cache-as-bitmap" "5.3.3" - "@pixi/mixin-get-child-by-name" "5.3.3" - "@pixi/mixin-get-global-position" "5.3.3" - "@pixi/particles" "5.3.3" - "@pixi/polyfill" "5.3.3" - "@pixi/prepare" "5.3.3" - "@pixi/runner" "5.3.3" - "@pixi/settings" "5.3.3" - "@pixi/sprite" "5.3.3" - "@pixi/sprite-animated" "5.3.3" - "@pixi/sprite-tiling" "5.3.3" - "@pixi/spritesheet" "5.3.3" - "@pixi/text" "5.3.3" - "@pixi/text-bitmap" "5.3.3" - "@pixi/ticker" "5.3.3" - "@pixi/utils" "5.3.3" + "@pixi/accessibility" "5.3.4" + "@pixi/app" "5.3.4" + "@pixi/constants" "5.3.4" + "@pixi/core" "5.3.4" + "@pixi/display" "5.3.4" + "@pixi/extract" "5.3.4" + "@pixi/filter-alpha" "5.3.4" + "@pixi/filter-blur" "5.3.4" + "@pixi/filter-color-matrix" "5.3.4" + "@pixi/filter-displacement" "5.3.4" + "@pixi/filter-fxaa" "5.3.4" + "@pixi/filter-noise" "5.3.4" + "@pixi/graphics" "5.3.4" + "@pixi/interaction" "5.3.4" + "@pixi/loaders" "5.3.4" + "@pixi/math" "5.3.4" + "@pixi/mesh" "5.3.4" + "@pixi/mesh-extras" "5.3.4" + "@pixi/mixin-cache-as-bitmap" "5.3.4" + "@pixi/mixin-get-child-by-name" "5.3.4" + "@pixi/mixin-get-global-position" "5.3.4" + "@pixi/particles" "5.3.4" + "@pixi/polyfill" "5.3.4" + "@pixi/prepare" "5.3.4" + "@pixi/runner" "5.3.4" + "@pixi/settings" "5.3.4" + "@pixi/sprite" "5.3.4" + "@pixi/sprite-animated" "5.3.4" + "@pixi/sprite-tiling" "5.3.4" + "@pixi/spritesheet" "5.3.4" + "@pixi/text" "5.3.4" + "@pixi/text-bitmap" "5.3.4" + "@pixi/ticker" "5.3.4" + "@pixi/utils" "5.3.4" pkg-dir@^2.0.0: version "2.0.0" diff --git a/package.json b/package.json index d310a2d..71dc4d5 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,10 @@ "private": true, "scripts": { "build": "lerna run build", + "dev": "lerna run dev", "clean": "lerna run clean", - "forcedev": "lerna run dev && lerna run forcepub", + "forcedev": "yarn run dev && yarn run forcepub", + "forcepub": "lerna run forcepub", "lint": "lerna run lint", "test": "lerna run test", "watch": "lerna run watch --parallel" diff --git a/packages/app/src/client/state/app.js b/packages/app/src/client/state/app.js index 002b27d..368614e 100644 --- a/packages/app/src/client/state/app.js +++ b/packages/app/src/client/state/app.js @@ -35,6 +35,7 @@ const slice = createSlice({ /* eslint-disable no-param-reassign */ extraReducers: {}, reducers: { + reconnect: () => {}, setLeftActiveIndex: (state, {payload: activeItem}) => { state.leftActiveIndex = activeItem; }, @@ -54,6 +55,7 @@ const slice = createSlice({ slice.reducer.subscription = slice.reducer; export const { + reconnect, setLeftActiveIndex, setRightActiveIndex, toggleLeftIsOpen, diff --git a/packages/chat/package.json b/packages/chat/package.json index 8fce2fe..03f0fe0 100644 --- a/packages/chat/package.json +++ b/packages/chat/package.json @@ -31,6 +31,8 @@ "@reduxjs/toolkit": "^1.5.0", "connected-react-router": "^6.8.0", "debug": "4.3.1", + "deepmerge": "^4.2.2", + "msgpack-lite": "^0.1.26", "node-fetch": "^2.6.1", "uuid": "^8.3.2" }, diff --git a/packages/chat/src/client/effects.js b/packages/chat/src/client/effects.js index f2469ab..41a61ce 100644 --- a/packages/chat/src/client/effects.js +++ b/packages/chat/src/client/effects.js @@ -43,6 +43,7 @@ export default ({config: {'%socket': socket}}) => { isBanned, messages, users, + usernames, } = await socket.send(['Join', payload]); if (isBanned) { dispatch(replace('/chat')); @@ -53,6 +54,7 @@ export default ({config: {'%socket': socket}}) => { channel: realChannel, messages, users, + usernames, })); dispatch(addRecent(realChannel)); if (canonical) { diff --git a/packages/chat/src/client/index.js b/packages/chat/src/client/index.js index 92fbe89..b37a0d5 100644 --- a/packages/chat/src/client/index.js +++ b/packages/chat/src/client/index.js @@ -1,4 +1,5 @@ import Activity from '../packets/activity'; +import ChatReconnect from '../packets/chat-reconnect'; import Join from '../packets/join'; import Leave from '../packets/leave'; import Message from '../packets/message'; @@ -16,6 +17,7 @@ export default { hooks: { '@latus/socket/packets': (latus) => ({ Activity: Activity(latus), + ChatReconnect: ChatReconnect(latus), Join: Join(latus), Leave: Leave(latus), Message: Message(latus), diff --git a/packages/chat/src/client/state.js b/packages/chat/src/client/state.js index 39b628d..04ad95a 100644 --- a/packages/chat/src/client/state.js +++ b/packages/chat/src/client/state.js @@ -1,3 +1,4 @@ +import merge from 'deepmerge'; import { createSelector, createSlice, @@ -55,6 +56,18 @@ const slice = createSlice({ /* eslint-disable no-param-reassign */ extraReducers: { [localStorage]: ({input}) => ({input}), + 'reddichat/app/reconnect': (state, {payload: {chat: {channels, messages}}}) => { + state.channels = Object.fromEntries(Object.entries( + merge(state.channels, channels), + ).map(([name, {messages, users}]) => [ + name, + { + messages: Array.from((new Set(messages)).values()), + users: Array.from((new Set(users)).values()), + }, + ])); + state.messages = merge(state.messages, messages); + }, }, reducers: { addMessage: ({ diff --git a/packages/chat/src/index.js b/packages/chat/src/index.js index fdf3422..df09319 100644 --- a/packages/chat/src/index.js +++ b/packages/chat/src/index.js @@ -10,6 +10,7 @@ import ChatRoom from './models/chat-room'; import ChatUser from './models/chat-user'; import Activity from './packets/activity.server'; +import ChatReconnect from './packets/chat-reconnect.server'; import Join from './packets/join.server'; import Leave from './packets/leave.server'; import Message from './packets/message.server'; @@ -66,6 +67,7 @@ export default { }, '@latus/socket/packets': (latus) => ({ Activity: Activity(latus), + ChatReconnect: ChatReconnect(latus), Join: Join(latus), Leave: Leave(latus), Message: Message(latus), diff --git a/packages/chat/src/packets/activity.js b/packages/chat/src/packets/activity.js index c9eb96a..8d84e43 100644 --- a/packages/chat/src/packets/activity.js +++ b/packages/chat/src/packets/activity.js @@ -1,10 +1,3 @@ import {Packet} from '@latus/socket/packets'; -export default () => class Activity extends Packet { - - static limit = { - points: 2, - duration: 2, - }; - -}; +export default () => class Activity extends Packet {}; diff --git a/packages/chat/src/packets/chat-reconnect.js b/packages/chat/src/packets/chat-reconnect.js new file mode 100644 index 0000000..af1aea7 --- /dev/null +++ b/packages/chat/src/packets/chat-reconnect.js @@ -0,0 +1,3 @@ +import {Packet} from '@latus/socket/packets'; + +export default () => class ChatReconnect extends Packet {}; diff --git a/packages/chat/src/packets/chat-reconnect.server.js b/packages/chat/src/packets/chat-reconnect.server.js new file mode 100644 index 0000000..fc7194f --- /dev/null +++ b/packages/chat/src/packets/chat-reconnect.server.js @@ -0,0 +1,13 @@ +import { + ensureUniqueReduction, +} from '@latus/core'; + +import ChatReconnect from './chat-reconnect'; + +export default (latus) => class ChatReconnectServer extends ChatReconnect(latus) { + + static async respond(packet, {req}) { + return ensureUniqueReduction(latus, '@reddichat/state/defaultState', req); + } + +}; diff --git a/packages/chat/src/packets/message.server.js b/packages/chat/src/packets/message.server.js index cfcacd1..780944e 100644 --- a/packages/chat/src/packets/message.server.js +++ b/packages/chat/src/packets/message.server.js @@ -106,6 +106,11 @@ export default (latus) => class MessageServer extends Message(latus) { throw new ValidationError({code: 403, reason: 'not friends'}); } } + else if ('r' === type) { + if (!user && !channelIsAnonymous(channel)) { + throw new ValidationError({code: 403, reason: 'unauthorized'}); + } + } if (user && await user.isBannedFrom(channel)) { throw new ValidationError({code: 403, reason: 'unauthorized'}); } diff --git a/packages/chat/src/state.js b/packages/chat/src/state.js index 2d4f378..8a8b57e 100644 --- a/packages/chat/src/state.js +++ b/packages/chat/src/state.js @@ -43,6 +43,13 @@ export const channelState = async (req, latus, channel) => { ...JSON.parse(reply), uuid: messageKeys[i].split(':')[2], })) + .map((message) => { + const {socket, ip, ...rest} = message; + return { + ...rest, + owner: channelIsAnonymous(channel) ? 0 : rest.owner, + }; + }) .filter(({message}) => !!message) .sort((l, r) => l.timestamp - r.timestamp); const users = channelIsAnonymous(channel) @@ -114,7 +121,11 @@ export default async (req, latus) => { const {messages, users} = entries[i]; chat.channels[channel] = { messages: messages.map((message) => message.uuid), - users, + users: Array.from((new Set(users.concat( + channelIsAnonymous(toHydrate[i]) + ? 0 + : req.userId, + ))).values()), }; messages.forEach((message) => { chat.messages[message.uuid] = message; diff --git a/packages/chat/yarn.lock b/packages/chat/yarn.lock index 24e5b58..c3d33fb 100644 --- a/packages/chat/yarn.lock +++ b/packages/chat/yarn.lock @@ -3584,6 +3584,11 @@ etag@~1.8.1: resolved "https://npm.i12e.cha0s.io/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-lite@^0.1.1: + version "0.1.2" + resolved "https://npm.i12e.cha0s.io/event-lite/-/event-lite-0.1.2.tgz#838a3e0fdddef8cc90f128006c8e55a4e4e4c11b" + integrity sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g== + eventemitter3@^4.0.0: version "4.0.7" resolved "https://npm.i12e.cha0s.io/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -4551,7 +4556,7 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" -ieee754@^1.1.4, ieee754@^1.2.1: +ieee754@^1.1.4, ieee754@^1.1.8, ieee754@^1.2.1: version "1.2.1" resolved "https://npm.i12e.cha0s.io/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -4674,6 +4679,11 @@ ini@^1.3.4, ini@^1.3.5: resolved "https://npm.i12e.cha0s.io/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== +int64-buffer@^0.1.9: + version "0.1.10" + resolved "https://npm.i12e.cha0s.io/int64-buffer/-/int64-buffer-0.1.10.tgz#277b228a87d95ad777d07c13832022406a473423" + integrity sha1-J3siiofZWtd30HwTgyAiQGpHNCM= + internal-ip@^4.3.0: version "4.3.0" resolved "https://npm.i12e.cha0s.io/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" @@ -5648,6 +5658,16 @@ ms@2.1.2, ms@^2.1.1: resolved "https://npm.i12e.cha0s.io/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +msgpack-lite@^0.1.26: + version "0.1.26" + resolved "https://npm.i12e.cha0s.io/msgpack-lite/-/msgpack-lite-0.1.26.tgz#dd3c50b26f059f25e7edee3644418358e2a9ad89" + integrity sha1-3TxQsm8FnyXn7e42REGDWOKprYk= + dependencies: + event-lite "^0.1.1" + ieee754 "^1.1.8" + int64-buffer "^0.1.9" + isarray "^1.0.0" + multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://npm.i12e.cha0s.io/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" diff --git a/packages/user/src/client/state/usernames.js b/packages/user/src/client/state/usernames.js index f385902..346ee2d 100644 --- a/packages/user/src/client/state/usernames.js +++ b/packages/user/src/client/state/usernames.js @@ -21,6 +21,9 @@ const slice = createSlice({ extraReducers: { [join]: (state, {payload: {usernames}}) => ({...state, ...usernames}), [joined]: (state, {payload: {id, username}}) => ({...state, [id]: username}), + 'reddichat/app/reconnect': (state, {payload: {usernames}}) => { + state.usernames = {...state.usernames, ...usernames}; + }, }, reducers: { setUsernames: (state, {payload}) => ({...state, ...payload}),