This commit is contained in:
cha0s 2020-12-09 04:44:56 -06:00
parent 9e66e3b1df
commit a159c049df
24 changed files with 455 additions and 49 deletions

View File

@ -1,6 +1,7 @@
const config = { const config = {
globals: { globals: {
__non_webpack_require__: true, __non_webpack_require__: true,
Event: true,
process: true, process: true,
window: true, window: true,
}, },

View File

@ -38,8 +38,10 @@
"prop-types": "^15.7.2", "prop-types": "^15.7.2",
"react": "^17.0.1", "react": "^17.0.1",
"react-hot-loader": "4.13.0", "react-hot-loader": "4.13.0",
"react-markdown": "^5.0.3",
"react-redux": "^7.2.2", "react-redux": "^7.2.2",
"react-router-dom": "^5.2.0" "react-router-dom": "^5.2.0",
"uuid": "^8.3.2"
}, },
"devDependencies": { "devDependencies": {
"@neutrinojs/airbnb": "^9.1.0", "@neutrinojs/airbnb": "^9.1.0",

View File

@ -1,5 +1,6 @@
import './index.scss'; import './index.scss';
import classnames from 'classnames';
import {isAnonymousSelector} from '@reddichat/user/client'; import {isAnonymousSelector} from '@reddichat/user/client';
import React, {useRef} from 'react'; import React, {useRef} from 'react';
import {useSelector} from 'react-redux'; import {useSelector} from 'react-redux';
@ -38,7 +39,7 @@ const App = () => {
}} }}
/> />
<div <div
className="app__center" className={classnames('app__center', {isAnonymous})}
// eslint-disable-next-line react/jsx-props-no-spreading // eslint-disable-next-line react/jsx-props-no-spreading
{...(desktop ? {} : isAnonymous || pointerEvents(desktop, ref))} {...(desktop ? {} : isAnonymous || pointerEvents(desktop, ref))}
ref={ref} ref={ref}

View File

@ -19,6 +19,10 @@
transition: 0.2s left; transition: 0.2s left;
} }
width: calc(100% + 50rem); width: calc(100% + 50rem);
&.isAnonymous {
left: 0 !important;
width: 100%;
}
@include breakpoint(desktop) { @include breakpoint(desktop) {
left: 0 !important; left: 0 !important;
width: 100%; width: 100%;

View File

@ -12,7 +12,7 @@ import {channelIsAnonymous, renderChannel, validateChannel} from '@reddichat/cor
import useBreakpoints from 'hooks/useBreakpoints'; import useBreakpoints from 'hooks/useBreakpoints';
import useChannel from 'hooks/useChannel'; import useChannel from 'hooks/useChannel';
import Center from './center'; import Messages from './messages';
// import pointerEvents from './pointer-events'; // import pointerEvents from './pointer-events';
export default function Chat() { export default function Chat() {
@ -57,6 +57,7 @@ export default function Chat() {
className="chat" className="chat"
ref={ref} ref={ref}
> >
<Messages />
{/* <Center {/* <Center
onButton={(type) => { onButton={(type) => {
const max = Math.min(window.innerWidth - (4 * 16), 25 * 16); const max = Math.min(window.innerWidth - (4 * 16), 25 * 16);

View File

@ -3,9 +3,9 @@
.chat { .chat {
display: flex; display: flex;
height: 100%; height: 100%;
left: 0; // left: 0;
position: absolute; // position: absolute;
width: 100%; // width: 100%;
&:not(.moving) { &:not(.moving) {
transition: 0.2s left; transition: 0.2s left;
} }

View File

@ -1,4 +1,4 @@
import './chat--messages.scss'; import './index.scss';
import React, { import React, {
useEffect, useEffect,
@ -8,15 +8,15 @@ import React, {
} from 'react'; } from 'react';
import {useSelector} from 'react-redux'; import {useSelector} from 'react-redux';
import {channelMessagesSelector} from '~/common/state/chat'; import {channelMessagesSelector} from '@reddichat/chat/client';
import {blockedSelector} from '~/common/state/user'; import {blockedSelector} from '@reddichat/user/client';
import useChannel from '~/client/hooks/useChannel'; import useChannel from 'hooks/useChannel';
import ChatMessage from './chat--message'; import Message from './message';
import ChatSubmitMessage from './chat--submitMessage'; import Submit from './submit';
export default function ChatMessages() { export default function Messages() {
const blocked = useSelector(blockedSelector); const blocked = useSelector(blockedSelector);
const channel = useChannel(); const channel = useChannel();
const $messages = useRef(null); const $messages = useRef(null);
@ -48,15 +48,14 @@ export default function ChatMessages() {
? true ? true
: -1 === scrollTop || scrollTop + outerHeight >= scrollHeight; : -1 === scrollTop || scrollTop + outerHeight >= scrollHeight;
setIsAtBottom(isAtBottom); setIsAtBottom(isAtBottom);
if (isAtBottom) { if (isAtBottom && current) {
current?.scrollTo(0, scrollHeight); current.scrollTo(0, scrollHeight);
} }
}, [current, messageCount, outerHeight, scrollHeight, scrollTop]); }, [current, messageCount, outerHeight, scrollHeight, scrollTop]);
useLayoutEffect(() => { useLayoutEffect(() => {
const onReddichatExpandoToggle = () => { const onReddichatExpandoToggle = () => {
if (isAtBottom) { if (isAtBottom && current) {
const scrollHeight = !current ? 0 : current.scrollHeight; current.scrollTo(0, current.scrollHeight);
current?.scrollTo(0, scrollHeight);
} }
onResize(); onResize();
}; };
@ -80,7 +79,7 @@ export default function ChatMessages() {
return null; return null;
} }
const $message = ( const $message = (
<ChatMessage <Message
key={message.uuid} key={message.uuid}
isShort={0 === message.owner || messageOwner === message.owner} isShort={0 === message.owner || messageOwner === message.owner}
message={message} message={message}
@ -90,7 +89,7 @@ export default function ChatMessages() {
return $message; return $message;
})} })}
</div> </div>
<ChatSubmitMessage /> <Submit />
</div> </div>
); );
} }

View File

@ -3,7 +3,8 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
height: calc(100% - 3em); height: 100%;
width: 100%;
} }
.chat--messagesSmoosh { .chat--messagesSmoosh {

View File

@ -1,4 +1,4 @@
import './chat--message.scss'; import './index.scss';
import classnames from 'classnames'; import classnames from 'classnames';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
@ -8,13 +8,13 @@ import React, {
} from 'react'; } from 'react';
import {useSelector} from 'react-redux'; import {useSelector} from 'react-redux';
import {usernameSelector} from '~/common/state/usernames'; import {usernameSelector} from '@reddichat/user/client';
import ChatMessageMarkdown from './chat--messageMarkdown'; import Markdown from './markdown';
import ChatMessageTime from './chat--messageTime'; import Time from './time';
import ChatMessageModeration from './chat--messageModeration'; import Moderation from './moderation';
export default function ChatMessage(props) { export default function Message(props) {
const { const {
isShort, isShort,
message: { message: {
@ -31,7 +31,7 @@ export default function ChatMessage(props) {
return () => clearTimeout(handle); return () => clearTimeout(handle);
}); });
const username = useSelector((state) => usernameSelector(state, owner)); const username = useSelector((state) => usernameSelector(state, owner));
const $messageTime = <ChatMessageTime timestamp={timestamp} />; const $messageTime = <Time timestamp={timestamp} />;
return ( return (
<div <div
className={classnames( className={classnames(
@ -53,9 +53,9 @@ export default function ChatMessage(props) {
) )
} }
<div className="chat--messageText"> <div className="chat--messageText">
<ChatMessageMarkdown message={message} /> <Markdown message={message} />
{isShort && $messageTime} {isShort && $messageTime}
<ChatMessageModeration <Moderation
messageIsAdmin={false} messageIsAdmin={false}
messageIsModerator={false} messageIsModerator={false}
userIsAdmin={false} userIsAdmin={false}
@ -66,7 +66,7 @@ export default function ChatMessage(props) {
); );
} }
ChatMessage.propTypes = { Message.propTypes = {
isShort: PropTypes.bool.isRequired, isShort: PropTypes.bool.isRequired,
message: PropTypes.shape({ message: PropTypes.shape({
message: PropTypes.string, message: PropTypes.string,

View File

@ -1,4 +1,4 @@
@import '~/client/scss/colors.scss'; @import 'scss/colors.scss';
.chat--message { .chat--message {
margin-top: 0.75rem; margin-top: 0.75rem;

View File

@ -1,5 +1,5 @@
import './chat--messageMarkdown.scss'; import './index.scss';
import './chat--messageMarkdownExpandos.scss'; import './expandos/index.scss';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React, { import React, {
@ -8,7 +8,7 @@ import React, {
} from 'react'; } from 'react';
import ReactMarkdown from 'react-markdown'; import ReactMarkdown from 'react-markdown';
import chatMessageMarkdownExpandos from './chat--messageMarkdownExpandos'; import chatMessageMarkdownExpandos from './expandos';
export default function ChatMessageMarkdown(props) { export default function ChatMessageMarkdown(props) {
const { const {

View File

@ -1,4 +1,4 @@
@import '~/client/scss/colors.scss'; @import 'scss/colors.scss';
.chat--messageMarkdown { .chat--messageMarkdown {
display: inline; display: inline;

View File

@ -0,0 +1,43 @@
import './index.scss';
import PropTypes from 'prop-types';
import React from 'react';
import Actions from 'components/actions';
export default function ChatMessageModeration(props) {
const {
messageIsAdmin,
messageIsModerator,
userIsAdmin,
userIsModerator,
} = props;
const actions = [];
if (messageIsAdmin) {
actions.push(['👑', 'Admin distinction', () => {}]);
}
if (messageIsModerator) {
actions.push(['🎩', 'Moderator distinction', () => {}]);
}
if (userIsAdmin) {
actions.push(['🛑', 'Site ban', () => {}]);
}
if (userIsModerator) {
actions.push(['🚫', 'Channel ban', () => {}]);
}
if (0 === actions.length) {
return null;
}
return (
<div className="chat--messageModeration">
<Actions actions={actions} />
</div>
);
}
ChatMessageModeration.propTypes = {
messageIsAdmin: PropTypes.bool.isRequired,
messageIsModerator: PropTypes.bool.isRequired,
userIsAdmin: PropTypes.bool.isRequired,
userIsModerator: PropTypes.bool.isRequired,
};

View File

@ -0,0 +1,11 @@
@import 'scss/breakpoints.scss';
.chat--messageModeration {
.action {
margin: 0 0.25em;
padding: 0;
@include breakpoint(desktop) {
opacity: 0;
}
}
}

View File

@ -1,4 +1,4 @@
import './chat--messageTime.scss'; import './index.scss';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import React from 'react'; import React from 'react';

View File

@ -0,0 +1,73 @@
import './index.scss';
import React, {useRef} from 'react';
import {useDispatch, useSelector} from 'react-redux';
import {v4 as uuidv4} from 'uuid';
import {channelIsAnonymous} from '@reddichat/core/client';
import {
inputChannelSelector,
inputText,
submitMessage,
} from '@reddichat/chat/client';
import {userSelector} from '@reddichat/user/client';
import useChannel from 'hooks/useChannel';
export default function ChatSubmitMessage() {
const channel = useChannel();
const dispatch = useDispatch();
const $form = useRef(null);
const user = useSelector(userSelector);
const text = useSelector((state) => inputChannelSelector(state, channel));
const setText = (text) => dispatch(inputText({channel, text}));
return (
<div className="chat--messageSubmit">
<form
onSubmit={(event) => {
event.preventDefault();
if (!text) {
return;
}
let caret = 0;
const message = text.trim();
let chunk;
// eslint-disable-next-line no-cond-assign
while (chunk = message.substr(caret, 512)) {
dispatch(submitMessage({
channel,
message: chunk,
owner: channelIsAnonymous(channel) ? 0 : user.id,
timestamp: Date.now(),
uuid: uuidv4(),
}));
caret += 512;
}
setText('');
}}
ref={$form}
>
<textarea
className="chat--messagesTextarea"
name="message"
type="textarea"
onChange={(event) => setText(event.target.value)}
onKeyDown={(event) => {
if ('Enter' === event.key && !event.shiftKey) {
if ($form.current) {
if ($form.current.requestSubmit) {
$form.current.requestSubmit();
}
else {
$form.current.dispatchEvent(new Event('submit', {cancelable: true}));
}
}
event.preventDefault();
}
}}
value={text || ''}
/>
</form>
</div>
);
}

View File

@ -0,0 +1,3 @@
.chat--messagesTextarea {
background-image: url('~images/transpaper.png');
}

View File

@ -1194,8 +1194,8 @@
"@reddichat/chat@^1.0.0": "@reddichat/chat@^1.0.0":
version "1.0.0" version "1.0.0"
resolved "https://npm.i12e.cha0s.io/@reddichat%2fchat/-/chat-1.0.0.tgz#0a8c639d8dfcdba6a3c29a0380f0851f219972a0" resolved "https://npm.i12e.cha0s.io/@reddichat%2fchat/-/chat-1.0.0.tgz#925f5961575da2c3545838a37ebe56d8f4f7c501"
integrity sha512-baB8+iXfJqY7Xfk9wS0OfQhEWsXocdz8XLEG1JEKCi9zIS6GwDOFjx/eMVvNm3lbFo0G7kO5xxcdFjfLX6B8ZQ== integrity sha512-lwvUm7kZIDN+Fdr4isNrwedOwKKcOE+ahdpNaHgWw1BmgCC9dlDqsLIh9xyOxrMsDXOmmTDQTRmXdTWYtko0qw==
dependencies: dependencies:
"@latus/core" "^1.0.0" "@latus/core" "^1.0.0"
"@latus/db" "^1.0.0" "@latus/db" "^1.0.0"
@ -1205,7 +1205,7 @@
"@reddichat/state" "^1.0.0" "@reddichat/state" "^1.0.0"
"@reduxjs/toolkit" "^1.5.0" "@reduxjs/toolkit" "^1.5.0"
debug "4.3.1" debug "4.3.1"
uuid "^8.3.1" uuid "^8.3.2"
"@reddichat/core@^1.0.0": "@reddichat/core@^1.0.0":
version "1.0.0" version "1.0.0"
@ -1285,6 +1285,13 @@
resolved "https://npm.i12e.cha0s.io/@types%2fjson5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" resolved "https://npm.i12e.cha0s.io/@types%2fjson5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
"@types/mdast@^3.0.0", "@types/mdast@^3.0.3":
version "3.0.3"
resolved "https://npm.i12e.cha0s.io/@types%2fmdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb"
integrity sha512-SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==
dependencies:
"@types/unist" "*"
"@types/minimatch@*": "@types/minimatch@*":
version "3.0.3" version "3.0.3"
resolved "https://npm.i12e.cha0s.io/@types%2fminimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" resolved "https://npm.i12e.cha0s.io/@types%2fminimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
@ -1312,6 +1319,11 @@
dependencies: dependencies:
source-map "^0.6.1" source-map "^0.6.1"
"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3":
version "2.0.3"
resolved "https://npm.i12e.cha0s.io/@types%2funist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e"
integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==
"@types/webpack-sources@*": "@types/webpack-sources@*":
version "2.1.0" version "2.1.0"
resolved "https://npm.i12e.cha0s.io/@types%2fwebpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" resolved "https://npm.i12e.cha0s.io/@types%2fwebpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10"
@ -1915,6 +1927,11 @@ backo2@1.0.2:
resolved "https://npm.i12e.cha0s.io/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" resolved "https://npm.i12e.cha0s.io/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= integrity sha1-MasayLEpNjRj41s+u2n038+6eUc=
bail@^1.0.0:
version "1.0.5"
resolved "https://npm.i12e.cha0s.io/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776"
integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==
balanced-match@^1.0.0: balanced-match@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://npm.i12e.cha0s.io/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" resolved "https://npm.i12e.cha0s.io/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@ -2360,6 +2377,21 @@ chalk@^4.1.0:
ansi-styles "^4.1.0" ansi-styles "^4.1.0"
supports-color "^7.1.0" supports-color "^7.1.0"
character-entities-legacy@^1.0.0:
version "1.1.4"
resolved "https://npm.i12e.cha0s.io/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1"
integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==
character-entities@^1.0.0:
version "1.2.4"
resolved "https://npm.i12e.cha0s.io/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b"
integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==
character-reference-invalid@^1.0.0:
version "1.1.4"
resolved "https://npm.i12e.cha0s.io/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560"
integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==
chardet@^0.7.0: chardet@^0.7.0:
version "0.7.0" version "0.7.0"
resolved "https://npm.i12e.cha0s.io/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" resolved "https://npm.i12e.cha0s.io/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
@ -2868,7 +2900,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
dependencies: dependencies:
ms "2.0.0" ms "2.0.0"
debug@4.3.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: debug@4.3.1, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
version "4.3.1" version "4.3.1"
resolved "https://npm.i12e.cha0s.io/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" resolved "https://npm.i12e.cha0s.io/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
@ -3112,6 +3144,15 @@ dom-serializer@0:
domelementtype "^2.0.1" domelementtype "^2.0.1"
entities "^2.0.0" entities "^2.0.0"
dom-serializer@^1.0.1:
version "1.2.0"
resolved "https://npm.i12e.cha0s.io/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1"
integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==
dependencies:
domelementtype "^2.0.1"
domhandler "^4.0.0"
entities "^2.0.0"
dom-walk@^0.1.0: dom-walk@^0.1.0:
version "0.1.2" version "0.1.2"
resolved "https://npm.i12e.cha0s.io/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" resolved "https://npm.i12e.cha0s.io/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
@ -3127,7 +3168,7 @@ domelementtype@1, domelementtype@^1.3.1:
resolved "https://npm.i12e.cha0s.io/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" resolved "https://npm.i12e.cha0s.io/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
domelementtype@^2.0.1: domelementtype@^2.0.1, domelementtype@^2.1.0:
version "2.1.0" version "2.1.0"
resolved "https://npm.i12e.cha0s.io/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" resolved "https://npm.i12e.cha0s.io/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e"
integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==
@ -3139,6 +3180,20 @@ domhandler@^2.3.0:
dependencies: dependencies:
domelementtype "1" domelementtype "1"
domhandler@^3.3.0:
version "3.3.0"
resolved "https://npm.i12e.cha0s.io/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a"
integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==
dependencies:
domelementtype "^2.0.1"
domhandler@^4.0.0:
version "4.0.0"
resolved "https://npm.i12e.cha0s.io/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e"
integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==
dependencies:
domelementtype "^2.1.0"
domutils@1.5.1: domutils@1.5.1:
version "1.5.1" version "1.5.1"
resolved "https://npm.i12e.cha0s.io/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" resolved "https://npm.i12e.cha0s.io/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
@ -3155,6 +3210,15 @@ domutils@^1.5.1:
dom-serializer "0" dom-serializer "0"
domelementtype "1" domelementtype "1"
domutils@^2.4.2:
version "2.4.4"
resolved "https://npm.i12e.cha0s.io/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3"
integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==
dependencies:
dom-serializer "^1.0.1"
domelementtype "^2.0.1"
domhandler "^4.0.0"
dot-case@^3.0.4: dot-case@^3.0.4:
version "3.0.4" version "3.0.4"
resolved "https://npm.i12e.cha0s.io/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" resolved "https://npm.i12e.cha0s.io/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
@ -3783,7 +3847,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
assign-symbols "^1.0.0" assign-symbols "^1.0.0"
is-extendable "^1.0.1" is-extendable "^1.0.1"
extend@~3.0.2: extend@^3.0.0, extend@~3.0.2:
version "3.0.2" version "3.0.2"
resolved "https://npm.i12e.cha0s.io/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" resolved "https://npm.i12e.cha0s.io/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
@ -4505,6 +4569,16 @@ html-minifier@^3.5.8:
relateurl "0.2.x" relateurl "0.2.x"
uglify-js "3.4.x" uglify-js "3.4.x"
html-to-react@^1.3.4:
version "1.4.5"
resolved "https://npm.i12e.cha0s.io/html-to-react/-/html-to-react-1.4.5.tgz#59091c11021d1ef315ef738460abb6a4a41fe1ce"
integrity sha512-KONZUDFPg5OodWaQu2ymfkDmU0JA7zB1iPfvyHehTmMUZnk0DS7/TyCMTzsLH6b4BvxX15g88qZCXFhJWktsmA==
dependencies:
domhandler "^3.3.0"
htmlparser2 "^5.0"
lodash.camelcase "^4.3.0"
ramda "^0.27.1"
html-webpack-plugin@^4.3.0: html-webpack-plugin@^4.3.0:
version "4.5.0" version "4.5.0"
resolved "https://npm.i12e.cha0s.io/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c" resolved "https://npm.i12e.cha0s.io/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c"
@ -4532,6 +4606,16 @@ htmlparser2@^3.3.0:
inherits "^2.0.1" inherits "^2.0.1"
readable-stream "^3.1.1" readable-stream "^3.1.1"
htmlparser2@^5.0:
version "5.0.1"
resolved "https://npm.i12e.cha0s.io/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7"
integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ==
dependencies:
domelementtype "^2.0.1"
domhandler "^3.3.0"
domutils "^2.4.2"
entities "^2.0.0"
http-deceiver@^1.2.7: http-deceiver@^1.2.7:
version "1.2.7" version "1.2.7"
resolved "https://npm.i12e.cha0s.io/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" resolved "https://npm.i12e.cha0s.io/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
@ -4828,6 +4912,19 @@ is-accessor-descriptor@^1.0.0:
dependencies: dependencies:
kind-of "^6.0.0" kind-of "^6.0.0"
is-alphabetical@^1.0.0:
version "1.0.4"
resolved "https://npm.i12e.cha0s.io/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d"
integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==
is-alphanumerical@^1.0.0:
version "1.0.4"
resolved "https://npm.i12e.cha0s.io/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf"
integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==
dependencies:
is-alphabetical "^1.0.0"
is-decimal "^1.0.0"
is-arguments@^1.0.4: is-arguments@^1.0.4:
version "1.1.0" version "1.1.0"
resolved "https://npm.i12e.cha0s.io/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" resolved "https://npm.i12e.cha0s.io/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9"
@ -4859,6 +4956,11 @@ is-buffer@^1.1.5:
resolved "https://npm.i12e.cha0s.io/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" resolved "https://npm.i12e.cha0s.io/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
is-buffer@^2.0.0:
version "2.0.5"
resolved "https://npm.i12e.cha0s.io/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
is-callable@^1.1.4, is-callable@^1.2.2: is-callable@^1.1.4, is-callable@^1.2.2:
version "1.2.2" version "1.2.2"
resolved "https://npm.i12e.cha0s.io/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" resolved "https://npm.i12e.cha0s.io/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9"
@ -4890,6 +4992,11 @@ is-date-object@^1.0.1:
resolved "https://npm.i12e.cha0s.io/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" resolved "https://npm.i12e.cha0s.io/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
is-decimal@^1.0.0:
version "1.0.4"
resolved "https://npm.i12e.cha0s.io/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5"
integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==
is-descriptor@^0.1.0: is-descriptor@^0.1.0:
version "0.1.6" version "0.1.6"
resolved "https://npm.i12e.cha0s.io/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" resolved "https://npm.i12e.cha0s.io/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
@ -4966,6 +5073,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
dependencies: dependencies:
is-extglob "^2.1.1" is-extglob "^2.1.1"
is-hexadecimal@^1.0.0:
version "1.0.4"
resolved "https://npm.i12e.cha0s.io/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
is-negative-zero@^2.0.0: is-negative-zero@^2.0.0:
version "2.0.1" version "2.0.1"
resolved "https://npm.i12e.cha0s.io/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" resolved "https://npm.i12e.cha0s.io/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
@ -5007,6 +5119,11 @@ is-plain-obj@^1.0.0:
resolved "https://npm.i12e.cha0s.io/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" resolved "https://npm.i12e.cha0s.io/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
is-plain-obj@^2.0.0:
version "2.1.0"
resolved "https://npm.i12e.cha0s.io/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
is-plain-object@^2.0.3, is-plain-object@^2.0.4: is-plain-object@^2.0.3, is-plain-object@^2.0.4:
version "2.0.4" version "2.0.4"
resolved "https://npm.i12e.cha0s.io/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" resolved "https://npm.i12e.cha0s.io/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
@ -5341,6 +5458,11 @@ lodash._reinterpolate@^3.0.0:
resolved "https://npm.i12e.cha0s.io/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" resolved "https://npm.i12e.cha0s.io/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
lodash.camelcase@^4.3.0:
version "4.3.0"
resolved "https://npm.i12e.cha0s.io/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
lodash.clonedeep@^4.5.0: lodash.clonedeep@^4.5.0:
version "4.5.0" version "4.5.0"
resolved "https://npm.i12e.cha0s.io/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" resolved "https://npm.i12e.cha0s.io/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
@ -5488,6 +5610,29 @@ md5.js@^1.3.4:
inherits "^2.0.1" inherits "^2.0.1"
safe-buffer "^5.1.2" safe-buffer "^5.1.2"
mdast-add-list-metadata@1.0.1:
version "1.0.1"
resolved "https://npm.i12e.cha0s.io/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz#95e73640ce2fc1fa2dcb7ec443d09e2bfe7db4cf"
integrity sha512-fB/VP4MJ0LaRsog7hGPxgOrSL3gE/2uEdZyDuSEnKCv/8IkYHiDkIQSbChiJoHyxZZXZ9bzckyRk+vNxFzh8rA==
dependencies:
unist-util-visit-parents "1.1.2"
mdast-util-from-markdown@^0.8.0:
version "0.8.4"
resolved "https://npm.i12e.cha0s.io/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.4.tgz#2882100c1b9fc967d3f83806802f303666682d32"
integrity sha512-jj891B5pV2r63n2kBTFh8cRI2uR9LQHsXG1zSDqfhXkIlDzrTcIlbB5+5aaYEkl8vOPIOPLf8VT7Ere1wWTMdw==
dependencies:
"@types/mdast" "^3.0.0"
mdast-util-to-string "^2.0.0"
micromark "~2.11.0"
parse-entities "^2.0.0"
unist-util-stringify-position "^2.0.0"
mdast-util-to-string@^2.0.0:
version "2.0.0"
resolved "https://npm.i12e.cha0s.io/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b"
integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==
media-typer@0.3.0: media-typer@0.3.0:
version "0.3.0" version "0.3.0"
resolved "https://npm.i12e.cha0s.io/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" resolved "https://npm.i12e.cha0s.io/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@ -5555,6 +5700,14 @@ methods@~1.1.2:
resolved "https://npm.i12e.cha0s.io/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" resolved "https://npm.i12e.cha0s.io/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
micromark@~2.11.0:
version "2.11.0"
resolved "https://npm.i12e.cha0s.io/micromark/-/micromark-2.11.0.tgz#7e2e572d36eae96e13b7d21468cc68f1e15a1543"
integrity sha512-dB7wxG0MkGm25xOMUXfHgQy7c4f4Cuuv5PQ7npi5EKc3CvCkaVAZE8AgraqkJT+7YDv1DOQL0NVrZd9WZ0d99A==
dependencies:
debug "^4.0.0"
parse-entities "^2.0.0"
micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
version "3.1.10" version "3.1.10"
resolved "https://npm.i12e.cha0s.io/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" resolved "https://npm.i12e.cha0s.io/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
@ -6412,6 +6565,18 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5:
pbkdf2 "^3.0.3" pbkdf2 "^3.0.3"
safe-buffer "^5.1.1" safe-buffer "^5.1.1"
parse-entities@^2.0.0:
version "2.0.0"
resolved "https://npm.i12e.cha0s.io/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8"
integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==
dependencies:
character-entities "^1.0.0"
character-entities-legacy "^1.0.0"
character-reference-invalid "^1.0.0"
is-alphanumerical "^1.0.0"
is-decimal "^1.0.0"
is-hexadecimal "^1.0.0"
parse-json@^2.2.0: parse-json@^2.2.0:
version "2.2.0" version "2.2.0"
resolved "https://npm.i12e.cha0s.io/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" resolved "https://npm.i12e.cha0s.io/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
@ -6940,6 +7105,11 @@ querystringify@^2.1.1:
resolved "https://npm.i12e.cha0s.io/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" resolved "https://npm.i12e.cha0s.io/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
ramda@^0.27.1:
version "0.27.1"
resolved "https://npm.i12e.cha0s.io/ramda/-/ramda-0.27.1.tgz#66fc2df3ef873874ffc2da6aa8984658abacf5c9"
integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==
random-bytes@~1.0.0: random-bytes@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://npm.i12e.cha0s.io/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" resolved "https://npm.i12e.cha0s.io/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b"
@ -7013,7 +7183,7 @@ react-hot-loader@4.13.0, react-hot-loader@^4.13.0:
shallowequal "^1.1.0" shallowequal "^1.1.0"
source-map "^0.7.3" source-map "^0.7.3"
react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:
version "16.13.1" version "16.13.1"
resolved "https://npm.i12e.cha0s.io/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" resolved "https://npm.i12e.cha0s.io/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@ -7023,6 +7193,22 @@ react-lifecycles-compat@^3.0.4:
resolved "https://npm.i12e.cha0s.io/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" resolved "https://npm.i12e.cha0s.io/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
react-markdown@^5.0.3:
version "5.0.3"
resolved "https://npm.i12e.cha0s.io/react-markdown/-/react-markdown-5.0.3.tgz#41040ea7a9324b564b328fb81dd6c04f2a5373ac"
integrity sha512-jDWOc1AvWn0WahpjW6NK64mtx6cwjM4iSsLHJPNBqoAgGOVoIdJMqaKX4++plhOtdd4JksdqzlDibgPx6B/M2w==
dependencies:
"@types/mdast" "^3.0.3"
"@types/unist" "^2.0.3"
html-to-react "^1.3.4"
mdast-add-list-metadata "1.0.1"
prop-types "^15.7.2"
react-is "^16.8.6"
remark-parse "^9.0.0"
unified "^9.0.0"
unist-util-visit "^2.0.0"
xtend "^4.0.1"
react-redux@^7.2.2: react-redux@^7.2.2:
version "7.2.2" version "7.2.2"
resolved "https://npm.i12e.cha0s.io/react-redux/-/react-redux-7.2.2.tgz#03862e803a30b6b9ef8582dadcc810947f74b736" resolved "https://npm.i12e.cha0s.io/react-redux/-/react-redux-7.2.2.tgz#03862e803a30b6b9ef8582dadcc810947f74b736"
@ -7294,6 +7480,13 @@ relateurl@0.2.x, relateurl@^0.2.7:
resolved "https://npm.i12e.cha0s.io/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" resolved "https://npm.i12e.cha0s.io/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
remark-parse@^9.0.0:
version "9.0.0"
resolved "https://npm.i12e.cha0s.io/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640"
integrity sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==
dependencies:
mdast-util-from-markdown "^0.8.0"
remove-trailing-separator@^1.0.1: remove-trailing-separator@^1.0.1:
version "1.1.0" version "1.1.0"
resolved "https://npm.i12e.cha0s.io/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" resolved "https://npm.i12e.cha0s.io/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@ -8486,6 +8679,11 @@ trim-newlines@^1.0.0:
resolved "https://npm.i12e.cha0s.io/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" resolved "https://npm.i12e.cha0s.io/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
trough@^1.0.0:
version "1.0.5"
resolved "https://npm.i12e.cha0s.io/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406"
integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==
"true-case-path@^1.0.2": "true-case-path@^1.0.2":
version "1.0.3" version "1.0.3"
resolved "https://npm.i12e.cha0s.io/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" resolved "https://npm.i12e.cha0s.io/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d"
@ -8603,6 +8801,18 @@ unicode-property-aliases-ecmascript@^1.0.4:
resolved "https://npm.i12e.cha0s.io/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" resolved "https://npm.i12e.cha0s.io/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
unified@^9.0.0:
version "9.2.0"
resolved "https://npm.i12e.cha0s.io/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8"
integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==
dependencies:
bail "^1.0.0"
extend "^3.0.0"
is-buffer "^2.0.0"
is-plain-obj "^2.0.0"
trough "^1.0.0"
vfile "^4.0.0"
union-value@^1.0.0: union-value@^1.0.0:
version "1.0.1" version "1.0.1"
resolved "https://npm.i12e.cha0s.io/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" resolved "https://npm.i12e.cha0s.io/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
@ -8632,6 +8842,40 @@ unique-slug@^2.0.0:
dependencies: dependencies:
imurmurhash "^0.1.4" imurmurhash "^0.1.4"
unist-util-is@^4.0.0:
version "4.0.4"
resolved "https://npm.i12e.cha0s.io/unist-util-is/-/unist-util-is-4.0.4.tgz#3e9e8de6af2eb0039a59f50c9b3e99698a924f50"
integrity sha512-3dF39j/u423v4BBQrk1AQ2Ve1FxY5W3JKwXxVFzBODQ6WEvccguhgp802qQLKSnxPODE6WuRZtV+ohlUg4meBA==
unist-util-stringify-position@^2.0.0:
version "2.0.3"
resolved "https://npm.i12e.cha0s.io/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da"
integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==
dependencies:
"@types/unist" "^2.0.2"
unist-util-visit-parents@1.1.2:
version "1.1.2"
resolved "https://npm.i12e.cha0s.io/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06"
integrity sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q==
unist-util-visit-parents@^3.0.0:
version "3.1.1"
resolved "https://npm.i12e.cha0s.io/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6"
integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==
dependencies:
"@types/unist" "^2.0.0"
unist-util-is "^4.0.0"
unist-util-visit@^2.0.0:
version "2.0.3"
resolved "https://npm.i12e.cha0s.io/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c"
integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==
dependencies:
"@types/unist" "^2.0.0"
unist-util-is "^4.0.0"
unist-util-visit-parents "^3.0.0"
universalify@^0.1.0: universalify@^0.1.0:
version "0.1.2" version "0.1.2"
resolved "https://npm.i12e.cha0s.io/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" resolved "https://npm.i12e.cha0s.io/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
@ -8744,7 +8988,7 @@ uuid@^3.3.2, uuid@^3.4.0:
resolved "https://npm.i12e.cha0s.io/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" resolved "https://npm.i12e.cha0s.io/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
uuid@^8.1.0, uuid@^8.3.1: uuid@^8.1.0, uuid@^8.3.2:
version "8.3.2" version "8.3.2"
resolved "https://npm.i12e.cha0s.io/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" resolved "https://npm.i12e.cha0s.io/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
@ -8786,6 +9030,24 @@ verror@1.10.0:
core-util-is "1.0.2" core-util-is "1.0.2"
extsprintf "^1.2.0" extsprintf "^1.2.0"
vfile-message@^2.0.0:
version "2.0.4"
resolved "https://npm.i12e.cha0s.io/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a"
integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==
dependencies:
"@types/unist" "^2.0.0"
unist-util-stringify-position "^2.0.0"
vfile@^4.0.0:
version "4.2.1"
resolved "https://npm.i12e.cha0s.io/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624"
integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==
dependencies:
"@types/unist" "^2.0.0"
is-buffer "^2.0.0"
unist-util-stringify-position "^2.0.0"
vfile-message "^2.0.0"
vm-browserify@^1.0.1: vm-browserify@^1.0.1:
version "1.1.2" version "1.1.2"
resolved "https://npm.i12e.cha0s.io/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" resolved "https://npm.i12e.cha0s.io/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
@ -9080,7 +9342,7 @@ xmlhttprequest-ssl@~1.5.4:
resolved "https://npm.i12e.cha0s.io/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" resolved "https://npm.i12e.cha0s.io/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
xtend@^4.0.0, xtend@~4.0.1: xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
version "4.0.2" version "4.0.2"
resolved "https://npm.i12e.cha0s.io/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" resolved "https://npm.i12e.cha0s.io/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==

View File

@ -28,7 +28,7 @@
"@reddichat/state": "^1.0.0", "@reddichat/state": "^1.0.0",
"@reduxjs/toolkit": "^1.5.0", "@reduxjs/toolkit": "^1.5.0",
"debug": "4.3.1", "debug": "4.3.1",
"uuid": "^8.3.1" "uuid": "^8.3.2"
}, },
"devDependencies": { "devDependencies": {
"@neutrinojs/airbnb-base": "^9.4.0", "@neutrinojs/airbnb-base": "^9.4.0",

View File

@ -87,8 +87,8 @@ export default async (req, latus) => {
const toHydrate = await channelsToHydrate(req, latus); const toHydrate = await channelsToHydrate(req, latus);
const chat = { const chat = {
channels: {}, channels: {},
input: {},
messages: {}, messages: {},
users: {},
}; };
if (0 === toHydrate.length) { if (0 === toHydrate.length) {
return undefined; return undefined;

View File

@ -8300,11 +8300,16 @@ uuid@^3.3.2, uuid@^3.4.0:
resolved "https://npm.i12e.cha0s.io/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" resolved "https://npm.i12e.cha0s.io/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
uuid@^8.1.0, uuid@^8.3.1: uuid@^8.1.0:
version "8.3.1" version "8.3.1"
resolved "https://npm.i12e.cha0s.io/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31" resolved "https://npm.i12e.cha0s.io/uuid/-/uuid-8.3.1.tgz#2ba2e6ca000da60fce5a196954ab241131e05a31"
integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg== integrity sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==
uuid@^8.3.2:
version "8.3.2"
resolved "https://npm.i12e.cha0s.io/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1: v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1:
version "2.2.0" version "2.2.0"
resolved "https://npm.i12e.cha0s.io/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" resolved "https://npm.i12e.cha0s.io/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"